Subversion Repositories Kolibri OS

Rev

Rev 5197 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5197 Rev 6324
Line 5... Line 5...
5
   "linker.c", "simple.c" and "compress.c".
5
   "linker.c", "simple.c" and "compress.c".
6
   Run "make headers" in your build bfd/ to regenerate.  */
6
   Run "make headers" in your build bfd/ to regenerate.  */
Line 7... Line 7...
7
 
7
 
Line 8... Line 8...
8
/* Main header file for the bfd library -- portable access to object files.
8
/* Main header file for the bfd library -- portable access to object files.
Line 9... Line 9...
9
 
9
 
Line 10... Line 10...
10
   Copyright 1990-2013 Free Software Foundation, Inc.
10
   Copyright (C) 1990-2015 Free Software Foundation, Inc.
Line 277... Line 277...
277
alent;
277
alent;
278

278

279
/* Object and core file sections.  */
279
/* Object and core file sections.  */
Line 280... Line 280...
280
 
280
 
281
#define	align_power(addr, align)	\
281
#define	align_power(addr, align)	\
Line 282... Line 282...
282
  (((addr) + ((bfd_vma) 1 << (align)) - 1) & ((bfd_vma) -1 << (align)))
282
  (((addr) + ((bfd_vma) 1 << (align)) - 1) & (-((bfd_vma) 1 << (align))))
Line 283... Line 283...
283
 
283
 
284
typedef struct bfd_section *sec_ptr;
284
typedef struct bfd_section *sec_ptr;
Line 297... Line 297...
297
#define bfd_get_section_flags(bfd, ptr) ((void) bfd, (ptr)->flags)
297
#define bfd_get_section_flags(bfd, ptr) ((void) bfd, (ptr)->flags)
298
#define bfd_get_section_userdata(bfd, ptr) ((void) bfd, (ptr)->userdata)
298
#define bfd_get_section_userdata(bfd, ptr) ((void) bfd, (ptr)->userdata)
Line 299... Line 299...
299
 
299
 
Line 300... Line 300...
300
#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
300
#define bfd_is_com_section(ptr) (((ptr)->flags & SEC_IS_COMMON) != 0)
301
 
301
 
302
#define bfd_set_section_vma(bfd, ptr, val) (((ptr)->vma = (ptr)->lma = (val)), ((ptr)->user_set_vma = TRUE), TRUE)
302
#define bfd_get_section_limit_octets(bfd, sec)			\
-
 
303
  ((bfd)->direction != write_direction && (sec)->rawsize != 0	\
303
#define bfd_set_section_alignment(bfd, ptr, val) (((ptr)->alignment_power = (val)),TRUE)
304
   ? (sec)->rawsize : (sec)->size)
304
#define bfd_set_section_userdata(bfd, ptr, val) (((ptr)->userdata = (val)),TRUE)
305
 
305
/* Find the address one past the end of SEC.  */
-
 
306
#define bfd_get_section_limit(bfd, sec) \
306
/* Find the address one past the end of SEC.  */
Line 307... Line 307...
307
  (((bfd)->direction != write_direction && (sec)->rawsize != 0	\
307
#define bfd_get_section_limit(bfd, sec) \
308
    ? (sec)->rawsize : (sec)->size) / bfd_octets_per_byte (bfd))
308
  (bfd_get_section_limit_octets(bfd, sec) / bfd_octets_per_byte (bfd))
309
 
309
 
310
/* Return TRUE if input section SEC has been discarded.  */
310
/* Return TRUE if input section SEC has been discarded.  */
Line 442... Line 442...
442
/* Allows the default size of a hash table to be configured. New hash
442
/* Allows the default size of a hash table to be configured. New hash
443
   tables allocated using bfd_hash_table_init will be created with
443
   tables allocated using bfd_hash_table_init will be created with
444
   this size.  */
444
   this size.  */
445
extern unsigned long bfd_hash_set_default_size (unsigned long);
445
extern unsigned long bfd_hash_set_default_size (unsigned long);
Line -... Line 446...
-
 
446
 
-
 
447
/* Types of compressed DWARF debug sections.  We currently support
-
 
448
   zlib.  */
-
 
449
enum compressed_debug_section_type
-
 
450
{
-
 
451
  COMPRESS_DEBUG_NONE = 0,
-
 
452
  COMPRESS_DEBUG = 1 << 0,
-
 
453
  COMPRESS_DEBUG_GNU_ZLIB = COMPRESS_DEBUG | 1 << 1,
-
 
454
  COMPRESS_DEBUG_GABI_ZLIB = COMPRESS_DEBUG | 1 << 2
-
 
455
};
446
 
456
 
447
/* This structure is used to keep track of stabs in sections
457
/* This structure is used to keep track of stabs in sections
Line 448... Line 458...
448
   information while linking.  */
458
   information while linking.  */
449
 
459
 
Line 522... Line 532...
522
 
532
 
Line 523... Line 533...
523
#define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount)
533
#define bfd_get_dynamic_symcount(abfd) ((abfd)->dynsymcount)
Line 524... Line -...
524
 
-
 
525
#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
-
 
526
 
534
 
527
#define bfd_set_cacheable(abfd,bool) (((abfd)->cacheable = bool), TRUE)
535
#define bfd_get_symbol_leading_char(abfd) ((abfd)->xvec->symbol_leading_char)
528
 
536
 
Line 529... Line 537...
529
extern bfd_boolean bfd_cache_close
537
extern bfd_boolean bfd_cache_close
Line 668... Line 676...
668
  (bfd *, enum dynamic_lib_link_class);
676
  (bfd *, enum dynamic_lib_link_class);
669
extern int bfd_elf_get_dyn_lib_class
677
extern int bfd_elf_get_dyn_lib_class
670
  (bfd *);
678
  (bfd *);
671
extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
679
extern struct bfd_link_needed_list *bfd_elf_get_runpath_list
672
  (bfd *, struct bfd_link_info *);
680
  (bfd *, struct bfd_link_info *);
673
extern bfd_boolean bfd_elf_discard_info
681
extern int bfd_elf_discard_info
674
  (bfd *, struct bfd_link_info *);
682
  (bfd *, struct bfd_link_info *);
675
extern unsigned int _bfd_elf_default_action_discarded
683
extern unsigned int _bfd_elf_default_action_discarded
676
  (struct bfd_section *);
684
  (struct bfd_section *);
Line 677... Line 685...
677
 
685
 
Line 690... Line 698...
690
   error occurs; bfd_get_error will return an appropriate code.  */
698
   error occurs; bfd_get_error will return an appropriate code.  */
691
extern int bfd_get_elf_phdrs
699
extern int bfd_get_elf_phdrs
692
  (bfd *abfd, void *phdrs);
700
  (bfd *abfd, void *phdrs);
Line 693... Line 701...
693
 
701
 
694
/* Create a new BFD as if by bfd_openr.  Rather than opening a file,
702
/* Create a new BFD as if by bfd_openr.  Rather than opening a file,
695
   reconstruct an ELF file by reading the segments out of remote memory
703
   reconstruct an ELF file by reading the segments out of remote
-
 
704
   memory based on the ELF file header at EHDR_VMA and the ELF program
696
   based on the ELF file header at EHDR_VMA and the ELF program headers it
705
   headers it points to.  If non-zero, SIZE is the known extent of the
697
   points to.  If not null, *LOADBASEP is filled in with the difference
706
   object.  If not null, *LOADBASEP is filled in with the difference
698
   between the VMAs from which the segments were read, and the VMAs the
707
   between the VMAs from which the segments were read, and the VMAs
-
 
708
   the file headers (and hence BFD's idea of each section's VMA) put
699
   file headers (and hence BFD's idea of each section's VMA) put them at.
709
   them at.
700
 
710
 
701
   The function TARGET_READ_MEMORY is called to copy LEN bytes from the
711
   The function TARGET_READ_MEMORY is called to copy LEN bytes from
702
   remote memory at target address VMA into the local buffer at MYADDR; it
712
   the remote memory at target address VMA into the local buffer at
703
   should return zero on success or an `errno' code on failure.  TEMPL must
713
   MYADDR; it should return zero on success or an `errno' code on
704
   be a BFD for an ELF target with the word size and byte order found in
714
   failure.  TEMPL must be a BFD for a target with the word size and
705
   the remote memory.  */
715
   byte order found in the remote memory.  */
706
extern bfd *bfd_elf_bfd_from_remote_memory
716
extern bfd *bfd_elf_bfd_from_remote_memory
707
  (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep,
717
  (bfd *templ, bfd_vma ehdr_vma, bfd_size_type size, bfd_vma *loadbasep,
708
   int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
718
   int (*target_read_memory) (bfd_vma vma, bfd_byte *myaddr,
Line 709... Line 719...
709
			      bfd_size_type len));
719
			      bfd_size_type len));
710
 
720
 
Line 814... Line 824...
814
#if defined(__STDC__) || defined(ALMOST_STDC)
824
#if defined(__STDC__) || defined(ALMOST_STDC)
815
struct internal_syment;
825
struct internal_syment;
816
union internal_auxent;
826
union internal_auxent;
817
#endif
827
#endif
Line 818... Line -...
818
 
-
 
819
extern bfd_boolean bfd_coff_get_syment
-
 
820
  (bfd *, struct bfd_symbol *, struct internal_syment *);
-
 
821
 
-
 
822
extern bfd_boolean bfd_coff_get_auxent
-
 
823
  (bfd *, struct bfd_symbol *, int, union internal_auxent *);
-
 
824
 
828
 
825
extern bfd_boolean bfd_coff_set_symbol_class
829
extern bfd_boolean bfd_coff_set_symbol_class
Line 826... Line 830...
826
  (bfd *, struct bfd_symbol *, unsigned int);
830
  (bfd *, struct bfd_symbol *, unsigned int);
827
 
831
 
Line 850... Line 854...
850
  (bfd *, struct bfd_link_info *);
854
  (bfd *, struct bfd_link_info *);
Line 851... Line 855...
851
 
855
 
852
extern void bfd_elf32_arm_vfp11_fix_veneer_locations
856
extern void bfd_elf32_arm_vfp11_fix_veneer_locations
Line -... Line 857...
-
 
857
  (bfd *, struct bfd_link_info *);
-
 
858
 
-
 
859
/* ARM STM STM32L4XX erratum workaround support.  */
-
 
860
typedef enum
-
 
861
{
-
 
862
  BFD_ARM_STM32L4XX_FIX_NONE,
-
 
863
  BFD_ARM_STM32L4XX_FIX_DEFAULT,
-
 
864
  BFD_ARM_STM32L4XX_FIX_ALL
-
 
865
} bfd_arm_stm32l4xx_fix;
-
 
866
 
-
 
867
extern void bfd_elf32_arm_set_stm32l4xx_fix
-
 
868
  (bfd *, struct bfd_link_info *);
-
 
869
 
-
 
870
extern bfd_boolean bfd_elf32_arm_stm32l4xx_erratum_scan
-
 
871
  (bfd *, struct bfd_link_info *);
-
 
872
 
-
 
873
extern void bfd_elf32_arm_stm32l4xx_fix_veneer_locations
853
  (bfd *, struct bfd_link_info *);
874
  (bfd *, struct bfd_link_info *);
854
 
875
 
855
/* ARM Interworking support.  Called from linker.  */
876
/* ARM Interworking support.  Called from linker.  */
Line 856... Line 877...
856
extern bfd_boolean bfd_arm_allocate_interworking_sections
877
extern bfd_boolean bfd_arm_allocate_interworking_sections
Line 879... Line 900...
879
extern bfd_boolean bfd_elf32_arm_process_before_allocation
900
extern bfd_boolean bfd_elf32_arm_process_before_allocation
880
  (bfd *, struct bfd_link_info *);
901
  (bfd *, struct bfd_link_info *);
Line 881... Line 902...
881
 
902
 
882
void bfd_elf32_arm_set_target_relocs
903
void bfd_elf32_arm_set_target_relocs
883
  (bfd *, struct bfd_link_info *, int, char *, int, int, bfd_arm_vfp11_fix,
904
  (bfd *, struct bfd_link_info *, int, char *, int, int, bfd_arm_vfp11_fix,
Line 884... Line 905...
884
   int, int, int, int, int);
905
   bfd_arm_stm32l4xx_fix, int, int, int, int, int);
885
 
906
 
Line 886... Line 907...
886
extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
907
extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking
887
  (bfd *, struct bfd_link_info *);
908
  (bfd *, struct bfd_link_info *);
Line 888... Line 909...
888
 
909
 
889
extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
910
extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
890
  (bfd *, struct bfd_link_info *);
911
  (bfd *, struct bfd_link_info *);
891
 
912
 
892
/* ELF ARM mapping symbol support */
913
/* ELF ARM mapping symbol support.  */
-
 
914
#define BFD_ARM_SPECIAL_SYM_TYPE_MAP	(1 << 0)
893
#define BFD_ARM_SPECIAL_SYM_TYPE_MAP	(1 << 0)
915
#define BFD_ARM_SPECIAL_SYM_TYPE_TAG	(1 << 1)
894
#define BFD_ARM_SPECIAL_SYM_TYPE_TAG	(1 << 1)
916
#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER  (1 << 2)
Line 895... Line 917...
895
#define BFD_ARM_SPECIAL_SYM_TYPE_OTHER  (1 << 2)
917
#define BFD_ARM_SPECIAL_SYM_TYPE_ANY	(~0)
-
 
918
 
-
 
919
extern bfd_boolean bfd_is_arm_special_symbol_name
-
 
920
  (const char *, int);
Line 896... Line 921...
896
#define BFD_ARM_SPECIAL_SYM_TYPE_ANY	(~0)
921
 
897
extern bfd_boolean bfd_is_arm_special_symbol_name
922
extern void bfd_elf32_arm_set_byteswap_code
898
  (const char * name, int type);
923
  (struct bfd_link_info *, int);
Line 941... Line 966...
941
 
966
 
942
extern void bfd_elf32_aarch64_init_maps
967
extern void bfd_elf32_aarch64_init_maps
Line 943... Line 968...
943
  (bfd *);
968
  (bfd *);
944
 
969
 
Line 945... Line 970...
945
extern void bfd_elf64_aarch64_set_options
970
extern void bfd_elf64_aarch64_set_options
946
  (bfd *, struct bfd_link_info *, int, int, int);
971
  (bfd *, struct bfd_link_info *, int, int, int, int, int);
Line 947... Line 972...
947
 
972
 
948
extern void bfd_elf32_aarch64_set_options
973
extern void bfd_elf32_aarch64_set_options
949
  (bfd *, struct bfd_link_info *, int, int, int);
974
  (bfd *, struct bfd_link_info *, int, int, int, int, int);
950
 
975
 
Line 996... Line 1021...
996
  (int);
1021
  (int);
Line 997... Line 1022...
997
 
1022
 
998
extern void bfd_elf64_ia64_after_parse
1023
extern void bfd_elf64_ia64_after_parse
Line 999... Line 1024...
999
  (int);
1024
  (int);
1000
 
-
 
1001
/* This structure is used for a comdat section, as in PE.  A comdat
1025
 
1002
   section is associated with a particular symbol.  When the linker
-
 
1003
   sees a comdat section, it keeps only one of the sections with a
-
 
1004
   given name and associated with a given symbol.  */
1026
/* V850 Note manipulation routines.  */
1005
 
-
 
1006
struct coff_comdat_info
-
 
1007
{
-
 
1008
  /* The name of the symbol associated with a comdat section.  */
-
 
1009
  const char *name;
-
 
1010
 
-
 
1011
  /* The local symbol table index of the symbol associated with a
-
 
1012
     comdat section.  This is only meaningful to the object file format
-
 
1013
     specific code; it is not an index into the list returned by
-
 
1014
     bfd_canonicalize_symtab.  */
-
 
Line 1015... Line 1027...
1015
  long symbol;
1027
extern bfd_boolean v850_elf_create_sections
1016
};
1028
  (struct bfd_link_info *);
1017
 
1029
 
1018
extern struct coff_comdat_info * bfd_coff_get_comdat_section
1030
extern bfd_boolean v850_elf_set_note
Line 1019... Line 1031...
1019
  (bfd *, struct bfd_section *);
1031
  (bfd *, unsigned int, unsigned int);
-
 
1032
/* Extracted from init.c.  */
1020
/* Extracted from init.c.  */
1033
void bfd_init (void);
1021
void bfd_init (void);
1034
 
1022
 
1035
/* Extracted from opncls.c.  */
Line 1023... Line 1036...
1023
/* Extracted from opncls.c.  */
1036
/* Set to N to open the next N BFDs using an alternate id space.  */
Line 1024... Line 1037...
1024
extern unsigned int bfd_use_reserved_id;
1037
extern unsigned int bfd_use_reserved_id;
Line 1025... Line 1038...
1025
bfd *bfd_fopen (const char *filename, const char *target,
1038
bfd *bfd_fopen (const char *filename, const char *target,
Line 1026... Line 1039...
1026
    const char *mode, int fd);
1039
    const char *mode, int fd);
1027
 
1040
 
1028
bfd *bfd_openr (const char *filename, const char *target);
1041
bfd *bfd_openr (const char *filename, const char *target);
1029
 
1042
 
Line 1065... Line 1078...
1065
unsigned long bfd_calc_gnu_debuglink_crc32
1078
unsigned long bfd_calc_gnu_debuglink_crc32
1066
   (unsigned long crc, const unsigned char *buf, bfd_size_type len);
1079
   (unsigned long crc, const unsigned char *buf, bfd_size_type len);
Line 1067... Line 1080...
1067
 
1080
 
Line 1068... Line 1081...
1068
char *bfd_get_debug_link_info (bfd *abfd, unsigned long *crc32_out);
1081
char *bfd_get_debug_link_info (bfd *abfd, unsigned long *crc32_out);
-
 
1082
 
-
 
1083
char *bfd_get_alt_debug_link_info (bfd * abfd,
Line 1069... Line 1084...
1069
 
1084
    bfd_size_type *buildid_len,
Line 1070... Line 1085...
1070
char *bfd_get_alt_debug_link_info (bfd *abfd, unsigned long *crc32_out);
1085
    bfd_byte **buildid_out);
Line 1201... Line 1216...
1201
    int prot, int flags, file_ptr offset,
1216
    int prot, int flags, file_ptr offset,
1202
    void **map_addr, bfd_size_type *map_len);
1217
    void **map_addr, bfd_size_type *map_len);
Line 1203... Line 1218...
1203
 
1218
 
1204
/* Extracted from bfdwin.c.  */
1219
/* Extracted from bfdwin.c.  */
-
 
1220
/* Extracted from section.c.  */
1205
/* Extracted from section.c.  */
1221
 
1206
typedef struct bfd_section
1222
typedef struct bfd_section
1207
{
1223
{
1208
  /* The name of the section; the name isn't a copy, the pointer is
1224
  /* The name of the section; the name isn't a copy, the pointer is
1209
     the same as that passed to bfd_make_section.  */
1225
     the same as that passed to bfd_make_section.  */
Line 1210... Line 1226...
1210
  const char *name;
1226
  const char *name;
1211
 
1227
 
Line 1212... Line 1228...
1212
  /* A unique sequence number.  */
1228
  /* A unique sequence number.  */
1213
  int id;
1229
  unsigned int id;
Line 1214... Line 1230...
1214
 
1230
 
1215
  /* Which section in the bfd; 0..n-1 as sections are created in a bfd.  */
1231
  /* Which section in the bfd; 0..n-1 as sections are created in a bfd.  */
Line 1216... Line 1232...
1216
  int index;
1232
  unsigned int index;
Line 1387... Line 1403...
1387
 
1403
 
1388
  /* This section contains data which may be shared with other
1404
  /* This section contains data which may be shared with other
1389
     executables or shared objects. This is for COFF only.  */
1405
     executables or shared objects. This is for COFF only.  */
Line -... Line 1406...
-
 
1406
#define SEC_COFF_SHARED 0x8000000
-
 
1407
 
-
 
1408
  /* This section should be compressed.  This is for ELF linker
-
 
1409
     internal use only.  */
1390
#define SEC_COFF_SHARED 0x8000000
1410
#define SEC_ELF_COMPRESS 0x8000000
1391
 
1411
 
1392
  /* When a section with this flag is being linked, then if the size of
1412
  /* When a section with this flag is being linked, then if the size of
1393
     the input section is less than a page, it should not cross a page
1413
     the input section is less than a page, it should not cross a page
1394
     boundary.  If the size of the input section is one page or more,
1414
     boundary.  If the size of the input section is one page or more,
1395
     it should be aligned on a page boundary.  This is for TI
1415
     it should be aligned on a page boundary.  This is for TI
Line -... Line 1416...
-
 
1416
     TMS320C54X only.  */
-
 
1417
#define SEC_TIC54X_BLOCK 0x10000000
-
 
1418
 
-
 
1419
  /* This section should be renamed.  This is for ELF linker
1396
     TMS320C54X only.  */
1420
     internal use only.  */
1397
#define SEC_TIC54X_BLOCK 0x10000000
1421
#define SEC_ELF_RENAME 0x10000000
1398
 
1422
 
1399
  /* Conditionally link this section; do not link if there are no
1423
  /* Conditionally link this section; do not link if there are no
Line -... Line 1424...
-
 
1424
     references found to any symbol in the section.  This is for TI
-
 
1425
     TMS320C54X only.  */
-
 
1426
#define SEC_TIC54X_CLINK 0x20000000
1400
     references found to any symbol in the section.  This is for TI
1427
 
1401
     TMS320C54X only.  */
1428
  /* This section contains vliw code.  This is for Toshiba MeP only.  */
1402
#define SEC_TIC54X_CLINK 0x20000000
1429
#define SEC_MEP_VLIW 0x20000000
Line 1403... Line 1430...
1403
 
1430
 
Line 1438... Line 1465...
1438
#define SEC_INFO_TYPE_NONE      0
1465
#define SEC_INFO_TYPE_NONE      0
1439
#define SEC_INFO_TYPE_STABS     1
1466
#define SEC_INFO_TYPE_STABS     1
1440
#define SEC_INFO_TYPE_MERGE     2
1467
#define SEC_INFO_TYPE_MERGE     2
1441
#define SEC_INFO_TYPE_EH_FRAME  3
1468
#define SEC_INFO_TYPE_EH_FRAME  3
1442
#define SEC_INFO_TYPE_JUST_SYMS 4
1469
#define SEC_INFO_TYPE_JUST_SYMS 4
-
 
1470
#define SEC_INFO_TYPE_TARGET    5
-
 
1471
#define SEC_INFO_TYPE_EH_FRAME_ENTRY 6
Line 1443... Line 1472...
1443
 
1472
 
1444
  /* Nonzero if this section uses RELA relocations, rather than REL.  */
1473
  /* Nonzero if this section uses RELA relocations, rather than REL.  */
Line 1445... Line 1474...
1445
  unsigned int use_rela_p:1;
1474
  unsigned int use_rela_p:1;
Line 1592... Line 1621...
1592
 
1621
 
1593
  /* Number of bytes to be deleted.  */
1622
  /* Number of bytes to be deleted.  */
1594
  int size;
1623
  int size;
Line -... Line 1624...
-
 
1624
};
-
 
1625
 
-
 
1626
/* Note: the following are provided as inline functions rather than macros
-
 
1627
   because not all callers use the return value.  A macro implementation
-
 
1628
   would use a comma expression, eg: "((ptr)->foo = val, TRUE)" and some
-
 
1629
   compilers will complain about comma expressions that have no effect.  */
-
 
1630
static inline bfd_boolean
-
 
1631
bfd_set_section_userdata (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, void * val)
-
 
1632
{
-
 
1633
  ptr->userdata = val;
-
 
1634
  return TRUE;
-
 
1635
}
-
 
1636
 
-
 
1637
static inline bfd_boolean
-
 
1638
bfd_set_section_vma (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, bfd_vma val)
-
 
1639
{
-
 
1640
  ptr->vma = ptr->lma = val;
-
 
1641
  ptr->user_set_vma = TRUE;
-
 
1642
  return TRUE;
-
 
1643
}
-
 
1644
 
-
 
1645
static inline bfd_boolean
-
 
1646
bfd_set_section_alignment (bfd * abfd ATTRIBUTE_UNUSED, asection * ptr, unsigned int val)
-
 
1647
{
-
 
1648
  ptr->alignment_power = val;
-
 
1649
  return TRUE;
1595
};
1650
}
1596
 
1651
 
1597
/* These sections are global, and are managed by BFD.  The application
1652
/* These sections are global, and are managed by BFD.  The application
1598
   and target back end are not permitted to change the values in
1653
   and target back end are not permitted to change the values in
Line 1753... Line 1808...
1753
 
1808
 
Line 1754... Line 1809...
1754
void bfd_section_list_clear (bfd *);
1809
void bfd_section_list_clear (bfd *);
Line 1755... Line 1810...
1755
 
1810
 
Line 1756... Line 1811...
1756
asection *bfd_get_section_by_name (bfd *abfd, const char *name);
1811
asection *bfd_get_section_by_name (bfd *abfd, const char *name);
Line 1757... Line 1812...
1757
 
1812
 
1758
asection *bfd_get_next_section_by_name (asection *sec);
1813
asection *bfd_get_next_section_by_name (bfd *ibfd, asection *sec);
Line 1778... Line 1833...
1778
asection *bfd_make_section_with_flags
1833
asection *bfd_make_section_with_flags
1779
   (bfd *, const char *name, flagword flags);
1834
   (bfd *, const char *name, flagword flags);
Line 1780... Line 1835...
1780
 
1835
 
Line -... Line 1836...
-
 
1836
asection *bfd_make_section (bfd *, const char *name);
-
 
1837
 
1781
asection *bfd_make_section (bfd *, const char *name);
1838
int bfd_get_next_section_id (void);
1782
 
1839
 
Line 1783... Line 1840...
1783
bfd_boolean bfd_set_section_flags
1840
bfd_boolean bfd_set_section_flags
1784
   (bfd *abfd, asection *sec, flagword flags);
1841
   (bfd *abfd, asection *sec, flagword flags);
Line 1874... Line 1931...
1874
#define bfd_mach_i960_xa        5
1931
#define bfd_mach_i960_xa        5
1875
#define bfd_mach_i960_ca        6
1932
#define bfd_mach_i960_ca        6
1876
#define bfd_mach_i960_jx        7
1933
#define bfd_mach_i960_jx        7
1877
#define bfd_mach_i960_hx        8
1934
#define bfd_mach_i960_hx        8
Line 1878... Line 1935...
1878
 
1935
 
-
 
1936
  bfd_arch_or1k,      /* OpenRISC 1000 */
-
 
1937
#define bfd_mach_or1k           1
Line 1879... Line 1938...
1879
  bfd_arch_or32,      /* OpenRISC 32 */
1938
#define bfd_mach_or1knd         2
1880
 
1939
 
1881
  bfd_arch_sparc,     /* SPARC */
1940
  bfd_arch_sparc,     /* SPARC */
1882
#define bfd_mach_sparc                 1
1941
#define bfd_mach_sparc                 1
Line 1930... Line 1989...
1930
#define bfd_mach_mips_loongson_3a      3003
1989
#define bfd_mach_mips_loongson_3a      3003
1931
#define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01 */
1990
#define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01 */
1932
#define bfd_mach_mips_octeon           6501
1991
#define bfd_mach_mips_octeon           6501
1933
#define bfd_mach_mips_octeonp          6601
1992
#define bfd_mach_mips_octeonp          6601
1934
#define bfd_mach_mips_octeon2          6502
1993
#define bfd_mach_mips_octeon2          6502
-
 
1994
#define bfd_mach_mips_octeon3          6503
1935
#define bfd_mach_mips_xlr              887682   /* decimal 'XLR'  */
1995
#define bfd_mach_mips_xlr              887682   /* decimal 'XLR'  */
1936
#define bfd_mach_mipsisa32             32
1996
#define bfd_mach_mipsisa32             32
1937
#define bfd_mach_mipsisa32r2           33
1997
#define bfd_mach_mipsisa32r2           33
-
 
1998
#define bfd_mach_mipsisa32r3           34
-
 
1999
#define bfd_mach_mipsisa32r5           36
-
 
2000
#define bfd_mach_mipsisa32r6           37
1938
#define bfd_mach_mipsisa64             64
2001
#define bfd_mach_mipsisa64             64
1939
#define bfd_mach_mipsisa64r2           65
2002
#define bfd_mach_mipsisa64r2           65
-
 
2003
#define bfd_mach_mipsisa64r3           66
-
 
2004
#define bfd_mach_mipsisa64r5           68
-
 
2005
#define bfd_mach_mipsisa64r6           69
1940
#define bfd_mach_mips_micromips        96
2006
#define bfd_mach_mips_micromips        96
1941
  bfd_arch_i386,      /* Intel 386 */
2007
  bfd_arch_i386,      /* Intel 386 */
1942
#define bfd_mach_i386_intel_syntax     (1 << 0)
2008
#define bfd_mach_i386_intel_syntax     (1 << 0)
1943
#define bfd_mach_i386_i8086            (1 << 1)
2009
#define bfd_mach_i386_i8086            (1 << 1)
1944
#define bfd_mach_i386_i386             (1 << 2)
2010
#define bfd_mach_i386_i386             (1 << 2)
Line 1955... Line 2021...
1955
#define bfd_mach_k1om_intel_syntax     (bfd_mach_k1om | bfd_mach_i386_intel_syntax)
2021
#define bfd_mach_k1om_intel_syntax     (bfd_mach_k1om | bfd_mach_i386_intel_syntax)
1956
#define bfd_mach_i386_nacl             (1 << 7)
2022
#define bfd_mach_i386_nacl             (1 << 7)
1957
#define bfd_mach_i386_i386_nacl        (bfd_mach_i386_i386 | bfd_mach_i386_nacl)
2023
#define bfd_mach_i386_i386_nacl        (bfd_mach_i386_i386 | bfd_mach_i386_nacl)
1958
#define bfd_mach_x86_64_nacl           (bfd_mach_x86_64 | bfd_mach_i386_nacl)
2024
#define bfd_mach_x86_64_nacl           (bfd_mach_x86_64 | bfd_mach_i386_nacl)
1959
#define bfd_mach_x64_32_nacl           (bfd_mach_x64_32 | bfd_mach_i386_nacl)
2025
#define bfd_mach_x64_32_nacl           (bfd_mach_x64_32 | bfd_mach_i386_nacl)
-
 
2026
  bfd_arch_iamcu,   /* Intel MCU */
-
 
2027
#define bfd_mach_iamcu                 (1 << 8)
-
 
2028
#define bfd_mach_i386_iamcu            (bfd_mach_i386_i386 | bfd_mach_iamcu)
-
 
2029
#define bfd_mach_i386_iamcu_intel_syntax (bfd_mach_i386_iamcu | bfd_mach_i386_intel_syntax)
1960
  bfd_arch_we32k,     /* AT&T WE32xxx */
2030
  bfd_arch_we32k,     /* AT&T WE32xxx */
1961
  bfd_arch_tahoe,     /* CCI/Harris Tahoe */
2031
  bfd_arch_tahoe,     /* CCI/Harris Tahoe */
1962
  bfd_arch_i860,      /* Intel 860 */
2032
  bfd_arch_i860,      /* Intel 860 */
1963
  bfd_arch_i370,      /* IBM 360/370 Mainframes */
2033
  bfd_arch_i370,      /* IBM 360/370 Mainframes */
1964
  bfd_arch_romp,      /* IBM ROMP PC/RT */
2034
  bfd_arch_romp,      /* IBM ROMP PC/RT */
Line 2069... Line 2139...
2069
#define bfd_mach_arm_5TE       9
2139
#define bfd_mach_arm_5TE       9
2070
#define bfd_mach_arm_XScale    10
2140
#define bfd_mach_arm_XScale    10
2071
#define bfd_mach_arm_ep9312    11
2141
#define bfd_mach_arm_ep9312    11
2072
#define bfd_mach_arm_iWMMXt    12
2142
#define bfd_mach_arm_iWMMXt    12
2073
#define bfd_mach_arm_iWMMXt2   13
2143
#define bfd_mach_arm_iWMMXt2   13
-
 
2144
  bfd_arch_nds32,     /* Andes NDS32 */
-
 
2145
#define bfd_mach_n1            1
-
 
2146
#define bfd_mach_n1h           2
-
 
2147
#define bfd_mach_n1h_v2        3
-
 
2148
#define bfd_mach_n1h_v3        4
-
 
2149
#define bfd_mach_n1h_v3m       5
2074
  bfd_arch_ns32k,     /* National Semiconductors ns32000 */
2150
  bfd_arch_ns32k,     /* National Semiconductors ns32000 */
2075
  bfd_arch_w65,       /* WDC 65816 */
2151
  bfd_arch_w65,       /* WDC 65816 */
2076
  bfd_arch_tic30,     /* Texas Instruments TMS320C30 */
2152
  bfd_arch_tic30,     /* Texas Instruments TMS320C30 */
2077
  bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X */
2153
  bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X */
2078
#define bfd_mach_tic3x         30
2154
#define bfd_mach_tic3x         30
Line 2087... Line 2163...
2087
#define bfd_mach_v850e1        '1'
2163
#define bfd_mach_v850e1        '1'
2088
#define bfd_mach_v850e2        0x4532
2164
#define bfd_mach_v850e2        0x4532
2089
#define bfd_mach_v850e2v3      0x45325633
2165
#define bfd_mach_v850e2v3      0x45325633
2090
#define bfd_mach_v850e3v5      0x45335635 /* ('E'|'3'|'V'|'5') */
2166
#define bfd_mach_v850e3v5      0x45335635 /* ('E'|'3'|'V'|'5') */
2091
  bfd_arch_arc,       /* ARC Cores */
2167
  bfd_arch_arc,       /* ARC Cores */
2092
#define bfd_mach_arc_5         5
2168
#define bfd_mach_arc_a4        0
2093
#define bfd_mach_arc_6         6
2169
#define bfd_mach_arc_a5        1
2094
#define bfd_mach_arc_7         7
2170
#define bfd_mach_arc_arc600    2
-
 
2171
#define bfd_mach_arc_arc601    4
-
 
2172
#define bfd_mach_arc_arc700    3
2095
#define bfd_mach_arc_8         8
2173
#define bfd_mach_arc_arcv2     5
2096
 bfd_arch_m32c,     /* Renesas M16C/M32C.  */
2174
 bfd_arch_m32c,     /* Renesas M16C/M32C.  */
2097
#define bfd_mach_m16c        0x75
2175
#define bfd_mach_m16c        0x75
2098
#define bfd_mach_m32c        0x78
2176
#define bfd_mach_m32c        0x78
2099
  bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D) */
2177
  bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D) */
2100
#define bfd_mach_m32r          1 /* For backwards compatibility.  */
2178
#define bfd_mach_m32r          1 /* For backwards compatibility.  */
Line 2116... Line 2194...
2116
#define bfd_mach_frvtomcat     499     /* fr500 prototype */
2194
#define bfd_mach_frvtomcat     499     /* fr500 prototype */
2117
#define bfd_mach_fr500         500
2195
#define bfd_mach_fr500         500
2118
#define bfd_mach_fr550         550
2196
#define bfd_mach_fr550         550
2119
  bfd_arch_moxie,       /* The moxie processor */
2197
  bfd_arch_moxie,       /* The moxie processor */
2120
#define bfd_mach_moxie         1
2198
#define bfd_mach_moxie         1
-
 
2199
  bfd_arch_ft32,       /* The ft32 processor */
-
 
2200
#define bfd_mach_ft32          1
2121
  bfd_arch_mcore,
2201
  bfd_arch_mcore,
2122
  bfd_arch_mep,
2202
  bfd_arch_mep,
2123
#define bfd_mach_mep           1
2203
#define bfd_mach_mep           1
2124
#define bfd_mach_mep_h1        0x6831
2204
#define bfd_mach_mep_h1        0x6831
2125
#define bfd_mach_mep_c5        0x6335
2205
#define bfd_mach_mep_c5        0x6335
Line 2151... Line 2231...
2151
#define bfd_mach_avr35         35
2231
#define bfd_mach_avr35         35
2152
#define bfd_mach_avr4          4
2232
#define bfd_mach_avr4          4
2153
#define bfd_mach_avr5          5
2233
#define bfd_mach_avr5          5
2154
#define bfd_mach_avr51         51
2234
#define bfd_mach_avr51         51
2155
#define bfd_mach_avr6          6
2235
#define bfd_mach_avr6          6
-
 
2236
#define bfd_mach_avrtiny   100
2156
#define bfd_mach_avrxmega1 101
2237
#define bfd_mach_avrxmega1 101
2157
#define bfd_mach_avrxmega2 102
2238
#define bfd_mach_avrxmega2 102
2158
#define bfd_mach_avrxmega3 103
2239
#define bfd_mach_avrxmega3 103
2159
#define bfd_mach_avrxmega4 104
2240
#define bfd_mach_avrxmega4 104
2160
#define bfd_mach_avrxmega5 105
2241
#define bfd_mach_avrxmega5 105
Line 2180... Line 2261...
2180
#define bfd_mach_s390_31       31
2261
#define bfd_mach_s390_31       31
2181
#define bfd_mach_s390_64       64
2262
#define bfd_mach_s390_64       64
2182
  bfd_arch_score,     /* Sunplus score */
2263
  bfd_arch_score,     /* Sunplus score */
2183
#define bfd_mach_score3         3
2264
#define bfd_mach_score3         3
2184
#define bfd_mach_score7         7
2265
#define bfd_mach_score7         7
2185
  bfd_arch_openrisc,  /* OpenRISC */
-
 
2186
  bfd_arch_mmix,      /* Donald Knuth's educational processor.  */
2266
  bfd_arch_mmix,      /* Donald Knuth's educational processor.  */
2187
  bfd_arch_xstormy16,
2267
  bfd_arch_xstormy16,
2188
#define bfd_mach_xstormy16     1
2268
#define bfd_mach_xstormy16     1
2189
  bfd_arch_msp430,    /* Texas Instruments MSP430 architecture.  */
2269
  bfd_arch_msp430,    /* Texas Instruments MSP430 architecture.  */
2190
#define bfd_mach_msp11          11
2270
#define bfd_mach_msp11          11
Line 2233... Line 2313...
2233
#define bfd_mach_tilegx    1
2313
#define bfd_mach_tilegx    1
2234
#define bfd_mach_tilegx32  2
2314
#define bfd_mach_tilegx32  2
2235
  bfd_arch_aarch64,   /* AArch64  */
2315
  bfd_arch_aarch64,   /* AArch64  */
2236
#define bfd_mach_aarch64 0
2316
#define bfd_mach_aarch64 0
2237
#define bfd_mach_aarch64_ilp32 32
2317
#define bfd_mach_aarch64_ilp32 32
2238
  bfd_arch_nios2,
2318
  bfd_arch_nios2,      /* Nios II */
2239
#define bfd_mach_nios2 0
2319
#define bfd_mach_nios2 0
-
 
2320
#define bfd_mach_nios2r1       1
-
 
2321
#define bfd_mach_nios2r2       2
-
 
2322
  bfd_arch_visium,     /* Visium */
-
 
2323
#define bfd_mach_visium        1
2240
  bfd_arch_last
2324
  bfd_arch_last
2241
  };
2325
  };
Line 2242... Line 2326...
2242
 
2326
 
2243
typedef struct bfd_arch_info
2327
typedef struct bfd_arch_info
Line 2300... Line 2384...
2300
 
2384
 
2301
unsigned int bfd_arch_mach_octets_per_byte
2385
unsigned int bfd_arch_mach_octets_per_byte
Line 2302... Line 2386...
2302
   (enum bfd_architecture arch, unsigned long machine);
2386
   (enum bfd_architecture arch, unsigned long machine);
-
 
2387
 
2303
 
2388
/* Extracted from reloc.c.  */
2304
/* Extracted from reloc.c.  */
2389
 
2305
typedef enum bfd_reloc_status
2390
typedef enum bfd_reloc_status
2306
{
2391
{
Line 2349... Line 2434...
2349
  reloc_howto_type *howto;
2434
  reloc_howto_type *howto;
Line 2350... Line 2435...
2350
 
2435
 
2351
}
2436
}
Line -... Line 2437...
-
 
2437
arelent;
2352
arelent;
2438
 
2353
 
2439
 
2354
enum complain_overflow
2440
enum complain_overflow
2355
{
2441
{
Line 2367... Line 2453...
2367
 
2453
 
2368
  /* Complain if the value overflows when considered as an
2454
  /* Complain if the value overflows when considered as an
2369
     unsigned number.  */
2455
     unsigned number.  */
2370
  complain_overflow_unsigned
2456
  complain_overflow_unsigned
-
 
2457
};
Line 2371... Line 2458...
2371
};
2458
struct bfd_symbol;             /* Forward declaration.  */
2372
 
2459
 
2373
struct reloc_howto_struct
2460
struct reloc_howto_struct
2374
{
2461
{
Line 2894... Line 2981...
2894
/* microMIPS PC-relative relocations.  */
2981
/* microMIPS PC-relative relocations.  */
2895
  BFD_RELOC_MICROMIPS_7_PCREL_S1,
2982
  BFD_RELOC_MICROMIPS_7_PCREL_S1,
2896
  BFD_RELOC_MICROMIPS_10_PCREL_S1,
2983
  BFD_RELOC_MICROMIPS_10_PCREL_S1,
2897
  BFD_RELOC_MICROMIPS_16_PCREL_S1,
2984
  BFD_RELOC_MICROMIPS_16_PCREL_S1,
Line -... Line 2985...
-
 
2985
 
-
 
2986
/* MIPS PC-relative relocations.  */
-
 
2987
  BFD_RELOC_MIPS_21_PCREL_S2,
-
 
2988
  BFD_RELOC_MIPS_26_PCREL_S2,
-
 
2989
  BFD_RELOC_MIPS_18_PCREL_S3,
-
 
2990
  BFD_RELOC_MIPS_19_PCREL_S2,
2898
 
2991
 
2899
/* microMIPS versions of generic BFD relocs.  */
2992
/* microMIPS versions of generic BFD relocs.  */
2900
  BFD_RELOC_MICROMIPS_GPREL16,
2993
  BFD_RELOC_MICROMIPS_GPREL16,
2901
  BFD_RELOC_MICROMIPS_HI16,
2994
  BFD_RELOC_MICROMIPS_HI16,
2902
  BFD_RELOC_MICROMIPS_HI16_S,
2995
  BFD_RELOC_MICROMIPS_HI16_S,
Line 2968... Line 3061...
2968
 
3061
 
2969
/* Moxie ELF relocations.  */
3062
/* Moxie ELF relocations.  */
Line -... Line 3063...
-
 
3063
  BFD_RELOC_MOXIE_10_PCREL,
-
 
3064
 
-
 
3065
 
-
 
3066
/* FT32 ELF relocations.  */
-
 
3067
  BFD_RELOC_FT32_10,
-
 
3068
  BFD_RELOC_FT32_20,
-
 
3069
  BFD_RELOC_FT32_17,
2970
  BFD_RELOC_MOXIE_10_PCREL,
3070
  BFD_RELOC_FT32_18,
2971
 
3071
 
2972
 
3072
 
2973
/* Fujitsu Frv Relocations.  */
3073
/* Fujitsu Frv Relocations.  */
2974
  BFD_RELOC_FRV_LABEL16,
3074
  BFD_RELOC_FRV_LABEL16,
Line 3092... Line 3192...
3092
  BFD_RELOC_386_TLS_TPOFF32,
3192
  BFD_RELOC_386_TLS_TPOFF32,
3093
  BFD_RELOC_386_TLS_GOTDESC,
3193
  BFD_RELOC_386_TLS_GOTDESC,
3094
  BFD_RELOC_386_TLS_DESC_CALL,
3194
  BFD_RELOC_386_TLS_DESC_CALL,
3095
  BFD_RELOC_386_TLS_DESC,
3195
  BFD_RELOC_386_TLS_DESC,
3096
  BFD_RELOC_386_IRELATIVE,
3196
  BFD_RELOC_386_IRELATIVE,
-
 
3197
  BFD_RELOC_386_GOT32X,
Line 3097... Line 3198...
3097
 
3198
 
3098
/* x86-64/elf relocations  */
3199
/* x86-64/elf relocations  */
3099
  BFD_RELOC_X86_64_GOT32,
3200
  BFD_RELOC_X86_64_GOT32,
3100
  BFD_RELOC_X86_64_PLT32,
3201
  BFD_RELOC_X86_64_PLT32,
Line 3123... Line 3224...
3123
  BFD_RELOC_X86_64_TLSDESC_CALL,
3224
  BFD_RELOC_X86_64_TLSDESC_CALL,
3124
  BFD_RELOC_X86_64_TLSDESC,
3225
  BFD_RELOC_X86_64_TLSDESC,
3125
  BFD_RELOC_X86_64_IRELATIVE,
3226
  BFD_RELOC_X86_64_IRELATIVE,
3126
  BFD_RELOC_X86_64_PC32_BND,
3227
  BFD_RELOC_X86_64_PC32_BND,
3127
  BFD_RELOC_X86_64_PLT32_BND,
3228
  BFD_RELOC_X86_64_PLT32_BND,
-
 
3229
  BFD_RELOC_X86_64_GOTPCRELX,
-
 
3230
  BFD_RELOC_X86_64_REX_GOTPCRELX,
Line 3128... Line 3231...
3128
 
3231
 
3129
/* ns32k relocations  */
3232
/* ns32k relocations  */
3130
  BFD_RELOC_NS32K_IMM_8,
3233
  BFD_RELOC_NS32K_IMM_8,
3131
  BFD_RELOC_NS32K_IMM_16,
3234
  BFD_RELOC_NS32K_IMM_16,
Line 3198... Line 3301...
3198
  BFD_RELOC_PPC_VLE_SDAREL_LO16D,
3301
  BFD_RELOC_PPC_VLE_SDAREL_LO16D,
3199
  BFD_RELOC_PPC_VLE_SDAREL_HI16A,
3302
  BFD_RELOC_PPC_VLE_SDAREL_HI16A,
3200
  BFD_RELOC_PPC_VLE_SDAREL_HI16D,
3303
  BFD_RELOC_PPC_VLE_SDAREL_HI16D,
3201
  BFD_RELOC_PPC_VLE_SDAREL_HA16A,
3304
  BFD_RELOC_PPC_VLE_SDAREL_HA16A,
3202
  BFD_RELOC_PPC_VLE_SDAREL_HA16D,
3305
  BFD_RELOC_PPC_VLE_SDAREL_HA16D,
-
 
3306
  BFD_RELOC_PPC_REL16DX_HA,
3203
  BFD_RELOC_PPC64_HIGHER,
3307
  BFD_RELOC_PPC64_HIGHER,
3204
  BFD_RELOC_PPC64_HIGHER_S,
3308
  BFD_RELOC_PPC64_HIGHER_S,
3205
  BFD_RELOC_PPC64_HIGHEST,
3309
  BFD_RELOC_PPC64_HIGHEST,
3206
  BFD_RELOC_PPC64_HIGHEST_S,
3310
  BFD_RELOC_PPC64_HIGHEST_S,
3207
  BFD_RELOC_PPC64_TOC16_LO,
3311
  BFD_RELOC_PPC64_TOC16_LO,
Line 3223... Line 3327...
3223
  BFD_RELOC_PPC64_TOC16_LO_DS,
3327
  BFD_RELOC_PPC64_TOC16_LO_DS,
3224
  BFD_RELOC_PPC64_PLTGOT16_DS,
3328
  BFD_RELOC_PPC64_PLTGOT16_DS,
3225
  BFD_RELOC_PPC64_PLTGOT16_LO_DS,
3329
  BFD_RELOC_PPC64_PLTGOT16_LO_DS,
3226
  BFD_RELOC_PPC64_ADDR16_HIGH,
3330
  BFD_RELOC_PPC64_ADDR16_HIGH,
3227
  BFD_RELOC_PPC64_ADDR16_HIGHA,
3331
  BFD_RELOC_PPC64_ADDR16_HIGHA,
-
 
3332
  BFD_RELOC_PPC64_ADDR64_LOCAL,
-
 
3333
  BFD_RELOC_PPC64_ENTRY,
Line 3228... Line 3334...
3228
 
3334
 
3229
/* PowerPC and PowerPC64 thread-local storage relocations.  */
3335
/* PowerPC and PowerPC64 thread-local storage relocations.  */
3230
  BFD_RELOC_PPC_TLS,
3336
  BFD_RELOC_PPC_TLS,
3231
  BFD_RELOC_PPC_TLSGD,
3337
  BFD_RELOC_PPC_TLSGD,
Line 3536... Line 3642...
3536
  BFD_RELOC_SH_GOTFUNCDESC20,
3642
  BFD_RELOC_SH_GOTFUNCDESC20,
3537
  BFD_RELOC_SH_GOTOFFFUNCDESC,
3643
  BFD_RELOC_SH_GOTOFFFUNCDESC,
3538
  BFD_RELOC_SH_GOTOFFFUNCDESC20,
3644
  BFD_RELOC_SH_GOTOFFFUNCDESC20,
3539
  BFD_RELOC_SH_FUNCDESC,
3645
  BFD_RELOC_SH_FUNCDESC,
Line 3540... Line 3646...
3540
 
3646
 
-
 
3647
/* ARC relocs.  */
-
 
3648
  BFD_RELOC_ARC_NONE,
-
 
3649
  BFD_RELOC_ARC_8,
-
 
3650
  BFD_RELOC_ARC_16,
-
 
3651
  BFD_RELOC_ARC_24,
-
 
3652
  BFD_RELOC_ARC_32,
-
 
3653
  BFD_RELOC_ARC_N8,
-
 
3654
  BFD_RELOC_ARC_N16,
-
 
3655
  BFD_RELOC_ARC_N24,
-
 
3656
  BFD_RELOC_ARC_N32,
-
 
3657
  BFD_RELOC_ARC_SDA,
-
 
3658
  BFD_RELOC_ARC_SECTOFF,
-
 
3659
  BFD_RELOC_ARC_S21H_PCREL,
-
 
3660
  BFD_RELOC_ARC_S21W_PCREL,
-
 
3661
  BFD_RELOC_ARC_S25H_PCREL,
-
 
3662
  BFD_RELOC_ARC_S25W_PCREL,
-
 
3663
  BFD_RELOC_ARC_SDA32,
3541
/* ARC Cores relocs.
3664
  BFD_RELOC_ARC_SDA_LDST,
3542
ARC 22 bit pc-relative branch.  The lowest two bits must be zero and are
3665
  BFD_RELOC_ARC_SDA_LDST1,
3543
not stored in the instruction.  The high 20 bits are installed in bits 26
3666
  BFD_RELOC_ARC_SDA_LDST2,
-
 
3667
  BFD_RELOC_ARC_SDA16_LD,
-
 
3668
  BFD_RELOC_ARC_SDA16_LD1,
3544
through 7 of the instruction.  */
3669
  BFD_RELOC_ARC_SDA16_LD2,
3545
  BFD_RELOC_ARC_B22_PCREL,
-
 
-
 
3670
  BFD_RELOC_ARC_S13_PCREL,
-
 
3671
  BFD_RELOC_ARC_W,
-
 
3672
  BFD_RELOC_ARC_32_ME,
-
 
3673
  BFD_RELOC_ARC_32_ME_S,
-
 
3674
  BFD_RELOC_ARC_N32_ME,
-
 
3675
  BFD_RELOC_ARC_SECTOFF_ME,
-
 
3676
  BFD_RELOC_ARC_SDA32_ME,
-
 
3677
  BFD_RELOC_ARC_W_ME,
-
 
3678
  BFD_RELOC_AC_SECTOFF_U8,
-
 
3679
  BFD_RELOC_AC_SECTOFF_U8_1,
-
 
3680
  BFD_RELOC_AC_SECTOFF_U8_2,
-
 
3681
  BFD_RELOC_AC_SECTFOFF_S9,
-
 
3682
  BFD_RELOC_AC_SECTFOFF_S9_1,
3546
 
3683
  BFD_RELOC_AC_SECTFOFF_S9_2,
3547
/* ARC 26 bit absolute branch.  The lowest two bits must be zero and are not
3684
  BFD_RELOC_ARC_SECTOFF_ME_1,
-
 
3685
  BFD_RELOC_ARC_SECTOFF_ME_2,
-
 
3686
  BFD_RELOC_ARC_SECTOFF_1,
-
 
3687
  BFD_RELOC_ARC_SECTOFF_2,
-
 
3688
  BFD_RELOC_ARC_SDA16_ST2,
3548
stored in the instruction.  The high 24 bits are installed in bits 23
3689
  BFD_RELOC_ARC_32_PCREL,
-
 
3690
  BFD_RELOC_ARC_PC32,
-
 
3691
  BFD_RELOC_ARC_GOT32,
-
 
3692
  BFD_RELOC_ARC_GOTPC32,
3549
through 0.  */
3693
  BFD_RELOC_ARC_PLT32,
-
 
3694
  BFD_RELOC_ARC_COPY,
-
 
3695
  BFD_RELOC_ARC_GLOB_DAT,
-
 
3696
  BFD_RELOC_ARC_JMP_SLOT,
-
 
3697
  BFD_RELOC_ARC_RELATIVE,
-
 
3698
  BFD_RELOC_ARC_GOTOFF,
-
 
3699
  BFD_RELOC_ARC_GOTPC,
-
 
3700
  BFD_RELOC_ARC_S21W_PCREL_PLT,
-
 
3701
  BFD_RELOC_ARC_S25H_PCREL_PLT,
-
 
3702
  BFD_RELOC_ARC_TLS_DTPMOD,
-
 
3703
  BFD_RELOC_ARC_TLS_TPOFF,
-
 
3704
  BFD_RELOC_ARC_TLS_GD_GOT,
-
 
3705
  BFD_RELOC_ARC_TLS_GD_LD,
-
 
3706
  BFD_RELOC_ARC_TLS_GD_CALL,
-
 
3707
  BFD_RELOC_ARC_TLS_IE_GOT,
-
 
3708
  BFD_RELOC_ARC_TLS_DTPOFF,
-
 
3709
  BFD_RELOC_ARC_TLS_DTPOFF_S9,
-
 
3710
  BFD_RELOC_ARC_TLS_LE_S9,
-
 
3711
  BFD_RELOC_ARC_TLS_LE_32,
-
 
3712
  BFD_RELOC_ARC_S25W_PCREL_PLT,
Line 3550... Line 3713...
3550
  BFD_RELOC_ARC_B26,
3713
  BFD_RELOC_ARC_S21H_PCREL_PLT,
3551
 
3714
 
Line 3552... Line 3715...
3552
/* ADI Blackfin 16 bit immediate absolute reloc.  */
3715
/* ADI Blackfin 16 bit immediate absolute reloc.  */
Line 3792... Line 3955...
3792
  BFD_RELOC_M32R_GOT16_LO,
3955
  BFD_RELOC_M32R_GOT16_LO,
3793
  BFD_RELOC_M32R_GOTPC_HI_ULO,
3956
  BFD_RELOC_M32R_GOTPC_HI_ULO,
3794
  BFD_RELOC_M32R_GOTPC_HI_SLO,
3957
  BFD_RELOC_M32R_GOTPC_HI_SLO,
3795
  BFD_RELOC_M32R_GOTPC_LO,
3958
  BFD_RELOC_M32R_GOTPC_LO,
Line -... Line 3959...
-
 
3959
 
-
 
3960
/* NDS32 relocs.
-
 
3961
This is a 20 bit absolute address.  */
-
 
3962
  BFD_RELOC_NDS32_20,
-
 
3963
 
-
 
3964
/* This is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0.  */
-
 
3965
  BFD_RELOC_NDS32_9_PCREL,
-
 
3966
 
-
 
3967
/* This is a 9-bit pc-relative reloc with the right 1 bit assumed to be 0.  */
-
 
3968
  BFD_RELOC_NDS32_WORD_9_PCREL,
-
 
3969
 
-
 
3970
/* This is an 15-bit reloc with the right 1 bit assumed to be 0.  */
-
 
3971
  BFD_RELOC_NDS32_15_PCREL,
-
 
3972
 
-
 
3973
/* This is an 17-bit reloc with the right 1 bit assumed to be 0.  */
-
 
3974
  BFD_RELOC_NDS32_17_PCREL,
-
 
3975
 
-
 
3976
/* This is a 25-bit reloc with the right 1 bit assumed to be 0.  */
-
 
3977
  BFD_RELOC_NDS32_25_PCREL,
-
 
3978
 
-
 
3979
/* This is a 20-bit reloc containing the high 20 bits of an address
-
 
3980
used with the lower 12 bits  */
-
 
3981
  BFD_RELOC_NDS32_HI20,
-
 
3982
 
-
 
3983
/* This is a 12-bit reloc containing the lower 12 bits of an address
-
 
3984
then shift right by 3. This is used with ldi,sdi...  */
-
 
3985
  BFD_RELOC_NDS32_LO12S3,
-
 
3986
 
-
 
3987
/* This is a 12-bit reloc containing the lower 12 bits of an address
-
 
3988
then shift left by 2. This is used with lwi,swi...  */
-
 
3989
  BFD_RELOC_NDS32_LO12S2,
-
 
3990
 
-
 
3991
/* This is a 12-bit reloc containing the lower 12 bits of an address
-
 
3992
then shift left by 1. This is used with lhi,shi...  */
-
 
3993
  BFD_RELOC_NDS32_LO12S1,
-
 
3994
 
-
 
3995
/* This is a 12-bit reloc containing the lower 12 bits of an address
-
 
3996
then shift left by 0. This is used with lbisbi...  */
-
 
3997
  BFD_RELOC_NDS32_LO12S0,
-
 
3998
 
-
 
3999
/* This is a 12-bit reloc containing the lower 12 bits of an address
-
 
4000
then shift left by 0. This is only used with branch relaxations  */
-
 
4001
  BFD_RELOC_NDS32_LO12S0_ORI,
-
 
4002
 
-
 
4003
/* This is a 15-bit reloc containing the small data area 18-bit signed offset
-
 
4004
and shift left by 3 for use in ldi, sdi...  */
-
 
4005
  BFD_RELOC_NDS32_SDA15S3,
-
 
4006
 
-
 
4007
/* This is a 15-bit reloc containing the small data area 17-bit signed offset
-
 
4008
and shift left by 2 for use in lwi, swi...  */
-
 
4009
  BFD_RELOC_NDS32_SDA15S2,
-
 
4010
 
-
 
4011
/* This is a 15-bit reloc containing the small data area 16-bit signed offset
-
 
4012
and shift left by 1 for use in lhi, shi...  */
-
 
4013
  BFD_RELOC_NDS32_SDA15S1,
-
 
4014
 
-
 
4015
/* This is a 15-bit reloc containing the small data area 15-bit signed offset
-
 
4016
and shift left by 0 for use in lbi, sbi...  */
-
 
4017
  BFD_RELOC_NDS32_SDA15S0,
-
 
4018
 
-
 
4019
/* This is a 16-bit reloc containing the small data area 16-bit signed offset
-
 
4020
and shift left by 3  */
-
 
4021
  BFD_RELOC_NDS32_SDA16S3,
-
 
4022
 
-
 
4023
/* This is a 17-bit reloc containing the small data area 17-bit signed offset
-
 
4024
and shift left by 2 for use in lwi.gp, swi.gp...  */
-
 
4025
  BFD_RELOC_NDS32_SDA17S2,
-
 
4026
 
-
 
4027
/* This is a 18-bit reloc containing the small data area 18-bit signed offset
-
 
4028
and shift left by 1 for use in lhi.gp, shi.gp...  */
-
 
4029
  BFD_RELOC_NDS32_SDA18S1,
-
 
4030
 
-
 
4031
/* This is a 19-bit reloc containing the small data area 19-bit signed offset
-
 
4032
and shift left by 0 for use in lbi.gp, sbi.gp...  */
-
 
4033
  BFD_RELOC_NDS32_SDA19S0,
-
 
4034
 
-
 
4035
/* for PIC  */
-
 
4036
  BFD_RELOC_NDS32_GOT20,
-
 
4037
  BFD_RELOC_NDS32_9_PLTREL,
-
 
4038
  BFD_RELOC_NDS32_25_PLTREL,
-
 
4039
  BFD_RELOC_NDS32_COPY,
-
 
4040
  BFD_RELOC_NDS32_GLOB_DAT,
-
 
4041
  BFD_RELOC_NDS32_JMP_SLOT,
-
 
4042
  BFD_RELOC_NDS32_RELATIVE,
-
 
4043
  BFD_RELOC_NDS32_GOTOFF,
-
 
4044
  BFD_RELOC_NDS32_GOTOFF_HI20,
-
 
4045
  BFD_RELOC_NDS32_GOTOFF_LO12,
-
 
4046
  BFD_RELOC_NDS32_GOTPC20,
-
 
4047
  BFD_RELOC_NDS32_GOT_HI20,
-
 
4048
  BFD_RELOC_NDS32_GOT_LO12,
-
 
4049
  BFD_RELOC_NDS32_GOTPC_HI20,
-
 
4050
  BFD_RELOC_NDS32_GOTPC_LO12,
-
 
4051
 
-
 
4052
/* for relax  */
-
 
4053
  BFD_RELOC_NDS32_INSN16,
-
 
4054
  BFD_RELOC_NDS32_LABEL,
-
 
4055
  BFD_RELOC_NDS32_LONGCALL1,
-
 
4056
  BFD_RELOC_NDS32_LONGCALL2,
-
 
4057
  BFD_RELOC_NDS32_LONGCALL3,
-
 
4058
  BFD_RELOC_NDS32_LONGJUMP1,
-
 
4059
  BFD_RELOC_NDS32_LONGJUMP2,
-
 
4060
  BFD_RELOC_NDS32_LONGJUMP3,
-
 
4061
  BFD_RELOC_NDS32_LOADSTORE,
-
 
4062
  BFD_RELOC_NDS32_9_FIXED,
-
 
4063
  BFD_RELOC_NDS32_15_FIXED,
-
 
4064
  BFD_RELOC_NDS32_17_FIXED,
-
 
4065
  BFD_RELOC_NDS32_25_FIXED,
-
 
4066
  BFD_RELOC_NDS32_LONGCALL4,
-
 
4067
  BFD_RELOC_NDS32_LONGCALL5,
-
 
4068
  BFD_RELOC_NDS32_LONGCALL6,
-
 
4069
  BFD_RELOC_NDS32_LONGJUMP4,
-
 
4070
  BFD_RELOC_NDS32_LONGJUMP5,
-
 
4071
  BFD_RELOC_NDS32_LONGJUMP6,
-
 
4072
  BFD_RELOC_NDS32_LONGJUMP7,
-
 
4073
 
-
 
4074
/* for PIC  */
-
 
4075
  BFD_RELOC_NDS32_PLTREL_HI20,
-
 
4076
  BFD_RELOC_NDS32_PLTREL_LO12,
-
 
4077
  BFD_RELOC_NDS32_PLT_GOTREL_HI20,
-
 
4078
  BFD_RELOC_NDS32_PLT_GOTREL_LO12,
-
 
4079
 
-
 
4080
/* for floating point  */
-
 
4081
  BFD_RELOC_NDS32_SDA12S2_DP,
-
 
4082
  BFD_RELOC_NDS32_SDA12S2_SP,
-
 
4083
  BFD_RELOC_NDS32_LO12S2_DP,
-
 
4084
  BFD_RELOC_NDS32_LO12S2_SP,
-
 
4085
 
-
 
4086
/* for dwarf2 debug_line.  */
-
 
4087
  BFD_RELOC_NDS32_DWARF2_OP1,
-
 
4088
  BFD_RELOC_NDS32_DWARF2_OP2,
-
 
4089
  BFD_RELOC_NDS32_DWARF2_LEB,
-
 
4090
 
-
 
4091
/* for eliminate 16-bit instructions  */
-
 
4092
  BFD_RELOC_NDS32_UPDATE_TA,
-
 
4093
 
-
 
4094
/* for PIC object relaxation  */
-
 
4095
  BFD_RELOC_NDS32_PLT_GOTREL_LO20,
-
 
4096
  BFD_RELOC_NDS32_PLT_GOTREL_LO15,
-
 
4097
  BFD_RELOC_NDS32_PLT_GOTREL_LO19,
-
 
4098
  BFD_RELOC_NDS32_GOT_LO15,
-
 
4099
  BFD_RELOC_NDS32_GOT_LO19,
-
 
4100
  BFD_RELOC_NDS32_GOTOFF_LO15,
-
 
4101
  BFD_RELOC_NDS32_GOTOFF_LO19,
-
 
4102
  BFD_RELOC_NDS32_GOT15S2,
-
 
4103
  BFD_RELOC_NDS32_GOT17S2,
-
 
4104
 
-
 
4105
/* NDS32 relocs.
-
 
4106
This is a 5 bit absolute address.  */
-
 
4107
  BFD_RELOC_NDS32_5,
-
 
4108
 
-
 
4109
/* This is a 10-bit unsigned pc-relative reloc with the right 1 bit assumed to be 0.  */
-
 
4110
  BFD_RELOC_NDS32_10_UPCREL,
-
 
4111
 
-
 
4112
/* If fp were omitted, fp can used as another gp.  */
-
 
4113
  BFD_RELOC_NDS32_SDA_FP7U2_RELA,
-
 
4114
 
-
 
4115
/* relaxation relative relocation types  */
-
 
4116
  BFD_RELOC_NDS32_RELAX_ENTRY,
-
 
4117
  BFD_RELOC_NDS32_GOT_SUFF,
-
 
4118
  BFD_RELOC_NDS32_GOTOFF_SUFF,
-
 
4119
  BFD_RELOC_NDS32_PLT_GOT_SUFF,
-
 
4120
  BFD_RELOC_NDS32_MULCALL_SUFF,
-
 
4121
  BFD_RELOC_NDS32_PTR,
-
 
4122
  BFD_RELOC_NDS32_PTR_COUNT,
-
 
4123
  BFD_RELOC_NDS32_PTR_RESOLVED,
-
 
4124
  BFD_RELOC_NDS32_PLTBLOCK,
-
 
4125
  BFD_RELOC_NDS32_RELAX_REGION_BEGIN,
-
 
4126
  BFD_RELOC_NDS32_RELAX_REGION_END,
-
 
4127
  BFD_RELOC_NDS32_MINUEND,
-
 
4128
  BFD_RELOC_NDS32_SUBTRAHEND,
-
 
4129
  BFD_RELOC_NDS32_DIFF8,
-
 
4130
  BFD_RELOC_NDS32_DIFF16,
-
 
4131
  BFD_RELOC_NDS32_DIFF32,
-
 
4132
  BFD_RELOC_NDS32_DIFF_ULEB128,
-
 
4133
  BFD_RELOC_NDS32_EMPTY,
-
 
4134
 
-
 
4135
/* This is a 25 bit absolute address.  */
-
 
4136
  BFD_RELOC_NDS32_25_ABS,
-
 
4137
 
-
 
4138
/* For ex9 and ifc using.  */
-
 
4139
  BFD_RELOC_NDS32_DATA,
-
 
4140
  BFD_RELOC_NDS32_TRAN,
-
 
4141
  BFD_RELOC_NDS32_17IFC_PCREL,
-
 
4142
  BFD_RELOC_NDS32_10IFCU_PCREL,
-
 
4143
 
-
 
4144
/* For TLS.  */
-
 
4145
  BFD_RELOC_NDS32_TPOFF,
-
 
4146
  BFD_RELOC_NDS32_TLS_LE_HI20,
-
 
4147
  BFD_RELOC_NDS32_TLS_LE_LO12,
-
 
4148
  BFD_RELOC_NDS32_TLS_LE_ADD,
-
 
4149
  BFD_RELOC_NDS32_TLS_LE_LS,
-
 
4150
  BFD_RELOC_NDS32_GOTTPOFF,
-
 
4151
  BFD_RELOC_NDS32_TLS_IE_HI20,
-
 
4152
  BFD_RELOC_NDS32_TLS_IE_LO12S2,
-
 
4153
  BFD_RELOC_NDS32_TLS_TPOFF,
-
 
4154
  BFD_RELOC_NDS32_TLS_LE_20,
-
 
4155
  BFD_RELOC_NDS32_TLS_LE_15S0,
-
 
4156
  BFD_RELOC_NDS32_TLS_LE_15S1,
-
 
4157
  BFD_RELOC_NDS32_TLS_LE_15S2,
3796
 
4158
 
3797
/* This is a 9-bit reloc  */
4159
/* This is a 9-bit reloc  */
Line 3798... Line 4160...
3798
  BFD_RELOC_V850_9_PCREL,
4160
  BFD_RELOC_V850_9_PCREL,
3799
 
4161
 
Line 4249... Line 4611...
4249
 
4611
 
4250
/* This is a 8 bit reloc for the AVR that stores bits 16..23 of a symbol
4612
/* This is a 8 bit reloc for the AVR that stores bits 16..23 of a symbol
4251
in .byte hlo8(symbol)  */
4613
in .byte hlo8(symbol)  */
Line -... Line 4614...
-
 
4614
  BFD_RELOC_AVR_8_HLO,
-
 
4615
 
-
 
4616
/* AVR relocations to mark the difference of two local symbols.
-
 
4617
These are only needed to support linker relaxation and can be ignored
-
 
4618
when not relaxing.  The field is set to the value of the difference
-
 
4619
assuming no relaxation.  The relocation encodes the position of the
-
 
4620
second symbol so the linker can determine whether to adjust the field
-
 
4621
value.  */
-
 
4622
  BFD_RELOC_AVR_DIFF8,
-
 
4623
  BFD_RELOC_AVR_DIFF16,
-
 
4624
  BFD_RELOC_AVR_DIFF32,
-
 
4625
 
-
 
4626
/* This is a 7 bit reloc for the AVR that stores SRAM address for 16bit
-
 
4627
lds and sts instructions supported only tiny core.  */
-
 
4628
  BFD_RELOC_AVR_LDS_STS_16,
-
 
4629
 
-
 
4630
/* This is a 6 bit reloc for the AVR that stores an I/O register
-
 
4631
number for the IN and OUT instructions  */
-
 
4632
  BFD_RELOC_AVR_PORT6,
-
 
4633
 
-
 
4634
/* This is a 5 bit reloc for the AVR that stores an I/O register
-
 
4635
number for the SBIC, SBIS, SBI and CBI instructions  */
4252
  BFD_RELOC_AVR_8_HLO,
4636
  BFD_RELOC_AVR_PORT5,
4253
 
4637
 
4254
/* Renesas RL78 Relocations.  */
4638
/* Renesas RL78 Relocations.  */
4255
  BFD_RELOC_RL78_NEG8,
4639
  BFD_RELOC_RL78_NEG8,
4256
  BFD_RELOC_RL78_NEG16,
4640
  BFD_RELOC_RL78_NEG16,
Line 4283... Line 4667...
4283
  BFD_RELOC_RL78_RELAX,
4667
  BFD_RELOC_RL78_RELAX,
4284
  BFD_RELOC_RL78_HI16,
4668
  BFD_RELOC_RL78_HI16,
4285
  BFD_RELOC_RL78_HI8,
4669
  BFD_RELOC_RL78_HI8,
4286
  BFD_RELOC_RL78_LO16,
4670
  BFD_RELOC_RL78_LO16,
4287
  BFD_RELOC_RL78_CODE,
4671
  BFD_RELOC_RL78_CODE,
-
 
4672
  BFD_RELOC_RL78_SADDR,
Line 4288... Line 4673...
4288
 
4673
 
4289
/* Renesas RX Relocations.  */
4674
/* Renesas RX Relocations.  */
4290
  BFD_RELOC_RX_NEG8,
4675
  BFD_RELOC_RX_NEG8,
4291
  BFD_RELOC_RX_NEG16,
4676
  BFD_RELOC_RX_NEG16,
Line 4912... Line 5297...
4912
  BFD_RELOC_860_HAPC,
5297
  BFD_RELOC_860_HAPC,
4913
  BFD_RELOC_860_HIGH,
5298
  BFD_RELOC_860_HIGH,
4914
  BFD_RELOC_860_HIGOT,
5299
  BFD_RELOC_860_HIGOT,
4915
  BFD_RELOC_860_HIGOTOFF,
5300
  BFD_RELOC_860_HIGOTOFF,
Line 4916... Line 5301...
4916
 
5301
 
4917
/* OpenRISC Relocations.  */
5302
/* OpenRISC 1000 Relocations.  */
-
 
5303
  BFD_RELOC_OR1K_REL_26,
-
 
5304
  BFD_RELOC_OR1K_GOTPC_HI16,
-
 
5305
  BFD_RELOC_OR1K_GOTPC_LO16,
4918
  BFD_RELOC_OPENRISC_ABS_26,
5306
  BFD_RELOC_OR1K_GOT16,
-
 
5307
  BFD_RELOC_OR1K_PLT26,
-
 
5308
  BFD_RELOC_OR1K_GOTOFF_HI16,
-
 
5309
  BFD_RELOC_OR1K_GOTOFF_LO16,
-
 
5310
  BFD_RELOC_OR1K_COPY,
-
 
5311
  BFD_RELOC_OR1K_GLOB_DAT,
-
 
5312
  BFD_RELOC_OR1K_JMP_SLOT,
-
 
5313
  BFD_RELOC_OR1K_RELATIVE,
-
 
5314
  BFD_RELOC_OR1K_TLS_GD_HI16,
-
 
5315
  BFD_RELOC_OR1K_TLS_GD_LO16,
-
 
5316
  BFD_RELOC_OR1K_TLS_LDM_HI16,
-
 
5317
  BFD_RELOC_OR1K_TLS_LDM_LO16,
-
 
5318
  BFD_RELOC_OR1K_TLS_LDO_HI16,
-
 
5319
  BFD_RELOC_OR1K_TLS_LDO_LO16,
-
 
5320
  BFD_RELOC_OR1K_TLS_IE_HI16,
-
 
5321
  BFD_RELOC_OR1K_TLS_IE_LO16,
-
 
5322
  BFD_RELOC_OR1K_TLS_LE_HI16,
-
 
5323
  BFD_RELOC_OR1K_TLS_LE_LO16,
-
 
5324
  BFD_RELOC_OR1K_TLS_TPOFF,
-
 
5325
  BFD_RELOC_OR1K_TLS_DTPOFF,
Line 4919... Line 5326...
4919
  BFD_RELOC_OPENRISC_REL_26,
5326
  BFD_RELOC_OR1K_TLS_DTPMOD,
4920
 
5327
 
4921
/* H8 elf Relocations.  */
5328
/* H8 elf Relocations.  */
4922
  BFD_RELOC_H8_DIR16A8,
5329
  BFD_RELOC_H8_DIR16A8,
Line 5022... Line 5429...
5022
  BFD_RELOC_NIOS2_COPY,
5429
  BFD_RELOC_NIOS2_COPY,
5023
  BFD_RELOC_NIOS2_GLOB_DAT,
5430
  BFD_RELOC_NIOS2_GLOB_DAT,
5024
  BFD_RELOC_NIOS2_JUMP_SLOT,
5431
  BFD_RELOC_NIOS2_JUMP_SLOT,
5025
  BFD_RELOC_NIOS2_RELATIVE,
5432
  BFD_RELOC_NIOS2_RELATIVE,
5026
  BFD_RELOC_NIOS2_GOTOFF,
5433
  BFD_RELOC_NIOS2_GOTOFF,
-
 
5434
  BFD_RELOC_NIOS2_CALL26_NOAT,
-
 
5435
  BFD_RELOC_NIOS2_GOT_LO,
-
 
5436
  BFD_RELOC_NIOS2_GOT_HA,
-
 
5437
  BFD_RELOC_NIOS2_CALL_LO,
-
 
5438
  BFD_RELOC_NIOS2_CALL_HA,
-
 
5439
  BFD_RELOC_NIOS2_R2_S12,
-
 
5440
  BFD_RELOC_NIOS2_R2_I10_1_PCREL,
-
 
5441
  BFD_RELOC_NIOS2_R2_T1I7_1_PCREL,
-
 
5442
  BFD_RELOC_NIOS2_R2_T1I7_2,
-
 
5443
  BFD_RELOC_NIOS2_R2_T2I4,
-
 
5444
  BFD_RELOC_NIOS2_R2_T2I4_1,
-
 
5445
  BFD_RELOC_NIOS2_R2_T2I4_2,
-
 
5446
  BFD_RELOC_NIOS2_R2_X1I7_2,
-
 
5447
  BFD_RELOC_NIOS2_R2_X2L5,
-
 
5448
  BFD_RELOC_NIOS2_R2_F1I5_2,
-
 
5449
  BFD_RELOC_NIOS2_R2_L5I4X1,
-
 
5450
  BFD_RELOC_NIOS2_R2_T1X1I6,
-
 
5451
  BFD_RELOC_NIOS2_R2_T1X1I6_2,
Line 5027... Line 5452...
5027
 
5452
 
5028
/* IQ2000 Relocations.  */
5453
/* IQ2000 Relocations.  */
5029
  BFD_RELOC_IQ2000_OFFSET_16,
5454
  BFD_RELOC_IQ2000_OFFSET_16,
5030
  BFD_RELOC_IQ2000_OFFSET_21,
5455
  BFD_RELOC_IQ2000_OFFSET_21,
Line 5408... Line 5833...
5408
/* Unsigned 12 bit byte offset for 32 bit load/store from the page of
5833
/* Unsigned 12 bit byte offset for 32 bit load/store from the page of
5409
the GOT entry for this symbol.  Used in conjunction with
5834
the GOT entry for this symbol.  Used in conjunction with
5410
BFD_RELOC_AARCH64_ADR_GOTPAGE.  Valid in ILP32 ABI only.  */
5835
BFD_RELOC_AARCH64_ADR_GOTPAGE.  Valid in ILP32 ABI only.  */
5411
  BFD_RELOC_AARCH64_LD32_GOT_LO12_NC,
5836
  BFD_RELOC_AARCH64_LD32_GOT_LO12_NC,
Line -... Line 5837...
-
 
5837
 
-
 
5838
/* Unsigned 16 bit byte offset for 64 bit load/store from the GOT entry
-
 
5839
for this symbol.  Valid in LP64 ABI only.  */
-
 
5840
  BFD_RELOC_AARCH64_MOVW_GOTOFF_G0_NC,
-
 
5841
 
-
 
5842
/* Unsigned 16 bit byte higher offset for 64 bit load/store from the GOT entry
-
 
5843
for this symbol.  Valid in LP64 ABI only.  */
-
 
5844
  BFD_RELOC_AARCH64_MOVW_GOTOFF_G1,
-
 
5845
 
-
 
5846
/* Unsigned 15 bit byte offset for 64 bit load/store from the page of
-
 
5847
the GOT entry for this symbol.  Valid in LP64 ABI only.  */
-
 
5848
  BFD_RELOC_AARCH64_LD64_GOTOFF_LO15,
-
 
5849
 
-
 
5850
/* Scaled 14 bit byte offset to the page base of the global offset table.  */
-
 
5851
  BFD_RELOC_AARCH64_LD32_GOTPAGE_LO14,
-
 
5852
 
-
 
5853
/* Scaled 15 bit byte offset to the page base of the global offset table.  */
-
 
5854
  BFD_RELOC_AARCH64_LD64_GOTPAGE_LO15,
5412
 
5855
 
5413
/* Get to the page base of the global offset table entry for a symbols
5856
/* Get to the page base of the global offset table entry for a symbols
5414
tls_index structure as part of an adrp instruction using a 21 bit PC
5857
tls_index structure as part of an adrp instruction using a 21 bit PC
5415
relative value.  Used in conjunction with
5858
relative value.  Used in conjunction with
5416
BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC.  */
5859
BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC.  */
Line -... Line 5860...
-
 
5860
  BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21,
-
 
5861
 
-
 
5862
/* AArch64 TLS General Dynamic  */
5417
  BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21,
5863
  BFD_RELOC_AARCH64_TLSGD_ADR_PREL21,
5418
 
5864
 
5419
/* Unsigned 12 bit byte offset to global offset table entry for a symbols
5865
/* Unsigned 12 bit byte offset to global offset table entry for a symbols
5420
tls_index structure.  Used in conjunction with
5866
tls_index structure.  Used in conjunction with
Line 5421... Line 5867...
5421
BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21.  */
5867
BFD_RELOC_AARCH64_TLSGD_ADR_PAGE21.  */
5422
  BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC,
5868
  BFD_RELOC_AARCH64_TLSGD_ADD_LO12_NC,
Line 5423... Line 5869...
5423
 
5869
 
5424
/* AArch64 TLS INITIAL EXEC relocation.  */
5870
/* AArch64 TLS General Dynamic relocation.  */
Line 5425... Line 5871...
5425
  BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1,
5871
  BFD_RELOC_AARCH64_TLSGD_MOVW_G0_NC,
5426
 
5872
 
Line 5427... Line 5873...
5427
/* AArch64 TLS INITIAL EXEC relocation.  */
5873
/* AArch64 TLS General Dynamic relocation.  */
Line 5437... Line 5883...
5437
  BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC,
5883
  BFD_RELOC_AARCH64_TLSIE_LD32_GOTTPREL_LO12_NC,
Line 5438... Line 5884...
5438
 
5884
 
5439
/* AArch64 TLS INITIAL EXEC relocation.  */
5885
/* AArch64 TLS INITIAL EXEC relocation.  */
Line -... Line 5886...
-
 
5886
  BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19,
-
 
5887
 
-
 
5888
/* AArch64 TLS INITIAL EXEC relocation.  */
-
 
5889
  BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC,
-
 
5890
 
-
 
5891
/* AArch64 TLS INITIAL EXEC relocation.  */
-
 
5892
  BFD_RELOC_AARCH64_TLSIE_MOVW_GOTTPREL_G1,
-
 
5893
 
-
 
5894
/* bit[23:12] of byte offset to module TLS base address.  */
-
 
5895
  BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_HI12,
-
 
5896
 
-
 
5897
/* Unsigned 12 bit byte offset to module TLS base address.  */
-
 
5898
  BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12,
-
 
5899
 
-
 
5900
/* No overflow check version of BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12.  */
-
 
5901
  BFD_RELOC_AARCH64_TLSLD_ADD_DTPREL_LO12_NC,
-
 
5902
 
-
 
5903
/* Unsigned 12 bit byte offset to global offset table entry for a symbols
-
 
5904
tls_index structure.  Used in conjunction with
-
 
5905
BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21.  */
-
 
5906
  BFD_RELOC_AARCH64_TLSLD_ADD_LO12_NC,
-
 
5907
 
-
 
5908
/* GOT entry page address for AArch64 TLS Local Dynamic, used with ADRP
-
 
5909
instruction.  */
-
 
5910
  BFD_RELOC_AARCH64_TLSLD_ADR_PAGE21,
-
 
5911
 
-
 
5912
/* GOT entry address for AArch64 TLS Local Dynamic, used with ADR instruction.  */
-
 
5913
  BFD_RELOC_AARCH64_TLSLD_ADR_PREL21,
-
 
5914
 
-
 
5915
/* bit[11:1] of byte offset to module TLS base address, encoded in ldst
-
 
5916
instructions.  */
-
 
5917
  BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12,
-
 
5918
 
-
 
5919
/* Similar as BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12, but no overflow check.  */
-
 
5920
  BFD_RELOC_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC,
-
 
5921
 
-
 
5922
/* bit[11:2] of byte offset to module TLS base address, encoded in ldst
-
 
5923
instructions.  */
-
 
5924
  BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12,
-
 
5925
 
-
 
5926
/* Similar as BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12, but no overflow check.  */
-
 
5927
  BFD_RELOC_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC,
-
 
5928
 
-
 
5929
/* bit[11:3] of byte offset to module TLS base address, encoded in ldst
-
 
5930
instructions.  */
-
 
5931
  BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12,
-
 
5932
 
-
 
5933
/* Similar as BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12, but no overflow check.  */
-
 
5934
  BFD_RELOC_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC,
-
 
5935
 
-
 
5936
/* bit[11:0] of byte offset to module TLS base address, encoded in ldst
-
 
5937
instructions.  */
-
 
5938
  BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12,
-
 
5939
 
-
 
5940
/* Similar as BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12, but no overflow check.  */
-
 
5941
  BFD_RELOC_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC,
-
 
5942
 
-
 
5943
/* bit[15:0] of byte offset to module TLS base address.  */
-
 
5944
  BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0,
-
 
5945
 
-
 
5946
/* No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0  */
-
 
5947
  BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G0_NC,
-
 
5948
 
-
 
5949
/* bit[31:16] of byte offset to module TLS base address.  */
-
 
5950
  BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1,
-
 
5951
 
-
 
5952
/* No overflow check version of BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1  */
-
 
5953
  BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G1_NC,
-
 
5954
 
-
 
5955
/* bit[47:32] of byte offset to module TLS base address.  */
5440
  BFD_RELOC_AARCH64_TLSIE_LD_GOTTPREL_PREL19,
5956
  BFD_RELOC_AARCH64_TLSLD_MOVW_DTPREL_G2,
5441
 
5957
 
Line 5442... Line 5958...
5442
/* AArch64 TLS LOCAL EXEC relocation.  */
5958
/* AArch64 TLS LOCAL EXEC relocation.  */
5443
  BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2,
5959
  BFD_RELOC_AARCH64_TLSLE_MOVW_TPREL_G2,
Line 5536... Line 6052...
5536
 
6052
 
5537
/* AArch64 unspecified load/store instruction, holding bits 0 to 11 of the
6053
/* AArch64 unspecified load/store instruction, holding bits 0 to 11 of the
5538
address.  Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.  */
6054
address.  Used in conjunction with BFD_RELOC_AARCH64_ADR_HI21_PCREL.  */
Line -... Line 6055...
-
 
6055
  BFD_RELOC_AARCH64_LDST_LO12,
-
 
6056
 
-
 
6057
/* AArch64 pseudo relocation code for TLS local dynamic mode.  It's to be
-
 
6058
used internally by the AArch64 assembler and not (currently) written to
-
 
6059
any object files.  */
-
 
6060
  BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12,
-
 
6061
 
-
 
6062
/* Similar as BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12, but no overflow check.  */
5539
  BFD_RELOC_AARCH64_LDST_LO12,
6063
  BFD_RELOC_AARCH64_TLSLD_LDST_DTPREL_LO12_NC,
5540
 
6064
 
5541
/* AArch64 pseudo relocation code to be used internally by the AArch64
6065
/* AArch64 pseudo relocation code to be used internally by the AArch64
Line 5542... Line 6066...
5542
assembler and not (currently) written to any object files.  */
6066
assembler and not (currently) written to any object files.  */
Line 5760... Line 6284...
5760
/* Adapteva EPIPHANY - 11 bit sign-magnitude number (ld/st displacement)  */
6284
/* Adapteva EPIPHANY - 11 bit sign-magnitude number (ld/st displacement)  */
5761
  BFD_RELOC_EPIPHANY_IMM11,
6285
  BFD_RELOC_EPIPHANY_IMM11,
Line 5762... Line 6286...
5762
 
6286
 
5763
/* Adapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction.  */
6287
/* Adapteva EPIPHANY - 8 bit immediate for 16 bit mov instruction.  */
-
 
6288
  BFD_RELOC_EPIPHANY_IMM8,
-
 
6289
 
-
 
6290
/* Visium Relocations.  */
-
 
6291
  BFD_RELOC_VISIUM_HI16,
-
 
6292
  BFD_RELOC_VISIUM_LO16,
-
 
6293
  BFD_RELOC_VISIUM_IM16,
-
 
6294
  BFD_RELOC_VISIUM_REL16,
-
 
6295
  BFD_RELOC_VISIUM_HI16_PCREL,
-
 
6296
  BFD_RELOC_VISIUM_LO16_PCREL,
5764
  BFD_RELOC_EPIPHANY_IMM8,
6297
  BFD_RELOC_VISIUM_IM16_PCREL,
-
 
6298
  BFD_RELOC_UNUSED };
5765
  BFD_RELOC_UNUSED };
6299
 
5766
typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
6300
typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
5767
reloc_howto_type *bfd_reloc_type_lookup
6301
reloc_howto_type *bfd_reloc_type_lookup
5768
   (bfd *abfd, bfd_reloc_code_real_type code);
6302
   (bfd *abfd, bfd_reloc_code_real_type code);
5769
reloc_howto_type *bfd_reloc_name_lookup
6303
reloc_howto_type *bfd_reloc_name_lookup
Line 5958... Line 6492...
5958
#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
6492
#define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
5959
  BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
6493
  BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
5960
            (ibfd, isymbol, obfd, osymbol))
6494
            (ibfd, isymbol, obfd, osymbol))
Line 5961... Line 6495...
5961
 
6495
 
-
 
6496
/* Extracted from bfd.c.  */
5962
/* Extracted from bfd.c.  */
6497
 
5963
enum bfd_direction
6498
enum bfd_direction
5964
  {
6499
  {
5965
    no_direction = 0,
6500
    no_direction = 0,
5966
    read_direction = 1,
6501
    read_direction = 1,
5967
    write_direction = 2,
6502
    write_direction = 2,
5968
    both_direction = 3
6503
    both_direction = 3
Line 5969... Line 6504...
5969
  };
6504
  };
5970
 
6505
 
5971
struct bfd
6506
enum bfd_plugin_format
-
 
6507
  {
5972
{
6508
    bfd_plugin_uknown = 0,
-
 
6509
    bfd_plugin_yes = 1,
Line -... Line 6510...
-
 
6510
    bfd_plugin_no = 2
-
 
6511
  };
-
 
6512
 
-
 
6513
struct bfd_build_id
-
 
6514
  {
-
 
6515
    bfd_size_type size;
-
 
6516
    bfd_byte data[1];
-
 
6517
  };
5973
  /* A unique identifier of the BFD  */
6518
 
5974
  unsigned int id;
6519
struct bfd
Line 5975... Line 6520...
5975
 
6520
{
5976
  /* The filename the application opened the BFD with.  */
6521
  /* The filename the application opened the BFD with.  */
Line 5993... Line 6538...
5993
  ufile_ptr where;
6538
  ufile_ptr where;
Line 5994... Line 6539...
5994
 
6539
 
5995
  /* File modified time, if mtime_set is TRUE.  */
6540
  /* File modified time, if mtime_set is TRUE.  */
Line 5996... Line 6541...
5996
  long mtime;
6541
  long mtime;
5997
 
6542
 
Line 5998... Line 6543...
5998
  /* Reserved for an unimplemented file locking extension.  */
6543
  /* A unique identifier of the BFD  */
5999
  int ifd;
6544
  unsigned int id;
Line 6000... Line 6545...
6000
 
6545
 
6001
  /* The format which belongs to the BFD. (object, core, etc.)  */
6546
  /* The format which belongs to the BFD. (object, core, etc.)  */
Line 6002... Line 6547...
6002
  bfd_format format;
6547
  ENUM_BITFIELD (bfd_format) format : 3;
6003
 
6548
 
Line 6004... Line 6549...
6004
  /* The direction with which the BFD was opened.  */
6549
  /* The direction with which the BFD was opened.  */
6005
  enum bfd_direction direction;
6550
  ENUM_BITFIELD (bfd_direction) direction : 2;
6006
 
6551
 
6007
  /* Format_specific flags.  */
6552
  /* Format_specific flags.  */
Line 6062... Line 6607...
6062
  /* This flag indicates that the BFD contents are actually cached
6607
  /* This flag indicates that the BFD contents are actually cached
6063
     in memory.  If this is set, iostream points to a bfd_in_memory
6608
     in memory.  If this is set, iostream points to a bfd_in_memory
6064
     struct.  */
6609
     struct.  */
6065
#define BFD_IN_MEMORY 0x800
6610
#define BFD_IN_MEMORY 0x800
Line 6066... Line -...
6066
 
-
 
6067
  /* The sections in this BFD specify a memory page.  */
-
 
6068
#define HAS_LOAD_PAGE 0x1000
-
 
6069
 
6611
 
6070
  /* This BFD has been created by the linker and doesn't correspond
6612
  /* This BFD has been created by the linker and doesn't correspond
6071
     to any input file.  */
6613
     to any input file.  */
Line 6072... Line 6614...
6072
#define BFD_LINKER_CREATED 0x2000
6614
#define BFD_LINKER_CREATED 0x1000
6073
 
6615
 
6074
  /* This may be set before writing out a BFD to request that it
6616
  /* This may be set before writing out a BFD to request that it
6075
     be written using values for UIDs, GIDs, timestamps, etc. that
6617
     be written using values for UIDs, GIDs, timestamps, etc. that
Line 6076... Line 6618...
6076
     will be consistent from run to run.  */
6618
     will be consistent from run to run.  */
6077
#define BFD_DETERMINISTIC_OUTPUT 0x4000
6619
#define BFD_DETERMINISTIC_OUTPUT 0x2000
Line 6078... Line 6620...
6078
 
6620
 
6079
  /* Compress sections in this BFD.  */
6621
  /* Compress sections in this BFD.  */
Line 6080... Line 6622...
6080
#define BFD_COMPRESS 0x8000
6622
#define BFD_COMPRESS 0x4000
6081
 
6623
 
-
 
6624
  /* Decompress sections in this BFD.  */
-
 
6625
#define BFD_DECOMPRESS 0x8000
-
 
6626
 
Line 6082... Line 6627...
6082
  /* Decompress sections in this BFD.  */
6627
  /* BFD is a dummy, for plugins.  */
6083
#define BFD_DECOMPRESS 0x10000
6628
#define BFD_PLUGIN 0x10000
6084
 
6629
 
-
 
6630
  /* Compress sections in this BFD with SHF_COMPRESSED from gABI.  */
Line 6085... Line 6631...
6085
  /* BFD is a dummy, for plugins.  */
6631
#define BFD_COMPRESS_GABI 0x20000
6086
#define BFD_PLUGIN 0x20000
6632
 
6087
 
6633
  /* Flags bits to be saved in bfd_preserve_save.  */
6088
  /* Flags bits to be saved in bfd_preserve_save.  */
6634
#define BFD_FLAGS_SAVED \
-
 
6635
  (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_PLUGIN \
-
 
6636
   | BFD_COMPRESS_GABI)
-
 
6637
 
-
 
6638
  /* Flags bits which are for BFD use only.  */
-
 
6639
#define BFD_FLAGS_FOR_BFD_USE_MASK \
-
 
6640
  (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_LINKER_CREATED \
-
 
6641
   | BFD_PLUGIN | BFD_TRADITIONAL_FORMAT | BFD_DETERMINISTIC_OUTPUT \
-
 
6642
   | BFD_COMPRESS_GABI)
-
 
6643
 
-
 
6644
  /* Is the file descriptor being cached?  That is, can it be closed as
-
 
6645
     needed, and re-opened when accessed later?  */
-
 
6646
  unsigned int cacheable : 1;
-
 
6647
 
-
 
6648
  /* Marks whether there was a default target specified when the
-
 
6649
     BFD was opened. This is used to select which matching algorithm
-
 
6650
     to use to choose the back end.  */
-
 
6651
  unsigned int target_defaulted : 1;
-
 
6652
 
-
 
6653
  /* ... and here: (``once'' means at least once).  */
-
 
6654
  unsigned int opened_once : 1;
-
 
6655
 
-
 
6656
  /* Set if we have a locally maintained mtime value, rather than
-
 
6657
     getting it from the file each time.  */
-
 
6658
  unsigned int mtime_set : 1;
-
 
6659
 
-
 
6660
  /* Flag set if symbols from this BFD should not be exported.  */
-
 
6661
  unsigned int no_export : 1;
-
 
6662
 
-
 
6663
  /* Remember when output has begun, to stop strange things
-
 
6664
     from happening.  */
-
 
6665
  unsigned int output_has_begun : 1;
-
 
6666
 
-
 
6667
  /* Have archive map.  */
-
 
6668
  unsigned int has_armap : 1;
-
 
6669
 
-
 
6670
  /* Set if this is a thin archive.  */
-
 
6671
  unsigned int is_thin_archive : 1;
-
 
6672
 
-
 
6673
  /* Set if only required symbols should be added in the link hash table for
-
 
6674
     this object.  Used by VMS linkers.  */
-
 
6675
  unsigned int selective_search : 1;
-
 
6676
 
-
 
6677
  /* Set if this is the linker output BFD.  */
-
 
6678
  unsigned int is_linker_output : 1;
-
 
6679
 
-
 
6680
  /* Set if this is the linker input BFD.  */
-
 
6681
  unsigned int is_linker_input : 1;
-
 
6682
 
-
 
6683
  /* If this is an input for a compiler plug-in library.  */
-
 
6684
  ENUM_BITFIELD (bfd_plugin_format) plugin_format : 2;
Line 6089... Line 6685...
6089
#define BFD_FLAGS_SAVED \
6685
 
6090
  (BFD_IN_MEMORY | BFD_COMPRESS | BFD_DECOMPRESS | BFD_PLUGIN)
6686
  /* Set if this is a plugin output file.  */
6091
 
6687
  unsigned int lto_output : 1;
6092
  /* Flags bits which are for BFD use only.  */
6688
 
Line 6116... Line 6712...
6116
  struct bfd_section *section_last;
6712
  struct bfd_section *section_last;
Line 6117... Line 6713...
6117
 
6713
 
6118
  /* The number of sections.  */
6714
  /* The number of sections.  */
Line -... Line 6715...
-
 
6715
  unsigned int section_count;
-
 
6716
 
-
 
6717
  /* A field used by _bfd_generic_link_add_archive_symbols.  This will
-
 
6718
     be used only for archive elements.  */
6119
  unsigned int section_count;
6719
  int archive_pass;
6120
 
6720
 
6121
  /* Stuff only useful for object files:
6721
  /* Stuff only useful for object files:
Line 6122... Line -...
6122
     The start address.  */
-
 
6123
  bfd_vma start_address;
-
 
6124
 
-
 
6125
  /* Used for input and output.  */
6722
     The start address.  */
6126
  unsigned int symcount;
6723
  bfd_vma start_address;
6127
 
6724
 
Line -... Line 6725...
-
 
6725
  /* Symbol table for output BFD (with symcount entries).
-
 
6726
     Also used by the linker to cache input BFD symbols.  */
-
 
6727
  struct bfd_symbol  **outsymbols;
6128
  /* Symbol table for output BFD (with symcount entries).
6728
 
6129
     Also used by the linker to cache input BFD symbols.  */
6729
  /* Used for input and output.  */
Line 6130... Line 6730...
6130
  struct bfd_symbol  **outsymbols;
6730
  unsigned int symcount;
6131
 
6731
 
Line 6141... Line 6741...
6141
  struct bfd *archive_next;    /* The next BFD in the archive.  */
6741
  struct bfd *archive_next;    /* The next BFD in the archive.  */
6142
  struct bfd *archive_head;    /* The first BFD in the archive.  */
6742
  struct bfd *archive_head;    /* The first BFD in the archive.  */
6143
  struct bfd *nested_archives; /* List of nested archive in a flattened
6743
  struct bfd *nested_archives; /* List of nested archive in a flattened
6144
                                  thin archive.  */
6744
                                  thin archive.  */
Line -... Line 6745...
-
 
6745
 
6145
 
6746
  union {
6146
  /* A chain of BFD structures involved in a link.  */
6747
    /* For input BFDs, a chain of BFDs involved in a link.  */
6147
  struct bfd *link_next;
-
 
6148
 
6748
    struct bfd *next;
6149
  /* A field used by _bfd_generic_link_add_archive_symbols.  This will
6749
    /* For output BFD, the linker hash table.  */
6150
     be used only for archive elements.  */
6750
    struct bfd_link_hash_table *hash;
Line 6151... Line 6751...
6151
  int archive_pass;
6751
  } link;
6152
 
6752
 
6153
  /* Used by the back end to hold private data.  */
6753
  /* Used by the back end to hold private data.  */
6154
  union
6754
  union
Line 6199... Line 6799...
6199
  /* Where all the allocated stuff under this BFD goes.  This is a
6799
  /* Where all the allocated stuff under this BFD goes.  This is a
6200
     struct objalloc *, but we use void * to avoid requiring the inclusion
6800
     struct objalloc *, but we use void * to avoid requiring the inclusion
6201
     of objalloc.h.  */
6801
     of objalloc.h.  */
6202
  void *memory;
6802
  void *memory;
Line 6203... Line -...
6203
 
-
 
6204
  /* Is the file descriptor being cached?  That is, can it be closed as
-
 
6205
     needed, and re-opened when accessed later?  */
-
 
6206
  unsigned int cacheable : 1;
-
 
6207
 
-
 
6208
  /* Marks whether there was a default target specified when the
-
 
6209
     BFD was opened. This is used to select which matching algorithm
-
 
6210
     to use to choose the back end.  */
-
 
6211
  unsigned int target_defaulted : 1;
-
 
6212
 
6803
 
6213
  /* ... and here: (``once'' means at least once).  */
-
 
6214
  unsigned int opened_once : 1;
-
 
6215
 
-
 
6216
  /* Set if we have a locally maintained mtime value, rather than
-
 
6217
     getting it from the file each time.  */
-
 
6218
  unsigned int mtime_set : 1;
-
 
6219
 
-
 
6220
  /* Flag set if symbols from this BFD should not be exported.  */
-
 
6221
  unsigned int no_export : 1;
-
 
6222
 
-
 
6223
  /* Remember when output has begun, to stop strange things
-
 
6224
     from happening.  */
6804
  /* For input BFDs, the build ID, if the object has one. */
6225
  unsigned int output_has_begun : 1;
6805
  const struct bfd_build_id *build_id;
6226
 
-
 
6227
  /* Have archive map.  */
-
 
Line 6228... Line 6806...
6228
  unsigned int has_armap : 1;
6806
};
6229
 
6807
 
-
 
6808
/* See note beside bfd_set_section_userdata.  */
-
 
6809
static inline bfd_boolean
-
 
6810
bfd_set_cacheable (bfd * abfd, bfd_boolean val)
-
 
6811
{
-
 
6812
  abfd->cacheable = val;
Line 6230... Line -...
6230
  /* Set if this is a thin archive.  */
-
 
6231
  unsigned int is_thin_archive : 1;
-
 
6232
 
-
 
6233
  /* Set if only required symbols should be added in the link hash table for
-
 
Line 6234... Line 6813...
6234
     this object.  Used by VMS linkers.  */
6813
  return TRUE;
6235
  unsigned int selective_search : 1;
6814
}
6236
};
6815
 
6237
 
6816
 
Line 6268... Line 6847...
6268
 
6847
 
Line 6269... Line 6848...
6269
const char *bfd_errmsg (bfd_error_type error_tag);
6848
const char *bfd_errmsg (bfd_error_type error_tag);
Line -... Line 6849...
-
 
6849
 
6270
 
6850
void bfd_perror (const char *message);
Line 6271... Line 6851...
6271
void bfd_perror (const char *message);
6851
 
Line 6272... Line 6852...
6272
 
6852
 
Line 6273... Line 6853...
6273
typedef void (*bfd_error_handler_type) (const char *, ...);
6853
typedef void (*bfd_error_handler_type) (const char *, ...);
Line -... Line 6854...
-
 
6854
 
6274
 
6855
bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
6275
bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
6856
 
6276
 
6857
void bfd_set_error_program_name (const char *);
6277
void bfd_set_error_program_name (const char *);
6858
 
Line 6331... Line 6912...
6331
#define bfd_sizeof_headers(abfd, info) \
6912
#define bfd_sizeof_headers(abfd, info) \
6332
       BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info))
6913
       BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, info))
Line 6333... Line 6914...
6333
 
6914
 
6334
#define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
6915
#define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
6335
       BFD_SEND (abfd, _bfd_find_nearest_line, \
6916
       BFD_SEND (abfd, _bfd_find_nearest_line, \
Line 6336... Line 6917...
6336
                 (abfd, sec, syms, off, file, func, line))
6917
                 (abfd, syms, sec, off, file, func, line, NULL))
6337
 
6918
 
6338
#define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \
6919
#define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \
6339
                                            line, disc) \
6920
                                            line, disc) \
Line 6340... Line 6921...
6340
       BFD_SEND (abfd, _bfd_find_nearest_line_discriminator, \
6921
       BFD_SEND (abfd, _bfd_find_nearest_line, \
6341
                 (abfd, sec, syms, off, file, func, line, disc))
6922
                 (abfd, syms, sec, off, file, func, line, disc))
6342
 
6923
 
Line 6385... Line 6966...
6385
       BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
6966
       BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
Line 6386... Line 6967...
6386
 
6967
 
6387
#define bfd_link_hash_table_create(abfd) \
6968
#define bfd_link_hash_table_create(abfd) \
Line 6388... Line -...
6388
       BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
-
 
6389
 
-
 
6390
#define bfd_link_hash_table_free(abfd, hash) \
-
 
6391
       BFD_SEND (abfd, _bfd_link_hash_table_free, (hash))
6969
       BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
6392
 
6970
 
Line 6393... Line 6971...
6393
#define bfd_link_add_symbols(abfd, info) \
6971
#define bfd_link_add_symbols(abfd, info) \
6394
       BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
6972
       BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
Line 6435... Line 7013...
6435
 
7013
 
Line 6436... Line 7014...
6436
void bfd_emul_set_commonpagesize (const char *, bfd_vma);
7014
void bfd_emul_set_commonpagesize (const char *, bfd_vma);
Line -... Line 7015...
-
 
7015
 
-
 
7016
char *bfd_demangle (bfd *, const char *, int);
-
 
7017
 
-
 
7018
void bfd_update_compression_header
-
 
7019
   (bfd *abfd, bfd_byte *contents, asection *sec);
-
 
7020
 
-
 
7021
bfd_boolean bfd_check_compression_header
-
 
7022
   (bfd *abfd, bfd_byte *contents, asection *sec,
-
 
7023
    bfd_size_type *uncompressed_size);
-
 
7024
 
-
 
7025
int bfd_get_compression_header_size (bfd *abfd, asection *sec);
-
 
7026
 
-
 
7027
bfd_size_type bfd_convert_section_size
-
 
7028
   (bfd *ibfd, asection *isec, bfd *obfd, bfd_size_type size);
-
 
7029
 
-
 
7030
bfd_boolean bfd_convert_section_contents
6437
 
7031
   (bfd *ibfd, asection *isec, bfd *obfd,
6438
char *bfd_demangle (bfd *, const char *, int);
7032
    bfd_byte **ptr, bfd_size_type *ptr_size);
6439
 
7033
 
Line 6440... Line 7034...
6440
/* Extracted from archive.c.  */
7034
/* Extracted from archive.c.  */
Line 6480... Line 7074...
6480
   (bfd_assert (__FILE__,__LINE__), NULL))
7074
   (bfd_assert (__FILE__,__LINE__), NULL))
6481
#endif
7075
#endif
Line 6482... Line 7076...
6482
 
7076
 
6483
enum bfd_flavour
7077
enum bfd_flavour
-
 
7078
{
6484
{
7079
  /* N.B. Update bfd_flavour_name if you change this.  */
6485
  bfd_target_unknown_flavour,
7080
  bfd_target_unknown_flavour,
6486
  bfd_target_aout_flavour,
7081
  bfd_target_aout_flavour,
6487
  bfd_target_coff_flavour,
7082
  bfd_target_coff_flavour,
6488
  bfd_target_ecoff_flavour,
7083
  bfd_target_ecoff_flavour,
Line 6697... Line 7292...
6697
  NAME##_get_symtab_upper_bound, \
7292
  NAME##_get_symtab_upper_bound, \
6698
  NAME##_canonicalize_symtab, \
7293
  NAME##_canonicalize_symtab, \
6699
  NAME##_make_empty_symbol, \
7294
  NAME##_make_empty_symbol, \
6700
  NAME##_print_symbol, \
7295
  NAME##_print_symbol, \
6701
  NAME##_get_symbol_info, \
7296
  NAME##_get_symbol_info, \
-
 
7297
  NAME##_get_symbol_version_string, \
6702
  NAME##_bfd_is_local_label_name, \
7298
  NAME##_bfd_is_local_label_name, \
6703
  NAME##_bfd_is_target_special_symbol, \
7299
  NAME##_bfd_is_target_special_symbol, \
6704
  NAME##_get_lineno, \
7300
  NAME##_get_lineno, \
6705
  NAME##_find_nearest_line, \
7301
  NAME##_find_nearest_line, \
6706
  _bfd_generic_find_nearest_line_discriminator, \
-
 
6707
  _bfd_generic_find_line, \
7302
  NAME##_find_line, \
6708
  NAME##_find_inliner_info, \
7303
  NAME##_find_inliner_info, \
6709
  NAME##_bfd_make_debug_symbol, \
7304
  NAME##_bfd_make_debug_symbol, \
6710
  NAME##_read_minisymbols, \
7305
  NAME##_read_minisymbols, \
6711
  NAME##_minisymbol_to_symbol
7306
  NAME##_minisymbol_to_symbol
Line 6719... Line 7314...
6719
    (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
7314
    (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
6720
#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
7315
#define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
6721
  void        (*_bfd_get_symbol_info)
7316
  void        (*_bfd_get_symbol_info)
6722
    (bfd *, struct bfd_symbol *, symbol_info *);
7317
    (bfd *, struct bfd_symbol *, symbol_info *);
6723
#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
7318
#define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
-
 
7319
  const char *(*_bfd_get_symbol_version_string)
-
 
7320
    (bfd *, struct bfd_symbol *, bfd_boolean *);
-
 
7321
#define bfd_get_symbol_version_string(b,s,h) BFD_SEND (b, _bfd_get_symbol_version_string, (b,s,h))
6724
  bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
7322
  bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
6725
  bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
7323
  bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
6726
  alent *     (*_get_lineno) (bfd *, struct bfd_symbol *);
7324
  alent *     (*_get_lineno) (bfd *, struct bfd_symbol *);
6727
  bfd_boolean (*_bfd_find_nearest_line)
7325
  bfd_boolean (*_bfd_find_nearest_line)
6728
    (bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma,
7326
    (bfd *, struct bfd_symbol **, struct bfd_section *, bfd_vma,
6729
     const char **, const char **, unsigned int *);
-
 
6730
  bfd_boolean (*_bfd_find_nearest_line_discriminator)
-
 
6731
    (bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma,
-
 
6732
     const char **, const char **, unsigned int *, unsigned int *);
7327
     const char **, const char **, unsigned int *, unsigned int *);
6733
  bfd_boolean (*_bfd_find_line)
7328
  bfd_boolean (*_bfd_find_line)
6734
    (bfd *, struct bfd_symbol **, struct bfd_symbol *,
7329
    (bfd *, struct bfd_symbol **, struct bfd_symbol *,
6735
     const char **, unsigned int *);
7330
     const char **, unsigned int *);
6736
  bfd_boolean (*_bfd_find_inliner_info)
7331
  bfd_boolean (*_bfd_find_inliner_info)
Line 6780... Line 7375...
6780
#define BFD_JUMP_TABLE_LINK(NAME) \
7375
#define BFD_JUMP_TABLE_LINK(NAME) \
6781
  NAME##_sizeof_headers, \
7376
  NAME##_sizeof_headers, \
6782
  NAME##_bfd_get_relocated_section_contents, \
7377
  NAME##_bfd_get_relocated_section_contents, \
6783
  NAME##_bfd_relax_section, \
7378
  NAME##_bfd_relax_section, \
6784
  NAME##_bfd_link_hash_table_create, \
7379
  NAME##_bfd_link_hash_table_create, \
6785
  NAME##_bfd_link_hash_table_free, \
-
 
6786
  NAME##_bfd_link_add_symbols, \
7380
  NAME##_bfd_link_add_symbols, \
6787
  NAME##_bfd_link_just_syms, \
7381
  NAME##_bfd_link_just_syms, \
6788
  NAME##_bfd_copy_link_hash_symbol_type, \
7382
  NAME##_bfd_copy_link_hash_symbol_type, \
6789
  NAME##_bfd_final_link, \
7383
  NAME##_bfd_final_link, \
6790
  NAME##_bfd_link_split_section, \
7384
  NAME##_bfd_link_split_section, \
Line 6807... Line 7401...
6807
  /* Create a hash table for the linker.  Different backends store
7401
  /* Create a hash table for the linker.  Different backends store
6808
     different information in this table.  */
7402
     different information in this table.  */
6809
  struct bfd_link_hash_table *
7403
  struct bfd_link_hash_table *
6810
              (*_bfd_link_hash_table_create) (bfd *);
7404
              (*_bfd_link_hash_table_create) (bfd *);
Line 6811... Line -...
6811
 
-
 
6812
  /* Release the memory associated with the linker hash table.  */
-
 
6813
  void        (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *);
-
 
6814
 
7405
 
6815
  /* Add symbols from this object file into the hash table.  */
7406
  /* Add symbols from this object file into the hash table.  */
Line 6816... Line 7407...
6816
  bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
7407
  bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
6817
 
7408
 
Line 6818... Line 7409...
6818
  /* Indicate that we are only retrieving symbol values from this section.  */
7409
  /* Indicate that we are only retrieving symbol values from this section.  */
-
 
7410
  void        (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
6819
  void        (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
7411
 
6820
 
7412
  /* Copy the symbol type and other attributes for a linker script
6821
  /* Copy the symbol type of a linker hash table entry.  */
7413
     assignment of one symbol to another.  */
6822
#define bfd_copy_link_hash_symbol_type(b, t, f) \
7414
#define bfd_copy_link_hash_symbol_type(b, t, f) \
Line 6902... Line 7494...
6902
 
7494
 
6903
const bfd_target *bfd_search_for_target
7495
const bfd_target *bfd_search_for_target
6904
   (int (*search_func) (const bfd_target *, void *),
7496
   (int (*search_func) (const bfd_target *, void *),
Line -... Line 7497...
-
 
7497
    void *);
-
 
7498
 
6905
    void *);
7499
const char *bfd_flavour_name (enum bfd_flavour flavour);
6906
 
7500
 
Line 6907... Line 7501...
6907
/* Extracted from format.c.  */
7501
/* Extracted from format.c.  */
6908
bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
7502
bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
Line 6944... Line 7538...
6944
/* Extracted from simple.c.  */
7538
/* Extracted from simple.c.  */
6945
bfd_byte *bfd_simple_get_relocated_section_contents
7539
bfd_byte *bfd_simple_get_relocated_section_contents
6946
   (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
7540
   (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table);
Line 6947... Line 7541...
6947
 
7541
 
6948
/* Extracted from compress.c.  */
-
 
6949
bfd_boolean bfd_compress_section_contents
-
 
6950
   (bfd *abfd, asection *section, bfd_byte *uncompressed_buffer,
-
 
6951
    bfd_size_type uncompressed_size);
-
 
6952
 
7542
/* Extracted from compress.c.  */
6953
bfd_boolean bfd_get_full_section_contents
7543
bfd_boolean bfd_get_full_section_contents
Line 6954... Line 7544...
6954
   (bfd *abfd, asection *section, bfd_byte **ptr);
7544
   (bfd *abfd, asection *section, bfd_byte **ptr);
6955
 
7545
 
Line -... Line 7546...
-
 
7546
void bfd_cache_section_contents
-
 
7547
   (asection *sec, void *contents);
-
 
7548
 
-
 
7549
bfd_boolean bfd_is_section_compressed_with_header
-
 
7550
   (bfd *abfd, asection *section,
6956
void bfd_cache_section_contents
7551
    int *compression_header_size_p,
6957
   (asection *sec, void *contents);
7552
    bfd_size_type *uncompressed_size_p);
Line 6958... Line 7553...
6958
 
7553
 
6959
bfd_boolean bfd_is_section_compressed
7554
bfd_boolean bfd_is_section_compressed
Line 6960... Line 7555...
6960
   (bfd *abfd, asection *section);
7555
   (bfd *abfd, asection *section);
6961
 
7556
 
Line -... Line 7557...
-
 
7557
bfd_boolean bfd_init_section_decompress_status
-
 
7558
   (bfd *abfd, asection *section);
-
 
7559
 
6962
bfd_boolean bfd_init_section_decompress_status
7560
bfd_boolean bfd_init_section_compress_status
6963
   (bfd *abfd, asection *section);
7561
   (bfd *abfd, asection *section);
6964
 
7562
 
6965
bfd_boolean bfd_init_section_compress_status
7563
bfd_boolean bfd_compress_section