bfd:
authorNick Clifton <nickc@redhat.com>
Tue, 30 Oct 2012 12:44:58 +0000 (12:44 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 30 Oct 2012 12:44:58 +0000 (12:44 +0000)
        * elf32-arm.c (elf32_arm_print_private_bfd_data): Recognise and
        display the new ARM hard-float/soft-float ABI flags for EABI_VER5
        (elf32_arm_post_process_headers): Add the hard-float/soft-float
        ABI flag as appropriate for ET_DYN/ET_EXEC in EABI_VER5.

binutils:
        * readelf.c (decode_ARM_machine_flags): Recognise and display the
        new ARM hard-float/soft-float ABI flags for EABI_VER5. Split out
        the code for EABI_VER4 and EABI_VER5 to allow this.

elfcpp:
        * arm.h: New enum for EABI soft- and hard-float flags.

gold:
        * gold.cc (Target_arm::do_adjust_elf_header): Add the
        hard-float/soft-float ABI flag as appropriate for ET_DYN/ET_EXEC
        in EABI_VER5.

include:
        * elf/arm.h (EF_ARM_ABI_FLOAT_SOFT): New define.
        (EF_ARM_ABI_FLOAT_HARD): Likewise.

ld/testsuite:
        * ld-arm/eabi-hard-float.s: New test source.
        * ld-arm/eabi-soft-float.s: New test source.
        * ld-arm/eabi-hard-float.d: New test.
        * ld-arm/eabi-soft-float.d: New test.
        * ld-arm/eabi-soft-float-ABI4.d: New test.
        * ld-arm/eabi-soft-float-r.d: New test.
        * ld-arm/arm-elf.xp: Use the new tests.

binutils:
PR binutils/14779
* configure.in: Add checks for wchar.h and mbstate_t.
* config.in: Regenerate.
* configure: Regenerate.
* readelf.c: Conditionally include wchar.h.
(print_symbol): Conditionally use mbstate_t.

19 files changed:
bfd/ChangeLog
bfd/elf-bfd.h
bfd/elf32-arm.c
bfd/elflink.c
binutils/ChangeLog
binutils/bfdtest1.c
binutils/config.in
binutils/configure
binutils/configure.in
binutils/readelf.c
elfcpp/ChangeLog
elfcpp/arm.h
gas/doc/as.texinfo
gold/ChangeLog
gold/arm.cc
include/elf/ChangeLog
include/elf/arm.h
ld/testsuite/ChangeLog
ld/testsuite/ld-arm/arm-elf.exp

index d846f635fc502a640d131728c373c68ba3c1e0c0..56b40c5ffa42d978704a36dc5dfc5faa5696b9b7 100644 (file)
@@ -1,7 +1,14 @@
+2012-10-30  Steve McIntyre  <steve.mcintyre@linaro.org>
+
+       * elf32-arm.c (elf32_arm_print_private_bfd_data): Recognise and
+       display the new ARM hard-float/soft-float ABI flags for EABI_VER5
+       (elf32_arm_post_process_headers): Add the hard-float/soft-float
+       ABI flag as appropriate for ET_DYN/ET_EXEC in EABI_VER5.
+
 2012-10-30  Yao Qi  <yao@codesourcery.com>
            H.J. Lu  <hongjiu.lu@intel.com>
 
-       * configure.in: Set CORE_HEADER to hosts/x86-64linux.h for 
+       * configure.in: Set CORE_HEADER to hosts/x86-64linux.h for
        'i[3-7]86-*-linux-*' if x86_64-*linux is enabled.
        * configure: Regenerated.
 
index b8d82b1b7f9b96aacf6c714f41b7249166989fd6..aa78ecd1f4674f24e73a8644aaff6090a94442e4 100644 (file)
@@ -168,6 +168,8 @@ struct elf_link_hash_entry
   /* Symbol has a non-weak reference from a non-shared object (other than
      the object in which it is defined).  */
   unsigned int ref_regular_nonweak : 1;
+  /* Symbol has a non-weak reference from a shared object.  */
+  unsigned int ref_dynamic_nonweak : 1;  
   /* Dynamic symbol has been adjustd.  */
   unsigned int dynamic_adjusted : 1;
   /* Symbol needs a copy reloc.  */
index 633bb648a768c8a95680476b61336383b2fb1436..fefc7db0c1e7e6c90c3788a9550df4e9b2e33c74 100644 (file)
@@ -12110,6 +12110,15 @@ elf32_arm_print_private_bfd_data (bfd *abfd, void * ptr)
 
     case EF_ARM_EABI_VER5:
       fprintf (file, _(" [Version5 EABI]"));
+
+      if (flags & EF_ARM_ABI_FLOAT_SOFT)
+       fprintf (file, _(" [soft-float ABI]"));
+
+      if (flags & EF_ARM_ABI_FLOAT_HARD)
+       fprintf (file, _(" [hard-float ABI]"));
+
+      flags &= ~(EF_ARM_ABI_FLOAT_SOFT | EF_ARM_ABI_FLOAT_HARD);
+
     eabi:
       if (flags & EF_ARM_BE8)
        fprintf (file, _(" [BE8]"));
@@ -14417,6 +14426,16 @@ elf32_arm_post_process_headers (bfd * abfd, struct bfd_link_info * link_info ATT
       if (globals != NULL && globals->byteswap_code)
        i_ehdrp->e_flags |= EF_ARM_BE8;
     }
+
+  if (EF_ARM_EABI_VERSION (i_ehdrp->e_flags) == EF_ARM_EABI_VER5
+      && ((i_ehdrp->e_type == ET_DYN) || (i_ehdrp->e_type == ET_EXEC)))
+    {
+      int abi = bfd_elf_get_obj_attr_int (abfd, OBJ_ATTR_PROC, Tag_ABI_VFP_args);
+      if (abi)
+       i_ehdrp->e_flags |= EF_ARM_ABI_FLOAT_HARD;
+      else
+       i_ehdrp->e_flags |= EF_ARM_ABI_FLOAT_SOFT;
+    }
 }
 
 static enum elf_reloc_type_class
index f22e023df88c76b2ca055e2f384d38faa78e64d1..2fcbac3e06dbbca0e1a06cf636528a5bf1091ff3 100644 (file)
@@ -4394,6 +4394,8 @@ error_free_dyn:
                    {
                      h->def_dynamic = 0;
                      h->ref_dynamic = 1;
+                     /* PR 12549: Note if the dynamic reference is weak.  */
+                     h->ref_dynamic_nonweak = (bind != STB_WEAK);
                    }
                }
 
@@ -4411,6 +4413,9 @@ error_free_dyn:
                {
                  h->ref_dynamic = 1;
                  hi->ref_dynamic = 1;
+                 /* PR 12549: Note if the dynamic reference is weak.  */
+                 hi->ref_dynamic_nonweak =
+                   h->ref_dynamic_nonweak = (bind != STB_WEAK);
                }
              else
                {
@@ -4498,8 +4503,8 @@ error_free_dyn:
          if (!add_needed
              && definition
              && ((dynsym
-                  && h->ref_regular)
-                 || (h->ref_dynamic
+                  && h->ref_regular_nonweak)
+                 || (h->ref_dynamic_nonweak
                      && (elf_dyn_lib_class (abfd) & DYN_AS_NEEDED) != 0
                      && !on_needed_list (elf_dt_name (abfd), htab->needed))))
            {
index 8286e5a06971308e70db52b6ca32fc7b4dc2c875..c8149590746939426e48667db5e3ac6a5fa909dc 100644 (file)
@@ -1,3 +1,18 @@
+2012-10-30  Nick Clifton  <nickc@redhat.com>
+
+       PR binutils/14779
+       * configure.in: Add checks for wchar.h and mbstate_t.
+       * config.in: Regenerate.
+       * configure: Regenerate.
+       * readelf.c: Conditionally include wchar.h.
+       (print_symbol): Conditionally use mbstate_t.
+
+2012-10-30     Steve McIntyre  <steve.mcintyre@linaro.org>
+
+       * readelf.c (decode_ARM_machine_flags): Recognise and display the
+       new ARM hard-float/soft-float ABI flags for EABI_VER5. Split out
+       the code for EABI_VER4 and EABI_VER5 to allow this.
+
 2012-10-29  Alan Modra  <amodra@gmail.com>
 
        * dlltool.c (INIT_SEC_DATA): Move.
index b246a045a4d08274f24df61efb31024b791e5991..eaee2fdf9512a144c9e769f1ff39438c4d7c994c 100644 (file)
@@ -35,9 +35,11 @@ main (int argc, char **argv)
   bfd *last, *next;
 
   if (argc != 2)
-    die ("bad usage");
+    die ("usage: bfdtest1 <archive>");
 
   archive = bfd_openr (argv[1], NULL);
+  if (archive == NULL)
+    die ("no such archive");
 
   if (!bfd_check_format (archive, bfd_archive))
     {
index 4ed54e9c3ca959875a09efe6071138223171ef29..bcabbba79104d59dfaf7ffea6440cf0bc79491ca 100644 (file)
@@ -2,7 +2,7 @@
 
 /* Check that config.h is #included before system headers
    (this works only for glibc, but that should be enough).  */
-#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__)
+#if defined(__GLIBC__)
 #  error config.h must be #included before system headers
 #endif
 
 /* Define to 1 if you have the <locale.h> header file. */
 #undef HAVE_LOCALE_H
 
+/* Define if mbstate_t exists in wchar.h. */
+#undef HAVE_MBSTATE_T
+
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
 /* Define to 1 if you have the `utimes' function. */
 #undef HAVE_UTIMES
 
+/* Define to 1 if you have the <wchar.h> header file. */
+#undef HAVE_WCHAR_H
+
 /* Define to 1 if you have the <zlib.h> header file. */
 #undef HAVE_ZLIB_H
 
index 25f9360fce65d38bc581fe77adfdecea27919832..7c162ad706b381254744b368f50467e9814fe5a4 100755 (executable)
@@ -12446,7 +12446,7 @@ case "${host}" in
 esac
 
 
-for ac_header in string.h strings.h stdlib.h unistd.h fcntl.h sys/file.h limits.h locale.h sys/param.h
+for ac_header in string.h strings.h stdlib.h unistd.h fcntl.h sys/file.h limits.h locale.h sys/param.h wchar.h
 do :
   as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
@@ -12750,6 +12750,32 @@ $as_echo "#define HAVE_MKDTEMP 1" >>confdefs.h
 
 fi
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5
+$as_echo_n "checking for mbstate_t... " >&6; }
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <wchar.h>
+int
+main ()
+{
+mbstate_t teststate;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  have_mbstate_t=yes
+else
+  have_mbstate_t=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_mbstate_t" >&5
+$as_echo "$have_mbstate_t" >&6; }
+  if test x"$have_mbstate_t" = xyes; then
+
+$as_echo "#define HAVE_MBSTATE_T 1" >>confdefs.h
+
+  fi
 
 # Some systems have frexp only in -lm, not in -lc.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing frexp" >&5
index a21e85d788b9fb5f52d1467b92b37c0531fd73e6..e9852de44f9b12007db06e5446c9c199e6a570f3 100644 (file)
@@ -96,7 +96,7 @@ case "${host}" in
 esac
 AC_SUBST(DEMANGLER_NAME)
 
-AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h fcntl.h sys/file.h limits.h locale.h sys/param.h)
+AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h fcntl.h sys/file.h limits.h locale.h sys/param.h wchar.h)
 AC_HEADER_SYS_WAIT
 ACX_HEADER_STRING
 AC_FUNC_ALLOCA
@@ -107,6 +107,14 @@ AC_CHECK_FUNC([mkstemp],
 AC_CHECK_FUNC([mkdtemp],
               AC_DEFINE([HAVE_MKDTEMP], 1,
               [Define to 1 if you have the `mkdtemp' function.]))
+  AC_MSG_CHECKING([for mbstate_t])
+  AC_TRY_COMPILE([#include <wchar.h>],
+  [mbstate_t teststate;],
+  have_mbstate_t=yes, have_mbstate_t=no)
+  AC_MSG_RESULT($have_mbstate_t)
+  if test x"$have_mbstate_t" = xyes; then
+    AC_DEFINE(HAVE_MBSTATE_T,1,[Define if mbstate_t exists in wchar.h.])
+  fi
 
 # Some systems have frexp only in -lm, not in -lc.
 AC_SEARCH_LIBS(frexp, m)
index b4f9f4e59806ad335031e2b526a2d6c6272a713b..399402dd4afaa7ce0ff6ca8ff740f7c910f03bb3 100644 (file)
@@ -48,7 +48,9 @@
 #ifdef HAVE_ZLIB_H
 #include <zlib.h>
 #endif
+#ifdef HAVE_WCHAR_H
 #include <wchar.h>
+#endif
 
 #if __GNUC__ >= 2
 /* Define BFD64 here, even if our default architecture is 32 bit ELF
@@ -386,7 +388,7 @@ print_vma (bfd_vma vma, print_mode mode)
 }
 
 /* Display a symbol on stdout.  Handles the display of control characters and
-   multibye characters.
+   multibye characters (assuming the host environment supports them).
 
    Display at most abs(WIDTH) characters, truncating as necessary, unless do_wide is true.
 
@@ -400,7 +402,9 @@ print_symbol (int width, const char *symbol)
 {
   bfd_boolean extra_padding = FALSE;
   int num_printed = 0;
+#ifdef HAVE_MBSTATE_T
   mbstate_t state;
+#endif
   int width_remaining;
 
   if (width < 0)
@@ -417,13 +421,14 @@ print_symbol (int width, const char *symbol)
   else
     width_remaining = width;
 
+#ifdef HAVE_MBSTATE_T
   /* Initialise the multibyte conversion state.  */
   memset (& state, 0, sizeof (state));
+#endif
 
   while (width_remaining)
     {
       size_t  n;
-      wchar_t w;
       const char c = *symbol++;
 
       if (c == 0)
@@ -449,15 +454,22 @@ print_symbol (int width, const char *symbol)
        }
       else
        {
+#ifdef HAVE_MBSTATE_T
+         wchar_t w;
+#endif
          /* Let printf do the hard work of displaying multibyte characters.  */
          printf ("%.1s", symbol - 1);
          width_remaining --;
          num_printed ++;
 
+#ifdef HAVE_MBSTATE_T
          /* Try to find out how many bytes made up the character that was
             just printed.  Advance the symbol pointer past the bytes that
             were displayed.  */
          n = mbrtowc (& w, symbol - 1, MB_CUR_MAX, & state);
+#else
+         n = 1;
+#endif
          if (n != (size_t) -1 && n != (size_t) -2 && n > 0)
            symbol += (n - 1);
        }
@@ -2122,11 +2134,34 @@ decode_ARM_machine_flags (unsigned e_flags, char buf[])
 
     case EF_ARM_EABI_VER4:
       strcat (buf, ", Version4 EABI");
-      goto eabi;
+      while (e_flags)
+       {
+         unsigned flag;
+
+         /* Process flags one bit at a time.  */
+         flag = e_flags & - e_flags;
+         e_flags &= ~ flag;
+
+         switch (flag)
+           {
+           case EF_ARM_BE8:
+             strcat (buf, ", BE8");
+             break;
+
+           case EF_ARM_LE8:
+             strcat (buf, ", LE8");
+             break;
+
+           default:
+             unknown = 1;
+             break;
+           }
+      break;
+       }
+      break;
 
     case EF_ARM_EABI_VER5:
       strcat (buf, ", Version5 EABI");
-    eabi:
       while (e_flags)
        {
          unsigned flag;
@@ -2145,6 +2180,14 @@ decode_ARM_machine_flags (unsigned e_flags, char buf[])
              strcat (buf, ", LE8");
              break;
 
+           case EF_ARM_ABI_FLOAT_SOFT: /* Conflicts with EF_ARM_SOFT_FLOAT.  */
+             strcat (buf, ", soft-float ABI");
+             break;
+
+           case EF_ARM_ABI_FLOAT_HARD: /* Conflicts with EF_ARM_VFP_FLOAT.  */
+             strcat (buf, ", hard-float ABI");
+             break;
+
            default:
              unknown = 1;
              break;
index 853fa835be097ae31a200e63ec054e7141db6f69..a6d658979b2a5a07c42ae71bd6e15dab4055cd53 100644 (file)
@@ -1,3 +1,7 @@
+2012-10-30  Steve McIntyre  <steve.mcintyre@linaro.org>
+
+       * arm.h: New enum for EABI soft- and hard-float flags.
+
 2012-09-15  Jiong Wang  <jiwang@tilera.com>
 
        * tilegx.h: New file.
index cb85eeb42ed729b6e53ec0f8ea1da7e027d54d4a..ab0618a3d6736a56ade50cd81ed6962e04143710 100644 (file)
@@ -1,6 +1,6 @@
 // arm.h -- ELF definitions specific to EM_ARM  -*- C++ -*-
 
-// Copyright 2009, Free Software Foundation, Inc.
+// Copyright 2009, 2012 Free Software Foundation, Inc.
 // Written by Doug Kwan <dougkwan@google.com>.
 
 // This file is part of elfcpp.
@@ -222,6 +222,14 @@ inline Elf_Word
 arm_eabi_version(Elf_Word flags)
 { return flags & EF_ARM_EABIMASK; }
 
+// EABI_VER5 e_flags values for identifying soft- and hard-float ABI
+// choice.
+enum
+{
+  EF_ARM_ABI_FLOAT_SOFT = 0x200,
+  EF_ARM_ABI_FLOAT_HARD = 0x400,
+};
+
 // Values for the Tag_CPU_arch EABI attribute.
 enum
 {
index 741783a342df243dd26626b09e413636f7adefe5..67233f027645d60865e1be67f366e6500be41979 100644 (file)
@@ -458,7 +458,6 @@ gcc(1), ld(1), and the Info entries for @file{binutils} and @file{ld}.
 
 @emph{Target RX options:}
    [@b{-mlittle-endian}|@b{-mbig-endian}]
-   [@b{-m32bit-ints}|@b{-m16bit-ints}]
    [@b{-m32bit-doubles}|@b{-m64bit-doubles}]
 @end ifset
 @ifset S390
@@ -7532,8 +7531,8 @@ things without first using the debugger to find the facts.
 If you have contributed to GAS and your name isn't listed here,
 it is not meant as a slight.  We just don't know about it.  Send mail to the
 maintainer, and we'll correct the situation.  Currently
-@c (January 1994),
-the maintainer is Ken Raeburn (email address @code{raeburn@@cygnus.com}).
+@c (October 2012),
+the maintainer is Nick Clifton (email address @code{nickc@@redhat.com}).
 
 Dean Elsner wrote the original @sc{gnu} assembler for the VAX.@footnote{Any
 more details?}
index 57c7cc3cff76708c9158211ad05183a03aba912e..60e2d4961b9f3c86ec0f07cbbf7f95d3b5f3e2c6 100644 (file)
@@ -1,3 +1,9 @@
+2012-10-30  Steve McIntyre  <steve.mcintyre@linaro.org>
+
+       * gold.cc (Target_arm::do_adjust_elf_header): Add the
+       hard-float/soft-float ABI flag as appropriate for ET_DYN/ET_EXEC
+       in EABI_VER5.
+
 2012-10-29  Cary Coutant  <ccoutant@google.com>
 
        * dwp.cc (usage): Add file and exit status parameters;
index d8471265705e598944019a11efda074e13a5a6ff..5770c8a439d78f5ed83043da8304152a437c1453 100644 (file)
@@ -2476,7 +2476,7 @@ class Target_arm : public Sized_target<32, big_endian>
   { return new Arm_output_section<big_endian>(name, type, flags); }
 
   void
-  do_adjust_elf_header(unsigned char* view, int len) const;
+  do_adjust_elf_header(unsigned char* view, int len);
 
   // We only need to generate stubs, and hence perform relaxation if we are
   // not doing relocatable linking.
@@ -10016,15 +10016,16 @@ template<bool big_endian>
 void
 Target_arm<big_endian>::do_adjust_elf_header(
     unsigned char* view,
-    int len) const
+    int len)
 {
   gold_assert(len == elfcpp::Elf_sizes<32>::ehdr_size);
 
   elfcpp::Ehdr<32, big_endian> ehdr(view);
+  elfcpp::Elf_Word flags = this->processor_specific_flags();
   unsigned char e_ident[elfcpp::EI_NIDENT];
   memcpy(e_ident, ehdr.get_e_ident(), elfcpp::EI_NIDENT);
 
-  if (elfcpp::arm_eabi_version(this->processor_specific_flags())
+  if (elfcpp::arm_eabi_version(flags)
       == elfcpp::EF_ARM_EABI_UNKNOWN)
     e_ident[elfcpp::EI_OSABI] = elfcpp::ELFOSABI_ARM;
   else
@@ -10033,6 +10034,21 @@ Target_arm<big_endian>::do_adjust_elf_header(
 
   // FIXME: Do EF_ARM_BE8 adjustment.
 
+  // If we're working in EABI_VER5, set the hard/soft float ABI flags
+  // as appropriate.
+  if (elfcpp::arm_eabi_version(flags) == elfcpp::EF_ARM_EABI_VER5)
+  {
+    elfcpp::Elf_Half type = ehdr.get_e_type();
+    if (type == elfcpp::ET_EXEC || type == elfcpp::ET_DYN)
+      {
+       Object_attribute* attr = this->get_aeabi_object_attribute(elfcpp::Tag_ABI_VFP_args);
+       if (attr->int_value())
+         flags |= elfcpp::EF_ARM_ABI_FLOAT_HARD;
+       else
+         flags |= elfcpp::EF_ARM_ABI_FLOAT_SOFT;
+       this->set_processor_specific_flags(flags);
+      }
+  }
   elfcpp::Ehdr_write<32, big_endian> oehdr(view);
   oehdr.put_e_ident(e_ident);
 }
index c75e2ff7e88a0926153ae16e3ff9b17e55cd9737..ef17f374be7d320544eb874754e821955026ec1a 100644 (file)
@@ -1,3 +1,8 @@
+2012-10-30  Steve McIntyre  <steve.mcintyre@linaro.org>
+
+       * elf/arm.h (EF_ARM_ABI_FLOAT_SOFT): New define.
+       (EF_ARM_ABI_FLOAT_HARD): Likewise.
+
 2012-10-23  Tom Tromey  <tromey@redhat.com>
 
        * common.h (NT_SIGINFO, NT_FILE): New defines.
@@ -18,7 +23,7 @@
        (R_TILEGX_IMM16_X1_HW1_LAST_PLT_PCREL): Ditto.
        (R_TILEGX_IMM16_X0_HW2_LAST_PLT_PCREL   ): Ditto.
        (R_TILEGX_IMM16_X1_HW2_LAST_PLT_PCREL): Ditto.
-       
+
 2012-08-13  Ian Bolton  <ian.bolton@arm.com>
             Laurent Desnogues  <laurent.desnogues@arm.com>
             Jim MacArthur  <jim.macarthur@arm.com>
index 8ea3fe88100dca49e95a3601f1d680a1b78f24f7..d79930380ed174ea762a96a3c842ad51b87e182e 100644 (file)
 #define EF_ARM_MAPSYMSFIRST 0x10       /* NB conflicts with EF_APCS_FLOAT.  */
 #define EF_ARM_EABIMASK      0xFF000000
 
+/* New constants defined in the ARM ELF spec. version XXX.
+   Only valid in conjunction with EF_ARM_EABI_VER5. */
+#define EF_ARM_ABI_FLOAT_SOFT 0x200    /* NB conflicts with EF_ARM_SOFT_FLOAT.  */
+#define EF_ARM_ABI_FLOAT_HARD 0x400    /* NB conflicts with EF_ARM_VFP_FLOAT.  */
+
 /* Constants defined in AAELF.  */
 #define EF_ARM_BE8         0x00800000
 #define EF_ARM_LE8         0x00400000
index f7975e449de8a06cd4fab0574b96b7bfe84a627d..3357d94504bf9f4362ae170328f8728aad57c180 100644 (file)
@@ -1,3 +1,13 @@
+2012-10-30  Steve McIntyre   <steve.mcintyre@linaro.org>
+
+       * ld-arm/eabi-hard-float.s: New test source.
+       * ld-arm/eabi-soft-float.s: New test source.
+       * ld-arm/eabi-hard-float.d: New test.
+       * ld-arm/eabi-soft-float.d: New test.
+       * ld-arm/eabi-soft-float-ABI4.d: New test.
+       * ld-arm/eabi-soft-float-r.d: New test.
+       * ld-arm/arm-elf.xp: Use the new tests.
+
 2012-10-29  Alan Modra  <amodra@gmail.com>
 
        * ld-powerpc/powerpc.exp: Modify emulation option passed to ld
index 8e15ffe5087790c5d116029c31df3cd2b96d4155..81ee0bd16cefd18c65d05ef0ec7ea796cc8d42a7 100644 (file)
@@ -271,6 +271,21 @@ set armelftests_common {
     {"Simple non-PIC shared library (no PLT check)" "-shared" "" {arm-lib.s}
      {{objdump -Rw arm-lib.r}}
      "arm-lib.so"}
+    {"EABI soft-float ET_EXEC ABI flag" "-T arm.ld" "-mfloat-abi=soft -meabi=5" {eabi-soft-float.s}
+     {{readelf -h eabi-soft-float.d}}
+     "eabi-soft-float"}
+    {"EABI hard-float ET_EXEC ABI flag" "-T arm.ld" "-mfloat-abi=hard -meabi=5" {eabi-hard-float.s}
+     {{readelf -h eabi-hard-float.d}}
+     "eabi-hard-float"}
+    {"EABI hard-float ET_DYN ABI flag" "-shared" "-mfloat-abi=hard -meabi=5" {eabi-hard-float.s}
+     {{readelf -h eabi-hard-float.d}}
+     "eabi-hard-float.so"}
+    {"EABI ABI flags wrong ABI version" "-T arm.ld" "-mfloat-abi=soft -meabi=4" {eabi-soft-float.s}
+     {{readelf -h eabi-soft-float-ABI4.d}}
+     "eabi-soft-float-no-flags"}
+    {"EABI ABI flags ld -r" "-r" "-mfloat-abi=soft -meabi=5" {eabi-soft-float.s}
+     {{readelf -h eabi-soft-float-r.d}}
+     "eabi-soft-float-r.o"}
 }
 
 set armelftests_nonacl {
This page took 0.06397 seconds and 4 git commands to generate.