summaryrefslogtreecommitdiffstats
path: root/contrib/binutils/ld
diff options
context:
space:
mode:
authorobrien <obrien@FreeBSD.org>2002-12-02 09:06:04 +0000
committerobrien <obrien@FreeBSD.org>2002-12-02 09:06:04 +0000
commit4f4b0b5073010ff850cc95a6bd074066eeb7dccb (patch)
treeb6de1df6076881154726637e90c9d9bae94bab79 /contrib/binutils/ld
parent70d0c6024ff722929b55e70683c5bb4bd3d3b07f (diff)
downloadFreeBSD-src-4f4b0b5073010ff850cc95a6bd074066eeb7dccb.zip
FreeBSD-src-4f4b0b5073010ff850cc95a6bd074066eeb7dccb.tar.gz
Import of Binutils from the FSF 2.13 branch (just pre-.2 release).
These bits are taken from the FSF anoncvs repo on 27-Oct-2002 21:12:00 EST.
Diffstat (limited to 'contrib/binutils/ld')
-rw-r--r--contrib/binutils/ld/ChangeLog108
-rw-r--r--contrib/binutils/ld/configure.host2
-rw-r--r--contrib/binutils/ld/configure.tgt12
-rw-r--r--contrib/binutils/ld/emulparams/elf32ppc.sh4
-rw-r--r--contrib/binutils/ld/emulparams/elf64_s390.sh30
-rw-r--r--contrib/binutils/ld/emulparams/elf64_sparc.sh45
-rw-r--r--contrib/binutils/ld/emulparams/elf64ppc.sh2
-rw-r--r--contrib/binutils/ld/emulparams/elf_x86_64.sh35
-rwxr-xr-xcontrib/binutils/ld/emulparams/shelf.sh14
-rw-r--r--contrib/binutils/ld/emultempl/elf32.em103
-rw-r--r--contrib/binutils/ld/emultempl/pe.em2
-rw-r--r--contrib/binutils/ld/ld.123
-rw-r--r--contrib/binutils/ld/ldctor.c2
-rw-r--r--contrib/binutils/ld/ldexp.c2
-rw-r--r--contrib/binutils/ld/ldfile.c96
-rw-r--r--contrib/binutils/ld/ldgram.y7
-rw-r--r--contrib/binutils/ld/ldlang.c63
-rw-r--r--contrib/binutils/ld/ldlang.h1
-rw-r--r--contrib/binutils/ld/ldlex.l2
-rw-r--r--contrib/binutils/ld/ldmain.c2
-rw-r--r--contrib/binutils/ld/ldmisc.c2
-rw-r--r--contrib/binutils/ld/ldwrite.c2
-rw-r--r--contrib/binutils/ld/lexsup.c2
-rw-r--r--contrib/binutils/ld/mri.c2
-rw-r--r--contrib/binutils/ld/pe-dll.c29
-rw-r--r--contrib/binutils/ld/po/ld.pot570
-rw-r--r--contrib/binutils/ld/scripttempl/pe.sc5
27 files changed, 742 insertions, 425 deletions
diff --git a/contrib/binutils/ld/ChangeLog b/contrib/binutils/ld/ChangeLog
index 7b79459..428de76 100644
--- a/contrib/binutils/ld/ChangeLog
+++ b/contrib/binutils/ld/ChangeLog
@@ -1,3 +1,111 @@
+2002-11-27 David O'Brien <obrien@FreeBSD.org>
+
+ * configure.host: Fix generic FreeBSD configuration entry.
+
+2002-11-20 Alan Modra <amodra@bigpond.net.au>
+
+ * emulparams/elf64ppc.sh (DATA_ADDR): Don't define.
+
+2002-10-30 Daniel Jacobowitz <drow@mvista.com>
+
+ * ld.1: Regenerated.
+ * ldgram.c: Regenerated.
+ * po/ld.pot: Regenerated.
+
+2002-10-29 Daniel Jacobowitz <drow@mvista.com>
+
+ * emultempl/aix.em: Use include <> for generated headers.
+ * emultempl/beos.em: Likewise.
+ * emultempl/elf32.em: Likewise.
+ * emultempl/pe.em: Likewise.
+ * ldctor.c: Likewise.
+ * ldexp.c: Likewise.
+ * ldfile.c: Likewise.
+ * ldlang.c: Likewise.
+ * ldlex.c: Likewise.
+ * ldlex.l: Likewise.
+ * ldmain.c: Likewise.
+ * ldmisc.c: Likewise.
+ * ldwrite.c: Likewise.
+ * lexsup.c: Likewise.
+ * mri.c: Likewise.
+ * pe-dll.c: Likewise.
+
+2002-10-28 Daniel Jacobowitz <drow@mvista.com>
+
+ Merge from mainline:
+ 2002-10-23 Jakub Jelinek <jakub@redhat.com>
+ * emultempl/elf32.em (place_orphan): Don't put non-allocated .rel*
+ sections into .rel{,a}.dyn.
+
+ 2002-10-21 Danny Smith <dannysmith@users.sourceforeg.net>
+ * scripttempl/pe.sc (__RUNTIME_PSEUDO_RELOC_LIST__,
+ __RUNTIME_PSEUDO_RELOC_LIST_END__): Add only when relocating.
+
+ 2002-10-16 Jakub Jelinek <jakub@redhat.com>
+ * configure.tgt (s390x-*-linux*): Add elf_s390 emulation.
+ (s390-*-linux*): Add elf64_s390 emulation if want64.
+ * emulparams/elf64_sparc.sh (LIB_PATH): Update to match 2002-05-22
+ genscript.sh changes.
+ * emulparams/elf_x86_64.sh (LIB_PATH): Likewise.
+ * emulparams/elf64_s390.sh (LIB_PATH): Set up native 64 bit dirs.
+
+ 2002-10-10 Jakub Jelinek <jakub@redhat.com>
+ * ldfile.c (ldfile_try_open_bfd): When searching skip linker scripts if
+ they have OUTPUT_FORMAT not matching actual output format.
+ * ldlang.c (lang_get_output_target): New function.
+ (open_output): Use it.
+ * ldlang.h (lang_get_output_target): New prototype.
+
+ 2002-10-07 Ralf Habacker <Ralf.Habacker@freenet.de>
+ * pe-dll.cc (autofilter_symbolprefixlist): Don't re-export
+ auto-import symbols.
+ (make_one): Create _nm_<symbol> for data only.
+
+ 2002-10-10 Alan Modra <amodra@bigpond.net.au>
+ * emultempl/elf32.em (output_rel_find): Prefer .rel script sections
+ when orphan is .rel, .rela when orphan is .rela.
+ (gld${EMULATION_NAME}_place_orphan): Handle combreloc .rel* case
+ first. Remove outsecname var.
+
+ 2002-09-30 Alan Modra <amodra@bigpond.net.au>
+ * scripttempl/elfd30v.sc: Order reloc sections placing .plt last.
+ * scripttempl/elfm68hc11.sc: Likewise.
+ * scripttempl/elfm68hc12.sc: Likewise.
+
+ * emultempl/elf32.em (output_rel_find): Always place orphan loadable
+ reloc sections just before .rel.plt/.rela.plt.
+ (gld${EMULATION_NAME}_place_orphan <.rel>): Remove combreloc code.
+ Only put loadable reloc sections in hold_rel.
+
+ 2002-09-29 H.J. Lu <hjl@gnu.org>
+ * emulparams/elf32ppc.sh (OTHER_GOT_RELOC_SECTIONS): New.
+
+ 2002-08-27 Egor Duda <deo@logos-m.ru>
+ * scripttempl/pe.sc: Handle .rdata_runtime_pseudo_reloc sections.
+ Add symbols for application to access them.
+
+2002-10-15 Alan Modra <amodra@bigpond.net.au>
+
+ * ldlang.c (load_symbols): Revert last change.
+
+2002-10-14 Alan Modra <amodra@bigpond.net.au>
+
+ * ldlang.c (load_symbols): Don't call bfd_link_add_symbols when
+ just_syms_flag.
+ (lang_reasonable_defaults): Don't compare against false.
+ (size_input_section): Likewise.
+ (lang_size_sections_1): Likewise.
+ (lang_do_assignments): Likewise.
+ (lang_add_output): Likewise.
+
+2002-10-11 Alan Modra <amodra@bigpond.net.au>
+
+ * pe-dll.c (make_import_fixup_mark): Avoid type-punned pointer.
+
+ * ldgram.y (memory_spec): Provide empty action.
+ (section <NAME>): Likewise.
+
2002-10-02 Alan Modra <amodra@bigpond.net.au>
* emulparams/elf64ppc.sh (MAXPAGESIZE): Set to 0x10000.
diff --git a/contrib/binutils/ld/configure.host b/contrib/binutils/ld/configure.host
index 56ed187..436a912 100644
--- a/contrib/binutils/ld/configure.host
+++ b/contrib/binutils/ld/configure.host
@@ -25,7 +25,7 @@ case "${host}" in
# Older versions of gcc do not use a specs file. In those cases,
# gcc -print-file-name=specs will simply print specs. We create a
# dummy specs files to handle this.
- echo "-dynamic-linker `${CC} --print-file-name=ld-elf.so.1`" > specs
+ echo "-dynamic-linker `${CC} --print-prog-name=ld-elf.so.1`" > specs
HOSTING_CRT0='-dynamic-linker `${CC} --print-file-name=ld-elf.so.1` `${CC} --print-file-name=crt1.o` `${CC} --print-file-name=crti.o` `${CC} --print-file-name=crtbegin.o`'
HOSTING_LIBS='-L`dirname \`${CC} --print-file-name=libc.so\`` '"$HOSTING_LIBS"' `if [ -f ../gcc/crtend.o ]; then echo ../gcc/crtend.o; else ${CC} --print-file-name=crtend.o; fi` `${CC} --print-file-name=crtn.o`'
;;
diff --git a/contrib/binutils/ld/configure.tgt b/contrib/binutils/ld/configure.tgt
index c1d7620..bcdbb04 100644
--- a/contrib/binutils/ld/configure.tgt
+++ b/contrib/binutils/ld/configure.tgt
@@ -491,8 +491,16 @@ fr30-*-*) targ_emul=elf32fr30 ;;
mcore-*-pe) targ_emul=mcorepe ;
targ_extra_ofiles="deffilep.o pe-dll.o" ;;
mcore-*-elf) targ_emul=elf32mcore ;;
-s390x-*-linux*) targ_emul=elf64_s390 ;;
-s390-*-linux*) targ_emul=elf_s390 ;;
+s390x-*-linux*) targ_emul=elf64_s390
+ targ_extra_emuls=elf_s390
+ targ_extra_libpath=$targ_extra_emuls
+ tdir_elf_s390=`echo ${targ_alias} | sed -e 's/s390x/s390/'` ;;
+s390-*-linux*) targ_emul=elf_s390
+ if test "${want64}" = "true"; then
+ targ_extra_emuls=elf64_s390
+ targ_extra_libpath=$targ_extra_emuls
+ tdir_elf64_s390=`echo ${targ_alias} | sed -e 's/s390/s390x/'`
+ fi ;;
*-*-ieee*) targ_emul=vanilla ;;
*)
diff --git a/contrib/binutils/ld/emulparams/elf32ppc.sh b/contrib/binutils/ld/emulparams/elf32ppc.sh
index f88198f..778260b 100644
--- a/contrib/binutils/ld/emulparams/elf32ppc.sh
+++ b/contrib/binutils/ld/emulparams/elf32ppc.sh
@@ -17,6 +17,10 @@ OTHER_READWRITE_SECTIONS="
.got1 ${RELOCATING-0} : { *(.got1) }
.got2 ${RELOCATING-0} : { *(.got2) }
"
+OTHER_GOT_RELOC_SECTIONS="
+ .rela.got1 ${RELOCATING-0} : { *(.rela.got1) }
+ .rela.got2 ${RELOCATING-0} : { *(.rela.got2) }
+"
# Treat a host that matches the target with the possible exception of "64"
# in the name as if it were native.
diff --git a/contrib/binutils/ld/emulparams/elf64_s390.sh b/contrib/binutils/ld/emulparams/elf64_s390.sh
index 8416c89..236fd17 100644
--- a/contrib/binutils/ld/emulparams/elf64_s390.sh
+++ b/contrib/binutils/ld/emulparams/elf64_s390.sh
@@ -9,3 +9,33 @@ MACHINE=
NOP=0x07070707
TEMPLATE_NAME=elf32
GENERATE_SHLIB_SCRIPT=yes
+
+# Treat a host that matches the target with the possible exception of "x"
+# in the name as if it were native.
+if test `echo "$host" | sed -e s/390x/390/` \
+ = `echo "$target" | sed -e s/390x/390/`; then
+ case " $EMULATION_LIBPATH " in
+ *" ${EMULATION_NAME} "*)
+ LIB_PATH=${libdir}
+ for lib in ${NATIVE_LIB_DIRS}; do
+ case :${LIB_PATH}: in
+ *:${lib}:*) ;;
+ *) LIB_PATH=${LIB_PATH}:${lib} ;;
+ esac
+ done
+
+ case "$target" in
+ s390*-linux*)
+ suffix=64 ;;
+ esac
+
+ # Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first
+ # on Linux.
+ if [ -n "$suffix" ]; then
+ case "$EMULATION_NAME" in
+ *64*)
+ LIB_PATH=`echo ${LIB_PATH}: | sed -e s,:,$suffix:,g`$LIB_PATH ;;
+ esac
+ fi ;;
+ esac
+fi
diff --git a/contrib/binutils/ld/emulparams/elf64_sparc.sh b/contrib/binutils/ld/emulparams/elf64_sparc.sh
index a4706b5..7a4d2dc 100644
--- a/contrib/binutils/ld/emulparams/elf64_sparc.sh
+++ b/contrib/binutils/ld/emulparams/elf64_sparc.sh
@@ -22,36 +22,37 @@ case "$target" in
;;
esac
-if [ "x${host}" = "x${target}" ]; then
+# Treat a host that matches the target with the possible exception of "64"
+# and "v7", "v8", "v9" in the name as if it were native.
+if test `echo "$host" | sed -e 's/64//;s/v[789]//'` \
+ = `echo "$target" | sed -e 's/64//;s/v[789]//'`; then
case " $EMULATION_LIBPATH " in
*" ${EMULATION_NAME} "*)
- # Native, and default or emulation requesting LIB_PATH.
+ LIB_PATH=${libdir}
+ for lib in ${NATIVE_LIB_DIRS}; do
+ case :${LIB_PATH}: in
+ *:${lib}:*) ;;
+ *) LIB_PATH=${LIB_PATH}:${lib} ;;
+ esac
+ done
# Linux and Solaris modify the default library search path
# to first include a 64-bit specific directory. It's put
# in slightly different places on the two systems.
case "$target" in
- sparc*-linux*)
- suffix=64 ;;
- sparc*-solaris*)
- suffix=/sparcv9 ;;
+ sparc*-linux*)
+ suffix=64 ;;
+ sparc*-solaris*)
+ suffix=/sparcv9 ;;
esac
- if [ -n "${suffix}" ]; then
-
- LIB_PATH=/lib${suffix}:/lib
- LIB_PATH=${LIB_PATH}:/usr/lib${suffix}:/usr/lib
- if [ -n "${NATIVE_LIB_DIRS}" ]; then
- LIB_PATH=${LIB_PATH}:`echo ${NATIVE_LIB_DIRS} | sed s_:_${suffix}:_g`${suffix}:${NATIVE_LIB_DIRS}
- fi
- if [ "${libdir}" != /usr/lib ]; then
- LIB_PATH=${LIB_PATH}:${libdir}${suffix}:${libdir}
- fi
- if [ "${libdir}" != /usr/local/lib ]; then
- LIB_PATH=${LIB_PATH}:/usr/local/lib${suffix}:/usr/local/lib
- fi
-
- fi
- ;;
+ # Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first
+ # on Linux and /lib/sparcv9, /usr/lib/sparcv9 etc. on Solaris.
+ if [ -n "$suffix" ]; then
+ case "$EMULATION_NAME" in
+ *64*)
+ LIB_PATH=`echo ${LIB_PATH}: | sed -e s,:,$suffix:,g`$LIB_PATH ;;
+ esac
+ fi ;;
esac
fi
diff --git a/contrib/binutils/ld/emulparams/elf64ppc.sh b/contrib/binutils/ld/emulparams/elf64ppc.sh
index e3a8177..add6c54 100644
--- a/contrib/binutils/ld/emulparams/elf64ppc.sh
+++ b/contrib/binutils/ld/emulparams/elf64ppc.sh
@@ -5,7 +5,7 @@ GENERATE_SHLIB_SCRIPT=yes
SCRIPT_NAME=elf
OUTPUT_FORMAT="elf64-powerpc"
TEXT_START_ADDR=0x10000000
-DATA_ADDR="ALIGN (0x10000000) + (. & (${MAXPAGESIZE} - 1))"
+#DATA_ADDR="ALIGN (0x10000000) + (. & (${MAXPAGESIZE} - 1))"
MAXPAGESIZE=0x10000
COMMONPAGESIZE=0x1000
ARCH=powerpc:common64
diff --git a/contrib/binutils/ld/emulparams/elf_x86_64.sh b/contrib/binutils/ld/emulparams/elf_x86_64.sh
index 1786e33..a428bfc 100644
--- a/contrib/binutils/ld/emulparams/elf_x86_64.sh
+++ b/contrib/binutils/ld/emulparams/elf_x86_64.sh
@@ -15,30 +15,27 @@ NO_SMALL_DATA=yes
if [ "x${host}" = "x${target}" ]; then
case " $EMULATION_LIBPATH " in
*" ${EMULATION_NAME} "*)
- # Native, and default or emulation requesting LIB_PATH.
+ LIB_PATH=${libdir}
+ for lib in ${NATIVE_LIB_DIRS}; do
+ case :${LIB_PATH}: in
+ *:${lib}:*) ;;
+ *) LIB_PATH=${LIB_PATH}:${lib} ;;
+ esac
+ done
# Linux modify the default library search path to first include
# a 64-bit specific directory.
case "$target" in
- x86_64*-linux*)
- suffix=64 ;;
+ x86_64*-linux*)
+ suffix=64 ;;
esac
- if [ -n "${suffix}" ]; then
-
- LIB_PATH=/lib${suffix}:/lib
- LIB_PATH=${LIB_PATH}:/usr/lib${suffix}:/usr/lib
- if [ -n "${NATIVE_LIB_DIRS}" ]; then
- LIB_PATH=${LIB_PATH}:`echo ${NATIVE_LIB_DIRS} | sed s_:_${suffix}:_g`${suffix}:${NATIVE_LIB_DIRS}
- fi
- if [ "${libdir}" != /usr/lib ]; then
- LIB_PATH=${LIB_PATH}:${libdir}${suffix}:${libdir}
- fi
- if [ "${libdir}" != /usr/local/lib ]; then
- LIB_PATH=${LIB_PATH}:/usr/local/lib${suffix}:/usr/local/lib
- fi
-
- fi
- ;;
+ # Look for 64 bit target libraries in /lib64, /usr/lib64 etc., first.
+ if [ -n "$suffix" ]; then
+ case "$EMULATION_NAME" in
+ *64*)
+ LIB_PATH=`echo ${LIB_PATH}: | sed -e s,:,$suffix:,g`$LIB_PATH ;;
+ esac
+ fi ;;
esac
fi
diff --git a/contrib/binutils/ld/emulparams/shelf.sh b/contrib/binutils/ld/emulparams/shelf.sh
index 27b73b6..5c0c9d6 100755
--- a/contrib/binutils/ld/emulparams/shelf.sh
+++ b/contrib/binutils/ld/emulparams/shelf.sh
@@ -17,4 +17,16 @@ CTOR_START='___ctors = .;'
CTOR_END='___ctors_end = .;'
DTOR_START='___dtors = .;'
DTOR_END='___dtors_end = .;'
-STACK_ADDR=0x30000
+# This is like setting STACK_ADDR to 0x30000, except that the setting can
+# be overridden, e.g. --defsym _stack=0x0f00, and that we put an extra
+# sentinal value at the bottom.
+# N.B. We can't use PROVIDE to set the default value in a symbol because
+# the address is needed to place the .stack section, which in turn is needed
+# to hold the sentinel value(s).
+OTHER_SECTIONS=" .stack ${RELOCATING-0}${RELOCATING+(DEFINED(_stack) ? _stack : 0x30000)} :
+ {
+ ${RELOCATING+_stack = .;}
+ *(.stack)
+ LONG(0xdeaddead)
+ }"
+
diff --git a/contrib/binutils/ld/emultempl/elf32.em b/contrib/binutils/ld/emultempl/elf32.em
index 26e4c46..9bfed6e 100644
--- a/contrib/binutils/ld/emultempl/elf32.em
+++ b/contrib/binutils/ld/emultempl/elf32.em
@@ -49,7 +49,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "ldlang.h"
#include "ldfile.h"
#include "ldemul.h"
-#include "ldgram.h"
+#include <ldgram.h>
#include "elf/common.h"
static void gld${EMULATION_NAME}_before_parse
@@ -75,7 +75,7 @@ static void gld${EMULATION_NAME}_before_allocation
static boolean gld${EMULATION_NAME}_open_dynamic_archive
PARAMS ((const char *, search_dirs_type *, lang_input_statement_type *));
static lang_output_section_statement_type *output_rel_find
- PARAMS ((void));
+ PARAMS ((asection *));
static asection *output_prev_sec_find
PARAMS ((lang_output_section_statement_type *));
static boolean gld${EMULATION_NAME}_place_orphan
@@ -996,24 +996,46 @@ cat >>e${EMULATION_NAME}.c <<EOF
/* A variant of lang_output_section_find. Used by place_orphan. */
static lang_output_section_statement_type *
-output_rel_find ()
+output_rel_find (sec)
+ asection *sec;
{
lang_statement_union_type *u;
lang_output_section_statement_type *lookup;
+ lang_output_section_statement_type *last = NULL;
+ lang_output_section_statement_type *last_rel = NULL;
+ lang_output_section_statement_type *last_rel_alloc = NULL;
+ int rela = sec->name[4] == 'a';
- for (u = lang_output_section_statement.head;
- u != (lang_statement_union_type *) NULL;
- u = lookup->next)
+ for (u = lang_output_section_statement.head; u; u = lookup->next)
{
lookup = &u->output_section_statement;
- if (strncmp (".rel", lookup->name, 4) == 0
- && lookup->bfd_section != NULL
- && (lookup->bfd_section->flags & SEC_ALLOC) != 0)
+ if (strncmp (".rel", lookup->name, 4) == 0)
{
- return lookup;
+ /* Don't place after .rel.plt as doing so results in wrong
+ dynamic tags. Also, place allocated reloc sections before
+ non-allocated. */
+ int lookrela = lookup->name[4] == 'a';
+
+ if (strcmp (".plt", lookup->name + 4 + lookrela) == 0
+ || (lookup->bfd_section != NULL
+ && (lookup->bfd_section->flags & SEC_ALLOC) == 0))
+ break;
+ last = lookup;
+ if (rela == lookrela)
+ last_rel = lookup;
+ if (lookup->bfd_section != NULL
+ && (lookup->bfd_section->flags & SEC_ALLOC) != 0)
+ last_rel_alloc = lookup;
}
}
- return (lang_output_section_statement_type *) NULL;
+
+ if (last_rel_alloc)
+ return last_rel_alloc;
+
+ if (last_rel)
+ return last_rel;
+
+ return last;
}
/* Find the last output section before given output statement.
@@ -1069,13 +1091,24 @@ gld${EMULATION_NAME}_place_orphan (file, s)
lang_statement_list_type add;
etree_type *address;
const char *secname;
- const char *outsecname;
const char *ps = NULL;
lang_output_section_statement_type *os;
+ int isdyn = 0;
secname = bfd_get_section_name (s->owner, s);
+ if (! link_info.relocateable
+ && link_info.combreloc
+ && (s->flags & SEC_ALLOC)
+ && strncmp (secname, ".rel", 4) == 0)
+ {
+ if (secname[4] == 'a')
+ secname = ".rela.dyn";
+ else
+ secname = ".rel.dyn";
+ isdyn = 1;
+ }
- if (! config.unique_orphan_sections && ! unique_section_p (secname))
+ if (isdyn || (!config.unique_orphan_sections && !unique_section_p (secname)))
{
/* Look through the script to see where to place this section. */
os = lang_output_section_find (secname);
@@ -1138,27 +1171,10 @@ gld${EMULATION_NAME}_place_orphan (file, s)
&& HAVE_SECTION (hold_data, ".data"))
place = &hold_data;
else if (strncmp (secname, ".rel", 4) == 0
+ && (s->flags & SEC_LOAD) != 0
&& (hold_rel.os != NULL
- || (hold_rel.os = output_rel_find ()) != NULL))
- {
- if (! link_info.relocateable && link_info.combreloc)
- {
- if (strncmp (secname, ".rela", 5) == 0)
- os = lang_output_section_find (".rela.dyn");
- else
- os = lang_output_section_find (".rel.dyn");
-
- if (os != NULL
- && os->bfd_section != NULL
- && ((s->flags ^ os->bfd_section->flags)
- & (SEC_LOAD | SEC_ALLOC)) == 0)
- {
- lang_add_section (&os->children, s, os, file);
- return true;
- }
- }
- place = &hold_rel;
- }
+ || (hold_rel.os = output_rel_find (s)) != NULL))
+ place = &hold_rel;
else if ((s->flags & (SEC_CODE | SEC_READONLY)) == SEC_READONLY
&& HAVE_SECTION (hold_rodata, ".rodata"))
place = &hold_rodata;
@@ -1171,13 +1187,10 @@ gld${EMULATION_NAME}_place_orphan (file, s)
/* Choose a unique name for the section. This will be needed if the
same section name appears in the input file with different
loadable or allocatable characteristics. */
- outsecname = secname;
- if (bfd_get_section_by_name (output_bfd, outsecname) != NULL)
+ if (bfd_get_section_by_name (output_bfd, secname) != NULL)
{
- outsecname = bfd_get_unique_section_name (output_bfd,
- outsecname,
- &count);
- if (outsecname == NULL)
+ secname = bfd_get_unique_section_name (output_bfd, secname, &count);
+ if (secname == NULL)
einfo ("%F%P: place_orphan failed: %E\n");
}
@@ -1198,7 +1211,7 @@ gld${EMULATION_NAME}_place_orphan (file, s)
{
/* If the name of the section is representable in C, then create
symbols to mark the start and the end of the section. */
- for (ps = outsecname; *ps != '\0'; ps++)
+ for (ps = secname; *ps != '\0'; ps++)
if (! ISALNUM (*ps) && *ps != '_')
break;
if (*ps == '\0')
@@ -1206,8 +1219,8 @@ gld${EMULATION_NAME}_place_orphan (file, s)
char *symname;
etree_type *e_align;
- symname = (char *) xmalloc (ps - outsecname + sizeof "__start_");
- sprintf (symname, "__start_%s", outsecname);
+ symname = (char *) xmalloc (ps - secname + sizeof "__start_");
+ sprintf (symname, "__start_%s", secname);
e_align = exp_unop (ALIGN_K,
exp_intop ((bfd_vma) 1 << s->alignment_power));
lang_add_assignment (exp_assop ('=', symname, e_align));
@@ -1219,7 +1232,7 @@ gld${EMULATION_NAME}_place_orphan (file, s)
else
address = NULL;
- os = lang_enter_output_section_statement (outsecname, address, 0,
+ os = lang_enter_output_section_statement (secname, address, 0,
(bfd_vma) 0,
(etree_type *) NULL,
(etree_type *) NULL,
@@ -1240,8 +1253,8 @@ gld${EMULATION_NAME}_place_orphan (file, s)
if (place != NULL)
stat_ptr = &add;
- symname = (char *) xmalloc (ps - outsecname + sizeof "__stop_");
- sprintf (symname, "__stop_%s", outsecname);
+ symname = (char *) xmalloc (ps - secname + sizeof "__stop_");
+ sprintf (symname, "__stop_%s", secname);
lang_add_assignment (exp_assop ('=', symname,
exp_nameop (NAME, ".")));
}
diff --git a/contrib/binutils/ld/emultempl/pe.em b/contrib/binutils/ld/emultempl/pe.em
index 37146ab..474b984 100644
--- a/contrib/binutils/ld/emultempl/pe.em
+++ b/contrib/binutils/ld/emultempl/pe.em
@@ -56,7 +56,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "ldlang.h"
#include "ldfile.h"
#include "ldemul.h"
-#include "ldgram.h"
+#include <ldgram.h>
#include "ldlex.h"
#include "ldmisc.h"
#include "ldctor.h"
diff --git a/contrib/binutils/ld/ld.1 b/contrib/binutils/ld/ld.1
index 79d5d65..9d7a53e 100644
--- a/contrib/binutils/ld/ld.1
+++ b/contrib/binutils/ld/ld.1
@@ -1,4 +1,4 @@
-.\" Automatically generated by Pod::Man v1.3, Pod::Parser v1.13
+.\" Automatically generated by Pod::Man v1.34, Pod::Parser v1.13
.\"
.\" Standard preamble:
.\" ========================================================================
@@ -21,7 +21,6 @@
..
.de Ve \" End verbatim text
.ft R
-
.fi
..
.\" Set up some character translations and predefined strings. \*(-- will
@@ -129,10 +128,9 @@
.\" ========================================================================
.\"
.IX Title "LD 1"
-.TH LD 1 "2002-08-05" "binutils-2.12.91" "GNU Development Tools"
-.UC
+.TH LD 1 "2002-10-30" "binutils-2.13" "GNU Development Tools"
.SH "NAME"
-ld \- Using \s-1LD\s0, the \s-1GNU\s0 linker
+ld \- Using LD, the GNU linker
.SH "SYNOPSIS"
.IX Header "SYNOPSIS"
ld [\fBoptions\fR] \fIobjfile\fR ...
@@ -177,6 +175,7 @@ link a file \f(CW\*(C`hello.o\*(C'\fR:
.Vb 1
\& ld -o <output> /lib/crt0.o hello.o -lc
.Ve
+.PP
This tells \fBld\fR to produce a file called \fIoutput\fR as the
result of linking the file \f(CW\*(C`/lib/crt0.o\*(C'\fR with \f(CW\*(C`hello.o\*(C'\fR and
the library \f(CW\*(C`libc.a\*(C'\fR, which will come from the standard search
@@ -242,6 +241,7 @@ compiler driver) like this:
.Vb 1
\& gcc -Wl,--startgroup foo.o bar.o -Wl,--endgroup
.Ve
+.PP
This is important, because otherwise the compiler driver program may
silently drop the linker options, resulting in a bad link.
.PP
@@ -958,6 +958,11 @@ shared libraries is normal since the kernel patches them at load time to
select which function is most appropriate for the current architecture.
I.E. dynamically select an appropriate memset function. Apparently it
is also normal for \s-1HPPA\s0 shared libraries to have undefined symbols.
+.IP "\fB\-\-no\-undefined\-version\fR" 4
+.IX Item "--no-undefined-version"
+Normally when a symbol has an undefined version, the linker will ignore
+it. This option disallows symbols with undefined version and a fatal error
+will be issued instead.
.IP "\fB\-\-no\-warn\-mismatch\fR" 4
.IX Item "--no-warn-mismatch"
Normally \fBld\fR will give an error if you try to link together input
@@ -1350,6 +1355,7 @@ Here is a trivial example:
\& return __real_malloc (c);
\& }
.Ve
+.Sp
If you link other code with this file using \fB\-\-wrap malloc\fR, then
all calls to \f(CW\*(C`malloc\*(C'\fR will call the function \f(CW\*(C`_\|_wrap_malloc\*(C'\fR
instead. The call to \f(CW\*(C`_\|_real_malloc\*(C'\fR in \f(CW\*(C`_\|_wrap_malloc\*(C'\fR will
@@ -1566,6 +1572,7 @@ a variable, or b) make the 'constant' index a variable. Thus:
\& extern_array[1] -->
\& { volatile type *t=extern_array; t[1] }
.Ve
+.Sp
or
.Sp
.Vb 3
@@ -1573,6 +1580,7 @@ or
\& extern_array[1] -->
\& { volatile int t=1; extern_array[t] }
.Ve
+.Sp
For structs (and most other multiword data types) the only option
is to make the struct itself (or the long long, or the ...) variable:
.Sp
@@ -1581,6 +1589,7 @@ is to make the struct itself (or the long long, or the ...) variable:
\& extern_struct.field -->
\& { volatile struct s *t=&extern_struct; t->field }
.Ve
+.Sp
or
.Sp
.Vb 3
@@ -1588,6 +1597,7 @@ or
\& extern_ll -->
\& { volatile long long * local_ll=&extern_ll; *local_ll }
.Ve
+.Sp
A second method of dealing with this difficulty is to abandon
\&'auto\-import' for the offending symbol and mark it with
\&\f(CW\*(C`_\|_declspec(dllimport)\*(C'\fR. However, in practice that
@@ -1608,6 +1618,7 @@ Original:
\& printf("%d\en",arr[1]);
\& }
.Ve
+.Sp
Solution 1:
.Sp
.Vb 9
@@ -1621,6 +1632,7 @@ Solution 1:
\& printf("%d\en",parr[1]);
\& }
.Ve
+.Sp
Solution 2:
.Sp
.Vb 14
@@ -1639,6 +1651,7 @@ Solution 2:
\& printf("%d\en",arr[1]);
\& }
.Ve
+.Sp
A third way to avoid this problem is to re-code your
library to use a functional interface rather than a data interface
for the offending variables (e.g. \fIset_foo()\fR and \fIget_foo()\fR accessor
diff --git a/contrib/binutils/ld/ldctor.c b/contrib/binutils/ld/ldctor.c
index 9e79921..aa6a05b 100644
--- a/contrib/binutils/ld/ldctor.c
+++ b/contrib/binutils/ld/ldctor.c
@@ -29,7 +29,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "ldexp.h"
#include "ldlang.h"
#include "ldmisc.h"
-#include "ldgram.h"
+#include <ldgram.h>
#include "ldmain.h"
#include "ldctor.h"
diff --git a/contrib/binutils/ld/ldexp.c b/contrib/binutils/ld/ldexp.c
index e45c470..e88e322 100644
--- a/contrib/binutils/ld/ldexp.c
+++ b/contrib/binutils/ld/ldexp.c
@@ -36,7 +36,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "ldmain.h"
#include "ldmisc.h"
#include "ldexp.h"
-#include "ldgram.h"
+#include <ldgram.h>
#include "ldlang.h"
#include "libiberty.h"
#include "safe-ctype.h"
diff --git a/contrib/binutils/ld/ldfile.c b/contrib/binutils/ld/ldfile.c
index 9fb2b2d..d706eec 100644
--- a/contrib/binutils/ld/ldfile.c
+++ b/contrib/binutils/ld/ldfile.c
@@ -31,7 +31,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "ldlang.h"
#include "ldfile.h"
#include "ldmain.h"
-#include "ldgram.h"
+#include <ldgram.h>
#include "ldlex.h"
#include "ldemul.h"
#include "libiberty.h"
@@ -131,7 +131,99 @@ ldfile_try_open_bfd (attempt, entry)
if (check != NULL)
{
if (! bfd_check_format (check, bfd_object))
- return true;
+ {
+ if (check == entry->the_bfd
+ && bfd_get_error () == bfd_error_file_not_recognized
+ && ! ldemul_unrecognized_file (entry))
+ {
+ int token, skip = 0;
+ char *arg, *arg1, *arg2, *arg3;
+ extern FILE *yyin;
+
+ /* Try to interpret the file as a linker script. */
+ ldfile_open_command_file (attempt);
+
+ ldfile_assumed_script = true;
+ parser_input = input_selected;
+ ldlex_both ();
+ token = INPUT_SCRIPT;
+ while (token != 0)
+ {
+ switch (token)
+ {
+ case OUTPUT_FORMAT:
+ if ((token = yylex ()) != '(')
+ continue;
+ if ((token = yylex ()) != NAME)
+ continue;
+ arg1 = yylval.name;
+ arg2 = NULL;
+ arg3 = NULL;
+ token = yylex ();
+ if (token == ',')
+ {
+ if ((token = yylex ()) != NAME)
+ {
+ free (arg1);
+ continue;
+ }
+ arg2 = yylval.name;
+ if ((token = yylex ()) != ','
+ || (token = yylex ()) != NAME)
+ {
+ free (arg1);
+ free (arg2);
+ continue;
+ }
+ arg3 = yylval.name;
+ token = yylex ();
+ }
+ if (token == ')')
+ {
+ switch (command_line.endian)
+ {
+ default:
+ case ENDIAN_UNSET:
+ arg = arg1; break;
+ case ENDIAN_BIG:
+ arg = arg2 ? arg2 : arg1; break;
+ case ENDIAN_LITTLE:
+ arg = arg3 ? arg3 : arg1; break;
+ }
+ if (strcmp (arg, lang_get_output_target ()) != 0)
+ skip = 1;
+ }
+ free (arg1);
+ if (arg2) free (arg2);
+ if (arg3) free (arg3);
+ break;
+ case NAME:
+ case LNAME:
+ case VERS_IDENTIFIER:
+ case VERS_TAG:
+ free (yylval.name);
+ break;
+ case INT:
+ if (yylval.bigint.str)
+ free (yylval.bigint.str);
+ break;
+ }
+ token = yylex ();
+ }
+ ldfile_assumed_script = false;
+ fclose (yyin);
+ yyin = NULL;
+ if (skip)
+ {
+ einfo (_("%P: skipping incompatible %s when searching for %s\n"),
+ attempt, entry->local_sym_name);
+ bfd_close (entry->the_bfd);
+ entry->the_bfd = NULL;
+ return false;
+ }
+ }
+ return true;
+ }
if ((bfd_arch_get_compatible (check, output_bfd) == NULL)
/* XCOFF archives can have 32 and 64 bit objects */
diff --git a/contrib/binutils/ld/ldgram.y b/contrib/binutils/ld/ldgram.y
index 3de9326..d2533c2 100644
--- a/contrib/binutils/ld/ldgram.y
+++ b/contrib/binutils/ld/ldgram.y
@@ -626,11 +626,11 @@ memory_spec_list:
;
-memory_spec: NAME
- { region = lang_memory_region_lookup($1); }
+memory_spec: NAME
+ { region = lang_memory_region_lookup($1); }
attributes_opt ':'
origin_spec opt_comma length_spec
-
+ {}
;
origin_spec:
@@ -845,6 +845,7 @@ section: NAME { ldlex_expression(); }
lang_leave_output_section_statement ($14, $11, $13, $12);
}
opt_comma
+ {}
| OVERLAY
{ ldlex_expression (); }
opt_exp_without_type opt_nocrossrefs opt_at
diff --git a/contrib/binutils/ld/ldlang.c b/contrib/binutils/ld/ldlang.c
index 79de098..0eb06b2 100644
--- a/contrib/binutils/ld/ldlang.c
+++ b/contrib/binutils/ld/ldlang.c
@@ -31,7 +31,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "ldmain.h"
#include "ldexp.h"
#include "ldlang.h"
-#include "ldgram.h"
+#include <ldgram.h>
#include "ldlex.h"
#include "ldmisc.h"
#include "ldctor.h"
@@ -1783,6 +1783,29 @@ get_first_input_target ()
return target;
}
+const char *
+lang_get_output_target ()
+{
+ const char *target;
+
+ /* Has the user told us which output format to use? */
+ if (output_target != (char *) NULL)
+ return output_target;
+
+ /* No - has the current target been set to something other than
+ the default? */
+ if (current_target != default_target)
+ return current_target;
+
+ /* No - can we determine the format of the first input file? */
+ target = get_first_input_target ();
+ if (target != NULL)
+ return target;
+
+ /* Failed - use the default output target. */
+ return default_target;
+}
+
/* Open the output file. */
static bfd *
@@ -1791,24 +1814,7 @@ open_output (name)
{
bfd *output;
- /* Has the user told us which output format to use? */
- if (output_target == (char *) NULL)
- {
- /* No - has the current target been set to something other than
- the default? */
- if (current_target != default_target)
- output_target = current_target;
-
- /* No - can we determine the format of the first input file? */
- else
- {
- output_target = get_first_input_target ();
-
- /* Failed - use the default output target. */
- if (output_target == NULL)
- output_target = default_target;
- }
- }
+ output_target = lang_get_output_target ();
/* Has the user requested a particular endianness on the command
line? */
@@ -2012,7 +2018,7 @@ lang_reasonable_defaults ()
default_common_section = lang_output_section_statement_lookup (".bss");
- if (placed_commons == false)
+ if (!placed_commons)
{
lang_wild_statement_type *new =
new_stat (lang_wild_statement,
@@ -2768,7 +2774,7 @@ size_input_section (this_ptr, output_section_statement, fill, dot)
lang_input_section_type *is = &((*this_ptr)->input_section);
asection *i = is->section;
- if (is->ifile->just_syms_flag == false)
+ if (!is->ifile->just_syms_flag)
{
unsigned opb = bfd_arch_mach_octets_per_byte (ldfile_output_architecture,
ldfile_output_machine);
@@ -3023,11 +3029,10 @@ lang_size_sections_1 (s, output_section_statement, prev, fill, dot, relax)
abs_output_section,
lang_allocating_phase_enum,
dot, &dot);
- if (r.valid_p == false)
- {
- einfo (_("%F%S: non constant address expression for section %s\n"),
- os->name);
- }
+ if (!r.valid_p)
+ einfo (_("%F%S: non constant address expression for section %s\n"),
+ os->name);
+
dot = r.value + r.section->bfd_section->vma;
}
@@ -3394,7 +3399,7 @@ lang_do_assignments (s, output_section_statement, fill, dot)
abs_output_section,
lang_final_phase_enum, dot, &dot);
s->data_statement.value = value.value;
- if (value.valid_p == false)
+ if (!value.valid_p)
einfo (_("%F%P: invalid data statement\n"));
}
{
@@ -3431,7 +3436,7 @@ lang_do_assignments (s, output_section_statement, fill, dot)
abs_output_section,
lang_final_phase_enum, dot, &dot);
s->reloc_statement.addend_value = value.value;
- if (value.valid_p == false)
+ if (!value.valid_p)
einfo (_("%F%P: invalid reloc statement\n"));
}
dot += bfd_get_reloc_size (s->reloc_statement.howto) / opb;
@@ -4014,7 +4019,7 @@ lang_add_output (name, from_script)
int from_script;
{
/* Make -o on command line override OUTPUT in script. */
- if (had_output_filename == false || !from_script)
+ if (!had_output_filename || !from_script)
{
output_filename = name;
had_output_filename = true;
diff --git a/contrib/binutils/ld/ldlang.h b/contrib/binutils/ld/ldlang.h
index cb4b6d3..57c8c51 100644
--- a/contrib/binutils/ld/ldlang.h
+++ b/contrib/binutils/ld/ldlang.h
@@ -483,5 +483,6 @@ extern void lang_register_vers_node
struct bfd_elf_version_deps *));
boolean unique_section_p PARAMS ((const char *));
extern void lang_add_unique PARAMS ((const char *));
+extern const char *lang_get_output_target PARAMS ((void));
#endif
diff --git a/contrib/binutils/ld/ldlex.l b/contrib/binutils/ld/ldlex.l
index 68ed7fc..5b799c4 100644
--- a/contrib/binutils/ld/ldlex.l
+++ b/contrib/binutils/ld/ldlex.l
@@ -42,7 +42,7 @@ This was written by steve chamberlain
#include "ldmisc.h"
#include "ldexp.h"
#include "ldlang.h"
-#include "ldgram.h"
+#include <ldgram.h>
#include "ldfile.h"
#include "ldlex.h"
#include "ldmain.h"
diff --git a/contrib/binutils/ld/ldmain.c b/contrib/binutils/ld/ldmain.c
index 3a0828f..41d778f 100644
--- a/contrib/binutils/ld/ldmain.c
+++ b/contrib/binutils/ld/ldmain.c
@@ -36,7 +36,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "ldwrite.h"
#include "ldexp.h"
#include "ldlang.h"
-#include "ldgram.h"
+#include <ldgram.h>
#include "ldlex.h"
#include "ldfile.h"
#include "ldemul.h"
diff --git a/contrib/binutils/ld/ldmisc.c b/contrib/binutils/ld/ldmisc.c
index 2869ba9..7f9746a 100644
--- a/contrib/binutils/ld/ldmisc.c
+++ b/contrib/binutils/ld/ldmisc.c
@@ -36,7 +36,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "ldmisc.h"
#include "ldexp.h"
#include "ldlang.h"
-#include "ldgram.h"
+#include <ldgram.h>
#include "ldlex.h"
#include "ldmain.h"
#include "ldfile.h"
diff --git a/contrib/binutils/ld/ldwrite.c b/contrib/binutils/ld/ldwrite.c
index e5949c1..eb31171 100644
--- a/contrib/binutils/ld/ldwrite.c
+++ b/contrib/binutils/ld/ldwrite.c
@@ -29,7 +29,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "ldlang.h"
#include "ldwrite.h"
#include "ldmisc.h"
-#include "ldgram.h"
+#include <ldgram.h>
#include "ldmain.h"
static void build_link_order PARAMS ((lang_statement_union_type *));
diff --git a/contrib/binutils/ld/lexsup.c b/contrib/binutils/ld/lexsup.c
index 4acb4fd..f0d4c50 100644
--- a/contrib/binutils/ld/lexsup.c
+++ b/contrib/binutils/ld/lexsup.c
@@ -33,7 +33,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "ldmisc.h"
#include "ldexp.h"
#include "ldlang.h"
-#include "ldgram.h"
+#include <ldgram.h>
#include "ldlex.h"
#include "ldfile.h"
#include "ldver.h"
diff --git a/contrib/binutils/ld/mri.c b/contrib/binutils/ld/mri.c
index 89514e9..62a7f08 100644
--- a/contrib/binutils/ld/mri.c
+++ b/contrib/binutils/ld/mri.c
@@ -31,7 +31,7 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA
#include "ldlang.h"
#include "ldmisc.h"
#include "mri.h"
-#include "ldgram.h"
+#include <ldgram.h>
#include "libiberty.h"
struct section_name_struct {
diff --git a/contrib/binutils/ld/pe-dll.c b/contrib/binutils/ld/pe-dll.c
index fd70c78..e59c32d 100644
--- a/contrib/binutils/ld/pe-dll.c
+++ b/contrib/binutils/ld/pe-dll.c
@@ -32,7 +32,7 @@
#include "ldlang.h"
#include "ldwrite.h"
#include "ldmisc.h"
-#include "ldgram.h"
+#include <ldgram.h>
#include "ldmain.h"
#include "ldfile.h"
#include "ldemul.h"
@@ -257,6 +257,8 @@ static autofilter_entry_type autofilter_symbolprefixlist[] =
/* { "__imp_", 6 }, */
/* Do __imp_ explicitly to save time. */
{ "__rtti_", 7 },
+ /* Don't re-export auto-imported symbols. */
+ { "_nm_", 4 },
{ "__builtin_", 10 },
/* Don't export symbols specifying internal DLL layout. */
{ "_head_", 6 },
@@ -1814,8 +1816,10 @@ make_one (exp, parent)
quick_symbol (abfd, U ("_head_"), dll_symname, "", UNDSEC, BSF_GLOBAL, 0);
quick_symbol (abfd, U ("_imp__"), exp->internal_name, "", id5, BSF_GLOBAL, 0);
/* Symbol to reference ord/name of imported
- symbol, used to implement auto-import. */
- quick_symbol (abfd, U("_nm__"), exp->internal_name, "", id6, BSF_GLOBAL, 0);
+ data symbol, used to implement auto-import. */
+ if (exp->flag_data)
+ quick_symbol (abfd, U("_nm__"), exp->internal_name, "", id6,
+ BSF_GLOBAL,0);
if (pe_dll_compat_implib)
quick_symbol (abfd, U ("__imp_"), exp->internal_name, "",
id5, BSF_GLOBAL, 0);
@@ -1974,7 +1978,7 @@ make_import_fixup_mark (rel)
struct symbol_cache_entry *sym = *rel->sym_ptr_ptr;
bfd *abfd = bfd_asymbol_bfd (sym);
- struct coff_link_hash_entry *myh = NULL;
+ struct bfd_link_hash_entry *bh;
if (!fixup_name)
{
@@ -1996,15 +2000,20 @@ make_import_fixup_mark (rel)
sprintf (fixup_name, "__fu%d_%s", counter++, sym->name);
+ bh = NULL;
bfd_coff_link_add_one_symbol (&link_info, abfd, fixup_name, BSF_GLOBAL,
current_sec, /* sym->section, */
- rel->address, NULL, true, false,
- (struct bfd_link_hash_entry **) &myh);
+ rel->address, NULL, true, false, &bh);
+
+ if (0)
+ {
+ struct coff_link_hash_entry *myh;
+
+ myh = (struct coff_link_hash_entry *) bh;
+ printf ("type:%d\n", myh->type);
+ printf ("%s\n", myh->root.u.def.section->name);
+ }
-#if 0
- printf ("type:%d\n", myh->type);
- printf ("%s\n", myh->root.u.def.section->name);
-#endif
return fixup_name;
}
diff --git a/contrib/binutils/ld/po/ld.pot b/contrib/binutils/ld/po/ld.pot
index 131bef0..87119b5 100644
--- a/contrib/binutils/ld/po/ld.pot
+++ b/contrib/binutils/ld/po/ld.pot
@@ -1,12 +1,13 @@
# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR Free Software Foundation, Inc.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2002-07-23 15:58-0400\n"
+"POT-Creation-Date: 2002-10-30 10:08-0500\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -249,6 +250,7 @@ msgid "Use --disable-stdcall-fixup to disable these fixups\n"
msgstr ""
#: emultempl/pe.em:879
+#, c-format
msgid "%C: Cannot get section contents - auto-import exception\n"
msgstr ""
@@ -277,8 +279,8 @@ msgstr ""
msgid "Errors encountered processing file %s for interworking"
msgstr ""
-#: emultempl/pe.em:1305 ldlang.c:2065 ldlang.c:4608 ldlang.c:4641
-#: ldmain.c:1061
+#: emultempl/pe.em:1305 ldlang.c:2071 ldlang.c:4613 ldlang.c:4646
+#: ldmain.c:1062
msgid "%P%F: bfd_link_hash_lookup failed: %E\n"
msgstr ""
@@ -317,11 +319,11 @@ msgstr ""
msgid "%B%F: could not read symbols; %E\n"
msgstr ""
-#: ldcref.c:469 ldmain.c:1127 ldmain.c:1131
+#: ldcref.c:469 ldmain.c:1128 ldmain.c:1132
msgid "%B%F: could not read symbols: %E\n"
msgstr ""
-#: ldcref.c:537 ldcref.c:544 ldmain.c:1177 ldmain.c:1184
+#: ldcref.c:537 ldcref.c:544 ldmain.c:1178 ldmain.c:1185
msgid "%B%F: could not read relocs: %E\n"
msgstr ""
@@ -357,10 +359,12 @@ msgid ""
msgstr ""
#: ldemul.c:225
+#, c-format
msgid "%S SYSLIB ignored\n"
msgstr ""
#: ldemul.c:232
+#, c-format
msgid "%S HLL ignored\n"
msgstr ""
@@ -376,55 +380,64 @@ msgstr ""
msgid " no emulation specific options.\n"
msgstr ""
-#: ldexp.c:174
+#: ldexp.c:184
msgid "%F%P: %s uses undefined section %s\n"
msgstr ""
-#: ldexp.c:176
+#: ldexp.c:186
msgid "%F%P: %s forward reference of section %s\n"
msgstr ""
-#: ldexp.c:304
+#: ldexp.c:400
+#, c-format
msgid "%F%S %% by zero\n"
msgstr ""
-#: ldexp.c:311
+#: ldexp.c:407
+#, c-format
msgid "%F%S / by zero\n"
msgstr ""
-#: ldexp.c:463
+#: ldexp.c:581
+#, c-format
msgid "%X%S: unresolvable symbol `%s' referenced in expression\n"
msgstr ""
-#: ldexp.c:483
+#: ldexp.c:601
+#, c-format
msgid "%F%S: undefined symbol `%s' referenced in expression\n"
msgstr ""
-#: ldexp.c:685
+#: ldexp.c:726
+#, c-format
msgid "%F%S can not PROVIDE assignment to location counter\n"
msgstr ""
-#: ldexp.c:695
+#: ldexp.c:736
+#, c-format
msgid "%F%S invalid assignment to location counter\n"
msgstr ""
-#: ldexp.c:699
+#: ldexp.c:740
+#, c-format
msgid "%F%S assignment to location counter invalid outside of SECTION\n"
msgstr ""
-#: ldexp.c:708
+#: ldexp.c:749
msgid "%F%S cannot move location counter backwards (from %V to %V)\n"
msgstr ""
-#: ldexp.c:735
+#: ldexp.c:776
msgid "%P%F:%s: hash creation failed\n"
msgstr ""
-#: ldexp.c:1037 ldexp.c:1071
+#: ldexp.c:1078 ldexp.c:1112
+#, c-format
msgid "%F%S nonconstant expression for %s\n"
msgstr ""
-#: ldexp.c:1126
+#: ldexp.c:1167
+#, c-format
msgid "%F%S non constant expression for %s\n"
msgstr ""
@@ -442,45 +455,45 @@ msgstr ""
msgid "%F%P: invalid BFD target `%s'\n"
msgstr ""
-#: ldfile.c:142
+#: ldfile.c:218 ldfile.c:234
msgid "%P: skipping incompatible %s when searching for %s\n"
msgstr ""
-#: ldfile.c:234
+#: ldfile.c:326
msgid "%F%P: cannot open %s for %s: %E\n"
msgstr ""
-#: ldfile.c:237
+#: ldfile.c:329
msgid "%F%P: cannot open %s: %E\n"
msgstr ""
-#: ldfile.c:267
+#: ldfile.c:359
msgid "%F%P: cannot find %s\n"
msgstr ""
-#: ldfile.c:286 ldfile.c:302
+#: ldfile.c:378 ldfile.c:394
#, c-format
msgid "cannot find script file %s\n"
msgstr ""
-#: ldfile.c:288 ldfile.c:304
+#: ldfile.c:380 ldfile.c:396
#, c-format
msgid "opened script file %s\n"
msgstr ""
-#: ldfile.c:353
+#: ldfile.c:445
msgid "%P%F: cannot open linker script file %s: %E\n"
msgstr ""
-#: ldfile.c:391
+#: ldfile.c:483
msgid "%P%F: unknown architecture: %s\n"
msgstr ""
-#: ldfile.c:407
+#: ldfile.c:499
msgid "%P%F: target architecture respecified\n"
msgstr ""
-#: ldfile.c:461
+#: ldfile.c:553
msgid "%P%F: cannot represent machine `%s'\n"
msgstr ""
@@ -558,128 +571,129 @@ msgstr ""
msgid "%F%B: could not read symbols: %E\n"
msgstr ""
-#: ldlang.c:1853
+#: ldlang.c:1859
msgid ""
"%P: warning: could not find any targets that match endianness requirement\n"
msgstr ""
-#: ldlang.c:1866
+#: ldlang.c:1872
msgid "%P%F: target %s not found\n"
msgstr ""
-#: ldlang.c:1868
+#: ldlang.c:1874
msgid "%P%F: cannot open output file %s: %E\n"
msgstr ""
-#: ldlang.c:1878
+#: ldlang.c:1884
msgid "%P%F:%s: can not make object file: %E\n"
msgstr ""
-#: ldlang.c:1882
+#: ldlang.c:1888
msgid "%P%F:%s: can not set architecture: %E\n"
msgstr ""
-#: ldlang.c:1886
+#: ldlang.c:1892
msgid "%P%F: can not create link hash table: %E\n"
msgstr ""
-#: ldlang.c:2235
+#: ldlang.c:2241
msgid " load address 0x%V"
msgstr ""
-#: ldlang.c:2375
+#: ldlang.c:2381
msgid "%W (size before relaxing)\n"
msgstr ""
-#: ldlang.c:2462
+#: ldlang.c:2468
#, c-format
msgid "Address of section %s set to "
msgstr ""
-#: ldlang.c:2623
+#: ldlang.c:2629
#, c-format
msgid "Fail with %d\n"
msgstr ""
-#: ldlang.c:2868
+#: ldlang.c:2874
msgid "%X%P: section %s [%V -> %V] overlaps section %s [%V -> %V]\n"
msgstr ""
-#: ldlang.c:2897
+#: ldlang.c:2903
msgid "%X%P: address 0x%v of %B section %s is not within region %s\n"
msgstr ""
-#: ldlang.c:2905
+#: ldlang.c:2911
msgid "%X%P: region %s is full (%B section %s)\n"
msgstr ""
-#: ldlang.c:2955
+#: ldlang.c:2961
msgid "%P%X: Internal error on COFF shared library section %s\n"
msgstr ""
-#: ldlang.c:2999
+#: ldlang.c:3005
msgid "%P: warning: no memory region specified for section `%s'\n"
msgstr ""
-#: ldlang.c:3014
+#: ldlang.c:3020
msgid "%P: warning: changing start of section %s by %u bytes\n"
msgstr ""
-#: ldlang.c:3028
+#: ldlang.c:3033
+#, c-format
msgid "%F%S: non constant address expression for section %s\n"
msgstr ""
-#: ldlang.c:3203
+#: ldlang.c:3208
msgid "%P%F: can't relax section: %E\n"
msgstr ""
-#: ldlang.c:3398
+#: ldlang.c:3403
msgid "%F%P: invalid data statement\n"
msgstr ""
-#: ldlang.c:3435
+#: ldlang.c:3440
msgid "%F%P: invalid reloc statement\n"
msgstr ""
-#: ldlang.c:3574
+#: ldlang.c:3579
msgid "%P%F:%s: can't set start address\n"
msgstr ""
-#: ldlang.c:3587 ldlang.c:3605
+#: ldlang.c:3592 ldlang.c:3610
msgid "%P%F: can't set start address\n"
msgstr ""
-#: ldlang.c:3599
+#: ldlang.c:3604
msgid "%P: warning: cannot find entry symbol %s; defaulting to %V\n"
msgstr ""
-#: ldlang.c:3610
+#: ldlang.c:3615
msgid "%P: warning: cannot find entry symbol %s; not setting start address\n"
msgstr ""
-#: ldlang.c:3660
+#: ldlang.c:3665
msgid ""
"%P%F: Relocatable linking with relocations from format %s (%B) to format %s "
"(%B) is not supported\n"
msgstr ""
-#: ldlang.c:3669
+#: ldlang.c:3674
msgid ""
"%P: warning: %s architecture of input file `%B' is incompatible with %s "
"output\n"
msgstr ""
-#: ldlang.c:3690
+#: ldlang.c:3695
msgid "%E%X: failed to merge target specific data of file %B\n"
msgstr ""
-#: ldlang.c:3779
+#: ldlang.c:3784
msgid ""
"\n"
"Allocating common symbols\n"
msgstr ""
-#: ldlang.c:3780
+#: ldlang.c:3785
msgid ""
"Common symbol size file\n"
"\n"
@@ -688,52 +702,52 @@ msgstr ""
#. This message happens when using the
#. svr3.ifile linker script, so I have
#. disabled it.
-#: ldlang.c:3858
+#: ldlang.c:3863
msgid "%P: no [COMMON] command, defaulting to .bss\n"
msgstr ""
-#: ldlang.c:3917
+#: ldlang.c:3922
msgid "%P%F: invalid syntax in flags\n"
msgstr ""
-#: ldlang.c:4532
+#: ldlang.c:4537
msgid "%P%Fmultiple STARTUP files\n"
msgstr ""
-#: ldlang.c:4575
+#: ldlang.c:4580
msgid "%X%P:%S: section has both a load address and a load region\n"
msgstr ""
-#: ldlang.c:4825
+#: ldlang.c:4830
msgid "%F%P: bfd_record_phdr failed: %E\n"
msgstr ""
-#: ldlang.c:4844
+#: ldlang.c:4849
msgid "%X%P: section `%s' assigned to non-existent phdr `%s'\n"
msgstr ""
-#: ldlang.c:5143
+#: ldlang.c:5150
msgid "%X%P: unknown language `%s' in version information\n"
msgstr ""
-#: ldlang.c:5195
+#: ldlang.c:5202
msgid ""
"%X%P: anonymous version tag cannot be combined with other version tags\n"
msgstr ""
-#: ldlang.c:5202
+#: ldlang.c:5209
msgid "%X%P: duplicate version tag `%s'\n"
msgstr ""
-#: ldlang.c:5215 ldlang.c:5228
+#: ldlang.c:5222 ldlang.c:5235
msgid "%X%P: duplicate expression `%s' in version information\n"
msgstr ""
-#: ldlang.c:5270
+#: ldlang.c:5277
msgid "%X%P: unable to find version dependency `%s'\n"
msgstr ""
-#: ldlang.c:5292
+#: ldlang.c:5299
msgid "%X%P: unable to read .exports section contents\n"
msgstr ""
@@ -741,209 +755,209 @@ msgstr ""
msgid "%X%P: can't set BFD default target to `%s': %E\n"
msgstr ""
-#: ldmain.c:290
+#: ldmain.c:291
msgid "%P%F: -r and --mpc860c0 may not be used together\n"
msgstr ""
-#: ldmain.c:292
+#: ldmain.c:293
msgid "%P%F: --relax and -r may not be used together\n"
msgstr ""
-#: ldmain.c:294
+#: ldmain.c:295
msgid "%P%F: -r and -shared may not be used together\n"
msgstr ""
-#: ldmain.c:300
+#: ldmain.c:301
msgid "%P%F: -F may not be used without -shared\n"
msgstr ""
-#: ldmain.c:302
+#: ldmain.c:303
msgid "%P%F: -f may not be used without -shared\n"
msgstr ""
-#: ldmain.c:341
+#: ldmain.c:342
msgid "using external linker script:"
msgstr ""
-#: ldmain.c:343
+#: ldmain.c:344
msgid "using internal linker script:"
msgstr ""
-#: ldmain.c:377
+#: ldmain.c:378
msgid "%P%F: no input files\n"
msgstr ""
-#: ldmain.c:382
+#: ldmain.c:383
msgid "%P: mode %s\n"
msgstr ""
-#: ldmain.c:399
+#: ldmain.c:400
msgid "%P%F: cannot open map file %s: %E\n"
msgstr ""
-#: ldmain.c:432
+#: ldmain.c:433
msgid "%P: link errors found, deleting executable `%s'\n"
msgstr ""
-#: ldmain.c:443
+#: ldmain.c:444
msgid "%F%B: final close failed: %E\n"
msgstr ""
-#: ldmain.c:467
+#: ldmain.c:468
msgid "%X%P: unable to open for source of copy `%s'\n"
msgstr ""
-#: ldmain.c:469
+#: ldmain.c:470
msgid "%X%P: unable to open for destination of copy `%s'\n"
msgstr ""
-#: ldmain.c:475
+#: ldmain.c:476
msgid "%P: Error writing file `%s'\n"
msgstr ""
-#: ldmain.c:481 pe-dll.c:1463
+#: ldmain.c:482 pe-dll.c:1465
#, c-format
msgid "%P: Error closing file `%s'\n"
msgstr ""
-#: ldmain.c:498
+#: ldmain.c:499
#, c-format
msgid "%s: total time in link: %ld.%06ld\n"
msgstr ""
-#: ldmain.c:501
+#: ldmain.c:502
#, c-format
msgid "%s: data size %ld\n"
msgstr ""
-#: ldmain.c:542
+#: ldmain.c:543
msgid "%P%F: missing argument to -m\n"
msgstr ""
-#: ldmain.c:670 ldmain.c:691 ldmain.c:722
+#: ldmain.c:671 ldmain.c:692 ldmain.c:723
msgid "%P%F: bfd_hash_table_init failed: %E\n"
msgstr ""
-#: ldmain.c:675 ldmain.c:694
+#: ldmain.c:676 ldmain.c:695
msgid "%P%F: bfd_hash_lookup failed: %E\n"
msgstr ""
-#: ldmain.c:709
+#: ldmain.c:710
msgid "%X%P: error: duplicate retain-symbols-file\n"
msgstr ""
-#: ldmain.c:753
+#: ldmain.c:754
msgid "%P%F: bfd_hash_lookup for insertion failed: %E\n"
msgstr ""
-#: ldmain.c:758
+#: ldmain.c:759
msgid "%P: `-retain-symbols-file' overrides `-s' and `-S'\n"
msgstr ""
-#: ldmain.c:834
+#: ldmain.c:835
msgid ""
"Archive member included because of file (symbol)\n"
"\n"
msgstr ""
-#: ldmain.c:905
+#: ldmain.c:906
msgid "%X%C: multiple definition of `%T'\n"
msgstr ""
-#: ldmain.c:908
+#: ldmain.c:909
msgid "%D: first defined here\n"
msgstr ""
-#: ldmain.c:912
+#: ldmain.c:913
msgid "%P: Disabling relaxation: it will not work with multiple definitions\n"
msgstr ""
-#: ldmain.c:943
+#: ldmain.c:944
msgid "%B: warning: definition of `%T' overriding common\n"
msgstr ""
-#: ldmain.c:946
+#: ldmain.c:947
msgid "%B: warning: common is here\n"
msgstr ""
-#: ldmain.c:953
+#: ldmain.c:954
msgid "%B: warning: common of `%T' overridden by definition\n"
msgstr ""
-#: ldmain.c:956
+#: ldmain.c:957
msgid "%B: warning: defined here\n"
msgstr ""
-#: ldmain.c:963
+#: ldmain.c:964
msgid "%B: warning: common of `%T' overridden by larger common\n"
msgstr ""
-#: ldmain.c:966
+#: ldmain.c:967
msgid "%B: warning: larger common is here\n"
msgstr ""
-#: ldmain.c:970
+#: ldmain.c:971
msgid "%B: warning: common of `%T' overriding smaller common\n"
msgstr ""
-#: ldmain.c:973
+#: ldmain.c:974
msgid "%B: warning: smaller common is here\n"
msgstr ""
-#: ldmain.c:977
+#: ldmain.c:978
msgid "%B: warning: multiple common of `%T'\n"
msgstr ""
-#: ldmain.c:979
+#: ldmain.c:980
msgid "%B: warning: previous common is here\n"
msgstr ""
-#: ldmain.c:1000 ldmain.c:1039
+#: ldmain.c:1001 ldmain.c:1040
msgid "%P: warning: global constructor %s used\n"
msgstr ""
-#: ldmain.c:1049
+#: ldmain.c:1050
msgid "%P%F: BFD backend error: BFD_RELOC_CTOR unsupported\n"
msgstr ""
-#: ldmain.c:1233
+#: ldmain.c:1234
msgid "%F%P: bfd_hash_table_init failed: %E\n"
msgstr ""
-#: ldmain.c:1240
+#: ldmain.c:1241
msgid "%F%P: bfd_hash_lookup failed: %E\n"
msgstr ""
-#: ldmain.c:1260
+#: ldmain.c:1261
msgid "%C: undefined reference to `%T'\n"
msgstr ""
-#: ldmain.c:1266
+#: ldmain.c:1267
msgid "%D: more undefined references to `%T' follow\n"
msgstr ""
-#: ldmain.c:1273
+#: ldmain.c:1274
msgid "%B: undefined reference to `%T'\n"
msgstr ""
-#: ldmain.c:1279
+#: ldmain.c:1280
msgid "%B: more undefined references to `%T' follow\n"
msgstr ""
-#: ldmain.c:1299 ldmain.c:1320 ldmain.c:1339
+#: ldmain.c:1300 ldmain.c:1321 ldmain.c:1340
msgid "%P%X: generated"
msgstr ""
-#: ldmain.c:1302
+#: ldmain.c:1303
msgid " relocation truncated to fit: %s %T"
msgstr ""
-#: ldmain.c:1323
+#: ldmain.c:1324
#, c-format
msgid "dangerous relocation: %s\n"
msgstr ""
-#: ldmain.c:1342
+#: ldmain.c:1343
msgid " reloc refers to symbol `%T' which is not being output\n"
msgstr ""
@@ -1020,523 +1034,527 @@ msgstr ""
msgid "%F%P: final link failed: %E\n"
msgstr ""
-#: lexsup.c:172 lexsup.c:267
+#: lexsup.c:173 lexsup.c:268
msgid "KEYWORD"
msgstr ""
-#: lexsup.c:172
+#: lexsup.c:173
msgid "Shared library control for HP/UX compatibility"
msgstr ""
-#: lexsup.c:175
+#: lexsup.c:176
msgid "ARCH"
msgstr ""
-#: lexsup.c:175
+#: lexsup.c:176
msgid "Set architecture"
msgstr ""
-#: lexsup.c:177 lexsup.c:336
+#: lexsup.c:178 lexsup.c:339
msgid "TARGET"
msgstr ""
-#: lexsup.c:177
+#: lexsup.c:178
msgid "Specify target for following input files"
msgstr ""
-#: lexsup.c:179 lexsup.c:220 lexsup.c:232 lexsup.c:241 lexsup.c:312
-#: lexsup.c:343 lexsup.c:383
+#: lexsup.c:180 lexsup.c:221 lexsup.c:233 lexsup.c:242 lexsup.c:313
+#: lexsup.c:346 lexsup.c:386
msgid "FILE"
msgstr ""
-#: lexsup.c:179
+#: lexsup.c:180
msgid "Read MRI format linker script"
msgstr ""
-#: lexsup.c:181
+#: lexsup.c:182
msgid "Force common symbols to be defined"
msgstr ""
-#: lexsup.c:185 lexsup.c:373 lexsup.c:375 lexsup.c:377
+#: lexsup.c:186 lexsup.c:376 lexsup.c:378 lexsup.c:380
msgid "ADDRESS"
msgstr ""
-#: lexsup.c:185
+#: lexsup.c:186
msgid "Set start address"
msgstr ""
-#: lexsup.c:187
+#: lexsup.c:188
msgid "Export all dynamic symbols"
msgstr ""
-#: lexsup.c:189
+#: lexsup.c:190
msgid "Link big-endian objects"
msgstr ""
-#: lexsup.c:191
+#: lexsup.c:192
msgid "Link little-endian objects"
msgstr ""
-#: lexsup.c:193 lexsup.c:196
+#: lexsup.c:194 lexsup.c:197
msgid "SHLIB"
msgstr ""
-#: lexsup.c:193
+#: lexsup.c:194
msgid "Auxiliary filter for shared object symbol table"
msgstr ""
-#: lexsup.c:196
+#: lexsup.c:197
msgid "Filter for shared object symbol table"
msgstr ""
-#: lexsup.c:198
+#: lexsup.c:199
msgid "Ignored"
msgstr ""
-#: lexsup.c:200
+#: lexsup.c:201
msgid "SIZE"
msgstr ""
-#: lexsup.c:200
+#: lexsup.c:201
msgid "Small data size (if no size, same as --shared)"
msgstr ""
-#: lexsup.c:203
+#: lexsup.c:204
msgid "FILENAME"
msgstr ""
-#: lexsup.c:203
+#: lexsup.c:204
msgid "Set internal name of shared library"
msgstr ""
-#: lexsup.c:205
+#: lexsup.c:206
msgid "PROGRAM"
msgstr ""
-#: lexsup.c:205
+#: lexsup.c:206
msgid "Set PROGRAM as the dynamic linker to use"
msgstr ""
-#: lexsup.c:207
+#: lexsup.c:208
msgid "LIBNAME"
msgstr ""
-#: lexsup.c:207
+#: lexsup.c:208
msgid "Search for library LIBNAME"
msgstr ""
-#: lexsup.c:209
+#: lexsup.c:210
msgid "DIRECTORY"
msgstr ""
-#: lexsup.c:209
+#: lexsup.c:210
msgid "Add DIRECTORY to library search path"
msgstr ""
-#: lexsup.c:211
+#: lexsup.c:212
msgid "EMULATION"
msgstr ""
-#: lexsup.c:211
+#: lexsup.c:212
msgid "Set emulation"
msgstr ""
-#: lexsup.c:213
+#: lexsup.c:214
msgid "Print map file on standard output"
msgstr ""
-#: lexsup.c:215
+#: lexsup.c:216
msgid "Do not page align data"
msgstr ""
-#: lexsup.c:217
+#: lexsup.c:218
msgid "Do not page align data, do not make text readonly"
msgstr ""
-#: lexsup.c:220
+#: lexsup.c:221
msgid "Set output file name"
msgstr ""
-#: lexsup.c:222
+#: lexsup.c:223
msgid "Optimize output file"
msgstr ""
-#: lexsup.c:224
+#: lexsup.c:225
msgid "Ignored for SVR4 compatibility"
msgstr ""
-#: lexsup.c:228
+#: lexsup.c:229
msgid "Generate relocateable output"
msgstr ""
-#: lexsup.c:232
+#: lexsup.c:233
msgid "Just link symbols (if directory, same as --rpath)"
msgstr ""
-#: lexsup.c:235
+#: lexsup.c:236
msgid "Strip all symbols"
msgstr ""
-#: lexsup.c:237
+#: lexsup.c:238
msgid "Strip debugging symbols"
msgstr ""
-#: lexsup.c:239
+#: lexsup.c:240
msgid "Trace file opens"
msgstr ""
-#: lexsup.c:241
+#: lexsup.c:242
msgid "Read linker script"
msgstr ""
-#: lexsup.c:243 lexsup.c:259 lexsup.c:298 lexsup.c:310 lexsup.c:367
-#: lexsup.c:386 lexsup.c:406
+#: lexsup.c:244 lexsup.c:260 lexsup.c:299 lexsup.c:311 lexsup.c:370
+#: lexsup.c:389 lexsup.c:409
msgid "SYMBOL"
msgstr ""
-#: lexsup.c:243
+#: lexsup.c:244
msgid "Start with undefined reference to SYMBOL"
msgstr ""
-#: lexsup.c:245
+#: lexsup.c:246
msgid "[=SECTION]"
msgstr ""
-#: lexsup.c:245
+#: lexsup.c:246
msgid "Don't merge input [SECTION | orphan] sections"
msgstr ""
-#: lexsup.c:247
+#: lexsup.c:248
msgid "Build global constructor/destructor tables"
msgstr ""
-#: lexsup.c:249
+#: lexsup.c:250
msgid "Print version information"
msgstr ""
-#: lexsup.c:251
+#: lexsup.c:252
msgid "Print version and emulation information"
msgstr ""
-#: lexsup.c:253
+#: lexsup.c:254
msgid "Discard all local symbols"
msgstr ""
-#: lexsup.c:255
+#: lexsup.c:256
msgid "Discard temporary local symbols (default)"
msgstr ""
-#: lexsup.c:257
+#: lexsup.c:258
msgid "Don't discard any local symbols"
msgstr ""
-#: lexsup.c:259
+#: lexsup.c:260
msgid "Trace mentions of SYMBOL"
msgstr ""
-#: lexsup.c:261 lexsup.c:345 lexsup.c:347
+#: lexsup.c:262 lexsup.c:348 lexsup.c:350
msgid "PATH"
msgstr ""
-#: lexsup.c:261
+#: lexsup.c:262
msgid "Default search path for Solaris compatibility"
msgstr ""
-#: lexsup.c:263
+#: lexsup.c:264
msgid "Start a group"
msgstr ""
-#: lexsup.c:265
+#: lexsup.c:266
msgid "End a group"
msgstr ""
-#: lexsup.c:267
+#: lexsup.c:268
msgid "Ignored for SunOS compatibility"
msgstr ""
-#: lexsup.c:269
+#: lexsup.c:270
msgid "Link against shared libraries"
msgstr ""
-#: lexsup.c:275
+#: lexsup.c:276
msgid "Do not link against shared libraries"
msgstr ""
-#: lexsup.c:283
+#: lexsup.c:284
msgid "Bind global references locally"
msgstr ""
-#: lexsup.c:285
+#: lexsup.c:286
msgid "Check section addresses for overlaps (default)"
msgstr ""
-#: lexsup.c:287
+#: lexsup.c:288
msgid "Do not check section addresses for overlaps"
msgstr ""
-#: lexsup.c:290
+#: lexsup.c:291
msgid "Output cross reference table"
msgstr ""
-#: lexsup.c:292
+#: lexsup.c:293
msgid "SYMBOL=EXPRESSION"
msgstr ""
-#: lexsup.c:292
+#: lexsup.c:293
msgid "Define a symbol"
msgstr ""
-#: lexsup.c:294
+#: lexsup.c:295
msgid "[=STYLE]"
msgstr ""
-#: lexsup.c:294
+#: lexsup.c:295
msgid "Demangle symbol names [using STYLE]"
msgstr ""
-#: lexsup.c:296
+#: lexsup.c:297
msgid "Generate embedded relocs"
msgstr ""
-#: lexsup.c:298
+#: lexsup.c:299
msgid "Call SYMBOL at unload-time"
msgstr ""
-#: lexsup.c:300
+#: lexsup.c:301
msgid "Force generation of file with .exe suffix"
msgstr ""
-#: lexsup.c:302
+#: lexsup.c:303
msgid "Remove unused sections (on some targets)"
msgstr ""
-#: lexsup.c:305
+#: lexsup.c:306
msgid "Don't remove unused sections (default)"
msgstr ""
-#: lexsup.c:308
+#: lexsup.c:309
msgid "Print option help"
msgstr ""
-#: lexsup.c:310
+#: lexsup.c:311
msgid "Call SYMBOL at load-time"
msgstr ""
-#: lexsup.c:312
+#: lexsup.c:313
msgid "Write a map file"
msgstr ""
-#: lexsup.c:314
+#: lexsup.c:315
msgid "Do not define Common storage"
msgstr ""
-#: lexsup.c:316
+#: lexsup.c:317
msgid "Do not demangle symbol names"
msgstr ""
-#: lexsup.c:318
+#: lexsup.c:319
msgid "Use less memory and more disk I/O"
msgstr ""
-#: lexsup.c:320
+#: lexsup.c:321
msgid "Allow no undefined symbols"
msgstr ""
-#: lexsup.c:322
+#: lexsup.c:323
msgid "Allow undefined symbols in shared objects"
msgstr ""
-#: lexsup.c:324
+#: lexsup.c:325
msgid "Allow multiple definitions"
msgstr ""
-#: lexsup.c:326
+#: lexsup.c:327
+msgid "Disallow undefined version"
+msgstr ""
+
+#: lexsup.c:329
msgid "Don't warn about mismatched input files"
msgstr ""
-#: lexsup.c:328
+#: lexsup.c:331
msgid "Turn off --whole-archive"
msgstr ""
-#: lexsup.c:330
+#: lexsup.c:333
msgid "Create an output file even if errors occur"
msgstr ""
-#: lexsup.c:334
+#: lexsup.c:337
msgid ""
"Only use library directories specified on\n"
"\t\t\t\tthe command line"
msgstr ""
-#: lexsup.c:336
+#: lexsup.c:339
msgid "Specify target of output file"
msgstr ""
-#: lexsup.c:338
+#: lexsup.c:341
msgid "Ignored for Linux compatibility"
msgstr ""
-#: lexsup.c:340
+#: lexsup.c:343
msgid "Relax branches on certain targets"
msgstr ""
-#: lexsup.c:343
+#: lexsup.c:346
msgid "Keep only symbols listed in FILE"
msgstr ""
-#: lexsup.c:345
+#: lexsup.c:348
msgid "Set runtime shared library search path"
msgstr ""
-#: lexsup.c:347
+#: lexsup.c:350
msgid "Set link time shared library search path"
msgstr ""
-#: lexsup.c:349
+#: lexsup.c:352
msgid "Create a shared library"
msgstr ""
-#: lexsup.c:353
+#: lexsup.c:356
msgid "Sort common symbols by size"
msgstr ""
-#: lexsup.c:357
+#: lexsup.c:360
msgid "COUNT"
msgstr ""
-#: lexsup.c:357
+#: lexsup.c:360
msgid "How many tags to reserve in .dynamic section"
msgstr ""
-#: lexsup.c:359
+#: lexsup.c:362
msgid "[=SIZE]"
msgstr ""
-#: lexsup.c:359
+#: lexsup.c:362
msgid "Split output sections every SIZE octets"
msgstr ""
-#: lexsup.c:361
+#: lexsup.c:364
msgid "[=COUNT]"
msgstr ""
-#: lexsup.c:361
+#: lexsup.c:364
msgid "Split output sections every COUNT relocs"
msgstr ""
-#: lexsup.c:363
+#: lexsup.c:366
msgid "Print memory usage statistics"
msgstr ""
-#: lexsup.c:365
+#: lexsup.c:368
msgid "Display target specific options"
msgstr ""
-#: lexsup.c:367
+#: lexsup.c:370
msgid "Do task level linking"
msgstr ""
-#: lexsup.c:369
+#: lexsup.c:372
msgid "Use same format as native linker"
msgstr ""
-#: lexsup.c:371
+#: lexsup.c:374
msgid "SECTION=ADDRESS"
msgstr ""
-#: lexsup.c:371
+#: lexsup.c:374
msgid "Set address of named section"
msgstr ""
-#: lexsup.c:373
+#: lexsup.c:376
msgid "Set address of .bss section"
msgstr ""
-#: lexsup.c:375
+#: lexsup.c:378
msgid "Set address of .data section"
msgstr ""
-#: lexsup.c:377
+#: lexsup.c:380
msgid "Set address of .text section"
msgstr ""
-#: lexsup.c:379
+#: lexsup.c:382
msgid "Output lots of information during link"
msgstr ""
-#: lexsup.c:383
+#: lexsup.c:386
msgid "Read version information script"
msgstr ""
-#: lexsup.c:386
+#: lexsup.c:389
msgid ""
"Take export symbols list from .exports, using\n"
"\t\t\t\tSYMBOL as the version."
msgstr ""
-#: lexsup.c:389
+#: lexsup.c:392
msgid "Warn about duplicate common symbols"
msgstr ""
-#: lexsup.c:391
+#: lexsup.c:394
msgid "Warn if global constructors/destructors are seen"
msgstr ""
-#: lexsup.c:394
+#: lexsup.c:397
msgid "Warn if the multiple GP values are used"
msgstr ""
-#: lexsup.c:396
+#: lexsup.c:399
msgid "Warn only once per undefined symbol"
msgstr ""
-#: lexsup.c:398
+#: lexsup.c:401
msgid "Warn if start of section changes due to alignment"
msgstr ""
-#: lexsup.c:401
+#: lexsup.c:404
msgid "Treat warnings as errors"
msgstr ""
-#: lexsup.c:404
+#: lexsup.c:407
msgid "Include all objects from following archives"
msgstr ""
-#: lexsup.c:406
+#: lexsup.c:409
msgid "Use wrapper functions for SYMBOL"
msgstr ""
-#: lexsup.c:408
+#: lexsup.c:411
msgid "[=WORDS]"
msgstr ""
-#: lexsup.c:408
+#: lexsup.c:411
msgid ""
"Modify problematic branches in last WORDS (1-10,\n"
"\t\t\t\tdefault 5) words of a page"
msgstr ""
-#: lexsup.c:574
+#: lexsup.c:577
msgid "%P: unrecognized option '%s'\n"
msgstr ""
-#: lexsup.c:576
+#: lexsup.c:579
msgid "%P%F: use the --help option for usage information\n"
msgstr ""
-#: lexsup.c:595
+#: lexsup.c:598
msgid "%P%F: unrecognized -a option `%s'\n"
msgstr ""
-#: lexsup.c:608
+#: lexsup.c:611
msgid "%P%F: unrecognized -assert option `%s'\n"
msgstr ""
-#: lexsup.c:651
+#: lexsup.c:654
msgid "%F%P: unknown demangling style `%s'"
msgstr ""
-#: lexsup.c:711
+#: lexsup.c:714
msgid "%P%F: invalid number `%s'\n"
msgstr ""
@@ -1548,65 +1566,65 @@ msgstr ""
#. an error message here. We cannot just make this a warning,
#. increment optind, and continue because getopt is too confused
#. and will seg-fault the next time around.
-#: lexsup.c:812
+#: lexsup.c:818
msgid "%P%F: bad -rpath option\n"
msgstr ""
-#: lexsup.c:910
+#: lexsup.c:916
msgid "%P%F: -shared not supported\n"
msgstr ""
-#: lexsup.c:942
+#: lexsup.c:948
msgid "%P%F: invalid argument to option \"--section-start\"\n"
msgstr ""
-#: lexsup.c:948
+#: lexsup.c:954
msgid "%P%F: missing argument(s) to option \"--section-start\"\n"
msgstr ""
-#: lexsup.c:1097
+#: lexsup.c:1103
msgid "%P%F: may not nest groups (--help for usage)\n"
msgstr ""
-#: lexsup.c:1104
+#: lexsup.c:1110
msgid "%P%F: group ended before it began (--help for usage)\n"
msgstr ""
-#: lexsup.c:1118
+#: lexsup.c:1124
msgid "%P%F: invalid argument to option \"mpc860c0\"\n"
msgstr ""
-#: lexsup.c:1173
+#: lexsup.c:1179
msgid "%P%F: invalid hex number `%s'\n"
msgstr ""
-#: lexsup.c:1185
+#: lexsup.c:1191
#, c-format
msgid "Usage: %s [options] file...\n"
msgstr ""
-#: lexsup.c:1187
+#: lexsup.c:1193
msgid "Options:\n"
msgstr ""
#. Note: Various tools (such as libtool) depend upon the
#. format of the listings below - do not change them.
-#: lexsup.c:1270
+#: lexsup.c:1276
#, c-format
msgid "%s: supported targets:"
msgstr ""
-#: lexsup.c:1278
+#: lexsup.c:1284
#, c-format
msgid "%s: supported emulations: "
msgstr ""
-#: lexsup.c:1283
+#: lexsup.c:1289
#, c-format
msgid "%s: emulation specific options:\n"
msgstr ""
-#: lexsup.c:1287
+#: lexsup.c:1293
#, c-format
msgid "Report bugs to %s\n"
msgstr ""
@@ -1615,61 +1633,61 @@ msgstr ""
msgid "%P%F: unknown format type %s\n"
msgstr ""
-#: pe-dll.c:321
+#: pe-dll.c:323
#, c-format
msgid "%XUnsupported PEI architecture: %s\n"
msgstr ""
-#: pe-dll.c:671
+#: pe-dll.c:673
#, c-format
msgid "%XError, duplicate EXPORT with ordinals: %s (%d vs %d)\n"
msgstr ""
-#: pe-dll.c:678
+#: pe-dll.c:680
#, c-format
msgid "Warning, duplicate EXPORT: %s\n"
msgstr ""
-#: pe-dll.c:742
+#: pe-dll.c:744
#, c-format
msgid "%XCannot export %s: symbol not defined\n"
msgstr ""
-#: pe-dll.c:748
+#: pe-dll.c:750
#, c-format
msgid "%XCannot export %s: symbol wrong type (%d vs %d)\n"
msgstr ""
-#: pe-dll.c:755
+#: pe-dll.c:757
#, c-format
msgid "%XCannot export %s: symbol not found\n"
msgstr ""
-#: pe-dll.c:870
+#: pe-dll.c:872
#, c-format
msgid "%XError, ordinal used twice: %d (%s vs %s)\n"
msgstr ""
-#: pe-dll.c:1181
+#: pe-dll.c:1183
#, c-format
msgid "%XError: %d-bit reloc in dll\n"
msgstr ""
-#: pe-dll.c:1316
+#: pe-dll.c:1318
#, c-format
msgid "%s: Can't open output def file %s\n"
msgstr ""
-#: pe-dll.c:1459
+#: pe-dll.c:1461
msgid "; no contents available\n"
msgstr ""
-#: pe-dll.c:2128
+#: pe-dll.c:2137
#, c-format
msgid "%XCan't open .lib file: %s\n"
msgstr ""
-#: pe-dll.c:2133
+#: pe-dll.c:2142
#, c-format
msgid "Creating library file: %s\n"
msgstr ""
diff --git a/contrib/binutils/ld/scripttempl/pe.sc b/contrib/binutils/ld/scripttempl/pe.sc
index 2f24757..a22611c 100644
--- a/contrib/binutils/ld/scripttempl/pe.sc
+++ b/contrib/binutils/ld/scripttempl/pe.sc
@@ -85,6 +85,11 @@ SECTIONS
*(.rdata)
${R_RDATA}
*(.eh_frame)
+ ${RELOCATING+___RUNTIME_PSEUDO_RELOC_LIST__ = .;}
+ ${RELOCATING+__RUNTIME_PSEUDO_RELOC_LIST__ = .;}
+ *(.rdata_runtime_pseudo_reloc)
+ ${RELOCATING+___RUNTIME_PSEUDO_RELOC_LIST_END__ = .;}
+ ${RELOCATING+__RUNTIME_PSEUDO_RELOC_LIST_END__ = .;}
}
.pdata ${RELOCATING+BLOCK(__section_alignment__)} :
OpenPOWER on IntegriCloud