Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/external/gpl3/binutils do riscv and earmeb



details:   https://anonhg.NetBSD.org/src/rev/eb19ff955938
branches:  trunk
changeset: 343336:eb19ff955938
user:      christos <christos%NetBSD.org@localhost>
date:      Sat Jan 30 01:44:22 2016 +0000

description:
do riscv and earmeb

diffstat:

 external/gpl3/binutils/lib/libbfd/arch/earmeb/bfd.h         |  1605 ++++++++--
 external/gpl3/binutils/lib/libbfd/arch/earmeb/bfd_stdint.h  |     6 +-
 external/gpl3/binutils/lib/libbfd/arch/earmeb/bfdver.h      |    10 +-
 external/gpl3/binutils/lib/libbfd/arch/earmeb/config.h      |    45 +-
 external/gpl3/binutils/lib/libbfd/arch/earmeb/defs.mk       |    12 +-
 external/gpl3/binutils/lib/libbfd/arch/riscv32/bfd.h        |  1535 ++++++++--
 external/gpl3/binutils/lib/libbfd/arch/riscv32/bfd_stdint.h |     2 +-
 external/gpl3/binutils/lib/libbfd/arch/riscv32/bfdver.h     |     6 +-
 external/gpl3/binutils/lib/libbfd/arch/riscv32/config.h     |    41 +-
 external/gpl3/binutils/lib/libbfd/arch/riscv32/defs.mk      |     8 +-
 external/gpl3/binutils/lib/libbfd/arch/riscv64/bfd.h        |  1535 ++++++++--
 external/gpl3/binutils/lib/libbfd/arch/riscv64/bfd_stdint.h |     2 +-
 external/gpl3/binutils/lib/libbfd/arch/riscv64/bfdver.h     |     6 +-
 external/gpl3/binutils/lib/libbfd/arch/riscv64/config.h     |    41 +-
 external/gpl3/binutils/lib/libbfd/arch/riscv64/defs.mk      |     8 +-
 external/gpl3/binutils/lib/libiberty/arch/earmeb/config.h   |    75 +-
 external/gpl3/binutils/lib/libiberty/arch/earmeb/defs.mk    |     8 +-
 external/gpl3/binutils/lib/libiberty/arch/riscv32/config.h  |    69 +
 external/gpl3/binutils/lib/libiberty/arch/riscv32/defs.mk   |     2 +-
 external/gpl3/binutils/lib/libiberty/arch/riscv64/config.h  |    69 +
 external/gpl3/binutils/lib/libiberty/arch/riscv64/defs.mk   |     2 +-
 external/gpl3/binutils/lib/libopcodes/arch/earmeb/config.h  |    19 +-
 external/gpl3/binutils/lib/libopcodes/arch/riscv32/config.h |    15 +-
 external/gpl3/binutils/lib/libopcodes/arch/riscv64/config.h |    15 +-
 external/gpl3/binutils/usr.bin/common/arch/earmeb/config.h  |    36 +-
 external/gpl3/binutils/usr.bin/common/arch/earmeb/defs.mk   |    12 +-
 external/gpl3/binutils/usr.bin/common/arch/riscv32/config.h |    32 +-
 external/gpl3/binutils/usr.bin/common/arch/riscv32/defs.mk  |     8 +-
 external/gpl3/binutils/usr.bin/common/arch/riscv64/config.h |    34 +-
 external/gpl3/binutils/usr.bin/common/arch/riscv64/defs.mk  |     8 +-
 external/gpl3/binutils/usr.bin/gas/arch/earmeb/config.h     |    47 +-
 external/gpl3/binutils/usr.bin/gas/arch/riscv32/config.h    |    43 +-
 external/gpl3/binutils/usr.bin/gas/arch/riscv64/config.h    |    47 +-
 external/gpl3/binutils/usr.bin/gprof/arch/earmeb/defs.mk    |     6 +-
 external/gpl3/binutils/usr.bin/gprof/arch/earmeb/gconfig.h  |    19 +-
 external/gpl3/binutils/usr.bin/gprof/arch/riscv32/defs.mk   |     2 +-
 external/gpl3/binutils/usr.bin/gprof/arch/riscv32/gconfig.h |    15 +-
 external/gpl3/binutils/usr.bin/gprof/arch/riscv64/defs.mk   |     2 +-
 external/gpl3/binutils/usr.bin/gprof/arch/riscv64/gconfig.h |    15 +-
 external/gpl3/binutils/usr.bin/ld/arch/earmeb/config.h      |    37 +-
 external/gpl3/binutils/usr.bin/ld/arch/earmeb/defs.mk       |     6 +-
 external/gpl3/binutils/usr.bin/ld/arch/riscv32/config.h     |    33 +-
 external/gpl3/binutils/usr.bin/ld/arch/riscv32/defs.mk      |     2 +-
 external/gpl3/binutils/usr.bin/ld/arch/riscv64/config.h     |    33 +-
 external/gpl3/binutils/usr.bin/ld/arch/riscv64/defs.mk      |     2 +-
 45 files changed, 4281 insertions(+), 1294 deletions(-)

diffs (truncated from 9636 to 300 lines):

diff -r 436d487b5827 -r eb19ff955938 external/gpl3/binutils/lib/libbfd/arch/earmeb/bfd.h
--- a/external/gpl3/binutils/lib/libbfd/arch/earmeb/bfd.h       Sat Jan 30 01:17:05 2016 +0000
+++ b/external/gpl3/binutils/lib/libbfd/arch/earmeb/bfd.h       Sat Jan 30 01:44:22 2016 +0000
@@ -1,6 +1,6 @@
 /* This file is automatically generated.  DO NOT EDIT! */
-/* Generated from:     NetBSD: mknative-binutils,v 1.8 2011/09/25 04:00:58 christos Exp  */
-/* Generated from: NetBSD: mknative.common,v 1.9 2007/02/05 18:26:01 apb Exp  */
+/* Generated from: NetBSD: mknative-binutils,v 1.9 2013/10/01 15:41:17 skrll Exp  */
+/* Generated from: NetBSD: mknative.common,v 1.11 2014/02/17 21:39:43 christos Exp  */
 
 /* DO NOT EDIT!  -*- buffer-read-only: t -*-  This file is automatically 
    generated from "bfd-in.h", "init.c", "opncls.c", "libbfd.c", 
@@ -11,9 +11,7 @@
 
 /* Main header file for the bfd library -- portable access to object files.
 
-   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
-   2012 Free Software Foundation, Inc.
+   Copyright (C) 1990-2015 Free Software Foundation, Inc.
 
    Contributed by Cygnus Support.
 
@@ -73,7 +71,7 @@
    problem for example when trying to use STRING_COMMA_LEN to build
    the arguments to the strncmp() macro.  Hence this alternative
    definition of strncmp is provided here.
-   
+
    Note - these macros do NOT work if STR2 is not a constant string.  */
 #define CONST_STRNEQ(STR1,STR2) (strncmp ((STR1), (STR2), sizeof (STR2) - 1) == 0)
   /* strcpy() can have a similar problem, but since we know we are
@@ -84,7 +82,7 @@
 #define LITSTRCPY(DEST,STR2) memcpy ((DEST), (STR2), sizeof (STR2))
 
 
-#define BFD_SUPPORTS_PLUGINS 0
+#define BFD_SUPPORTS_PLUGINS 1
 
 /* The word size used by BFD on the host.  This may be 64 with a 32
    bit target if the host is 64 bit, or if other 64 bit targets have
@@ -285,7 +283,7 @@
 /* Object and core file sections.  */
 
 #define        align_power(addr, align)        \
-  (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align)))
+  (((addr) + ((bfd_vma) 1 << (align)) - 1) & (-((bfd_vma) 1 << (align))))
 
 typedef struct bfd_section *sec_ptr;
 
@@ -305,13 +303,13 @@
 
 #define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
 
-#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
-#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
-#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
+#define bfd_get_section_limit_octets(bfd, sec)                 \
+  ((bfd)->direction != write_direction && (sec)->rawsize != 0  \
+   ? (sec)->rawsize : (sec)->size)
+
 /* Find the address one past the end of SEC.  */
 #define bfd_get_section_limit(bfd, sec) \
-  (((bfd)->direction != write_direction && (sec)->rawsize != 0 \
-    ? (sec)->rawsize : (sec)->size) / bfd_octets_per_byte (bfd))
+  (bfd_get_section_limit_octets(bfd, sec) / bfd_octets_per_byte (bfd))
 
 /* Return TRUE if input section SEC has been discarded.  */
 #define discarded_section(sec)                         \
@@ -450,6 +448,16 @@
    this size.  */
 extern unsigned long bfd_hash_set_default_size (unsigned long);
 
+/* Types of compressed DWARF debug sections.  We currently support
+   zlib.  */
+enum compressed_debug_section_type
+{
+  COMPRESS_DEBUG_NONE = 0,
+  COMPRESS_DEBUG = 1 << 0,
+  COMPRESS_DEBUG_GNU_ZLIB = COMPRESS_DEBUG | 1 << 1,
+  COMPRESS_DEBUG_GABI_ZLIB = COMPRESS_DEBUG | 1 << 2
+};
+
 /* This structure is used to keep track of stabs in sections
    information while linking.  */
 
@@ -530,8 +538,6 @@
 
 #define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
 
-#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
-
 extern bfd_boolean bfd_cache_close
   (bfd *abfd);
 /* NB: This declaration should match the autogenerated one in libbfd.h.  */
@@ -659,6 +665,8 @@
   (bfd *, struct bfd_link_info *);
 extern bfd_boolean bfd_elf_get_bfd_needed_list
   (bfd *, struct bfd_link_needed_list **);
+extern bfd_boolean bfd_elf_stack_segment_size (bfd *, struct bfd_link_info *,
+                                              const char *, bfd_vma);
 extern bfd_boolean bfd_elf_size_dynamic_sections
   (bfd *, const char *, const char *, const char *, const char *, const char *,
    const char * const *, struct bfd_link_info *, struct bfd_section **);
@@ -674,7 +682,7 @@
   (bfd *);
 extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
   (bfd *, struct bfd_link_info *);
-extern bfd_boolean bfd_elf_discard_info
+extern int bfd_elf_discard_info
   (bfd *, struct bfd_link_info *);
 extern unsigned int _bfd_elf_default_action_discarded
   (struct bfd_section *);
@@ -696,19 +704,21 @@
   (bfd *abfd, void *phdrs);
 
 /* Create a new BFD as if by bfd_openr.  Rather than opening a file,
-   reconstruct an ELF file by reading the segments out of remote memory
-   based on the ELF file header at EHDR_VMA and the ELF program headers it
-   points to.  If not null, *LOADBASEP is filled in with the difference
-   between the VMAs from which the segments were read, and the VMAs the
-   file headers (and hence BFD's idea of each section's VMA) put them at.
-
-   The function TARGET_READ_MEMORY is called to copy LEN bytes from the
-   remote memory at target address VMA into the local buffer at MYADDR; it
-   should return zero on success or an `errno' code on failure.  TEMPL must
-   be a BFD for an ELF target with the word size and byte order found in
-   the remote memory.  */
+   reconstruct an ELF file by reading the segments out of remote
+   memory based on the ELF file header at EHDR_VMA and the ELF program
+   headers it points to.  If non-zero, SIZE is the known extent of the
+   object.  If not null, *LOADBASEP is filled in with the difference
+   between the VMAs from which the segments were read, and the VMAs
+   the file headers (and hence BFD's idea of each section's VMA) put
+   them at.
+
+   The function TARGET_READ_MEMORY is called to copy LEN bytes from
+   the remote memory at target address VMA into the local buffer at
+   MYADDR; it should return zero on success or an `errno' code on
+   failure.  TEMPL must be a BFD for a target with the word size and
+   byte order found in the remote memory.  */
 extern bfd *bfd_elf_bfd_from_remote_memory
-  (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
+  (bfd *templ, bfd_vma ehdr_vma, bfd_size_type size, bfd_vma *loadbasep,
    int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
                              bfd_size_type len));
 
@@ -820,12 +830,6 @@
 union internal_auxent;
 #endif
 
-extern bfd_boolean bfd_coff_get_syment
-  (bfd *, struct bfd_symbol *, struct internal_syment *);
-
-extern bfd_boolean bfd_coff_get_auxent
-  (bfd *, struct bfd_symbol *, int, union internal_auxent *);
-
 extern bfd_boolean bfd_coff_set_symbol_class
   (bfd *, struct bfd_symbol *, unsigned int);
 
@@ -856,6 +860,23 @@
 extern void bfd_elf32_arm_vfp11_fix_veneer_locations
   (bfd *, struct bfd_link_info *);
 
+/* ARM STM STM32L4XX erratum workaround support.  */
+typedef enum
+{
+  BFD_ARM_STM32L4XX_FIX_NONE,
+  BFD_ARM_STM32L4XX_FIX_DEFAULT,
+  BFD_ARM_STM32L4XX_FIX_ALL
+} bfd_arm_stm32l4xx_fix;
+
+extern void bfd_elf32_arm_set_stm32l4xx_fix
+  (bfd *, struct bfd_link_info *);
+
+extern bfd_boolean bfd_elf32_arm_stm32l4xx_erratum_scan
+  (bfd *, struct bfd_link_info *);
+
+extern void bfd_elf32_arm_stm32l4xx_fix_veneer_locations
+  (bfd *, struct bfd_link_info *);
+
 /* ARM Interworking support.  Called from linker.  */
 extern bfd_boolean bfd_arm_allocate_interworking_sections
   (struct bfd_link_info *);
@@ -885,7 +906,7 @@
 
 void bfd_elf32_arm_set_target_relocs
   (bfd *, struct bfd_link_info *, int, char *, int, int, bfd_arm_vfp11_fix,
-   int, int, int, int, int);
+   bfd_arm_stm32l4xx_fix, int, int, int, int, int);
 
 extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
   (bfd *, struct bfd_link_info *);
@@ -893,15 +914,19 @@
 extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
   (bfd *, struct bfd_link_info *);
 
-/* ELF ARM mapping symbol support */
+/* ELF ARM mapping symbol support.  */
 #define BFD_ARM_SPECIAL_SYM_TYPE_MAP   (1 << 0)
 #define BFD_ARM_SPECIAL_SYM_TYPE_TAG   (1 << 1)
 #define BFD_ARM_SPECIAL_SYM_TYPE_OTHER  (1 << 2)
 #define BFD_ARM_SPECIAL_SYM_TYPE_ANY   (~0)
+
 extern bfd_boolean bfd_is_arm_special_symbol_name
-  (const char * name, int type);
-
-extern void bfd_elf32_arm_set_byteswap_code (struct bfd_link_info *, int);
+  (const char *, int);
+
+extern void bfd_elf32_arm_set_byteswap_code
+  (struct bfd_link_info *, int);
+
+extern void bfd_elf32_arm_use_long_plt (void);
 
 /* ARM Note section processing.  */
 extern bfd_boolean bfd_arm_merge_machines
@@ -920,7 +945,8 @@
   (struct bfd_link_info *, struct bfd_section *);
 extern bfd_boolean elf32_arm_size_stubs
   (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
-   struct bfd_section * (*) (const char *, struct bfd_section *), void (*) (void));
+   struct bfd_section * (*) (const char *, struct bfd_section *, unsigned int),
+   void (*) (void));
 extern bfd_boolean elf32_arm_build_stubs
   (struct bfd_link_info *);
 
@@ -942,8 +968,14 @@
 extern void bfd_elf64_aarch64_init_maps
   (bfd *);
 
-void bfd_elf64_aarch64_set_options
-  (bfd *, struct bfd_link_info *, int, int, int);
+extern void bfd_elf32_aarch64_init_maps
+  (bfd *);
+
+extern void bfd_elf64_aarch64_set_options
+  (bfd *, struct bfd_link_info *, int, int, int, int, int);
+
+extern void bfd_elf32_aarch64_set_options
+  (bfd *, struct bfd_link_info *, int, int, int, int, int);
 
 /* ELF AArch64 mapping symbol support.  */
 #define BFD_AARCH64_SPECIAL_SYM_TYPE_MAP       (1 << 0)
@@ -953,7 +985,7 @@
 extern bfd_boolean bfd_is_aarch64_special_symbol_name
   (const char * name, int type);
 
-/* AArch64 stub generation support.  Called from the linker.  */
+/* AArch64 stub generation support for ELF64.  Called from the linker.  */
 extern int elf64_aarch64_setup_section_lists
   (bfd *, struct bfd_link_info *);
 extern void elf64_aarch64_next_input_section
@@ -964,7 +996,19 @@
    void (*) (void));
 extern bfd_boolean elf64_aarch64_build_stubs
   (struct bfd_link_info *);
-  
+/* AArch64 stub generation support for ELF32.  Called from the linker.  */
+extern int elf32_aarch64_setup_section_lists
+  (bfd *, struct bfd_link_info *);
+extern void elf32_aarch64_next_input_section
+  (struct bfd_link_info *, struct bfd_section *);
+extern bfd_boolean elf32_aarch64_size_stubs
+  (bfd *, bfd *, struct bfd_link_info *, bfd_signed_vma,
+   struct bfd_section * (*) (const char *, struct bfd_section *),
+   void (*) (void));
+extern bfd_boolean elf32_aarch64_build_stubs
+  (struct bfd_link_info *);
+
+
 /* TI COFF load page support.  */
 extern void bfd_ticoff_set_section_load_page
   (struct bfd_section *, int);
@@ -983,30 +1027,17 @@
 extern void bfd_elf64_ia64_after_parse
   (int);
 
-/* This structure is used for a comdat section, as in PE.  A comdat
-   section is associated with a particular symbol.  When the linker
-   sees a comdat section, it keeps only one of the sections with a
-   given name and associated with a given symbol.  */
-
-struct coff_comdat_info
-{
-  /* The name of the symbol associated with a comdat section.  */
-  const char *name;
-
-  /* The local symbol table index of the symbol associated with a
-     comdat section.  This is only meaningful to the object file format
-     specific code; it is not an index into the list returned by
-     bfd_canonicalize_symtab.  */
-  long symbol;
-};
-
-extern struct coff_comdat_info *bfd_coff_get_comdat_section
-  (bfd *, struct bfd_section *);
-
+/* V850 Note manipulation routines.  */
+extern bfd_boolean v850_elf_create_sections



Home | Main Index | Thread Index | Old Index