mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2025-02-05 08:46:39 +00:00
bfd/
* archures.c (bfd_mach_i386_nacl, bfd_mach_i386_i386_nacl): New macros. (bfd_mach_x86_64_nacl, bfd_mach_x64_32_nacl): New macros. * cpu-i386.c (bfd_arch_i386_onebyte_nop_fill): New function. (bfd_i386_nacl_arch): New variable. (bfd_x86_64_nacl_arch, bfd_x64_32_nacl_arch): New variables. (bfd_x64_32_arch_intel_syntax): Link them into the list. * bfd-in2.h: Regenerate. ld/ * emulparams/elf_i386_nacl.sh (ARCH): Set to i386:nacl. * emulparams/elf_x86_64_nacl.sh (ARCH): Set to i386:x86-64:nacl. * emulparams/elf32_x86_64_nacl.sh (ARCH): Set to i386:x64-32:nacl. ld/testsuite/ * ld-x86-64/x86-64.exp (Mixed x86_64 and i386 input test 1): Loosen string match to admit i386:x86-64*. (Mixed x86_64 and i386 input test 2): Likewise. * ld-x86-64/ilp32-2.d: Likewise. * ld-x86-64/ilp32-3.d: Likewise. * ld-x86-64/lp64-2.d: Likewise. * ld-x86-64/lp64-3.d: Likewise. * ld-x86-64/ia32-2.d: Likewise, and i386.* too. * ld-x86-64/ia32-3.d: Likewise.
This commit is contained in:
parent
887badb310
commit
1098fd41ac
@ -1,3 +1,13 @@
|
||||
2013-08-26 Roland McGrath <mcgrathr@google.com>
|
||||
|
||||
* archures.c (bfd_mach_i386_nacl, bfd_mach_i386_i386_nacl): New macros.
|
||||
(bfd_mach_x86_64_nacl, bfd_mach_x64_32_nacl): New macros.
|
||||
* cpu-i386.c (bfd_arch_i386_onebyte_nop_fill): New function.
|
||||
(bfd_i386_nacl_arch): New variable.
|
||||
(bfd_x86_64_nacl_arch, bfd_x64_32_nacl_arch): New variables.
|
||||
(bfd_x64_32_arch_intel_syntax): Link them into the list.
|
||||
* bfd-in2.h: Regenerate.
|
||||
|
||||
2013-08-26 Roland McGrath <mcgrathr@google.com>
|
||||
|
||||
* elf-nacl.c (nacl_modify_segment_map): Fix logic reordering the
|
||||
|
@ -189,9 +189,13 @@ DESCRIPTION
|
||||
.#define bfd_mach_i386_i386 (1 << 2)
|
||||
.#define bfd_mach_x86_64 (1 << 3)
|
||||
.#define bfd_mach_x64_32 (1 << 4)
|
||||
.#define bfd_mach_i386_nacl (1 << 5)
|
||||
.#define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax)
|
||||
.#define bfd_mach_x86_64_intel_syntax (bfd_mach_x86_64 | bfd_mach_i386_intel_syntax)
|
||||
.#define bfd_mach_x64_32_intel_syntax (bfd_mach_x64_32 | bfd_mach_i386_intel_syntax)
|
||||
.#define bfd_mach_i386_i386_nacl (bfd_mach_i386_i386 | bfd_mach_i386_nacl)
|
||||
.#define bfd_mach_x86_64_nacl (bfd_mach_x86_64 | bfd_mach_i386_nacl)
|
||||
.#define bfd_mach_x64_32_nacl (bfd_mach_x64_32 | bfd_mach_i386_nacl)
|
||||
. bfd_arch_l1om, {* Intel L1OM *}
|
||||
.#define bfd_mach_l1om (1 << 5)
|
||||
.#define bfd_mach_l1om_intel_syntax (bfd_mach_l1om | bfd_mach_i386_intel_syntax)
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
/* Main header file for the bfd library -- portable access to object files.
|
||||
|
||||
Copyright 1990-2013 2013 Free Software Foundation, Inc.
|
||||
Copyright 1990-2013 Free Software Foundation, Inc.
|
||||
|
||||
Contributed by Cygnus Support.
|
||||
|
||||
@ -1944,9 +1944,13 @@ enum bfd_architecture
|
||||
#define bfd_mach_i386_i386 (1 << 2)
|
||||
#define bfd_mach_x86_64 (1 << 3)
|
||||
#define bfd_mach_x64_32 (1 << 4)
|
||||
#define bfd_mach_i386_nacl (1 << 5)
|
||||
#define bfd_mach_i386_i386_intel_syntax (bfd_mach_i386_i386 | bfd_mach_i386_intel_syntax)
|
||||
#define bfd_mach_x86_64_intel_syntax (bfd_mach_x86_64 | bfd_mach_i386_intel_syntax)
|
||||
#define bfd_mach_x64_32_intel_syntax (bfd_mach_x64_32 | bfd_mach_i386_intel_syntax)
|
||||
#define bfd_mach_i386_i386_nacl (bfd_mach_i386_i386 | bfd_mach_i386_nacl)
|
||||
#define bfd_mach_x86_64_nacl (bfd_mach_x86_64 | bfd_mach_i386_nacl)
|
||||
#define bfd_mach_x64_32_nacl (bfd_mach_x64_32 | bfd_mach_i386_nacl)
|
||||
bfd_arch_l1om, /* Intel L1OM */
|
||||
#define bfd_mach_l1om (1 << 5)
|
||||
#define bfd_mach_l1om_intel_syntax (bfd_mach_l1om | bfd_mach_i386_intel_syntax)
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* BFD support for the Intel 386 architecture.
|
||||
Copyright 1992, 1994, 1995, 1996, 1998, 2000, 2001, 2002, 2004, 2005,
|
||||
2007, 2009, 2010, 2011
|
||||
2007, 2009, 2010, 2011, 2013
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of BFD, the Binary File Descriptor library.
|
||||
@ -119,6 +119,71 @@ bfd_arch_i386_long_nop_fill (bfd_size_type count,
|
||||
return bfd_arch_i386_fill (count, code, TRUE);
|
||||
}
|
||||
|
||||
/* Fill the buffer with zero, or one-byte nop instructions if CODE is TRUE. */
|
||||
|
||||
static void *
|
||||
bfd_arch_i386_onebyte_nop_fill (bfd_size_type count,
|
||||
bfd_boolean is_bigendian ATTRIBUTE_UNUSED,
|
||||
bfd_boolean code)
|
||||
{
|
||||
void *fill = bfd_malloc (count);
|
||||
if (fill != NULL)
|
||||
memset (fill, code ? 0x90 : 0, count);
|
||||
return fill;
|
||||
}
|
||||
|
||||
|
||||
static const bfd_arch_info_type bfd_x64_32_nacl_arch =
|
||||
{
|
||||
64, /* 64 bits in a word */
|
||||
64, /* 64 bits in an address */
|
||||
8, /* 8 bits in a byte */
|
||||
bfd_arch_i386,
|
||||
bfd_mach_x64_32_nacl,
|
||||
"i386",
|
||||
"i386:x64-32:nacl",
|
||||
3,
|
||||
FALSE,
|
||||
bfd_i386_compatible,
|
||||
bfd_default_scan,
|
||||
bfd_arch_i386_onebyte_nop_fill,
|
||||
NULL
|
||||
};
|
||||
|
||||
static const bfd_arch_info_type bfd_x86_64_nacl_arch =
|
||||
{
|
||||
64, /* 64 bits in a word */
|
||||
64, /* 64 bits in an address */
|
||||
8, /* 8 bits in a byte */
|
||||
bfd_arch_i386,
|
||||
bfd_mach_x86_64_nacl,
|
||||
"i386",
|
||||
"i386:x86-64:nacl",
|
||||
3,
|
||||
FALSE,
|
||||
bfd_i386_compatible,
|
||||
bfd_default_scan,
|
||||
bfd_arch_i386_onebyte_nop_fill,
|
||||
&bfd_x64_32_nacl_arch
|
||||
};
|
||||
|
||||
const bfd_arch_info_type bfd_i386_nacl_arch =
|
||||
{
|
||||
32, /* 32 bits in a word */
|
||||
32, /* 32 bits in an address */
|
||||
8, /* 8 bits in a byte */
|
||||
bfd_arch_i386,
|
||||
bfd_mach_i386_i386_nacl,
|
||||
"i386",
|
||||
"i386:nacl",
|
||||
3,
|
||||
TRUE,
|
||||
bfd_i386_compatible,
|
||||
bfd_default_scan,
|
||||
bfd_arch_i386_onebyte_nop_fill,
|
||||
&bfd_x86_64_nacl_arch
|
||||
};
|
||||
|
||||
static const bfd_arch_info_type bfd_x64_32_arch_intel_syntax =
|
||||
{
|
||||
64, /* 64 bits in a word */
|
||||
@ -133,7 +198,7 @@ static const bfd_arch_info_type bfd_x64_32_arch_intel_syntax =
|
||||
bfd_i386_compatible,
|
||||
bfd_default_scan,
|
||||
bfd_arch_i386_long_nop_fill,
|
||||
0
|
||||
&bfd_i386_nacl_arch
|
||||
};
|
||||
|
||||
static const bfd_arch_info_type bfd_x86_64_arch_intel_syntax =
|
||||
|
@ -1,3 +1,9 @@
|
||||
2013-08-26 Roland McGrath <mcgrathr@google.com>
|
||||
|
||||
* emulparams/elf_i386_nacl.sh (ARCH): Set to i386:nacl.
|
||||
* emulparams/elf_x86_64_nacl.sh (ARCH): Set to i386:x86-64:nacl.
|
||||
* emulparams/elf32_x86_64_nacl.sh (ARCH): Set to i386:x64-32:nacl.
|
||||
|
||||
2013-08-23 Roland McGrath <mcgrathr@google.com>
|
||||
|
||||
* emulparams/elf_nacl.sh (nacl_rodata_addr): Don't add in
|
||||
|
@ -1,3 +1,4 @@
|
||||
. ${srcdir}/emulparams/elf32_x86_64.sh
|
||||
. ${srcdir}/emulparams/elf_nacl.sh
|
||||
OUTPUT_FORMAT="elf32-x86-64-nacl"
|
||||
ARCH="i386:x64-32:nacl" # The :nacl just means one-byte nops for code fill.
|
||||
|
@ -1,3 +1,4 @@
|
||||
. ${srcdir}/emulparams/elf_i386.sh
|
||||
. ${srcdir}/emulparams/elf_nacl.sh
|
||||
OUTPUT_FORMAT="elf32-i386-nacl"
|
||||
ARCH="i386:nacl" # The :nacl just means one-byte nops for code fill.
|
||||
|
@ -1,3 +1,4 @@
|
||||
. ${srcdir}/emulparams/elf_x86_64.sh
|
||||
. ${srcdir}/emulparams/elf_nacl.sh
|
||||
OUTPUT_FORMAT="elf64-x86-64-nacl"
|
||||
ARCH="i386:x86-64:nacl" # The :nacl just means one-byte nops for code fill.
|
||||
|
@ -1,3 +1,15 @@
|
||||
2013-08-26 Roland McGrath <mcgrathr@google.com>
|
||||
|
||||
* ld-x86-64/x86-64.exp (Mixed x86_64 and i386 input test 1):
|
||||
Loosen string match to admit i386:x86-64*.
|
||||
(Mixed x86_64 and i386 input test 2): Likewise.
|
||||
* ld-x86-64/ilp32-2.d: Likewise.
|
||||
* ld-x86-64/ilp32-3.d: Likewise.
|
||||
* ld-x86-64/lp64-2.d: Likewise.
|
||||
* ld-x86-64/lp64-3.d: Likewise.
|
||||
* ld-x86-64/ia32-2.d: Likewise, and i386.* too.
|
||||
* ld-x86-64/ia32-3.d: Likewise.
|
||||
|
||||
2013-08-26 Roland McGrath <mcgrathr@google.com>
|
||||
|
||||
* ld-x86-64/ilp32-4-nacl.d: Loosen .shstrtab line regexp to match
|
||||
|
@ -1,4 +1,4 @@
|
||||
#source: dummy.s
|
||||
#as: --32
|
||||
#ld: -m elf_i386 tmpdir/start32.o tmpdir/foox32.o
|
||||
#error: .*i386:x64-32 architecture of input file `tmpdir/foox32.o' is incompatible with i386 output
|
||||
#error: .*i386:x64-32.* architecture of input file `tmpdir/foox32.o' is incompatible with i386.* output
|
||||
|
@ -1,4 +1,4 @@
|
||||
#source: dummy.s
|
||||
#as: --32
|
||||
#ld: -m elf_i386 tmpdir/start32.o tmpdir/foo64.o
|
||||
#error: .*i386:x86-64 architecture of input file `tmpdir/foo64.o' is incompatible with i386 output
|
||||
#error: .*i386:x86-64.* architecture of input file `tmpdir/foo64.o' is incompatible with i386.* output
|
||||
|
@ -1,4 +1,4 @@
|
||||
#source: dummy.s
|
||||
#as: --x32
|
||||
#ld: -m elf32_x86_64 tmpdir/startx32.o tmpdir/foo32.o
|
||||
#error: .*i386 architecture of input file `tmpdir/foo32.o' is incompatible with i386:x64-32 output
|
||||
#error: .*i386 architecture of input file `tmpdir/foo32.o' is incompatible with i386:x64-32.* output
|
||||
|
@ -1,4 +1,4 @@
|
||||
#source: dummy.s
|
||||
#as: --x32
|
||||
#ld: -m elf32_x86_64 tmpdir/startx32.o tmpdir/foo64.o
|
||||
#error: .*i386:x86-64 architecture of input file `tmpdir/foo64.o' is incompatible with i386:x64-32 output
|
||||
#error: .*i386:x86-64 architecture of input file `tmpdir/foo64.o' is incompatible with i386:x64-32.* output
|
||||
|
@ -1,4 +1,4 @@
|
||||
#source: dummy.s
|
||||
#as: --64
|
||||
#ld: -m elf_x86_64 tmpdir/start64.o tmpdir/foo32.o
|
||||
#error: .*i386 architecture of input file `tmpdir/foo32.o' is incompatible with i386:x86-64 output
|
||||
#error: .*i386 architecture of input file `tmpdir/foo32.o' is incompatible with i386:x86-64.* output
|
||||
|
@ -1,4 +1,4 @@
|
||||
#source: dummy.s
|
||||
#as: --64
|
||||
#ld: -m elf_x86_64 tmpdir/start64.o tmpdir/foox32.o
|
||||
#error: .*i386:x64-32 architecture of input file `tmpdir/foox32.o' is incompatible with i386:x86-64 output
|
||||
#error: .*i386:x64-32 architecture of input file `tmpdir/foox32.o' is incompatible with i386:x86-64.* output
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Expect script for ld-x86_64 tests
|
||||
# Copyright (C) 2002, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
|
||||
# Copyright (C) 2002, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
|
||||
# Free Software Foundation
|
||||
#
|
||||
# This file is part of the GNU Binutils.
|
||||
@ -163,7 +163,7 @@ global ld
|
||||
set test_name "Mixed x86_64 and i386 input test 1"
|
||||
set test mixed1
|
||||
if { ![ld_simple_link $ld tmpdir/$test "-m$emul tmpdir/${test}a.o tmpdir/${test}b.o"] } {
|
||||
if [string match "*i386 architecture of input file `tmpdir/${test}b.o' is incompatible with i386:x86-64 output*" $link_output] {
|
||||
if [string match "*i386 architecture of input file `tmpdir/${test}b.o' is incompatible with i386:x86-64* output*" $link_output] {
|
||||
pass "$test_name"
|
||||
} {
|
||||
fail "$test_name"
|
||||
@ -173,7 +173,7 @@ if { ![ld_simple_link $ld tmpdir/$test "-m$emul tmpdir/${test}a.o tmpdir/${test}
|
||||
set test_name "Mixed x86_64 and i386 input test 2"
|
||||
set test mixed2
|
||||
if { ![ld_simple_link $ld tmpdir/$test "-m$emul tmpdir/${test}a.o tmpdir/${test}b.o"] } {
|
||||
if [string match "*i386 architecture of input file `tmpdir/${test}b.o' is incompatible with i386:x86-64 output*" $link_output] {
|
||||
if [string match "*i386 architecture of input file `tmpdir/${test}b.o' is incompatible with i386:x86-64* output*" $link_output] {
|
||||
pass "$test_name"
|
||||
} {
|
||||
fail "$test_name"
|
||||
|
Loading…
x
Reference in New Issue
Block a user