summaryrefslogtreecommitdiffstats
path: root/include/elf
diff options
context:
space:
mode:
Diffstat (limited to 'include/elf')
-rw-r--r--include/elf/ChangeLog32
-rw-r--r--include/elf/common.h2
-rw-r--r--include/elf/cr16.h3
-rw-r--r--include/elf/internal.h10
-rw-r--r--include/elf/m68k.h1
-rw-r--r--include/elf/mn10300.h35
-rw-r--r--include/elf/ppc.h5
7 files changed, 70 insertions, 18 deletions
diff --git a/include/elf/ChangeLog b/include/elf/ChangeLog
index c24893d16..57bcd3b63 100644
--- a/include/elf/ChangeLog
+++ b/include/elf/ChangeLog
@@ -1,3 +1,35 @@
+2007-10-30 Nick Clifton <nickc@redhat.com>
+
+ * mn10300.h (R_MN10300_ALIGN): Define.
+
+2007-10-25 Daniel Jacobowitz <dan@codesourcery.com>
+
+ * ppc.h (Tag_GNU_Power_ABI_Vector): New.
+
+2007-10-19 Nick Clifton <nickc@redhat.com>
+
+ * mn10300.h: Add R_MN10300_SYM_DIFF reloc.
+
+2007-10-18 Roland McGrath <roland@redhat.com>
+
+ * common.h (NT_PPC_VMX): New macro.
+
+2007-10-01 M R Swami Reddy <MR.Swami.Reddy@nsc.com>
+
+ * cr16.h: Updated with new relocaction macros.
+
+2007-09-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/3281
+ PR binutils/5037
+ * internal.h (elf_segment_map): Add p_size and p_size_valid.
+ (ELF_IS_SECTION_IN_SEGMENT): Allow SHF_TLS sections in
+ PT_GNU_RELRO segments.
+
+2007-09-11 Nathan Sidwell <nathan@codesourcery.com>
+
+ * m68k.h (EF_M68K_CF_ISA_C_NODIV): New.
+
2007-08-25 Ulrich Weigand <uweigand@de.ibm.com>
* common.h (NT_SPU): Define.
diff --git a/include/elf/common.h b/include/elf/common.h
index 5b71782fd..be8b7fc8a 100644
--- a/include/elf/common.h
+++ b/include/elf/common.h
@@ -390,6 +390,8 @@
#define NT_AUXV 6 /* Contains copy of Elfxx_auxv_t */
#define NT_PRXFPREG 0x46e62b7f /* Contains a user_xfpregs_struct; */
/* note name must be "LINUX". */
+#define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */
+ /* note name must be "LINUX". */
/* Note segments for core files on dir-style procfs systems. */
diff --git a/include/elf/cr16.h b/include/elf/cr16.h
index e3f6c50b1..adb243dc9 100644
--- a/include/elf/cr16.h
+++ b/include/elf/cr16.h
@@ -51,6 +51,9 @@ START_RELOC_NUMBERS(elf_cr16_reloc_type)
RELOC_NUMBER (R_CR16_DISP16, 23)
RELOC_NUMBER (R_CR16_DISP24, 24)
RELOC_NUMBER (R_CR16_DISP24a, 25)
+ RELOC_NUMBER (R_CR16_SWITCH8, 26)
+ RELOC_NUMBER (R_CR16_SWITCH16, 27)
+ RELOC_NUMBER (R_CR16_SWITCH32, 28)
END_RELOC_NUMBERS(R_CR16_MAX)
#endif /* _ELF_CR16_H */
diff --git a/include/elf/internal.h b/include/elf/internal.h
index 152171136..f5380b8d5 100644
--- a/include/elf/internal.h
+++ b/include/elf/internal.h
@@ -239,6 +239,8 @@ struct elf_segment_map
bfd_vma p_vaddr_offset;
/* Program segment alignment. */
bfd_vma p_align;
+ /* Segment size in file and memory */
+ bfd_vma p_size;
/* Whether the p_flags field is valid; if not, the flags are based
on the section flags. */
unsigned int p_flags_valid : 1;
@@ -248,6 +250,9 @@ struct elf_segment_map
/* Whether the p_align field is valid; if not, PT_LOAD segment
alignment is based on the default maximum page size. */
unsigned int p_align_valid : 1;
+ /* Whether the p_size field is valid; if not, the size are based
+ on the section sizes. */
+ unsigned int p_size_valid : 1;
/* Whether this segment includes the file header. */
unsigned int includes_filehdr : 1;
/* Whether this segment includes the program headers. */
@@ -266,11 +271,12 @@ struct elf_segment_map
|| segment->p_type == PT_TLS) ? sec_hdr->sh_size : 0)
/* Decide if the given sec_hdr is in the given segment. PT_TLS segment
- contains only SHF_TLS sections. Only PT_LOAD and PT_TLS segments
- can contain SHF_TLS sections. */
+ contains only SHF_TLS sections. Only PT_LOAD, PT_GNU_RELRO and
+ and PT_TLS segments can contain SHF_TLS sections. */
#define ELF_IS_SECTION_IN_SEGMENT(sec_hdr, segment) \
(((((sec_hdr->sh_flags & SHF_TLS) != 0) \
&& (segment->p_type == PT_TLS \
+ || segment->p_type == PT_GNU_RELRO \
|| segment->p_type == PT_LOAD)) \
|| ((sec_hdr->sh_flags & SHF_TLS) == 0 \
&& segment->p_type != PT_TLS)) \
diff --git a/include/elf/m68k.h b/include/elf/m68k.h
index a9f2203a6..23b269a82 100644
--- a/include/elf/m68k.h
+++ b/include/elf/m68k.h
@@ -71,6 +71,7 @@ END_RELOC_NUMBERS (R_68K_max)
#define EF_M68K_CF_ISA_B_NOUSP 0x04 /* ISA_B except for USP */
#define EF_M68K_CF_ISA_B 0x05
#define EF_M68K_CF_ISA_C 0x06
+#define EF_M68K_CF_ISA_C_NODIV 0x07 /* ISA C except for div */
#define EF_M68K_CF_MAC_MASK 0x30
#define EF_M68K_CF_MAC 0x10 /* MAC */
#define EF_M68K_CF_EMAC 0x20 /* EMAC */
diff --git a/include/elf/mn10300.h b/include/elf/mn10300.h
index d241e9c61..444787b5f 100644
--- a/include/elf/mn10300.h
+++ b/include/elf/mn10300.h
@@ -1,23 +1,24 @@
/* MN10300 ELF support for BFD.
- Copyright 1998, 1999, 2000, 2003 Free Software Foundation, Inc.
+ Copyright 1998, 1999, 2000, 2003, 2007 Free Software Foundation, Inc.
-This file is part of BFD, the Binary File Descriptor library.
+ This file is part of BFD, the Binary File Descriptor library.
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+ MA 02110-1301, USA. */
-/* This file holds definitions specific to the MN10300 ELF ABI. */
+/* This file holds definitions specific to the MN10300 ELF ABI. */
#ifndef _ELF_MN10300_H
#define _ELF_MN10300_H
@@ -50,17 +51,19 @@ START_RELOC_NUMBERS (elf_mn10300_reloc_type)
RELOC_NUMBER (R_MN10300_GLOB_DAT, 21)
RELOC_NUMBER (R_MN10300_JMP_SLOT, 22)
RELOC_NUMBER (R_MN10300_RELATIVE, 23)
+ RELOC_NUMBER (R_MN10300_SYM_DIFF, 33)
+ RELOC_NUMBER (R_MN10300_ALIGN, 34)
END_RELOC_NUMBERS (R_MN10300_MAX)
/* Machine variant if we know it. This field was invented at Cygnus,
but it is hoped that other vendors will adopt it. If some standard
- is developed, this code should be changed to follow it. */
+ is developed, this code should be changed to follow it. */
#define EF_MN10300_MACH 0x00FF0000
/* Cygnus is choosing values between 80 and 9F;
00 - 7F should be left for a future standard;
- the rest are open. */
+ the rest are open. */
#define E_MN10300_MACH_MN10300 0x00810000
#define E_MN10300_MACH_AM33 0x00820000
diff --git a/include/elf/ppc.h b/include/elf/ppc.h
index fe48814d8..5d4462b06 100644
--- a/include/elf/ppc.h
+++ b/include/elf/ppc.h
@@ -180,6 +180,11 @@ enum
soft-float; 0 for not tagged or not
using any ABIs affected by the
differences. */
+
+ /* Value 1 for general purpose registers only, 2 for AltiVec
+ registers, 3 for SPE registers; 0 for not tagged or not using any
+ ABIs affected by the differences. */
+ Tag_GNU_Power_ABI_Vector = 8,
};
#endif /* _ELF_PPC_H */