12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880 |
- #include "sysdep.h"
- #include "bfd.h"
- #include "libbfd.h"
- #include "fnmatch.h"
- extern const bfd_target aarch64_elf32_be_vec;
- extern const bfd_target aarch64_elf32_le_vec;
- extern const bfd_target aarch64_elf64_be_vec;
- extern const bfd_target aarch64_elf64_le_vec;
- extern const bfd_target alpha_ecoff_le_vec;
- extern const bfd_target alpha_elf64_vec;
- extern const bfd_target alpha_elf64_fbsd_vec;
- extern const bfd_target alpha_nlm32_vec;
- extern const bfd_target alpha_vms_vec;
- extern const bfd_target alpha_vms_lib_txt_vec;
- extern const bfd_target am33_elf32_linux_vec;
- extern const bfd_target aout0_be_vec;
- extern const bfd_target aout64_vec;
- extern const bfd_target aout_vec;
- extern const bfd_target aout_adobe_vec;
- extern const bfd_target arc_elf32_be_vec;
- extern const bfd_target arc_elf32_le_vec;
- extern const bfd_target arm_aout_be_vec;
- extern const bfd_target arm_aout_le_vec;
- extern const bfd_target arm_aout_nbsd_vec;
- extern const bfd_target arm_aout_riscix_vec;
- extern const bfd_target arm_coff_be_vec;
- extern const bfd_target arm_coff_le_vec;
- extern const bfd_target arm_elf32_be_vec;
- extern const bfd_target arm_elf32_le_vec;
- extern const bfd_target arm_elf32_nacl_be_vec;
- extern const bfd_target arm_elf32_nacl_le_vec;
- extern const bfd_target arm_elf32_symbian_be_vec;
- extern const bfd_target arm_elf32_symbian_le_vec;
- extern const bfd_target arm_elf32_vxworks_be_vec;
- extern const bfd_target arm_elf32_vxworks_le_vec;
- extern const bfd_target arm_pe_be_vec;
- extern const bfd_target arm_pe_le_vec;
- extern const bfd_target arm_pe_epoc_be_vec;
- extern const bfd_target arm_pe_epoc_le_vec;
- extern const bfd_target arm_pe_wince_be_vec;
- extern const bfd_target arm_pe_wince_le_vec;
- extern const bfd_target arm_pei_be_vec;
- extern const bfd_target arm_pei_le_vec;
- extern const bfd_target arm_pei_epoc_be_vec;
- extern const bfd_target arm_pei_epoc_le_vec;
- extern const bfd_target arm_pei_wince_be_vec;
- extern const bfd_target arm_pei_wince_le_vec;
- extern const bfd_target avr_elf32_vec;
- extern const bfd_target bfin_elf32_vec;
- extern const bfd_target bfin_elf32_fdpic_vec;
- extern const bfd_target bout_be_vec;
- extern const bfd_target bout_le_vec;
- extern const bfd_target cr16_elf32_vec;
- extern const bfd_target cr16c_elf32_vec;
- extern const bfd_target cris_aout_vec;
- extern const bfd_target cris_elf32_vec;
- extern const bfd_target cris_elf32_us_vec;
- extern const bfd_target crx_elf32_vec;
- extern const bfd_target d10v_elf32_vec;
- extern const bfd_target d30v_elf32_vec;
- extern const bfd_target dlx_elf32_be_vec;
- extern const bfd_target elf32_be_vec;
- extern const bfd_target elf32_le_vec;
- extern const bfd_target elf64_be_vec;
- extern const bfd_target elf64_le_vec;
- extern const bfd_target epiphany_elf32_vec;
- extern const bfd_target fr30_elf32_vec;
- extern const bfd_target frv_elf32_vec;
- extern const bfd_target frv_elf32_fdpic_vec;
- extern const bfd_target h8300_coff_vec;
- extern const bfd_target h8300_elf32_vec;
- extern const bfd_target h8300_elf32_linux_vec;
- extern const bfd_target h8500_coff_vec;
- extern const bfd_target hppa_elf32_vec;
- extern const bfd_target hppa_elf32_linux_vec;
- extern const bfd_target hppa_elf32_nbsd_vec;
- extern const bfd_target hppa_elf64_vec;
- extern const bfd_target hppa_elf64_linux_vec;
- extern const bfd_target hppa_som_vec;
- extern const bfd_target i370_elf32_vec;
- extern const bfd_target i386_aout_vec;
- extern const bfd_target i386_aout_bsd_vec;
- extern const bfd_target i386_aout_dynix_vec;
- extern const bfd_target i386_aout_fbsd_vec;
- extern const bfd_target i386_aout_linux_vec;
- extern const bfd_target i386_aout_lynx_vec;
- extern const bfd_target i386_aout_mach3_vec;
- extern const bfd_target i386_aout_nbsd_vec;
- extern const bfd_target i386_aout_os9k_vec;
- extern const bfd_target i386_coff_vec;
- extern const bfd_target i386_coff_go32_vec;
- extern const bfd_target i386_coff_go32stubbed_vec;
- extern const bfd_target i386_coff_lynx_vec;
- extern const bfd_target i386_elf32_vec;
- extern const bfd_target i386_elf32_fbsd_vec;
- extern const bfd_target i386_elf32_nacl_vec;
- extern const bfd_target i386_elf32_sol2_vec;
- extern const bfd_target i386_elf32_vxworks_vec;
- extern const bfd_target i386_mach_o_vec;
- extern const bfd_target i386_msdos_vec;
- extern const bfd_target i386_nlm32_vec;
- extern const bfd_target i386_pe_vec;
- extern const bfd_target i386_pei_vec;
- extern const bfd_target iamcu_elf32_vec;
- extern const bfd_target i860_coff_vec;
- extern const bfd_target i860_elf32_vec;
- extern const bfd_target i860_elf32_le_vec;
- extern const bfd_target i960_elf32_vec;
- extern const bfd_target ia64_elf32_be_vec;
- extern const bfd_target ia64_elf32_hpux_be_vec;
- extern const bfd_target ia64_elf64_be_vec;
- extern const bfd_target ia64_elf64_le_vec;
- extern const bfd_target ia64_elf64_hpux_be_vec;
- extern const bfd_target ia64_elf64_vms_vec;
- extern const bfd_target ia64_pei_vec;
- extern const bfd_target icoff_be_vec;
- extern const bfd_target icoff_le_vec;
- extern const bfd_target ieee_vec;
- extern const bfd_target ip2k_elf32_vec;
- extern const bfd_target iq2000_elf32_vec;
- extern const bfd_target k1om_elf64_vec;
- extern const bfd_target k1om_elf64_fbsd_vec;
- extern const bfd_target l1om_elf64_vec;
- extern const bfd_target l1om_elf64_fbsd_vec;
- extern const bfd_target lm32_elf32_vec;
- extern const bfd_target lm32_elf32_fdpic_vec;
- extern const bfd_target m32c_elf32_vec;
- extern const bfd_target m32r_elf32_vec;
- extern const bfd_target m32r_elf32_le_vec;
- extern const bfd_target m32r_elf32_linux_vec;
- extern const bfd_target m32r_elf32_linux_le_vec;
- extern const bfd_target m68hc11_elf32_vec;
- extern const bfd_target m68hc12_elf32_vec;
- extern const bfd_target m68k_aout_4knbsd_vec;
- extern const bfd_target m68k_aout_hp300bsd_vec;
- extern const bfd_target m68k_aout_hp300hpux_vec;
- extern const bfd_target m68k_aout_linux_vec;
- extern const bfd_target m68k_aout_nbsd_vec;
- extern const bfd_target m68k_aout_newsos3_vec;
- extern const bfd_target m68k_coff_vec;
- extern const bfd_target m68k_coff_apollo_vec;
- extern const bfd_target m68k_coff_aux_vec;
- extern const bfd_target m68k_coff_sysv_vec;
- extern const bfd_target m68k_coff_un_vec;
- extern const bfd_target m68k_elf32_vec;
- extern const bfd_target m68k_versados_vec;
- extern const bfd_target m88k_aout_mach3_vec;
- extern const bfd_target m88k_aout_obsd_vec;
- extern const bfd_target m88k_coff_bcs_vec;
- extern const bfd_target m88k_elf32_vec;
- extern const bfd_target mach_o_be_vec;
- extern const bfd_target mach_o_le_vec;
- extern const bfd_target mach_o_fat_vec;
- extern const bfd_target mcore_elf32_be_vec;
- extern const bfd_target mcore_elf32_le_vec;
- extern const bfd_target mcore_pe_be_vec;
- extern const bfd_target mcore_pe_le_vec;
- extern const bfd_target mcore_pei_be_vec;
- extern const bfd_target mcore_pei_le_vec;
- extern const bfd_target mep_elf32_vec;
- extern const bfd_target mep_elf32_le_vec;
- extern const bfd_target metag_elf32_vec;
- extern const bfd_target microblaze_elf32_vec;
- extern const bfd_target microblaze_elf32_le_vec;
- extern const bfd_target mips_aout_be_vec;
- extern const bfd_target mips_aout_le_vec;
- extern const bfd_target mips_ecoff_be_vec;
- extern const bfd_target mips_ecoff_le_vec;
- extern const bfd_target mips_ecoff_bele_vec;
- extern const bfd_target mips_elf32_be_vec;
- extern const bfd_target mips_elf32_le_vec;
- extern const bfd_target mips_elf32_n_be_vec;
- extern const bfd_target mips_elf32_n_le_vec;
- extern const bfd_target mips_elf32_ntrad_be_vec;
- extern const bfd_target mips_elf32_ntrad_le_vec;
- extern const bfd_target mips_elf32_ntradfbsd_be_vec;
- extern const bfd_target mips_elf32_ntradfbsd_le_vec;
- extern const bfd_target mips_elf32_trad_be_vec;
- extern const bfd_target mips_elf32_trad_le_vec;
- extern const bfd_target mips_elf32_tradfbsd_be_vec;
- extern const bfd_target mips_elf32_tradfbsd_le_vec;
- extern const bfd_target mips_elf32_vxworks_be_vec;
- extern const bfd_target mips_elf32_vxworks_le_vec;
- extern const bfd_target mips_elf64_be_vec;
- extern const bfd_target mips_elf64_le_vec;
- extern const bfd_target mips_elf64_trad_be_vec;
- extern const bfd_target mips_elf64_trad_le_vec;
- extern const bfd_target mips_elf64_tradfbsd_be_vec;
- extern const bfd_target mips_elf64_tradfbsd_le_vec;
- extern const bfd_target mips_pe_le_vec;
- extern const bfd_target mips_pei_le_vec;
- extern const bfd_target mmix_elf64_vec;
- extern const bfd_target mmix_mmo_vec;
- extern const bfd_target mn10200_elf32_vec;
- extern const bfd_target mn10300_elf32_vec;
- extern const bfd_target moxie_elf32_be_vec;
- extern const bfd_target moxie_elf32_le_vec;
- extern const bfd_target msp430_elf32_vec;
- extern const bfd_target msp430_elf32_ti_vec;
- extern const bfd_target mt_elf32_vec;
- extern const bfd_target nds32_elf32_be_vec;
- extern const bfd_target nds32_elf32_le_vec;
- extern const bfd_target nds32_elf32_linux_be_vec;
- extern const bfd_target nds32_elf32_linux_le_vec;
- extern const bfd_target nios2_elf32_be_vec;
- extern const bfd_target nios2_elf32_le_vec;
- extern const bfd_target ns32k_aout_pc532mach_vec;
- extern const bfd_target ns32k_aout_pc532nbsd_vec;
- extern const bfd_target oasys_vec;
- extern const bfd_target or1k_elf32_vec;
- extern const bfd_target pdp11_aout_vec;
- extern const bfd_target pef_vec;
- extern const bfd_target pef_xlib_vec;
- extern const bfd_target pj_elf32_vec;
- extern const bfd_target pj_elf32_le_vec;
- extern const bfd_target plugin_vec;
- extern const bfd_target powerpc_boot_vec;
- extern const bfd_target powerpc_elf32_vec;
- extern const bfd_target powerpc_elf32_le_vec;
- extern const bfd_target powerpc_elf32_fbsd_vec;
- extern const bfd_target powerpc_elf32_vxworks_vec;
- extern const bfd_target powerpc_elf64_vec;
- extern const bfd_target powerpc_elf64_le_vec;
- extern const bfd_target powerpc_elf64_fbsd_vec;
- extern const bfd_target powerpc_nlm32_vec;
- extern const bfd_target powerpc_pe_vec;
- extern const bfd_target powerpc_pe_le_vec;
- extern const bfd_target powerpc_pei_vec;
- extern const bfd_target powerpc_pei_le_vec;
- extern const bfd_target powerpc_xcoff_vec;
- extern const bfd_target rl78_elf32_vec;
- extern const bfd_target rs6000_xcoff64_vec;
- extern const bfd_target rs6000_xcoff64_aix_vec;
- extern const bfd_target rs6000_xcoff_vec;
- extern const bfd_target rx_elf32_be_vec;
- extern const bfd_target rx_elf32_be_ns_vec;
- extern const bfd_target rx_elf32_le_vec;
- extern const bfd_target s390_elf32_vec;
- extern const bfd_target s390_elf64_vec;
- extern const bfd_target score_elf32_be_vec;
- extern const bfd_target score_elf32_le_vec;
- extern const bfd_target sh64_elf32_vec;
- extern const bfd_target sh64_elf32_le_vec;
- extern const bfd_target sh64_elf32_linux_vec;
- extern const bfd_target sh64_elf32_linux_be_vec;
- extern const bfd_target sh64_elf32_nbsd_vec;
- extern const bfd_target sh64_elf32_nbsd_le_vec;
- extern const bfd_target sh64_elf64_vec;
- extern const bfd_target sh64_elf64_le_vec;
- extern const bfd_target sh64_elf64_linux_vec;
- extern const bfd_target sh64_elf64_linux_be_vec;
- extern const bfd_target sh64_elf64_nbsd_vec;
- extern const bfd_target sh64_elf64_nbsd_le_vec;
- extern const bfd_target sh_coff_vec;
- extern const bfd_target sh_coff_le_vec;
- extern const bfd_target sh_coff_small_vec;
- extern const bfd_target sh_coff_small_le_vec;
- extern const bfd_target sh_elf32_vec;
- extern const bfd_target sh_elf32_le_vec;
- extern const bfd_target sh_elf32_fdpic_be_vec;
- extern const bfd_target sh_elf32_fdpic_le_vec;
- extern const bfd_target sh_elf32_linux_vec;
- extern const bfd_target sh_elf32_linux_be_vec;
- extern const bfd_target sh_elf32_nbsd_vec;
- extern const bfd_target sh_elf32_nbsd_le_vec;
- extern const bfd_target sh_elf32_symbian_le_vec;
- extern const bfd_target sh_elf32_vxworks_vec;
- extern const bfd_target sh_elf32_vxworks_le_vec;
- extern const bfd_target sh_pe_le_vec;
- extern const bfd_target sh_pei_le_vec;
- extern const bfd_target sparc_aout_le_vec;
- extern const bfd_target sparc_aout_linux_vec;
- extern const bfd_target sparc_aout_lynx_vec;
- extern const bfd_target sparc_aout_nbsd_vec;
- extern const bfd_target sparc_aout_sunos_be_vec;
- extern const bfd_target sparc_coff_vec;
- extern const bfd_target sparc_coff_lynx_vec;
- extern const bfd_target sparc_elf32_vec;
- extern const bfd_target sparc_elf32_sol2_vec;
- extern const bfd_target sparc_elf32_vxworks_vec;
- extern const bfd_target sparc_elf64_vec;
- extern const bfd_target sparc_elf64_fbsd_vec;
- extern const bfd_target sparc_elf64_sol2_vec;
- extern const bfd_target sparc_nlm32_vec;
- extern const bfd_target spu_elf32_vec;
- extern const bfd_target sym_vec;
- extern const bfd_target tic30_aout_vec;
- extern const bfd_target tic30_coff_vec;
- extern const bfd_target tic4x_coff0_vec;
- extern const bfd_target tic4x_coff0_beh_vec;
- extern const bfd_target tic4x_coff1_vec;
- extern const bfd_target tic4x_coff1_beh_vec;
- extern const bfd_target tic4x_coff2_vec;
- extern const bfd_target tic4x_coff2_beh_vec;
- extern const bfd_target tic54x_coff0_vec;
- extern const bfd_target tic54x_coff0_beh_vec;
- extern const bfd_target tic54x_coff1_vec;
- extern const bfd_target tic54x_coff1_beh_vec;
- extern const bfd_target tic54x_coff2_vec;
- extern const bfd_target tic54x_coff2_beh_vec;
- extern const bfd_target tic6x_elf32_be_vec;
- extern const bfd_target tic6x_elf32_le_vec;
- extern const bfd_target tic6x_elf32_c6000_be_vec;
- extern const bfd_target tic6x_elf32_c6000_le_vec;
- extern const bfd_target tic6x_elf32_linux_be_vec;
- extern const bfd_target tic6x_elf32_linux_le_vec;
- extern const bfd_target tic80_coff_vec;
- extern const bfd_target tilegx_elf32_be_vec;
- extern const bfd_target tilegx_elf32_le_vec;
- extern const bfd_target tilegx_elf64_be_vec;
- extern const bfd_target tilegx_elf64_le_vec;
- extern const bfd_target tilepro_elf32_vec;
- extern const bfd_target v800_elf32_vec;
- extern const bfd_target v850_elf32_vec;
- extern const bfd_target ft32_elf32_vec;
- extern const bfd_target vax_aout_1knbsd_vec;
- extern const bfd_target vax_aout_bsd_vec;
- extern const bfd_target vax_aout_nbsd_vec;
- extern const bfd_target vax_elf32_vec;
- extern const bfd_target visium_elf32_vec;
- extern const bfd_target w65_coff_vec;
- extern const bfd_target we32k_coff_vec;
- extern const bfd_target x86_64_coff_vec;
- extern const bfd_target x86_64_elf32_vec;
- extern const bfd_target x86_64_elf32_nacl_vec;
- extern const bfd_target x86_64_elf64_vec;
- extern const bfd_target x86_64_elf64_cloudabi_vec;
- extern const bfd_target x86_64_elf64_fbsd_vec;
- extern const bfd_target x86_64_elf64_nacl_vec;
- extern const bfd_target x86_64_elf64_sol2_vec;
- extern const bfd_target x86_64_mach_o_vec;
- extern const bfd_target x86_64_pe_vec;
- extern const bfd_target x86_64_pe_be_vec;
- extern const bfd_target x86_64_pei_vec;
- extern const bfd_target xc16x_elf32_vec;
- extern const bfd_target xgate_elf32_vec;
- extern const bfd_target xstormy16_elf32_vec;
- extern const bfd_target xtensa_elf32_be_vec;
- extern const bfd_target xtensa_elf32_le_vec;
- extern const bfd_target z80_coff_vec;
- extern const bfd_target z8k_coff_vec;
- extern const bfd_target srec_vec;
- extern const bfd_target symbolsrec_vec;
- extern const bfd_target verilog_vec;
- extern const bfd_target tekhex_vec;
- extern const bfd_target binary_vec;
- extern const bfd_target ihex_vec;
- extern const bfd_target core_aix386_vec;
- extern const bfd_target core_cisco_be_vec;
- extern const bfd_target core_cisco_le_vec;
- extern const bfd_target core_hppabsd_vec;
- extern const bfd_target core_hpux_vec;
- extern const bfd_target core_irix_vec;
- extern const bfd_target core_netbsd_vec;
- extern const bfd_target core_osf_vec;
- extern const bfd_target core_ptrace_vec;
- extern const bfd_target core_sco5_vec;
- extern const bfd_target core_trad_vec;
- static const bfd_target * const _bfd_target_vector[] =
- {
- #ifdef SELECT_VECS
- SELECT_VECS,
- #else
- #ifdef DEFAULT_VECTOR
- &DEFAULT_VECTOR,
- #endif
-
- #ifdef BFD64
- &aarch64_elf32_be_vec,
- &aarch64_elf32_le_vec,
- &aarch64_elf64_be_vec,
- &aarch64_elf64_le_vec,
- #endif
- #ifdef BFD64
- &alpha_ecoff_le_vec,
- &alpha_elf64_vec,
- &alpha_elf64_fbsd_vec,
- &alpha_nlm32_vec,
- &alpha_vms_vec,
- #endif
- &alpha_vms_lib_txt_vec,
- &am33_elf32_linux_vec,
- &aout0_be_vec,
- #ifdef BFD64
- &aout64_vec,
- #endif
- #if 0
-
- &aout_vec,
- #endif
- &aout_adobe_vec,
- &arc_elf32_be_vec,
- &arc_elf32_le_vec,
- #if 0
-
- &arm_aout_be_vec,
- &arm_aout_le_vec,
- #endif
- &arm_aout_nbsd_vec,
- #if 0
-
- &arm_aout_riscix_vec,
- #endif
- &arm_coff_be_vec,
- &arm_coff_le_vec,
- &arm_elf32_be_vec,
- &arm_elf32_le_vec,
- &arm_elf32_symbian_be_vec,
- &arm_elf32_symbian_le_vec,
- &arm_elf32_vxworks_be_vec,
- &arm_elf32_vxworks_le_vec,
- &arm_pe_be_vec,
- &arm_pe_le_vec,
- &arm_pe_epoc_be_vec,
- &arm_pe_epoc_le_vec,
- &arm_pe_wince_be_vec,
- &arm_pe_wince_le_vec,
- &arm_pei_be_vec,
- &arm_pei_le_vec,
- &arm_pei_epoc_be_vec,
- &arm_pei_epoc_le_vec,
- &arm_pei_wince_be_vec,
- &arm_pei_wince_le_vec,
- &avr_elf32_vec,
- &bfin_elf32_vec,
- &bfin_elf32_fdpic_vec,
- &bout_be_vec,
- &bout_le_vec,
- &cr16_elf32_vec,
- &cr16c_elf32_vec,
- &cris_aout_vec,
- &cris_elf32_vec,
- &cris_elf32_us_vec,
- &crx_elf32_vec,
- &d10v_elf32_vec,
- &d30v_elf32_vec,
- &dlx_elf32_be_vec,
-
- &elf32_be_vec,
- &elf32_le_vec,
- #ifdef BFD64
- &elf64_be_vec,
- &elf64_le_vec,
- #endif
- &epiphany_elf32_vec,
- &fr30_elf32_vec,
- &frv_elf32_vec,
- &frv_elf32_fdpic_vec,
- &h8300_coff_vec,
- &h8300_elf32_vec,
- &h8300_elf32_linux_vec,
- &h8500_coff_vec,
- &hppa_elf32_vec,
- &hppa_elf32_linux_vec,
- &hppa_elf32_nbsd_vec,
- #ifdef BFD64
- &hppa_elf64_vec,
- &hppa_elf64_linux_vec,
- #endif
- &hppa_som_vec,
- &i370_elf32_vec,
- &i386_aout_vec,
- &i386_aout_bsd_vec,
- #if 0
- &i386_aout_dynix_vec,
- #endif
- &i386_aout_fbsd_vec,
- #if 0
-
- &i386_aout_linux_vec,
- #endif
- &i386_aout_lynx_vec,
- #if 0
-
- &i386_aout_mach3_vec,
- #endif
- &i386_aout_nbsd_vec,
- &i386_aout_os9k_vec,
- &i386_coff_vec,
- &i386_coff_go32_vec,
- &i386_coff_go32stubbed_vec,
- &i386_coff_lynx_vec,
- &i386_elf32_vec,
- &i386_elf32_fbsd_vec,
- &i386_elf32_nacl_vec,
- &i386_elf32_sol2_vec,
- &i386_elf32_vxworks_vec,
- &i386_mach_o_vec,
- &i386_msdos_vec,
- &i386_nlm32_vec,
- &i386_pe_vec,
- &i386_pei_vec,
- &iamcu_elf32_vec,
- &i860_coff_vec,
- &i860_elf32_vec,
- &i860_elf32_le_vec,
- &i960_elf32_vec,
- #ifdef BFD64
- #if 0
- &ia64_elf32_be_vec,
- #endif
- &ia64_elf32_hpux_be_vec,
- &ia64_elf64_be_vec,
- &ia64_elf64_le_vec,
- &ia64_elf64_hpux_be_vec,
- &ia64_elf64_vms_vec,
- &ia64_pei_vec,
- #endif
- &icoff_be_vec,
- &icoff_le_vec,
- &ieee_vec,
- &ip2k_elf32_vec,
- &iq2000_elf32_vec,
- #ifdef BFD64
- &k1om_elf64_vec,
- &k1om_elf64_fbsd_vec,
- &l1om_elf64_vec,
- &l1om_elf64_fbsd_vec,
- #endif
- &lm32_elf32_vec,
- &m32c_elf32_vec,
- &m32r_elf32_vec,
- &m32r_elf32_le_vec,
- &m32r_elf32_linux_vec,
- &m32r_elf32_linux_le_vec,
- &m68hc11_elf32_vec,
- &m68hc12_elf32_vec,
- #if 0
- &m68k_aout_4knbsd_vec,
-
- &m68k_aout_hp300bsd_vec,
- #endif
- &m68k_aout_hp300hpux_vec,
- #if 0
-
- &m68k_aout_linux_vec,
- #endif
- &m68k_aout_nbsd_vec,
- &m68k_aout_newsos3_vec,
- &m68k_coff_vec,
- #if 0
- &m68k_coff_apollo_vec,
- &m68k_coff_aux_vec,
- #endif
- &m68k_coff_sysv_vec,
- &m68k_coff_un_vec,
- &m68k_elf32_vec,
- &m68k_versados_vec,
- &m88k_aout_mach3_vec,
- &m88k_aout_obsd_vec,
- &m88k_coff_bcs_vec,
- &m88k_elf32_vec,
- &mach_o_be_vec,
- &mach_o_le_vec,
- &mach_o_fat_vec,
- &mcore_elf32_be_vec,
- &mcore_elf32_le_vec,
- &mcore_pe_be_vec,
- &mcore_pe_le_vec,
- &mcore_pei_be_vec,
- &mcore_pei_le_vec,
- &mep_elf32_vec,
- &metag_elf32_vec,
- µblaze_elf32_vec,
- #if 0
-
- &mips_aout_be_vec,
- #endif
- &mips_aout_le_vec,
- &mips_ecoff_be_vec,
- &mips_ecoff_le_vec,
- &mips_ecoff_bele_vec,
- #ifdef BFD64
- &mips_elf32_be_vec,
- &mips_elf32_le_vec,
- &mips_elf32_n_be_vec,
- &mips_elf32_n_le_vec,
- &mips_elf32_ntrad_be_vec,
- &mips_elf32_ntrad_le_vec,
- &mips_elf32_ntradfbsd_be_vec,
- &mips_elf32_ntradfbsd_le_vec,
- &mips_elf32_trad_be_vec,
- &mips_elf32_trad_le_vec,
- &mips_elf32_tradfbsd_be_vec,
- &mips_elf32_tradfbsd_le_vec,
- &mips_elf32_vxworks_be_vec,
- &mips_elf32_vxworks_le_vec,
- &mips_elf64_be_vec,
- &mips_elf64_le_vec,
- &mips_elf64_trad_be_vec,
- &mips_elf64_trad_le_vec,
- &mips_elf64_tradfbsd_be_vec,
- &mips_elf64_tradfbsd_le_vec,
- #endif
- &mips_pe_le_vec,
- &mips_pei_le_vec,
- #ifdef BFD64
- &mmix_elf64_vec,
- &mmix_mmo_vec,
- #endif
- &mn10200_elf32_vec,
- &mn10300_elf32_vec,
- &moxie_elf32_be_vec,
- &moxie_elf32_le_vec,
- &msp430_elf32_vec,
- &msp430_elf32_ti_vec,
- &mt_elf32_vec,
- &nds32_elf32_be_vec,
- &nds32_elf32_le_vec,
- &nds32_elf32_linux_be_vec,
- &nds32_elf32_linux_le_vec,
- &nios2_elf32_be_vec,
- &nios2_elf32_le_vec,
- &ns32k_aout_pc532mach_vec,
- &ns32k_aout_pc532nbsd_vec,
- #if 0
-
- &oasys_vec,
- #endif
- &or1k_elf32_vec,
- &pdp11_aout_vec,
- &pef_vec,
- &pef_xlib_vec,
- &pj_elf32_vec,
- &pj_elf32_le_vec,
- #if BFD_SUPPORTS_PLUGINS
- &plugin_vec,
- #endif
- &powerpc_boot_vec,
- &powerpc_elf32_vec,
- &powerpc_elf32_le_vec,
- &powerpc_elf32_fbsd_vec,
- &powerpc_elf32_vxworks_vec,
- #ifdef BFD64
- &powerpc_elf64_vec,
- &powerpc_elf64_le_vec,
- &powerpc_elf64_fbsd_vec,
- #endif
- &powerpc_nlm32_vec,
- &powerpc_pe_vec,
- &powerpc_pe_le_vec,
- &powerpc_pei_vec,
- &powerpc_pei_le_vec,
- #if 0
-
- &powerpc_xcoff_vec,
- #endif
- &rl78_elf32_vec,
- #ifdef BFD64
- &rs6000_xcoff64_vec,
- &rs6000_xcoff64_aix_vec,
- #endif
- &rs6000_xcoff_vec,
- &rx_elf32_be_vec,
- &rx_elf32_be_ns_vec,
- &rx_elf32_le_vec,
- &s390_elf32_vec,
- #ifdef BFD64
- &s390_elf64_vec,
- #endif
- #ifdef BFD64
- &score_elf32_be_vec,
- &score_elf32_le_vec,
- #endif
- #ifdef BFD64
- &sh64_elf32_vec,
- &sh64_elf32_le_vec,
- &sh64_elf32_linux_vec,
- &sh64_elf32_linux_be_vec,
- &sh64_elf32_nbsd_vec,
- &sh64_elf32_nbsd_le_vec,
- &sh64_elf64_vec,
- &sh64_elf64_le_vec,
- &sh64_elf64_linux_vec,
- &sh64_elf64_linux_be_vec,
- &sh64_elf64_nbsd_vec,
- &sh64_elf64_nbsd_le_vec,
- #endif
- &sh_coff_vec,
- &sh_coff_le_vec,
- &sh_coff_small_vec,
- &sh_coff_small_le_vec,
- &sh_elf32_vec,
- &sh_elf32_le_vec,
- &sh_elf32_fdpic_be_vec,
- &sh_elf32_fdpic_le_vec,
- &sh_elf32_linux_vec,
- &sh_elf32_linux_be_vec,
- &sh_elf32_nbsd_vec,
- &sh_elf32_nbsd_le_vec,
- &sh_elf32_symbian_le_vec,
- &sh_elf32_vxworks_vec,
- &sh_elf32_vxworks_le_vec,
- &sh_pe_le_vec,
- &sh_pei_le_vec,
- &sparc_aout_le_vec,
- &sparc_aout_linux_vec,
- &sparc_aout_lynx_vec,
- &sparc_aout_nbsd_vec,
- &sparc_aout_sunos_be_vec,
- &sparc_coff_vec,
- &sparc_coff_lynx_vec,
- &sparc_elf32_vec,
- &sparc_elf32_sol2_vec,
- &sparc_elf32_vxworks_vec,
- #ifdef BFD64
- &sparc_elf64_vec,
- &sparc_elf64_fbsd_vec,
- &sparc_elf64_sol2_vec,
- #endif
- &sparc_nlm32_vec,
- &spu_elf32_vec,
- &sym_vec,
- &tic30_aout_vec,
- &tic30_coff_vec,
- &tic54x_coff0_beh_vec,
- &tic54x_coff0_vec,
- &tic54x_coff1_beh_vec,
- &tic54x_coff1_vec,
- &tic54x_coff2_beh_vec,
- &tic54x_coff2_vec,
- &tic6x_elf32_be_vec,
- &tic6x_elf32_le_vec,
- &tic80_coff_vec,
- &tilegx_elf32_be_vec,
- &tilegx_elf32_le_vec,
- #ifdef BFD64
- &tilegx_elf64_be_vec,
- &tilegx_elf64_le_vec,
- #endif
- &tilepro_elf32_vec,
- &ft32_elf32_vec,
- &v800_elf32_vec,
- &v850_elf32_vec,
- &vax_aout_1knbsd_vec,
- &vax_aout_bsd_vec,
- &vax_aout_nbsd_vec,
- &vax_elf32_vec,
- &visium_elf32_vec,
- &w65_coff_vec,
- &we32k_coff_vec,
- #ifdef BFD64
- &x86_64_coff_vec,
- &x86_64_elf32_vec,
- &x86_64_elf32_nacl_vec,
- &x86_64_elf64_vec,
- &x86_64_elf64_cloudabi_vec,
- &x86_64_elf64_fbsd_vec,
- &x86_64_elf64_nacl_vec,
- &x86_64_elf64_sol2_vec,
- &x86_64_mach_o_vec,
- &x86_64_pe_vec,
- &x86_64_pe_be_vec,
- &x86_64_pei_vec,
- #endif
- &xc16x_elf32_vec,
- &xgate_elf32_vec,
- &xstormy16_elf32_vec,
- &xtensa_elf32_be_vec,
- &xtensa_elf32_le_vec,
- &z80_coff_vec,
- &z8k_coff_vec,
- #endif
- &srec_vec,
- &symbolsrec_vec,
- &verilog_vec,
- &tekhex_vec,
- &binary_vec,
- &ihex_vec,
- #ifdef AIX386_CORE
- &core_aix386_vec,
- #endif
- #if 0
-
- &core_cisco_be_vec,
- &core_cisco_le_vec,
- #endif
- #ifdef HPPABSD_CORE
- &core_hppabsd_vec,
- #endif
- #ifdef HPUX_CORE
- &core_hpux_vec,
- #endif
- #ifdef IRIX_CORE
- &core_irix_vec,
- #endif
- #ifdef NETBSD_CORE
- &core_netbsd_vec,
- #endif
- #ifdef OSF_CORE
- &core_osf_vec,
- #endif
- #ifdef PTRACE_CORE
- &core_ptrace_vec,
- #endif
- #ifdef SCO5_CORE
- &core_sco5_vec,
- #endif
- #ifdef TRAD_CORE
- &core_trad_vec,
- #endif
- NULL
- };
- const bfd_target * const *bfd_target_vector = _bfd_target_vector;
- const bfd_target *bfd_default_vector[] = {
- #ifdef DEFAULT_VECTOR
- &DEFAULT_VECTOR,
- #endif
- NULL
- };
- static const bfd_target *_bfd_associated_vector[] = {
- #ifdef ASSOCIATED_VECS
- ASSOCIATED_VECS,
- #endif
- NULL
- };
- const bfd_target * const *bfd_associated_vector = _bfd_associated_vector;
- const size_t _bfd_target_vector_entries = sizeof (_bfd_target_vector)/sizeof (*_bfd_target_vector);
- struct targmatch
- {
-
- const char *triplet;
-
- const bfd_target *vector;
- };
- static const struct targmatch bfd_target_match[] = {
- #include "targmatch.h"
- { NULL, NULL }
- };
- static const bfd_target *
- find_target (const char *name)
- {
- const bfd_target * const *target;
- const struct targmatch *match;
- for (target = &bfd_target_vector[0]; *target != NULL; target++)
- if (strcmp (name, (*target)->name) == 0)
- return *target;
-
- for (match = &bfd_target_match[0]; match->triplet != NULL; match++)
- {
- if (fnmatch (match->triplet, name, 0) == 0)
- {
- while (match->vector == NULL)
- ++match;
- return match->vector;
- }
- }
- bfd_set_error (bfd_error_invalid_target);
- return NULL;
- }
- bfd_boolean
- bfd_set_default_target (const char *name)
- {
- const bfd_target *target;
- if (bfd_default_vector[0] != NULL
- && strcmp (name, bfd_default_vector[0]->name) == 0)
- return TRUE;
- target = find_target (name);
- if (target == NULL)
- return FALSE;
- bfd_default_vector[0] = target;
- return TRUE;
- }
- const bfd_target *
- bfd_find_target (const char *target_name, bfd *abfd)
- {
- const char *targname;
- const bfd_target *target;
- if (target_name != NULL)
- targname = target_name;
- else
- targname = getenv ("GNUTARGET");
-
- if (targname == NULL || strcmp (targname, "default") == 0)
- {
- if (bfd_default_vector[0] != NULL)
- target = bfd_default_vector[0];
- else
- target = bfd_target_vector[0];
- if (abfd)
- {
- abfd->xvec = target;
- abfd->target_defaulted = TRUE;
- }
- return target;
- }
- if (abfd)
- abfd->target_defaulted = FALSE;
- target = find_target (targname);
- if (target == NULL)
- return NULL;
- if (abfd)
- abfd->xvec = target;
- return target;
- }
- static bfd_boolean
- _bfd_find_arch_match (const char *tname, const char **arch,
- const char **def_target_arch)
- {
- if (!arch)
- return FALSE;
- while (*arch != NULL)
- {
- const char *in_a = strstr (*arch, tname);
- char end_ch = (in_a ? in_a[strlen (tname)] : 0);
- if (in_a && (in_a == *arch || in_a[-1] == ':')
- && end_ch == 0)
- {
- *def_target_arch = *arch;
- return TRUE;
- }
- arch++;
- }
- return FALSE;
- }
- const bfd_target *
- bfd_get_target_info (const char *target_name, bfd *abfd,
- bfd_boolean *is_bigendian,
- int *underscoring, const char **def_target_arch)
- {
- const bfd_target *target_vec;
- if (is_bigendian)
- *is_bigendian = FALSE;
- if (underscoring)
- *underscoring = -1;
- if (def_target_arch)
- *def_target_arch = NULL;
- target_vec = bfd_find_target (target_name, abfd);
- if (! target_vec)
- return NULL;
- if (is_bigendian)
- *is_bigendian = ((target_vec->byteorder == BFD_ENDIAN_BIG) ? TRUE
- : FALSE);
- if (underscoring)
- *underscoring = ((int) target_vec->symbol_leading_char) & 0xff;
- if (def_target_arch)
- {
- const char *tname = target_vec->name;
- const char **arches = bfd_arch_list ();
- if (arches && tname)
- {
- char *hyp = strchr (tname, '-');
- if (hyp != NULL)
- {
- tname = ++hyp;
-
- if (!_bfd_find_arch_match (tname, arches, def_target_arch))
- {
- char new_tname[50];
- strcpy (new_tname, hyp);
- while ((hyp = strrchr (new_tname, '-')) != NULL)
- {
- *hyp = 0;
- if (_bfd_find_arch_match (new_tname, arches,
- def_target_arch))
- break;
- }
- }
- }
- else
- _bfd_find_arch_match (tname, arches, def_target_arch);
- }
- if (arches)
- free (arches);
- }
- return target_vec;
- }
- const char **
- bfd_target_list (void)
- {
- int vec_length = 0;
- bfd_size_type amt;
- const bfd_target * const *target;
- const char **name_list, **name_ptr;
- for (target = &bfd_target_vector[0]; *target != NULL; target++)
- vec_length++;
- amt = (vec_length + 1) * sizeof (char **);
- name_ptr = name_list = (const char **) bfd_malloc (amt);
- if (name_list == NULL)
- return NULL;
- for (target = &bfd_target_vector[0]; *target != NULL; target++)
- if (target == &bfd_target_vector[0]
- || *target != bfd_target_vector[0])
- *name_ptr++ = (*target)->name;
- *name_ptr = NULL;
- return name_list;
- }
- const bfd_target *
- bfd_search_for_target (int (*search_func) (const bfd_target *, void *),
- void *data)
- {
- const bfd_target * const *target;
- for (target = bfd_target_vector; *target != NULL; target ++)
- if (search_func (*target, data))
- return *target;
- return NULL;
- }
- const char *
- bfd_flavour_name (enum bfd_flavour flavour)
- {
- switch (flavour)
- {
- case bfd_target_unknown_flavour: return "unknown file format";
- case bfd_target_aout_flavour: return "a.out";
- case bfd_target_coff_flavour: return "COFF";
- case bfd_target_ecoff_flavour: return "ECOFF";
- case bfd_target_xcoff_flavour: return "XCOFF";
- case bfd_target_elf_flavour: return "ELF";
- case bfd_target_ieee_flavour: return "IEEE";
- case bfd_target_nlm_flavour: return "NLM";
- case bfd_target_oasys_flavour: return "Oasys";
- case bfd_target_tekhex_flavour: return "Tekhex";
- case bfd_target_srec_flavour: return "Srec";
- case bfd_target_verilog_flavour: return "Verilog";
- case bfd_target_ihex_flavour: return "Ihex";
- case bfd_target_som_flavour: return "SOM";
- case bfd_target_os9k_flavour: return "OS9K";
- case bfd_target_versados_flavour: return "Versados";
- case bfd_target_msdos_flavour: return "MSDOS";
- case bfd_target_ovax_flavour: return "Ovax";
- case bfd_target_evax_flavour: return "Evax";
- case bfd_target_mmo_flavour: return "mmo";
- case bfd_target_mach_o_flavour: return "MACH_O";
- case bfd_target_pef_flavour: return "PEF";
- case bfd_target_pef_xlib_flavour: return "PEF_XLIB";
- case bfd_target_sym_flavour: return "SYM";
-
- }
- abort ();
- }
|