// /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/cc1 -fpreprocessed /root/.ccache/coffgen.tmp.gurganbl.29284.i -quiet -dumpbase coffgen.tmp.gurganbl.29284.i -march=pentium4 -mcpu=pentium4 -auxbase-strip /root/.ccache/tmp.hash.gurganbl.29284.o -O3 -W -Wall -Wstrict-prototypes -Wmissing-prototypes -fprefetch-loop-arrays -ftracer -ffast-math -fnew-ra -fPIC -o - # 1 "coffgen.c" # 1 "" # 1 "" # 1 "coffgen.c" # 40 "coffgen.c" # 1 "bfd.h" 1 # 38 "bfd.h" # 1 "../include/ansidecl.h" 1 # 39 "bfd.h" 2 # 1 "../include/symcat.h" 1 # 40 "bfd.h" 2 # 80 "bfd.h" typedef struct bfd bfd; # 91 "bfd.h" typedef int bfd_boolean; # 129 "bfd.h" typedef unsigned long long bfd_vma; typedef long long bfd_signed_vma; typedef unsigned long long bfd_size_type; typedef unsigned long long symvalue; # 178 "bfd.h" typedef bfd_signed_vma file_ptr; typedef bfd_vma ufile_ptr; extern void bfd_sprintf_vma (bfd *, char *, bfd_vma); extern void bfd_fprintf_vma (bfd *, void *, bfd_vma); typedef unsigned int flagword; typedef unsigned char bfd_byte; typedef enum bfd_format { bfd_unknown = 0, bfd_object, bfd_archive, bfd_core, bfd_type_end } bfd_format; # 265 "bfd.h" typedef unsigned long symindex; typedef const struct reloc_howto_struct reloc_howto_type; # 287 "bfd.h" typedef struct carsym { char *name; file_ptr file_offset; } carsym; struct orl { char **name; union { file_ptr pos; bfd *abfd; } u; int namidx; }; typedef struct lineno_cache_entry { unsigned int line_number; union { struct symbol_cache_entry *sym; bfd_vma offset; } u; } alent; typedef struct bfd_section *sec_ptr; # 344 "bfd.h" typedef struct stat stat_type; typedef enum bfd_print_symbol { bfd_print_symbol_name, bfd_print_symbol_more, bfd_print_symbol_all } bfd_print_symbol_type; typedef struct _symbol_info { symvalue value; char type; const char *name; unsigned char stab_type; char stab_other; short stab_desc; const char *stab_name; } symbol_info; extern const char *bfd_get_stab_name (int); struct bfd_hash_entry { struct bfd_hash_entry *next; const char *string; unsigned long hash; }; struct bfd_hash_table { struct bfd_hash_entry **table; unsigned int size; struct bfd_hash_entry *(*newfunc) (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); void *memory; }; extern bfd_boolean bfd_hash_table_init (struct bfd_hash_table *, struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); extern bfd_boolean bfd_hash_table_init_n (struct bfd_hash_table *, struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, const char *), unsigned int size); extern void bfd_hash_table_free (struct bfd_hash_table *); extern struct bfd_hash_entry *bfd_hash_lookup (struct bfd_hash_table *, const char *, bfd_boolean create, bfd_boolean copy); extern void bfd_hash_replace (struct bfd_hash_table *, struct bfd_hash_entry *old, struct bfd_hash_entry *nw); extern struct bfd_hash_entry *bfd_hash_newfunc (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); extern void *bfd_hash_allocate (struct bfd_hash_table *, unsigned int); extern void bfd_hash_traverse (struct bfd_hash_table *, bfd_boolean (*) (struct bfd_hash_entry *, void *), void *info); # 463 "bfd.h" extern bfd_size_type bfd_bread (void *, bfd_size_type, bfd *); extern bfd_size_type bfd_bwrite (const void *, bfd_size_type, bfd *); extern int bfd_seek (bfd *, file_ptr, int); extern ufile_ptr bfd_tell (bfd *); extern int bfd_flush (bfd *); extern int bfd_stat (bfd *, struct stat *); # 486 "bfd.h" extern void warn_deprecated (const char *, const char *, int, const char *); # 524 "bfd.h" extern bfd_boolean bfd_cache_close (bfd *abfd); extern bfd_boolean bfd_record_phdr (bfd *, unsigned long, bfd_boolean, flagword, bfd_boolean, bfd_vma, bfd_boolean, bfd_boolean, unsigned int, struct bfd_section **); bfd_vma bfd_getb64 (const unsigned char *); bfd_vma bfd_getl64 (const unsigned char *); bfd_signed_vma bfd_getb_signed_64 (const unsigned char *); bfd_signed_vma bfd_getl_signed_64 (const unsigned char *); bfd_vma bfd_getb32 (const unsigned char *); bfd_vma bfd_getl32 (const unsigned char *); bfd_signed_vma bfd_getb_signed_32 (const unsigned char *); bfd_signed_vma bfd_getl_signed_32 (const unsigned char *); bfd_vma bfd_getb16 (const unsigned char *); bfd_vma bfd_getl16 (const unsigned char *); bfd_signed_vma bfd_getb_signed_16 (const unsigned char *); bfd_signed_vma bfd_getl_signed_16 (const unsigned char *); void bfd_putb64 (bfd_vma, unsigned char *); void bfd_putl64 (bfd_vma, unsigned char *); void bfd_putb32 (bfd_vma, unsigned char *); void bfd_putl32 (bfd_vma, unsigned char *); void bfd_putb16 (bfd_vma, unsigned char *); void bfd_putl16 (bfd_vma, unsigned char *); bfd_vma bfd_get_bits (bfd_byte *, int, bfd_boolean); void bfd_put_bits (bfd_vma, bfd_byte *, int, bfd_boolean); struct ecoff_debug_info; struct ecoff_debug_swap; struct ecoff_extr; struct symbol_cache_entry; struct bfd_link_info; struct bfd_link_hash_entry; struct bfd_elf_version_tree; extern bfd_vma bfd_ecoff_get_gp_value (bfd * abfd); extern bfd_boolean bfd_ecoff_set_gp_value (bfd *abfd, bfd_vma gp_value); extern bfd_boolean bfd_ecoff_set_regmasks (bfd *abfd, unsigned long gprmask, unsigned long fprmask, unsigned long *cprmask); extern void *bfd_ecoff_debug_init (bfd *output_bfd, struct ecoff_debug_info *output_debug, const struct ecoff_debug_swap *output_swap, struct bfd_link_info *); extern void bfd_ecoff_debug_free (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, const struct ecoff_debug_swap *output_swap, struct bfd_link_info *); extern bfd_boolean bfd_ecoff_debug_accumulate (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, const struct ecoff_debug_swap *output_swap, bfd *input_bfd, struct ecoff_debug_info *input_debug, const struct ecoff_debug_swap *input_swap, struct bfd_link_info *); extern bfd_boolean bfd_ecoff_debug_accumulate_other (void *handle, bfd *output_bfd, struct ecoff_debug_info *output_debug, const struct ecoff_debug_swap *output_swap, bfd *input_bfd, struct bfd_link_info *); extern bfd_boolean bfd_ecoff_debug_externals (bfd *abfd, struct ecoff_debug_info *debug, const struct ecoff_debug_swap *swap, bfd_boolean relocatable, bfd_boolean (*get_extr) (struct symbol_cache_entry *, struct ecoff_extr *), void (*set_index) (struct symbol_cache_entry *, bfd_size_type)); extern bfd_boolean bfd_ecoff_debug_one_external (bfd *abfd, struct ecoff_debug_info *debug, const struct ecoff_debug_swap *swap, const char *name, struct ecoff_extr *esym); extern bfd_size_type bfd_ecoff_debug_size (bfd *abfd, struct ecoff_debug_info *debug, const struct ecoff_debug_swap *swap); extern bfd_boolean bfd_ecoff_write_debug (bfd *abfd, struct ecoff_debug_info *debug, const struct ecoff_debug_swap *swap, file_ptr where); extern bfd_boolean bfd_ecoff_write_accumulated_debug (void *handle, bfd *abfd, struct ecoff_debug_info *debug, const struct ecoff_debug_swap *swap, struct bfd_link_info *info, file_ptr where); extern bfd_boolean bfd_mips_ecoff_create_embedded_relocs (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **); struct bfd_link_needed_list { struct bfd_link_needed_list *next; bfd *by; const char *name; }; extern bfd_boolean bfd_elf_record_link_assignment (bfd *, struct bfd_link_info *, const char *, bfd_boolean); extern struct bfd_link_needed_list *bfd_elf_get_needed_list (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_elf_get_bfd_needed_list (bfd *, struct bfd_link_needed_list **); extern bfd_boolean bfd_elf32_size_dynamic_sections (bfd *, const char *, const char *, const char *, const char * const *, struct bfd_link_info *, struct bfd_section **, struct bfd_elf_version_tree *); extern bfd_boolean bfd_elf64_size_dynamic_sections (bfd *, const char *, const char *, const char *, const char * const *, struct bfd_link_info *, struct bfd_section **, struct bfd_elf_version_tree *); extern void bfd_elf_set_dt_needed_name (bfd *, const char *); extern void bfd_elf_set_dt_needed_soname (bfd *, const char *); extern const char *bfd_elf_get_dt_soname (bfd *); extern struct bfd_link_needed_list *bfd_elf_get_runpath_list (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_elf32_discard_info (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_elf64_discard_info (bfd *, struct bfd_link_info *); extern long bfd_get_elf_phdr_upper_bound (bfd *abfd); # 660 "bfd.h" extern int bfd_get_elf_phdrs (bfd *abfd, void *phdrs); # 675 "bfd.h" extern bfd *bfd_elf_bfd_from_remote_memory (bfd *templ, bfd_vma ehdr_vma, bfd_vma *loadbasep, int (*target_read_memory) (bfd_vma vma, char *myaddr, int len)); extern int bfd_get_arch_size (bfd *); extern int bfd_get_sign_extend_vma (bfd *); extern struct bfd_section *_bfd_elf_tls_setup (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_m68k_elf32_create_embedded_relocs (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **); extern bfd_boolean bfd_mips_elf32_create_embedded_relocs (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **); extern struct bfd_link_needed_list *bfd_sunos_get_needed_list (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_sunos_record_link_assignment (bfd *, struct bfd_link_info *, const char *); extern bfd_boolean bfd_sunos_size_dynamic_sections (bfd *, struct bfd_link_info *, struct bfd_section **, struct bfd_section **, struct bfd_section **); extern bfd_boolean bfd_i386linux_size_dynamic_sections (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_m68klinux_size_dynamic_sections (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_sparclinux_size_dynamic_sections (bfd *, struct bfd_link_info *); struct _bfd_window_internal; typedef struct _bfd_window_internal bfd_window_internal; typedef struct _bfd_window { void *data; bfd_size_type size; struct _bfd_window_internal *i; } bfd_window; extern void bfd_init_window (bfd_window *); extern void bfd_free_window (bfd_window *); extern bfd_boolean bfd_get_file_window (bfd *, file_ptr, bfd_size_type, bfd_window *, bfd_boolean); extern bfd_boolean bfd_xcoff_link_record_set (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_size_type); extern bfd_boolean bfd_xcoff_import_symbol (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *, bfd_vma, const char *, const char *, const char *, unsigned int); extern bfd_boolean bfd_xcoff_export_symbol (bfd *, struct bfd_link_info *, struct bfd_link_hash_entry *); extern bfd_boolean bfd_xcoff_link_count_reloc (bfd *, struct bfd_link_info *, const char *); extern bfd_boolean bfd_xcoff_record_link_assignment (bfd *, struct bfd_link_info *, const char *); extern bfd_boolean bfd_xcoff_size_dynamic_sections (bfd *, struct bfd_link_info *, const char *, const char *, unsigned long, unsigned long, unsigned long, bfd_boolean, int, bfd_boolean, bfd_boolean, struct bfd_section **, bfd_boolean); extern bfd_boolean bfd_xcoff_link_generate_rtinit (bfd *, const char *, const char *, bfd_boolean); extern bfd_boolean bfd_xcoff_ar_archive_set_magic (bfd *, char *); struct internal_syment; union internal_auxent; extern bfd_boolean bfd_coff_get_syment (bfd *, struct symbol_cache_entry *, struct internal_syment *); extern bfd_boolean bfd_coff_get_auxent (bfd *, struct symbol_cache_entry *, int, union internal_auxent *); extern bfd_boolean bfd_coff_set_symbol_class (bfd *, struct symbol_cache_entry *, unsigned int); extern bfd_boolean bfd_m68k_coff_create_embedded_relocs (bfd *, struct bfd_link_info *, struct bfd_section *, struct bfd_section *, char **); extern bfd_boolean bfd_arm_allocate_interworking_sections (struct bfd_link_info *); extern bfd_boolean bfd_arm_process_before_allocation (bfd *, struct bfd_link_info *, int); extern bfd_boolean bfd_arm_get_bfd_for_interworking (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_arm_pe_allocate_interworking_sections (struct bfd_link_info *); extern bfd_boolean bfd_arm_pe_process_before_allocation (bfd *, struct bfd_link_info *, int); extern bfd_boolean bfd_arm_pe_get_bfd_for_interworking (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_elf32_arm_allocate_interworking_sections (struct bfd_link_info *); extern bfd_boolean bfd_elf32_arm_process_before_allocation (bfd *, struct bfd_link_info *, int); extern bfd_boolean bfd_elf32_arm_get_bfd_for_interworking (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd (bfd *, struct bfd_link_info *); extern bfd_boolean bfd_arm_merge_machines (bfd *, bfd *); extern bfd_boolean bfd_arm_update_notes (bfd *, const char *); extern unsigned int bfd_arm_get_mach_from_notes (bfd *, const char *); extern void bfd_ticoff_set_section_load_page (struct bfd_section *, int); extern int bfd_ticoff_get_section_load_page (struct bfd_section *); extern bfd_vma bfd_h8300_pad_address (bfd *, bfd_vma); extern void bfd_elf32_ia64_after_parse (int); extern void bfd_elf64_ia64_after_parse (int); void bfd_init (void); bfd *bfd_openr (const char *filename, const char *target); bfd *bfd_fdopenr (const char *filename, const char *target, int fd); bfd *bfd_openstreamr (const char *, const char *, void *); bfd *bfd_openw (const char *filename, const char *target); bfd_boolean bfd_close (bfd *abfd); bfd_boolean bfd_close_all_done (bfd *); bfd *bfd_create (const char *filename, bfd *templ); bfd_boolean bfd_make_writable (bfd *abfd); bfd_boolean bfd_make_readable (bfd *abfd); unsigned long bfd_calc_gnu_debuglink_crc32 (unsigned long crc, const unsigned char *buf, bfd_size_type len); char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir); struct bfd_section *bfd_create_gnu_debuglink_section (bfd *abfd, const char *filename); bfd_boolean bfd_fill_in_gnu_debuglink_section (bfd *abfd, struct bfd_section *sect, const char *filename); # 1019 "bfd.h" long bfd_get_mtime (bfd *abfd); long bfd_get_size (bfd *abfd); # 1030 "bfd.h" struct bfd_comdat_info { const char *name; long symbol; }; typedef struct bfd_section { const char *name; int id; int index; struct bfd_section *next; flagword flags; # 1238 "bfd.h" unsigned int user_set_vma : 1; unsigned int reloc_done : 1; unsigned int linker_mark : 1; unsigned int linker_has_input : 1; unsigned int gc_mark : 1; unsigned int segment_mark : 1; unsigned int sec_info_type:3; unsigned int use_rela_p:1; unsigned int has_tls_reloc:1; unsigned int need_finalize_relax:1; unsigned int has_gp_reloc:1; unsigned int flag13:1; unsigned int flag14:1; unsigned int flag15:1; unsigned int flag16:4; unsigned int flag20:4; unsigned int flag24:8; # 1294 "bfd.h" bfd_vma vma; bfd_vma lma; bfd_size_type _cooked_size; bfd_size_type _raw_size; # 1318 "bfd.h" bfd_vma output_offset; struct bfd_section *output_section; unsigned int alignment_power; struct reloc_cache_entry *relocation; struct reloc_cache_entry **orelocation; unsigned reloc_count; file_ptr filepos; file_ptr rel_filepos; file_ptr line_filepos; void *userdata; unsigned char *contents; alent *lineno; unsigned int lineno_count; unsigned int entsize; struct bfd_comdat_info *comdat; struct bfd_section *kept_section; file_ptr moving_line_filepos; int target_index; void *used_by_bfd; struct relent_chain *constructor_chain; bfd *owner; struct symbol_cache_entry *symbol; struct symbol_cache_entry **symbol_ptr_ptr; struct bfd_link_order *link_order_head; struct bfd_link_order *link_order_tail; } asection; # 1408 "bfd.h" extern asection bfd_abs_section; extern asection bfd_und_section; extern asection bfd_com_section; extern asection bfd_ind_section; # 1429 "bfd.h" extern const struct symbol_cache_entry * const bfd_abs_symbol; extern const struct symbol_cache_entry * const bfd_com_symbol; extern const struct symbol_cache_entry * const bfd_und_symbol; extern const struct symbol_cache_entry * const bfd_ind_symbol; # 1464 "bfd.h" void bfd_section_list_clear (bfd *); asection *bfd_get_section_by_name (bfd *abfd, const char *name); char *bfd_get_unique_section_name (bfd *abfd, const char *templat, int *count); asection *bfd_make_section_old_way (bfd *abfd, const char *name); asection *bfd_make_section_anyway (bfd *abfd, const char *name); asection *bfd_make_section (bfd *, const char *name); bfd_boolean bfd_set_section_flags (bfd *abfd, asection *sec, flagword flags); void bfd_map_over_sections (bfd *abfd, void (*func) (bfd *abfd, asection *sect, void *obj), void *obj); bfd_boolean bfd_set_section_size (bfd *abfd, asection *sec, bfd_size_type val); bfd_boolean bfd_set_section_contents (bfd *abfd, asection *section, void *data, file_ptr offset, bfd_size_type count); bfd_boolean bfd_get_section_contents (bfd *abfd, asection *section, void *location, file_ptr offset, bfd_size_type count); bfd_boolean bfd_copy_private_section_data (bfd *ibfd, asection *isec, bfd *obfd, asection *osec); void _bfd_strip_section_from_output (struct bfd_link_info *info, asection *section); bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group); enum bfd_architecture { bfd_arch_unknown, bfd_arch_obscure, bfd_arch_m68k, # 1526 "bfd.h" bfd_arch_vax, bfd_arch_i960, # 1545 "bfd.h" bfd_arch_or32, bfd_arch_a29k, bfd_arch_sparc, # 1564 "bfd.h" bfd_arch_mips, # 1591 "bfd.h" bfd_arch_i386, bfd_arch_we32k, bfd_arch_tahoe, bfd_arch_i860, bfd_arch_i370, bfd_arch_romp, bfd_arch_alliant, bfd_arch_convex, bfd_arch_m88k, bfd_arch_m98k, bfd_arch_pyramid, bfd_arch_h8300, bfd_arch_pdp11, bfd_arch_powerpc, # 1636 "bfd.h" bfd_arch_rs6000, bfd_arch_hppa, bfd_arch_d10v, bfd_arch_d30v, bfd_arch_dlx, bfd_arch_m68hc11, bfd_arch_m68hc12, bfd_arch_z8k, bfd_arch_h8500, bfd_arch_sh, # 1675 "bfd.h" bfd_arch_alpha, bfd_arch_arm, # 1693 "bfd.h" bfd_arch_ns32k, bfd_arch_w65, bfd_arch_tic30, bfd_arch_tic4x, bfd_arch_tic54x, bfd_arch_tic80, bfd_arch_v850, bfd_arch_arc, bfd_arch_m32r, bfd_arch_mn10200, bfd_arch_mn10300, bfd_arch_fr30, bfd_arch_frv, bfd_arch_mcore, bfd_arch_ia64, bfd_arch_ip2k, bfd_arch_iq2000, bfd_arch_pj, bfd_arch_avr, bfd_arch_cris, bfd_arch_s390, bfd_arch_openrisc, bfd_arch_mmix, bfd_arch_xstormy16, bfd_arch_msp430, # 1768 "bfd.h" bfd_arch_xtensa, bfd_arch_last }; typedef struct bfd_arch_info { int bits_per_word; int bits_per_address; int bits_per_byte; enum bfd_architecture arch; unsigned long mach; const char *arch_name; const char *printable_name; unsigned int section_align_power; bfd_boolean the_default; const struct bfd_arch_info * (*compatible) (const struct bfd_arch_info *a, const struct bfd_arch_info *b); bfd_boolean (*scan) (const struct bfd_arch_info *, const char *); const struct bfd_arch_info *next; } bfd_arch_info_type; const char *bfd_printable_name (bfd *abfd); const bfd_arch_info_type *bfd_scan_arch (const char *string); const char **bfd_arch_list (void); const bfd_arch_info_type *bfd_arch_get_compatible (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns); void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg); enum bfd_architecture bfd_get_arch (bfd *abfd); unsigned long bfd_get_mach (bfd *abfd); unsigned int bfd_arch_bits_per_byte (bfd *abfd); unsigned int bfd_arch_bits_per_address (bfd *abfd); const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd); const bfd_arch_info_type *bfd_lookup_arch (enum bfd_architecture arch, unsigned long machine); const char *bfd_printable_arch_mach (enum bfd_architecture arch, unsigned long machine); unsigned int bfd_octets_per_byte (bfd *abfd); unsigned int bfd_arch_mach_octets_per_byte (enum bfd_architecture arch, unsigned long machine); typedef enum bfd_reloc_status { bfd_reloc_ok, bfd_reloc_overflow, bfd_reloc_outofrange, bfd_reloc_continue, bfd_reloc_notsupported, bfd_reloc_other, bfd_reloc_undefined, bfd_reloc_dangerous } bfd_reloc_status_type; typedef struct reloc_cache_entry { struct symbol_cache_entry **sym_ptr_ptr; bfd_size_type address; bfd_vma addend; reloc_howto_type *howto; } arelent; enum complain_overflow { complain_overflow_dont, complain_overflow_bitfield, complain_overflow_signed, complain_overflow_unsigned }; struct reloc_howto_struct { unsigned int type; unsigned int rightshift; int size; unsigned int bitsize; bfd_boolean pc_relative; unsigned int bitpos; enum complain_overflow complain_on_overflow; bfd_reloc_status_type (*special_function) (bfd *, arelent *, struct symbol_cache_entry *, void *, asection *, bfd *, char **); char *name; # 1959 "bfd.h" bfd_boolean partial_inplace; # 1969 "bfd.h" bfd_vma src_mask; bfd_vma dst_mask; bfd_boolean pcrel_offset; }; # 2009 "bfd.h" unsigned int bfd_get_reloc_size (reloc_howto_type *); typedef struct relent_chain { arelent relent; struct relent_chain *next; } arelent_chain; bfd_reloc_status_type bfd_check_overflow (enum complain_overflow how, unsigned int bitsize, unsigned int rightshift, unsigned int addrsize, bfd_vma relocation); bfd_reloc_status_type bfd_perform_relocation (bfd *abfd, arelent *reloc_entry, void *data, asection *input_section, bfd *output_bfd, char **error_message); bfd_reloc_status_type bfd_install_relocation (bfd *abfd, arelent *reloc_entry, void *data, bfd_vma data_start, asection *input_section, char **error_message); enum bfd_reloc_code_real { _dummy_first_bfd_reloc_code_real, BFD_RELOC_64, BFD_RELOC_32, BFD_RELOC_26, BFD_RELOC_24, BFD_RELOC_16, BFD_RELOC_14, BFD_RELOC_8, BFD_RELOC_64_PCREL, BFD_RELOC_32_PCREL, BFD_RELOC_24_PCREL, BFD_RELOC_16_PCREL, BFD_RELOC_12_PCREL, BFD_RELOC_8_PCREL, BFD_RELOC_32_GOT_PCREL, BFD_RELOC_16_GOT_PCREL, BFD_RELOC_8_GOT_PCREL, BFD_RELOC_32_GOTOFF, BFD_RELOC_16_GOTOFF, BFD_RELOC_LO16_GOTOFF, BFD_RELOC_HI16_GOTOFF, BFD_RELOC_HI16_S_GOTOFF, BFD_RELOC_8_GOTOFF, BFD_RELOC_64_PLT_PCREL, BFD_RELOC_32_PLT_PCREL, BFD_RELOC_24_PLT_PCREL, BFD_RELOC_16_PLT_PCREL, BFD_RELOC_8_PLT_PCREL, BFD_RELOC_64_PLTOFF, BFD_RELOC_32_PLTOFF, BFD_RELOC_16_PLTOFF, BFD_RELOC_LO16_PLTOFF, BFD_RELOC_HI16_PLTOFF, BFD_RELOC_HI16_S_PLTOFF, BFD_RELOC_8_PLTOFF, BFD_RELOC_68K_GLOB_DAT, BFD_RELOC_68K_JMP_SLOT, BFD_RELOC_68K_RELATIVE, BFD_RELOC_32_BASEREL, BFD_RELOC_16_BASEREL, BFD_RELOC_LO16_BASEREL, BFD_RELOC_HI16_BASEREL, BFD_RELOC_HI16_S_BASEREL, BFD_RELOC_8_BASEREL, BFD_RELOC_RVA, BFD_RELOC_8_FFnn, BFD_RELOC_32_PCREL_S2, BFD_RELOC_16_PCREL_S2, BFD_RELOC_23_PCREL_S2, BFD_RELOC_HI22, BFD_RELOC_LO10, BFD_RELOC_GPREL16, BFD_RELOC_GPREL32, BFD_RELOC_I960_CALLJ, BFD_RELOC_NONE, BFD_RELOC_SPARC_WDISP22, BFD_RELOC_SPARC22, BFD_RELOC_SPARC13, BFD_RELOC_SPARC_GOT10, BFD_RELOC_SPARC_GOT13, BFD_RELOC_SPARC_GOT22, BFD_RELOC_SPARC_PC10, BFD_RELOC_SPARC_PC22, BFD_RELOC_SPARC_WPLT30, BFD_RELOC_SPARC_COPY, BFD_RELOC_SPARC_GLOB_DAT, BFD_RELOC_SPARC_JMP_SLOT, BFD_RELOC_SPARC_RELATIVE, BFD_RELOC_SPARC_UA16, BFD_RELOC_SPARC_UA32, BFD_RELOC_SPARC_UA64, BFD_RELOC_SPARC_BASE13, BFD_RELOC_SPARC_BASE22, BFD_RELOC_SPARC_10, BFD_RELOC_SPARC_11, BFD_RELOC_SPARC_OLO10, BFD_RELOC_SPARC_HH22, BFD_RELOC_SPARC_HM10, BFD_RELOC_SPARC_LM22, BFD_RELOC_SPARC_PC_HH22, BFD_RELOC_SPARC_PC_HM10, BFD_RELOC_SPARC_PC_LM22, BFD_RELOC_SPARC_WDISP16, BFD_RELOC_SPARC_WDISP19, BFD_RELOC_SPARC_7, BFD_RELOC_SPARC_6, BFD_RELOC_SPARC_5, BFD_RELOC_SPARC_PLT32, BFD_RELOC_SPARC_PLT64, BFD_RELOC_SPARC_HIX22, BFD_RELOC_SPARC_LOX10, BFD_RELOC_SPARC_H44, BFD_RELOC_SPARC_M44, BFD_RELOC_SPARC_L44, BFD_RELOC_SPARC_REGISTER, BFD_RELOC_SPARC_REV32, BFD_RELOC_SPARC_TLS_GD_HI22, BFD_RELOC_SPARC_TLS_GD_LO10, BFD_RELOC_SPARC_TLS_GD_ADD, BFD_RELOC_SPARC_TLS_GD_CALL, BFD_RELOC_SPARC_TLS_LDM_HI22, BFD_RELOC_SPARC_TLS_LDM_LO10, BFD_RELOC_SPARC_TLS_LDM_ADD, BFD_RELOC_SPARC_TLS_LDM_CALL, BFD_RELOC_SPARC_TLS_LDO_HIX22, BFD_RELOC_SPARC_TLS_LDO_LOX10, BFD_RELOC_SPARC_TLS_LDO_ADD, BFD_RELOC_SPARC_TLS_IE_HI22, BFD_RELOC_SPARC_TLS_IE_LO10, BFD_RELOC_SPARC_TLS_IE_LD, BFD_RELOC_SPARC_TLS_IE_LDX, BFD_RELOC_SPARC_TLS_IE_ADD, BFD_RELOC_SPARC_TLS_LE_HIX22, BFD_RELOC_SPARC_TLS_LE_LOX10, BFD_RELOC_SPARC_TLS_DTPMOD32, BFD_RELOC_SPARC_TLS_DTPMOD64, BFD_RELOC_SPARC_TLS_DTPOFF32, BFD_RELOC_SPARC_TLS_DTPOFF64, BFD_RELOC_SPARC_TLS_TPOFF32, BFD_RELOC_SPARC_TLS_TPOFF64, BFD_RELOC_ALPHA_GPDISP_HI16, BFD_RELOC_ALPHA_GPDISP_LO16, BFD_RELOC_ALPHA_GPDISP, # 2251 "bfd.h" BFD_RELOC_ALPHA_LITERAL, BFD_RELOC_ALPHA_ELF_LITERAL, BFD_RELOC_ALPHA_LITUSE, BFD_RELOC_ALPHA_HINT, BFD_RELOC_ALPHA_LINKAGE, BFD_RELOC_ALPHA_CODEADDR, BFD_RELOC_ALPHA_GPREL_HI16, BFD_RELOC_ALPHA_GPREL_LO16, BFD_RELOC_ALPHA_BRSGP, BFD_RELOC_ALPHA_TLSGD, BFD_RELOC_ALPHA_TLSLDM, BFD_RELOC_ALPHA_DTPMOD64, BFD_RELOC_ALPHA_GOTDTPREL16, BFD_RELOC_ALPHA_DTPREL64, BFD_RELOC_ALPHA_DTPREL_HI16, BFD_RELOC_ALPHA_DTPREL_LO16, BFD_RELOC_ALPHA_DTPREL16, BFD_RELOC_ALPHA_GOTTPREL16, BFD_RELOC_ALPHA_TPREL64, BFD_RELOC_ALPHA_TPREL_HI16, BFD_RELOC_ALPHA_TPREL_LO16, BFD_RELOC_ALPHA_TPREL16, BFD_RELOC_MIPS_JMP, BFD_RELOC_MIPS16_JMP, BFD_RELOC_MIPS16_GPREL, BFD_RELOC_HI16, BFD_RELOC_HI16_S, BFD_RELOC_LO16, BFD_RELOC_PCREL_HI16_S, BFD_RELOC_PCREL_LO16, BFD_RELOC_MIPS_LITERAL, BFD_RELOC_MIPS_GOT16, BFD_RELOC_MIPS_CALL16, BFD_RELOC_MIPS_GOT_HI16, BFD_RELOC_MIPS_GOT_LO16, BFD_RELOC_MIPS_CALL_HI16, BFD_RELOC_MIPS_CALL_LO16, BFD_RELOC_MIPS_SUB, BFD_RELOC_MIPS_GOT_PAGE, BFD_RELOC_MIPS_GOT_OFST, BFD_RELOC_MIPS_GOT_DISP, BFD_RELOC_MIPS_SHIFT5, BFD_RELOC_MIPS_SHIFT6, BFD_RELOC_MIPS_INSERT_A, BFD_RELOC_MIPS_INSERT_B, BFD_RELOC_MIPS_DELETE, BFD_RELOC_MIPS_HIGHEST, BFD_RELOC_MIPS_HIGHER, BFD_RELOC_MIPS_SCN_DISP, BFD_RELOC_MIPS_REL16, BFD_RELOC_MIPS_RELGOT, BFD_RELOC_MIPS_JALR, BFD_RELOC_FRV_LABEL16, BFD_RELOC_FRV_LABEL24, BFD_RELOC_FRV_LO16, BFD_RELOC_FRV_HI16, BFD_RELOC_FRV_GPREL12, BFD_RELOC_FRV_GPRELU12, BFD_RELOC_FRV_GPREL32, BFD_RELOC_FRV_GPRELHI, BFD_RELOC_FRV_GPRELLO, BFD_RELOC_MN10300_GOTOFF24, BFD_RELOC_MN10300_GOT32, BFD_RELOC_MN10300_GOT24, BFD_RELOC_MN10300_GOT16, BFD_RELOC_MN10300_COPY, BFD_RELOC_MN10300_GLOB_DAT, BFD_RELOC_MN10300_JMP_SLOT, BFD_RELOC_MN10300_RELATIVE, BFD_RELOC_386_GOT32, BFD_RELOC_386_PLT32, BFD_RELOC_386_COPY, BFD_RELOC_386_GLOB_DAT, BFD_RELOC_386_JUMP_SLOT, BFD_RELOC_386_RELATIVE, BFD_RELOC_386_GOTOFF, BFD_RELOC_386_GOTPC, BFD_RELOC_386_TLS_TPOFF, BFD_RELOC_386_TLS_IE, BFD_RELOC_386_TLS_GOTIE, BFD_RELOC_386_TLS_LE, BFD_RELOC_386_TLS_GD, BFD_RELOC_386_TLS_LDM, BFD_RELOC_386_TLS_LDO_32, BFD_RELOC_386_TLS_IE_32, BFD_RELOC_386_TLS_LE_32, BFD_RELOC_386_TLS_DTPMOD32, BFD_RELOC_386_TLS_DTPOFF32, BFD_RELOC_386_TLS_TPOFF32, BFD_RELOC_X86_64_GOT32, BFD_RELOC_X86_64_PLT32, BFD_RELOC_X86_64_COPY, BFD_RELOC_X86_64_GLOB_DAT, BFD_RELOC_X86_64_JUMP_SLOT, BFD_RELOC_X86_64_RELATIVE, BFD_RELOC_X86_64_GOTPCREL, BFD_RELOC_X86_64_32S, BFD_RELOC_X86_64_DTPMOD64, BFD_RELOC_X86_64_DTPOFF64, BFD_RELOC_X86_64_TPOFF64, BFD_RELOC_X86_64_TLSGD, BFD_RELOC_X86_64_TLSLD, BFD_RELOC_X86_64_DTPOFF32, BFD_RELOC_X86_64_GOTTPOFF, BFD_RELOC_X86_64_TPOFF32, BFD_RELOC_NS32K_IMM_8, BFD_RELOC_NS32K_IMM_16, BFD_RELOC_NS32K_IMM_32, BFD_RELOC_NS32K_IMM_8_PCREL, BFD_RELOC_NS32K_IMM_16_PCREL, BFD_RELOC_NS32K_IMM_32_PCREL, BFD_RELOC_NS32K_DISP_8, BFD_RELOC_NS32K_DISP_16, BFD_RELOC_NS32K_DISP_32, BFD_RELOC_NS32K_DISP_8_PCREL, BFD_RELOC_NS32K_DISP_16_PCREL, BFD_RELOC_NS32K_DISP_32_PCREL, BFD_RELOC_PDP11_DISP_8_PCREL, BFD_RELOC_PDP11_DISP_6_PCREL, BFD_RELOC_PJ_CODE_HI16, BFD_RELOC_PJ_CODE_LO16, BFD_RELOC_PJ_CODE_DIR16, BFD_RELOC_PJ_CODE_DIR32, BFD_RELOC_PJ_CODE_REL16, BFD_RELOC_PJ_CODE_REL32, BFD_RELOC_PPC_B26, BFD_RELOC_PPC_BA26, BFD_RELOC_PPC_TOC16, BFD_RELOC_PPC_B16, BFD_RELOC_PPC_B16_BRTAKEN, BFD_RELOC_PPC_B16_BRNTAKEN, BFD_RELOC_PPC_BA16, BFD_RELOC_PPC_BA16_BRTAKEN, BFD_RELOC_PPC_BA16_BRNTAKEN, BFD_RELOC_PPC_COPY, BFD_RELOC_PPC_GLOB_DAT, BFD_RELOC_PPC_JMP_SLOT, BFD_RELOC_PPC_RELATIVE, BFD_RELOC_PPC_LOCAL24PC, BFD_RELOC_PPC_EMB_NADDR32, BFD_RELOC_PPC_EMB_NADDR16, BFD_RELOC_PPC_EMB_NADDR16_LO, BFD_RELOC_PPC_EMB_NADDR16_HI, BFD_RELOC_PPC_EMB_NADDR16_HA, BFD_RELOC_PPC_EMB_SDAI16, BFD_RELOC_PPC_EMB_SDA2I16, BFD_RELOC_PPC_EMB_SDA2REL, BFD_RELOC_PPC_EMB_SDA21, BFD_RELOC_PPC_EMB_MRKREF, BFD_RELOC_PPC_EMB_RELSEC16, BFD_RELOC_PPC_EMB_RELST_LO, BFD_RELOC_PPC_EMB_RELST_HI, BFD_RELOC_PPC_EMB_RELST_HA, BFD_RELOC_PPC_EMB_BIT_FLD, BFD_RELOC_PPC_EMB_RELSDA, BFD_RELOC_PPC64_HIGHER, BFD_RELOC_PPC64_HIGHER_S, BFD_RELOC_PPC64_HIGHEST, BFD_RELOC_PPC64_HIGHEST_S, BFD_RELOC_PPC64_TOC16_LO, BFD_RELOC_PPC64_TOC16_HI, BFD_RELOC_PPC64_TOC16_HA, BFD_RELOC_PPC64_TOC, BFD_RELOC_PPC64_PLTGOT16, BFD_RELOC_PPC64_PLTGOT16_LO, BFD_RELOC_PPC64_PLTGOT16_HI, BFD_RELOC_PPC64_PLTGOT16_HA, BFD_RELOC_PPC64_ADDR16_DS, BFD_RELOC_PPC64_ADDR16_LO_DS, BFD_RELOC_PPC64_GOT16_DS, BFD_RELOC_PPC64_GOT16_LO_DS, BFD_RELOC_PPC64_PLT16_LO_DS, BFD_RELOC_PPC64_SECTOFF_DS, BFD_RELOC_PPC64_SECTOFF_LO_DS, BFD_RELOC_PPC64_TOC16_DS, BFD_RELOC_PPC64_TOC16_LO_DS, BFD_RELOC_PPC64_PLTGOT16_DS, BFD_RELOC_PPC64_PLTGOT16_LO_DS, BFD_RELOC_PPC_TLS, BFD_RELOC_PPC_DTPMOD, BFD_RELOC_PPC_TPREL16, BFD_RELOC_PPC_TPREL16_LO, BFD_RELOC_PPC_TPREL16_HI, BFD_RELOC_PPC_TPREL16_HA, BFD_RELOC_PPC_TPREL, BFD_RELOC_PPC_DTPREL16, BFD_RELOC_PPC_DTPREL16_LO, BFD_RELOC_PPC_DTPREL16_HI, BFD_RELOC_PPC_DTPREL16_HA, BFD_RELOC_PPC_DTPREL, BFD_RELOC_PPC_GOT_TLSGD16, BFD_RELOC_PPC_GOT_TLSGD16_LO, BFD_RELOC_PPC_GOT_TLSGD16_HI, BFD_RELOC_PPC_GOT_TLSGD16_HA, BFD_RELOC_PPC_GOT_TLSLD16, BFD_RELOC_PPC_GOT_TLSLD16_LO, BFD_RELOC_PPC_GOT_TLSLD16_HI, BFD_RELOC_PPC_GOT_TLSLD16_HA, BFD_RELOC_PPC_GOT_TPREL16, BFD_RELOC_PPC_GOT_TPREL16_LO, BFD_RELOC_PPC_GOT_TPREL16_HI, BFD_RELOC_PPC_GOT_TPREL16_HA, BFD_RELOC_PPC_GOT_DTPREL16, BFD_RELOC_PPC_GOT_DTPREL16_LO, BFD_RELOC_PPC_GOT_DTPREL16_HI, BFD_RELOC_PPC_GOT_DTPREL16_HA, BFD_RELOC_PPC64_TPREL16_DS, BFD_RELOC_PPC64_TPREL16_LO_DS, BFD_RELOC_PPC64_TPREL16_HIGHER, BFD_RELOC_PPC64_TPREL16_HIGHERA, BFD_RELOC_PPC64_TPREL16_HIGHEST, BFD_RELOC_PPC64_TPREL16_HIGHESTA, BFD_RELOC_PPC64_DTPREL16_DS, BFD_RELOC_PPC64_DTPREL16_LO_DS, BFD_RELOC_PPC64_DTPREL16_HIGHER, BFD_RELOC_PPC64_DTPREL16_HIGHERA, BFD_RELOC_PPC64_DTPREL16_HIGHEST, BFD_RELOC_PPC64_DTPREL16_HIGHESTA, BFD_RELOC_I370_D12, BFD_RELOC_CTOR, BFD_RELOC_ARM_PCREL_BRANCH, BFD_RELOC_ARM_PCREL_BLX, BFD_RELOC_THUMB_PCREL_BLX, BFD_RELOC_ARM_IMMEDIATE, BFD_RELOC_ARM_ADRL_IMMEDIATE, BFD_RELOC_ARM_OFFSET_IMM, BFD_RELOC_ARM_SHIFT_IMM, BFD_RELOC_ARM_SWI, BFD_RELOC_ARM_MULTI, BFD_RELOC_ARM_CP_OFF_IMM, BFD_RELOC_ARM_CP_OFF_IMM_S2, BFD_RELOC_ARM_ADR_IMM, BFD_RELOC_ARM_LDR_IMM, BFD_RELOC_ARM_LITERAL, BFD_RELOC_ARM_IN_POOL, BFD_RELOC_ARM_OFFSET_IMM8, BFD_RELOC_ARM_HWLITERAL, BFD_RELOC_ARM_THUMB_ADD, BFD_RELOC_ARM_THUMB_IMM, BFD_RELOC_ARM_THUMB_SHIFT, BFD_RELOC_ARM_THUMB_OFFSET, BFD_RELOC_ARM_GOT12, BFD_RELOC_ARM_GOT32, BFD_RELOC_ARM_JUMP_SLOT, BFD_RELOC_ARM_COPY, BFD_RELOC_ARM_GLOB_DAT, BFD_RELOC_ARM_PLT32, BFD_RELOC_ARM_RELATIVE, BFD_RELOC_ARM_GOTOFF, BFD_RELOC_ARM_GOTPC, BFD_RELOC_SH_PCDISP8BY2, BFD_RELOC_SH_PCDISP12BY2, BFD_RELOC_SH_IMM4, BFD_RELOC_SH_IMM4BY2, BFD_RELOC_SH_IMM4BY4, BFD_RELOC_SH_IMM8, BFD_RELOC_SH_IMM8BY2, BFD_RELOC_SH_IMM8BY4, BFD_RELOC_SH_PCRELIMM8BY2, BFD_RELOC_SH_PCRELIMM8BY4, BFD_RELOC_SH_SWITCH16, BFD_RELOC_SH_SWITCH32, BFD_RELOC_SH_USES, BFD_RELOC_SH_COUNT, BFD_RELOC_SH_ALIGN, BFD_RELOC_SH_CODE, BFD_RELOC_SH_DATA, BFD_RELOC_SH_LABEL, BFD_RELOC_SH_LOOP_START, BFD_RELOC_SH_LOOP_END, BFD_RELOC_SH_COPY, BFD_RELOC_SH_GLOB_DAT, BFD_RELOC_SH_JMP_SLOT, BFD_RELOC_SH_RELATIVE, BFD_RELOC_SH_GOTPC, BFD_RELOC_SH_GOT_LOW16, BFD_RELOC_SH_GOT_MEDLOW16, BFD_RELOC_SH_GOT_MEDHI16, BFD_RELOC_SH_GOT_HI16, BFD_RELOC_SH_GOTPLT_LOW16, BFD_RELOC_SH_GOTPLT_MEDLOW16, BFD_RELOC_SH_GOTPLT_MEDHI16, BFD_RELOC_SH_GOTPLT_HI16, BFD_RELOC_SH_PLT_LOW16, BFD_RELOC_SH_PLT_MEDLOW16, BFD_RELOC_SH_PLT_MEDHI16, BFD_RELOC_SH_PLT_HI16, BFD_RELOC_SH_GOTOFF_LOW16, BFD_RELOC_SH_GOTOFF_MEDLOW16, BFD_RELOC_SH_GOTOFF_MEDHI16, BFD_RELOC_SH_GOTOFF_HI16, BFD_RELOC_SH_GOTPC_LOW16, BFD_RELOC_SH_GOTPC_MEDLOW16, BFD_RELOC_SH_GOTPC_MEDHI16, BFD_RELOC_SH_GOTPC_HI16, BFD_RELOC_SH_COPY64, BFD_RELOC_SH_GLOB_DAT64, BFD_RELOC_SH_JMP_SLOT64, BFD_RELOC_SH_RELATIVE64, BFD_RELOC_SH_GOT10BY4, BFD_RELOC_SH_GOT10BY8, BFD_RELOC_SH_GOTPLT10BY4, BFD_RELOC_SH_GOTPLT10BY8, BFD_RELOC_SH_GOTPLT32, BFD_RELOC_SH_SHMEDIA_CODE, BFD_RELOC_SH_IMMU5, BFD_RELOC_SH_IMMS6, BFD_RELOC_SH_IMMS6BY32, BFD_RELOC_SH_IMMU6, BFD_RELOC_SH_IMMS10, BFD_RELOC_SH_IMMS10BY2, BFD_RELOC_SH_IMMS10BY4, BFD_RELOC_SH_IMMS10BY8, BFD_RELOC_SH_IMMS16, BFD_RELOC_SH_IMMU16, BFD_RELOC_SH_IMM_LOW16, BFD_RELOC_SH_IMM_LOW16_PCREL, BFD_RELOC_SH_IMM_MEDLOW16, BFD_RELOC_SH_IMM_MEDLOW16_PCREL, BFD_RELOC_SH_IMM_MEDHI16, BFD_RELOC_SH_IMM_MEDHI16_PCREL, BFD_RELOC_SH_IMM_HI16, BFD_RELOC_SH_IMM_HI16_PCREL, BFD_RELOC_SH_PT_16, BFD_RELOC_SH_TLS_GD_32, BFD_RELOC_SH_TLS_LD_32, BFD_RELOC_SH_TLS_LDO_32, BFD_RELOC_SH_TLS_IE_32, BFD_RELOC_SH_TLS_LE_32, BFD_RELOC_SH_TLS_DTPMOD32, BFD_RELOC_SH_TLS_DTPOFF32, BFD_RELOC_SH_TLS_TPOFF32, BFD_RELOC_THUMB_PCREL_BRANCH9, BFD_RELOC_THUMB_PCREL_BRANCH12, BFD_RELOC_THUMB_PCREL_BRANCH23, BFD_RELOC_ARC_B22_PCREL, BFD_RELOC_ARC_B26, BFD_RELOC_D10V_10_PCREL_R, BFD_RELOC_D10V_10_PCREL_L, BFD_RELOC_D10V_18, BFD_RELOC_D10V_18_PCREL, BFD_RELOC_D30V_6, BFD_RELOC_D30V_9_PCREL, BFD_RELOC_D30V_9_PCREL_R, BFD_RELOC_D30V_15, BFD_RELOC_D30V_15_PCREL, BFD_RELOC_D30V_15_PCREL_R, BFD_RELOC_D30V_21, BFD_RELOC_D30V_21_PCREL, BFD_RELOC_D30V_21_PCREL_R, BFD_RELOC_D30V_32, BFD_RELOC_D30V_32_PCREL, BFD_RELOC_DLX_HI16_S, BFD_RELOC_DLX_LO16, BFD_RELOC_DLX_JMP26, BFD_RELOC_M32R_24, BFD_RELOC_M32R_10_PCREL, BFD_RELOC_M32R_18_PCREL, BFD_RELOC_M32R_26_PCREL, BFD_RELOC_M32R_HI16_ULO, BFD_RELOC_M32R_HI16_SLO, BFD_RELOC_M32R_LO16, BFD_RELOC_M32R_SDA16, BFD_RELOC_V850_9_PCREL, BFD_RELOC_V850_22_PCREL, BFD_RELOC_V850_SDA_16_16_OFFSET, BFD_RELOC_V850_SDA_15_16_OFFSET, BFD_RELOC_V850_ZDA_16_16_OFFSET, BFD_RELOC_V850_ZDA_15_16_OFFSET, BFD_RELOC_V850_TDA_6_8_OFFSET, BFD_RELOC_V850_TDA_7_8_OFFSET, BFD_RELOC_V850_TDA_7_7_OFFSET, BFD_RELOC_V850_TDA_16_16_OFFSET, BFD_RELOC_V850_TDA_4_5_OFFSET, BFD_RELOC_V850_TDA_4_4_OFFSET, BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET, BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET, BFD_RELOC_V850_CALLT_6_7_OFFSET, BFD_RELOC_V850_CALLT_16_16_OFFSET, BFD_RELOC_V850_LONGCALL, BFD_RELOC_V850_LONGJUMP, BFD_RELOC_V850_ALIGN, BFD_RELOC_MN10300_32_PCREL, BFD_RELOC_MN10300_16_PCREL, BFD_RELOC_TIC30_LDP, BFD_RELOC_TIC54X_PARTLS7, BFD_RELOC_TIC54X_PARTMS9, BFD_RELOC_TIC54X_23, BFD_RELOC_TIC54X_16_OF_23, BFD_RELOC_TIC54X_MS7_OF_23, BFD_RELOC_FR30_48, BFD_RELOC_FR30_20, BFD_RELOC_FR30_6_IN_4, BFD_RELOC_FR30_8_IN_8, BFD_RELOC_FR30_9_IN_8, BFD_RELOC_FR30_10_IN_8, BFD_RELOC_FR30_9_PCREL, BFD_RELOC_FR30_12_PCREL, BFD_RELOC_MCORE_PCREL_IMM8BY4, BFD_RELOC_MCORE_PCREL_IMM11BY2, BFD_RELOC_MCORE_PCREL_IMM4BY2, BFD_RELOC_MCORE_PCREL_32, BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2, BFD_RELOC_MCORE_RVA, BFD_RELOC_MMIX_GETA, BFD_RELOC_MMIX_GETA_1, BFD_RELOC_MMIX_GETA_2, BFD_RELOC_MMIX_GETA_3, BFD_RELOC_MMIX_CBRANCH, BFD_RELOC_MMIX_CBRANCH_J, BFD_RELOC_MMIX_CBRANCH_1, BFD_RELOC_MMIX_CBRANCH_2, BFD_RELOC_MMIX_CBRANCH_3, BFD_RELOC_MMIX_PUSHJ, BFD_RELOC_MMIX_PUSHJ_1, BFD_RELOC_MMIX_PUSHJ_2, BFD_RELOC_MMIX_PUSHJ_3, BFD_RELOC_MMIX_PUSHJ_STUBBABLE, BFD_RELOC_MMIX_JMP, BFD_RELOC_MMIX_JMP_1, BFD_RELOC_MMIX_JMP_2, BFD_RELOC_MMIX_JMP_3, BFD_RELOC_MMIX_ADDR19, BFD_RELOC_MMIX_ADDR27, BFD_RELOC_MMIX_REG_OR_BYTE, BFD_RELOC_MMIX_REG, BFD_RELOC_MMIX_BASE_PLUS_OFFSET, BFD_RELOC_MMIX_LOCAL, BFD_RELOC_AVR_7_PCREL, BFD_RELOC_AVR_13_PCREL, BFD_RELOC_AVR_16_PM, BFD_RELOC_AVR_LO8_LDI, BFD_RELOC_AVR_HI8_LDI, BFD_RELOC_AVR_HH8_LDI, BFD_RELOC_AVR_LO8_LDI_NEG, BFD_RELOC_AVR_HI8_LDI_NEG, BFD_RELOC_AVR_HH8_LDI_NEG, BFD_RELOC_AVR_LO8_LDI_PM, BFD_RELOC_AVR_HI8_LDI_PM, BFD_RELOC_AVR_HH8_LDI_PM, BFD_RELOC_AVR_LO8_LDI_PM_NEG, BFD_RELOC_AVR_HI8_LDI_PM_NEG, BFD_RELOC_AVR_HH8_LDI_PM_NEG, BFD_RELOC_AVR_CALL, BFD_RELOC_390_12, BFD_RELOC_390_GOT12, BFD_RELOC_390_PLT32, BFD_RELOC_390_COPY, BFD_RELOC_390_GLOB_DAT, BFD_RELOC_390_JMP_SLOT, BFD_RELOC_390_RELATIVE, BFD_RELOC_390_GOTPC, BFD_RELOC_390_GOT16, BFD_RELOC_390_PC16DBL, BFD_RELOC_390_PLT16DBL, BFD_RELOC_390_PC32DBL, BFD_RELOC_390_PLT32DBL, BFD_RELOC_390_GOTPCDBL, BFD_RELOC_390_GOT64, BFD_RELOC_390_PLT64, BFD_RELOC_390_GOTENT, BFD_RELOC_390_GOTOFF64, BFD_RELOC_390_GOTPLT12, BFD_RELOC_390_GOTPLT16, BFD_RELOC_390_GOTPLT32, BFD_RELOC_390_GOTPLT64, BFD_RELOC_390_GOTPLTENT, BFD_RELOC_390_PLTOFF16, BFD_RELOC_390_PLTOFF32, BFD_RELOC_390_PLTOFF64, BFD_RELOC_390_TLS_LOAD, BFD_RELOC_390_TLS_GDCALL, BFD_RELOC_390_TLS_LDCALL, BFD_RELOC_390_TLS_GD32, BFD_RELOC_390_TLS_GD64, BFD_RELOC_390_TLS_GOTIE12, BFD_RELOC_390_TLS_GOTIE32, BFD_RELOC_390_TLS_GOTIE64, BFD_RELOC_390_TLS_LDM32, BFD_RELOC_390_TLS_LDM64, BFD_RELOC_390_TLS_IE32, BFD_RELOC_390_TLS_IE64, BFD_RELOC_390_TLS_IEENT, BFD_RELOC_390_TLS_LE32, BFD_RELOC_390_TLS_LE64, BFD_RELOC_390_TLS_LDO32, BFD_RELOC_390_TLS_LDO64, BFD_RELOC_390_TLS_DTPMOD, BFD_RELOC_390_TLS_DTPOFF, BFD_RELOC_390_TLS_TPOFF, BFD_RELOC_390_20, BFD_RELOC_390_GOT20, BFD_RELOC_390_GOTPLT20, BFD_RELOC_390_TLS_GOTIE20, BFD_RELOC_IP2K_FR9, BFD_RELOC_IP2K_BANK, BFD_RELOC_IP2K_ADDR16CJP, BFD_RELOC_IP2K_PAGE3, BFD_RELOC_IP2K_LO8DATA, BFD_RELOC_IP2K_HI8DATA, BFD_RELOC_IP2K_EX8DATA, BFD_RELOC_IP2K_LO8INSN, BFD_RELOC_IP2K_HI8INSN, BFD_RELOC_IP2K_PC_SKIP, BFD_RELOC_IP2K_TEXT, BFD_RELOC_IP2K_FR_OFFSET, BFD_RELOC_VPE4KMATH_DATA, BFD_RELOC_VPE4KMATH_INSN, # 3222 "bfd.h" BFD_RELOC_VTABLE_INHERIT, BFD_RELOC_VTABLE_ENTRY, BFD_RELOC_IA64_IMM14, BFD_RELOC_IA64_IMM22, BFD_RELOC_IA64_IMM64, BFD_RELOC_IA64_DIR32MSB, BFD_RELOC_IA64_DIR32LSB, BFD_RELOC_IA64_DIR64MSB, BFD_RELOC_IA64_DIR64LSB, BFD_RELOC_IA64_GPREL22, BFD_RELOC_IA64_GPREL64I, BFD_RELOC_IA64_GPREL32MSB, BFD_RELOC_IA64_GPREL32LSB, BFD_RELOC_IA64_GPREL64MSB, BFD_RELOC_IA64_GPREL64LSB, BFD_RELOC_IA64_LTOFF22, BFD_RELOC_IA64_LTOFF64I, BFD_RELOC_IA64_PLTOFF22, BFD_RELOC_IA64_PLTOFF64I, BFD_RELOC_IA64_PLTOFF64MSB, BFD_RELOC_IA64_PLTOFF64LSB, BFD_RELOC_IA64_FPTR64I, BFD_RELOC_IA64_FPTR32MSB, BFD_RELOC_IA64_FPTR32LSB, BFD_RELOC_IA64_FPTR64MSB, BFD_RELOC_IA64_FPTR64LSB, BFD_RELOC_IA64_PCREL21B, BFD_RELOC_IA64_PCREL21BI, BFD_RELOC_IA64_PCREL21M, BFD_RELOC_IA64_PCREL21F, BFD_RELOC_IA64_PCREL22, BFD_RELOC_IA64_PCREL60B, BFD_RELOC_IA64_PCREL64I, BFD_RELOC_IA64_PCREL32MSB, BFD_RELOC_IA64_PCREL32LSB, BFD_RELOC_IA64_PCREL64MSB, BFD_RELOC_IA64_PCREL64LSB, BFD_RELOC_IA64_LTOFF_FPTR22, BFD_RELOC_IA64_LTOFF_FPTR64I, BFD_RELOC_IA64_LTOFF_FPTR32MSB, BFD_RELOC_IA64_LTOFF_FPTR32LSB, BFD_RELOC_IA64_LTOFF_FPTR64MSB, BFD_RELOC_IA64_LTOFF_FPTR64LSB, BFD_RELOC_IA64_SEGREL32MSB, BFD_RELOC_IA64_SEGREL32LSB, BFD_RELOC_IA64_SEGREL64MSB, BFD_RELOC_IA64_SEGREL64LSB, BFD_RELOC_IA64_SECREL32MSB, BFD_RELOC_IA64_SECREL32LSB, BFD_RELOC_IA64_SECREL64MSB, BFD_RELOC_IA64_SECREL64LSB, BFD_RELOC_IA64_REL32MSB, BFD_RELOC_IA64_REL32LSB, BFD_RELOC_IA64_REL64MSB, BFD_RELOC_IA64_REL64LSB, BFD_RELOC_IA64_LTV32MSB, BFD_RELOC_IA64_LTV32LSB, BFD_RELOC_IA64_LTV64MSB, BFD_RELOC_IA64_LTV64LSB, BFD_RELOC_IA64_IPLTMSB, BFD_RELOC_IA64_IPLTLSB, BFD_RELOC_IA64_COPY, BFD_RELOC_IA64_LTOFF22X, BFD_RELOC_IA64_LDXMOV, BFD_RELOC_IA64_TPREL14, BFD_RELOC_IA64_TPREL22, BFD_RELOC_IA64_TPREL64I, BFD_RELOC_IA64_TPREL64MSB, BFD_RELOC_IA64_TPREL64LSB, BFD_RELOC_IA64_LTOFF_TPREL22, BFD_RELOC_IA64_DTPMOD64MSB, BFD_RELOC_IA64_DTPMOD64LSB, BFD_RELOC_IA64_LTOFF_DTPMOD22, BFD_RELOC_IA64_DTPREL14, BFD_RELOC_IA64_DTPREL22, BFD_RELOC_IA64_DTPREL64I, BFD_RELOC_IA64_DTPREL32MSB, BFD_RELOC_IA64_DTPREL32LSB, BFD_RELOC_IA64_DTPREL64MSB, BFD_RELOC_IA64_DTPREL64LSB, BFD_RELOC_IA64_LTOFF_DTPREL22, BFD_RELOC_M68HC11_HI8, BFD_RELOC_M68HC11_LO8, BFD_RELOC_M68HC11_3B, BFD_RELOC_M68HC11_RL_JUMP, BFD_RELOC_M68HC11_RL_GROUP, BFD_RELOC_M68HC11_LO16, BFD_RELOC_M68HC11_PAGE, BFD_RELOC_M68HC11_24, BFD_RELOC_CRIS_BDISP8, BFD_RELOC_CRIS_UNSIGNED_5, BFD_RELOC_CRIS_SIGNED_6, BFD_RELOC_CRIS_UNSIGNED_6, BFD_RELOC_CRIS_UNSIGNED_4, BFD_RELOC_CRIS_COPY, BFD_RELOC_CRIS_GLOB_DAT, BFD_RELOC_CRIS_JUMP_SLOT, BFD_RELOC_CRIS_RELATIVE, BFD_RELOC_CRIS_32_GOT, BFD_RELOC_CRIS_16_GOT, BFD_RELOC_CRIS_32_GOTPLT, BFD_RELOC_CRIS_16_GOTPLT, BFD_RELOC_CRIS_32_GOTREL, BFD_RELOC_CRIS_32_PLT_GOTREL, BFD_RELOC_CRIS_32_PLT_PCREL, BFD_RELOC_860_COPY, BFD_RELOC_860_GLOB_DAT, BFD_RELOC_860_JUMP_SLOT, BFD_RELOC_860_RELATIVE, BFD_RELOC_860_PC26, BFD_RELOC_860_PLT26, BFD_RELOC_860_PC16, BFD_RELOC_860_LOW0, BFD_RELOC_860_SPLIT0, BFD_RELOC_860_LOW1, BFD_RELOC_860_SPLIT1, BFD_RELOC_860_LOW2, BFD_RELOC_860_SPLIT2, BFD_RELOC_860_LOW3, BFD_RELOC_860_LOGOT0, BFD_RELOC_860_SPGOT0, BFD_RELOC_860_LOGOT1, BFD_RELOC_860_SPGOT1, BFD_RELOC_860_LOGOTOFF0, BFD_RELOC_860_SPGOTOFF0, BFD_RELOC_860_LOGOTOFF1, BFD_RELOC_860_SPGOTOFF1, BFD_RELOC_860_LOGOTOFF2, BFD_RELOC_860_LOGOTOFF3, BFD_RELOC_860_LOPC, BFD_RELOC_860_HIGHADJ, BFD_RELOC_860_HAGOT, BFD_RELOC_860_HAGOTOFF, BFD_RELOC_860_HAPC, BFD_RELOC_860_HIGH, BFD_RELOC_860_HIGOT, BFD_RELOC_860_HIGOTOFF, BFD_RELOC_OPENRISC_ABS_26, BFD_RELOC_OPENRISC_REL_26, BFD_RELOC_H8_DIR16A8, BFD_RELOC_H8_DIR16R8, BFD_RELOC_H8_DIR24A8, BFD_RELOC_H8_DIR24R8, BFD_RELOC_H8_DIR32A16, BFD_RELOC_XSTORMY16_REL_12, BFD_RELOC_XSTORMY16_12, BFD_RELOC_XSTORMY16_24, BFD_RELOC_XSTORMY16_FPTR16, BFD_RELOC_VAX_GLOB_DAT, BFD_RELOC_VAX_JMP_SLOT, BFD_RELOC_VAX_RELATIVE, BFD_RELOC_MSP430_10_PCREL, BFD_RELOC_MSP430_16_PCREL, BFD_RELOC_MSP430_16, BFD_RELOC_MSP430_16_PCREL_BYTE, BFD_RELOC_MSP430_16_BYTE, BFD_RELOC_IQ2000_OFFSET_16, BFD_RELOC_IQ2000_OFFSET_21, BFD_RELOC_IQ2000_UHI16, BFD_RELOC_XTENSA_RTLD, BFD_RELOC_XTENSA_GLOB_DAT, BFD_RELOC_XTENSA_JMP_SLOT, BFD_RELOC_XTENSA_RELATIVE, BFD_RELOC_XTENSA_PLT, BFD_RELOC_XTENSA_OP0, BFD_RELOC_XTENSA_OP1, BFD_RELOC_XTENSA_OP2, BFD_RELOC_XTENSA_ASM_EXPAND, BFD_RELOC_XTENSA_ASM_SIMPLIFY, BFD_RELOC_UNUSED }; typedef enum bfd_reloc_code_real bfd_reloc_code_real_type; reloc_howto_type *bfd_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code); const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code); typedef struct symbol_cache_entry { # 3503 "bfd.h" struct bfd *the_bfd; const char *name; symvalue value; # 3599 "bfd.h" flagword flags; struct bfd_section *section; union { void *p; bfd_vma i; } udata; } asymbol; bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym); bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name); bfd_boolean bfd_set_symtab (bfd *abfd, asymbol **location, unsigned int count); void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol); asymbol *_bfd_generic_make_empty_symbol (bfd *); int bfd_decode_symclass (asymbol *symbol); bfd_boolean bfd_is_undefined_symclass (int symclass); void bfd_symbol_info (asymbol *symbol, symbol_info *ret); bfd_boolean bfd_copy_private_symbol_data (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym); struct bfd { unsigned int id; const char *filename; const struct bfd_target *xvec; # 3674 "bfd.h" void *iostream; bfd_boolean cacheable; bfd_boolean target_defaulted; struct bfd *lru_prev, *lru_next; ufile_ptr where; bfd_boolean opened_once; bfd_boolean mtime_set; long mtime; int ifd; bfd_format format; enum bfd_direction { no_direction = 0, read_direction = 1, write_direction = 2, both_direction = 3 } direction; flagword flags; ufile_ptr origin; bfd_boolean output_has_begun; struct bfd_hash_table section_htab; struct bfd_section *sections; struct bfd_section **section_tail; unsigned int section_count; bfd_vma start_address; unsigned int symcount; struct symbol_cache_entry **outsymbols; unsigned int dynsymcount; const struct bfd_arch_info *arch_info; void *arelt_data; struct bfd *my_archive; struct bfd *next; struct bfd *archive_head; bfd_boolean has_armap; struct bfd *link_next; int archive_pass; union { struct aout_data_struct *aout_data; struct artdata *aout_ar_data; struct _oasys_data *oasys_obj_data; struct _oasys_ar_data *oasys_ar_data; struct coff_tdata *coff_obj_data; struct pe_tdata *pe_obj_data; struct xcoff_tdata *xcoff_obj_data; struct ecoff_tdata *ecoff_obj_data; struct ieee_data_struct *ieee_data; struct ieee_ar_data_struct *ieee_ar_data; struct srec_data_struct *srec_data; struct ihex_data_struct *ihex_data; struct tekhex_data_struct *tekhex_data; struct elf_obj_tdata *elf_obj_data; struct nlm_obj_tdata *nlm_obj_data; struct bout_data_struct *bout_data; struct mmo_data_struct *mmo_data; struct sun_core_struct *sun_core_data; struct sco5_core_struct *sco5_core_data; struct trad_core_struct *trad_core_data; struct som_data_struct *som_data; struct hpux_core_struct *hpux_core_data; struct hppabsd_core_struct *hppabsd_core_data; struct sgi_core_struct *sgi_core_data; struct lynx_core_struct *lynx_core_data; struct osf_core_struct *osf_core_data; struct cisco_core_struct *cisco_core_data; struct versados_data_struct *versados_data; struct netbsd_core_struct *netbsd_core_data; struct mach_o_data_struct *mach_o_data; struct mach_o_fat_data_struct *mach_o_fat_data; struct bfd_pef_data_struct *pef_data; struct bfd_pef_xlib_data_struct *pef_xlib_data; struct bfd_sym_data_struct *sym_data; void *any; } tdata; void *usrdata; void *memory; }; typedef enum bfd_error { bfd_error_no_error = 0, bfd_error_system_call, bfd_error_invalid_target, bfd_error_wrong_format, bfd_error_wrong_object_format, bfd_error_invalid_operation, bfd_error_no_memory, bfd_error_no_symbols, bfd_error_no_armap, bfd_error_no_more_archived_files, bfd_error_malformed_archive, bfd_error_file_not_recognized, bfd_error_file_ambiguously_recognized, bfd_error_no_contents, bfd_error_nonrepresentable_section, bfd_error_no_debug_section, bfd_error_bad_value, bfd_error_file_truncated, bfd_error_file_too_big, bfd_error_invalid_error_code } bfd_error_type; bfd_error_type bfd_get_error (void); void bfd_set_error (bfd_error_type error_tag); const char *bfd_errmsg (bfd_error_type error_tag); void bfd_perror (const char *message); typedef void (*bfd_error_handler_type) (const char *, ...); bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type); void bfd_set_error_program_name (const char *); bfd_error_handler_type bfd_get_error_handler (void); const char *bfd_archive_filename (bfd *); long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect); long bfd_canonicalize_reloc (bfd *abfd, asection *sec, arelent **loc, asymbol **syms); void bfd_set_reloc (bfd *abfd, asection *sec, arelent **rel, unsigned int count); bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags); int bfd_get_arch_size (bfd *abfd); int bfd_get_sign_extend_vma (bfd *abfd); bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma); unsigned int bfd_get_gp_size (bfd *abfd); void bfd_set_gp_size (bfd *abfd, unsigned int i); bfd_vma bfd_scan_vma (const char *string, const char **end, int base); bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd); bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd); bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags); # 3972 "bfd.h" extern bfd_byte *bfd_get_relocated_section_contents (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, bfd_boolean, asymbol **); bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative); struct bfd_preserve { void *marker; void *tdata; flagword flags; const struct bfd_arch_info *arch_info; struct bfd_section *sections; struct bfd_section **section_tail; unsigned int section_count; struct bfd_hash_table section_htab; }; bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *); void bfd_preserve_restore (bfd *, struct bfd_preserve *); void bfd_preserve_finish (bfd *, struct bfd_preserve *); symindex bfd_get_next_mapent (bfd *abfd, symindex previous, carsym **sym); bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head); bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous); const char *bfd_core_file_failing_command (bfd *abfd); int bfd_core_file_failing_signal (bfd *abfd); bfd_boolean core_file_matches_executable_p (bfd *core_bfd, bfd *exec_bfd); # 4034 "bfd.h" enum bfd_flavour { bfd_target_unknown_flavour, bfd_target_aout_flavour, bfd_target_coff_flavour, bfd_target_ecoff_flavour, bfd_target_xcoff_flavour, bfd_target_elf_flavour, bfd_target_ieee_flavour, bfd_target_nlm_flavour, bfd_target_oasys_flavour, bfd_target_tekhex_flavour, bfd_target_srec_flavour, bfd_target_ihex_flavour, bfd_target_som_flavour, bfd_target_os9k_flavour, bfd_target_versados_flavour, bfd_target_msdos_flavour, bfd_target_ovax_flavour, bfd_target_evax_flavour, bfd_target_mmo_flavour, bfd_target_mach_o_flavour, bfd_target_pef_flavour, bfd_target_pef_xlib_flavour, bfd_target_sym_flavour }; enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN }; typedef struct bfd_link_info _bfd_link_info; typedef struct bfd_target { char *name; enum bfd_flavour flavour; enum bfd_endian byteorder; enum bfd_endian header_byteorder; flagword object_flags; flagword section_flags; char symbol_leading_char; char ar_pad_char; unsigned short ar_max_namelen; bfd_vma (*bfd_getx64) (const bfd_byte *); bfd_signed_vma (*bfd_getx_signed_64) (const bfd_byte *); void (*bfd_putx64) (bfd_vma, bfd_byte *); bfd_vma (*bfd_getx32) (const bfd_byte *); bfd_signed_vma (*bfd_getx_signed_32) (const bfd_byte *); void (*bfd_putx32) (bfd_vma, bfd_byte *); bfd_vma (*bfd_getx16) (const bfd_byte *); bfd_signed_vma (*bfd_getx_signed_16) (const bfd_byte *); void (*bfd_putx16) (bfd_vma, bfd_byte *); bfd_vma (*bfd_h_getx64) (const bfd_byte *); bfd_signed_vma (*bfd_h_getx_signed_64) (const bfd_byte *); void (*bfd_h_putx64) (bfd_vma, bfd_byte *); bfd_vma (*bfd_h_getx32) (const bfd_byte *); bfd_signed_vma (*bfd_h_getx_signed_32) (const bfd_byte *); void (*bfd_h_putx32) (bfd_vma, bfd_byte *); bfd_vma (*bfd_h_getx16) (const bfd_byte *); bfd_signed_vma (*bfd_h_getx_signed_16) (const bfd_byte *); void (*bfd_h_putx16) (bfd_vma, bfd_byte *); const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *); bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *); bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *); # 4145 "bfd.h" bfd_boolean (*_close_and_cleanup) (bfd *); bfd_boolean (*_bfd_free_cached_info) (bfd *); bfd_boolean (*_new_section_hook) (bfd *, sec_ptr); bfd_boolean (*_bfd_get_section_contents) (bfd *, sec_ptr, void *, file_ptr, bfd_size_type); bfd_boolean (*_bfd_get_section_contents_in_window) (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type); # 4167 "bfd.h" bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *); bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *); bfd_boolean (*_bfd_copy_private_section_data) (bfd *, sec_ptr, bfd *, sec_ptr); bfd_boolean (*_bfd_copy_private_symbol_data) (bfd *, asymbol *, bfd *, asymbol *); bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword); bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *); char * (*_core_file_failing_command) (bfd *); int (*_core_file_failing_signal) (bfd *); bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *); # 4208 "bfd.h" bfd_boolean (*_bfd_slurp_armap) (bfd *); bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *); bfd_boolean (*_bfd_construct_extended_name_table) (bfd *, char **, bfd_size_type *, const char **); void (*_bfd_truncate_arname) (bfd *, const char *, char *); bfd_boolean (*write_armap) (bfd *, unsigned int, struct orl *, unsigned int, int); void * (*_bfd_read_ar_hdr_fn) (bfd *); bfd * (*openr_next_archived_file) (bfd *, bfd *); bfd * (*_bfd_get_elt_at_index) (bfd *, symindex); int (*_bfd_stat_arch_elt) (bfd *, struct stat *); bfd_boolean (*_bfd_update_armap_timestamp) (bfd *); # 4236 "bfd.h" long (*_bfd_get_symtab_upper_bound) (bfd *); long (*_bfd_canonicalize_symtab) (bfd *, struct symbol_cache_entry **); struct symbol_cache_entry * (*_bfd_make_empty_symbol) (bfd *); void (*_bfd_print_symbol) (bfd *, void *, struct symbol_cache_entry *, bfd_print_symbol_type); void (*_bfd_get_symbol_info) (bfd *, struct symbol_cache_entry *, symbol_info *); bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *); alent * (*_get_lineno) (bfd *, struct symbol_cache_entry *); bfd_boolean (*_bfd_find_nearest_line) (bfd *, struct bfd_section *, struct symbol_cache_entry **, bfd_vma, const char **, const char **, unsigned int *); asymbol * (*_bfd_make_debug_symbol) (bfd *, void *, unsigned long size); long (*_read_minisymbols) (bfd *, bfd_boolean, void **, unsigned int *); asymbol * (*_minisymbol_to_symbol) (bfd *, bfd_boolean, const void *, asymbol *); long (*_get_reloc_upper_bound) (bfd *, sec_ptr); long (*_bfd_canonicalize_reloc) (bfd *, sec_ptr, arelent **, struct symbol_cache_entry **); reloc_howto_type * (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type); bfd_boolean (*_bfd_set_arch_mach) (bfd *, enum bfd_architecture, unsigned long); bfd_boolean (*_bfd_set_section_contents) (bfd *, sec_ptr, void *, file_ptr, bfd_size_type); # 4305 "bfd.h" int (*_bfd_sizeof_headers) (bfd *, bfd_boolean); bfd_byte * (*_bfd_get_relocated_section_contents) (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, bfd_boolean, struct symbol_cache_entry **); bfd_boolean (*_bfd_relax_section) (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *); struct bfd_link_hash_table * (*_bfd_link_hash_table_create) (bfd *); void (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *); bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *); void (*_bfd_link_just_syms) (asection *, struct bfd_link_info *); bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *); bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *); bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *); bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *); bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *); # 4351 "bfd.h" long (*_bfd_get_dynamic_symtab_upper_bound) (bfd *); long (*_bfd_canonicalize_dynamic_symtab) (bfd *, struct symbol_cache_entry **); long (*_bfd_get_dynamic_reloc_upper_bound) (bfd *); long (*_bfd_canonicalize_dynamic_reloc) (bfd *, arelent **, struct symbol_cache_entry **); const struct bfd_target * alternative_target; const void *backend_data; } bfd_target; bfd_boolean bfd_set_default_target (const char *name); const bfd_target *bfd_find_target (const char *target_name, bfd *abfd); const char ** bfd_target_list (void); const bfd_target *bfd_search_for_target (int (*search_func) (const bfd_target *, void *), void *); bfd_boolean bfd_check_format (bfd *abfd, bfd_format format); bfd_boolean bfd_check_format_matches (bfd *abfd, bfd_format format, char ***matching); bfd_boolean bfd_set_format (bfd *abfd, bfd_format format); const char *bfd_format_string (bfd_format format); bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec); bfd_byte *bfd_simple_get_relocated_section_contents (bfd *abfd, asection *sec, bfd_byte *outbuf, asymbol **symbol_table); # 41 "coffgen.c" 2 # 1 "sysdep.h" 1 # 27 "sysdep.h" # 1 "config.h" 1 # 28 "sysdep.h" 2 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 151 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 3 4 typedef int ptrdiff_t; # 213 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 3 4 typedef unsigned int size_t; # 325 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 3 4 typedef long int wchar_t; # 31 "sysdep.h" 2 # 1 "/usr/include/stdio.h" 1 3 4 # 28 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/features.h" 1 3 4 # 295 "/usr/include/features.h" 3 4 # 1 "/usr/include/sys/cdefs.h" 1 3 4 # 296 "/usr/include/features.h" 2 3 4 # 318 "/usr/include/features.h" 3 4 # 1 "/usr/include/gnu/stubs.h" 1 3 4 # 319 "/usr/include/features.h" 2 3 4 # 29 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 35 "/usr/include/stdio.h" 2 3 4 # 1 "/usr/include/bits/types.h" 1 3 4 # 28 "/usr/include/bits/types.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 29 "/usr/include/bits/types.h" 2 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 32 "/usr/include/bits/types.h" 2 3 4 typedef unsigned char __u_char; typedef unsigned short int __u_short; typedef unsigned int __u_int; typedef unsigned long int __u_long; typedef signed char __int8_t; typedef unsigned char __uint8_t; typedef signed short int __int16_t; typedef unsigned short int __uint16_t; typedef signed int __int32_t; typedef unsigned int __uint32_t; __extension__ typedef signed long long int __int64_t; __extension__ typedef unsigned long long int __uint64_t; __extension__ typedef long long int __quad_t; __extension__ typedef unsigned long long int __u_quad_t; # 129 "/usr/include/bits/types.h" 3 4 # 1 "/usr/include/bits/typesizes.h" 1 3 4 # 130 "/usr/include/bits/types.h" 2 3 4 __extension__ typedef unsigned long long int __dev_t; __extension__ typedef unsigned int __uid_t; __extension__ typedef unsigned int __gid_t; __extension__ typedef unsigned long int __ino_t; __extension__ typedef unsigned long long int __ino64_t; __extension__ typedef unsigned int __mode_t; __extension__ typedef unsigned int __nlink_t; __extension__ typedef long int __off_t; __extension__ typedef long long int __off64_t; __extension__ typedef int __pid_t; __extension__ typedef struct { int __val[2]; } __fsid_t; __extension__ typedef long int __clock_t; __extension__ typedef unsigned long int __rlim_t; __extension__ typedef unsigned long long int __rlim64_t; __extension__ typedef unsigned int __id_t; __extension__ typedef long int __time_t; __extension__ typedef unsigned int __useconds_t; __extension__ typedef long int __suseconds_t; __extension__ typedef int __daddr_t; __extension__ typedef long int __swblk_t; __extension__ typedef int __key_t; __extension__ typedef int __clockid_t; __extension__ typedef void * __timer_t; __extension__ typedef long int __blksize_t; __extension__ typedef long int __blkcnt_t; __extension__ typedef long long int __blkcnt64_t; __extension__ typedef unsigned long int __fsblkcnt_t; __extension__ typedef unsigned long long int __fsblkcnt64_t; __extension__ typedef unsigned long int __fsfilcnt_t; __extension__ typedef unsigned long long int __fsfilcnt64_t; __extension__ typedef int __ssize_t; typedef __off64_t __loff_t; typedef __quad_t *__qaddr_t; typedef char *__caddr_t; __extension__ typedef int __intptr_t; __extension__ typedef unsigned int __socklen_t; # 37 "/usr/include/stdio.h" 2 3 4 # 46 "/usr/include/stdio.h" 3 4 typedef struct _IO_FILE FILE; # 62 "/usr/include/stdio.h" 3 4 typedef struct _IO_FILE __FILE; # 72 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/libio.h" 1 3 4 # 32 "/usr/include/libio.h" 3 4 # 1 "/usr/include/_G_config.h" 1 3 4 # 14 "/usr/include/_G_config.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 354 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 3 4 typedef unsigned int wint_t; # 15 "/usr/include/_G_config.h" 2 3 4 # 24 "/usr/include/_G_config.h" 3 4 # 1 "/usr/include/wchar.h" 1 3 4 # 48 "/usr/include/wchar.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 49 "/usr/include/wchar.h" 2 3 4 # 1 "/usr/include/bits/wchar.h" 1 3 4 # 51 "/usr/include/wchar.h" 2 3 4 # 76 "/usr/include/wchar.h" 3 4 typedef struct { int __count; union { wint_t __wch; char __wchb[4]; } __value; } __mbstate_t; # 25 "/usr/include/_G_config.h" 2 3 4 typedef struct { __off_t __pos; __mbstate_t __state; } _G_fpos_t; typedef struct { __off64_t __pos; __mbstate_t __state; } _G_fpos64_t; # 44 "/usr/include/_G_config.h" 3 4 # 1 "/usr/include/gconv.h" 1 3 4 # 28 "/usr/include/gconv.h" 3 4 # 1 "/usr/include/wchar.h" 1 3 4 # 48 "/usr/include/wchar.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 49 "/usr/include/wchar.h" 2 3 4 # 29 "/usr/include/gconv.h" 2 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 32 "/usr/include/gconv.h" 2 3 4 enum { __GCONV_OK = 0, __GCONV_NOCONV, __GCONV_NODB, __GCONV_NOMEM, __GCONV_EMPTY_INPUT, __GCONV_FULL_OUTPUT, __GCONV_ILLEGAL_INPUT, __GCONV_INCOMPLETE_INPUT, __GCONV_ILLEGAL_DESCRIPTOR, __GCONV_INTERNAL_ERROR }; enum { __GCONV_IS_LAST = 0x0001, __GCONV_IGNORE_ERRORS = 0x0002 }; struct __gconv_step; struct __gconv_step_data; struct __gconv_loaded_object; struct __gconv_trans_data; typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *, __const unsigned char **, __const unsigned char *, unsigned char **, size_t *, int, int); typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char); typedef int (*__gconv_init_fct) (struct __gconv_step *); typedef void (*__gconv_end_fct) (struct __gconv_step *); typedef int (*__gconv_trans_fct) (struct __gconv_step *, struct __gconv_step_data *, void *, __const unsigned char *, __const unsigned char **, __const unsigned char *, unsigned char **, size_t *); typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *, __const unsigned char *, unsigned char *, unsigned char *); typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***, size_t *); typedef int (*__gconv_trans_init_fct) (void **, const char *); typedef void (*__gconv_trans_end_fct) (void *); struct __gconv_trans_data { __gconv_trans_fct __trans_fct; __gconv_trans_context_fct __trans_context_fct; __gconv_trans_end_fct __trans_end_fct; void *__data; struct __gconv_trans_data *__next; }; struct __gconv_step { struct __gconv_loaded_object *__shlib_handle; __const char *__modname; int __counter; char *__from_name; char *__to_name; __gconv_fct __fct; __gconv_btowc_fct __btowc_fct; __gconv_init_fct __init_fct; __gconv_end_fct __end_fct; int __min_needed_from; int __max_needed_from; int __min_needed_to; int __max_needed_to; int __stateful; void *__data; }; struct __gconv_step_data { unsigned char *__outbuf; unsigned char *__outbufend; int __flags; int __invocation_counter; int __internal_use; __mbstate_t *__statep; __mbstate_t __state; struct __gconv_trans_data *__trans; }; typedef struct __gconv_info { size_t __nsteps; struct __gconv_step *__steps; __extension__ struct __gconv_step_data __data []; } *__gconv_t; # 45 "/usr/include/_G_config.h" 2 3 4 typedef union { struct __gconv_info __cd; struct { struct __gconv_info __cd; struct __gconv_step_data __data; } __combined; } _G_iconv_t; typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); # 33 "/usr/include/libio.h" 2 3 4 # 53 "/usr/include/libio.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stdarg.h" 1 3 4 # 43 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stdarg.h" 3 4 typedef __builtin_va_list __gnuc_va_list; # 54 "/usr/include/libio.h" 2 3 4 # 163 "/usr/include/libio.h" 3 4 struct _IO_jump_t; struct _IO_FILE; # 173 "/usr/include/libio.h" 3 4 typedef void _IO_lock_t; struct _IO_marker { struct _IO_marker *_next; struct _IO_FILE *_sbuf; int _pos; # 196 "/usr/include/libio.h" 3 4 }; enum __codecvt_result { __codecvt_ok, __codecvt_partial, __codecvt_error, __codecvt_noconv }; # 264 "/usr/include/libio.h" 3 4 struct _IO_FILE { int _flags; char* _IO_read_ptr; char* _IO_read_end; char* _IO_read_base; char* _IO_write_base; char* _IO_write_ptr; char* _IO_write_end; char* _IO_buf_base; char* _IO_buf_end; char *_IO_save_base; char *_IO_backup_base; char *_IO_save_end; struct _IO_marker *_markers; struct _IO_FILE *_chain; int _fileno; int _flags2; __off_t _old_offset; unsigned short _cur_column; signed char _vtable_offset; char _shortbuf[1]; _IO_lock_t *_lock; # 312 "/usr/include/libio.h" 3 4 __off64_t _offset; void *__pad1; void *__pad2; int _mode; char _unused2[15 * sizeof (int) - 2 * sizeof (void *)]; }; typedef struct _IO_FILE _IO_FILE; struct _IO_FILE_plus; extern struct _IO_FILE_plus _IO_2_1_stdin_; extern struct _IO_FILE_plus _IO_2_1_stdout_; extern struct _IO_FILE_plus _IO_2_1_stderr_; # 351 "/usr/include/libio.h" 3 4 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf, size_t __n); typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); typedef int __io_close_fn (void *__cookie); typedef __io_read_fn cookie_read_function_t; typedef __io_write_fn cookie_write_function_t; typedef __io_seek_fn cookie_seek_function_t; typedef __io_close_fn cookie_close_function_t; typedef struct { __io_read_fn *read; __io_write_fn *write; __io_seek_fn *seek; __io_close_fn *close; } _IO_cookie_io_functions_t; typedef _IO_cookie_io_functions_t cookie_io_functions_t; struct _IO_cookie_file; extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, void *__cookie, _IO_cookie_io_functions_t __fns); extern int __underflow (_IO_FILE *) ; extern int __uflow (_IO_FILE *) ; extern int __overflow (_IO_FILE *, int) ; extern wint_t __wunderflow (_IO_FILE *) ; extern wint_t __wuflow (_IO_FILE *) ; extern wint_t __woverflow (_IO_FILE *, wint_t) ; # 441 "/usr/include/libio.h" 3 4 extern int _IO_getc (_IO_FILE *__fp) ; extern int _IO_putc (int __c, _IO_FILE *__fp) ; extern int _IO_feof (_IO_FILE *__fp) ; extern int _IO_ferror (_IO_FILE *__fp) ; extern int _IO_peekc_locked (_IO_FILE *__fp) ; extern void _IO_flockfile (_IO_FILE *) ; extern void _IO_funlockfile (_IO_FILE *) ; extern int _IO_ftrylockfile (_IO_FILE *) ; # 471 "/usr/include/libio.h" 3 4 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, __gnuc_va_list, int *__restrict) ; extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, __gnuc_va_list) ; extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) ; extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) ; extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) ; extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) ; extern void _IO_free_backup_area (_IO_FILE *) ; # 73 "/usr/include/stdio.h" 2 3 4 typedef __gnuc_va_list va_list; # 86 "/usr/include/stdio.h" 3 4 typedef _G_fpos_t fpos_t; typedef _G_fpos64_t fpos64_t; # 138 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4 # 139 "/usr/include/stdio.h" 2 3 4 extern struct _IO_FILE *stdin; extern struct _IO_FILE *stdout; extern struct _IO_FILE *stderr; extern int remove (__const char *__filename) ; extern int rename (__const char *__old, __const char *__new) ; # 164 "/usr/include/stdio.h" 3 4 extern FILE *tmpfile (void); # 174 "/usr/include/stdio.h" 3 4 extern FILE *tmpfile64 (void); extern char *tmpnam (char *__s) ; extern char *tmpnam_r (char *__s) ; # 196 "/usr/include/stdio.h" 3 4 extern char *tempnam (__const char *__dir, __const char *__pfx) __attribute__ ((__malloc__)); # 206 "/usr/include/stdio.h" 3 4 extern int fclose (FILE *__stream); extern int fflush (FILE *__stream); # 221 "/usr/include/stdio.h" 3 4 extern int fflush_unlocked (FILE *__stream); # 231 "/usr/include/stdio.h" 3 4 extern int fcloseall (void); # 241 "/usr/include/stdio.h" 3 4 extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes); extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream); # 262 "/usr/include/stdio.h" 3 4 extern FILE *fopen64 (__const char *__restrict __filename, __const char *__restrict __modes); extern FILE *freopen64 (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream); extern FILE *fdopen (int __fd, __const char *__modes) ; extern FILE *fopencookie (void *__restrict __magic_cookie, __const char *__restrict __modes, _IO_cookie_io_functions_t __io_funcs) ; extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) ; extern FILE *open_memstream (char **__restrict __bufloc, size_t *__restrict __sizeloc) ; extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) ; extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, int __modes, size_t __n) ; extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, size_t __size) ; extern void setlinebuf (FILE *__stream) ; # 321 "/usr/include/stdio.h" 3 4 extern int fprintf (FILE *__restrict __stream, __const char *__restrict __format, ...); extern int printf (__const char *__restrict __format, ...); extern int sprintf (char *__restrict __s, __const char *__restrict __format, ...) ; extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg); extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg); extern int vsprintf (char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) ; extern int snprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, ...) __attribute__ ((__format__ (__printf__, 3, 4))); extern int vsnprintf (char *__restrict __s, size_t __maxlen, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 3, 0))); extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 2, 0))); extern int __asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern int asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern int vdprintf (int __fd, __const char *__restrict __fmt, __gnuc_va_list __arg) __attribute__ ((__format__ (__printf__, 2, 0))); extern int dprintf (int __fd, __const char *__restrict __fmt, ...) __attribute__ ((__format__ (__printf__, 2, 3))); # 393 "/usr/include/stdio.h" 3 4 extern int fscanf (FILE *__restrict __stream, __const char *__restrict __format, ...); extern int scanf (__const char *__restrict __format, ...); extern int sscanf (__const char *__restrict __s, __const char *__restrict __format, ...) ; # 411 "/usr/include/stdio.h" 3 4 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 2, 0))); extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 1, 0))); extern int vsscanf (__const char *__restrict __s, __const char *__restrict __format, __gnuc_va_list __arg) __attribute__ ((__format__ (__scanf__, 2, 0))); # 435 "/usr/include/stdio.h" 3 4 extern int fgetc (FILE *__stream); extern int getc (FILE *__stream); extern int getchar (void); # 454 "/usr/include/stdio.h" 3 4 extern int getc_unlocked (FILE *__stream); extern int getchar_unlocked (void); # 465 "/usr/include/stdio.h" 3 4 extern int fgetc_unlocked (FILE *__stream); # 477 "/usr/include/stdio.h" 3 4 extern int fputc (int __c, FILE *__stream); extern int putc (int __c, FILE *__stream); extern int putchar (int __c); # 498 "/usr/include/stdio.h" 3 4 extern int fputc_unlocked (int __c, FILE *__stream); extern int putc_unlocked (int __c, FILE *__stream); extern int putchar_unlocked (int __c); extern int getw (FILE *__stream); extern int putw (int __w, FILE *__stream); # 526 "/usr/include/stdio.h" 3 4 extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream); extern char *gets (char *__s); # 543 "/usr/include/stdio.h" 3 4 extern char *fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream); # 559 "/usr/include/stdio.h" 3 4 extern __ssize_t __getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream); extern __ssize_t getdelim (char **__restrict __lineptr, size_t *__restrict __n, int __delimiter, FILE *__restrict __stream); extern __ssize_t getline (char **__restrict __lineptr, size_t *__restrict __n, FILE *__restrict __stream); # 583 "/usr/include/stdio.h" 3 4 extern int fputs (__const char *__restrict __s, FILE *__restrict __stream); extern int puts (__const char *__s); extern int ungetc (int __c, FILE *__stream); extern size_t fread (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream); extern size_t fwrite (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __s); # 620 "/usr/include/stdio.h" 3 4 extern int fputs_unlocked (__const char *__restrict __s, FILE *__restrict __stream); # 631 "/usr/include/stdio.h" 3 4 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream); extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream); # 643 "/usr/include/stdio.h" 3 4 extern int fseek (FILE *__stream, long int __off, int __whence); extern long int ftell (FILE *__stream); extern void rewind (FILE *__stream); # 667 "/usr/include/stdio.h" 3 4 extern int fseeko (FILE *__stream, __off_t __off, int __whence); extern __off_t ftello (FILE *__stream); # 686 "/usr/include/stdio.h" 3 4 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); extern int fsetpos (FILE *__stream, __const fpos_t *__pos); # 709 "/usr/include/stdio.h" 3 4 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); extern __off64_t ftello64 (FILE *__stream); extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos); extern void clearerr (FILE *__stream) ; extern int feof (FILE *__stream) ; extern int ferror (FILE *__stream) ; extern void clearerr_unlocked (FILE *__stream) ; extern int feof_unlocked (FILE *__stream) ; extern int ferror_unlocked (FILE *__stream) ; # 740 "/usr/include/stdio.h" 3 4 extern void perror (__const char *__s); # 1 "/usr/include/bits/sys_errlist.h" 1 3 4 # 27 "/usr/include/bits/sys_errlist.h" 3 4 extern int sys_nerr; extern __const char *__const sys_errlist[]; extern int _sys_nerr; extern __const char *__const _sys_errlist[]; # 748 "/usr/include/stdio.h" 2 3 4 extern int fileno (FILE *__stream) ; extern int fileno_unlocked (FILE *__stream) ; # 767 "/usr/include/stdio.h" 3 4 extern FILE *popen (__const char *__command, __const char *__modes); extern int pclose (FILE *__stream); extern char *ctermid (char *__s) ; extern char *cuserid (char *__s); struct obstack; extern int obstack_printf (struct obstack *__restrict __obstack, __const char *__restrict __format, ...) __attribute__ ((__format__ (__printf__, 2, 3))); extern int obstack_vprintf (struct obstack *__restrict __obstack, __const char *__restrict __format, __gnuc_va_list __args) __attribute__ ((__format__ (__printf__, 2, 0))); extern void flockfile (FILE *__stream) ; extern int ftrylockfile (FILE *__stream) ; extern void funlockfile (FILE *__stream) ; # 828 "/usr/include/stdio.h" 3 4 # 1 "/usr/include/bits/stdio.h" 1 3 4 # 33 "/usr/include/bits/stdio.h" 3 4 extern __inline int vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg) { return vfprintf (stdout, __fmt, __arg); } extern __inline int getchar (void) { return _IO_getc (stdin); } extern __inline int getc_unlocked (FILE *__fp) { return (__builtin_expect ((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end, 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); } extern __inline int getchar_unlocked (void) { return (__builtin_expect ((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end, 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); } extern __inline int putchar (int __c) { return _IO_putc (__c, stdout); } extern __inline int fputc_unlocked (int __c, FILE *__stream) { return (__builtin_expect ((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end, 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); } extern __inline int putc_unlocked (int __c, FILE *__stream) { return (__builtin_expect ((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end, 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); } extern __inline int putchar_unlocked (int __c) { return (__builtin_expect ((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end, 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); } extern __inline __ssize_t getline (char **__lineptr, size_t *__n, FILE *__stream) { return __getdelim (__lineptr, __n, '\n', __stream); } extern __inline int feof_unlocked (FILE *__stream) { return (((__stream)->_flags & 0x10) != 0); } extern __inline int ferror_unlocked (FILE *__stream) { return (((__stream)->_flags & 0x20) != 0); } # 829 "/usr/include/stdio.h" 2 3 4 # 34 "sysdep.h" 2 # 1 "/usr/include/sys/types.h" 1 3 4 # 29 "/usr/include/sys/types.h" 3 4 typedef __u_char u_char; typedef __u_short u_short; typedef __u_int u_int; typedef __u_long u_long; typedef __quad_t quad_t; typedef __u_quad_t u_quad_t; typedef __fsid_t fsid_t; typedef __loff_t loff_t; typedef __ino_t ino_t; typedef __ino64_t ino64_t; typedef __dev_t dev_t; typedef __gid_t gid_t; typedef __mode_t mode_t; typedef __nlink_t nlink_t; typedef __uid_t uid_t; typedef __off_t off_t; typedef __off64_t off64_t; typedef __pid_t pid_t; typedef __id_t id_t; typedef __ssize_t ssize_t; typedef __daddr_t daddr_t; typedef __caddr_t caddr_t; typedef __key_t key_t; # 133 "/usr/include/sys/types.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 58 "/usr/include/time.h" 3 4 typedef __clock_t clock_t; # 74 "/usr/include/time.h" 3 4 typedef __time_t time_t; # 92 "/usr/include/time.h" 3 4 typedef __clockid_t clockid_t; # 104 "/usr/include/time.h" 3 4 typedef __timer_t timer_t; # 134 "/usr/include/sys/types.h" 2 3 4 typedef __useconds_t useconds_t; typedef __suseconds_t suseconds_t; # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 148 "/usr/include/sys/types.h" 2 3 4 typedef unsigned long int ulong; typedef unsigned short int ushort; typedef unsigned int uint; # 191 "/usr/include/sys/types.h" 3 4 typedef int int8_t __attribute__ ((__mode__ (__QI__))); typedef int int16_t __attribute__ ((__mode__ (__HI__))); typedef int int32_t __attribute__ ((__mode__ (__SI__))); typedef int int64_t __attribute__ ((__mode__ (__DI__))); typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); typedef int register_t __attribute__ ((__mode__ (__word__))); # 213 "/usr/include/sys/types.h" 3 4 # 1 "/usr/include/endian.h" 1 3 4 # 37 "/usr/include/endian.h" 3 4 # 1 "/usr/include/bits/endian.h" 1 3 4 # 38 "/usr/include/endian.h" 2 3 4 # 214 "/usr/include/sys/types.h" 2 3 4 # 1 "/usr/include/sys/select.h" 1 3 4 # 31 "/usr/include/sys/select.h" 3 4 # 1 "/usr/include/bits/select.h" 1 3 4 # 32 "/usr/include/sys/select.h" 2 3 4 # 1 "/usr/include/bits/sigset.h" 1 3 4 # 23 "/usr/include/bits/sigset.h" 3 4 typedef int __sig_atomic_t; typedef struct { unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; } __sigset_t; # 35 "/usr/include/sys/select.h" 2 3 4 typedef __sigset_t sigset_t; # 1 "/usr/include/time.h" 1 3 4 # 118 "/usr/include/time.h" 3 4 struct timespec { __time_t tv_sec; long int tv_nsec; }; # 45 "/usr/include/sys/select.h" 2 3 4 # 1 "/usr/include/bits/time.h" 1 3 4 # 69 "/usr/include/bits/time.h" 3 4 struct timeval { __time_t tv_sec; __suseconds_t tv_usec; }; # 47 "/usr/include/sys/select.h" 2 3 4 # 55 "/usr/include/sys/select.h" 3 4 typedef long int __fd_mask; # 67 "/usr/include/sys/select.h" 3 4 typedef struct { __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))]; } fd_set; typedef __fd_mask fd_mask; # 99 "/usr/include/sys/select.h" 3 4 # 109 "/usr/include/sys/select.h" 3 4 extern int select (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, struct timeval *__restrict __timeout); # 121 "/usr/include/sys/select.h" 3 4 extern int pselect (int __nfds, fd_set *__restrict __readfds, fd_set *__restrict __writefds, fd_set *__restrict __exceptfds, const struct timespec *__restrict __timeout, const __sigset_t *__restrict __sigmask); # 217 "/usr/include/sys/types.h" 2 3 4 # 1 "/usr/include/sys/sysmacros.h" 1 3 4 # 29 "/usr/include/sys/sysmacros.h" 3 4 __extension__ extern __inline unsigned int gnu_dev_major (unsigned long long int __dev) ; __extension__ extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev) ; __extension__ extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major, unsigned int __minor) ; __extension__ extern __inline unsigned int gnu_dev_major (unsigned long long int __dev) { return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); } __extension__ extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev) { return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); } __extension__ extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major, unsigned int __minor) { return ((__minor & 0xff) | ((__major & 0xfff) << 8) | (((unsigned long long int) (__minor & ~0xff)) << 12) | (((unsigned long long int) (__major & ~0xfff)) << 32)); } # 220 "/usr/include/sys/types.h" 2 3 4 typedef __blksize_t blksize_t; typedef __blkcnt_t blkcnt_t; typedef __fsblkcnt_t fsblkcnt_t; typedef __fsfilcnt_t fsfilcnt_t; # 258 "/usr/include/sys/types.h" 3 4 typedef __blkcnt64_t blkcnt64_t; typedef __fsblkcnt64_t fsblkcnt64_t; typedef __fsfilcnt64_t fsfilcnt64_t; # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 # 36 "/usr/include/bits/pthreadtypes.h" 3 4 typedef unsigned long int pthread_t; typedef union { char __size[36]; long int __align; } pthread_attr_t; typedef union { struct { int __lock; unsigned int __count; int __owner; int __kind; unsigned int __nusers; } __data; char __size[24]; long int __align; } pthread_mutex_t; typedef union { char __size[4]; long int __align; } pthread_mutexattr_t; typedef union { struct { int __lock; int __clock; unsigned long long int __total_seq; unsigned long long int __wakeup_seq; unsigned long long int __woken_seq; void *__mutex; } __data; char __size[48]; long long int __align; } pthread_cond_t; typedef union { char __size[4]; long int __align; } pthread_condattr_t; typedef unsigned int pthread_key_t; typedef int pthread_once_t; typedef union { struct { int __lock; unsigned int __nr_readers; unsigned int __readers_wakeup; unsigned int __writer_wakeup; unsigned int __nr_readers_queued; unsigned int __nr_writers_queued; unsigned int __flags; int __writer; } __data; char __size[32]; long int __align; } pthread_rwlock_t; typedef union { char __size[8]; long int __align; } pthread_rwlockattr_t; typedef volatile int pthread_spinlock_t; typedef union { char __size[20]; long int __align; } pthread_barrier_t; typedef union { char __size[4]; int __align; } pthread_barrierattr_t; # 267 "/usr/include/sys/types.h" 2 3 4 # 35 "sysdep.h" 2 # 1 "/usr/include/sys/stat.h" 1 3 4 # 37 "/usr/include/sys/stat.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 38 "/usr/include/sys/stat.h" 2 3 4 # 103 "/usr/include/sys/stat.h" 3 4 # 1 "/usr/include/bits/stat.h" 1 3 4 # 36 "/usr/include/bits/stat.h" 3 4 struct stat { __dev_t st_dev; unsigned short int __pad1; __ino_t st_ino; __mode_t st_mode; __nlink_t st_nlink; __uid_t st_uid; __gid_t st_gid; __dev_t st_rdev; unsigned short int __pad2; __off_t st_size; __blksize_t st_blksize; __blkcnt_t st_blocks; # 70 "/usr/include/bits/stat.h" 3 4 struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; # 85 "/usr/include/bits/stat.h" 3 4 unsigned long int __unused4; unsigned long int __unused5; }; struct stat64 { __dev_t st_dev; unsigned int __pad1; __ino_t __st_ino; __mode_t st_mode; __nlink_t st_nlink; __uid_t st_uid; __gid_t st_gid; __dev_t st_rdev; unsigned int __pad2; __off64_t st_size; __blksize_t st_blksize; __blkcnt64_t st_blocks; struct timespec st_atim; struct timespec st_mtim; struct timespec st_ctim; # 127 "/usr/include/bits/stat.h" 3 4 __ino64_t st_ino; }; # 106 "/usr/include/sys/stat.h" 2 3 4 # 207 "/usr/include/sys/stat.h" 3 4 extern int stat (__const char *__restrict __file, struct stat *__restrict __buf) ; extern int fstat (int __fd, struct stat *__buf) ; # 226 "/usr/include/sys/stat.h" 3 4 extern int stat64 (__const char *__restrict __file, struct stat64 *__restrict __buf) ; extern int fstat64 (int __fd, struct stat64 *__buf) ; extern int lstat (__const char *__restrict __file, struct stat *__restrict __buf) ; # 248 "/usr/include/sys/stat.h" 3 4 extern int lstat64 (__const char *__restrict __file, struct stat64 *__restrict __buf) ; extern int chmod (__const char *__file, __mode_t __mode) ; extern int lchmod (__const char *__file, __mode_t __mode) ; extern int fchmod (int __fd, __mode_t __mode) ; extern __mode_t umask (__mode_t __mask) ; extern __mode_t getumask (void) ; extern int mkdir (__const char *__path, __mode_t __mode) ; extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev) ; extern int mkfifo (__const char *__path, __mode_t __mode) ; # 319 "/usr/include/sys/stat.h" 3 4 extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) ; extern int __xstat (int __ver, __const char *__filename, struct stat *__stat_buf) ; extern int __lxstat (int __ver, __const char *__filename, struct stat *__stat_buf) ; # 343 "/usr/include/sys/stat.h" 3 4 extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf) ; extern int __xstat64 (int __ver, __const char *__filename, struct stat64 *__stat_buf) ; extern int __lxstat64 (int __ver, __const char *__filename, struct stat64 *__stat_buf) ; extern int __xmknod (int __ver, __const char *__path, __mode_t __mode, __dev_t *__dev) ; extern __inline__ int stat (__const char *__path, struct stat *__statbuf) { return __xstat (3, __path, __statbuf); } extern __inline__ int lstat (__const char *__path, struct stat *__statbuf) { return __lxstat (3, __path, __statbuf); } extern __inline__ int fstat (int __fd, struct stat *__statbuf) { return __fxstat (3, __fd, __statbuf); } extern __inline__ int mknod (__const char *__path, __mode_t __mode, __dev_t __dev) { return __xmknod (1, __path, __mode, &__dev); } extern __inline__ int stat64 (__const char *__path, struct stat64 *__statbuf) { return __xstat64 (3, __path, __statbuf); } extern __inline__ int lstat64 (__const char *__path, struct stat64 *__statbuf) { return __lxstat64 (3, __path, __statbuf); } extern __inline__ int fstat64 (int __fd, struct stat64 *__statbuf) { return __fxstat64 (3, __fd, __statbuf); } # 36 "sysdep.h" 2 # 1 "/usr/include/errno.h" 1 3 4 # 32 "/usr/include/errno.h" 3 4 # 1 "/usr/include/bits/errno.h" 1 3 4 # 25 "/usr/include/bits/errno.h" 3 4 # 1 "/usr/include/linux/errno.h" 1 3 4 # 1 "/usr/include/asm/errno.h" 1 3 4 # 5 "/usr/include/linux/errno.h" 2 3 4 # 26 "/usr/include/bits/errno.h" 2 3 4 # 38 "/usr/include/bits/errno.h" 3 4 extern int *__errno_location (void) __attribute__ ((__const__)); # 37 "/usr/include/errno.h" 2 3 4 # 55 "/usr/include/errno.h" 3 4 extern char *program_invocation_name, *program_invocation_short_name; # 69 "/usr/include/errno.h" 3 4 typedef int error_t; # 38 "sysdep.h" 2 # 1 "/usr/include/string.h" 1 3 4 # 28 "/usr/include/string.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 34 "/usr/include/string.h" 2 3 4 extern void *memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) ; extern void *memmove (void *__dest, __const void *__src, size_t __n) ; extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, int __c, size_t __n) ; extern void *memset (void *__s, int __c, size_t __n) ; extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) __attribute__ ((__pure__)); extern void *memchr (__const void *__s, int __c, size_t __n) __attribute__ ((__pure__)); extern void *rawmemchr (__const void *__s, int __c) __attribute__ ((__pure__)); extern void *memrchr (__const void *__s, int __c, size_t __n) __attribute__ ((__pure__)); extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) ; extern char *strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) ; extern char *strcat (char *__restrict __dest, __const char *__restrict __src) ; extern char *strncat (char *__restrict __dest, __const char *__restrict __src, size_t __n) ; extern int strcmp (__const char *__s1, __const char *__s2) __attribute__ ((__pure__)); extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) __attribute__ ((__pure__)); extern int strcoll (__const char *__s1, __const char *__s2) __attribute__ ((__pure__)); extern size_t strxfrm (char *__restrict __dest, __const char *__restrict __src, size_t __n) ; # 1 "/usr/include/xlocale.h" 1 3 4 # 28 "/usr/include/xlocale.h" 3 4 typedef struct __locale_struct { struct locale_data *__locales[13]; const unsigned short int *__ctype_b; const int *__ctype_tolower; const int *__ctype_toupper; const char *__names[13]; } *__locale_t; # 115 "/usr/include/string.h" 2 3 4 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) __attribute__ ((__pure__)); extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, __locale_t __l) ; extern char *strdup (__const char *__s) __attribute__ ((__malloc__)); extern char *strndup (__const char *__string, size_t __n) __attribute__ ((__malloc__)); # 160 "/usr/include/string.h" 3 4 extern char *strchr (__const char *__s, int __c) __attribute__ ((__pure__)); extern char *strrchr (__const char *__s, int __c) __attribute__ ((__pure__)); extern char *strchrnul (__const char *__s, int __c) __attribute__ ((__pure__)); extern size_t strcspn (__const char *__s, __const char *__reject) __attribute__ ((__pure__)); extern size_t strspn (__const char *__s, __const char *__accept) __attribute__ ((__pure__)); extern char *strpbrk (__const char *__s, __const char *__accept) __attribute__ ((__pure__)); extern char *strstr (__const char *__haystack, __const char *__needle) __attribute__ ((__pure__)); extern char *strtok (char *__restrict __s, __const char *__restrict __delim) ; extern char *__strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) ; extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, char **__restrict __save_ptr) ; extern char *strcasestr (__const char *__haystack, __const char *__needle) __attribute__ ((__pure__)); extern void *memmem (__const void *__haystack, size_t __haystacklen, __const void *__needle, size_t __needlelen) __attribute__ ((__pure__)); extern void *__mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) ; extern void *mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __n) ; extern size_t strlen (__const char *__s) __attribute__ ((__pure__)); extern size_t strnlen (__const char *__string, size_t __maxlen) __attribute__ ((__pure__)); extern char *strerror (int __errnum) ; extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) ; extern void __bzero (void *__s, size_t __n) ; extern void bcopy (__const void *__src, void *__dest, size_t __n) ; extern void bzero (void *__s, size_t __n) ; extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) __attribute__ ((__pure__)); extern char *index (__const char *__s, int __c) __attribute__ ((__pure__)); extern char *rindex (__const char *__s, int __c) __attribute__ ((__pure__)); extern int ffs (int __i) __attribute__ ((__const__)); extern int ffsl (long int __l) __attribute__ ((__const__)); __extension__ extern int ffsll (long long int __ll) __attribute__ ((__const__)); extern int strcasecmp (__const char *__s1, __const char *__s2) __attribute__ ((__pure__)); extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) __attribute__ ((__pure__)); extern int strcasecmp_l (__const char *__s1, __const char *__s2, __locale_t __loc) __attribute__ ((__pure__)); extern int strncasecmp_l (__const char *__s1, __const char *__s2, size_t __n, __locale_t __loc) __attribute__ ((__pure__)); extern char *strsep (char **__restrict __stringp, __const char *__restrict __delim) ; extern int strverscmp (__const char *__s1, __const char *__s2) __attribute__ ((__pure__)); extern char *strsignal (int __sig) ; extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) ; extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) ; extern char *__stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) ; extern char *stpncpy (char *__restrict __dest, __const char *__restrict __src, size_t __n) ; extern char *strfry (char *__string) ; extern void *memfrob (void *__s, size_t __n) ; extern char *basename (__const char *__filename) ; # 372 "/usr/include/string.h" 3 4 # 1 "/usr/include/bits/string.h" 1 3 4 # 373 "/usr/include/string.h" 2 3 4 # 1 "/usr/include/bits/string2.h" 1 3 4 # 389 "/usr/include/bits/string2.h" 3 4 extern void *__rawmemchr (const void *__s, int __c); # 919 "/usr/include/bits/string2.h" 3 4 extern __inline size_t __strcspn_c1 (__const char *__s, int __reject); extern __inline size_t __strcspn_c1 (__const char *__s, int __reject) { register size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject) ++__result; return __result; } extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1, int __reject2); extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1, int __reject2) { register size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2) ++__result; return __result; } extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1, int __reject2, int __reject3); extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1, int __reject2, int __reject3) { register size_t __result = 0; while (__s[__result] != '\0' && __s[__result] != __reject1 && __s[__result] != __reject2 && __s[__result] != __reject3) ++__result; return __result; } # 976 "/usr/include/bits/string2.h" 3 4 extern __inline size_t __strspn_c1 (__const char *__s, int __accept); extern __inline size_t __strspn_c1 (__const char *__s, int __accept) { register size_t __result = 0; while (__s[__result] == __accept) ++__result; return __result; } extern __inline size_t __strspn_c2 (__const char *__s, int __accept1, int __accept2); extern __inline size_t __strspn_c2 (__const char *__s, int __accept1, int __accept2) { register size_t __result = 0; while (__s[__result] == __accept1 || __s[__result] == __accept2) ++__result; return __result; } extern __inline size_t __strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3); extern __inline size_t __strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3) { register size_t __result = 0; while (__s[__result] == __accept1 || __s[__result] == __accept2 || __s[__result] == __accept3) ++__result; return __result; } # 1033 "/usr/include/bits/string2.h" 3 4 extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1, int __accept2); extern __inline char * __strpbrk_c2 (__const char *__s, int __accept1, int __accept2) { while (*__s != '\0' && *__s != __accept1 && *__s != __accept2) ++__s; return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; } extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1, int __accept2, int __accept3); extern __inline char * __strpbrk_c3 (__const char *__s, int __accept1, int __accept2, int __accept3) { while (*__s != '\0' && *__s != __accept1 && *__s != __accept2 && *__s != __accept3) ++__s; return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; } # 1085 "/usr/include/bits/string2.h" 3 4 extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp); extern __inline char * __strtok_r_1c (char *__s, char __sep, char **__nextp) { char *__result; if (__s == ((void *)0)) __s = *__nextp; while (*__s == __sep) ++__s; __result = ((void *)0); if (*__s != '\0') { __result = __s++; while (*__s != '\0') if (*__s++ == __sep) { __s[-1] = '\0'; break; } *__nextp = __s; } return __result; } # 1117 "/usr/include/bits/string2.h" 3 4 extern char *__strsep_g (char **__stringp, __const char *__delim); # 1135 "/usr/include/bits/string2.h" 3 4 extern __inline char *__strsep_1c (char **__s, char __reject); extern __inline char * __strsep_1c (char **__s, char __reject) { register char *__retval = *__s; if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : strchr (__retval, __reject)))) != ((void *)0)) *(*__s)++ = '\0'; return __retval; } extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2); extern __inline char * __strsep_2c (char **__s, char __reject1, char __reject2) { register char *__retval = *__s; if (__retval != ((void *)0)) { register char *__cp = __retval; while (1) { if (*__cp == '\0') { __cp = ((void *)0); break; } if (*__cp == __reject1 || *__cp == __reject2) { *__cp++ = '\0'; break; } ++__cp; } *__s = __cp; } return __retval; } extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3); extern __inline char * __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3) { register char *__retval = *__s; if (__retval != ((void *)0)) { register char *__cp = __retval; while (1) { if (*__cp == '\0') { __cp = ((void *)0); break; } if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3) { *__cp++ = '\0'; break; } ++__cp; } *__s = __cp; } return __retval; } # 1211 "/usr/include/bits/string2.h" 3 4 # 1 "/usr/include/stdlib.h" 1 3 4 # 33 "/usr/include/stdlib.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 34 "/usr/include/stdlib.h" 2 3 4 # 554 "/usr/include/stdlib.h" 3 4 extern void *malloc (size_t __size) __attribute__ ((__malloc__)); extern void *calloc (size_t __nmemb, size_t __size) __attribute__ ((__malloc__)); # 922 "/usr/include/stdlib.h" 3 4 # 1212 "/usr/include/bits/string2.h" 2 3 4 extern char *__strdup (__const char *__string) __attribute__ ((__malloc__)); # 1235 "/usr/include/bits/string2.h" 3 4 extern char *__strndup (__const char *__string, size_t __n) __attribute__ ((__malloc__)); # 376 "/usr/include/string.h" 2 3 4 # 44 "sysdep.h" 2 # 54 "sysdep.h" # 1 "/usr/include/stdlib.h" 1 3 4 # 33 "/usr/include/stdlib.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 34 "/usr/include/stdlib.h" 2 3 4 # 42 "/usr/include/stdlib.h" 3 4 # 1 "/usr/include/bits/waitflags.h" 1 3 4 # 43 "/usr/include/stdlib.h" 2 3 4 # 1 "/usr/include/bits/waitstatus.h" 1 3 4 # 65 "/usr/include/bits/waitstatus.h" 3 4 union wait { int w_status; struct { unsigned int __w_termsig:7; unsigned int __w_coredump:1; unsigned int __w_retcode:8; unsigned int:16; } __wait_terminated; struct { unsigned int __w_stopval:8; unsigned int __w_stopsig:8; unsigned int:16; } __wait_stopped; }; # 44 "/usr/include/stdlib.h" 2 3 4 # 68 "/usr/include/stdlib.h" 3 4 typedef union { union wait *__uptr; int *__iptr; } __WAIT_STATUS __attribute__ ((__transparent_union__)); # 93 "/usr/include/stdlib.h" 3 4 typedef struct { int quot; int rem; } div_t; typedef struct { long int quot; long int rem; } ldiv_t; __extension__ typedef struct { long long int quot; long long int rem; } lldiv_t; # 137 "/usr/include/stdlib.h" 3 4 extern size_t __ctype_get_mb_cur_max (void) ; extern double atof (__const char *__nptr) __attribute__ ((__pure__)); extern int atoi (__const char *__nptr) __attribute__ ((__pure__)); extern long int atol (__const char *__nptr) __attribute__ ((__pure__)); __extension__ extern long long int atoll (__const char *__nptr) __attribute__ ((__pure__)); extern double strtod (__const char *__restrict __nptr, char **__restrict __endptr) ; extern float strtof (__const char *__restrict __nptr, char **__restrict __endptr) ; extern long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) ; extern long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ; extern unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ; __extension__ extern long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ; __extension__ extern unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ; __extension__ extern long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ; __extension__ extern unsigned long long int strtoull (__const char *__restrict __nptr, char **__restrict __endptr, int __base) ; # 229 "/usr/include/stdlib.h" 3 4 extern long int strtol_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) ; extern unsigned long int strtoul_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) ; __extension__ extern long long int strtoll_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) ; __extension__ extern unsigned long long int strtoull_l (__const char *__restrict __nptr, char **__restrict __endptr, int __base, __locale_t __loc) ; extern double strtod_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) ; extern float strtof_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) ; extern long double strtold_l (__const char *__restrict __nptr, char **__restrict __endptr, __locale_t __loc) ; extern double __strtod_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) ; extern float __strtof_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) ; extern long double __strtold_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __group) ; extern long int __strtol_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) ; extern unsigned long int __strtoul_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) ; __extension__ extern long long int __strtoll_internal (__const char *__restrict __nptr, char **__restrict __endptr, int __base, int __group) ; __extension__ extern unsigned long long int __strtoull_internal (__const char * __restrict __nptr, char **__restrict __endptr, int __base, int __group) ; # 308 "/usr/include/stdlib.h" 3 4 extern __inline double strtod (__const char *__restrict __nptr, char **__restrict __endptr) { return __strtod_internal (__nptr, __endptr, 0); } extern __inline long int strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtol_internal (__nptr, __endptr, __base, 0); } extern __inline unsigned long int strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtoul_internal (__nptr, __endptr, __base, 0); } extern __inline float strtof (__const char *__restrict __nptr, char **__restrict __endptr) { return __strtof_internal (__nptr, __endptr, 0); } extern __inline long double strtold (__const char *__restrict __nptr, char **__restrict __endptr) { return __strtold_internal (__nptr, __endptr, 0); } __extension__ extern __inline long long int strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtoll_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline unsigned long long int strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtoull_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline long long int strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base) { return __strtoll_internal (__nptr, __endptr, __base, 0); } __extension__ extern __inline unsigned long long int strtoull (__const char * __restrict __nptr, char **__restrict __endptr, int __base) { return __strtoull_internal (__nptr, __endptr, __base, 0); } extern __inline double atof (__const char *__nptr) { return strtod (__nptr, (char **) ((void *)0)); } extern __inline int atoi (__const char *__nptr) { return (int) strtol (__nptr, (char **) ((void *)0), 10); } extern __inline long int atol (__const char *__nptr) { return strtol (__nptr, (char **) ((void *)0), 10); } __extension__ extern __inline long long int atoll (__const char *__nptr) { return strtoll (__nptr, (char **) ((void *)0), 10); } # 408 "/usr/include/stdlib.h" 3 4 extern char *l64a (long int __n) ; extern long int a64l (__const char *__s) __attribute__ ((__pure__)); # 423 "/usr/include/stdlib.h" 3 4 extern long int random (void) ; extern void srandom (unsigned int __seed) ; extern char *initstate (unsigned int __seed, char *__statebuf, size_t __statelen) ; extern char *setstate (char *__statebuf) ; struct random_data { int32_t *fptr; int32_t *rptr; int32_t *state; int rand_type; int rand_deg; int rand_sep; int32_t *end_ptr; }; extern int random_r (struct random_data *__restrict __buf, int32_t *__restrict __result) ; extern int srandom_r (unsigned int __seed, struct random_data *__buf) ; extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, size_t __statelen, struct random_data *__restrict __buf) ; extern int setstate_r (char *__restrict __statebuf, struct random_data *__restrict __buf) ; extern int rand (void) ; extern void srand (unsigned int __seed) ; extern int rand_r (unsigned int *__seed) ; extern double drand48 (void) ; extern double erand48 (unsigned short int __xsubi[3]) ; extern long int lrand48 (void) ; extern long int nrand48 (unsigned short int __xsubi[3]) ; extern long int mrand48 (void) ; extern long int jrand48 (unsigned short int __xsubi[3]) ; extern void srand48 (long int __seedval) ; extern unsigned short int *seed48 (unsigned short int __seed16v[3]) ; extern void lcong48 (unsigned short int __param[7]) ; struct drand48_data { unsigned short int __x[3]; unsigned short int __old_x[3]; unsigned short int __c; unsigned short int __init; unsigned long long int __a; }; extern int drand48_r (struct drand48_data *__restrict __buffer, double *__restrict __result) ; extern int erand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, double *__restrict __result) ; extern int lrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) ; extern int nrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) ; extern int mrand48_r (struct drand48_data *__restrict __buffer, long int *__restrict __result) ; extern int jrand48_r (unsigned short int __xsubi[3], struct drand48_data *__restrict __buffer, long int *__restrict __result) ; extern int srand48_r (long int __seedval, struct drand48_data *__buffer) ; extern int seed48_r (unsigned short int __seed16v[3], struct drand48_data *__buffer) ; extern int lcong48_r (unsigned short int __param[7], struct drand48_data *__buffer) ; # 564 "/usr/include/stdlib.h" 3 4 extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__malloc__)); extern void free (void *__ptr) ; extern void cfree (void *__ptr) ; # 1 "/usr/include/alloca.h" 1 3 4 # 25 "/usr/include/alloca.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 26 "/usr/include/alloca.h" 2 3 4 extern void *alloca (size_t __size) ; # 579 "/usr/include/stdlib.h" 2 3 4 extern void *valloc (size_t __size) __attribute__ ((__malloc__)); extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) __attribute__ ((__malloc__)); extern void abort (void) __attribute__ ((__noreturn__)); extern int atexit (void (*__func) (void)) ; extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) ; extern void exit (int __status) __attribute__ ((__noreturn__)); extern void _Exit (int __status) __attribute__ ((__noreturn__)); extern char *getenv (__const char *__name) ; extern char *__secure_getenv (__const char *__name) ; extern int putenv (char *__string) ; extern int setenv (__const char *__name, __const char *__value, int __replace) ; extern int unsetenv (__const char *__name) ; extern int clearenv (void) ; # 663 "/usr/include/stdlib.h" 3 4 extern char *mktemp (char *__template) ; # 674 "/usr/include/stdlib.h" 3 4 extern int mkstemp (char *__template); # 683 "/usr/include/stdlib.h" 3 4 extern int mkstemp64 (char *__template); # 693 "/usr/include/stdlib.h" 3 4 extern char *mkdtemp (char *__template) ; # 702 "/usr/include/stdlib.h" 3 4 extern int system (__const char *__command); extern char *canonicalize_file_name (__const char *__name) ; # 720 "/usr/include/stdlib.h" 3 4 extern char *realpath (__const char *__restrict __name, char *__restrict __resolved) ; typedef int (*__compar_fn_t) (__const void *, __const void *); typedef __compar_fn_t comparison_fn_t; extern void *bsearch (__const void *__key, __const void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar); extern void qsort (void *__base, size_t __nmemb, size_t __size, __compar_fn_t __compar); extern int abs (int __x) __attribute__ ((__const__)); extern long int labs (long int __x) __attribute__ ((__const__)); __extension__ extern long long int llabs (long long int __x) __attribute__ ((__const__)); extern div_t div (int __numer, int __denom) __attribute__ ((__const__)); extern ldiv_t ldiv (long int __numer, long int __denom) __attribute__ ((__const__)); __extension__ extern lldiv_t lldiv (long long int __numer, long long int __denom) __attribute__ ((__const__)); # 784 "/usr/include/stdlib.h" 3 4 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) ; extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) ; extern char *gcvt (double __value, int __ndigit, char *__buf) ; extern char *qecvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) ; extern char *qfcvt (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign) ; extern char *qgcvt (long double __value, int __ndigit, char *__buf) ; extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) ; extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) ; extern int qecvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) ; extern int qfcvt_r (long double __value, int __ndigit, int *__restrict __decpt, int *__restrict __sign, char *__restrict __buf, size_t __len) ; extern int mblen (__const char *__s, size_t __n) ; extern int mbtowc (wchar_t *__restrict __pwc, __const char *__restrict __s, size_t __n) ; extern int wctomb (char *__s, wchar_t __wchar) ; extern size_t mbstowcs (wchar_t *__restrict __pwcs, __const char *__restrict __s, size_t __n) ; extern size_t wcstombs (char *__restrict __s, __const wchar_t *__restrict __pwcs, size_t __n) ; # 855 "/usr/include/stdlib.h" 3 4 extern int rpmatch (__const char *__response) ; # 866 "/usr/include/stdlib.h" 3 4 extern int getsubopt (char **__restrict __optionp, char *__const *__restrict __tokens, char **__restrict __valuep) ; extern void setkey (__const char *__key) ; extern int posix_openpt (int __oflag); extern int grantpt (int __fd) ; extern int unlockpt (int __fd) ; extern char *ptsname (int __fd) ; extern int ptsname_r (int __fd, char *__buf, size_t __buflen) ; extern int getpt (void); extern int getloadavg (double __loadavg[], int __nelem) ; # 55 "sysdep.h" 2 # 1 "/usr/include/sys/time.h" 1 3 4 # 26 "/usr/include/sys/time.h" 3 4 # 1 "/usr/include/time.h" 1 3 4 # 27 "/usr/include/sys/time.h" 2 3 4 # 1 "/usr/include/bits/time.h" 1 3 4 # 29 "/usr/include/sys/time.h" 2 3 4 # 38 "/usr/include/sys/time.h" 3 4 # 56 "/usr/include/sys/time.h" 3 4 struct timezone { int tz_minuteswest; int tz_dsttime; }; typedef struct timezone *__restrict __timezone_ptr_t; # 72 "/usr/include/sys/time.h" 3 4 extern int gettimeofday (struct timeval *__restrict __tv, __timezone_ptr_t __tz) ; extern int settimeofday (__const struct timeval *__tv, __const struct timezone *__tz) ; extern int adjtime (__const struct timeval *__delta, struct timeval *__olddelta) ; enum __itimer_which { ITIMER_REAL = 0, ITIMER_VIRTUAL = 1, ITIMER_PROF = 2 }; struct itimerval { struct timeval it_interval; struct timeval it_value; }; typedef enum __itimer_which __itimer_which_t; extern int getitimer (__itimer_which_t __which, struct itimerval *__value) ; extern int setitimer (__itimer_which_t __which, __const struct itimerval *__restrict __new, struct itimerval *__restrict __old) ; extern int utimes (__const char *__file, __const struct timeval __tvp[2]) ; extern int lutimes (__const char *__file, __const struct timeval __tvp[2]) ; extern int futimes (int __fd, __const struct timeval __tvp[2]) ; # 181 "/usr/include/sys/time.h" 3 4 # 59 "sysdep.h" 2 # 1 "/usr/include/time.h" 1 3 4 # 30 "/usr/include/time.h" 3 4 # 38 "/usr/include/time.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 39 "/usr/include/time.h" 2 3 4 # 1 "/usr/include/bits/time.h" 1 3 4 # 43 "/usr/include/time.h" 2 3 4 # 129 "/usr/include/time.h" 3 4 struct tm { int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; long int tm_gmtoff; __const char *tm_zone; }; # 159 "/usr/include/time.h" 3 4 struct itimerspec { struct timespec it_interval; struct timespec it_value; }; struct sigevent; # 178 "/usr/include/time.h" 3 4 extern clock_t clock (void) ; extern time_t time (time_t *__timer) ; extern double difftime (time_t __time1, time_t __time0) __attribute__ ((__const__)); extern time_t mktime (struct tm *__tp) ; extern size_t strftime (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp) ; extern char *strptime (__const char *__restrict __s, __const char *__restrict __fmt, struct tm *__tp) ; extern size_t strftime_l (char *__restrict __s, size_t __maxsize, __const char *__restrict __format, __const struct tm *__restrict __tp, __locale_t __loc) ; extern char *strptime_l (__const char *__restrict __s, __const char *__restrict __fmt, struct tm *__tp, __locale_t __loc) ; extern struct tm *gmtime (__const time_t *__timer) ; extern struct tm *localtime (__const time_t *__timer) ; extern struct tm *gmtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) ; extern struct tm *localtime_r (__const time_t *__restrict __timer, struct tm *__restrict __tp) ; extern char *asctime (__const struct tm *__tp) ; extern char *ctime (__const time_t *__timer) ; extern char *asctime_r (__const struct tm *__restrict __tp, char *__restrict __buf) ; extern char *ctime_r (__const time_t *__restrict __timer, char *__restrict __buf) ; extern char *__tzname[2]; extern int __daylight; extern long int __timezone; extern char *tzname[2]; extern void tzset (void) ; extern int daylight; extern long int timezone; extern int stime (__const time_t *__when) ; # 309 "/usr/include/time.h" 3 4 extern time_t timegm (struct tm *__tp) ; extern time_t timelocal (struct tm *__tp) ; extern int dysize (int __year) __attribute__ ((__const__)); # 324 "/usr/include/time.h" 3 4 extern int nanosleep (__const struct timespec *__requested_time, struct timespec *__remaining); extern int clock_getres (clockid_t __clock_id, struct timespec *__res) ; extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) ; extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp) ; extern int clock_nanosleep (clockid_t __clock_id, int __flags, __const struct timespec *__req, struct timespec *__rem); extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) ; extern int timer_create (clockid_t __clock_id, struct sigevent *__restrict __evp, timer_t *__restrict __timerid) ; extern int timer_delete (timer_t __timerid) ; extern int timer_settime (timer_t __timerid, int __flags, __const struct itimerspec *__restrict __value, struct itimerspec *__restrict __ovalue) ; extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) ; extern int timer_getoverrun (timer_t __timerid) ; # 386 "/usr/include/time.h" 3 4 extern int getdate_err; # 395 "/usr/include/time.h" 3 4 extern struct tm *getdate (__const char *__string); # 409 "/usr/include/time.h" 3 4 extern int getdate_r (__const char *__restrict __string, struct tm *__restrict __resbufp); # 60 "sysdep.h" 2 # 69 "sysdep.h" # 1 "/usr/include/unistd.h" 1 3 4 # 28 "/usr/include/unistd.h" 3 4 # 171 "/usr/include/unistd.h" 3 4 # 1 "/usr/include/bits/posix_opt.h" 1 3 4 # 172 "/usr/include/unistd.h" 2 3 4 # 1 "/usr/include/bits/environments.h" 1 3 4 # 23 "/usr/include/bits/environments.h" 3 4 # 1 "/usr/include/bits/wordsize.h" 1 3 4 # 24 "/usr/include/bits/environments.h" 2 3 4 # 176 "/usr/include/unistd.h" 2 3 4 # 195 "/usr/include/unistd.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 196 "/usr/include/unistd.h" 2 3 4 # 236 "/usr/include/unistd.h" 3 4 typedef __intptr_t intptr_t; typedef __socklen_t socklen_t; # 256 "/usr/include/unistd.h" 3 4 extern int access (__const char *__name, int __type) ; extern int euidaccess (__const char *__name, int __type) ; # 286 "/usr/include/unistd.h" 3 4 extern __off_t lseek (int __fd, __off_t __offset, int __whence) ; # 298 "/usr/include/unistd.h" 3 4 extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) ; extern int close (int __fd); extern ssize_t read (int __fd, void *__buf, size_t __nbytes); extern ssize_t write (int __fd, __const void *__buf, size_t __n); # 328 "/usr/include/unistd.h" 3 4 extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset); extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, __off_t __offset); # 356 "/usr/include/unistd.h" 3 4 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset); extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, __off64_t __offset); extern int pipe (int __pipedes[2]) ; # 378 "/usr/include/unistd.h" 3 4 extern unsigned int alarm (unsigned int __seconds) ; # 390 "/usr/include/unistd.h" 3 4 extern unsigned int sleep (unsigned int __seconds); extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) ; extern int usleep (__useconds_t __useconds); # 414 "/usr/include/unistd.h" 3 4 extern int pause (void); extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) ; extern int fchown (int __fd, __uid_t __owner, __gid_t __group) ; extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) ; extern int chdir (__const char *__path) ; extern int fchdir (int __fd) ; # 448 "/usr/include/unistd.h" 3 4 extern char *getcwd (char *__buf, size_t __size) ; extern char *get_current_dir_name (void) ; extern char *getwd (char *__buf) ; extern int dup (int __fd) ; extern int dup2 (int __fd, int __fd2) ; extern char **__environ; extern char **environ; extern int execve (__const char *__path, char *__const __argv[], char *__const __envp[]) ; extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) ; extern int execv (__const char *__path, char *__const __argv[]) ; extern int execle (__const char *__path, __const char *__arg, ...) ; extern int execl (__const char *__path, __const char *__arg, ...) ; extern int execvp (__const char *__file, char *__const __argv[]) ; extern int execlp (__const char *__file, __const char *__arg, ...) ; extern int nice (int __inc) ; extern void _exit (int __status) __attribute__ ((__noreturn__)); # 1 "/usr/include/bits/confname.h" 1 3 4 # 25 "/usr/include/bits/confname.h" 3 4 enum { _PC_LINK_MAX, _PC_MAX_CANON, _PC_MAX_INPUT, _PC_NAME_MAX, _PC_PATH_MAX, _PC_PIPE_BUF, _PC_CHOWN_RESTRICTED, _PC_NO_TRUNC, _PC_VDISABLE, _PC_SYNC_IO, _PC_ASYNC_IO, _PC_PRIO_IO, _PC_SOCK_MAXBUF, _PC_FILESIZEBITS, _PC_REC_INCR_XFER_SIZE, _PC_REC_MAX_XFER_SIZE, _PC_REC_MIN_XFER_SIZE, _PC_REC_XFER_ALIGN, _PC_ALLOC_SIZE_MIN, _PC_SYMLINK_MAX, _PC_2_SYMLINKS }; enum { _SC_ARG_MAX, _SC_CHILD_MAX, _SC_CLK_TCK, _SC_NGROUPS_MAX, _SC_OPEN_MAX, _SC_STREAM_MAX, _SC_TZNAME_MAX, _SC_JOB_CONTROL, _SC_SAVED_IDS, _SC_REALTIME_SIGNALS, _SC_PRIORITY_SCHEDULING, _SC_TIMERS, _SC_ASYNCHRONOUS_IO, _SC_PRIORITIZED_IO, _SC_SYNCHRONIZED_IO, _SC_FSYNC, _SC_MAPPED_FILES, _SC_MEMLOCK, _SC_MEMLOCK_RANGE, _SC_MEMORY_PROTECTION, _SC_MESSAGE_PASSING, _SC_SEMAPHORES, _SC_SHARED_MEMORY_OBJECTS, _SC_AIO_LISTIO_MAX, _SC_AIO_MAX, _SC_AIO_PRIO_DELTA_MAX, _SC_DELAYTIMER_MAX, _SC_MQ_OPEN_MAX, _SC_MQ_PRIO_MAX, _SC_VERSION, _SC_PAGESIZE, _SC_RTSIG_MAX, _SC_SEM_NSEMS_MAX, _SC_SEM_VALUE_MAX, _SC_SIGQUEUE_MAX, _SC_TIMER_MAX, _SC_BC_BASE_MAX, _SC_BC_DIM_MAX, _SC_BC_SCALE_MAX, _SC_BC_STRING_MAX, _SC_COLL_WEIGHTS_MAX, _SC_EQUIV_CLASS_MAX, _SC_EXPR_NEST_MAX, _SC_LINE_MAX, _SC_RE_DUP_MAX, _SC_CHARCLASS_NAME_MAX, _SC_2_VERSION, _SC_2_C_BIND, _SC_2_C_DEV, _SC_2_FORT_DEV, _SC_2_FORT_RUN, _SC_2_SW_DEV, _SC_2_LOCALEDEF, _SC_PII, _SC_PII_XTI, _SC_PII_SOCKET, _SC_PII_INTERNET, _SC_PII_OSI, _SC_POLL, _SC_SELECT, _SC_UIO_MAXIOV, _SC_IOV_MAX = _SC_UIO_MAXIOV, _SC_PII_INTERNET_STREAM, _SC_PII_INTERNET_DGRAM, _SC_PII_OSI_COTS, _SC_PII_OSI_CLTS, _SC_PII_OSI_M, _SC_T_IOV_MAX, _SC_THREADS, _SC_THREAD_SAFE_FUNCTIONS, _SC_GETGR_R_SIZE_MAX, _SC_GETPW_R_SIZE_MAX, _SC_LOGIN_NAME_MAX, _SC_TTY_NAME_MAX, _SC_THREAD_DESTRUCTOR_ITERATIONS, _SC_THREAD_KEYS_MAX, _SC_THREAD_STACK_MIN, _SC_THREAD_THREADS_MAX, _SC_THREAD_ATTR_STACKADDR, _SC_THREAD_ATTR_STACKSIZE, _SC_THREAD_PRIORITY_SCHEDULING, _SC_THREAD_PRIO_INHERIT, _SC_THREAD_PRIO_PROTECT, _SC_THREAD_PROCESS_SHARED, _SC_NPROCESSORS_CONF, _SC_NPROCESSORS_ONLN, _SC_PHYS_PAGES, _SC_AVPHYS_PAGES, _SC_ATEXIT_MAX, _SC_PASS_MAX, _SC_XOPEN_VERSION, _SC_XOPEN_XCU_VERSION, _SC_XOPEN_UNIX, _SC_XOPEN_CRYPT, _SC_XOPEN_ENH_I18N, _SC_XOPEN_SHM, _SC_2_CHAR_TERM, _SC_2_C_VERSION, _SC_2_UPE, _SC_XOPEN_XPG2, _SC_XOPEN_XPG3, _SC_XOPEN_XPG4, _SC_CHAR_BIT, _SC_CHAR_MAX, _SC_CHAR_MIN, _SC_INT_MAX, _SC_INT_MIN, _SC_LONG_BIT, _SC_WORD_BIT, _SC_MB_LEN_MAX, _SC_NZERO, _SC_SSIZE_MAX, _SC_SCHAR_MAX, _SC_SCHAR_MIN, _SC_SHRT_MAX, _SC_SHRT_MIN, _SC_UCHAR_MAX, _SC_UINT_MAX, _SC_ULONG_MAX, _SC_USHRT_MAX, _SC_NL_ARGMAX, _SC_NL_LANGMAX, _SC_NL_MSGMAX, _SC_NL_NMAX, _SC_NL_SETMAX, _SC_NL_TEXTMAX, _SC_XBS5_ILP32_OFF32, _SC_XBS5_ILP32_OFFBIG, _SC_XBS5_LP64_OFF64, _SC_XBS5_LPBIG_OFFBIG, _SC_XOPEN_LEGACY, _SC_XOPEN_REALTIME, _SC_XOPEN_REALTIME_THREADS, _SC_ADVISORY_INFO, _SC_BARRIERS, _SC_BASE, _SC_C_LANG_SUPPORT, _SC_C_LANG_SUPPORT_R, _SC_CLOCK_SELECTION, _SC_CPUTIME, _SC_THREAD_CPUTIME, _SC_DEVICE_IO, _SC_DEVICE_SPECIFIC, _SC_DEVICE_SPECIFIC_R, _SC_FD_MGMT, _SC_FIFO, _SC_PIPE, _SC_FILE_ATTRIBUTES, _SC_FILE_LOCKING, _SC_FILE_SYSTEM, _SC_MONOTONIC_CLOCK, _SC_MULTI_PROCESS, _SC_SINGLE_PROCESS, _SC_NETWORKING, _SC_READER_WRITER_LOCKS, _SC_SPIN_LOCKS, _SC_REGEXP, _SC_REGEX_VERSION, _SC_SHELL, _SC_SIGNALS, _SC_SPAWN, _SC_SPORADIC_SERVER, _SC_THREAD_SPORADIC_SERVER, _SC_SYSTEM_DATABASE, _SC_SYSTEM_DATABASE_R, _SC_TIMEOUTS, _SC_TYPED_MEMORY_OBJECTS, _SC_USER_GROUPS, _SC_USER_GROUPS_R, _SC_2_PBS, _SC_2_PBS_ACCOUNTING, _SC_2_PBS_LOCATE, _SC_2_PBS_MESSAGE, _SC_2_PBS_TRACK, _SC_SYMLOOP_MAX, _SC_STREAMS, _SC_2_PBS_CHECKPOINT, _SC_V6_ILP32_OFF32, _SC_V6_ILP32_OFFBIG, _SC_V6_LP64_OFF64, _SC_V6_LPBIG_OFFBIG, _SC_HOST_NAME_MAX, _SC_TRACE, _SC_TRACE_EVENT_FILTER, _SC_TRACE_INHERIT, _SC_TRACE_LOG }; enum { _CS_PATH, _CS_V6_WIDTH_RESTRICTED_ENVS, _CS_GNU_LIBC_VERSION, _CS_GNU_LIBPTHREAD_VERSION, _CS_LFS_CFLAGS = 1000, _CS_LFS_LDFLAGS, _CS_LFS_LIBS, _CS_LFS_LINTFLAGS, _CS_LFS64_CFLAGS, _CS_LFS64_LDFLAGS, _CS_LFS64_LIBS, _CS_LFS64_LINTFLAGS, _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, _CS_XBS5_ILP32_OFF32_LDFLAGS, _CS_XBS5_ILP32_OFF32_LIBS, _CS_XBS5_ILP32_OFF32_LINTFLAGS, _CS_XBS5_ILP32_OFFBIG_CFLAGS, _CS_XBS5_ILP32_OFFBIG_LDFLAGS, _CS_XBS5_ILP32_OFFBIG_LIBS, _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, _CS_XBS5_LP64_OFF64_CFLAGS, _CS_XBS5_LP64_OFF64_LDFLAGS, _CS_XBS5_LP64_OFF64_LIBS, _CS_XBS5_LP64_OFF64_LINTFLAGS, _CS_XBS5_LPBIG_OFFBIG_CFLAGS, _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, _CS_XBS5_LPBIG_OFFBIG_LIBS, _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, _CS_POSIX_V6_ILP32_OFF32_CFLAGS, _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, _CS_POSIX_V6_ILP32_OFF32_LIBS, _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, _CS_POSIX_V6_ILP32_OFFBIG_LIBS, _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, _CS_POSIX_V6_LP64_OFF64_CFLAGS, _CS_POSIX_V6_LP64_OFF64_LDFLAGS, _CS_POSIX_V6_LP64_OFF64_LIBS, _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS }; # 526 "/usr/include/unistd.h" 2 3 4 extern long int pathconf (__const char *__path, int __name) ; extern long int fpathconf (int __fd, int __name) ; extern long int sysconf (int __name) __attribute__ ((__const__)); extern size_t confstr (int __name, char *__buf, size_t __len) ; extern __pid_t getpid (void) ; extern __pid_t getppid (void) ; extern __pid_t getpgrp (void) ; # 561 "/usr/include/unistd.h" 3 4 extern __pid_t __getpgid (__pid_t __pid) ; extern __pid_t getpgid (__pid_t __pid) ; extern int setpgid (__pid_t __pid, __pid_t __pgid) ; # 587 "/usr/include/unistd.h" 3 4 extern int setpgrp (void) ; # 605 "/usr/include/unistd.h" 3 4 extern __pid_t setsid (void) ; extern __pid_t getsid (__pid_t __pid) ; extern __uid_t getuid (void) ; extern __uid_t geteuid (void) ; extern __gid_t getgid (void) ; extern __gid_t getegid (void) ; extern int getgroups (int __size, __gid_t __list[]) ; extern int group_member (__gid_t __gid) ; extern int setuid (__uid_t __uid) ; extern int setreuid (__uid_t __ruid, __uid_t __euid) ; extern int seteuid (__uid_t __uid) ; extern int setgid (__gid_t __gid) ; extern int setregid (__gid_t __rgid, __gid_t __egid) ; extern int setegid (__gid_t __gid) ; extern int getresuid (__uid_t *__euid, __uid_t *__ruid, __uid_t *__suid); extern int getresgid (__gid_t *__egid, __gid_t *__rgid, __gid_t *__sgid); extern int setresuid (__uid_t __euid, __uid_t __ruid, __uid_t __suid); extern int setresgid (__gid_t __egid, __gid_t __rgid, __gid_t __sgid); extern __pid_t fork (void) ; extern __pid_t vfork (void) ; extern char *ttyname (int __fd) ; extern int ttyname_r (int __fd, char *__buf, size_t __buflen) ; extern int isatty (int __fd) ; extern int ttyslot (void) ; extern int link (__const char *__from, __const char *__to) ; extern int symlink (__const char *__from, __const char *__to) ; extern int readlink (__const char *__restrict __path, char *__restrict __buf, size_t __len) ; extern int unlink (__const char *__name) ; extern int rmdir (__const char *__path) ; extern __pid_t tcgetpgrp (int __fd) ; extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) ; extern char *getlogin (void); extern int getlogin_r (char *__name, size_t __name_len); extern int setlogin (__const char *__name) ; # 775 "/usr/include/unistd.h" 3 4 # 1 "../include/getopt.h" 1 3 4 # 36 "../include/getopt.h" 3 4 extern char *optarg; # 50 "../include/getopt.h" 3 4 extern int optind; extern int opterr; extern int optopt; # 82 "../include/getopt.h" 3 4 struct option { const char *name; int has_arg; int *flag; int val; }; # 113 "../include/getopt.h" 3 4 extern int getopt (int argc, char *const *argv, const char *shortopts); extern int getopt_long (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind); extern int getopt_long_only (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind); extern int _getopt_internal (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind, int long_only); # 776 "/usr/include/unistd.h" 2 3 4 extern int gethostname (char *__name, size_t __len) ; extern int sethostname (__const char *__name, size_t __len) ; extern int sethostid (long int __id) ; extern int getdomainname (char *__name, size_t __len) ; extern int setdomainname (__const char *__name, size_t __len) ; extern int vhangup (void) ; extern int revoke (__const char *__file) ; extern int profil (unsigned short int *__sample_buffer, size_t __size, size_t __offset, unsigned int __scale) ; extern int acct (__const char *__name) ; extern char *getusershell (void) ; extern void endusershell (void) ; extern void setusershell (void) ; extern int daemon (int __nochdir, int __noclose) ; extern int chroot (__const char *__path) ; extern char *getpass (__const char *__prompt); # 857 "/usr/include/unistd.h" 3 4 extern int fsync (int __fd); extern long int gethostid (void); extern void sync (void) ; extern int getpagesize (void) __attribute__ ((__const__)); extern int truncate (__const char *__file, __off_t __length) ; # 888 "/usr/include/unistd.h" 3 4 extern int truncate64 (__const char *__file, __off64_t __length) ; extern int ftruncate (int __fd, __off_t __length) ; # 903 "/usr/include/unistd.h" 3 4 extern int ftruncate64 (int __fd, __off64_t __length) ; extern int getdtablesize (void) ; # 918 "/usr/include/unistd.h" 3 4 extern int brk (void *__addr) ; extern void *sbrk (intptr_t __delta) ; # 939 "/usr/include/unistd.h" 3 4 extern long int syscall (long int __sysno, ...) ; # 962 "/usr/include/unistd.h" 3 4 extern int lockf (int __fd, int __cmd, __off_t __len); # 972 "/usr/include/unistd.h" 3 4 extern int lockf64 (int __fd, int __cmd, __off64_t __len); # 993 "/usr/include/unistd.h" 3 4 extern int fdatasync (int __fildes) ; extern char *crypt (__const char *__key, __const char *__salt) ; extern void encrypt (char *__block, int __edflag) ; extern void swab (__const void *__restrict __from, void *__restrict __to, ssize_t __n) ; extern char *ctermid (char *__s) ; # 70 "sysdep.h" 2 # 1 "../include/fopen-same.h" 1 # 76 "sysdep.h" 2 # 1 "/usr/include/fcntl.h" 1 3 4 # 29 "/usr/include/fcntl.h" 3 4 # 1 "/usr/include/bits/fcntl.h" 1 3 4 # 136 "/usr/include/bits/fcntl.h" 3 4 struct flock { short int l_type; short int l_whence; __off_t l_start; __off_t l_len; __pid_t l_pid; }; struct flock64 { short int l_type; short int l_whence; __off64_t l_start; __off64_t l_len; __pid_t l_pid; }; # 181 "/usr/include/bits/fcntl.h" 3 4 extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) ; # 34 "/usr/include/fcntl.h" 2 3 4 # 63 "/usr/include/fcntl.h" 3 4 extern int fcntl (int __fd, int __cmd, ...); # 72 "/usr/include/fcntl.h" 3 4 extern int open (__const char *__file, int __oflag, ...); # 81 "/usr/include/fcntl.h" 3 4 extern int open64 (__const char *__file, int __oflag, ...); # 90 "/usr/include/fcntl.h" 3 4 extern int creat (__const char *__file, __mode_t __mode); # 100 "/usr/include/fcntl.h" 3 4 extern int creat64 (__const char *__file, __mode_t __mode); # 136 "/usr/include/fcntl.h" 3 4 extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len, int __advise) ; # 148 "/usr/include/fcntl.h" 3 4 extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len, int __advise) ; # 158 "/usr/include/fcntl.h" 3 4 extern int posix_fallocate (int __fd, __off_t __offset, __off_t __len); # 169 "/usr/include/fcntl.h" 3 4 extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len); # 80 "sysdep.h" 2 # 106 "sysdep.h" # 1 "../include/filenames.h" 1 # 107 "sysdep.h" 2 # 135 "sysdep.h" # 1 "/usr/include/libintl.h" 1 3 4 # 35 "/usr/include/libintl.h" 3 4 extern char *gettext (__const char *__msgid) ; extern char *dgettext (__const char *__domainname, __const char *__msgid) ; extern char *__dgettext (__const char *__domainname, __const char *__msgid) __attribute__ ((__format_arg__ (2))); extern char *dcgettext (__const char *__domainname, __const char *__msgid, int __category) ; extern char *__dcgettext (__const char *__domainname, __const char *__msgid, int __category) __attribute__ ((__format_arg__ (2))); extern char *ngettext (__const char *__msgid1, __const char *__msgid2, unsigned long int __n) __attribute__ ((__format_arg__ (1))) __attribute__ ((__format_arg__ (2))); extern char *dngettext (__const char *__domainname, __const char *__msgid1, __const char *__msgid2, unsigned long int __n) __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); extern char *dcngettext (__const char *__domainname, __const char *__msgid1, __const char *__msgid2, unsigned long int __n, int __category) __attribute__ ((__format_arg__ (2))) __attribute__ ((__format_arg__ (3))); extern char *textdomain (__const char *__domainname) ; extern char *bindtextdomain (__const char *__domainname, __const char *__dirname) ; extern char *bind_textdomain_codeset (__const char *__domainname, __const char *__codeset) ; # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 100 "/usr/include/libintl.h" 2 3 4 # 1 "/usr/include/locale.h" 1 3 4 # 29 "/usr/include/locale.h" 3 4 # 1 "/usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.3/include/stddef.h" 1 3 4 # 30 "/usr/include/locale.h" 2 3 4 # 1 "/usr/include/bits/locale.h" 1 3 4 # 27 "/usr/include/bits/locale.h" 3 4 enum { __LC_CTYPE = 0, __LC_NUMERIC = 1, __LC_TIME = 2, __LC_COLLATE = 3, __LC_MONETARY = 4, __LC_MESSAGES = 5, __LC_ALL = 6, __LC_PAPER = 7, __LC_NAME = 8, __LC_ADDRESS = 9, __LC_TELEPHONE = 10, __LC_MEASUREMENT = 11, __LC_IDENTIFICATION = 12 }; # 31 "/usr/include/locale.h" 2 3 4 # 52 "/usr/include/locale.h" 3 4 struct lconv { char *decimal_point; char *thousands_sep; char *grouping; char *int_curr_symbol; char *currency_symbol; char *mon_decimal_point; char *mon_thousands_sep; char *mon_grouping; char *positive_sign; char *negative_sign; char int_frac_digits; char frac_digits; char p_cs_precedes; char p_sep_by_space; char n_cs_precedes; char n_sep_by_space; char p_sign_posn; char n_sign_posn; char int_p_cs_precedes; char int_p_sep_by_space; char int_n_cs_precedes; char int_n_sep_by_space; char int_p_sign_posn; char int_n_sign_posn; # 119 "/usr/include/locale.h" 3 4 }; extern char *setlocale (int __category, __const char *__locale) ; extern struct lconv *localeconv (void) ; # 148 "/usr/include/locale.h" 3 4 typedef __locale_t locale_t; extern __locale_t newlocale (int __category_mask, __const char *__locale, __locale_t __base) ; # 189 "/usr/include/locale.h" 3 4 extern __locale_t duplocale (__locale_t __dataset) ; extern void freelocale (__locale_t __dataset) ; extern __locale_t uselocale (__locale_t __dataset) ; # 103 "/usr/include/libintl.h" 2 3 4 # 120 "/usr/include/libintl.h" 3 4 # 136 "sysdep.h" 2 # 42 "coffgen.c" 2 # 1 "libbfd.h" 1 # 49 "libbfd.h" struct bfd_in_memory { bfd_size_type size; bfd_byte *buffer; }; struct artdata { file_ptr first_file_filepos; struct ar_cache *cache; bfd *archive_head; carsym *symdefs; symindex symdef_count; char *extended_names; long armap_timestamp; file_ptr armap_datepos; void *tdata; }; struct areltdata { char * arch_header; unsigned int parsed_size; char *filename; }; extern void *bfd_malloc (bfd_size_type); extern void *bfd_realloc (void *, bfd_size_type); extern void *bfd_zmalloc (bfd_size_type); extern bfd_error_handler_type _bfd_error_handler; extern void *bfd_alloc (bfd *, bfd_size_type); extern void *bfd_zalloc (bfd *, bfd_size_type); extern void bfd_release (bfd *, void *); bfd * _bfd_create_empty_archive_element_shell (bfd *obfd); bfd * _bfd_look_for_bfd_in_cache (bfd *, file_ptr); bfd_boolean _bfd_add_bfd_to_archive_cache (bfd *, file_ptr, bfd *); bfd_boolean _bfd_generic_mkarchive (bfd *abfd); const bfd_target *bfd_generic_archive_p (bfd *abfd); bfd_boolean bfd_slurp_armap (bfd *abfd); bfd_boolean bfd_slurp_bsd_armap_f2 (bfd *abfd); bfd_boolean _bfd_slurp_extended_name_table (bfd *abfd); extern bfd_boolean _bfd_construct_extended_name_table (bfd *, bfd_boolean, char **, bfd_size_type *); bfd_boolean _bfd_write_archive_contents (bfd *abfd); bfd_boolean _bfd_compute_and_write_armap (bfd *, unsigned int elength); bfd *_bfd_get_elt_at_filepos (bfd *archive, file_ptr filepos); extern bfd *_bfd_generic_get_elt_at_index (bfd *, symindex); bfd * _bfd_new_bfd (void); void _bfd_delete_bfd (bfd *); bfd_boolean bfd_false (bfd *ignore); bfd_boolean bfd_true (bfd *ignore); void *bfd_nullvoidptr (bfd *ignore); int bfd_0 (bfd *ignore); unsigned int bfd_0u (bfd *ignore); long bfd_0l (bfd *ignore); long _bfd_n1 (bfd *ignore); void bfd_void (bfd *ignore); bfd *_bfd_new_bfd_contained_in (bfd *); const bfd_target *_bfd_dummy_target (bfd *abfd); void bfd_dont_truncate_arname (bfd *abfd, const char *filename, char *hdr); void bfd_bsd_truncate_arname (bfd *abfd, const char *filename, char *hdr); void bfd_gnu_truncate_arname (bfd *abfd, const char *filename, char *hdr); bfd_boolean bsd_write_armap (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count, int stridx); bfd_boolean coff_write_armap (bfd *arch, unsigned int elength, struct orl *map, unsigned int orl_count, int stridx); extern void *_bfd_generic_read_ar_hdr (bfd *); extern void *_bfd_generic_read_ar_hdr_mag (bfd *, const char *); bfd * bfd_generic_openr_next_archived_file (bfd *archive, bfd *last_file); int bfd_generic_stat_arch_elt (bfd *, struct stat *); # 201 "libbfd.h" extern bfd_boolean _bfd_generic_get_section_contents (bfd *, asection *, void *, file_ptr, bfd_size_type); extern bfd_boolean _bfd_generic_get_section_contents_in_window (bfd *, asection *, bfd_window *, file_ptr, bfd_size_type); # 225 "libbfd.h" extern char *_bfd_nocore_core_file_failing_command (bfd *); extern int _bfd_nocore_core_file_failing_signal (bfd *); extern bfd_boolean _bfd_nocore_core_file_matches_executable_p (bfd *, bfd *); # 259 "libbfd.h" extern bfd_boolean _bfd_archive_bsd_construct_extended_name_table (bfd *, char **, bfd_size_type *, const char **); # 269 "libbfd.h" extern bfd_boolean _bfd_archive_bsd_update_armap_timestamp (bfd *); extern bfd_boolean _bfd_archive_coff_construct_extended_name_table (bfd *, char **, bfd_size_type *, const char **); # 341 "libbfd.h" extern bfd_boolean _bfd_generic_set_section_contents (bfd *, asection *, void *, file_ptr, bfd_size_type); # 391 "libbfd.h" extern bfd_boolean bfd_generic_is_local_label_name (bfd *, const char *); extern long _bfd_generic_read_minisymbols (bfd *, bfd_boolean, void **, unsigned int *); extern asymbol *_bfd_generic_minisymbol_to_symbol (bfd *, bfd_boolean, const void *, asymbol *); extern bfd_boolean _bfd_stab_section_find_nearest_line (bfd *, asymbol **, asection *, bfd_vma, bfd_boolean *, const char **, const char **, unsigned int *, void **); extern bfd_boolean _bfd_dwarf1_find_nearest_line (bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, unsigned int *); extern bfd_boolean _bfd_dwarf2_find_nearest_line (bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, unsigned int *, unsigned int, void **); extern struct bfd_hash_entry *bfd_section_hash_newfunc (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); extern struct bfd_hash_entry *_bfd_link_hash_newfunc (struct bfd_hash_entry *entry, struct bfd_hash_table *table, const char *string); extern bfd_boolean _bfd_link_hash_table_init (struct bfd_link_hash_table *, bfd *, struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); extern struct bfd_link_hash_table *_bfd_generic_link_hash_table_create (bfd *); extern void _bfd_generic_link_hash_table_free (struct bfd_link_hash_table *); extern bfd_boolean _bfd_generic_link_add_symbols (bfd *, struct bfd_link_info *); extern bfd_boolean _bfd_generic_link_add_symbols_collect (bfd *, struct bfd_link_info *); extern bfd_boolean _bfd_generic_link_add_archive_symbols (bfd *, struct bfd_link_info *, bfd_boolean (*) (bfd *, struct bfd_link_info *, bfd_boolean *)); typedef struct bfd_link_hash_entry _bfd_link_hash_entry; extern bfd_boolean _bfd_generic_link_add_one_symbol (struct bfd_link_info *, bfd *, const char *name, flagword, asection *, bfd_vma, const char *, bfd_boolean copy, bfd_boolean constructor, struct bfd_link_hash_entry **); extern void _bfd_generic_link_just_syms (asection *, struct bfd_link_info *); extern bfd_boolean _bfd_generic_final_link (bfd *, struct bfd_link_info *); extern bfd_boolean _bfd_generic_link_split_section (bfd *, struct bfd_section *); extern bfd_boolean _bfd_generic_reloc_link_order (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *); extern bfd_boolean _bfd_default_link_order (bfd *, struct bfd_link_info *, asection *, struct bfd_link_order *); extern unsigned int _bfd_count_link_order_relocs (struct bfd_link_order *); extern bfd_reloc_status_type _bfd_final_link_relocate (reloc_howto_type *, bfd *, asection *, bfd_byte *, bfd_vma, bfd_vma, bfd_vma); extern bfd_reloc_status_type _bfd_relocate_contents (reloc_howto_type *, bfd *, bfd_vma, bfd_byte *); extern bfd_boolean _bfd_link_section_stabs (bfd *, void **, asection *, asection *, void **, bfd_size_type *); extern bfd_boolean _bfd_discard_section_stabs (bfd *, asection *, void *, bfd_boolean (*) (bfd_vma, void *), void *); extern bfd_boolean _bfd_write_section_stabs (bfd *, void **, asection *, void **, bfd_byte *); extern bfd_boolean _bfd_write_stab_strings (bfd *, void **); extern bfd_vma _bfd_stab_section_offset (bfd *, void **, asection *, void **, bfd_vma); extern bfd_boolean _bfd_merge_section (bfd *, void **, asection *, void **); extern bfd_boolean _bfd_merge_sections (bfd *, void *, void (*) (bfd *, asection *)); extern bfd_boolean _bfd_write_merged_section (bfd *, asection *, void *); extern bfd_vma _bfd_merged_section_offset (bfd *, asection **, void *, bfd_vma, bfd_vma); extern struct bfd_strtab_hash *_bfd_stringtab_init (void); extern struct bfd_strtab_hash *_bfd_xcoff_stringtab_init (void); extern void _bfd_stringtab_free (struct bfd_strtab_hash *); extern bfd_size_type _bfd_stringtab_size (struct bfd_strtab_hash *); extern bfd_size_type _bfd_stringtab_add (struct bfd_strtab_hash *, const char *, bfd_boolean hash, bfd_boolean copy); extern bfd_boolean _bfd_stringtab_emit (bfd *, struct bfd_strtab_hash *); extern bfd_boolean _bfd_generic_verify_endian_match (bfd *, bfd *); # 582 "libbfd.h" void bfd_assert (const char*,int); extern void _bfd_abort (const char *, int, const char *) __attribute__ ((__noreturn__)); # 602 "libbfd.h" FILE * bfd_cache_lookup_worker (bfd *); extern bfd *bfd_last_cache; extern const bfd_target * const *bfd_target_vector; extern const bfd_target *bfd_default_vector[]; extern const bfd_target * const *bfd_associated_vector; struct ecoff_find_line; extern bfd_boolean _bfd_ecoff_locate_line (bfd *, asection *, bfd_vma, struct ecoff_debug_info * const, const struct ecoff_debug_swap * const, struct ecoff_find_line *, const char **, const char **, unsigned int *); extern bfd_boolean _bfd_ecoff_get_accumulated_pdr (void *, bfd_byte *); extern bfd_boolean _bfd_ecoff_get_accumulated_sym (void *, bfd_byte *); extern bfd_boolean _bfd_ecoff_get_accumulated_ss (void *, bfd_byte *); extern bfd_vma _bfd_get_gp_value (bfd *); extern void _bfd_set_gp_value (bfd *, bfd_vma); extern bfd_boolean _bfd_sh_align_load_span (bfd *, asection *, bfd_byte *, bfd_boolean (*) (bfd *, asection *, void *, bfd_byte *, bfd_vma), void *, bfd_vma **, bfd_vma *, bfd_vma, bfd_vma, bfd_boolean *); bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int); unsigned int bfd_log2 (bfd_vma x); struct _bfd_window_internal { struct _bfd_window_internal *next; void *data; bfd_size_type size; int refcount : 31; unsigned mapped : 1; }; extern bfd *bfd_last_cache; bfd_boolean bfd_cache_init (bfd *abfd); bfd_boolean bfd_cache_close (bfd *abfd); FILE* bfd_open_file (bfd *abfd); FILE *bfd_cache_lookup_worker (bfd *abfd); # 1489 "libbfd.h" reloc_howto_type *bfd_default_reloc_type_lookup (bfd *abfd, bfd_reloc_code_real_type code); bfd_boolean bfd_generic_relax_section (bfd *abfd, asection *section, struct bfd_link_info *, bfd_boolean *); bfd_boolean bfd_generic_gc_sections (bfd *, struct bfd_link_info *); bfd_boolean bfd_generic_merge_sections (bfd *, struct bfd_link_info *); bfd_byte *bfd_generic_get_relocated_section_contents (bfd *abfd, struct bfd_link_info *link_info, struct bfd_link_order *link_order, bfd_byte *data, bfd_boolean relocatable, asymbol **symbols); extern const bfd_arch_info_type bfd_default_arch_struct; bfd_boolean bfd_default_set_arch_mach (bfd *abfd, enum bfd_architecture arch, unsigned long mach); const bfd_arch_info_type *bfd_default_compatible (const bfd_arch_info_type *a, const bfd_arch_info_type *b); bfd_boolean bfd_default_scan (const struct bfd_arch_info *info, const char *string); struct elf_internal_shdr *bfd_elf_find_section (bfd *abfd, char *name); # 43 "coffgen.c" 2 # 1 "../include/coff/internal.h" 1 # 34 "../include/coff/internal.h" struct internal_extra_pe_filehdr { unsigned short e_magic; unsigned short e_cblp; unsigned short e_cp; unsigned short e_crlc; unsigned short e_cparhdr; unsigned short e_minalloc; unsigned short e_maxalloc; unsigned short e_ss; unsigned short e_sp; unsigned short e_csum; unsigned short e_ip; unsigned short e_cs; unsigned short e_lfarlc; unsigned short e_ovno; unsigned short e_res[4]; unsigned short e_oemid; unsigned short e_oeminfo; unsigned short e_res2[10]; bfd_vma e_lfanew; unsigned long dos_message[16]; bfd_vma nt_signature; }; struct internal_filehdr { struct internal_extra_pe_filehdr pe; unsigned short f_magic; unsigned short f_nscns; long f_timdat; bfd_vma f_symptr; long f_nsyms; unsigned short f_opthdr; unsigned short f_flags; unsigned short f_target_id; }; # 100 "../include/coff/internal.h" typedef struct _IMAGE_DATA_DIRECTORY { bfd_vma VirtualAddress; long Size; } IMAGE_DATA_DIRECTORY; # 122 "../include/coff/internal.h" struct internal_extra_pe_aouthdr { bfd_vma ImageBase; bfd_vma SectionAlignment; bfd_vma FileAlignment; short MajorOperatingSystemVersion; short MinorOperatingSystemVersion; short MajorImageVersion; short MinorImageVersion; short MajorSubsystemVersion; short MinorSubsystemVersion; long Reserved1; long SizeOfImage; long SizeOfHeaders; long CheckSum; short Subsystem; # 149 "../include/coff/internal.h" short DllCharacteristics; bfd_vma SizeOfStackReserve; bfd_vma SizeOfStackCommit; bfd_vma SizeOfHeapReserve; bfd_vma SizeOfHeapCommit; long LoaderFlags; long NumberOfRvaAndSizes; IMAGE_DATA_DIRECTORY DataDirectory[16]; }; struct internal_aouthdr { short magic; short vstamp; bfd_vma tsize; bfd_vma dsize; bfd_vma bsize; bfd_vma entry; bfd_vma text_start; bfd_vma data_start; unsigned long tagentries; bfd_vma o_toc; short o_snentry; short o_sntext; short o_sndata; short o_sntoc; short o_snloader; short o_snbss; short o_algntext; short o_algndata; short o_modtype; short o_cputype; bfd_vma o_maxstack; bfd_vma o_maxdata; bfd_vma bss_start; bfd_vma gp_value; unsigned long gprmask; unsigned long cprmask[4]; unsigned long fprmask; long o_inlib; long o_sri; long vid[2]; struct internal_extra_pe_aouthdr pe; }; # 300 "../include/coff/internal.h" struct internal_scnhdr { char s_name[(8)]; bfd_vma s_paddr; bfd_vma s_vaddr; bfd_vma s_size; bfd_vma s_scnptr; bfd_vma s_relptr; bfd_vma s_lnnoptr; unsigned long s_nreloc; unsigned long s_nlnno; long s_flags; long s_align; unsigned char s_page; }; # 356 "../include/coff/internal.h" struct internal_lineno { union { bfd_signed_vma l_symndx; bfd_signed_vma l_paddr; } l_addr; unsigned long l_lnno; }; struct internal_syment { union { char _n_name[8]; struct { long _n_zeroes; long _n_offset; } _n_n; char *_n_nptr[2]; } _n; bfd_vma n_value; short n_scnum; unsigned short n_flags; unsigned short n_type; unsigned char n_sclass; unsigned char n_numaux; }; # 446 "../include/coff/internal.h" union internal_auxent { struct { union { long l; struct coff_ptr_struct *p; } x_tagndx; union { struct { unsigned short x_lnno; unsigned short x_size; } x_lnsz; long x_fsize; } x_misc; union { struct { bfd_signed_vma x_lnnoptr; union { long l; struct coff_ptr_struct *p; } x_endndx; } x_fcn; struct { unsigned short x_dimen[4]; } x_ary; } x_fcnary; unsigned short x_tvndx; } x_sym; union { char x_fname[14]; struct { long x_zeroes; long x_offset; } x_n; } x_file; struct { long x_scnlen; unsigned short x_nreloc; unsigned short x_nlinno; unsigned long x_checksum; unsigned short x_associated; unsigned char x_comdat; } x_scn; struct { long x_tvfill; unsigned short x_tvlen; unsigned short x_tvran[2]; } x_tv; struct { union { bfd_signed_vma l; struct coff_ptr_struct *p; } x_scnlen; long x_parmhash; unsigned short x_snhash; unsigned char x_smtyp; unsigned char x_smclas; long x_stab; unsigned short x_snstab; } x_csect; # 570 "../include/coff/internal.h" struct { long x_stindx; } x_sc; struct { unsigned long x_balntry; } x_bal; struct { unsigned long x_timestamp; char x_idstring[20]; } x_ident; }; struct internal_reloc { bfd_vma r_vaddr; long r_symndx; unsigned short r_type; unsigned char r_size; unsigned char r_extern; unsigned long r_offset; }; # 44 "coffgen.c" 2 # 1 "libcoff.h" 1 # 27 "libcoff.h" # 1 "../include/bfdlink.h" 1 # 26 "../include/bfdlink.h" 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 }; struct bfd_link_hash_entry { struct bfd_hash_entry root; enum bfd_link_hash_type type; # 105 "../include/bfdlink.h" struct bfd_link_hash_entry *next; union { struct { bfd *abfd; } undef; struct { bfd_vma value; asection *section; } def; struct { struct bfd_link_hash_entry *link; const char *warning; } i; struct { # 139 "../include/bfdlink.h" bfd_size_type size; struct bfd_link_hash_common_entry { unsigned int alignment_power; asection *section; } *p; } c; } u; }; struct bfd_link_hash_table { struct bfd_hash_table table; const bfd_target *creator; struct bfd_link_hash_entry *undefs; struct bfd_link_hash_entry *undefs_tail; enum bfd_link_hash_table_type type; }; extern 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); extern struct bfd_link_hash_entry *bfd_wrapped_link_hash_lookup (bfd *, struct bfd_link_info *, const char *, bfd_boolean, bfd_boolean, bfd_boolean); extern void bfd_link_hash_traverse (struct bfd_link_hash_table *, bfd_boolean (*) (struct bfd_link_hash_entry *, void *), void *); extern void bfd_link_add_undef (struct bfd_link_hash_table *, struct bfd_link_hash_entry *); struct bfd_sym_chain { struct bfd_sym_chain *next; const char *name; }; enum report_method { RM_NOT_YET_SET = 0, RM_IGNORE, RM_GENERATE_WARNING, RM_GENERATE_ERROR }; struct bfd_link_info { unsigned int relocatable: 1; unsigned int emitrelocations: 1; unsigned int task_link: 1; unsigned int shared: 1; unsigned int symbolic: 1; unsigned int export_dynamic: 1; unsigned int static_link: 1; unsigned int traditional_format: 1; unsigned int optimize: 1; unsigned int allow_multiple_definition: 1; unsigned int allow_undefined_version: 1; unsigned int keep_memory: 1; unsigned int notice_all: 1; unsigned int nocopyreloc: 1; unsigned int new_dtags: 1; unsigned int combreloc: 1; unsigned int eh_frame_hdr: 1; unsigned int strip_discarded: 1; unsigned int relax_finalizing: 1; unsigned int pie: 1; unsigned int executable : 1; unsigned int execstack: 1; unsigned int noexecstack: 1; enum report_method unresolved_syms_in_objects; enum report_method unresolved_syms_in_shared_libs; enum bfd_link_strip strip; enum bfd_link_discard discard; enum bfd_link_common_skip_ar_aymbols common_skip_ar_aymbols; const struct bfd_link_callbacks *callbacks; struct bfd_link_hash_table *hash; struct bfd_hash_table *keep_hash; struct bfd_hash_table *notice_hash; struct bfd_hash_table *wrap_hash; bfd *input_bfds; asection *create_object_symbols_section; struct bfd_sym_chain *gc_sym_list; void *base_file; const char *init_function; const char *fini_function; int mpc860c0; int pei386_auto_import; int pei386_runtime_pseudo_reloc; unsigned int spare_dynamic_tags; bfd_vma flags; bfd_vma flags_1; }; # 401 "../include/bfdlink.h" struct bfd_link_callbacks { bfd_boolean (*add_archive_element) (struct bfd_link_info *, bfd *abfd, const char *name); bfd_boolean (*multiple_definition) (struct bfd_link_info *, const char *name, bfd *obfd, asection *osec, bfd_vma oval, bfd *nbfd, asection *nsec, bfd_vma nval); # 430 "../include/bfdlink.h" bfd_boolean (*multiple_common) (struct bfd_link_info *, const char *name, bfd *obfd, enum bfd_link_hash_type otype, bfd_vma osize, bfd *nbfd, enum bfd_link_hash_type ntype, bfd_vma nsize); bfd_boolean (*add_to_set) (struct bfd_link_info *, struct bfd_link_hash_entry *entry, bfd_reloc_code_real_type reloc, bfd *abfd, asection *sec, bfd_vma value); bfd_boolean (*constructor) (struct bfd_link_info *, bfd_boolean constructor, const char *name, bfd *abfd, asection *sec, bfd_vma value); bfd_boolean (*warning) (struct bfd_link_info *, const char *warning, const char *symbol, bfd *abfd, asection *section, bfd_vma address); bfd_boolean (*undefined_symbol) (struct bfd_link_info *, const char *name, bfd *abfd, asection *section, bfd_vma address, bfd_boolean fatal); bfd_boolean (*reloc_overflow) (struct bfd_link_info *, const char *name, const char *reloc_name, bfd_vma addend, bfd *abfd, asection *section, bfd_vma address); bfd_boolean (*reloc_dangerous) (struct bfd_link_info *, const char *message, bfd *abfd, asection *section, bfd_vma address); bfd_boolean (*unattached_reloc) (struct bfd_link_info *, const char *name, bfd *abfd, asection *section, bfd_vma address); bfd_boolean (*notice) (struct bfd_link_info *, const char *name, bfd *abfd, asection *section, bfd_vma address); bfd_boolean (*error_handler) (int id, const char *fmt, ...); }; 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 }; struct bfd_link_order { struct bfd_link_order *next; enum bfd_link_order_type type; bfd_vma offset; bfd_size_type size; union { struct { asection *section; } indirect; struct { unsigned int size; bfd_byte *contents; } data; struct { struct bfd_link_order_reloc *p; } reloc; } u; }; # 588 "../include/bfdlink.h" struct bfd_link_order_reloc { bfd_reloc_code_real_type reloc; union { asection *section; const char *name; } u; bfd_vma addend; }; extern struct bfd_link_order *bfd_new_link_order (bfd *, asection *); # 622 "../include/bfdlink.h" struct bfd_elf_version_expr { struct bfd_elf_version_expr *next; const char *pattern; const char *symbol; unsigned int symver : 1; unsigned int script : 1; unsigned int mask : 3; }; struct bfd_elf_version_expr_head { struct bfd_elf_version_expr *list; void *htab; struct bfd_elf_version_expr *remaining; unsigned int mask; }; struct bfd_elf_version_deps { struct bfd_elf_version_deps *next; struct bfd_elf_version_tree *version_needed; }; struct bfd_elf_version_tree { struct bfd_elf_version_tree *next; const char *name; unsigned int vernum; struct bfd_elf_version_expr_head globals; struct bfd_elf_version_expr_head locals; struct bfd_elf_version_deps *deps; unsigned int name_indx; int used; struct bfd_elf_version_expr *(*match) (struct bfd_elf_version_expr_head *head, struct bfd_elf_version_expr *prev, const char *sym); }; # 28 "libcoff.h" 2 # 54 "libcoff.h" typedef struct coff_tdata { struct coff_symbol_struct *symbols; unsigned int *conversion_table; int conv_table_size; file_ptr sym_filepos; struct coff_ptr_struct *raw_syments; unsigned long raw_syment_count; long int relocbase; unsigned local_n_btmask; unsigned local_n_btshft; unsigned local_n_tmask; unsigned local_n_tshift; unsigned local_symesz; unsigned local_auxesz; unsigned local_linesz; void * external_syms; bfd_boolean keep_syms; char *strings; bfd_boolean keep_strings; bfd_boolean strings_written; int pe; struct coff_link_hash_entry **sym_hashes; int *local_toc_sym_map; struct bfd_link_info *link_info; void * line_info; void * dwarf2_find_line_info; long timestamp; flagword flags; } coff_data_type; typedef struct pe_tdata { coff_data_type coff; struct internal_extra_pe_aouthdr pe_opthdr; int dll; int has_reloc_section; bfd_boolean (*in_reloc_p) (bfd *, reloc_howto_type *); flagword real_flags; int target_subsystem; bfd_boolean force_minimum_alignment; } pe_data_type; struct xcoff_tdata { coff_data_type coff; bfd_boolean xcoff64; bfd_boolean full_aouthdr; bfd_vma toc; int sntoc; int snentry; int text_align_power; int data_align_power; short modtype; short cputype; bfd_vma maxdata; bfd_vma maxstack; asection **csects; unsigned long *debug_indices; unsigned int import_file_id; }; # 187 "libcoff.h" struct coff_section_tdata { struct internal_reloc *relocs; bfd_boolean keep_relocs; bfd_byte *contents; bfd_boolean keep_contents; bfd_vma offset; unsigned int i; const char *function; int line_base; void * stab_info; void * tdata; }; struct xcoff_section_tdata { asection *enclosing; unsigned int lineno_count; unsigned long first_symndx; unsigned long last_symndx; }; struct pei_section_tdata { bfd_size_type virt_size; long pe_flags; }; struct coff_link_hash_entry { struct bfd_link_hash_entry root; long indx; unsigned short type; unsigned char class; char numaux; bfd *auxbfd; union internal_auxent *aux; unsigned short coff_link_hash_flags; }; struct coff_link_hash_table { struct bfd_link_hash_table root; void * stab_info; }; # 306 "libcoff.h" extern const bfd_target *coff_object_p (bfd *); extern struct bfd_section *coff_section_from_bfd_index (bfd *, int); extern long coff_get_symtab_upper_bound (bfd *); extern long coff_canonicalize_symtab (bfd *, asymbol **); extern int coff_count_linenumbers (bfd *); extern struct coff_symbol_struct *coff_symbol_from (bfd *, asymbol *); extern bfd_boolean coff_renumber_symbols (bfd *, int *); extern void coff_mangle_symbols (bfd *); extern bfd_boolean coff_write_symbols (bfd *); extern bfd_boolean coff_write_linenumbers (bfd *); extern alent *coff_get_lineno (bfd *, asymbol *); extern asymbol *coff_section_symbol (bfd *, char *); extern bfd_boolean _bfd_coff_get_external_symbols (bfd *); extern const char *_bfd_coff_read_string_table (bfd *); extern bfd_boolean _bfd_coff_free_symbols (bfd *); extern struct coff_ptr_struct *coff_get_normalized_symtab (bfd *); extern long coff_get_reloc_upper_bound (bfd *, sec_ptr); extern asymbol *coff_make_empty_symbol (bfd *); extern void coff_print_symbol (bfd *, void * filep, asymbol *, bfd_print_symbol_type); extern void coff_get_symbol_info (bfd *, asymbol *, symbol_info *ret); extern bfd_boolean _bfd_coff_is_local_label_name (bfd *, const char *); extern asymbol *coff_bfd_make_debug_symbol (bfd *, void *, unsigned long); extern bfd_boolean coff_find_nearest_line (bfd *, asection *, asymbol **, bfd_vma, const char **, const char **, unsigned int *); extern int coff_sizeof_headers (bfd *, bfd_boolean); extern bfd_boolean bfd_coff_reloc16_relax_section (bfd *, asection *, struct bfd_link_info *, bfd_boolean *); extern bfd_byte *bfd_coff_reloc16_get_relocated_section_contents (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *, bfd_boolean, asymbol **); extern bfd_vma bfd_coff_reloc16_get_value (arelent *, struct bfd_link_info *, asection *); extern void bfd_perform_slip (bfd *, unsigned int, asection *, bfd_vma); # 375 "libcoff.h" struct coff_debug_merge_element { struct coff_debug_merge_element *next; const char *name; unsigned int type; long tagndx; }; struct coff_debug_merge_type { struct coff_debug_merge_type *next; int class; long indx; struct coff_debug_merge_element *elements; }; struct coff_debug_merge_hash_entry { struct bfd_hash_entry root; struct coff_debug_merge_type *types; }; struct coff_debug_merge_hash_table { struct bfd_hash_table root; }; # 443 "libcoff.h" struct coff_link_section_info { struct internal_reloc *relocs; struct coff_link_hash_entry **rel_hashes; }; struct coff_final_link_info { struct bfd_link_info *info; bfd *output_bfd; bfd_boolean failed; bfd_boolean global_to_static; struct bfd_strtab_hash *strtab; struct coff_link_section_info *section_info; long last_file_index; struct internal_syment last_file; long last_bf_index; union internal_auxent last_bf; struct coff_debug_merge_hash_table debug_merge; struct internal_syment *internal_syms; asection **sec_ptrs; long *sym_indices; bfd_byte *outsyms; bfd_byte *linenos; bfd_byte *contents; bfd_byte *external_relocs; struct internal_reloc *internal_relocs; }; struct coff_section_alignment_entry { const char *name; unsigned int comparison_length; # 524 "libcoff.h" unsigned int default_alignment_min; unsigned int default_alignment_max; unsigned int alignment_power; }; extern struct bfd_hash_entry *_bfd_coff_link_hash_newfunc (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); extern bfd_boolean _bfd_coff_link_hash_table_init (struct coff_link_hash_table *, bfd *, struct bfd_hash_entry *(*) (struct bfd_hash_entry *, struct bfd_hash_table *, const char *)); extern struct bfd_link_hash_table *_bfd_coff_link_hash_table_create (bfd *); extern const char *_bfd_coff_internal_syment_name (bfd *, const struct internal_syment *, char *); extern bfd_boolean _bfd_coff_link_add_symbols (bfd *, struct bfd_link_info *); extern bfd_boolean _bfd_coff_final_link (bfd *, struct bfd_link_info *); extern struct internal_reloc *_bfd_coff_read_internal_relocs (bfd *, asection *, bfd_boolean, bfd_byte *, bfd_boolean, struct internal_reloc *); extern bfd_boolean _bfd_coff_generic_relocate_section (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **); extern struct bfd_hash_entry *_bfd_coff_debug_merge_hash_newfunc (struct bfd_hash_entry *, struct bfd_hash_table *, const char *); extern bfd_boolean _bfd_coff_write_global_sym (struct coff_link_hash_entry *, void *); extern bfd_boolean _bfd_coff_write_task_globals (struct coff_link_hash_entry *, void *); extern bfd_boolean _bfd_coff_link_input_bfd (struct coff_final_link_info *, bfd *); extern bfd_boolean _bfd_coff_reloc_link_order (bfd *, struct coff_final_link_info *, asection *, struct bfd_link_order *); # 577 "libcoff.h" extern long _bfd_xcoff_get_dynamic_symtab_upper_bound (bfd *); extern long _bfd_xcoff_canonicalize_dynamic_symtab (bfd *, asymbol **); extern long _bfd_xcoff_get_dynamic_reloc_upper_bound (bfd *); extern long _bfd_xcoff_canonicalize_dynamic_reloc (bfd *, arelent **, asymbol **); extern struct bfd_link_hash_table *_bfd_xcoff_bfd_link_hash_table_create (bfd *); extern void _bfd_xcoff_bfd_link_hash_table_free (struct bfd_link_hash_table *); extern bfd_boolean _bfd_xcoff_bfd_link_add_symbols (bfd *, struct bfd_link_info *); extern bfd_boolean _bfd_xcoff_bfd_final_link (bfd *, struct bfd_link_info *); extern bfd_boolean _bfd_ppc_xcoff_relocate_section (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **); extern bfd_boolean ppc_allocate_toc_section (struct bfd_link_info *); extern bfd_boolean ppc_process_before_allocation (bfd *, struct bfd_link_info *); typedef struct coff_ptr_struct { unsigned int offset; unsigned int fix_value : 1; unsigned int fix_tag : 1; unsigned int fix_end : 1; unsigned int fix_scnlen : 1; unsigned int fix_line : 1; union { union internal_auxent auxent; struct internal_syment syment; } u; } combined_entry_type; typedef struct coff_symbol_struct { asymbol symbol; combined_entry_type *native; struct lineno_cache_entry *lineno; bfd_boolean done_lineno; } coff_symbol_type; enum coff_symbol_classification { COFF_SYMBOL_GLOBAL, COFF_SYMBOL_COMMON, COFF_SYMBOL_UNDEFINED, COFF_SYMBOL_LOCAL, COFF_SYMBOL_PE_SECTION }; typedef struct { void (*_bfd_coff_swap_aux_in) (bfd *, void *, int, int, int, int, void *); void (*_bfd_coff_swap_sym_in) (bfd *, void *, void *); void (*_bfd_coff_swap_lineno_in) (bfd *, void *, void *); unsigned int (*_bfd_coff_swap_aux_out) (bfd *, void *, int, int, int, int, void *); unsigned int (*_bfd_coff_swap_sym_out) (bfd *, void *, void *); unsigned int (*_bfd_coff_swap_lineno_out) (bfd *, void *, void *); unsigned int (*_bfd_coff_swap_reloc_out) (bfd *, void *, void *); unsigned int (*_bfd_coff_swap_filehdr_out) (bfd *, void *, void *); unsigned int (*_bfd_coff_swap_aouthdr_out) (bfd *, void *, void *); unsigned int (*_bfd_coff_swap_scnhdr_out) (bfd *, void *, void *); unsigned int _bfd_filhsz; unsigned int _bfd_aoutsz; unsigned int _bfd_scnhsz; unsigned int _bfd_symesz; unsigned int _bfd_auxesz; unsigned int _bfd_relsz; unsigned int _bfd_linesz; unsigned int _bfd_filnmlen; bfd_boolean _bfd_coff_long_filenames; bfd_boolean _bfd_coff_long_section_names; unsigned int _bfd_coff_default_section_alignment_power; bfd_boolean _bfd_coff_force_symnames_in_strings; unsigned int _bfd_coff_debug_string_prefix_length; void (*_bfd_coff_swap_filehdr_in) (bfd *, void *, void *); void (*_bfd_coff_swap_aouthdr_in) (bfd *, void *, void *); void (*_bfd_coff_swap_scnhdr_in) (bfd *, void *, void *); void (*_bfd_coff_swap_reloc_in) (bfd *abfd, void *, void *); bfd_boolean (*_bfd_coff_bad_format_hook) (bfd *, void *); bfd_boolean (*_bfd_coff_set_arch_mach_hook) (bfd *, void *); void * (*_bfd_coff_mkobject_hook) (bfd *, void *, void *); bfd_boolean (*_bfd_styp_to_sec_flags_hook) (bfd *, void *, const char *, asection *, flagword *); void (*_bfd_set_alignment_hook) (bfd *, asection *, void *); bfd_boolean (*_bfd_coff_slurp_symbol_table) (bfd *); bfd_boolean (*_bfd_coff_symname_in_debug) (bfd *, struct internal_syment *); bfd_boolean (*_bfd_coff_pointerize_aux_hook) (bfd *, combined_entry_type *, combined_entry_type *, unsigned int, combined_entry_type *); bfd_boolean (*_bfd_coff_print_aux) (bfd *, FILE *, combined_entry_type *, combined_entry_type *, combined_entry_type *, unsigned int); void (*_bfd_coff_reloc16_extra_cases) (bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *, bfd_byte *, unsigned int *, unsigned int *); int (*_bfd_coff_reloc16_estimate) (bfd *, asection *, arelent *, unsigned int, struct bfd_link_info *); enum coff_symbol_classification (*_bfd_coff_classify_symbol) (bfd *, struct internal_syment *); bfd_boolean (*_bfd_coff_compute_section_file_positions) (bfd *); bfd_boolean (*_bfd_coff_start_final_link) (bfd *, struct bfd_link_info *); bfd_boolean (*_bfd_coff_relocate_section) (bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *, struct internal_reloc *, struct internal_syment *, asection **); reloc_howto_type *(*_bfd_coff_rtype_to_howto) (bfd *, asection *, struct internal_reloc *, struct coff_link_hash_entry *, struct internal_syment *, bfd_vma *); bfd_boolean (*_bfd_coff_adjust_symndx) (bfd *, struct bfd_link_info *, bfd *, asection *, struct internal_reloc *, bfd_boolean *); bfd_boolean (*_bfd_coff_link_add_one_symbol) (struct bfd_link_info *, bfd *, const char *, flagword, asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean, struct bfd_link_hash_entry **); bfd_boolean (*_bfd_coff_link_output_has_begun) (bfd *, struct coff_final_link_info *); bfd_boolean (*_bfd_coff_final_link_postscript) (bfd *, struct coff_final_link_info *); } bfd_coff_backend_data; # 45 "coffgen.c" 2 static void coff_fix_symbol_name (bfd *, asymbol *, combined_entry_type *, bfd_size_type *, asection **, bfd_size_type *); static bfd_boolean coff_write_symbol (bfd *, asymbol *, combined_entry_type *, bfd_vma *, bfd_size_type *, asection **, bfd_size_type *); static bfd_boolean coff_write_alien_symbol (bfd *, asymbol *, bfd_vma *, bfd_size_type *, asection **, bfd_size_type *); static bfd_boolean coff_write_native_symbol (bfd *, coff_symbol_type *, bfd_vma *, bfd_size_type *, asection **, bfd_size_type *); static void coff_pointerize_aux (bfd *, combined_entry_type *, combined_entry_type *, unsigned int, combined_entry_type *); static bfd_boolean make_a_section_from_file (bfd *, struct internal_scnhdr *, unsigned int); static const bfd_target *coff_real_object_p (bfd *, unsigned, struct internal_filehdr *, struct internal_aouthdr *); static void fixup_symbol_value (bfd *, coff_symbol_type *, struct internal_syment *); static char *build_debug_section (bfd *); static char *copy_name (bfd *, char *, size_t); static bfd_boolean make_a_section_from_file (abfd, hdr, target_index) bfd *abfd; struct internal_scnhdr *hdr; unsigned int target_index; { asection *return_section; char *name; bfd_boolean result = 1; flagword flags; name = ((void *)0); if ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_long_section_names) && hdr->s_name[0] == '/') { char buf[(8)]; long strindex; char *p; const char *strings; memcpy (buf, hdr->s_name + 1, (8) - 1); buf[(8) - 1] = '\0'; strindex = strtol (buf, &p, 10); if (*p == '\0' && strindex >= 0) { strings = _bfd_coff_read_string_table (abfd); if (strings == ((void *)0)) return 0; strings += strindex; name = bfd_alloc (abfd, (bfd_size_type) strlen (strings) + 1); if (name == ((void *)0)) return 0; strcpy (name, strings); } } if (name == ((void *)0)) { name = bfd_alloc (abfd, (bfd_size_type) sizeof (hdr->s_name) + 1); if (name == ((void *)0)) return 0; (__extension__ (__builtin_constant_p ((char *) &hdr->s_name[0]) && __builtin_constant_p (sizeof (hdr->s_name)) ? (strlen ((char *) &hdr->s_name[0]) + 1 >= ((size_t) (sizeof (hdr->s_name))) ? (char *) memcpy (name, (char *) &hdr->s_name[0], sizeof (hdr->s_name)) : strncpy (name, (char *) &hdr->s_name[0], sizeof (hdr->s_name))) : strncpy (name, (char *) &hdr->s_name[0], sizeof (hdr->s_name)))); name[sizeof (hdr->s_name)] = 0; } return_section = bfd_make_section_anyway (abfd, name); if (return_section == ((void *)0)) return 0; return_section->vma = hdr->s_vaddr; return_section->lma = hdr->s_paddr; return_section->_raw_size = hdr->s_size; return_section->filepos = hdr->s_scnptr; return_section->rel_filepos = hdr->s_relptr; return_section->reloc_count = hdr->s_nreloc; ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_set_alignment_hook) (abfd, return_section, hdr)); return_section->line_filepos = hdr->s_lnnoptr; return_section->lineno_count = hdr->s_nlnno; return_section->userdata = ((void *)0); return_section->next = (asection *) ((void *)0); return_section->target_index = target_index; if (! ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_styp_to_sec_flags_hook) (abfd, hdr, name, return_section, & flags))) result = 0; return_section->flags = flags; if ((return_section->flags & 0x800) != 0) return_section->lineno_count = 0; if (hdr->s_nreloc != 0) return_section->flags |= 0x004; if (hdr->s_scnptr != 0) return_section->flags |= 0x200; return result; } static const bfd_target * coff_real_object_p (abfd, nscns, internal_f, internal_a) bfd *abfd; unsigned nscns; struct internal_filehdr *internal_f; struct internal_aouthdr *internal_a; { flagword oflags = abfd->flags; bfd_vma ostart = ((abfd)->start_address); void * tdata; void * tdata_save; bfd_size_type readsize; unsigned int scnhsz; char *external_sections; if (!(internal_f->f_flags & (0x0001))) abfd->flags |= 0x01; if ((internal_f->f_flags & (0x0002))) abfd->flags |= 0x02; if (!(internal_f->f_flags & (0x0004))) abfd->flags |= 0x04; if (!(internal_f->f_flags & (0x0008))) abfd->flags |= 0x20; if ((internal_f->f_flags & (0x0002)) != 0) abfd->flags |= 0x100; ((abfd)->symcount) = internal_f->f_nsyms; if (internal_f->f_nsyms) abfd->flags |= 0x10; if (internal_a != (struct internal_aouthdr *) ((void *)0)) ((abfd)->start_address) = internal_a->entry; else ((abfd)->start_address) = 0; tdata_save = abfd->tdata.any; tdata = ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_mkobject_hook) (abfd, (void *) internal_f, (void *) internal_a)); if (tdata == ((void *)0)) goto fail2; scnhsz = (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_scnhsz); readsize = (bfd_size_type) nscns * scnhsz; external_sections = (char *) bfd_alloc (abfd, readsize); if (!external_sections) goto fail; if (bfd_bread ((void *) external_sections, readsize, abfd) != readsize) goto fail; if (! ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_set_arch_mach_hook) (abfd, (void *) internal_f))) goto fail; if (nscns != 0) { unsigned int i; for (i = 0; i < nscns; i++) { struct internal_scnhdr tmp; ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_swap_scnhdr_in) (abfd, (void *) (external_sections + i * scnhsz), (void *) & tmp)); if (! make_a_section_from_file (abfd, &tmp, i + 1)) goto fail; } } return abfd->xvec; fail: bfd_release (abfd, tdata); fail2: abfd->tdata.any = tdata_save; abfd->flags = oflags; ((abfd)->start_address) = ostart; return (const bfd_target *) ((void *)0); } const bfd_target * coff_object_p (abfd) bfd *abfd; { bfd_size_type filhsz; bfd_size_type aoutsz; unsigned int nscns; void * filehdr; struct internal_filehdr internal_f; struct internal_aouthdr internal_a; filhsz = (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_filhsz); aoutsz = (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_aoutsz); filehdr = bfd_alloc (abfd, filhsz); if (filehdr == ((void *)0)) return ((void *)0); if (bfd_bread (filehdr, filhsz, abfd) != filhsz) { if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_wrong_format); bfd_release (abfd, filehdr); return ((void *)0); } ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_swap_filehdr_in) (abfd, filehdr, &internal_f)); bfd_release (abfd, filehdr); # 294 "coffgen.c" if (! ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_bad_format_hook) (abfd, &internal_f)) || internal_f.f_opthdr > aoutsz) { bfd_set_error (bfd_error_wrong_format); return ((void *)0); } nscns = internal_f.f_nscns; if (internal_f.f_opthdr) { void * opthdr; opthdr = bfd_alloc (abfd, aoutsz); if (opthdr == ((void *)0)) return ((void *)0); if (bfd_bread (opthdr, (bfd_size_type) internal_f.f_opthdr, abfd) != internal_f.f_opthdr) { bfd_release (abfd, opthdr); return ((void *)0); } ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_swap_aouthdr_in) (abfd, opthdr, (void *) &internal_a)); bfd_release (abfd, opthdr); } return coff_real_object_p (abfd, nscns, &internal_f, (internal_f.f_opthdr != 0 ? &internal_a : (struct internal_aouthdr *) ((void *)0))); } asection * coff_section_from_bfd_index (abfd, index) bfd *abfd; int index; { struct bfd_section *answer = abfd->sections; if (index == ((short)-1)) return ((asection *) &bfd_abs_section); if (index == ((short)0)) return ((asection *) &bfd_und_section); if (index == ((short)-2)) return ((asection *) &bfd_abs_section); while (answer) { if (answer->target_index == index) return answer; answer = answer->next; } return ((asection *) &bfd_und_section); } long coff_get_symtab_upper_bound (abfd) bfd *abfd; { if (!((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_slurp_symbol_table) (abfd))) return -1; return (((abfd)->symcount) + 1) * (sizeof (coff_symbol_type *)); } long coff_canonicalize_symtab (abfd, alocation) bfd *abfd; asymbol **alocation; { unsigned int counter; coff_symbol_type *symbase; coff_symbol_type **location = (coff_symbol_type **) alocation; if (!((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_slurp_symbol_table) (abfd))) return -1; symbase = (((abfd)->tdata.coff_obj_data)->symbols); counter = ((abfd)->symcount); while (counter-- > 0) *location++ = symbase++; *location = ((void *)0); return ((abfd)->symcount); } const char * _bfd_coff_internal_syment_name (abfd, sym, buf) bfd *abfd; const struct internal_syment *sym; char *buf; { if (sym->_n._n_n._n_zeroes != 0 || sym->_n._n_n._n_offset == 0) { memcpy (buf, sym->_n._n_name, 8); buf[8] = '\0'; return buf; } else { const char *strings; { if (!(sym->_n._n_n._n_offset >= (4))) bfd_assert("coffgen.c",411); }; strings = (((abfd)->tdata.coff_obj_data)->strings); if (strings == ((void *)0)) { strings = _bfd_coff_read_string_table (abfd); if (strings == ((void *)0)) return ((void *)0); } return strings + sym->_n._n_n._n_offset; } } # 432 "coffgen.c" struct internal_reloc * _bfd_coff_read_internal_relocs (abfd, sec, cache, external_relocs, require_internal, internal_relocs) bfd *abfd; asection *sec; bfd_boolean cache; bfd_byte *external_relocs; bfd_boolean require_internal; struct internal_reloc *internal_relocs; { bfd_size_type relsz; bfd_byte *free_external = ((void *)0); struct internal_reloc *free_internal = ((void *)0); bfd_byte *erel; bfd_byte *erel_end; struct internal_reloc *irel; bfd_size_type amt; if (((struct coff_section_tdata *) (sec)->used_by_bfd) != ((void *)0) && ((struct coff_section_tdata *) (sec)->used_by_bfd)->relocs != ((void *)0)) { if (! require_internal) return ((struct coff_section_tdata *) (sec)->used_by_bfd)->relocs; memcpy (internal_relocs, ((struct coff_section_tdata *) (sec)->used_by_bfd)->relocs, sec->reloc_count * sizeof (struct internal_reloc)); return internal_relocs; } relsz = (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_relsz); amt = sec->reloc_count * relsz; if (external_relocs == ((void *)0)) { free_external = (bfd_byte *) bfd_malloc (amt); if (free_external == ((void *)0) && sec->reloc_count > 0) goto error_return; external_relocs = free_external; } if (bfd_seek (abfd, sec->rel_filepos, 0) != 0 || bfd_bread (external_relocs, amt, abfd) != amt) goto error_return; if (internal_relocs == ((void *)0)) { amt = sec->reloc_count; amt *= sizeof (struct internal_reloc); free_internal = (struct internal_reloc *) bfd_malloc (amt); if (free_internal == ((void *)0) && sec->reloc_count > 0) goto error_return; internal_relocs = free_internal; } erel = external_relocs; erel_end = erel + relsz * sec->reloc_count; irel = internal_relocs; for (; erel < erel_end; erel += relsz, irel++) ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_swap_reloc_in) (abfd, (void *) erel, (void *) irel)); if (free_external != ((void *)0)) { free (free_external); free_external = ((void *)0); } if (cache && free_internal != ((void *)0)) { if (((struct coff_section_tdata *) (sec)->used_by_bfd) == ((void *)0)) { amt = sizeof (struct coff_section_tdata); sec->used_by_bfd = (void *) bfd_zalloc (abfd, amt); if (sec->used_by_bfd == ((void *)0)) goto error_return; ((struct coff_section_tdata *) (sec)->used_by_bfd)->contents = ((void *)0); } ((struct coff_section_tdata *) (sec)->used_by_bfd)->relocs = free_internal; } return internal_relocs; error_return: if (free_external != ((void *)0)) free (free_external); if (free_internal != ((void *)0)) free (free_internal); return ((void *)0); } int coff_count_linenumbers (abfd) bfd *abfd; { unsigned int limit = ((abfd)->symcount); unsigned int i; int total = 0; asymbol **p; asection *s; if (limit == 0) { for (s = abfd->sections; s != ((void *)0); s = s->next) total += s->lineno_count; return total; } for (s = abfd->sections; s != ((void *)0); s = s->next) { if (!(s->lineno_count == 0)) bfd_assert("coffgen.c",543); }; for (p = abfd->outsymbols, i = 0; i < limit; i++, p++) { asymbol *q_maybe = *p; if ((((((q_maybe)->the_bfd))->xvec->flavour) == bfd_target_coff_flavour || ((((q_maybe)->the_bfd))->xvec->flavour) == bfd_target_xcoff_flavour)) { coff_symbol_type *q = ((coff_symbol_type *)(&((q_maybe)->the_bfd))); if (q->lineno != ((void *)0) && q->symbol.section->owner != ((void *)0)) { alent *l = q->lineno; do { asection * sec = q->symbol.section->output_section; if (! ( ((sec) == ((asection *) &bfd_abs_section)) || ((sec) == ((asection *) &bfd_und_section)) || ((sec) == ((asection *) &bfd_com_section)) || ((sec) == ((asection *) &bfd_ind_section)))) sec->lineno_count ++; ++total; ++l; } while (l->line_number != 0); } } } return total; } coff_symbol_type * coff_symbol_from (ignore_abfd, symbol) bfd *ignore_abfd __attribute__ ((__unused__)); asymbol *symbol; { if (!(((((symbol)->the_bfd))->xvec->flavour) == bfd_target_coff_flavour || ((((symbol)->the_bfd))->xvec->flavour) == bfd_target_xcoff_flavour)) return (coff_symbol_type *) ((void *)0); if (((symbol)->the_bfd)->tdata.coff_obj_data == (coff_data_type *) ((void *)0)) return (coff_symbol_type *) ((void *)0); return (coff_symbol_type *) symbol; } static void fixup_symbol_value (abfd, coff_symbol_ptr, syment) bfd *abfd; coff_symbol_type *coff_symbol_ptr; struct internal_syment *syment; { if ((((coff_symbol_ptr->symbol.section)->flags & 0x8000) != 0)) { syment->n_scnum = ((short)0); syment->n_value = coff_symbol_ptr->symbol.value; } else if ((coff_symbol_ptr->symbol.flags & 0x08) != 0 && (coff_symbol_ptr->symbol.flags & 0x20000) == 0) { syment->n_value = coff_symbol_ptr->symbol.value; } else if (((coff_symbol_ptr->symbol.section) == ((asection *) &bfd_und_section))) { syment->n_scnum = ((short)0); syment->n_value = 0; } else { if (coff_symbol_ptr->symbol.section) { syment->n_scnum = coff_symbol_ptr->symbol.section->output_section->target_index; syment->n_value = (coff_symbol_ptr->symbol.value + coff_symbol_ptr->symbol.section->output_offset); if (! (((abfd)->tdata.coff_obj_data)->pe)) { syment->n_value += (syment->n_sclass == 20) ? coff_symbol_ptr->symbol.section->output_section->lma : coff_symbol_ptr->symbol.section->output_section->vma; } } else { { if (!(0)) bfd_assert("coffgen.c",642); }; syment->n_scnum = ((short)-1); syment->n_value = coff_symbol_ptr->symbol.value; } } } # 657 "coffgen.c" bfd_boolean coff_renumber_symbols (bfd_ptr, first_undef) bfd *bfd_ptr; int *first_undef; { unsigned int symbol_count = ((bfd_ptr)->symcount); asymbol **symbol_ptr_ptr = bfd_ptr->outsymbols; unsigned int native_index = 0; struct internal_syment *last_file = (struct internal_syment *) ((void *)0); unsigned int symbol_index; # 678 "coffgen.c" { asymbol **newsyms; unsigned int i; bfd_size_type amt; amt = sizeof (asymbol *) * ((bfd_size_type) symbol_count + 1); newsyms = (asymbol **) bfd_alloc (bfd_ptr, amt); if (!newsyms) return 0; bfd_ptr->outsymbols = newsyms; for (i = 0; i < symbol_count; i++) if ((symbol_ptr_ptr[i]->flags & 0x400) != 0 || (!((symbol_ptr_ptr[i]->section) == ((asection *) &bfd_und_section)) && !(((symbol_ptr_ptr[i]->section)->flags & 0x8000) != 0) && ((symbol_ptr_ptr[i]->flags & 0x10) != 0 || ((symbol_ptr_ptr[i]->flags & (0x02 | 0x80)) == 0)))) *newsyms++ = symbol_ptr_ptr[i]; for (i = 0; i < symbol_count; i++) if ((symbol_ptr_ptr[i]->flags & 0x400) == 0 && !((symbol_ptr_ptr[i]->section) == ((asection *) &bfd_und_section)) && ((((symbol_ptr_ptr[i]->section)->flags & 0x8000) != 0) || ((symbol_ptr_ptr[i]->flags & 0x10) == 0 && ((symbol_ptr_ptr[i]->flags & (0x02 | 0x80)) != 0)))) *newsyms++ = symbol_ptr_ptr[i]; *first_undef = newsyms - bfd_ptr->outsymbols; for (i = 0; i < symbol_count; i++) if ((symbol_ptr_ptr[i]->flags & 0x400) == 0 && ((symbol_ptr_ptr[i]->section) == ((asection *) &bfd_und_section))) *newsyms++ = symbol_ptr_ptr[i]; *newsyms = (asymbol *) ((void *)0); symbol_ptr_ptr = bfd_ptr->outsymbols; } for (symbol_index = 0; symbol_index < symbol_count; symbol_index++) { coff_symbol_type *coff_symbol_ptr = coff_symbol_from (bfd_ptr, symbol_ptr_ptr[symbol_index]); symbol_ptr_ptr[symbol_index]->udata.i = symbol_index; if (coff_symbol_ptr && coff_symbol_ptr->native) { combined_entry_type *s = coff_symbol_ptr->native; int i; if (s->u.syment.n_sclass == 103) { if (last_file != (struct internal_syment *) ((void *)0)) last_file->n_value = native_index; last_file = &(s->u.syment); } else { fixup_symbol_value (bfd_ptr, coff_symbol_ptr, &(s->u.syment)); } for (i = 0; i < s->u.syment.n_numaux + 1; i++) s[i].offset = native_index++; } else { native_index++; } } (((bfd_ptr)->tdata.coff_obj_data)->conv_table_size) = native_index; return 1; } void coff_mangle_symbols (bfd_ptr) bfd *bfd_ptr; { unsigned int symbol_count = ((bfd_ptr)->symcount); asymbol **symbol_ptr_ptr = bfd_ptr->outsymbols; unsigned int symbol_index; for (symbol_index = 0; symbol_index < symbol_count; symbol_index++) { coff_symbol_type *coff_symbol_ptr = coff_symbol_from (bfd_ptr, symbol_ptr_ptr[symbol_index]); if (coff_symbol_ptr && coff_symbol_ptr->native) { int i; combined_entry_type *s = coff_symbol_ptr->native; if (s->fix_value) { s->u.syment.n_value = (bfd_vma)((combined_entry_type *) ((unsigned long) s->u.syment.n_value))->offset; s->fix_value = 0; } if (s->fix_line) { s->u.syment.n_value = (coff_symbol_ptr->symbol.section->output_section->line_filepos + s->u.syment.n_value * (((bfd_coff_backend_data *) (bfd_ptr)->xvec->backend_data)->_bfd_linesz)); coff_symbol_ptr->symbol.section = coff_section_from_bfd_index (bfd_ptr, ((short)-2)); { if (!(coff_symbol_ptr->symbol.flags & 0x08)) bfd_assert("coffgen.c",792); }; } for (i = 0; i < s->u.syment.n_numaux; i++) { combined_entry_type *a = s + i + 1; if (a->fix_tag) { a->u.auxent.x_sym.x_tagndx.l = a->u.auxent.x_sym.x_tagndx.p->offset; a->fix_tag = 0; } if (a->fix_end) { a->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.l = a->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.p->offset; a->fix_end = 0; } if (a->fix_scnlen) { a->u.auxent.x_csect.x_scnlen.l = a->u.auxent.x_csect.x_scnlen.p->offset; a->fix_scnlen = 0; } } } } } static void coff_fix_symbol_name (abfd, symbol, native, string_size_p, debug_string_section_p, debug_string_size_p) bfd *abfd; asymbol *symbol; combined_entry_type *native; bfd_size_type *string_size_p; asection **debug_string_section_p; bfd_size_type *debug_string_size_p; { unsigned int name_length; union internal_auxent *auxent; char *name = (char *) (symbol->name); if (name == (char *) ((void *)0)) { symbol->name = "strange"; name = (char *) symbol->name; } name_length = strlen (name); if (native->u.syment.n_sclass == 103 && native->u.syment.n_numaux > 0) { unsigned int filnmlen; if ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_force_symnames_in_strings)) { native->u.syment._n._n_n._n_offset = (*string_size_p + (4)); native->u.syment._n._n_n._n_zeroes = 0; *string_size_p += 6; } else (__extension__ (__builtin_constant_p (".file") && __builtin_constant_p (8) ? (strlen (".file") + 1 >= ((size_t) (8)) ? (char *) memcpy (native->u.syment._n._n_name, ".file", 8) : strncpy (native->u.syment._n._n_name, ".file", 8)) : strncpy (native->u.syment._n._n_name, ".file", 8))); auxent = &(native + 1)->u.auxent; filnmlen = (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_filnmlen); if ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_long_filenames)) { if (name_length <= filnmlen) { (__extension__ (__builtin_constant_p (name) && __builtin_constant_p (filnmlen) ? (strlen (name) + 1 >= ((size_t) (filnmlen)) ? (char *) memcpy (auxent->x_file.x_fname, name, filnmlen) : strncpy (auxent->x_file.x_fname, name, filnmlen)) : strncpy (auxent->x_file.x_fname, name, filnmlen))); } else { auxent->x_file.x_n.x_offset = *string_size_p + (4); auxent->x_file.x_n.x_zeroes = 0; *string_size_p += name_length + 1; } } else { (__extension__ (__builtin_constant_p (name) && __builtin_constant_p (filnmlen) ? (strlen (name) + 1 >= ((size_t) (filnmlen)) ? (char *) memcpy (auxent->x_file.x_fname, name, filnmlen) : strncpy (auxent->x_file.x_fname, name, filnmlen)) : strncpy (auxent->x_file.x_fname, name, filnmlen))); if (name_length > filnmlen) name[filnmlen] = '\0'; } } else { if (name_length <= 8 && !(((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_force_symnames_in_strings)) { (__extension__ (__builtin_constant_p (symbol->name) && __builtin_constant_p (8) ? (strlen (symbol->name) + 1 >= ((size_t) (8)) ? (char *) memcpy (native->u.syment._n._n_name, symbol->name, 8) : strncpy (native->u.syment._n._n_name, symbol->name, 8)) : strncpy (native->u.syment._n._n_name, symbol->name, 8))); } else if (!((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_symname_in_debug) (abfd, &native->u.syment))) { native->u.syment._n._n_n._n_offset = (*string_size_p + (4)); native->u.syment._n._n_n._n_zeroes = 0; *string_size_p += name_length + 1; } else { file_ptr filepos; bfd_byte buf[4]; int prefix_len = (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_debug_string_prefix_length); if (*debug_string_section_p == (asection *) ((void *)0)) *debug_string_section_p = bfd_get_section_by_name (abfd, ".debug"); filepos = bfd_tell (abfd); if (prefix_len == 4) ((*((abfd)->xvec->bfd_putx32)) (((bfd_vma) (name_length + 1)),(buf))); else ((*((abfd)->xvec->bfd_putx16)) (((bfd_vma) (name_length + 1)),(buf))); if (!bfd_set_section_contents (abfd, *debug_string_section_p, (void *) buf, (file_ptr) *debug_string_size_p, (bfd_size_type) prefix_len) || !bfd_set_section_contents (abfd, *debug_string_section_p, (void *) symbol->name, (file_ptr) (*debug_string_size_p + prefix_len), (bfd_size_type) name_length + 1)) _bfd_abort ("coffgen.c", 925, __PRETTY_FUNCTION__); if (bfd_seek (abfd, filepos, 0) != 0) _bfd_abort ("coffgen.c", 927, __PRETTY_FUNCTION__); native->u.syment._n._n_n._n_offset = *debug_string_size_p + prefix_len; native->u.syment._n._n_n._n_zeroes = 0; *debug_string_size_p += name_length + 1 + prefix_len; } } } # 944 "coffgen.c" static bfd_boolean coff_write_symbol (abfd, symbol, native, written, string_size_p, debug_string_section_p, debug_string_size_p) bfd *abfd; asymbol *symbol; combined_entry_type *native; bfd_vma *written; bfd_size_type *string_size_p; asection **debug_string_section_p; bfd_size_type *debug_string_size_p; { unsigned int numaux = native->u.syment.n_numaux; int type = native->u.syment.n_type; int class = native->u.syment.n_sclass; void * buf; bfd_size_type symesz; if (native->u.syment.n_sclass == 103) symbol->flags |= 0x08; if (symbol->flags & 0x08 && ((symbol->section) == ((asection *) &bfd_abs_section))) { native->u.syment.n_scnum = ((short)-2); } else if (((symbol->section) == ((asection *) &bfd_abs_section))) { native->u.syment.n_scnum = ((short)-1); } else if (((symbol->section) == ((asection *) &bfd_und_section))) { native->u.syment.n_scnum = ((short)0); } else { native->u.syment.n_scnum = symbol->section->output_section->target_index; } coff_fix_symbol_name (abfd, symbol, native, string_size_p, debug_string_section_p, debug_string_size_p); symesz = (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_symesz); buf = bfd_alloc (abfd, symesz); if (!buf) return 0; ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_swap_sym_out) (abfd, &native->u.syment, buf)); if (bfd_bwrite (buf, symesz, abfd) != symesz) return 0; bfd_release (abfd, buf); if (native->u.syment.n_numaux > 0) { bfd_size_type auxesz; unsigned int j; auxesz = (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_auxesz); buf = bfd_alloc (abfd, auxesz); if (!buf) return 0; for (j = 0; j < native->u.syment.n_numaux; j++) { ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_swap_aux_out) (abfd,&((native + j + 1)->u.auxent),type,class,(int) j,native->u.syment.n_numaux,buf)); if (bfd_bwrite (buf, auxesz, abfd) != auxesz) return 0; } bfd_release (abfd, buf); } ((symbol)->udata.i = (*written)); *written += numaux + 1; return 1; } static bfd_boolean coff_write_alien_symbol (abfd, symbol, written, string_size_p, debug_string_section_p, debug_string_size_p) bfd *abfd; asymbol *symbol; bfd_vma *written; bfd_size_type *string_size_p; asection **debug_string_section_p; bfd_size_type *debug_string_size_p; { combined_entry_type *native; combined_entry_type dummy; native = &dummy; native->u.syment.n_type = 0; native->u.syment.n_flags = 0; if (((symbol->section) == ((asection *) &bfd_und_section))) { native->u.syment.n_scnum = ((short)0); native->u.syment.n_value = symbol->value; } else if ((((symbol->section)->flags & 0x8000) != 0)) { native->u.syment.n_scnum = ((short)0); native->u.syment.n_value = symbol->value; } else if (symbol->flags & 0x08) { symbol->name = ""; return 1; } else { native->u.syment.n_scnum = symbol->section->output_section->target_index; native->u.syment.n_value = (symbol->value + symbol->section->output_offset); if (! (((abfd)->tdata.coff_obj_data)->pe)) native->u.syment.n_value += symbol->section->output_section->vma; { coff_symbol_type *c = coff_symbol_from (abfd, symbol); if (c != (coff_symbol_type *) ((void *)0)) native->u.syment.n_flags = ((&c->symbol)->the_bfd)->flags; } } native->u.syment.n_type = 0; if (symbol->flags & 0x01) native->u.syment.n_sclass = 3; else if (symbol->flags & 0x80) native->u.syment.n_sclass = (((abfd)->tdata.coff_obj_data)->pe) ? 105 : 127; else native->u.syment.n_sclass = 2; native->u.syment.n_numaux = 0; return coff_write_symbol (abfd, symbol, native, written, string_size_p, debug_string_section_p, debug_string_size_p); } static bfd_boolean coff_write_native_symbol (abfd, symbol, written, string_size_p, debug_string_section_p, debug_string_size_p) bfd *abfd; coff_symbol_type *symbol; bfd_vma *written; bfd_size_type *string_size_p; asection **debug_string_section_p; bfd_size_type *debug_string_size_p; { combined_entry_type *native = symbol->native; alent *lineno = symbol->lineno; if (lineno && !symbol->done_lineno && symbol->symbol.section->owner != ((void *)0)) { unsigned int count = 0; lineno[count].u.offset = *written; if (native->u.syment.n_numaux) { union internal_auxent *a = &((native + 1)->u.auxent); a->x_sym.x_fcnary.x_fcn.x_lnnoptr = symbol->symbol.section->output_section->moving_line_filepos; } count++; while (lineno[count].line_number != 0) { # 1148 "coffgen.c" lineno[count].u.offset += (symbol->symbol.section->output_section->vma + symbol->symbol.section->output_offset); count++; } symbol->done_lineno = 1; if (! ( ((symbol->symbol.section->output_section) == ((asection *) &bfd_abs_section)) || ((symbol->symbol.section->output_section) == ((asection *) &bfd_und_section)) || ((symbol->symbol.section->output_section) == ((asection *) &bfd_com_section)) || ((symbol->symbol.section->output_section) == ((asection *) &bfd_ind_section)))) symbol->symbol.section->output_section->moving_line_filepos += count * (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_linesz); } return coff_write_symbol (abfd, &(symbol->symbol), native, written, string_size_p, debug_string_section_p, debug_string_size_p); } bfd_boolean coff_write_symbols (abfd) bfd *abfd; { bfd_size_type string_size; asection *debug_string_section; bfd_size_type debug_string_size; unsigned int i; unsigned int limit = ((abfd)->symcount); bfd_signed_vma written = 0; asymbol **p; string_size = 0; debug_string_section = ((void *)0); debug_string_size = 0; if ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_long_section_names)) { asection *o; for (o = abfd->sections; o != ((void *)0); o = o->next) { size_t len; len = strlen (o->name); if (len > (8)) string_size += len + 1; } } if (bfd_seek (abfd, (((abfd)->tdata.coff_obj_data)->sym_filepos), 0) != 0) return 0; written = 0; for (p = abfd->outsymbols, i = 0; i < limit; i++, p++) { asymbol *symbol = *p; coff_symbol_type *c_symbol = coff_symbol_from (abfd, symbol); if (c_symbol == (coff_symbol_type *) ((void *)0) || c_symbol->native == (combined_entry_type *) ((void *)0)) { if (!coff_write_alien_symbol (abfd, symbol, &written, &string_size, &debug_string_section, &debug_string_size)) return 0; } else { if (!coff_write_native_symbol (abfd, c_symbol, &written, &string_size, &debug_string_section, &debug_string_size)) return 0; } } (((abfd)->tdata.coff_obj_data)->raw_syment_count) = written; if (string_size != 0) { unsigned int size = string_size + (4); bfd_byte buffer[(4)]; ((*(((abfd))->xvec->bfd_h_putx32)) ((bfd_vma) (size), (bfd_byte *) (buffer))); if (bfd_bwrite ((void *) buffer, (bfd_size_type) sizeof (buffer), abfd) != sizeof (buffer)) return 0; if ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_long_section_names)) { asection *o; for (o = abfd->sections; o != ((void *)0); o = o->next) { size_t len; len = strlen (o->name); if (len > (8)) { if (bfd_bwrite (o->name, (bfd_size_type) (len + 1), abfd) != len + 1) return 0; } } } for (p = abfd->outsymbols, i = 0; i < limit; i++, p++) { asymbol *q = *p; size_t name_length = strlen (q->name); coff_symbol_type *c_symbol = coff_symbol_from (abfd, q); size_t maxlen; # 1285 "coffgen.c" if (c_symbol == ((void *)0) || c_symbol->native == ((void *)0)) { maxlen = (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_force_symnames_in_strings) ? 0 : 8; } else if (((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_symname_in_debug) (abfd, &c_symbol->native->u.syment))) { maxlen = name_length; } else if (c_symbol->native->u.syment.n_sclass == 103 && c_symbol->native->u.syment.n_numaux > 0) { if ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_force_symnames_in_strings)) { if (bfd_bwrite (".file", (bfd_size_type) 6, abfd) != 6) return 0; } maxlen = (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_filnmlen); } else maxlen = (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_force_symnames_in_strings) ? 0 : 8; if (name_length > maxlen) { if (bfd_bwrite ((void *) (q->name), (bfd_size_type) name_length + 1, abfd) != name_length + 1) return 0; } } } else { unsigned int size = (4); bfd_byte buffer[(4)]; ((*(((abfd))->xvec->bfd_h_putx32)) ((bfd_vma) (size), (bfd_byte *) (buffer))); if (bfd_bwrite ((void *) buffer, (bfd_size_type) (4), abfd) != (4)) return 0; } { if (!(debug_string_size == 0 || (debug_string_section != (asection *) ((void *)0) && (((((bfd_vma) (debug_string_size) + (1 << debug_string_section->alignment_power) - 1) >= (bfd_vma) (debug_string_size)) ? (((bfd_vma) (debug_string_size) + ((1 << debug_string_section->alignment_power) - 1)) & ~ (bfd_vma) ((1 << debug_string_section->alignment_power)-1)) : ~ (bfd_vma) 0) == (((debug_string_section)->_raw_size)))))) bfd_assert("coffgen.c",1347); }; return 1; } bfd_boolean coff_write_linenumbers (abfd) bfd *abfd; { asection *s; bfd_size_type linesz; void * buff; linesz = (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_linesz); buff = bfd_alloc (abfd, linesz); if (!buff) return 0; for (s = abfd->sections; s != (asection *) ((void *)0); s = s->next) { if (s->lineno_count) { asymbol **q = abfd->outsymbols; if (bfd_seek (abfd, s->line_filepos, 0) != 0) return 0; while (*q) { asymbol *p = *q; if (p->section->output_section == s) { alent *l = ((*((((p)->the_bfd))->xvec->_get_lineno)) (((p)->the_bfd), p)); if (l) { struct internal_lineno out; (__extension__ (__builtin_constant_p (sizeof (out)) && (sizeof (out)) <= 16 ? ((sizeof (out)) == 1 ? ({ void *__s = ((void *) & out); *((__uint8_t *) __s) = (__uint8_t) 0; __s; }) : ({ void *__s = ((void *) & out); union { unsigned int __ui; unsigned short int __usi; unsigned char __uc; } *__u = __s; __uint8_t __c = (__uint8_t) (0); switch ((unsigned int) (sizeof (out))) { case 15: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 11: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 7: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 3: __u->__usi = (unsigned short int) __c * 0x0101; __u = __extension__ ((void *) __u + 2); __u->__uc = (unsigned char) __c; break; case 14: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 10: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 6: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 2: __u->__usi = (unsigned short int) __c * 0x0101; break; case 13: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 9: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 5: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 1: __u->__uc = (unsigned char) __c; break; case 16: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 12: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 8: __u->__ui = __c * 0x01010101; __u = __extension__ ((void *) __u + 4); case 4: __u->__ui = __c * 0x01010101; case 0: break; } __s; })) : (__builtin_constant_p (0) && (0) == '\0' ? ({ void *__s = ((void *) & out); __builtin_memset (__s, '\0', sizeof (out)); __s; }) : memset ((void *) & out, 0, sizeof (out))))); out.l_lnno = 0; out.l_addr.l_symndx = l->u.offset; ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_swap_lineno_out) (abfd, &out, buff)); if (bfd_bwrite (buff, (bfd_size_type) linesz, abfd) != linesz) return 0; l++; while (l->line_number) { out.l_lnno = l->line_number; out.l_addr.l_symndx = l->u.offset; ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_swap_lineno_out) (abfd, &out, buff)); if (bfd_bwrite (buff, (bfd_size_type) linesz, abfd) != linesz) return 0; l++; } } } q++; } } } bfd_release (abfd, buff); return 1; } alent * coff_get_lineno (ignore_abfd, symbol) bfd *ignore_abfd __attribute__ ((__unused__)); asymbol *symbol; { return ((coff_symbol_type *)(&((symbol)->the_bfd)))->lineno; } # 1476 "coffgen.c" static void coff_pointerize_aux (abfd, table_base, symbol, indaux, auxent) bfd *abfd; combined_entry_type *table_base; combined_entry_type *symbol; unsigned int indaux; combined_entry_type *auxent; { unsigned int type = symbol->u.syment.n_type; unsigned int class = symbol->u.syment.n_sclass; if (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_pointerize_aux_hook) { if ((*((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_pointerize_aux_hook) (abfd, table_base, symbol, indaux, auxent)) return; } if (class == 3 && type == 0) return; if (class == 103) return; if (((((unsigned long) (type) & ((abfd)->tdata.coff_obj_data)->local_n_tmask) == ((unsigned long) (2) << ((abfd)->tdata.coff_obj_data)->local_n_btshft)) || ((class) == 10 || (class) == 12 || (class) == 15) || class == 100 || class == 101) && auxent->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.l > 0) { auxent->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.p = table_base + auxent->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.l; auxent->fix_end = 1; } if (auxent->u.auxent.x_sym.x_tagndx.l > 0) { auxent->u.auxent.x_sym.x_tagndx.p = table_base + auxent->u.auxent.x_sym.x_tagndx.l; auxent->fix_tag = 1; } } static char * build_debug_section (abfd) bfd *abfd; { char *debug_section; file_ptr position; bfd_size_type sec_size; asection *sect = bfd_get_section_by_name (abfd, ".debug"); if (!sect) { bfd_set_error (bfd_error_no_debug_section); return ((void *)0); } sec_size = ((sect)->_raw_size); debug_section = (void *) bfd_alloc (abfd, sec_size); if (debug_section == ((void *)0)) return ((void *)0); position = bfd_tell (abfd); if (bfd_seek (abfd, sect->filepos, 0) != 0 || bfd_bread (debug_section, sec_size, abfd) != sec_size || bfd_seek (abfd, position, 0) != 0) return ((void *)0); return debug_section; } static char * copy_name (abfd, name, maxlen) bfd *abfd; char *name; size_t maxlen; { size_t len; char *newname; for (len = 0; len < maxlen; ++len) { if (name[len] == '\0') { break; } } if ((newname = (void *) bfd_alloc (abfd, (bfd_size_type) len + 1)) == ((void *)0)) return (((void *)0)); (__extension__ (__builtin_constant_p (name) && __builtin_constant_p (len) ? (strlen (name) + 1 >= ((size_t) (len)) ? (char *) memcpy (newname, name, len) : strncpy (newname, name, len)) : strncpy (newname, name, len))); newname[len] = '\0'; return newname; } bfd_boolean _bfd_coff_get_external_symbols (abfd) bfd *abfd; { bfd_size_type symesz; bfd_size_type size; void * syms; if ((((abfd)->tdata.coff_obj_data)->external_syms) != ((void *)0)) return 1; symesz = (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_symesz); size = (((abfd)->tdata.coff_obj_data)->raw_syment_count) * symesz; syms = (void *) bfd_malloc (size); if (syms == ((void *)0) && size != 0) return 0; if (bfd_seek (abfd, (((abfd)->tdata.coff_obj_data)->sym_filepos), 0) != 0 || bfd_bread (syms, size, abfd) != size) { if (syms != ((void *)0)) free (syms); return 0; } (((abfd)->tdata.coff_obj_data)->external_syms) = syms; return 1; } const char * _bfd_coff_read_string_table (abfd) bfd *abfd; { char extstrsize[(4)]; bfd_size_type strsize; char *strings; file_ptr pos; if ((((abfd)->tdata.coff_obj_data)->strings) != ((void *)0)) return (((abfd)->tdata.coff_obj_data)->strings); if ((((abfd)->tdata.coff_obj_data)->sym_filepos) == 0) { bfd_set_error (bfd_error_no_symbols); return ((void *)0); } pos = (((abfd)->tdata.coff_obj_data)->sym_filepos); pos += (((abfd)->tdata.coff_obj_data)->raw_syment_count) * (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_symesz); if (bfd_seek (abfd, pos, 0) != 0) return ((void *)0); if (bfd_bread (extstrsize, (bfd_size_type) sizeof extstrsize, abfd) != sizeof extstrsize) { if (bfd_get_error () != bfd_error_file_truncated) return ((void *)0); strsize = (4); } else { strsize = ((*(((abfd))->xvec->bfd_h_getx32)) ((bfd_byte *) (extstrsize))); } if (strsize < (4)) { (*_bfd_error_handler) (dcgettext ("bfd", "%s: bad string table size %lu", __LC_MESSAGES), bfd_archive_filename (abfd), (unsigned long) strsize); bfd_set_error (bfd_error_bad_value); return ((void *)0); } strings = (char *) bfd_malloc (strsize); if (strings == ((void *)0)) return ((void *)0); if (bfd_bread (strings + (4), strsize - (4), abfd) != strsize - (4)) { free (strings); return ((void *)0); } (((abfd)->tdata.coff_obj_data)->strings) = strings; return strings; } bfd_boolean _bfd_coff_free_symbols (abfd) bfd *abfd; { if ((((abfd)->tdata.coff_obj_data)->external_syms) != ((void *)0) && ! (((abfd)->tdata.coff_obj_data)->keep_syms)) { free ((((abfd)->tdata.coff_obj_data)->external_syms)); (((abfd)->tdata.coff_obj_data)->external_syms) = ((void *)0); } if ((((abfd)->tdata.coff_obj_data)->strings) != ((void *)0) && ! (((abfd)->tdata.coff_obj_data)->keep_strings)) { free ((((abfd)->tdata.coff_obj_data)->strings)); (((abfd)->tdata.coff_obj_data)->strings) = ((void *)0); } return 1; } combined_entry_type * coff_get_normalized_symtab (abfd) bfd *abfd; { combined_entry_type *internal; combined_entry_type *internal_ptr; combined_entry_type *symbol_ptr; combined_entry_type *internal_end; size_t symesz; char *raw_src; char *raw_end; const char *string_table = ((void *)0); char *debug_section = ((void *)0); bfd_size_type size; if ((((abfd)->tdata.coff_obj_data)->raw_syments) != ((void *)0)) return (((abfd)->tdata.coff_obj_data)->raw_syments); size = (((abfd)->tdata.coff_obj_data)->raw_syment_count) * sizeof (combined_entry_type); internal = (combined_entry_type *) bfd_zalloc (abfd, size); if (internal == ((void *)0) && size != 0) return ((void *)0); internal_end = internal + (((abfd)->tdata.coff_obj_data)->raw_syment_count); if (! _bfd_coff_get_external_symbols (abfd)) return ((void *)0); raw_src = (char *) (((abfd)->tdata.coff_obj_data)->external_syms); symesz = (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_symesz); raw_end = (char *) raw_src + (((abfd)->tdata.coff_obj_data)->raw_syment_count) * symesz; for (internal_ptr = internal; raw_src < raw_end; raw_src += symesz, internal_ptr++) { unsigned int i; ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_swap_sym_in) (abfd,(void *) raw_src,(void *) & internal_ptr->u.syment)); symbol_ptr = internal_ptr; for (i = 0; i < symbol_ptr->u.syment.n_numaux; i++) { internal_ptr++; raw_src += symesz; ((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_swap_aux_in) (abfd,(void *) raw_src,symbol_ptr->u.syment.n_type,symbol_ptr->u.syment.n_sclass,(int) i,symbol_ptr->u.syment.n_numaux,&(internal_ptr->u.auxent))); coff_pointerize_aux (abfd, internal, symbol_ptr, i, internal_ptr); } } (((abfd)->tdata.coff_obj_data)->keep_strings) = 1; if (! _bfd_coff_free_symbols (abfd)) return ((void *)0); for (internal_ptr = internal; internal_ptr < internal_end; internal_ptr++) { if (internal_ptr->u.syment.n_sclass == 103 && internal_ptr->u.syment.n_numaux > 0) { if ((internal_ptr + 1)->u.auxent.x_file.x_n.x_zeroes == 0) { if (string_table == ((void *)0)) { string_table = _bfd_coff_read_string_table (abfd); if (string_table == ((void *)0)) return ((void *)0); } internal_ptr->u.syment._n._n_n._n_offset = ((long) (string_table + (internal_ptr + 1)->u.auxent.x_file.x_n.x_offset)); } else { if (internal_ptr->u.syment.n_numaux > 1 && ((abfd)->tdata.coff_obj_data)->pe) { internal_ptr->u.syment._n._n_n._n_offset = ((long) copy_name (abfd, (internal_ptr + 1)->u.auxent.x_file.x_fname, internal_ptr->u.syment.n_numaux * symesz)); } else { internal_ptr->u.syment._n._n_n._n_offset = ((long) copy_name (abfd, (internal_ptr + 1)->u.auxent.x_file.x_fname, (size_t) (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_filnmlen))); } } } else { if (internal_ptr->u.syment._n._n_n._n_zeroes != 0) { size_t i; char *newstring; for (i = 0; i < 8; ++i) if (internal_ptr->u.syment._n._n_name[i] == '\0') break; newstring = (void *) bfd_zalloc (abfd, (bfd_size_type) (i + 1)); if (newstring == ((void *)0)) return (((void *)0)); (__extension__ (__builtin_constant_p (internal_ptr->u.syment._n._n_name) && __builtin_constant_p (i) ? (strlen (internal_ptr->u.syment._n._n_name) + 1 >= ((size_t) (i)) ? (char *) memcpy (newstring, internal_ptr->u.syment._n._n_name, i) : strncpy (newstring, internal_ptr->u.syment._n._n_name, i)) : strncpy (newstring, internal_ptr->u.syment._n._n_name, i))); internal_ptr->u.syment._n._n_n._n_offset = (long int) newstring; internal_ptr->u.syment._n._n_n._n_zeroes = 0; } else if (internal_ptr->u.syment._n._n_n._n_offset == 0) internal_ptr->u.syment._n._n_n._n_offset = (long int) ""; else if (!((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_symname_in_debug) (abfd, &internal_ptr->u.syment))) { if (string_table == ((void *)0)) { string_table = _bfd_coff_read_string_table (abfd); if (string_table == ((void *)0)) return ((void *)0); } internal_ptr->u.syment._n._n_n._n_offset = ((long int) (string_table + internal_ptr->u.syment._n._n_n._n_offset)); } else { if (debug_section == ((void *)0)) debug_section = build_debug_section (abfd); internal_ptr->u.syment._n._n_n._n_offset = (long int) (debug_section + internal_ptr->u.syment._n._n_n._n_offset); } } internal_ptr += internal_ptr->u.syment.n_numaux; } (((abfd)->tdata.coff_obj_data)->raw_syments) = internal; { if (!((((abfd)->tdata.coff_obj_data)->raw_syment_count) == (unsigned int) (internal_ptr - internal))) bfd_assert("coffgen.c",1881); }; return (internal); } long coff_get_reloc_upper_bound (abfd, asect) bfd *abfd; sec_ptr asect; { if (((abfd)->format) != bfd_object) { bfd_set_error (bfd_error_invalid_operation); return -1; } return (asect->reloc_count + 1) * sizeof (arelent *); } asymbol * coff_make_empty_symbol (abfd) bfd *abfd; { bfd_size_type amt = sizeof (coff_symbol_type); coff_symbol_type *new = (coff_symbol_type *) bfd_zalloc (abfd, amt); if (new == ((void *)0)) return (((void *)0)); new->symbol.section = 0; new->native = 0; new->lineno = (alent *) ((void *)0); new->done_lineno = 0; new->symbol.the_bfd = abfd; return &new->symbol; } asymbol * coff_bfd_make_debug_symbol (abfd, ptr, sz) bfd *abfd; void * ptr __attribute__ ((__unused__)); unsigned long sz __attribute__ ((__unused__)); { bfd_size_type amt = sizeof (coff_symbol_type); coff_symbol_type *new = (coff_symbol_type *) bfd_alloc (abfd, amt); if (new == ((void *)0)) return (((void *)0)); amt = sizeof (combined_entry_type) * 10; new->native = (combined_entry_type *) bfd_zalloc (abfd, amt); if (!new->native) return (((void *)0)); new->symbol.section = ((asection *) &bfd_abs_section); new->symbol.flags = 0x08; new->lineno = (alent *) ((void *)0); new->done_lineno = 0; new->symbol.the_bfd = abfd; return &new->symbol; } void coff_get_symbol_info (abfd, symbol, ret) bfd *abfd; asymbol *symbol; symbol_info *ret; { bfd_symbol_info (symbol, ret); if (((coff_symbol_type *)(&((symbol)->the_bfd)))->native != ((void *)0) && ((coff_symbol_type *)(&((symbol)->the_bfd)))->native->fix_value) { ret->value = ((coff_symbol_type *)(&((symbol)->the_bfd)))->native->u.syment.n_value - (unsigned long) (((abfd)->tdata.coff_obj_data)->raw_syments); } } bfd_boolean bfd_coff_get_syment (abfd, symbol, psyment) bfd *abfd; asymbol *symbol; struct internal_syment *psyment; { coff_symbol_type *csym; csym = coff_symbol_from (abfd, symbol); if (csym == ((void *)0) || csym->native == ((void *)0)) { bfd_set_error (bfd_error_invalid_operation); return 0; } *psyment = csym->native->u.syment; if (csym->native->fix_value) psyment->n_value = psyment->n_value - (unsigned long) (((abfd)->tdata.coff_obj_data)->raw_syments); return 1; } bfd_boolean bfd_coff_get_auxent (abfd, symbol, indx, pauxent) bfd *abfd; asymbol *symbol; int indx; union internal_auxent *pauxent; { coff_symbol_type *csym; combined_entry_type *ent; csym = coff_symbol_from (abfd, symbol); if (csym == ((void *)0) || csym->native == ((void *)0) || indx >= csym->native->u.syment.n_numaux) { bfd_set_error (bfd_error_invalid_operation); return 0; } ent = csym->native + indx + 1; *pauxent = ent->u.auxent; if (ent->fix_tag) pauxent->x_sym.x_tagndx.l = ((combined_entry_type *) pauxent->x_sym.x_tagndx.p - (((abfd)->tdata.coff_obj_data)->raw_syments)); if (ent->fix_end) pauxent->x_sym.x_fcnary.x_fcn.x_endndx.l = ((combined_entry_type *) pauxent->x_sym.x_fcnary.x_fcn.x_endndx.p - (((abfd)->tdata.coff_obj_data)->raw_syments)); if (ent->fix_scnlen) pauxent->x_csect.x_scnlen.l = ((combined_entry_type *) pauxent->x_csect.x_scnlen.p - (((abfd)->tdata.coff_obj_data)->raw_syments)); return 1; } void coff_print_symbol (abfd, filep, symbol, how) bfd *abfd; void * filep; asymbol *symbol; bfd_print_symbol_type how; { FILE *file = (FILE *) filep; switch (how) { case bfd_print_symbol_name: fprintf (file, "%s", symbol->name); break; case bfd_print_symbol_more: fprintf (file, "coff %s %s", ((coff_symbol_type *)(&((symbol)->the_bfd)))->native ? "n" : "g", ((coff_symbol_type *)(&((symbol)->the_bfd)))->lineno ? "l" : " "); break; case bfd_print_symbol_all: if (((coff_symbol_type *)(&((symbol)->the_bfd)))->native) { bfd_vma val; unsigned int aux; combined_entry_type *combined = ((coff_symbol_type *)(&((symbol)->the_bfd)))->native; combined_entry_type *root = (((abfd)->tdata.coff_obj_data)->raw_syments); struct lineno_cache_entry *l = ((coff_symbol_type *)(&((symbol)->the_bfd)))->lineno; fprintf (file, "[%3ld]", (long) (combined - root)); if (! combined->fix_value) val = (bfd_vma) combined->u.syment.n_value; else val = combined->u.syment.n_value - (unsigned long) root; fprintf (file, "(sec %2d)(fl 0x%02x)(ty %3x)(scl %3d) (nx %d) 0x%08lx %s", combined->u.syment.n_scnum, combined->u.syment.n_flags, combined->u.syment.n_type, combined->u.syment.n_sclass, combined->u.syment.n_numaux, (unsigned long) val, symbol->name); # 2090 "coffgen.c" for (aux = 0; aux < combined->u.syment.n_numaux; aux++) { combined_entry_type *auxp = combined + aux + 1; long tagndx; if (auxp->fix_tag) tagndx = auxp->u.auxent.x_sym.x_tagndx.p - root; else tagndx = auxp->u.auxent.x_sym.x_tagndx.l; fprintf (file, "\n"); if (((((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_coff_print_aux) (abfd, file, root, combined, auxp, aux))) continue; switch (combined->u.syment.n_sclass) { case 103: fprintf (file, "File "); break; case 3: if (combined->u.syment.n_type == 0) { fprintf (file, "AUX scnlen 0x%lx nreloc %d nlnno %d", (long) auxp->u.auxent.x_scn.x_scnlen, auxp->u.auxent.x_scn.x_nreloc, auxp->u.auxent.x_scn.x_nlinno); if (auxp->u.auxent.x_scn.x_checksum != 0 || auxp->u.auxent.x_scn.x_associated != 0 || auxp->u.auxent.x_scn.x_comdat != 0) fprintf (file, " checksum 0x%lx assoc %d comdat %d", auxp->u.auxent.x_scn.x_checksum, auxp->u.auxent.x_scn.x_associated, auxp->u.auxent.x_scn.x_comdat); break; } case 2: if ((((unsigned long) (combined->u.syment.n_type) & ((abfd)->tdata.coff_obj_data)->local_n_tmask) == ((unsigned long) (2) << ((abfd)->tdata.coff_obj_data)->local_n_btshft))) { long next, llnos; if (auxp->fix_end) next = (auxp->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.p - root); else next = auxp->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.l; llnos = auxp->u.auxent.x_sym.x_fcnary.x_fcn.x_lnnoptr; fprintf (file, "AUX tagndx %ld ttlsiz 0x%lx lnnos %ld next %ld", tagndx, auxp->u.auxent.x_sym.x_misc.x_fsize, llnos, next); break; } default: fprintf (file, "AUX lnno %d size 0x%x tagndx %ld", auxp->u.auxent.x_sym.x_misc.x_lnsz.x_lnno, auxp->u.auxent.x_sym.x_misc.x_lnsz.x_size, tagndx); if (auxp->fix_end) fprintf (file, " endndx %ld", ((long) (auxp->u.auxent.x_sym.x_fcnary.x_fcn.x_endndx.p - root))); break; } } if (l) { fprintf (file, "\n%s :", l->u.sym->name); l++; while (l->line_number) { fprintf (file, "\n%4d : 0x%lx", l->line_number, ((unsigned long) (l->u.offset + symbol->section->vma))); l++; } } } else { bfd_print_symbol_vandf (abfd, (void *) file, symbol); fprintf (file, " %-5s %s %s %s", symbol->section->name, ((coff_symbol_type *)(&((symbol)->the_bfd)))->native ? "n" : "g", ((coff_symbol_type *)(&((symbol)->the_bfd)))->lineno ? "l" : " ", symbol->name); } } } bfd_boolean _bfd_coff_is_local_label_name (abfd, name) bfd *abfd __attribute__ ((__unused__)); const char *name; { return name[0] == '.' && name[1] == 'L'; } bfd_boolean coff_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr) bfd *abfd; asection *section; asymbol **symbols; bfd_vma offset; const char **filename_ptr; const char **functionname_ptr; unsigned int *line_ptr; { bfd_boolean found; unsigned int i; unsigned int line_base; coff_data_type *cof = ((abfd)->tdata.coff_obj_data); combined_entry_type *p; combined_entry_type *pend; alent *l; struct coff_section_tdata *sec_data; bfd_size_type amt; if (! _bfd_stab_section_find_nearest_line (abfd, symbols, section, offset, &found, filename_ptr, functionname_ptr, line_ptr, &((abfd)->tdata.coff_obj_data)->line_info)) return 0; if (found) return 1; if (_bfd_dwarf2_find_nearest_line (abfd, section, symbols, offset, filename_ptr, functionname_ptr, line_ptr, 0, &((abfd)->tdata.coff_obj_data)->dwarf2_find_line_info)) return 1; *filename_ptr = 0; *functionname_ptr = 0; *line_ptr = 0; if (!(((abfd)->xvec->flavour) == bfd_target_coff_flavour || ((abfd)->xvec->flavour) == bfd_target_xcoff_flavour)) return 0; if (cof == ((void *)0)) return 0; p = cof->raw_syments; if (!p) return 0; pend = p + cof->raw_syment_count; while (p < pend) { if (p->u.syment.n_sclass == 103) break; p += 1 + p->u.syment.n_numaux; } if (p < pend) { bfd_vma sec_vma; bfd_vma maxdiff; sec_vma = ((section)->vma + 0); *filename_ptr = (char *) p->u.syment._n._n_n._n_offset; maxdiff = (bfd_vma) 0 - (bfd_vma) 1; while (1) { combined_entry_type *p2; for (p2 = p + 1 + p->u.syment.n_numaux; p2 < pend; p2 += 1 + p2->u.syment.n_numaux) { if (p2->u.syment.n_scnum > 0 && (section == coff_section_from_bfd_index (abfd, p2->u.syment.n_scnum))) break; if (p2->u.syment.n_sclass == 103) { p2 = pend; break; } } if (p2 < pend && offset + sec_vma >= (bfd_vma) p2->u.syment.n_value && offset + sec_vma - (bfd_vma) p2->u.syment.n_value <= maxdiff) { *filename_ptr = (char *) p->u.syment._n._n_n._n_offset; maxdiff = offset + sec_vma - p2->u.syment.n_value; } if (p >= cof->raw_syments + p->u.syment.n_value) break; p = cof->raw_syments + p->u.syment.n_value; if (p > pend || p->u.syment.n_sclass != 103) break; } } sec_data = ((struct coff_section_tdata *) (section)->used_by_bfd); if (sec_data != ((void *)0) && sec_data->i > 0 && offset >= sec_data->offset) { i = sec_data->i; *functionname_ptr = sec_data->function; line_base = sec_data->line_base; } else { i = 0; line_base = 0; } if (section->lineno != ((void *)0)) { bfd_vma last_value = 0; l = §ion->lineno[i]; for (; i < section->lineno_count; i++) { if (l->line_number == 0) { coff_symbol_type *coff = (coff_symbol_type *) (l->u.sym); if (coff->symbol.value > offset) break; *functionname_ptr = coff->symbol.name; last_value = coff->symbol.value; if (coff->native) { combined_entry_type *s = coff->native; s = s + 1 + s->u.syment.n_numaux; if (s->u.syment.n_scnum == ((short)-2)) s = s + 1 + s->u.syment.n_numaux; if (s->u.syment.n_numaux) { union internal_auxent *a = &((s + 1)->u.auxent); line_base = a->x_sym.x_misc.x_lnsz.x_lnno; *line_ptr = line_base; } } } else { if (l->u.offset > offset) break; *line_ptr = l->line_number + line_base - 1; } l++; } if (i >= section->lineno_count && last_value != 0 && offset - last_value > 0x100) { *functionname_ptr = ((void *)0); *line_ptr = 0; } } if (sec_data == ((void *)0) && section->owner == abfd) { amt = sizeof (struct coff_section_tdata); section->used_by_bfd = (void *) bfd_zalloc (abfd, amt); sec_data = (struct coff_section_tdata *) section->used_by_bfd; } if (sec_data != ((void *)0)) { sec_data->offset = offset; sec_data->i = i; sec_data->function = *functionname_ptr; sec_data->line_base = line_base; } return 1; } int coff_sizeof_headers (abfd, reloc) bfd *abfd; bfd_boolean reloc; { size_t size; if (! reloc) { size = (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_filhsz) + (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_aoutsz); } else { size = (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_filhsz); } size += abfd->section_count * (((bfd_coff_backend_data *) (abfd)->xvec->backend_data)->_bfd_scnhsz); return size; } bfd_boolean bfd_coff_set_symbol_class (abfd, symbol, class) bfd * abfd; asymbol * symbol; unsigned int class; { coff_symbol_type * csym; csym = coff_symbol_from (abfd, symbol); if (csym == ((void *)0)) { bfd_set_error (bfd_error_invalid_operation); return 0; } else if (csym->native == ((void *)0)) { combined_entry_type * native; bfd_size_type amt = sizeof (* native); native = (combined_entry_type *) bfd_zalloc (abfd, amt); if (native == ((void *)0)) return 0; native->u.syment.n_type = 0; native->u.syment.n_sclass = class; if (((symbol->section) == ((asection *) &bfd_und_section))) { native->u.syment.n_scnum = ((short)0); native->u.syment.n_value = symbol->value; } else if ((((symbol->section)->flags & 0x8000) != 0)) { native->u.syment.n_scnum = ((short)0); native->u.syment.n_value = symbol->value; } else { native->u.syment.n_scnum = symbol->section->output_section->target_index; native->u.syment.n_value = (symbol->value + symbol->section->output_offset); if (! (((abfd)->tdata.coff_obj_data)->pe)) native->u.syment.n_value += symbol->section->output_section->vma; native->u.syment.n_flags = ((& csym->symbol)->the_bfd)->flags; } csym->native = native; } else { csym->native->u.syment.n_sclass = class; } return 1; }