From 4301eeb1c79a4a87cddf3da5339ecb01e2c26cb0 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Mon, 5 Jan 2004 22:09:38 +0000 Subject: [PATCH] * elf32-mips.c (ELF_MAXPAGESIZE): Redefine for traditional targets to support pages of up to 64kB. (elf32_bed): Redefine to get a separate backend data structure for traditional targets. * elf64-mips.c (ELF_MAXPAGESIZE): Redefine for traditional targets to support pages of up to 64kB. (elf64_bed): Redefine to get a separate backend data structure for traditional targets. * elfn32-mips.c (ELF_MAXPAGESIZE): Redefine for traditional targets to support pages of up to 64kB. (elf32_bed): Redefine to get a separate backend data structure for traditional targets. --- bfd/ChangeLog | 15 +++++++++++++++ bfd/elf32-mips.c | 17 +++++++++++------ bfd/elf64-mips.c | 19 ++++++++++++------- bfd/elfn32-mips.c | 19 ++++++++++++------- 4 files changed, 50 insertions(+), 20 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 2893591..0ff84d9 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,18 @@ +2004-01-05 Maciej W. Rozycki + + * elf32-mips.c (ELF_MAXPAGESIZE): Redefine for traditional + targets to support pages of up to 64kB. + (elf32_bed): Redefine to get a separate backend data structure for + traditional targets. + * elf64-mips.c (ELF_MAXPAGESIZE): Redefine for traditional + targets to support pages of up to 64kB. + (elf64_bed): Redefine to get a separate backend data structure for + traditional targets. + * elfn32-mips.c (ELF_MAXPAGESIZE): Redefine for traditional + targets to support pages of up to 64kB. + (elf32_bed): Redefine to get a separate backend data structure for + traditional targets. + 2004-01-04 Mark Kettenis * elf32-sparc.c (elf32_sparc_grok_psinfo): New function. diff --git a/bfd/elf32-mips.c b/bfd/elf32-mips.c index 27b1c4b..a0480f0 100644 --- a/bfd/elf32-mips.c +++ b/bfd/elf32-mips.c @@ -1513,10 +1513,6 @@ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = { #define ELF_ARCH bfd_arch_mips #define ELF_MACHINE_CODE EM_MIPS -/* The SVR4 MIPS ABI says that this should be 0x10000, but Irix 5 uses - a value of 0x1000, and we are compatible. */ -#define ELF_MAXPAGESIZE 0x1000 - #define elf_backend_collect TRUE #define elf_backend_type_change_ok TRUE #define elf_backend_can_gc_sections TRUE @@ -1594,20 +1590,29 @@ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = { #define TARGET_BIG_SYM bfd_elf32_bigmips_vec #define TARGET_BIG_NAME "elf32-bigmips" +/* The SVR4 MIPS ABI says that this should be 0x10000, but Irix 5 uses + a value of 0x1000, and we are compatible. */ +#define ELF_MAXPAGESIZE 0x1000 + #include "elf32-target.h" /* Support for traditional mips targets. */ -#define INCLUDED_TARGET_FILE /* More a type of flag. */ - #undef TARGET_LITTLE_SYM #undef TARGET_LITTLE_NAME #undef TARGET_BIG_SYM #undef TARGET_BIG_NAME +#undef ELF_MAXPAGESIZE + #define TARGET_LITTLE_SYM bfd_elf32_tradlittlemips_vec #define TARGET_LITTLE_NAME "elf32-tradlittlemips" #define TARGET_BIG_SYM bfd_elf32_tradbigmips_vec #define TARGET_BIG_NAME "elf32-tradbigmips" +/* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses + page sizes of up to that limit, so we need to respect it. */ +#define ELF_MAXPAGESIZE 0x10000 +#define elf32_bed elf32_tradbed + /* Include the target file again for this target. */ #include "elf32-target.h" diff --git a/bfd/elf64-mips.c b/bfd/elf64-mips.c index ca0ed6e..71c3425 100644 --- a/bfd/elf64-mips.c +++ b/bfd/elf64-mips.c @@ -2676,11 +2676,6 @@ const struct elf_size_info mips_elf64_size_info = #define ELF_ARCH bfd_arch_mips #define ELF_MACHINE_CODE EM_MIPS -/* The SVR4 MIPS ABI says that this should be 0x10000, but Irix 5 uses - a value of 0x1000, and we are compatible. - FIXME: How does this affect NewABI? */ -#define ELF_MAXPAGESIZE 0x1000 - #define elf_backend_collect TRUE #define elf_backend_type_change_ok TRUE #define elf_backend_can_gc_sections TRUE @@ -2791,9 +2786,12 @@ extern bfd_boolean bfd_elf64_archive_write_armap #define TARGET_BIG_SYM bfd_elf64_bigmips_vec #define TARGET_BIG_NAME "elf64-bigmips" -#include "elf64-target.h" +/* The SVR4 MIPS ABI says that this should be 0x10000, but Irix 5 uses + a value of 0x1000, and we are compatible. + FIXME: How does this affect NewABI? */ +#define ELF_MAXPAGESIZE 0x1000 -#define INCLUDED_TARGET_FILE /* More a type of flag. */ +#include "elf64-target.h" /* The SYSV-style 'traditional' (n)64 NewABI. */ #undef TARGET_LITTLE_SYM @@ -2801,10 +2799,17 @@ extern bfd_boolean bfd_elf64_archive_write_armap #undef TARGET_BIG_SYM #undef TARGET_BIG_NAME +#undef ELF_MAXPAGESIZE + #define TARGET_LITTLE_SYM bfd_elf64_tradlittlemips_vec #define TARGET_LITTLE_NAME "elf64-tradlittlemips" #define TARGET_BIG_SYM bfd_elf64_tradbigmips_vec #define TARGET_BIG_NAME "elf64-tradbigmips" +/* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses + page sizes of up to that limit, so we need to respect it. */ +#define ELF_MAXPAGESIZE 0x10000 +#define elf64_bed elf64_tradbed + /* Include the target file again for this target. */ #include "elf64-target.h" diff --git a/bfd/elfn32-mips.c b/bfd/elfn32-mips.c index 2bfbf625..973edd5 100644 --- a/bfd/elfn32-mips.c +++ b/bfd/elfn32-mips.c @@ -1873,11 +1873,6 @@ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = { #define ELF_ARCH bfd_arch_mips #define ELF_MACHINE_CODE EM_MIPS -/* The SVR4 MIPS ABI says that this should be 0x10000, but Irix 5 uses - a value of 0x1000, and we are compatible. - FIXME: How does this affect NewABI? */ -#define ELF_MAXPAGESIZE 0x1000 - #define elf_backend_collect TRUE #define elf_backend_type_change_ok TRUE #define elf_backend_can_gc_sections TRUE @@ -1959,20 +1954,30 @@ static const struct ecoff_debug_swap mips_elf32_ecoff_debug_swap = { #define TARGET_BIG_SYM bfd_elf32_nbigmips_vec #define TARGET_BIG_NAME "elf32-nbigmips" +/* The SVR4 MIPS ABI says that this should be 0x10000, but Irix 5 uses + a value of 0x1000, and we are compatible. + FIXME: How does this affect NewABI? */ +#define ELF_MAXPAGESIZE 0x1000 + #include "elf32-target.h" /* Support for traditional mips targets using n32 ABI. */ -#define INCLUDED_TARGET_FILE /* More a type of flag. */ - #undef TARGET_LITTLE_SYM #undef TARGET_LITTLE_NAME #undef TARGET_BIG_SYM #undef TARGET_BIG_NAME +#undef ELF_MAXPAGESIZE + #define TARGET_LITTLE_SYM bfd_elf32_ntradlittlemips_vec #define TARGET_LITTLE_NAME "elf32-ntradlittlemips" #define TARGET_BIG_SYM bfd_elf32_ntradbigmips_vec #define TARGET_BIG_NAME "elf32-ntradbigmips" +/* The SVR4 MIPS ABI says that this should be 0x10000, and Linux uses + page sizes of up to that limit, so we need to respect it. */ +#define ELF_MAXPAGESIZE 0x10000 +#define elf32_bed elf32_tradbed + /* Include the target file again for this target. */ #include "elf32-target.h" -- 2.7.4