diff options
author | obrien <obrien@FreeBSD.org> | 2002-12-02 09:06:04 +0000 |
---|---|---|
committer | obrien <obrien@FreeBSD.org> | 2002-12-02 09:06:04 +0000 |
commit | 225c3b110193aa0853fcc74fb69ddc504972f91f (patch) | |
tree | 285c176a9d4c27aa844e844b43c123156c87006b /contrib/binutils/ld | |
parent | c35e71cdfc7611906cbf9303055832142e9cbaca (diff) | |
parent | 4f4b0b5073010ff850cc95a6bd074066eeb7dccb (diff) | |
download | FreeBSD-src-225c3b110193aa0853fcc74fb69ddc504972f91f.zip FreeBSD-src-225c3b110193aa0853fcc74fb69ddc504972f91f.tar.gz |
This commit was generated by cvs2svn to compensate for changes in r107492,
which included commits to RCS files with non-trunk default branches.
Diffstat (limited to 'contrib/binutils/ld')
23 files changed, 655 insertions, 372 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/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/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/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__)} : |