aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/ChangeLog11
-rw-r--r--bfd/archures.c4
-rw-r--r--bfd/bfd-in2.h1
-rw-r--r--bfd/cpu-powerpc.c55
-rw-r--r--gas/testsuite/ChangeLog4
-rw-r--r--gas/testsuite/gas/ppc/test1elf64.d2
6 files changed, 54 insertions, 23 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 0c9cbd6..f2f69a7 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,5 +1,16 @@
2002-02-05 Alan Modra <amodra@bigpond.net.au>
+ From Jimi X <jimix@watson.ibm.com>
+ * archures (bfd_mach_ppc64): Define.
+ (bfd_powerpc_arch): Rename to bfd_powerpc_archs.
+ (bfd_powerpc_arch): Define.
+ * bfd-in2.h: Regenerate.
+ * cpu-powerpc.c (arch_info_struct): Rename to bfd_powerpc_archs.
+ (bfd_powerpc_arch): Move to tail of bfd_powerpc_archs.
+ (bfd_powerpc_archs): Add default powerpc64 arch.
+
+2002-02-05 Alan Modra <amodra@bigpond.net.au>
+
* elf64-ppc.c (ppc64_elf_size_dynamic_sections): Check for relocs
against section syms in readonly sections. Don't do the global
sym check if we find one.
diff --git a/bfd/archures.c b/bfd/archures.c
index 892a379..68057a4 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -165,6 +165,7 @@ DESCRIPTION
. bfd_arch_pdp11, {* DEC PDP-11 *}
. bfd_arch_powerpc, {* PowerPC *}
.#define bfd_mach_ppc 0
+.#define bfd_mach_ppc64 1
.#define bfd_mach_ppc_403 403
.#define bfd_mach_ppc_403gc 4030
.#define bfd_mach_ppc_505 505
@@ -332,7 +333,8 @@ extern const bfd_arch_info_type bfd_openrisc_arch;
extern const bfd_arch_info_type bfd_or32_arch;
extern const bfd_arch_info_type bfd_pdp11_arch;
extern const bfd_arch_info_type bfd_pj_arch;
-extern const bfd_arch_info_type bfd_powerpc_arch;
+extern const bfd_arch_info_type bfd_powerpc_archs[];
+#define bfd_powerpc_arch bfd_powerpc_archs[0]
extern const bfd_arch_info_type bfd_rs6000_arch;
extern const bfd_arch_info_type bfd_s390_arch;
extern const bfd_arch_info_type bfd_sh_arch;
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index ec79815d..257287a 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1543,6 +1543,7 @@ enum bfd_architecture
bfd_arch_pdp11, /* DEC PDP-11 */
bfd_arch_powerpc, /* PowerPC */
#define bfd_mach_ppc 0
+#define bfd_mach_ppc64 1
#define bfd_mach_ppc_403 403
#define bfd_mach_ppc_403gc 4030
#define bfd_mach_ppc_505 505
diff --git a/bfd/cpu-powerpc.c b/bfd/cpu-powerpc.c
index 3e7a51c..d812618 100644
--- a/bfd/cpu-powerpc.c
+++ b/bfd/cpu-powerpc.c
@@ -1,5 +1,6 @@
/* BFD PowerPC CPU definition
- Copyright 1994, 1995, 1996, 2000, 2001 Free Software Foundation, Inc.
+ Copyright 1994, 1995, 1996, 2000, 2001, 2002
+ Free Software Foundation, Inc.
Contributed by Ian Lance Taylor, Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@@ -47,7 +48,7 @@ powerpc_compatible (a,b)
/*NOTREACHED*/
}
-static const bfd_arch_info_type arch_info_struct[] =
+const bfd_arch_info_type bfd_powerpc_archs[] =
{
{
32, /* 32 bits in a word */
@@ -61,7 +62,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[1]
+ &bfd_powerpc_archs[1]
},
{
32, /* 32 bits in a word */
@@ -75,7 +76,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[2]
+ &bfd_powerpc_archs[2]
},
{
32, /* 32 bits in a word */
@@ -89,7 +90,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[3]
+ &bfd_powerpc_archs[3]
},
{
32, /* 32 bits in a word */
@@ -103,7 +104,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[4]
+ &bfd_powerpc_archs[4]
},
{
32, /* 32 bits in a word */
@@ -117,7 +118,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[5]
+ &bfd_powerpc_archs[5]
},
{
64, /* 64 bits in a word */
@@ -128,10 +129,10 @@ static const bfd_arch_info_type arch_info_struct[] =
"powerpc",
"powerpc:620",
3,
- BFD_DEFAULT_TARGET_SIZE == 64, /* default for 64 bit target */
+ false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[6]
+ &bfd_powerpc_archs[6]
},
{
64, /* 64 bits in a word */
@@ -145,7 +146,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[7]
+ &bfd_powerpc_archs[7]
},
{
64, /* 64 bits in a word */
@@ -159,7 +160,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[8]
+ &bfd_powerpc_archs[8]
},
{
64, /* 64 bits in a word */
@@ -173,7 +174,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[9]
+ &bfd_powerpc_archs[9]
},
{
64, /* 64 bits in a word */
@@ -187,7 +188,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[10]
+ &bfd_powerpc_archs[10]
},
{
32, /* 32 bits in a word */
@@ -201,7 +202,7 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[11]
+ &bfd_powerpc_archs[11]
},
{
32, /* 32 bits in a word */
@@ -215,11 +216,22 @@ static const bfd_arch_info_type arch_info_struct[] =
false, /* not the default */
powerpc_compatible,
bfd_default_scan,
- 0
- }
-};
-
-const bfd_arch_info_type bfd_powerpc_arch =
+ &bfd_powerpc_archs[12]
+ },
+ {
+ 64, /* 64 bits in a word */
+ 64, /* 64 bits in an address */
+ 8, /* 8 bits in a byte */
+ bfd_arch_powerpc,
+ bfd_mach_ppc64,
+ "powerpc",
+ "powerpc:common64",
+ 3,
+ BFD_DEFAULT_TARGET_SIZE == 64, /* default for 64 bit target */
+ powerpc_compatible,
+ bfd_default_scan,
+ &bfd_powerpc_archs[13]
+ },
{
32, /* 32 bits in a word */
32, /* 32 bits in an address */
@@ -232,5 +244,6 @@ const bfd_arch_info_type bfd_powerpc_arch =
BFD_DEFAULT_TARGET_SIZE != 64, /* default for 32 bit target */
powerpc_compatible,
bfd_default_scan,
- &arch_info_struct[0]
- };
+ 0
+ }
+};
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index 26f820d..80a5417 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,3 +1,7 @@
+2002-02-05 Alan Modra <amodra@bigpond.net.au>
+
+ * gas/ppc/test1elf64.d: Tweak arch name.
+
2002-02-04 Alexandre Oliva <aoliva@redhat.com>
* gas/testsuite/gas/sh/pcrel.d: New test.
diff --git a/gas/testsuite/gas/ppc/test1elf64.d b/gas/testsuite/gas/ppc/test1elf64.d
index 2e98ae3..bd8ae9f 100644
--- a/gas/testsuite/gas/ppc/test1elf64.d
+++ b/gas/testsuite/gas/ppc/test1elf64.d
@@ -3,7 +3,7 @@
.*: +file format elf64-powerpc
.*
-architecture: powerpc:common, flags 0x00000011:
+architecture: powerpc:common64, flags 0x00000011:
HAS_RELOC, HAS_SYMS
start address 0x0000000000000000