Rizin
unix-like reverse engineering framework and cli tools
bfdlink.h File Reference
#include "mybfd.h"

Go to the source code of this file.

Classes

struct  bfd_link_hash_entry
 
struct  bfd_link_hash_table
 
struct  bfd_sym_chain
 
struct  bfd_link_info
 
struct  bfd_link_callbacks
 
struct  bfd_link_order
 
struct  bfd_link_order_reloc
 
struct  bfd_elf_version_expr
 
struct  bfd_elf_version_expr_head
 
struct  bfd_elf_version_deps
 
struct  bfd_elf_version_tree
 

Macros

#define BFD_ELF_VERSION_C_TYPE   1
 
#define BFD_ELF_VERSION_CXX_TYPE   2
 
#define BFD_ELF_VERSION_JAVA_TYPE   4
 

Enumerations

enum  bfd_link_strip { strip_none , strip_debugger , strip_some , strip_all }
 
enum  bfd_link_discard { discard_sec_merge , discard_none , discard_l , discard_all }
 
enum  bfd_link_hash_table_type { bfd_link_generic_hash_table , bfd_link_elf_hash_table }
 
enum  bfd_link_hash_type {
  bfd_link_hash_new , bfd_link_hash_undefined , bfd_link_hash_undefweak , bfd_link_hash_defined ,
  bfd_link_hash_defweak , bfd_link_hash_common , bfd_link_hash_indirect , bfd_link_hash_warning
}
 
enum  bfd_link_common_skip_ar_aymbols { bfd_link_common_skip_none , bfd_link_common_skip_text , bfd_link_common_skip_data , bfd_link_common_skip_all }
 
enum  report_method { RM_NOT_YET_SET = 0 , RM_IGNORE , RM_GENERATE_WARNING , RM_GENERATE_ERROR }
 
enum  bfd_link_order_type {
  bfd_undefined_link_order , bfd_indirect_link_order , bfd_data_link_order , bfd_section_reloc_link_order ,
  bfd_symbol_reloc_link_order
}
 

Functions

struct bfd_link_hash_entrybfd_link_hash_lookup (struct bfd_link_hash_table *, const char *, bfd_boolean create, bfd_boolean copy, bfd_boolean follow)
 
struct bfd_link_hash_entrybfd_wrapped_link_hash_lookup (bfd *, struct bfd_link_info *, const char *, bfd_boolean, bfd_boolean, bfd_boolean)
 
void bfd_link_hash_traverse (struct bfd_link_hash_table *, bfd_boolean(*)(struct bfd_link_hash_entry *, void *), void *)
 
void bfd_link_add_undef (struct bfd_link_hash_table *, struct bfd_link_hash_entry *)
 
void bfd_link_repair_undef_list (struct bfd_link_hash_table *table)
 
struct bfd_link_orderbfd_new_link_order (bfd *, asection *)
 

Macro Definition Documentation

◆ BFD_ELF_VERSION_C_TYPE

#define BFD_ELF_VERSION_C_TYPE   1

Definition at line 641 of file bfdlink.h.

◆ BFD_ELF_VERSION_CXX_TYPE

#define BFD_ELF_VERSION_CXX_TYPE   2

Definition at line 642 of file bfdlink.h.

◆ BFD_ELF_VERSION_JAVA_TYPE

#define BFD_ELF_VERSION_JAVA_TYPE   4

Definition at line 643 of file bfdlink.h.

Enumeration Type Documentation

◆ bfd_link_common_skip_ar_aymbols

Enumerator
bfd_link_common_skip_none 
bfd_link_common_skip_text 
bfd_link_common_skip_data 
bfd_link_common_skip_all 

Definition at line 70 of file bfdlink.h.

70  {
75 };

◆ bfd_link_discard

Enumerator
discard_sec_merge 
discard_none 
discard_l 
discard_all 

Definition at line 40 of file bfdlink.h.

40  {
41  discard_sec_merge, /* Discard local temporary symbols in SEC_MERGE
42  sections. */
43  discard_none, /* Don't discard any locals. */
44  discard_l, /* Discard local temporary symbols. */
45  discard_all /* Discard all locals. */
46 };

◆ bfd_link_hash_table_type

Enumerator
bfd_link_generic_hash_table 
bfd_link_elf_hash_table 

Definition at line 51 of file bfdlink.h.

51  {
54 };

◆ bfd_link_hash_type

Enumerator
bfd_link_hash_new 
bfd_link_hash_undefined 
bfd_link_hash_undefweak 
bfd_link_hash_defined 
bfd_link_hash_defweak 
bfd_link_hash_common 
bfd_link_hash_indirect 
bfd_link_hash_warning 

Definition at line 59 of file bfdlink.h.

59  {
60  bfd_link_hash_new, /* Symbol is new. */
61  bfd_link_hash_undefined, /* Symbol seen before, but undefined. */
62  bfd_link_hash_undefweak, /* Symbol is weak and undefined. */
63  bfd_link_hash_defined, /* Symbol is defined. */
64  bfd_link_hash_defweak, /* Symbol is weak and defined. */
65  bfd_link_hash_common, /* Symbol is common. */
66  bfd_link_hash_indirect, /* Symbol is an indirect link. */
67  bfd_link_hash_warning /* Like indirect, but warn if referenced. */
68 };

◆ bfd_link_order_type

Enumerator
bfd_undefined_link_order 
bfd_indirect_link_order 
bfd_data_link_order 
bfd_section_reloc_link_order 
bfd_symbol_reloc_link_order 

Definition at line 533 of file bfdlink.h.

533  {
534  bfd_undefined_link_order, /* Undefined. */
535  bfd_indirect_link_order, /* Built from a section. */
536  bfd_data_link_order, /* Set to explicit data. */
537  bfd_section_reloc_link_order, /* Relocate against a section. */
538  bfd_symbol_reloc_link_order /* Relocate against a symbol. */
539 };

◆ bfd_link_strip

Enumerator
strip_none 
strip_debugger 
strip_some 
strip_all 

Definition at line 31 of file bfdlink.h.

31  {
32  strip_none, /* Don't strip any symbols. */
33  strip_debugger, /* Strip debugging symbols. */
34  strip_some, /* keep_hash is the list of symbols to keep. */
35  strip_all /* Strip all symbols. */
36 };

◆ report_method

Enumerator
RM_NOT_YET_SET 
RM_IGNORE 
RM_GENERATE_WARNING 
RM_GENERATE_ERROR 

Definition at line 203 of file bfdlink.h.

203  {
204  /* This is the initial value when then link_info structure is created.
205  It allows the various stages of the linker to determine whether they
206  allowed to set the value. */
207  RM_NOT_YET_SET = 0,
208  RM_IGNORE,
211 };

Function Documentation

◆ bfd_link_add_undef()

void bfd_link_add_undef ( struct bfd_link_hash_table ,
struct bfd_link_hash_entry  
)

◆ bfd_link_hash_lookup()

struct bfd_link_hash_entry* bfd_link_hash_lookup ( struct bfd_link_hash_table ,
const char *  ,
bfd_boolean  create,
bfd_boolean  copy,
bfd_boolean  follow 
)

◆ bfd_link_hash_traverse()

void bfd_link_hash_traverse ( struct bfd_link_hash_table ,
bfd_boolean(*)(struct bfd_link_hash_entry *, void *)  ,
void *   
)

◆ bfd_link_repair_undef_list()

void bfd_link_repair_undef_list ( struct bfd_link_hash_table table)

◆ bfd_new_link_order()

struct bfd_link_order* bfd_new_link_order ( bfd ,
asection  
)

◆ bfd_wrapped_link_hash_lookup()

struct bfd_link_hash_entry* bfd_wrapped_link_hash_lookup ( bfd ,
struct bfd_link_info ,
const char *  ,
bfd_boolean  ,
bfd_boolean  ,
bfd_boolean   
)