* elf-bfd.h (struct elf_backend_data): Add minpagesize.
authorDaniel Jacobowitz <drow@false.org>
Fri, 28 Jan 2005 17:58:24 +0000 (17:58 +0000)
committerDaniel Jacobowitz <drow@false.org>
Fri, 28 Jan 2005 17:58:24 +0000 (17:58 +0000)
* elf32-arm.c (ELF_MINPAGESIZE): Define.
* elf32-ppc.c (ELF_MINPAGESIZE): Define.
* elfcode.h (elf_object_p): Use minpagesize instead of
maxpagesize.
* elfxx-target.h (ELF_MINPAGESIZE): Default to ELF_MAXPAGESIZE.
(elfNN_bed): Include ELF_MINPAGESIZE.

bfd/ChangeLog
bfd/elf-bfd.h
bfd/elf32-arm.c
bfd/elf32-ppc.c
bfd/elfcode.h
bfd/elfxx-target.h

index 3b9a9b6bf99a2920f747aadff8953b5a541ddace..955d393acb1d767952222d527c13bfa352291734 100644 (file)
@@ -1,3 +1,13 @@
+2005-01-28  Daniel Jacobowitz  <dan@codesourcery.com>
+
+       * elf-bfd.h (struct elf_backend_data): Add minpagesize.
+       * elf32-arm.c (ELF_MINPAGESIZE): Define.
+       * elf32-ppc.c (ELF_MINPAGESIZE): Define.
+       * elfcode.h (elf_object_p): Use minpagesize instead of
+       maxpagesize.
+       * elfxx-target.h (ELF_MINPAGESIZE): Default to ELF_MAXPAGESIZE.
+       (elfNN_bed): Include ELF_MINPAGESIZE.
+
 2005-01-28  Julian Brown  <julian@codesourcery.com>
 
        * bin-in.h (bfd_elf32_arm_set_target_relocs): Update prototype.
index 938791563b12d72595af46d3edd404549eaf7e35..6645c9a90c8def5a37c5f317f2ae3087eabc5175 100644 (file)
@@ -551,6 +551,11 @@ struct elf_backend_data
   /* The maximum page size for this backend.  */
   bfd_vma maxpagesize;
 
+  /* The minimum page size for this backend.  An input object will not be
+     considered page aligned unless its sections are correctly aligned for
+     pages at least this large.  May be smaller than maxpagesize.  */
+  bfd_vma minpagesize;
+
   /* The BFD flags applied to sections created for dynamic linking.  */
   flagword dynamic_sec_flags;
 
index 14f46f4342db0b8bd972efd6bd9056521cfcb838..69feb32e811376973bbab5c8432cbbd261469f5c 100644 (file)
@@ -5721,6 +5721,7 @@ const struct elf_size_info elf32_arm_size_info = {
 #else
 #define ELF_MAXPAGESIZE                        0x8000
 #endif
+#define ELF_MINPAGESIZE                        0x1000
 
 #define bfd_elf32_bfd_copy_private_bfd_data    elf32_arm_copy_private_bfd_data
 #define bfd_elf32_bfd_merge_private_bfd_data   elf32_arm_merge_private_bfd_data
index cafbae0759825e8c9d0e889ceeea250196c03323..6a1c4e591263b6539ba0aae9c27351ff26ad0a54 100644 (file)
@@ -6171,6 +6171,7 @@ static struct bfd_elf_special_section const ppc_elf_special_sections[]=
 #else
 #define ELF_MAXPAGESIZE                0x10000
 #endif
+#define ELF_MINPAGESIZE                0x1000
 #define elf_info_to_howto      ppc_elf_info_to_howto
 
 #ifdef  EM_CYGNUS_POWERPC
index 0e22c33c47ab9a16f56a2c7c4352265e78fb30c1..e1e995a505eafb3556750522af7fc5b2e9fc10e4 100644 (file)
@@ -1,6 +1,6 @@
 /* ELF executable support for BFD.
    Copyright 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-   2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+   2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
    Written by Fred Fish @ Cygnus Support, from information published
    in "UNIX System V Release 4, Programmers Guide: ANSI C and
@@ -680,7 +680,7 @@ elf_object_p (bfd *abfd)
              && (i_shdrp[shindex].sh_flags & SHF_ALLOC) != 0
              && i_shdrp[shindex].sh_type != SHT_NOBITS
              && (((i_shdrp[shindex].sh_addr - i_shdrp[shindex].sh_offset)
-                  % ebd->maxpagesize)
+                  % ebd->minpagesize)
                  != 0))
            abfd->flags &= ~D_PAGED;
        }
index 81202f8cdeb5ea6ecda05365fab58fec5e0832f3..a9d49c3b6571a526082d5610e5becee0676f4d75 100644 (file)
@@ -1,6 +1,6 @@
 /* Target definitions for NN-bit ELF
    Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-   2003, 2004 Free Software Foundation, Inc.
+   2003, 2004, 2005 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
 #define ELF_MAXPAGESIZE 1
 #endif
 
+#ifndef ELF_MINPAGESIZE
+#define ELF_MINPAGESIZE ELF_MAXPAGESIZE
+#endif
+
 #ifndef ELF_DYNAMIC_SEC_FLAGS
 /* Note that we set the SEC_IN_MEMORY flag for these sections.  */
 #define ELF_DYNAMIC_SEC_FLAGS                  \
@@ -519,6 +523,7 @@ static const struct elf_backend_data elfNN_bed =
   ELF_ARCH,                    /* arch */
   ELF_MACHINE_CODE,            /* elf_machine_code */
   ELF_MAXPAGESIZE,             /* maxpagesize */
+  ELF_MINPAGESIZE,             /* minpagesize */
   ELF_DYNAMIC_SEC_FLAGS,        /* dynamic_sec_flags */
   elf_info_to_howto,
   elf_info_to_howto_rel,