mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:54:41 +08:00
bfd:
* 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.
This commit is contained in:
parent
b1bd052dee
commit
3bfcb6528e
@ -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.
|
||||
|
||||
|
@ -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. */
|
||||
|
@ -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
|
||||
|
@ -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))))
|
||||
{
|
||||
|
@ -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.
|
||||
|
@ -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))
|
||||
{
|
||||
|
@ -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
|
||||
|
||||
@ -100,6 +100,9 @@
|
||||
/* 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
|
||||
|
||||
@ -160,6 +163,9 @@
|
||||
/* 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
|
||||
|
||||
|
28
binutils/configure
vendored
28
binutils/configure
vendored
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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,6 @@ decode_ARM_machine_flags (unsigned e_flags, char buf[])
|
||||
|
||||
case EF_ARM_EABI_VER4:
|
||||
strcat (buf, ", Version4 EABI");
|
||||
goto eabi;
|
||||
|
||||
case EF_ARM_EABI_VER5:
|
||||
strcat (buf, ", Version5 EABI");
|
||||
eabi:
|
||||
while (e_flags)
|
||||
{
|
||||
unsigned flag;
|
||||
@ -2145,6 +2152,42 @@ decode_ARM_machine_flags (unsigned e_flags, char buf[])
|
||||
strcat (buf, ", LE8");
|
||||
break;
|
||||
|
||||
default:
|
||||
unknown = 1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
case EF_ARM_EABI_VER5:
|
||||
strcat (buf, ", Version5 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;
|
||||
|
||||
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;
|
||||
|
@ -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.
|
||||
|
10
elfcpp/arm.h
10
elfcpp/arm.h
@ -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
|
||||
{
|
||||
|
@ -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?}
|
||||
|
@ -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;
|
||||
|
22
gold/arm.cc
22
gold/arm.cc
@ -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);
|
||||
}
|
||||
|
@ -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>
|
||||
|
@ -46,6 +46,11 @@
|
||||
#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
|
||||
|
@ -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
|
||||
|
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user