summaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2000-09-29 17:05:22 +0000
committerHans-Peter Nilsson <hp@axis.com>2000-09-29 17:05:22 +0000
commitfc8b6a1e9ff520e715055025b905eb919af79acb (patch)
tree72416ce37c8aebf51d309454959874a09ad6b6e8 /bfd
parentd795da66b965d3fb554dbcebd60495eae9916a53 (diff)
downloadgdb-fc8b6a1e9ff520e715055025b905eb919af79acb.tar.gz
Define two bfd_targets for absence and presence of leading
underscore on symbols. Make sure to only link same kind. * elf32-cris.c (cris_elf_object_p, cris_elf_final_write_processing, cris_elf_print_private_bfd_data, cris_elf_merge_private_bfd_data): New. (elf_backend_object_p, elf_backend_final_write_processing, bfd_elf32_bfd_print_private_bfd_data, bfd_elf32_bfd_merge_private_bfd_data): Define. <Target vector definition>: Include elf32-target.h twice with different macro settings: (TARGET_LITTLE_SYM): First as bfd_elf32_cris_vec, then as bfd_elf32_us_cris_vec. (TARGET_LITTLE_NAME): First as "elf32-cris", then "elf32-us-cris". (elf_symbol_leading_char): First as 0, then '_'. (INCLUDED_TARGET_FILE): Define for second include of elf32-target.h. * config.bfd (cris-*-*): Add bfd_elf32_us_cris_vec to targ_selvecs. * configure.in (bfd_elf32_cris_vec, cris_aout_vec): New vector. * configure: Regenerate. * targets.c: Declare bfd_elf32_us_cris_vec. * po/bfd.pot: Regenerate.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog23
-rw-r--r--bfd/config.bfd4
-rwxr-xr-xbfd/configure25
-rw-r--r--bfd/configure.in1
-rw-r--r--bfd/elf32-cris.c127
-rw-r--r--bfd/po/bfd.pot346
-rw-r--r--bfd/targets.c2
7 files changed, 335 insertions, 193 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 046387c24ab..6c72eceebda 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,26 @@
+2000-09-27 Hans-Peter Nilsson <hp@axis.com>
+
+ Define two bfd_targets for absence and presence of leading
+ underscore on symbols. Make sure to only link same kind.
+ * elf32-cris.c (cris_elf_object_p,
+ cris_elf_final_write_processing, cris_elf_print_private_bfd_data,
+ cris_elf_merge_private_bfd_data): New.
+ (elf_backend_object_p, elf_backend_final_write_processing,
+ bfd_elf32_bfd_print_private_bfd_data,
+ bfd_elf32_bfd_merge_private_bfd_data): Define.
+ <Target vector definition>: Include elf32-target.h twice with
+ different macro settings:
+ (TARGET_LITTLE_SYM): First as bfd_elf32_cris_vec, then as
+ bfd_elf32_us_cris_vec.
+ (TARGET_LITTLE_NAME): First as "elf32-cris", then "elf32-us-cris".
+ (elf_symbol_leading_char): First as 0, then '_'.
+ (INCLUDED_TARGET_FILE): Define for second include of elf32-target.h.
+ * config.bfd (cris-*-*): Add bfd_elf32_us_cris_vec to targ_selvecs.
+ * configure.in (bfd_elf32_cris_vec, cris_aout_vec): New vector.
+ * configure: Regenerate.
+ * targets.c: Declare bfd_elf32_us_cris_vec.
+ * po/bfd.pot: Regenerate.
+
2000-09-29 Momchil Velikov <velco@fadata.bg>
* elf32-arm.h (arm_add_to_rel): Correctly adjust the addend for
diff --git a/bfd/config.bfd b/bfd/config.bfd
index ec8f8d68559..acd0cc49431 100644
--- a/bfd/config.bfd
+++ b/bfd/config.bfd
@@ -209,8 +209,8 @@ case "${targ}" in
cris-*-*)
targ_defvec=cris_aout_vec
- targ_selvecs="bfd_elf32_cris_vec ieee_vec"
- targ_underscore=yes
+ targ_selvecs="bfd_elf32_us_cris_vec bfd_elf32_cris_vec ieee_vec"
+ targ_underscore=yes # Note: not true for bfd_elf32_cris_vec.
;;
d10v-*-*)
diff --git a/bfd/configure b/bfd/configure
index c5cc0bbe0fc..1e6c3495947 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -5852,6 +5852,7 @@ do
bfd_elf64_bigmips_vec) tb="$tb elf64-mips.lo elf64.lo elf32-mips.lo elf32.lo $elf ecofflink.lo"
target64=true ;;
bfd_elf32_cris_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;;
+ bfd_elf32_us_cris_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;;
bfd_elf32_d10v_vec) tb="$tb elf32-d10v.lo elf32.lo $elf" ;;
bfd_elf32_d30v_vec) tb="$tb elf32-d30v.lo elf32.lo $elf" ;;
bfd_elf32_fr30_vec) tb="$tb elf32-fr30.lo elf32.lo $elf" ;;
@@ -6075,17 +6076,17 @@ for ac_hdr in unistd.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6079: checking for $ac_hdr" >&5
+echo "configure:6080: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6084 "configure"
+#line 6085 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6089: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6090: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -6114,12 +6115,12 @@ done
for ac_func in getpagesize
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6118: checking for $ac_func" >&5
+echo "configure:6119: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6123 "configure"
+#line 6124 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6142,7 +6143,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6146: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6147: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -6167,7 +6168,7 @@ fi
done
echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:6171: checking for working mmap" >&5
+echo "configure:6172: checking for working mmap" >&5
if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -6175,7 +6176,7 @@ else
ac_cv_func_mmap_fixed_mapped=no
else
cat > conftest.$ac_ext <<EOF
-#line 6179 "configure"
+#line 6180 "configure"
#include "confdefs.h"
/* Thanks to Mike Haertel and Jim Avera for this test.
@@ -6315,7 +6316,7 @@ main()
}
EOF
-if { (eval echo configure:6319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6320: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_mmap_fixed_mapped=yes
else
@@ -6340,12 +6341,12 @@ fi
for ac_func in madvise mprotect
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6344: checking for $ac_func" >&5
+echo "configure:6345: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 6349 "configure"
+#line 6350 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -6368,7 +6369,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:6372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6373: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
diff --git a/bfd/configure.in b/bfd/configure.in
index c7d64807510..b2fd478ae02 100644
--- a/bfd/configure.in
+++ b/bfd/configure.in
@@ -494,6 +494,7 @@ do
bfd_elf64_bigmips_vec) tb="$tb elf64-mips.lo elf64.lo elf32-mips.lo elf32.lo $elf ecofflink.lo"
target64=true ;;
bfd_elf32_cris_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;;
+ bfd_elf32_us_cris_vec) tb="$tb elf32-cris.lo elf32.lo $elf" ;;
bfd_elf32_d10v_vec) tb="$tb elf32-d10v.lo elf32.lo $elf" ;;
bfd_elf32_d30v_vec) tb="$tb elf32-d30v.lo elf32.lo $elf" ;;
bfd_elf32_fr30_vec) tb="$tb elf32-fr30.lo elf32.lo $elf" ;;
diff --git a/bfd/elf32-cris.c b/bfd/elf32-cris.c
index 54bc991e95e..32501a12e78 100644
--- a/bfd/elf32-cris.c
+++ b/bfd/elf32-cris.c
@@ -48,6 +48,14 @@ static asection * cris_elf_gc_mark_hook
PARAMS ((bfd *, struct bfd_link_info *, Elf_Internal_Rela *,
struct elf_link_hash_entry *, Elf_Internal_Sym *));
+static boolean cris_elf_object_p PARAMS ((bfd *));
+
+static void cris_elf_final_write_processing PARAMS ((bfd *, boolean));
+
+static boolean cris_elf_print_private_bfd_data PARAMS ((bfd *, PTR));
+
+static boolean cris_elf_merge_private_bfd_data PARAMS ((bfd *, bfd *));
+
static reloc_howto_type cris_elf_howto_table [] =
{
/* This reloc does nothing. */
@@ -565,6 +573,96 @@ cris_elf_check_relocs (abfd, info, sec, relocs)
return true;
}
+
+/* Reject a file depending on underscores on symbols. */
+
+static boolean
+cris_elf_object_p (abfd)
+ bfd *abfd;
+{
+ if ((elf_elfheader (abfd)->e_flags & EF_CRIS_UNDERSCORE))
+ return (bfd_get_symbol_leading_char (abfd) == '_');
+ else
+ return (bfd_get_symbol_leading_char (abfd) == 0);
+}
+
+/* Mark presence or absence of leading underscore. */
+
+static void
+cris_elf_final_write_processing (abfd, linker)
+ bfd *abfd;
+ boolean linker ATTRIBUTE_UNUSED;
+{
+ if (bfd_get_symbol_leading_char (abfd) == '_')
+ elf_elfheader (abfd)->e_flags |= EF_CRIS_UNDERSCORE;
+ else
+ elf_elfheader (abfd)->e_flags &= ~EF_CRIS_UNDERSCORE;
+}
+
+/* Display the flags field. */
+
+static boolean
+cris_elf_print_private_bfd_data (abfd, ptr)
+ bfd *abfd;
+ PTR ptr;
+{
+ FILE *file = (FILE *) ptr;
+
+ BFD_ASSERT (abfd != NULL && ptr != NULL)
+
+ _bfd_elf_print_private_bfd_data (abfd, ptr);
+
+ fprintf (file, _("private flags = %lx:"), elf_elfheader (abfd)->e_flags);
+
+ if (elf_elfheader (abfd)->e_flags & EF_CRIS_UNDERSCORE)
+ fprintf (file, _(" [symbols have a _ prefix]"));
+
+ fputc ('\n', file);
+ return true;
+}
+
+/* Don't mix files with and without a leading underscore. */
+
+static boolean
+cris_elf_merge_private_bfd_data (ibfd, obfd)
+ bfd *ibfd;
+ bfd *obfd;
+{
+ flagword old_flags, new_flags;
+
+ if (_bfd_generic_verify_endian_match (ibfd, obfd) == false)
+ return false;
+
+ if (bfd_get_flavour (ibfd) != bfd_target_elf_flavour
+ || bfd_get_flavour (obfd) != bfd_target_elf_flavour)
+ return true;
+
+ if (! elf_flags_init (obfd))
+ {
+ /* This happens when ld starts out with a 'blank' output file. */
+ elf_flags_init (obfd) = true;
+
+ /* Set flags according to current bfd_target. */
+ cris_elf_final_write_processing (obfd, false);
+ }
+
+ old_flags = elf_elfheader (obfd)->e_flags;
+ new_flags = elf_elfheader (ibfd)->e_flags;
+
+ /* Is this good or bad? We'll follow with other excluding flags. */
+ if ((old_flags & EF_CRIS_UNDERSCORE) != (new_flags & EF_CRIS_UNDERSCORE))
+ {
+ (*_bfd_error_handler)
+ ((new_flags & EF_CRIS_UNDERSCORE)
+ ? _("%s: uses _-prefixed symbols, but writing file with non-prefixed symbols")
+ : _("%s: uses non-prefixed symbols, but writing file with _-prefixed symbols"),
+ bfd_get_filename (ibfd));
+ bfd_set_error (bfd_error_bad_value);
+ return false;
+ }
+
+ return true;
+}
#define ELF_ARCH bfd_arch_cris
#define ELF_MACHINE_CODE EM_CRIS
@@ -572,14 +670,7 @@ cris_elf_check_relocs (abfd, info, sec, relocs)
#define TARGET_LITTLE_SYM bfd_elf32_cris_vec
#define TARGET_LITTLE_NAME "elf32-cris"
-
-/* For the time being, we have a leading underscore. Perhaps change to 0
- later, when
- 1) a.out isn't as dominating, and we can forget about multiformat links
- and old assembly code.
- 2) there's an official solution to the symbol vs. register duality
- problem; perhaps a % register prefix, optionally enforced. */
-#define elf_symbol_leading_char '_'
+#define elf_symbol_leading_char 0
#define elf_info_to_howto_rel NULL
#define elf_info_to_howto cris_info_to_howto_rela
@@ -590,6 +681,14 @@ cris_elf_check_relocs (abfd, info, sec, relocs)
#define elf_backend_can_gc_sections 1
+#define elf_backend_object_p cris_elf_object_p
+#define elf_backend_final_write_processing \
+ cris_elf_final_write_processing
+#define bfd_elf32_bfd_print_private_bfd_data \
+ cris_elf_print_private_bfd_data
+#define bfd_elf32_bfd_merge_private_bfd_data \
+ cris_elf_merge_private_bfd_data
+
#define bfd_elf32_bfd_reloc_type_lookup cris_reloc_type_lookup
/* Later, we my want to optimize RELA entries into REL entries for dynamic
@@ -599,3 +698,15 @@ cris_elf_check_relocs (abfd, info, sec, relocs)
#define elf_backend_may_use_rela_p 1
#include "elf32-target.h"
+
+#define INCLUDED_TARGET_FILE
+
+#undef TARGET_LITTLE_SYM
+#undef TARGET_LITTLE_NAME
+#undef elf_symbol_leading_char
+
+#define TARGET_LITTLE_SYM bfd_elf32_us_cris_vec
+#define TARGET_LITTLE_NAME "elf32-us-cris"
+#define elf_symbol_leading_char '_'
+
+#include "elf32-target.h"
diff --git a/bfd/po/bfd.pot b/bfd/po/bfd.pot
index e36a6a5c95a..8e29e9e1b13 100644
--- a/bfd/po/bfd.pot
+++ b/bfd/po/bfd.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2000-09-15 11:44-0700\n"
+"POT-Creation-Date: 2000-09-26 05:49+0200\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"
@@ -326,6 +326,43 @@ msgstr ""
msgid "Warning: Clearing the interworking flag of %s due to outside request"
msgstr ""
+#: coff-i960.c:136 coff-i960.c:485
+msgid "uncertain calling convention for non-COFF symbol"
+msgstr ""
+
+#: coff-m68k.c:477 coff-mips.c:2433 elf32-m68k.c:2267
+msgid "unsupported reloc type"
+msgstr ""
+
+#: coff-mips.c:875 elf32-mips.c:1416
+msgid "GP relative relocation when _gp not defined"
+msgstr ""
+
+#. No other sections should appear in -membedded-pic
+#. code.
+#: coff-mips.c:2470
+msgid "reloc against unsupported section"
+msgstr ""
+
+#: coff-mips.c:2478
+msgid "reloc not properly aligned"
+msgstr ""
+
+#: coff-tic54x.c:264 coff-tic80.c:445
+#, c-format
+msgid "Unrecognized reloc type 0x%x"
+msgstr ""
+
+#: coff-tic54x.c:377 coffcode.h:4745
+#, c-format
+msgid "%s: warning: illegal symbol index %ld in relocs"
+msgstr ""
+
+#: coff-w65.c:383
+#, c-format
+msgid "ignoring reloc %s\n"
+msgstr ""
+
#: coffcode.h:2101
#, c-format
msgid "Unrecognized TI COFF target id '0x%x'"
@@ -351,11 +388,6 @@ msgstr ""
msgid "warning: %s: local symbol `%s' has no section"
msgstr ""
-#: coff-tic54x.c:377 coffcode.h:4745
-#, c-format
-msgid "%s: warning: illegal symbol index %ld in relocs"
-msgstr ""
-
#: coffcode.h:4783
#, c-format
msgid "%s: illegal relocation type %d at address 0x%lx"
@@ -371,10 +403,6 @@ msgstr ""
msgid "AUX tagndx %ld ttlsiz 0x%lx lnnos %ld next %ld"
msgstr ""
-#: coff-i960.c:136 coff-i960.c:485
-msgid "uncertain calling convention for non-COFF symbol"
-msgstr ""
-
#: cofflink.c:526 elflink.h:1659
#, c-format
msgid "Warning: type of symbol `%s' changed from %d to %d in %s"
@@ -395,34 +423,6 @@ msgstr ""
msgid "%s: warning: %s: line number overflow: 0x%lx > 0xffff"
msgstr ""
-#: coff-m68k.c:477 coff-mips.c:2433 elf32-m68k.c:2267
-msgid "unsupported reloc type"
-msgstr ""
-
-#: coff-mips.c:875 elf32-mips.c:1416
-msgid "GP relative relocation when _gp not defined"
-msgstr ""
-
-#. No other sections should appear in -membedded-pic
-#. code.
-#: coff-mips.c:2470
-msgid "reloc against unsupported section"
-msgstr ""
-
-#: coff-mips.c:2478
-msgid "reloc not properly aligned"
-msgstr ""
-
-#: coff-tic54x.c:264 coff-tic80.c:445
-#, c-format
-msgid "Unrecognized reloc type 0x%x"
-msgstr ""
-
-#: coff-w65.c:383
-#, c-format
-msgid "ignoring reloc %s\n"
-msgstr ""
-
#: dwarf2.c:425
msgid "Dwarf Error: Can't find .debug_abbrev section."
msgstr ""
@@ -539,16 +539,6 @@ msgid ""
" Type: %s"
msgstr ""
-#: elf32-arm.h:1181
-#, c-format
-msgid "%s: Warning: Arm BLX instruction targets Arm function '%s'."
-msgstr ""
-
-#: elf32-arm.h:1377
-#, c-format
-msgid "%s: Warning: Thumb BLX instruction targets thumb function '%s'."
-msgstr ""
-
#: elf-hppa.h:1363 elf-hppa.h:1396 elf32-arm.h:1832 elf32-i386.c:1430
#: elf32-ppc.c:3083 elf32-sh.c:2997
#, c-format
@@ -557,13 +547,13 @@ msgid ""
msgstr ""
#: elf-m10200.c:455 elf-m10300.c:670 elf32-arm.h:1901 elf32-avr.c:844
-#: elf32-cris.c:423 elf32-d10v.c:479 elf32-fr30.c:651 elf32-i860.c:1062
+#: elf32-cris.c:425 elf32-d10v.c:479 elf32-fr30.c:651 elf32-i860.c:1062
#: elf32-m32r.c:1265 elf32-v850.c:1677
msgid "internal error: out of range error"
msgstr ""
#: elf-m10200.c:459 elf-m10300.c:674 elf32-arm.h:1905 elf32-avr.c:848
-#: elf32-cris.c:427 elf32-d10v.c:483 elf32-fr30.c:655 elf32-i860.c:1066
+#: elf32-cris.c:429 elf32-d10v.c:483 elf32-fr30.c:655 elf32-i860.c:1066
#: elf32-m32r.c:1269 elf32-v850.c:1681
msgid "internal error: unsupported relocation error"
msgstr ""
@@ -574,11 +564,114 @@ msgid "internal error: dangerous error"
msgstr ""
#: elf-m10200.c:467 elf-m10300.c:682 elf32-arm.h:1913 elf32-avr.c:856
-#: elf32-cris.c:435 elf32-d10v.c:491 elf32-fr30.c:663 elf32-i860.c:1074
+#: elf32-cris.c:437 elf32-d10v.c:491 elf32-fr30.c:663 elf32-i860.c:1074
#: elf32-m32r.c:1277 elf32-v850.c:1701
msgid "internal error: unknown error"
msgstr ""
+#: elf.c:325
+#, c-format
+msgid "%s: invalid string offset %u >= %lu for section `%s'"
+msgstr ""
+
+#: elf.c:560
+msgid ""
+"\n"
+"Program Header:\n"
+msgstr ""
+
+#: elf.c:608
+msgid ""
+"\n"
+"Dynamic Section:\n"
+msgstr ""
+
+#: elf.c:737
+msgid ""
+"\n"
+"Version definitions:\n"
+msgstr ""
+
+#: elf.c:760
+msgid ""
+"\n"
+"Version References:\n"
+msgstr ""
+
+#: elf.c:765
+#, c-format
+msgid " required from %s:\n"
+msgstr ""
+
+#: elf.c:1353
+#, c-format
+msgid "%s: invalid link %lu for reloc section %s (index %u)"
+msgstr ""
+
+#: elf.c:2113
+#, c-format
+msgid ""
+"creating section symbol, name = %s, value = 0x%.8lx, index = %d, section = "
+"0x%.8lx\n"
+msgstr ""
+
+#: elf.c:2716
+#, c-format
+msgid "%s: Not enough room for program headers (allocated %u, need %u)"
+msgstr ""
+
+#: elf.c:2815
+#, c-format
+msgid "%s: Not enough room for program headers, try linking with -N"
+msgstr ""
+
+#: elf.c:2941
+#, c-format
+msgid "Error: First section in segment (%s) starts at 0x%x"
+msgstr ""
+
+#: elf.c:2944
+#, c-format
+msgid " whereas segment starts at 0x%x"
+msgstr ""
+
+#: elf.c:3217
+#, c-format
+msgid "%s: warning: allocated section `%s' not in segment"
+msgstr ""
+
+#: elf.c:3613
+#, c-format
+msgid "%s: symbol `%s' required but not present"
+msgstr ""
+
+#: elf.c:3622
+#, c-format
+msgid ""
+"elf_symbol_from_bfd_symbol 0x%.8lx, name = %s, sym num = %d, flags = "
+"0x%.8lx%s\n"
+msgstr ""
+
+#: elf.c:3863
+#, c-format
+msgid "%s: warning: Empty loadable segment detected\n"
+msgstr ""
+
+#: elf.c:5207
+#, c-format
+msgid "%s: unsupported relocation type %s"
+msgstr ""
+
+#: elf32-arm.h:1181
+#, c-format
+msgid "%s: Warning: Arm BLX instruction targets Arm function '%s'."
+msgstr ""
+
+#: elf32-arm.h:1377
+#, c-format
+msgid "%s: Warning: Thumb BLX instruction targets thumb function '%s'."
+msgstr ""
+
#: elf32-arm.h:1941
#, c-format
msgid ""
@@ -660,7 +753,7 @@ msgstr ""
#. Ignore init flag - it may not be set, despite the flags field
#. containing valid data.
-#: elf32-arm.h:2137 elf32-m68k.c:430 elf32-mips.c:2638
+#: elf32-arm.h:2137 elf32-cris.c:609 elf32-m68k.c:430 elf32-mips.c:2638
#, c-format
msgid "private flags = %lx:"
msgstr ""
@@ -717,61 +810,65 @@ msgstr ""
msgid "<Unrecognised flag bits set>"
msgstr ""
-#: elf32-avr.c:852 elf32-cris.c:431 elf32-fr30.c:659 elf32-i860.c:1070
+#: elf32-avr.c:852 elf32-cris.c:433 elf32-fr30.c:659 elf32-i860.c:1070
#: elf32-v850.c:1685
msgid "internal error: dangerous relocation"
msgstr ""
-#: elf32-hppa.c:590
+#: elf32-cris.c:612
+msgid " [symbols have a _ prefix]"
+msgstr ""
+
+#: elf32-hppa.c:597
#, c-format
msgid "%s(%s+0x%lx): cannot find stub entry %s"
msgstr ""
-#: elf32-hppa.c:656
+#: elf32-hppa.c:659
#, c-format
msgid "%s: cannot create stub entry %s"
msgstr ""
-#: elf32-hppa.c:850
+#: elf32-hppa.c:853
#, c-format
msgid "%s(%s+0x%lx): cannot relocate %s, recompile with -ffunction-sections"
msgstr ""
-#: elf32-hppa.c:863 elf32-hppa.c:1565
+#: elf32-hppa.c:866 elf32-hppa.c:1567
#, c-format
msgid "Could not find relocation section for %s"
msgstr ""
-#: elf32-hppa.c:997 elf32-hppa.c:3234
+#: elf32-hppa.c:1000 elf32-hppa.c:3341
#, c-format
msgid "%s(%s+0x%lx): cannot reach %s, recompile with -ffunction-sections"
msgstr ""
-#: elf32-hppa.c:1319
+#: elf32-hppa.c:1322
#, c-format
msgid ""
"%s: relocation %s can not be used when making a shared object; recompile "
"with -fPIC"
msgstr ""
-#: elf32-hppa.c:1338
+#: elf32-hppa.c:1341
#, c-format
msgid ""
"%s: relocation %s should not be used when making a shared object; recompile "
"with -fPIC"
msgstr ""
-#: elf32-hppa.c:2624
+#: elf32-hppa.c:2732
#, c-format
msgid "%s: duplicate export stub %s"
msgstr ""
-#: elf32-hppa.c:3126
+#: elf32-hppa.c:3233
#, c-format
msgid "%s(%s+0x%lx): fixing %s"
msgstr ""
-#: elf32-hppa.c:3728
+#: elf32-hppa.c:3835
#, c-format
msgid "%s(%s+0x%lx): cannot handle %s for %s"
msgstr ""
@@ -1230,99 +1327,6 @@ msgstr ""
msgid "%s: linking UltraSPARC specific with HAL specific code"
msgstr ""
-#: elf.c:325
-#, c-format
-msgid "%s: invalid string offset %u >= %lu for section `%s'"
-msgstr ""
-
-#: elf.c:560
-msgid ""
-"\n"
-"Program Header:\n"
-msgstr ""
-
-#: elf.c:608
-msgid ""
-"\n"
-"Dynamic Section:\n"
-msgstr ""
-
-#: elf.c:737
-msgid ""
-"\n"
-"Version definitions:\n"
-msgstr ""
-
-#: elf.c:760
-msgid ""
-"\n"
-"Version References:\n"
-msgstr ""
-
-#: elf.c:765
-#, c-format
-msgid " required from %s:\n"
-msgstr ""
-
-#: elf.c:1353
-#, c-format
-msgid "%s: invalid link %lu for reloc section %s (index %u)"
-msgstr ""
-
-#: elf.c:2113
-#, c-format
-msgid ""
-"creating section symbol, name = %s, value = 0x%.8lx, index = %d, section = "
-"0x%.8lx\n"
-msgstr ""
-
-#: elf.c:2716
-#, c-format
-msgid "%s: Not enough room for program headers (allocated %u, need %u)"
-msgstr ""
-
-#: elf.c:2815
-#, c-format
-msgid "%s: Not enough room for program headers, try linking with -N"
-msgstr ""
-
-#: elf.c:2941
-#, c-format
-msgid "Error: First section in segment (%s) starts at 0x%x"
-msgstr ""
-
-#: elf.c:2944
-#, c-format
-msgid " whereas segment starts at 0x%x"
-msgstr ""
-
-#: elf.c:3217
-#, c-format
-msgid "%s: warning: allocated section `%s' not in segment"
-msgstr ""
-
-#: elf.c:3613
-#, c-format
-msgid "%s: symbol `%s' required but not present"
-msgstr ""
-
-#: elf.c:3622
-#, c-format
-msgid ""
-"elf_symbol_from_bfd_symbol 0x%.8lx, name = %s, sym num = %d, flags = "
-"0x%.8lx%s\n"
-msgstr ""
-
-#: elf.c:3863
-#, c-format
-msgid "%s: warning: Empty loadable segment detected\n"
-msgstr ""
-
-#: elf.c:5207
-#, c-format
-msgid "%s: unsupported relocation type %s"
-msgstr ""
-
#: elfcode.h:1067
#, c-format
msgid "%s: version count (%ld) does not match symbol count (%ld)"
@@ -1497,6 +1501,21 @@ msgstr ""
msgid "Unhandled OSF/1 core file section type %d\n"
msgstr ""
+#: pe-mips.c:657
+#, c-format
+msgid "%s: `ld -r' not supported with PE MIPS objects\n"
+msgstr ""
+
+#: pe-mips.c:820
+#, c-format
+msgid "%s: jump too far away\n"
+msgstr ""
+
+#: pe-mips.c:847
+#, c-format
+msgid "%s: bad pair/reflo after refhi\n"
+msgstr ""
+
#. XXX code yet to be written.
#: peicode.h:809
#, c-format
@@ -1834,21 +1853,6 @@ msgid ""
"Characteristics 0x%x\n"
msgstr ""
-#: pe-mips.c:657
-#, c-format
-msgid "%s: `ld -r' not supported with PE MIPS objects\n"
-msgstr ""
-
-#: pe-mips.c:820
-#, c-format
-msgid "%s: jump too far away\n"
-msgstr ""
-
-#: pe-mips.c:847
-#, c-format
-msgid "%s: bad pair/reflo after refhi\n"
-msgstr ""
-
#: ppcboot.c:422
msgid ""
"\n"
diff --git a/bfd/targets.c b/bfd/targets.c
index 986d88bb87b..d4d3318d6bb 100644
--- a/bfd/targets.c
+++ b/bfd/targets.c
@@ -523,6 +523,7 @@ extern const bfd_target bfd_elf32_big_generic_vec;
extern const bfd_target bfd_elf32_bigmips_vec;
extern const bfd_target bfd_elf64_bigmips_vec;
extern const bfd_target bfd_elf32_cris_vec;
+extern const bfd_target bfd_elf32_us_cris_vec;
extern const bfd_target bfd_elf32_d10v_vec;
extern const bfd_target bfd_elf32_d30v_vec;
extern const bfd_target bfd_elf32_hppa_vec;
@@ -730,6 +731,7 @@ const bfd_target * const bfd_target_vector[] = {
&bfd_elf64_bigmips_vec,
#endif
&bfd_elf32_cris_vec,
+ &bfd_elf32_us_cris_vec,
&bfd_elf32_d10v_vec,
&bfd_elf32_d30v_vec,
&bfd_elf32_hppa_vec,