|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760 |
- This is binutils.info, produced by makeinfo version 6.5 from
- binutils.texi.
-
- Copyright (C) 1991-2020 Free Software Foundation, Inc.
-
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.3 or
- any later version published by the Free Software Foundation; with no
- Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
- Texts. A copy of the license is included in the section entitled "GNU
- Free Documentation License".
-
- INFO-DIR-SECTION Software development
- START-INFO-DIR-ENTRY
- * Binutils: (binutils). The GNU binary utilities.
- END-INFO-DIR-ENTRY
-
- INFO-DIR-SECTION Individual utilities
- START-INFO-DIR-ENTRY
- * addr2line: (binutils)addr2line. Convert addresses to file and line.
- * ar: (binutils)ar. Create, modify, and extract from archives.
- * c++filt: (binutils)c++filt. Filter to demangle encoded C++ symbols.
- * cxxfilt: (binutils)c++filt. MS-DOS name for c++filt.
- * dlltool: (binutils)dlltool. Create files needed to build and use DLLs.
- * nm: (binutils)nm. List symbols from object files.
- * objcopy: (binutils)objcopy. Copy and translate object files.
- * objdump: (binutils)objdump. Display information from object files.
- * ranlib: (binutils)ranlib. Generate index to archive contents.
- * readelf: (binutils)readelf. Display the contents of ELF format files.
- * size: (binutils)size. List section sizes and total size.
- * strings: (binutils)strings. List printable strings from files.
- * strip: (binutils)strip. Discard symbols.
- * elfedit: (binutils)elfedit. Update ELF header and property of ELF files.
- * windmc: (binutils)windmc. Generator for Windows message resources.
- * windres: (binutils)windres. Manipulate Windows resources.
- END-INFO-DIR-ENTRY
-
-
- File: binutils.info, Node: Top, Next: ar, Up: (dir)
-
- Introduction
- ************
-
- This brief manual contains documentation for the GNU binary utilities
- (GNU Arm Embedded Toolchain 10-2020-q4-major) version 2.35.1:
-
- This document is distributed under the terms of the GNU Free
- Documentation License version 1.3. A copy of the license is included in
- the section entitled "GNU Free Documentation License".
-
- * Menu:
-
- * ar:: Create, modify, and extract from archives
- * nm:: List symbols from object files
- * objcopy:: Copy and translate object files
- * objdump:: Display information from object files
- * ranlib:: Generate index to archive contents
- * size:: List section sizes and total size
- * strings:: List printable strings from files
- * strip:: Discard symbols
- * c++filt:: Filter to demangle encoded C++ symbols
- * cxxfilt: c++filt. MS-DOS name for c++filt
- * addr2line:: Convert addresses to file and line
- * windmc:: Generator for Windows message resources
- * windres:: Manipulate Windows resources
- * dlltool:: Create files needed to build and use DLLs
- * readelf:: Display the contents of ELF format files
- * elfedit:: Update ELF header and property of ELF files
- * Common Options:: Command-line options for all utilities
- * Selecting the Target System:: How these utilities determine the target
- * debuginfod:: Using binutils with debuginfod
- * Reporting Bugs:: Reporting Bugs
- * GNU Free Documentation License:: GNU Free Documentation License
- * Binutils Index:: Binutils Index
-
-
- File: binutils.info, Node: ar, Next: nm, Prev: Top, Up: Top
-
- 1 ar
- ****
-
- ar [-]P[MOD] [--plugin NAME] [--target BFDNAME] [--output DIRNAME] [RELPOS] [COUNT] ARCHIVE [MEMBER...]
- ar -M [ <mri-script ]
-
- The GNU 'ar' program creates, modifies, and extracts from archives.
- An "archive" is a single file holding a collection of other files in a
- structure that makes it possible to retrieve the original individual
- files (called "members" of the archive).
-
- The original files' contents, mode (permissions), timestamp, owner,
- and group are preserved in the archive, and can be restored on
- extraction.
-
- GNU 'ar' can maintain archives whose members have names of any
- length; however, depending on how 'ar' is configured on your system, a
- limit on member-name length may be imposed for compatibility with
- archive formats maintained with other tools. If it exists, the limit is
- often 15 characters (typical of formats related to a.out) or 16
- characters (typical of formats related to coff).
-
- 'ar' is considered a binary utility because archives of this sort are
- most often used as "libraries" holding commonly needed subroutines.
-
- 'ar' creates an index to the symbols defined in relocatable object
- modules in the archive when you specify the modifier 's'. Once created,
- this index is updated in the archive whenever 'ar' makes a change to its
- contents (save for the 'q' update operation). An archive with such an
- index speeds up linking to the library, and allows routines in the
- library to call each other without regard to their placement in the
- archive.
-
- You may use 'nm -s' or 'nm --print-armap' to list this index table.
- If an archive lacks the table, another form of 'ar' called 'ranlib' can
- be used to add just the table.
-
- GNU 'ar' can optionally create a _thin_ archive, which contains a
- symbol index and references to the original copies of the member files
- of the archive. This is useful for building libraries for use within a
- local build tree, where the relocatable objects are expected to remain
- available, and copying the contents of each object would only waste time
- and space.
-
- An archive can either be _thin_ or it can be normal. It cannot be
- both at the same time. Once an archive is created its format cannot be
- changed without first deleting it and then creating a new archive in its
- place.
-
- Thin archives are also _flattened_, so that adding one thin archive
- to another thin archive does not nest it, as would happen with a normal
- archive. Instead the elements of the first archive are added
- individually to the second archive.
-
- The paths to the elements of the archive are stored relative to the
- archive itself.
-
- GNU 'ar' is designed to be compatible with two different facilities.
- You can control its activity using command-line options, like the
- different varieties of 'ar' on Unix systems; or, if you specify the
- single command-line option '-M', you can control it with a script
- supplied via standard input, like the MRI "librarian" program.
-
- * Menu:
-
- * ar cmdline:: Controlling 'ar' on the command line
- * ar scripts:: Controlling 'ar' with a script
-
-
- File: binutils.info, Node: ar cmdline, Next: ar scripts, Up: ar
-
- 1.1 Controlling 'ar' on the Command Line
- ========================================
-
- ar [-X32_64] [-]P[MOD] [--plugin NAME] [--target BFDNAME] [--output DIRNAME] [RELPOS] [COUNT] ARCHIVE [MEMBER...]
-
- When you use 'ar' in the Unix style, 'ar' insists on at least two
- arguments to execute: one keyletter specifying the _operation_
- (optionally accompanied by other keyletters specifying _modifiers_), and
- the archive name to act on.
-
- Most operations can also accept further MEMBER arguments, specifying
- particular files to operate on.
-
- GNU 'ar' allows you to mix the operation code P and modifier flags
- MOD in any order, within the first command-line argument.
-
- If you wish, you may begin the first command-line argument with a
- dash.
-
- The P keyletter specifies what operation to execute; it may be any of
- the following, but you must specify only one of them:
-
- 'd'
- _Delete_ modules from the archive. Specify the names of modules to
- be deleted as MEMBER...; the archive is untouched if you specify no
- files to delete.
-
- If you specify the 'v' modifier, 'ar' lists each module as it is
- deleted.
-
- 'm'
- Use this operation to _move_ members in an archive.
-
- The ordering of members in an archive can make a difference in how
- programs are linked using the library, if a symbol is defined in
- more than one member.
-
- If no modifiers are used with 'm', any members you name in the
- MEMBER arguments are moved to the _end_ of the archive; you can use
- the 'a', 'b', or 'i' modifiers to move them to a specified place
- instead.
-
- 'p'
- _Print_ the specified members of the archive, to the standard
- output file. If the 'v' modifier is specified, show the member
- name before copying its contents to standard output.
-
- If you specify no MEMBER arguments, all the files in the archive
- are printed.
-
- 'q'
- _Quick append_; Historically, add the files MEMBER... to the end of
- ARCHIVE, without checking for replacement.
-
- The modifiers 'a', 'b', and 'i' do _not_ affect this operation; new
- members are always placed at the end of the archive.
-
- The modifier 'v' makes 'ar' list each file as it is appended.
-
- Since the point of this operation is speed, implementations of 'ar'
- have the option of not updating the archive's symbol table if one
- exists. Too many different systems however assume that symbol
- tables are always up-to-date, so GNU 'ar' will rebuild the table
- even with a quick append.
-
- Note - GNU 'ar' treats the command 'qs' as a synonym for 'r' -
- replacing already existing files in the archive and appending new
- ones at the end.
-
- 'r'
- Insert the files MEMBER... into ARCHIVE (with _replacement_). This
- operation differs from 'q' in that any previously existing members
- are deleted if their names match those being added.
-
- If one of the files named in MEMBER... does not exist, 'ar'
- displays an error message, and leaves undisturbed any existing
- members of the archive matching that name.
-
- By default, new members are added at the end of the file; but you
- may use one of the modifiers 'a', 'b', or 'i' to request placement
- relative to some existing member.
-
- The modifier 'v' used with this operation elicits a line of output
- for each file inserted, along with one of the letters 'a' or 'r' to
- indicate whether the file was appended (no old member deleted) or
- replaced.
-
- 's'
- Add an index to the archive, or update it if it already exists.
- Note this command is an exception to the rule that there can only
- be one command letter, as it is possible to use it as either a
- command or a modifier. In either case it does the same thing.
-
- 't'
- Display a _table_ listing the contents of ARCHIVE, or those of the
- files listed in MEMBER... that are present in the archive.
- Normally only the member name is shown, but if the modifier 'O' is
- specified, then the corresponding offset of the member is also
- displayed. Finally, in order to see the modes (permissions),
- timestamp, owner, group, and size the 'v' modifier should be
- included.
-
- If you do not specify a MEMBER, all files in the archive are
- listed.
-
- If there is more than one file with the same name (say, 'fie') in
- an archive (say 'b.a'), 'ar t b.a fie' lists only the first
- instance; to see them all, you must ask for a complete listing--in
- our example, 'ar t b.a'.
-
- 'x'
- _Extract_ members (named MEMBER) from the archive. You can use the
- 'v' modifier with this operation, to request that 'ar' list each
- name as it extracts it.
-
- If you do not specify a MEMBER, all files in the archive are
- extracted.
-
- Files cannot be extracted from a thin archive, and there are
- restrictions on extracting from archives created with 'P': The
- paths must not be absolute, may not contain '..', and any
- subdirectories in the paths must exist. If it is desired to avoid
- these restrictions then used the '--output' option to specify an
- output directory.
-
- A number of modifiers (MOD) may immediately follow the P keyletter,
- to specify variations on an operation's behavior:
-
- 'a'
- Add new files _after_ an existing member of the archive. If you
- use the modifier 'a', the name of an existing archive member must
- be present as the RELPOS argument, before the ARCHIVE
- specification.
-
- 'b'
- Add new files _before_ an existing member of the archive. If you
- use the modifier 'b', the name of an existing archive member must
- be present as the RELPOS argument, before the ARCHIVE
- specification. (same as 'i').
-
- 'c'
- _Create_ the archive. The specified ARCHIVE is always created if
- it did not exist, when you request an update. But a warning is
- issued unless you specify in advance that you expect to create it,
- by using this modifier.
-
- 'D'
- Operate in _deterministic_ mode. When adding files and the archive
- index use zero for UIDs, GIDs, timestamps, and use consistent file
- modes for all files. When this option is used, if 'ar' is used
- with identical options and identical input files, multiple runs
- will create identical output files regardless of the input files'
- owners, groups, file modes, or modification times.
-
- If 'binutils' was configured with
- '--enable-deterministic-archives', then this mode is on by default.
- It can be disabled with the 'U' modifier, below.
-
- 'f'
- Truncate names in the archive. GNU 'ar' will normally permit file
- names of any length. This will cause it to create archives which
- are not compatible with the native 'ar' program on some systems.
- If this is a concern, the 'f' modifier may be used to truncate file
- names when putting them in the archive.
-
- 'i'
- Insert new files _before_ an existing member of the archive. If
- you use the modifier 'i', the name of an existing archive member
- must be present as the RELPOS argument, before the ARCHIVE
- specification. (same as 'b').
-
- 'l'
- This modifier is accepted but not used.
-
- 'N'
- Uses the COUNT parameter. This is used if there are multiple
- entries in the archive with the same name. Extract or delete
- instance COUNT of the given name from the archive.
-
- 'o'
- Preserve the _original_ dates of members when extracting them. If
- you do not specify this modifier, files extracted from the archive
- are stamped with the time of extraction.
-
- 'O'
- Display member offsets inside the archive. Use together with the
- 't' option.
-
- 'P'
- Use the full path name when matching or storing names in the
- archive. Archives created with full path names are not POSIX
- compliant, and thus may not work with tools other than up to date
- GNU tools. Modifying such archives with GNU 'ar' without using 'P'
- will remove the full path names unless the archive is a thin
- archive. Note that 'P' may be useful when adding files to a thin
- archive since 'r' without 'P' ignores the path when choosing which
- element to replace. Thus
- ar rcST archive.a subdir/file1 subdir/file2 file1
- will result in the first 'subdir/file1' being replaced with 'file1'
- from the current directory. Adding 'P' will prevent this
- replacement.
-
- 's'
- Write an object-file index into the archive, or update an existing
- one, even if no other change is made to the archive. You may use
- this modifier flag either with any operation, or alone. Running
- 'ar s' on an archive is equivalent to running 'ranlib' on it.
-
- 'S'
- Do not generate an archive symbol table. This can speed up
- building a large library in several steps. The resulting archive
- can not be used with the linker. In order to build a symbol table,
- you must omit the 'S' modifier on the last execution of 'ar', or
- you must run 'ranlib' on the archive.
-
- 'T'
- Make the specified ARCHIVE a _thin_ archive. If it already exists
- and is a regular archive, the existing members must be present in
- the same directory as ARCHIVE.
-
- 'u'
- Normally, 'ar r'... inserts all files listed into the archive. If
- you would like to insert _only_ those of the files you list that
- are newer than existing members of the same names, use this
- modifier. The 'u' modifier is allowed only for the operation 'r'
- (replace). In particular, the combination 'qu' is not allowed,
- since checking the timestamps would lose any speed advantage from
- the operation 'q'.
-
- 'U'
- Do _not_ operate in _deterministic_ mode. This is the inverse of
- the 'D' modifier, above: added files and the archive index will get
- their actual UID, GID, timestamp, and file mode values.
-
- This is the default unless 'binutils' was configured with
- '--enable-deterministic-archives'.
-
- 'v'
- This modifier requests the _verbose_ version of an operation. Many
- operations display additional information, such as filenames
- processed, when the modifier 'v' is appended.
-
- 'V'
- This modifier shows the version number of 'ar'.
-
- The 'ar' program also supports some command-line options which are
- neither modifiers nor actions, but which do change its behaviour in
- specific ways:
-
- '--help'
- Displays the list of command-line options supported by 'ar' and
- then exits.
-
- '--version'
- Displays the version information of 'ar' and then exits.
-
- '-X32_64'
- 'ar' ignores an initial option spelled '-X32_64', for compatibility
- with AIX. The behaviour produced by this option is the default for
- GNU 'ar'. 'ar' does not support any of the other '-X' options; in
- particular, it does not support '-X32' which is the default for AIX
- 'ar'.
-
- '--plugin NAME'
- The optional command-line switch '--plugin NAME' causes 'ar' to
- load the plugin called NAME which adds support for more file
- formats, including object files with link-time optimization
- information.
-
- This option is only available if the toolchain has been built with
- plugin support enabled.
-
- If '--plugin' is not provided, but plugin support has been enabled
- then 'ar' iterates over the files in '${libdir}/bfd-plugins' in
- alphabetic order and the first plugin that claims the object in
- question is used.
-
- Please note that this plugin search directory is _not_ the one used
- by 'ld''s '-plugin' option. In order to make 'ar' use the linker
- plugin it must be copied into the '${libdir}/bfd-plugins'
- directory. For GCC based compilations the linker plugin is called
- 'liblto_plugin.so.0.0.0'. For Clang based compilations it is
- called 'LLVMgold.so'. The GCC plugin is always backwards
- compatible with earlier versions, so it is sufficient to just copy
- the newest one.
-
- '--target TARGET'
- The optional command-line switch '--target BFDNAME' specifies that
- the archive members are in an object code format different from
- your system's default format. See *Note Target Selection::, for
- more information.
-
- '--output DIRNAME'
- The '--output' option can be used to specify a path to a directory
- into which archive members should be extracted. If this option is
- not specified then the current directory will be used.
-
- Note - although the presence of this option does imply a 'x'
- extraction operation that option must still be included on the
- command line.
-
-
- File: binutils.info, Node: ar scripts, Prev: ar cmdline, Up: ar
-
- 1.2 Controlling 'ar' with a Script
- ==================================
-
- ar -M [ <SCRIPT ]
-
- If you use the single command-line option '-M' with 'ar', you can
- control its operation with a rudimentary command language. This form of
- 'ar' operates interactively if standard input is coming directly from a
- terminal. During interactive use, 'ar' prompts for input (the prompt is
- 'AR >'), and continues executing even after errors. If you redirect
- standard input to a script file, no prompts are issued, and 'ar'
- abandons execution (with a nonzero exit code) on any error.
-
- The 'ar' command language is _not_ designed to be equivalent to the
- command-line options; in fact, it provides somewhat less control over
- archives. The only purpose of the command language is to ease the
- transition to GNU 'ar' for developers who already have scripts written
- for the MRI "librarian" program.
-
- The syntax for the 'ar' command language is straightforward:
- * commands are recognized in upper or lower case; for example, 'LIST'
- is the same as 'list'. In the following descriptions, commands are
- shown in upper case for clarity.
-
- * a single command may appear on each line; it is the first word on
- the line.
-
- * empty lines are allowed, and have no effect.
-
- * comments are allowed; text after either of the characters '*' or
- ';' is ignored.
-
- * Whenever you use a list of names as part of the argument to an 'ar'
- command, you can separate the individual names with either commas
- or blanks. Commas are shown in the explanations below, for
- clarity.
-
- * '+' is used as a line continuation character; if '+' appears at the
- end of a line, the text on the following line is considered part of
- the current command.
-
- Here are the commands you can use in 'ar' scripts, or when using 'ar'
- interactively. Three of them have special significance:
-
- 'OPEN' or 'CREATE' specify a "current archive", which is a temporary
- file required for most of the other commands.
-
- 'SAVE' commits the changes so far specified by the script. Prior to
- 'SAVE', commands affect only the temporary copy of the current archive.
-
- 'ADDLIB ARCHIVE'
- 'ADDLIB ARCHIVE (MODULE, MODULE, ... MODULE)'
- Add all the contents of ARCHIVE (or, if specified, each named
- MODULE from ARCHIVE) to the current archive.
-
- Requires prior use of 'OPEN' or 'CREATE'.
-
- 'ADDMOD MEMBER, MEMBER, ... MEMBER'
- Add each named MEMBER as a module in the current archive.
-
- Requires prior use of 'OPEN' or 'CREATE'.
-
- 'CLEAR'
- Discard the contents of the current archive, canceling the effect
- of any operations since the last 'SAVE'. May be executed (with no
- effect) even if no current archive is specified.
-
- 'CREATE ARCHIVE'
- Creates an archive, and makes it the current archive (required for
- many other commands). The new archive is created with a temporary
- name; it is not actually saved as ARCHIVE until you use 'SAVE'.
- You can overwrite existing archives; similarly, the contents of any
- existing file named ARCHIVE will not be destroyed until 'SAVE'.
-
- 'DELETE MODULE, MODULE, ... MODULE'
- Delete each listed MODULE from the current archive; equivalent to
- 'ar -d ARCHIVE MODULE ... MODULE'.
-
- Requires prior use of 'OPEN' or 'CREATE'.
-
- 'DIRECTORY ARCHIVE (MODULE, ... MODULE)'
- 'DIRECTORY ARCHIVE (MODULE, ... MODULE) OUTPUTFILE'
- List each named MODULE present in ARCHIVE. The separate command
- 'VERBOSE' specifies the form of the output: when verbose output is
- off, output is like that of 'ar -t ARCHIVE MODULE...'. When
- verbose output is on, the listing is like 'ar -tv ARCHIVE
- MODULE...'.
-
- Output normally goes to the standard output stream; however, if you
- specify OUTPUTFILE as a final argument, 'ar' directs the output to
- that file.
-
- 'END'
- Exit from 'ar', with a '0' exit code to indicate successful
- completion. This command does not save the output file; if you
- have changed the current archive since the last 'SAVE' command,
- those changes are lost.
-
- 'EXTRACT MODULE, MODULE, ... MODULE'
- Extract each named MODULE from the current archive, writing them
- into the current directory as separate files. Equivalent to 'ar -x
- ARCHIVE MODULE...'.
-
- Requires prior use of 'OPEN' or 'CREATE'.
-
- 'LIST'
- Display full contents of the current archive, in "verbose" style
- regardless of the state of 'VERBOSE'. The effect is like 'ar tv
- ARCHIVE'. (This single command is a GNU 'ar' enhancement, rather
- than present for MRI compatibility.)
-
- Requires prior use of 'OPEN' or 'CREATE'.
-
- 'OPEN ARCHIVE'
- Opens an existing archive for use as the current archive (required
- for many other commands). Any changes as the result of subsequent
- commands will not actually affect ARCHIVE until you next use
- 'SAVE'.
-
- 'REPLACE MODULE, MODULE, ... MODULE'
- In the current archive, replace each existing MODULE (named in the
- 'REPLACE' arguments) from files in the current working directory.
- To execute this command without errors, both the file, and the
- module in the current archive, must exist.
-
- Requires prior use of 'OPEN' or 'CREATE'.
-
- 'VERBOSE'
- Toggle an internal flag governing the output from 'DIRECTORY'.
- When the flag is on, 'DIRECTORY' output matches output from 'ar -tv
- '....
-
- 'SAVE'
- Commit your changes to the current archive, and actually save it as
- a file with the name specified in the last 'CREATE' or 'OPEN'
- command.
-
- Requires prior use of 'OPEN' or 'CREATE'.
-
-
- File: binutils.info, Node: nm, Next: objcopy, Prev: ar, Up: Top
-
- 2 nm
- ****
-
- nm [-A|-o|--print-file-name] [-a|--debug-syms]
- [-B|--format=bsd] [-C|--demangle[=STYLE]]
- [-D|--dynamic] [-fFORMAT|--format=FORMAT]
- [-g|--extern-only] [-h|--help]
- [-l|--line-numbers] [--inlines]
- [-n|-v|--numeric-sort]
- [-P|--portability] [-p|--no-sort]
- [-r|--reverse-sort] [-S|--print-size]
- [-s|--print-armap] [-t RADIX|--radix=RADIX]
- [-u|--undefined-only] [-V|--version]
- [-X 32_64] [--defined-only] [--no-demangle]
- [--plugin NAME]
- [--no-recurse-limit|--recurse-limit]]
- [--size-sort] [--special-syms]
- [--synthetic] [--with-symbol-versions] [--target=BFDNAME]
- [OBJFILE...]
-
- GNU 'nm' lists the symbols from object files OBJFILE.... If no
- object files are listed as arguments, 'nm' assumes the file 'a.out'.
-
- For each symbol, 'nm' shows:
-
- * The symbol value, in the radix selected by options (see below), or
- hexadecimal by default.
-
- * The symbol type. At least the following types are used; others
- are, as well, depending on the object file format. If lowercase,
- the symbol is usually local; if uppercase, the symbol is global
- (external). There are however a few lowercase symbols that are
- shown for special global symbols ('u', 'v' and 'w').
-
- 'A'
- The symbol's value is absolute, and will not be changed by
- further linking.
-
- 'B'
- 'b'
- The symbol is in the BSS data section. This section typically
- contains zero-initialized or uninitialized data, although the
- exact behavior is system dependent.
-
- 'C'
- The symbol is common. Common symbols are uninitialized data.
- When linking, multiple common symbols may appear with the same
- name. If the symbol is defined anywhere, the common symbols
- are treated as undefined references. For more details on
- common symbols, see the discussion of -warn-common in *note
- Linker options: (ld.info)Options.
-
- 'D'
- 'd'
- The symbol is in the initialized data section.
-
- 'G'
- 'g'
- The symbol is in an initialized data section for small
- objects. Some object file formats permit more efficient
- access to small data objects, such as a global int variable as
- opposed to a large global array.
-
- 'i'
- For PE format files this indicates that the symbol is in a
- section specific to the implementation of DLLs. For ELF
- format files this indicates that the symbol is an indirect
- function. This is a GNU extension to the standard set of ELF
- symbol types. It indicates a symbol which if referenced by a
- relocation does not evaluate to its address, but instead must
- be invoked at runtime. The runtime execution will then return
- the value to be used in the relocation.
-
- 'I'
- The symbol is an indirect reference to another symbol.
-
- 'N'
- The symbol is a debugging symbol.
-
- 'n'
- The symbol is in the read-only data section.
-
- 'p'
- The symbol is in a stack unwind section.
-
- 'R'
- 'r'
- The symbol is in a read only data section.
-
- 'S'
- 's'
- The symbol is in an uninitialized or zero-initialized data
- section for small objects.
-
- 'T'
- 't'
- The symbol is in the text (code) section.
-
- 'U'
- The symbol is undefined.
-
- 'u'
- The symbol is a unique global symbol. This is a GNU extension
- to the standard set of ELF symbol bindings. For such a symbol
- the dynamic linker will make sure that in the entire process
- there is just one symbol with this name and type in use.
-
- 'V'
- 'v'
- The symbol is a weak object. When a weak defined symbol is
- linked with a normal defined symbol, the normal defined symbol
- is used with no error. When a weak undefined symbol is linked
- and the symbol is not defined, the value of the weak symbol
- becomes zero with no error. On some systems, uppercase
- indicates that a default value has been specified.
-
- 'W'
- 'w'
- The symbol is a weak symbol that has not been specifically
- tagged as a weak object symbol. When a weak defined symbol is
- linked with a normal defined symbol, the normal defined symbol
- is used with no error. When a weak undefined symbol is linked
- and the symbol is not defined, the value of the symbol is
- determined in a system-specific manner without error. On some
- systems, uppercase indicates that a default value has been
- specified.
-
- '-'
- The symbol is a stabs symbol in an a.out object file. In this
- case, the next values printed are the stabs other field, the
- stabs desc field, and the stab type. Stabs symbols are used
- to hold debugging information.
-
- '?'
- The symbol type is unknown, or object file format specific.
-
- * The symbol name.
-
- The long and short forms of options, shown here as alternatives, are
- equivalent.
-
- '-A'
- '-o'
- '--print-file-name'
- Precede each symbol by the name of the input file (or archive
- member) in which it was found, rather than identifying the input
- file once only, before all of its symbols.
-
- '-a'
- '--debug-syms'
- Display all symbols, even debugger-only symbols; normally these are
- not listed.
-
- '-B'
- The same as '--format=bsd' (for compatibility with the MIPS 'nm').
-
- '-C'
- '--demangle[=STYLE]'
- Decode ("demangle") low-level symbol names into user-level names.
- Besides removing any initial underscore prepended by the system,
- this makes C++ function names readable. Different compilers have
- different mangling styles. The optional demangling style argument
- can be used to choose an appropriate demangling style for your
- compiler. *Note c++filt::, for more information on demangling.
-
- '--no-demangle'
- Do not demangle low-level symbol names. This is the default.
-
- '--recurse-limit'
- '--no-recurse-limit'
- '--recursion-limit'
- '--no-recursion-limit'
- Enables or disables a limit on the amount of recursion performed
- whilst demangling strings. Since the name mangling formats allow
- for an inifinite level of recursion it is possible to create
- strings whose decoding will exhaust the amount of stack space
- available on the host machine, triggering a memory fault. The
- limit tries to prevent this from happening by restricting recursion
- to 2048 levels of nesting.
-
- The default is for this limit to be enabled, but disabling it may
- be necessary in order to demangle truly complicated names. Note
- however that if the recursion limit is disabled then stack
- exhaustion is possible and any bug reports about such an event will
- be rejected.
-
- '-D'
- '--dynamic'
- Display the dynamic symbols rather than the normal symbols. This
- is only meaningful for dynamic objects, such as certain types of
- shared libraries.
-
- '-f FORMAT'
- '--format=FORMAT'
- Use the output format FORMAT, which can be 'bsd', 'sysv', or
- 'posix'. The default is 'bsd'. Only the first character of FORMAT
- is significant; it can be either upper or lower case.
-
- '-g'
- '--extern-only'
- Display only external symbols.
-
- '-h'
- '--help'
- Show a summary of the options to 'nm' and exit.
-
- '-l'
- '--line-numbers'
- For each symbol, use debugging information to try to find a
- filename and line number. For a defined symbol, look for the line
- number of the address of the symbol. For an undefined symbol, look
- for the line number of a relocation entry which refers to the
- symbol. If line number information can be found, print it after
- the other symbol information.
-
- '--inlines'
- When option '-l' is active, if the address belongs to a function
- that was inlined, then this option causes the source information
- for all enclosing scopes back to the first non-inlined function to
- be printed as well. For example, if 'main' inlines 'callee1' which
- inlines 'callee2', and address is from 'callee2', the source
- information for 'callee1' and 'main' will also be printed.
-
- '-n'
- '-v'
- '--numeric-sort'
- Sort symbols numerically by their addresses, rather than
- alphabetically by their names.
-
- '-p'
- '--no-sort'
- Do not bother to sort the symbols in any order; print them in the
- order encountered.
-
- '-P'
- '--portability'
- Use the POSIX.2 standard output format instead of the default
- format. Equivalent to '-f posix'.
-
- '-r'
- '--reverse-sort'
- Reverse the order of the sort (whether numeric or alphabetic); let
- the last come first.
-
- '-S'
- '--print-size'
- Print both value and size of defined symbols for the 'bsd' output
- style. This option has no effect for object formats that do not
- record symbol sizes, unless '--size-sort' is also used in which
- case a calculated size is displayed.
-
- '-s'
- '--print-armap'
- When listing symbols from archive members, include the index: a
- mapping (stored in the archive by 'ar' or 'ranlib') of which
- modules contain definitions for which names.
-
- '-t RADIX'
- '--radix=RADIX'
- Use RADIX as the radix for printing the symbol values. It must be
- 'd' for decimal, 'o' for octal, or 'x' for hexadecimal.
-
- '-u'
- '--undefined-only'
- Display only undefined symbols (those external to each object
- file).
-
- '-V'
- '--version'
- Show the version number of 'nm' and exit.
-
- '-X'
- This option is ignored for compatibility with the AIX version of
- 'nm'. It takes one parameter which must be the string '32_64'.
- The default mode of AIX 'nm' corresponds to '-X 32', which is not
- supported by GNU 'nm'.
-
- '--defined-only'
- Display only defined symbols for each object file.
-
- '--plugin NAME'
- Load the plugin called NAME to add support for extra target types.
- This option is only available if the toolchain has been built with
- plugin support enabled.
-
- If '--plugin' is not provided, but plugin support has been enabled
- then 'nm' iterates over the files in '${libdir}/bfd-plugins' in
- alphabetic order and the first plugin that claims the object in
- question is used.
-
- Please note that this plugin search directory is _not_ the one used
- by 'ld''s '-plugin' option. In order to make 'nm' use the linker
- plugin it must be copied into the '${libdir}/bfd-plugins'
- directory. For GCC based compilations the linker plugin is called
- 'liblto_plugin.so.0.0.0'. For Clang based compilations it is
- called 'LLVMgold.so'. The GCC plugin is always backwards
- compatible with earlier versions, so it is sufficient to just copy
- the newest one.
-
- '--size-sort'
- Sort symbols by size. For ELF objects symbol sizes are read from
- the ELF, for other object types the symbol sizes are computed as
- the difference between the value of the symbol and the value of the
- symbol with the next higher value. If the 'bsd' output format is
- used the size of the symbol is printed, rather than the value, and
- '-S' must be used in order both size and value to be printed.
-
- '--special-syms'
- Display symbols which have a target-specific special meaning.
- These symbols are usually used by the target for some special
- processing and are not normally helpful when included in the normal
- symbol lists. For example for ARM targets this option would skip
- the mapping symbols used to mark transitions between ARM code,
- THUMB code and data.
-
- '--synthetic'
- Include synthetic symbols in the output. These are special symbols
- created by the linker for various purposes. They are not shown by
- default since they are not part of the binary's original source
- code.
-
- '--with-symbol-versions'
- Enables the display of symbol version information if any exists.
- The version string is displayed as a suffix to the symbol name,
- preceeded by an @ character. For example 'foo@VER_1'. If the
- version is the default version to be used when resolving
- unversioned references to the symbol then it is displayed as a
- suffix preceeded by two @ characters. For example 'foo@@VER_2'.
-
- '--target=BFDNAME'
- Specify an object code format other than your system's default
- format. *Note Target Selection::, for more information.
-
-
- File: binutils.info, Node: objcopy, Next: objdump, Prev: nm, Up: Top
-
- 3 objcopy
- *********
-
- objcopy [-F BFDNAME|--target=BFDNAME]
- [-I BFDNAME|--input-target=BFDNAME]
- [-O BFDNAME|--output-target=BFDNAME]
- [-B BFDARCH|--binary-architecture=BFDARCH]
- [-S|--strip-all]
- [-g|--strip-debug]
- [--strip-unneeded]
- [-K SYMBOLNAME|--keep-symbol=SYMBOLNAME]
- [-N SYMBOLNAME|--strip-symbol=SYMBOLNAME]
- [--strip-unneeded-symbol=SYMBOLNAME]
- [-G SYMBOLNAME|--keep-global-symbol=SYMBOLNAME]
- [--localize-hidden]
- [-L SYMBOLNAME|--localize-symbol=SYMBOLNAME]
- [--globalize-symbol=SYMBOLNAME]
- [--globalize-symbols=FILENAME]
- [-W SYMBOLNAME|--weaken-symbol=SYMBOLNAME]
- [-w|--wildcard]
- [-x|--discard-all]
- [-X|--discard-locals]
- [-b BYTE|--byte=BYTE]
- [-i [BREADTH]|--interleave[=BREADTH]]
- [--interleave-width=WIDTH]
- [-j SECTIONPATTERN|--only-section=SECTIONPATTERN]
- [-R SECTIONPATTERN|--remove-section=SECTIONPATTERN]
- [--keep-section=SECTIONPATTERN]
- [--remove-relocations=SECTIONPATTERN]
- [-p|--preserve-dates]
- [-D|--enable-deterministic-archives]
- [-U|--disable-deterministic-archives]
- [--debugging]
- [--gap-fill=VAL]
- [--pad-to=ADDRESS]
- [--set-start=VAL]
- [--adjust-start=INCR]
- [--change-addresses=INCR]
- [--change-section-address SECTIONPATTERN{=,+,-}VAL]
- [--change-section-lma SECTIONPATTERN{=,+,-}VAL]
- [--change-section-vma SECTIONPATTERN{=,+,-}VAL]
- [--change-warnings] [--no-change-warnings]
- [--set-section-flags SECTIONPATTERN=FLAGS]
- [--set-section-alignment SECTIONPATTERN=ALIGN]
- [--add-section SECTIONNAME=FILENAME]
- [--dump-section SECTIONNAME=FILENAME]
- [--update-section SECTIONNAME=FILENAME]
- [--rename-section OLDNAME=NEWNAME[,FLAGS]]
- [--long-section-names {enable,disable,keep}]
- [--change-leading-char] [--remove-leading-char]
- [--reverse-bytes=NUM]
- [--srec-len=IVAL] [--srec-forceS3]
- [--redefine-sym OLD=NEW]
- [--redefine-syms=FILENAME]
- [--weaken]
- [--keep-symbols=FILENAME]
- [--strip-symbols=FILENAME]
- [--strip-unneeded-symbols=FILENAME]
- [--keep-global-symbols=FILENAME]
- [--localize-symbols=FILENAME]
- [--weaken-symbols=FILENAME]
- [--add-symbol NAME=[SECTION:]VALUE[,FLAGS]]
- [--alt-machine-code=INDEX]
- [--prefix-symbols=STRING]
- [--prefix-sections=STRING]
- [--prefix-alloc-sections=STRING]
- [--add-gnu-debuglink=PATH-TO-FILE]
- [--keep-file-symbols]
- [--only-keep-debug]
- [--strip-dwo]
- [--extract-dwo]
- [--extract-symbol]
- [--writable-text]
- [--readonly-text]
- [--pure]
- [--impure]
- [--file-alignment=NUM]
- [--heap=SIZE]
- [--image-base=ADDRESS]
- [--section-alignment=NUM]
- [--stack=SIZE]
- [--subsystem=WHICH:MAJOR.MINOR]
- [--compress-debug-sections]
- [--decompress-debug-sections]
- [--elf-stt-common=VAL]
- [--merge-notes]
- [--no-merge-notes]
- [--verilog-data-width=VAL]
- [-v|--verbose]
- [-V|--version]
- [--help] [--info]
- INFILE [OUTFILE]
-
- The GNU 'objcopy' utility copies the contents of an object file to
- another. 'objcopy' uses the GNU BFD Library to read and write the
- object files. It can write the destination object file in a format
- different from that of the source object file. The exact behavior of
- 'objcopy' is controlled by command-line options. Note that 'objcopy'
- should be able to copy a fully linked file between any two formats.
- However, copying a relocatable object file between any two formats may
- not work as expected.
-
- 'objcopy' creates temporary files to do its translations and deletes
- them afterward. 'objcopy' uses BFD to do all its translation work; it
- has access to all the formats described in BFD and thus is able to
- recognize most formats without being told explicitly. *Note BFD:
- (ld.info)BFD.
-
- 'objcopy' can be used to generate S-records by using an output target
- of 'srec' (e.g., use '-O srec').
-
- 'objcopy' can be used to generate a raw binary file by using an
- output target of 'binary' (e.g., use '-O binary'). When 'objcopy'
- generates a raw binary file, it will essentially produce a memory dump
- of the contents of the input object file. All symbols and relocation
- information will be discarded. The memory dump will start at the load
- address of the lowest section copied into the output file.
-
- When generating an S-record or a raw binary file, it may be helpful
- to use '-S' to remove sections containing debugging information. In
- some cases '-R' will be useful to remove sections which contain
- information that is not needed by the binary file.
-
- Note--'objcopy' is not able to change the endianness of its input
- files. If the input format has an endianness (some formats do not),
- 'objcopy' can only copy the inputs into file formats that have the same
- endianness or which have no endianness (e.g., 'srec'). (However, see
- the '--reverse-bytes' option.)
-
- 'INFILE'
- 'OUTFILE'
- The input and output files, respectively. If you do not specify
- OUTFILE, 'objcopy' creates a temporary file and destructively
- renames the result with the name of INFILE.
-
- '-I BFDNAME'
- '--input-target=BFDNAME'
- Consider the source file's object format to be BFDNAME, rather than
- attempting to deduce it. *Note Target Selection::, for more
- information.
-
- '-O BFDNAME'
- '--output-target=BFDNAME'
- Write the output file using the object format BFDNAME. *Note
- Target Selection::, for more information.
-
- '-F BFDNAME'
- '--target=BFDNAME'
- Use BFDNAME as the object format for both the input and the output
- file; i.e., simply transfer data from source to destination with no
- translation. *Note Target Selection::, for more information.
-
- '-B BFDARCH'
- '--binary-architecture=BFDARCH'
- Useful when transforming a architecture-less input file into an
- object file. In this case the output architecture can be set to
- BFDARCH. This option will be ignored if the input file has a known
- BFDARCH. You can access this binary data inside a program by
- referencing the special symbols that are created by the conversion
- process. These symbols are called _binary_OBJFILE_start,
- _binary_OBJFILE_end and _binary_OBJFILE_size. e.g. you can
- transform a picture file into an object file and then access it in
- your code using these symbols.
-
- '-j SECTIONPATTERN'
- '--only-section=SECTIONPATTERN'
- Copy only the indicated sections from the input file to the output
- file. This option may be given more than once. Note that using
- this option inappropriately may make the output file unusable.
- Wildcard characters are accepted in SECTIONPATTERN.
-
- If the first character of SECTIONPATTERN is the exclamation point
- (!) then matching sections will not be copied, even if earlier use
- of '--only-section' on the same command line would otherwise copy
- it. For example:
-
- --only-section=.text.* --only-section=!.text.foo
-
- will copy all sectinos maching '.text.*' but not the section
- '.text.foo'.
-
- '-R SECTIONPATTERN'
- '--remove-section=SECTIONPATTERN'
- Remove any section matching SECTIONPATTERN from the output file.
- This option may be given more than once. Note that using this
- option inappropriately may make the output file unusable. Wildcard
- characters are accepted in SECTIONPATTERN. Using both the '-j' and
- '-R' options together results in undefined behaviour.
-
- If the first character of SECTIONPATTERN is the exclamation point
- (!) then matching sections will not be removed even if an earlier
- use of '--remove-section' on the same command line would otherwise
- remove it. For example:
-
- --remove-section=.text.* --remove-section=!.text.foo
-
- will remove all sections matching the pattern '.text.*', but will
- not remove the section '.text.foo'.
-
- '--keep-section=SECTIONPATTERN'
- When removing sections from the output file, keep sections that
- match SECTIONPATTERN.
-
- '--remove-relocations=SECTIONPATTERN'
- Remove non-dynamic relocations from the output file for any section
- matching SECTIONPATTERN. This option may be given more than once.
- Note that using this option inappropriately may make the output
- file unusable, and attempting to remove a dynamic relocation
- section such as '.rela.plt' from an executable or shared library
- with '--remove-relocations=.plt' will not work. Wildcard
- characters are accepted in SECTIONPATTERN. For example:
-
- --remove-relocations=.text.*
-
- will remove the relocations for all sections matching the pattern
- '.text.*'.
-
- If the first character of SECTIONPATTERN is the exclamation point
- (!) then matching sections will not have their relocation removed
- even if an earlier use of '--remove-relocations' on the same
- command line would otherwise cause the relocations to be removed.
- For example:
-
- --remove-relocations=.text.* --remove-relocations=!.text.foo
-
- will remove all relocations for sections matching the pattern
- '.text.*', but will not remove relocations for the section
- '.text.foo'.
-
- '-S'
- '--strip-all'
- Do not copy relocation and symbol information from the source file.
-
- '-g'
- '--strip-debug'
- Do not copy debugging symbols or sections from the source file.
-
- '--strip-unneeded'
- Strip all symbols that are not needed for relocation processing.
-
- '-K SYMBOLNAME'
- '--keep-symbol=SYMBOLNAME'
- When stripping symbols, keep symbol SYMBOLNAME even if it would
- normally be stripped. This option may be given more than once.
-
- '-N SYMBOLNAME'
- '--strip-symbol=SYMBOLNAME'
- Do not copy symbol SYMBOLNAME from the source file. This option
- may be given more than once.
-
- '--strip-unneeded-symbol=SYMBOLNAME'
- Do not copy symbol SYMBOLNAME from the source file unless it is
- needed by a relocation. This option may be given more than once.
-
- '-G SYMBOLNAME'
- '--keep-global-symbol=SYMBOLNAME'
- Keep only symbol SYMBOLNAME global. Make all other symbols local
- to the file, so that they are not visible externally. This option
- may be given more than once. Note: this option cannot be used in
- conjunction with the '--globalize-symbol' or '--globalize-symbols'
- options.
-
- '--localize-hidden'
- In an ELF object, mark all symbols that have hidden or internal
- visibility as local. This option applies on top of symbol-specific
- localization options such as '-L'.
-
- '-L SYMBOLNAME'
- '--localize-symbol=SYMBOLNAME'
- Convert a global or weak symbol called SYMBOLNAME into a local
- symbol, so that it is not visible externally. This option may be
- given more than once. Note - unique symbols are not converted.
-
- '-W SYMBOLNAME'
- '--weaken-symbol=SYMBOLNAME'
- Make symbol SYMBOLNAME weak. This option may be given more than
- once.
-
- '--globalize-symbol=SYMBOLNAME'
- Give symbol SYMBOLNAME global scoping so that it is visible outside
- of the file in which it is defined. This option may be given more
- than once. Note: this option cannot be used in conjunction with
- the '-G' or '--keep-global-symbol' options.
-
- '-w'
- '--wildcard'
- Permit regular expressions in SYMBOLNAMEs used in other command
- line options. The question mark (?), asterisk (*), backslash (\)
- and square brackets ([]) operators can be used anywhere in the
- symbol name. If the first character of the symbol name is the
- exclamation point (!) then the sense of the switch is reversed for
- that symbol. For example:
-
- -w -W !foo -W fo*
-
- would cause objcopy to weaken all symbols that start with "fo"
- except for the symbol "foo".
-
- '-x'
- '--discard-all'
- Do not copy non-global symbols from the source file.
-
- '-X'
- '--discard-locals'
- Do not copy compiler-generated local symbols. (These usually start
- with 'L' or '.'.)
-
- '-b BYTE'
- '--byte=BYTE'
- If interleaving has been enabled via the '--interleave' option then
- start the range of bytes to keep at the BYTEth byte. BYTE can be
- in the range from 0 to BREADTH-1, where BREADTH is the value given
- by the '--interleave' option.
-
- '-i [BREADTH]'
- '--interleave[=BREADTH]'
- Only copy a range out of every BREADTH bytes. (Header data is not
- affected). Select which byte in the range begins the copy with the
- '--byte' option. Select the width of the range with the
- '--interleave-width' option.
-
- This option is useful for creating files to program ROM. It is
- typically used with an 'srec' output target. Note that 'objcopy'
- will complain if you do not specify the '--byte' option as well.
-
- The default interleave breadth is 4, so with '--byte' set to 0,
- 'objcopy' would copy the first byte out of every four bytes from
- the input to the output.
-
- '--interleave-width=WIDTH'
- When used with the '--interleave' option, copy WIDTH bytes at a
- time. The start of the range of bytes to be copied is set by the
- '--byte' option, and the extent of the range is set with the
- '--interleave' option.
-
- The default value for this option is 1. The value of WIDTH plus
- the BYTE value set by the '--byte' option must not exceed the
- interleave breadth set by the '--interleave' option.
-
- This option can be used to create images for two 16-bit flashes
- interleaved in a 32-bit bus by passing '-b 0 -i 4
- --interleave-width=2' and '-b 2 -i 4 --interleave-width=2' to two
- 'objcopy' commands. If the input was '12345678' then the outputs
- would be '1256' and '3478' respectively.
-
- '-p'
- '--preserve-dates'
- Set the access and modification dates of the output file to be the
- same as those of the input file.
-
- '-D'
- '--enable-deterministic-archives'
- Operate in _deterministic_ mode. When copying archive members and
- writing the archive index, use zero for UIDs, GIDs, timestamps, and
- use consistent file modes for all files.
-
- If 'binutils' was configured with
- '--enable-deterministic-archives', then this mode is on by default.
- It can be disabled with the '-U' option, below.
-
- '-U'
- '--disable-deterministic-archives'
- Do _not_ operate in _deterministic_ mode. This is the inverse of
- the '-D' option, above: when copying archive members and writing
- the archive index, use their actual UID, GID, timestamp, and file
- mode values.
-
- This is the default unless 'binutils' was configured with
- '--enable-deterministic-archives'.
-
- '--debugging'
- Convert debugging information, if possible. This is not the
- default because only certain debugging formats are supported, and
- the conversion process can be time consuming.
-
- '--gap-fill VAL'
- Fill gaps between sections with VAL. This operation applies to the
- _load address_ (LMA) of the sections. It is done by increasing the
- size of the section with the lower address, and filling in the
- extra space created with VAL.
-
- '--pad-to ADDRESS'
- Pad the output file up to the load address ADDRESS. This is done
- by increasing the size of the last section. The extra space is
- filled in with the value specified by '--gap-fill' (default zero).
-
- '--set-start VAL'
- Set the start address (also known as the entry address) of the new
- file to VAL. Not all object file formats support setting the start
- address.
-
- '--change-start INCR'
- '--adjust-start INCR'
- Change the start address (also known as the entry address) by
- adding INCR. Not all object file formats support setting the start
- address.
-
- '--change-addresses INCR'
- '--adjust-vma INCR'
- Change the VMA and LMA addresses of all sections, as well as the
- start address, by adding INCR. Some object file formats do not
- permit section addresses to be changed arbitrarily. Note that this
- does not relocate the sections; if the program expects sections to
- be loaded at a certain address, and this option is used to change
- the sections such that they are loaded at a different address, the
- program may fail.
-
- '--change-section-address SECTIONPATTERN{=,+,-}VAL'
- '--adjust-section-vma SECTIONPATTERN{=,+,-}VAL'
- Set or change both the VMA address and the LMA address of any
- section matching SECTIONPATTERN. If '=' is used, the section
- address is set to VAL. Otherwise, VAL is added to or subtracted
- from the section address. See the comments under
- '--change-addresses', above. If SECTIONPATTERN does not match any
- sections in the input file, a warning will be issued, unless
- '--no-change-warnings' is used.
-
- '--change-section-lma SECTIONPATTERN{=,+,-}VAL'
- Set or change the LMA address of any sections matching
- SECTIONPATTERN. The LMA address is the address where the section
- will be loaded into memory at program load time. Normally this is
- the same as the VMA address, which is the address of the section at
- program run time, but on some systems, especially those where a
- program is held in ROM, the two can be different. If '=' is used,
- the section address is set to VAL. Otherwise, VAL is added to or
- subtracted from the section address. See the comments under
- '--change-addresses', above. If SECTIONPATTERN does not match any
- sections in the input file, a warning will be issued, unless
- '--no-change-warnings' is used.
-
- '--change-section-vma SECTIONPATTERN{=,+,-}VAL'
- Set or change the VMA address of any section matching
- SECTIONPATTERN. The VMA address is the address where the section
- will be located once the program has started executing. Normally
- this is the same as the LMA address, which is the address where the
- section will be loaded into memory, but on some systems, especially
- those where a program is held in ROM, the two can be different. If
- '=' is used, the section address is set to VAL. Otherwise, VAL is
- added to or subtracted from the section address. See the comments
- under '--change-addresses', above. If SECTIONPATTERN does not
- match any sections in the input file, a warning will be issued,
- unless '--no-change-warnings' is used.
-
- '--change-warnings'
- '--adjust-warnings'
- If '--change-section-address' or '--change-section-lma' or
- '--change-section-vma' is used, and the section pattern does not
- match any sections, issue a warning. This is the default.
-
- '--no-change-warnings'
- '--no-adjust-warnings'
- Do not issue a warning if '--change-section-address' or
- '--adjust-section-lma' or '--adjust-section-vma' is used, even if
- the section pattern does not match any sections.
-
- '--set-section-flags SECTIONPATTERN=FLAGS'
- Set the flags for any sections matching SECTIONPATTERN. The FLAGS
- argument is a comma separated string of flag names. The recognized
- names are 'alloc', 'contents', 'load', 'noload', 'readonly',
- 'code', 'data', 'rom', 'exclude', 'share', and 'debug'. You can
- set the 'contents' flag for a section which does not have contents,
- but it is not meaningful to clear the 'contents' flag of a section
- which does have contents-just remove the section instead. Not all
- flags are meaningful for all object file formats. In particular
- the 'share' flag is only meaningful for COFF format files and not
- for ELF format files.
-
- '--set-section-alignment SECTIONPATTERN=ALIGN'
- Set the alignment for any sections matching SECTIONPATTERN. ALIGN
- specifies the alignment in bytes and must be a power of two, i.e.
- 1, 2, 4, 8....
-
- '--add-section SECTIONNAME=FILENAME'
- Add a new section named SECTIONNAME while copying the file. The
- contents of the new section are taken from the file FILENAME. The
- size of the section will be the size of the file. This option only
- works on file formats which can support sections with arbitrary
- names. Note - it may be necessary to use the '--set-section-flags'
- option to set the attributes of the newly created section.
-
- '--dump-section SECTIONNAME=FILENAME'
- Place the contents of section named SECTIONNAME into the file
- FILENAME, overwriting any contents that may have been there
- previously. This option is the inverse of '--add-section'. This
- option is similar to the '--only-section' option except that it
- does not create a formatted file, it just dumps the contents as raw
- binary data, without applying any relocations. The option can be
- specified more than once.
-
- '--update-section SECTIONNAME=FILENAME'
- Replace the existing contents of a section named SECTIONNAME with
- the contents of file FILENAME. The size of the section will be
- adjusted to the size of the file. The section flags for
- SECTIONNAME will be unchanged. For ELF format files the section to
- segment mapping will also remain unchanged, something which is not
- possible using '--remove-section' followed by '--add-section'. The
- option can be specified more than once.
-
- Note - it is possible to use '--rename-section' and
- '--update-section' to both update and rename a section from one
- command line. In this case, pass the original section name to
- '--update-section', and the original and new section names to
- '--rename-section'.
-
- '--add-symbol NAME=[SECTION:]VALUE[,FLAGS]'
- Add a new symbol named NAME while copying the file. This option
- may be specified multiple times. If the SECTION is given, the
- symbol will be associated with and relative to that section,
- otherwise it will be an ABS symbol. Specifying an undefined
- section will result in a fatal error. There is no check for the
- value, it will be taken as specified. Symbol flags can be
- specified and not all flags will be meaningful for all object file
- formats. By default, the symbol will be global. The special flag
- 'before=OTHERSYM' will insert the new symbol in front of the
- specified OTHERSYM, otherwise the symbol(s) will be added at the
- end of the symbol table in the order they appear.
-
- '--rename-section OLDNAME=NEWNAME[,FLAGS]'
- Rename a section from OLDNAME to NEWNAME, optionally changing the
- section's flags to FLAGS in the process. This has the advantage
- over using a linker script to perform the rename in that the output
- stays as an object file and does not become a linked executable.
- This option accepts the same set of flags as the
- '--sect-section-flags' option.
-
- This option is particularly helpful when the input format is
- binary, since this will always create a section called .data. If
- for example, you wanted instead to create a section called .rodata
- containing binary data you could use the following command line to
- achieve it:
-
- objcopy -I binary -O <output_format> -B <architecture> \
- --rename-section .data=.rodata,alloc,load,readonly,data,contents \
- <input_binary_file> <output_object_file>
-
- '--long-section-names {enable,disable,keep}'
- Controls the handling of long section names when processing 'COFF'
- and 'PE-COFF' object formats. The default behaviour, 'keep', is to
- preserve long section names if any are present in the input file.
- The 'enable' and 'disable' options forcibly enable or disable the
- use of long section names in the output object; when 'disable' is
- in effect, any long section names in the input object will be
- truncated. The 'enable' option will only emit long section names
- if any are present in the inputs; this is mostly the same as
- 'keep', but it is left undefined whether the 'enable' option might
- force the creation of an empty string table in the output file.
-
- '--change-leading-char'
- Some object file formats use special characters at the start of
- symbols. The most common such character is underscore, which
- compilers often add before every symbol. This option tells
- 'objcopy' to change the leading character of every symbol when it
- converts between object file formats. If the object file formats
- use the same leading character, this option has no effect.
- Otherwise, it will add a character, or remove a character, or
- change a character, as appropriate.
-
- '--remove-leading-char'
- If the first character of a global symbol is a special symbol
- leading character used by the object file format, remove the
- character. The most common symbol leading character is underscore.
- This option will remove a leading underscore from all global
- symbols. This can be useful if you want to link together objects
- of different file formats with different conventions for symbol
- names. This is different from '--change-leading-char' because it
- always changes the symbol name when appropriate, regardless of the
- object file format of the output file.
-
- '--reverse-bytes=NUM'
- Reverse the bytes in a section with output contents. A section
- length must be evenly divisible by the value given in order for the
- swap to be able to take place. Reversing takes place before the
- interleaving is performed.
-
- This option is used typically in generating ROM images for
- problematic target systems. For example, on some target boards,
- the 32-bit words fetched from 8-bit ROMs are re-assembled in
- little-endian byte order regardless of the CPU byte order.
- Depending on the programming model, the endianness of the ROM may
- need to be modified.
-
- Consider a simple file with a section containing the following
- eight bytes: '12345678'.
-
- Using '--reverse-bytes=2' for the above example, the bytes in the
- output file would be ordered '21436587'.
-
- Using '--reverse-bytes=4' for the above example, the bytes in the
- output file would be ordered '43218765'.
-
- By using '--reverse-bytes=2' for the above example, followed by
- '--reverse-bytes=4' on the output file, the bytes in the second
- output file would be ordered '34127856'.
-
- '--srec-len=IVAL'
- Meaningful only for srec output. Set the maximum length of the
- Srecords being produced to IVAL. This length covers both address,
- data and crc fields.
-
- '--srec-forceS3'
- Meaningful only for srec output. Avoid generation of S1/S2
- records, creating S3-only record format.
-
- '--redefine-sym OLD=NEW'
- Change the name of a symbol OLD, to NEW. This can be useful when
- one is trying link two things together for which you have no
- source, and there are name collisions.
-
- '--redefine-syms=FILENAME'
- Apply '--redefine-sym' to each symbol pair "OLD NEW" listed in the
- file FILENAME. FILENAME is simply a flat file, with one symbol
- pair per line. Line comments may be introduced by the hash
- character. This option may be given more than once.
-
- '--weaken'
- Change all global symbols in the file to be weak. This can be
- useful when building an object which will be linked against other
- objects using the '-R' option to the linker. This option is only
- effective when using an object file format which supports weak
- symbols.
-
- '--keep-symbols=FILENAME'
- Apply '--keep-symbol' option to each symbol listed in the file
- FILENAME. FILENAME is simply a flat file, with one symbol name per
- line. Line comments may be introduced by the hash character. This
- option may be given more than once.
-
- '--strip-symbols=FILENAME'
- Apply '--strip-symbol' option to each symbol listed in the file
- FILENAME. FILENAME is simply a flat file, with one symbol name per
- line. Line comments may be introduced by the hash character. This
- option may be given more than once.
-
- '--strip-unneeded-symbols=FILENAME'
- Apply '--strip-unneeded-symbol' option to each symbol listed in the
- file FILENAME. FILENAME is simply a flat file, with one symbol
- name per line. Line comments may be introduced by the hash
- character. This option may be given more than once.
-
- '--keep-global-symbols=FILENAME'
- Apply '--keep-global-symbol' option to each symbol listed in the
- file FILENAME. FILENAME is simply a flat file, with one symbol
- name per line. Line comments may be introduced by the hash
- character. This option may be given more than once.
-
- '--localize-symbols=FILENAME'
- Apply '--localize-symbol' option to each symbol listed in the file
- FILENAME. FILENAME is simply a flat file, with one symbol name per
- line. Line comments may be introduced by the hash character. This
- option may be given more than once.
-
- '--globalize-symbols=FILENAME'
- Apply '--globalize-symbol' option to each symbol listed in the file
- FILENAME. FILENAME is simply a flat file, with one symbol name per
- line. Line comments may be introduced by the hash character. This
- option may be given more than once. Note: this option cannot be
- used in conjunction with the '-G' or '--keep-global-symbol'
- options.
-
- '--weaken-symbols=FILENAME'
- Apply '--weaken-symbol' option to each symbol listed in the file
- FILENAME. FILENAME is simply a flat file, with one symbol name per
- line. Line comments may be introduced by the hash character. This
- option may be given more than once.
-
- '--alt-machine-code=INDEX'
- If the output architecture has alternate machine codes, use the
- INDEXth code instead of the default one. This is useful in case a
- machine is assigned an official code and the tool-chain adopts the
- new code, but other applications still depend on the original code
- being used. For ELF based architectures if the INDEX alternative
- does not exist then the value is treated as an absolute number to
- be stored in the e_machine field of the ELF header.
-
- '--writable-text'
- Mark the output text as writable. This option isn't meaningful for
- all object file formats.
-
- '--readonly-text'
- Make the output text write protected. This option isn't meaningful
- for all object file formats.
-
- '--pure'
- Mark the output file as demand paged. This option isn't meaningful
- for all object file formats.
-
- '--impure'
- Mark the output file as impure. This option isn't meaningful for
- all object file formats.
-
- '--prefix-symbols=STRING'
- Prefix all symbols in the output file with STRING.
-
- '--prefix-sections=STRING'
- Prefix all section names in the output file with STRING.
-
- '--prefix-alloc-sections=STRING'
- Prefix all the names of all allocated sections in the output file
- with STRING.
-
- '--add-gnu-debuglink=PATH-TO-FILE'
- Creates a .gnu_debuglink section which contains a reference to
- PATH-TO-FILE and adds it to the output file. Note: the file at
- PATH-TO-FILE must exist. Part of the process of adding the
- .gnu_debuglink section involves embedding a checksum of the
- contents of the debug info file into the section.
-
- If the debug info file is built in one location but it is going to
- be installed at a later time into a different location then do not
- use the path to the installed location. The '--add-gnu-debuglink'
- option will fail because the installed file does not exist yet.
- Instead put the debug info file in the current directory and use
- the '--add-gnu-debuglink' option without any directory components,
- like this:
-
- objcopy --add-gnu-debuglink=foo.debug
-
- At debug time the debugger will attempt to look for the separate
- debug info file in a set of known locations. The exact set of
- these locations varies depending upon the distribution being used,
- but it typically includes:
-
- '* The same directory as the executable.'
-
- '* A sub-directory of the directory containing the executable'
- called .debug
-
- '* A global debug directory such as /usr/lib/debug.'
-
- As long as the debug info file has been installed into one of these
- locations before the debugger is run everything should work
- correctly.
-
- '--keep-file-symbols'
- When stripping a file, perhaps with '--strip-debug' or
- '--strip-unneeded', retain any symbols specifying source file
- names, which would otherwise get stripped.
-
- '--only-keep-debug'
- Strip a file, removing contents of any sections that would not be
- stripped by '--strip-debug' and leaving the debugging sections
- intact. In ELF files, this preserves all note sections in the
- output.
-
- Note - the section headers of the stripped sections are preserved,
- including their sizes, but the contents of the section are
- discarded. The section headers are preserved so that other tools
- can match up the debuginfo file with the real executable, even if
- that executable has been relocated to a different address space.
-
- The intention is that this option will be used in conjunction with
- '--add-gnu-debuglink' to create a two part executable. One a
- stripped binary which will occupy less space in RAM and in a
- distribution and the second a debugging information file which is
- only needed if debugging abilities are required. The suggested
- procedure to create these files is as follows:
-
- 1. Link the executable as normal. Assuming that it is called
- 'foo' then...
- 2. Run 'objcopy --only-keep-debug foo foo.dbg' to create a file
- containing the debugging info.
- 3. Run 'objcopy --strip-debug foo' to create a stripped
- executable.
- 4. Run 'objcopy --add-gnu-debuglink=foo.dbg foo' to add a link to
- the debugging info into the stripped executable.
-
- Note--the choice of '.dbg' as an extension for the debug info file
- is arbitrary. Also the '--only-keep-debug' step is optional. You
- could instead do this:
-
- 1. Link the executable as normal.
- 2. Copy 'foo' to 'foo.full'
- 3. Run 'objcopy --strip-debug foo'
- 4. Run 'objcopy --add-gnu-debuglink=foo.full foo'
-
- i.e., the file pointed to by the '--add-gnu-debuglink' can be the
- full executable. It does not have to be a file created by the
- '--only-keep-debug' switch.
-
- Note--this switch is only intended for use on fully linked files.
- It does not make sense to use it on object files where the
- debugging information may be incomplete. Besides the gnu_debuglink
- feature currently only supports the presence of one filename
- containing debugging information, not multiple filenames on a
- one-per-object-file basis.
-
- '--strip-dwo'
- Remove the contents of all DWARF .dwo sections, leaving the
- remaining debugging sections and all symbols intact. This option
- is intended for use by the compiler as part of the '-gsplit-dwarf'
- option, which splits debug information between the .o file and a
- separate .dwo file. The compiler generates all debug information
- in the same file, then uses the '--extract-dwo' option to copy the
- .dwo sections to the .dwo file, then the '--strip-dwo' option to
- remove those sections from the original .o file.
-
- '--extract-dwo'
- Extract the contents of all DWARF .dwo sections. See the
- '--strip-dwo' option for more information.
-
- '--file-alignment NUM'
- Specify the file alignment. Sections in the file will always begin
- at file offsets which are multiples of this number. This defaults
- to 512. [This option is specific to PE targets.]
-
- '--heap RESERVE'
- '--heap RESERVE,COMMIT'
- Specify the number of bytes of memory to reserve (and optionally
- commit) to be used as heap for this program. [This option is
- specific to PE targets.]
-
- '--image-base VALUE'
- Use VALUE as the base address of your program or dll. This is the
- lowest memory location that will be used when your program or dll
- is loaded. To reduce the need to relocate and improve performance
- of your dlls, each should have a unique base address and not
- overlap any other dlls. The default is 0x400000 for executables,
- and 0x10000000 for dlls. [This option is specific to PE targets.]
-
- '--section-alignment NUM'
- Sets the section alignment field in the PE header. Sections in
- memory will always begin at addresses which are a multiple of this
- number. Defaults to 0x1000. [This option is specific to PE
- targets.]
-
- '--stack RESERVE'
- '--stack RESERVE,COMMIT'
- Specify the number of bytes of memory to reserve (and optionally
- commit) to be used as stack for this program. [This option is
- specific to PE targets.]
-
- '--subsystem WHICH'
- '--subsystem WHICH:MAJOR'
- '--subsystem WHICH:MAJOR.MINOR'
- Specifies the subsystem under which your program will execute. The
- legal values for WHICH are 'native', 'windows', 'console', 'posix',
- 'efi-app', 'efi-bsd', 'efi-rtd', 'sal-rtd', and 'xbox'. You may
- optionally set the subsystem version also. Numeric values are also
- accepted for WHICH. [This option is specific to PE targets.]
-
- '--extract-symbol'
- Keep the file's section flags and symbols but remove all section
- data. Specifically, the option:
-
- * removes the contents of all sections;
- * sets the size of every section to zero; and
- * sets the file's start address to zero.
-
- This option is used to build a '.sym' file for a VxWorks kernel.
- It can also be a useful way of reducing the size of a
- '--just-symbols' linker input file.
-
- '--compress-debug-sections'
- Compress DWARF debug sections using zlib with SHF_COMPRESSED from
- the ELF ABI. Note - if compression would actually make a section
- _larger_, then it is not compressed.
-
- '--compress-debug-sections=none'
- '--compress-debug-sections=zlib'
- '--compress-debug-sections=zlib-gnu'
- '--compress-debug-sections=zlib-gabi'
- For ELF files, these options control how DWARF debug sections are
- compressed. '--compress-debug-sections=none' is equivalent to
- '--decompress-debug-sections'. '--compress-debug-sections=zlib'
- and '--compress-debug-sections=zlib-gabi' are equivalent to
- '--compress-debug-sections'. '--compress-debug-sections=zlib-gnu'
- compresses DWARF debug sections using zlib. The debug sections are
- renamed to begin with '.zdebug' instead of '.debug'. Note - if
- compression would actually make a section _larger_, then it is not
- compressed nor renamed.
-
- '--decompress-debug-sections'
- Decompress DWARF debug sections using zlib. The original section
- names of the compressed sections are restored.
-
- '--elf-stt-common=yes'
- '--elf-stt-common=no'
- For ELF files, these options control whether common symbols should
- be converted to the 'STT_COMMON' or 'STT_OBJECT' type.
- '--elf-stt-common=yes' converts common symbol type to 'STT_COMMON'.
- '--elf-stt-common=no' converts common symbol type to 'STT_OBJECT'.
-
- '--merge-notes'
- '--no-merge-notes'
- For ELF files, attempt (or do not attempt) to reduce the size of
- any SHT_NOTE type sections by removing duplicate notes.
-
- '-V'
- '--version'
- Show the version number of 'objcopy'.
-
- '--verilog-data-width=BYTES'
- For Verilog output, this options controls the number of bytes
- converted for each output data element. The input target controls
- the endianness of the conversion.
-
- '-v'
- '--verbose'
- Verbose output: list all object files modified. In the case of
- archives, 'objcopy -V' lists all members of the archive.
-
- '--help'
- Show a summary of the options to 'objcopy'.
-
- '--info'
- Display a list showing all architectures and object formats
- available.
-
-
- File: binutils.info, Node: objdump, Next: ranlib, Prev: objcopy, Up: Top
-
- 4 objdump
- *********
-
- objdump [-a|--archive-headers]
- [-b BFDNAME|--target=BFDNAME]
- [-C|--demangle[=STYLE] ]
- [-d|--disassemble[=SYMBOL]]
- [-D|--disassemble-all]
- [-z|--disassemble-zeroes]
- [-EB|-EL|--endian={big | little }]
- [-f|--file-headers]
- [-F|--file-offsets]
- [--file-start-context]
- [-g|--debugging]
- [-e|--debugging-tags]
- [-h|--section-headers|--headers]
- [-i|--info]
- [-j SECTION|--section=SECTION]
- [-l|--line-numbers]
- [-S|--source]
- [--source-comment[=TEXT]]
- [-m MACHINE|--architecture=MACHINE]
- [-M OPTIONS|--disassembler-options=OPTIONS]
- [-p|--private-headers]
- [-P OPTIONS|--private=OPTIONS]
- [-r|--reloc]
- [-R|--dynamic-reloc]
- [-s|--full-contents]
- [-W[lLiaprmfFsoORtUuTgAckK]|
- --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]]
- [--ctf=SECTION]
- [-G|--stabs]
- [-t|--syms]
- [-T|--dynamic-syms]
- [-x|--all-headers]
- [-w|--wide]
- [--start-address=ADDRESS]
- [--stop-address=ADDRESS]
- [--no-addresses]
- [--prefix-addresses]
- [--[no-]show-raw-insn]
- [--adjust-vma=OFFSET]
- [--dwarf-depth=N]
- [--dwarf-start=N]
- [--ctf-parent=SECTION]
- [--no-recurse-limit|--recurse-limit]
- [--special-syms]
- [--prefix=PREFIX]
- [--prefix-strip=LEVEL]
- [--insn-width=WIDTH]
- [--visualize-jumps[=color|=extended-color|=off]
- [-V|--version]
- [-H|--help]
- OBJFILE...
-
- 'objdump' displays information about one or more object files. The
- options control what particular information to display. This
- information is mostly useful to programmers who are working on the
- compilation tools, as opposed to programmers who just want their program
- to compile and work.
-
- OBJFILE... are the object files to be examined. When you specify
- archives, 'objdump' shows information on each of the member object
- files.
-
- The long and short forms of options, shown here as alternatives, are
- equivalent. At least one option from the list
- '-a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-P,-r,-R,-s,-S,-t,-T,-V,-x' must be
- given.
-
- '-a'
- '--archive-header'
- If any of the OBJFILE files are archives, display the archive
- header information (in a format similar to 'ls -l'). Besides the
- information you could list with 'ar tv', 'objdump -a' shows the
- object file format of each archive member.
-
- '--adjust-vma=OFFSET'
- When dumping information, first add OFFSET to all the section
- addresses. This is useful if the section addresses do not
- correspond to the symbol table, which can happen when putting
- sections at particular addresses when using a format which can not
- represent section addresses, such as a.out.
-
- '-b BFDNAME'
- '--target=BFDNAME'
- Specify that the object-code format for the object files is
- BFDNAME. This option may not be necessary; OBJDUMP can
- automatically recognize many formats.
-
- For example,
- objdump -b oasys -m vax -h fu.o
- displays summary information from the section headers ('-h') of
- 'fu.o', which is explicitly identified ('-m') as a VAX object file
- in the format produced by Oasys compilers. You can list the
- formats available with the '-i' option. *Note Target Selection::,
- for more information.
-
- '-C'
- '--demangle[=STYLE]'
- Decode ("demangle") low-level symbol names into user-level names.
- Besides removing any initial underscore prepended by the system,
- this makes C++ function names readable. Different compilers have
- different mangling styles. The optional demangling style argument
- can be used to choose an appropriate demangling style for your
- compiler. *Note c++filt::, for more information on demangling.
-
- '--recurse-limit'
- '--no-recurse-limit'
- '--recursion-limit'
- '--no-recursion-limit'
- Enables or disables a limit on the amount of recursion performed
- whilst demangling strings. Since the name mangling formats allow
- for an inifinite level of recursion it is possible to create
- strings whose decoding will exhaust the amount of stack space
- available on the host machine, triggering a memory fault. The
- limit tries to prevent this from happening by restricting recursion
- to 2048 levels of nesting.
-
- The default is for this limit to be enabled, but disabling it may
- be necessary in order to demangle truly complicated names. Note
- however that if the recursion limit is disabled then stack
- exhaustion is possible and any bug reports about such an event will
- be rejected.
-
- '-g'
- '--debugging'
- Display debugging information. This attempts to parse STABS
- debugging format information stored in the file and print it out
- using a C like syntax. If no STABS debugging was found this option
- falls back on the '-W' option to print any DWARF information in the
- file.
-
- '-e'
- '--debugging-tags'
- Like '-g', but the information is generated in a format compatible
- with ctags tool.
-
- '-d'
- '--disassemble'
- '--disassemble=SYMBOL'
- Display the assembler mnemonics for the machine instructions from
- the input file. This option only disassembles those sections which
- are expected to contain instructions. If the optional SYMBOL
- argument is given, then display the assembler mnemonics starting at
- SYMBOL. If SYMBOL is a function name then disassembly will stop at
- the end of the function, otherwise it will stop when the next
- symbol is encountered. If there are no matches for SYMBOL then
- nothing will be displayed.
-
- Note if the '--dwarf=follow-links' option has also been enabled
- then any symbol tables in linked debug info files will be read in
- and used when disassembling.
-
- '-D'
- '--disassemble-all'
- Like '-d', but disassemble the contents of all sections, not just
- those expected to contain instructions.
-
- This option also has a subtle effect on the disassembly of
- instructions in code sections. When option '-d' is in effect
- objdump will assume that any symbols present in a code section
- occur on the boundary between instructions and it will refuse to
- disassemble across such a boundary. When option '-D' is in effect
- however this assumption is supressed. This means that it is
- possible for the output of '-d' and '-D' to differ if, for example,
- data is stored in code sections.
-
- If the target is an ARM architecture this switch also has the
- effect of forcing the disassembler to decode pieces of data found
- in code sections as if they were instructions.
-
- Note if the '--dwarf=follow-links' option has also been enabled
- then any symbol tables in linked debug info files will be read in
- and used when disassembling.
-
- '--no-addresses'
- When disassembling, don't print addresses on each line or for
- symbols and relocation offsets. In combination with
- '--no-show-raw-insn' this may be useful for comparing compiler
- output.
-
- '--prefix-addresses'
- When disassembling, print the complete address on each line. This
- is the older disassembly format.
-
- '-EB'
- '-EL'
- '--endian={big|little}'
- Specify the endianness of the object files. This only affects
- disassembly. This can be useful when disassembling a file format
- which does not describe endianness information, such as S-records.
-
- '-f'
- '--file-headers'
- Display summary information from the overall header of each of the
- OBJFILE files.
-
- '-F'
- '--file-offsets'
- When disassembling sections, whenever a symbol is displayed, also
- display the file offset of the region of data that is about to be
- dumped. If zeroes are being skipped, then when disassembly
- resumes, tell the user how many zeroes were skipped and the file
- offset of the location from where the disassembly resumes. When
- dumping sections, display the file offset of the location from
- where the dump starts.
-
- '--file-start-context'
- Specify that when displaying interlisted source code/disassembly
- (assumes '-S') from a file that has not yet been displayed, extend
- the context to the start of the file.
-
- '-h'
- '--section-headers'
- '--headers'
- Display summary information from the section headers of the object
- file.
-
- File segments may be relocated to nonstandard addresses, for
- example by using the '-Ttext', '-Tdata', or '-Tbss' options to
- 'ld'. However, some object file formats, such as a.out, do not
- store the starting address of the file segments. In those
- situations, although 'ld' relocates the sections correctly, using
- 'objdump -h' to list the file section headers cannot show the
- correct addresses. Instead, it shows the usual addresses, which
- are implicit for the target.
-
- Note, in some cases it is possible for a section to have both the
- READONLY and the NOREAD attributes set. In such cases the NOREAD
- attribute takes precedence, but 'objdump' will report both since
- the exact setting of the flag bits might be important.
-
- '-H'
- '--help'
- Print a summary of the options to 'objdump' and exit.
-
- '-i'
- '--info'
- Display a list showing all architectures and object formats
- available for specification with '-b' or '-m'.
-
- '-j NAME'
- '--section=NAME'
- Display information only for section NAME.
-
- '-l'
- '--line-numbers'
- Label the display (using debugging information) with the filename
- and source line numbers corresponding to the object code or relocs
- shown. Only useful with '-d', '-D', or '-r'.
-
- '-m MACHINE'
- '--architecture=MACHINE'
- Specify the architecture to use when disassembling object files.
- This can be useful when disassembling object files which do not
- describe architecture information, such as S-records. You can list
- the available architectures with the '-i' option.
-
- If the target is an ARM architecture then this switch has an
- additional effect. It restricts the disassembly to only those
- instructions supported by the architecture specified by MACHINE.
- If it is necessary to use this switch because the input file does
- not contain any architecture information, but it is also desired to
- disassemble all the instructions use '-marm'.
-
- '-M OPTIONS'
- '--disassembler-options=OPTIONS'
- Pass target specific information to the disassembler. Only
- supported on some targets. If it is necessary to specify more than
- one disassembler option then multiple '-M' options can be used or
- can be placed together into a comma separated list.
-
- For ARC, 'dsp' controls the printing of DSP instructions, 'spfp'
- selects the printing of FPX single precision FP instructions,
- 'dpfp' selects the printing of FPX double precision FP
- instructions, 'quarkse_em' selects the printing of special
- QuarkSE-EM instructions, 'fpuda' selects the printing of double
- precision assist instructions, 'fpus' selects the printing of FPU
- single precision FP instructions, while 'fpud' selects the printing
- of FPU double precision FP instructions. Additionally, one can
- choose to have all the immediates printed in hexadecimal using
- 'hex'. By default, the short immediates are printed using the
- decimal representation, while the long immediate values are printed
- as hexadecimal.
-
- 'cpu=...' allows to enforce a particular ISA when disassembling
- instructions, overriding the '-m' value or whatever is in the ELF
- file. This might be useful to select ARC EM or HS ISA, because
- architecture is same for those and disassembler relies on private
- ELF header data to decide if code is for EM or HS. This option
- might be specified multiple times - only the latest value will be
- used. Valid values are same as for the assembler '-mcpu=...'
- option.
-
- If the target is an ARM architecture then this switch can be used
- to select which register name set is used during disassembler.
- Specifying '-M reg-names-std' (the default) will select the
- register names as used in ARM's instruction set documentation, but
- with register 13 called 'sp', register 14 called 'lr' and register
- 15 called 'pc'. Specifying '-M reg-names-apcs' will select the
- name set used by the ARM Procedure Call Standard, whilst specifying
- '-M reg-names-raw' will just use 'r' followed by the register
- number.
-
- There are also two variants on the APCS register naming scheme
- enabled by '-M reg-names-atpcs' and '-M reg-names-special-atpcs'
- which use the ARM/Thumb Procedure Call Standard naming conventions.
- (Either with the normal register names or the special register
- names).
-
- This option can also be used for ARM architectures to force the
- disassembler to interpret all instructions as Thumb instructions by
- using the switch '--disassembler-options=force-thumb'. This can be
- useful when attempting to disassemble thumb code produced by other
- compilers.
-
- For AArch64 targets this switch can be used to set whether
- instructions are disassembled as the most general instruction using
- the '-M no-aliases' option or whether instruction notes should be
- generated as comments in the disasssembly using '-M notes'.
-
- For the x86, some of the options duplicate functions of the '-m'
- switch, but allow finer grained control.
- 'x86-64'
- 'i386'
- 'i8086'
- Select disassembly for the given architecture.
-
- 'intel'
- 'att'
- Select between intel syntax mode and AT&T syntax mode.
-
- 'amd64'
- 'intel64'
- Select between AMD64 ISA and Intel64 ISA.
-
- 'intel-mnemonic'
- 'att-mnemonic'
- Select between intel mnemonic mode and AT&T mnemonic mode.
- Note: 'intel-mnemonic' implies 'intel' and 'att-mnemonic'
- implies 'att'.
-
- 'addr64'
- 'addr32'
- 'addr16'
- 'data32'
- 'data16'
- Specify the default address size and operand size. These five
- options will be overridden if 'x86-64', 'i386' or 'i8086'
- appear later in the option string.
-
- 'suffix'
- When in AT&T mode and also for a limited set of instructions
- when in Intel mode, instructs the disassembler to print a
- mnemonic suffix even when the suffix could be inferred by the
- operands or, for certain instructions, the execution mode's
- defaults.
-
- For PowerPC, the '-M' argument 'raw' selects disasssembly of
- hardware insns rather than aliases. For example, you will see
- 'rlwinm' rather than 'clrlwi', and 'addi' rather than 'li'. All of
- the '-m' arguments for 'gas' that select a CPU are supported.
- These are: '403', '405', '440', '464', '476', '601', '603', '604',
- '620', '7400', '7410', '7450', '7455', '750cl', '821', '850',
- '860', 'a2', 'booke', 'booke32', 'cell', 'com', 'e200z4', 'e300',
- 'e500', 'e500mc', 'e500mc64', 'e500x2', 'e5500', 'e6500', 'efs',
- 'power4', 'power5', 'power6', 'power7', 'power8', 'power9',
- 'power10', 'ppc', 'ppc32', 'ppc64', 'ppc64bridge', 'ppcps', 'pwr',
- 'pwr2', 'pwr4', 'pwr5', 'pwr5x', 'pwr6', 'pwr7', 'pwr8', 'pwr9',
- 'pwr10', 'pwrx', 'titan', and 'vle'. '32' and '64' modify the
- default or a prior CPU selection, disabling and enabling 64-bit
- insns respectively. In addition, 'altivec', 'any', 'htm', 'vsx',
- and 'spe' add capabilities to a previous _or later_ CPU selection.
- 'any' will disassemble any opcode known to binutils, but in cases
- where an opcode has two different meanings or different arguments,
- you may not see the disassembly you expect. If you disassemble
- without giving a CPU selection, a default will be chosen from
- information gleaned by BFD from the object files headers, but the
- result again may not be as you expect.
-
- For MIPS, this option controls the printing of instruction mnemonic
- names and register names in disassembled instructions. Multiple
- selections from the following may be specified as a comma separated
- string, and invalid options are ignored:
-
- 'no-aliases'
- Print the 'raw' instruction mnemonic instead of some pseudo
- instruction mnemonic. I.e., print 'daddu' or 'or' instead of
- 'move', 'sll' instead of 'nop', etc.
-
- 'msa'
- Disassemble MSA instructions.
-
- 'virt'
- Disassemble the virtualization ASE instructions.
-
- 'xpa'
- Disassemble the eXtended Physical Address (XPA) ASE
- instructions.
-
- 'gpr-names=ABI'
- Print GPR (general-purpose register) names as appropriate for
- the specified ABI. By default, GPR names are selected
- according to the ABI of the binary being disassembled.
-
- 'fpr-names=ABI'
- Print FPR (floating-point register) names as appropriate for
- the specified ABI. By default, FPR numbers are printed rather
- than names.
-
- 'cp0-names=ARCH'
- Print CP0 (system control coprocessor; coprocessor 0) register
- names as appropriate for the CPU or architecture specified by
- ARCH. By default, CP0 register names are selected according
- to the architecture and CPU of the binary being disassembled.
-
- 'hwr-names=ARCH'
- Print HWR (hardware register, used by the 'rdhwr' instruction)
- names as appropriate for the CPU or architecture specified by
- ARCH. By default, HWR names are selected according to the
- architecture and CPU of the binary being disassembled.
-
- 'reg-names=ABI'
- Print GPR and FPR names as appropriate for the selected ABI.
-
- 'reg-names=ARCH'
- Print CPU-specific register names (CP0 register and HWR names)
- as appropriate for the selected CPU or architecture.
-
- For any of the options listed above, ABI or ARCH may be specified
- as 'numeric' to have numbers printed rather than names, for the
- selected types of registers. You can list the available values of
- ABI and ARCH using the '--help' option.
-
- For VAX, you can specify function entry addresses with '-M
- entry:0xf00ba'. You can use this multiple times to properly
- disassemble VAX binary files that don't contain symbol tables (like
- ROM dumps). In these cases, the function entry mask would
- otherwise be decoded as VAX instructions, which would probably lead
- the rest of the function being wrongly disassembled.
-
- '-p'
- '--private-headers'
- Print information that is specific to the object file format. The
- exact information printed depends upon the object file format. For
- some object file formats, no additional information is printed.
-
- '-P OPTIONS'
- '--private=OPTIONS'
- Print information that is specific to the object file format. The
- argument OPTIONS is a comma separated list that depends on the
- format (the lists of options is displayed with the help).
-
- For XCOFF, the available options are:
- 'header'
- 'aout'
- 'sections'
- 'syms'
- 'relocs'
- 'lineno,'
- 'loader'
- 'except'
- 'typchk'
- 'traceback'
- 'toc'
- 'ldinfo'
-
- Not all object formats support this option. In particular the ELF
- format does not use it.
-
- '-r'
- '--reloc'
- Print the relocation entries of the file. If used with '-d' or
- '-D', the relocations are printed interspersed with the
- disassembly.
-
- '-R'
- '--dynamic-reloc'
- Print the dynamic relocation entries of the file. This is only
- meaningful for dynamic objects, such as certain types of shared
- libraries. As for '-r', if used with '-d' or '-D', the relocations
- are printed interspersed with the disassembly.
-
- '-s'
- '--full-contents'
- Display the full contents of any sections requested. By default
- all non-empty sections are displayed.
-
- '-S'
- '--source'
- Display source code intermixed with disassembly, if possible.
- Implies '-d'.
-
- '--source-comment[=TXT]'
- Like the '-S' option, but all source code lines are displayed with
- a prefix of TXT. Typically TXT will be a comment string which can
- be used to distinguish the assembler code from the source code. If
- TXT is not provided then a default string of "# " (hash followed by
- a space), will be used.
-
- '--prefix=PREFIX'
- Specify PREFIX to add to the absolute paths when used with '-S'.
-
- '--prefix-strip=LEVEL'
- Indicate how many initial directory names to strip off the
- hardwired absolute paths. It has no effect without
- '--prefix='PREFIX.
-
- '--show-raw-insn'
- When disassembling instructions, print the instruction in hex as
- well as in symbolic form. This is the default except when
- '--prefix-addresses' is used.
-
- '--no-show-raw-insn'
- When disassembling instructions, do not print the instruction
- bytes. This is the default when '--prefix-addresses' is used.
-
- '--insn-width=WIDTH'
- Display WIDTH bytes on a single line when disassembling
- instructions.
-
- '--visualize-jumps[=color|=extended-color|=off]'
- Visualize jumps that stay inside a function by drawing ASCII art
- between the start and target addresses. The optional '=color'
- argument adds color to the output using simple terminal colors.
- Alternatively the '=extended-color' argument will add color using
- 8bit colors, but these might not work on all terminals.
-
- If it is necessary to disable the 'visualize-jumps' option after it
- has previously been enabled then use 'visualize-jumps=off'.
-
- '-W[lLiaprmfFsoORtUuTgAckK]'
- '--dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]'
-
- Displays the contents of the DWARF debug sections in the file, if
- any are present. Compressed debug sections are automatically
- decompressed (temporarily) before they are displayed. If one or
- more of the optional letters or words follows the switch then only
- those type(s) of data will be dumped. The letters and words refer
- to the following information:
-
- 'a'
- '=abbrev'
- Displays the contents of the '.debug_abbrev' section.
-
- 'A'
- '=addr'
- Displays the contents of the '.debug_addr' section.
-
- 'c'
- '=cu_index'
- Displays the contents of the '.debug_cu_index' and/or
- '.debug_tu_index' sections.
-
- 'f'
- '=frames'
- Display the raw contents of a '.debug_frame' section.
-
- 'F'
- '=frame-interp'
- Display the interpreted contents of a '.debug_frame' section.
-
- 'g'
- '=gdb_index'
- Displays the contents of the '.gdb_index' and/or
- '.debug_names' sections.
-
- 'i'
- '=info'
- Displays the contents of the '.debug_info' section. Note: the
- output from this option can also be restricted by the use of
- the '--dwarf-depth' and '--dwarf-start' options.
-
- 'k'
- '=links'
- Displays the contents of the '.gnu_debuglink' and/or
- '.gnu_debugaltlink' sections. Also displays any links to
- separate dwarf object files (dwo), if they are specified by
- the DW_AT_GNU_dwo_name or DW_AT_dwo_name attributes in the
- '.debug_info' section.
-
- 'K'
- '=follow-links'
- Display the contents of any selected debug sections that are
- found in linked, separate debug info file(s). This can result
- in multiple versions of the same debug section being displayed
- if it exists in more than one file.
-
- In addition, when displaying DWARF attributes, if a form is
- found that references the separate debug info file, then the
- referenced contents will also be displayed.
-
- 'l'
- '=rawline'
- Displays the contents of the '.debug_line' section in a raw
- format.
-
- 'L'
- '=decodedline'
- Displays the interpreted contents of the '.debug_line'
- section.
-
- 'm'
- '=macro'
- Displays the contents of the '.debug_macro' and/or
- '.debug_macinfo' sections.
-
- 'o'
- '=loc'
- Displays the contents of the '.debug_loc' and/or
- '.debug_loclists' sections.
-
- 'O'
- '=str-offsets'
- Displays the contents of the '.debug_str_offsets' section.
-
- 'p'
- '=pubnames'
- Displays the contents of the '.debug_pubnames' and/or
- '.debug_gnu_pubnames' sections.
-
- 'r'
- '=aranges'
- Displays the contents of the '.debug_aranges' section.
-
- 'R'
- '=Ranges'
- Displays the contents of the '.debug_ranges' and/or
- '.debug_rnglists' sections.
-
- 's'
- '=str'
- Displays the contents of the '.debug_str', '.debug_line_str'
- and/or '.debug_str_offsets' sections.
-
- 't'
- '=pubtype'
- Displays the contents of the '.debug_pubtypes' and/or
- '.debug_gnu_pubtypes' sections.
-
- 'T'
- '=trace_aranges'
- Displays the contents of the '.trace_aranges' section.
-
- 'u'
- '=trace_abbrev'
- Displays the contents of the '.trace_abbrev' section.
-
- 'U'
- '=trace_info'
- Displays the contents of the '.trace_info' section.
-
- Note: displaying the contents of '.debug_static_funcs',
- '.debug_static_vars' and 'debug_weaknames' sections is not
- currently supported.
-
- '--dwarf-depth=N'
- Limit the dump of the '.debug_info' section to N children. This is
- only useful with '--debug-dump=info'. The default is to print all
- DIEs; the special value 0 for N will also have this effect.
-
- With a non-zero value for N, DIEs at or deeper than N levels will
- not be printed. The range for N is zero-based.
-
- '--dwarf-start=N'
- Print only DIEs beginning with the DIE numbered N. This is only
- useful with '--debug-dump=info'.
-
- If specified, this option will suppress printing of any header
- information and all DIEs before the DIE numbered N. Only siblings
- and children of the specified DIE will be printed.
-
- This can be used in conjunction with '--dwarf-depth'.
-
- '--dwarf-check'
- Enable additional checks for consistency of Dwarf information.
-
- '--ctf=SECTION'
-
- Display the contents of the specified CTF section. CTF sections
- themselves contain many subsections, all of which are displayed in
- order.
-
- '--ctf-parent=SECTION'
-
- Specify the name of another section from which the CTF dictionary
- can inherit types. (If none is specified, we assume the CTF
- dictionary inherits types from the default-named member of the
- archive contained within this section.)
-
- '-G'
- '--stabs'
- Display the full contents of any sections requested. Display the
- contents of the .stab and .stab.index and .stab.excl sections from
- an ELF file. This is only useful on systems (such as Solaris 2.0)
- in which '.stab' debugging symbol-table entries are carried in an
- ELF section. In most other file formats, debugging symbol-table
- entries are interleaved with linkage symbols, and are visible in
- the '--syms' output.
-
- '--start-address=ADDRESS'
- Start displaying data at the specified address. This affects the
- output of the '-d', '-r' and '-s' options.
-
- '--stop-address=ADDRESS'
- Stop displaying data at the specified address. This affects the
- output of the '-d', '-r' and '-s' options.
-
- '-t'
- '--syms'
- Print the symbol table entries of the file. This is similar to the
- information provided by the 'nm' program, although the display
- format is different. The format of the output depends upon the
- format of the file being dumped, but there are two main types. One
- looks like this:
-
- [ 4](sec 3)(fl 0x00)(ty 0)(scl 3) (nx 1) 0x00000000 .bss
- [ 6](sec 1)(fl 0x00)(ty 0)(scl 2) (nx 0) 0x00000000 fred
-
- where the number inside the square brackets is the number of the
- entry in the symbol table, the SEC number is the section number,
- the FL value are the symbol's flag bits, the TY number is the
- symbol's type, the SCL number is the symbol's storage class and the
- NX value is the number of auxilary entries associated with the
- symbol. The last two fields are the symbol's value and its name.
-
- The other common output format, usually seen with ELF based files,
- looks like this:
-
- 00000000 l d .bss 00000000 .bss
- 00000000 g .text 00000000 fred
-
- Here the first number is the symbol's value (sometimes refered to
- as its address). The next field is actually a set of characters
- and spaces indicating the flag bits that are set on the symbol.
- These characters are described below. Next is the section with
- which the symbol is associated or _*ABS*_ if the section is
- absolute (ie not connected with any section), or _*UND*_ if the
- section is referenced in the file being dumped, but not defined
- there.
-
- After the section name comes another field, a number, which for
- common symbols is the alignment and for other symbol is the size.
- Finally the symbol's name is displayed.
-
- The flag characters are divided into 7 groups as follows:
- 'l'
- 'g'
- 'u'
- '!'
- The symbol is a local (l), global (g), unique global (u),
- neither global nor local (a space) or both global and local
- (!). A symbol can be neither local or global for a variety of
- reasons, e.g., because it is used for debugging, but it is
- probably an indication of a bug if it is ever both local and
- global. Unique global symbols are a GNU extension to the
- standard set of ELF symbol bindings. For such a symbol the
- dynamic linker will make sure that in the entire process there
- is just one symbol with this name and type in use.
-
- 'w'
- The symbol is weak (w) or strong (a space).
-
- 'C'
- The symbol denotes a constructor (C) or an ordinary symbol (a
- space).
-
- 'W'
- The symbol is a warning (W) or a normal symbol (a space). A
- warning symbol's name is a message to be displayed if the
- symbol following the warning symbol is ever referenced.
-
- 'I'
- 'i'
- The symbol is an indirect reference to another symbol (I), a
- function to be evaluated during reloc processing (i) or a
- normal symbol (a space).
-
- 'd'
- 'D'
- The symbol is a debugging symbol (d) or a dynamic symbol (D)
- or a normal symbol (a space).
-
- 'F'
- 'f'
- 'O'
- The symbol is the name of a function (F) or a file (f) or an
- object (O) or just a normal symbol (a space).
-
- '-T'
- '--dynamic-syms'
- Print the dynamic symbol table entries of the file. This is only
- meaningful for dynamic objects, such as certain types of shared
- libraries. This is similar to the information provided by the 'nm'
- program when given the '-D' ('--dynamic') option.
-
- The output format is similar to that produced by the '--syms'
- option, except that an extra field is inserted before the symbol's
- name, giving the version information associated with the symbol.
- If the version is the default version to be used when resolving
- unversioned references to the symbol then it's displayed as is,
- otherwise it's put into parentheses.
-
- '--special-syms'
- When displaying symbols include those which the target considers to
- be special in some way and which would not normally be of interest
- to the user.
-
- '-V'
- '--version'
- Print the version number of 'objdump' and exit.
-
- '-x'
- '--all-headers'
- Display all available header information, including the symbol
- table and relocation entries. Using '-x' is equivalent to
- specifying all of '-a -f -h -p -r -t'.
-
- '-w'
- '--wide'
- Format some lines for output devices that have more than 80
- columns. Also do not truncate symbol names when they are
- displayed.
-
- '-z'
- '--disassemble-zeroes'
- Normally the disassembly output will skip blocks of zeroes. This
- option directs the disassembler to disassemble those blocks, just
- like any other data.
-
-
- File: binutils.info, Node: ranlib, Next: size, Prev: objdump, Up: Top
-
- 5 ranlib
- ********
-
- ranlib [--plugin NAME] [-DhHvVt] ARCHIVE
-
- 'ranlib' generates an index to the contents of an archive and stores
- it in the archive. The index lists each symbol defined by a member of
- an archive that is a relocatable object file.
-
- You may use 'nm -s' or 'nm --print-armap' to list this index.
-
- An archive with such an index speeds up linking to the library and
- allows routines in the library to call each other without regard to
- their placement in the archive.
-
- The GNU 'ranlib' program is another form of GNU 'ar'; running
- 'ranlib' is completely equivalent to executing 'ar -s'. *Note ar::.
-
- '-h'
- '-H'
- '--help'
- Show usage information for 'ranlib'.
-
- '-v'
- '-V'
- '--version'
- Show the version number of 'ranlib'.
-
- '-D'
- Operate in _deterministic_ mode. The symbol map archive member's
- header will show zero for the UID, GID, and timestamp. When this
- option is used, multiple runs will produce identical output files.
-
- If 'binutils' was configured with
- '--enable-deterministic-archives', then this mode is on by default.
- It can be disabled with the '-U' option, described below.
-
- '-t'
- Update the timestamp of the symbol map of an archive.
-
- '-U'
- Do _not_ operate in _deterministic_ mode. This is the inverse of
- the '-D' option, above: the archive index will get actual UID, GID,
- timestamp, and file mode values.
-
- If 'binutils' was configured _without_
- '--enable-deterministic-archives', then this mode is on by default.
-
-
- File: binutils.info, Node: size, Next: strings, Prev: ranlib, Up: Top
-
- 6 size
- ******
-
- size [-A|-B|-G|--format=COMPATIBILITY]
- [--help]
- [-d|-o|-x|--radix=NUMBER]
- [--common]
- [-t|--totals]
- [--target=BFDNAME] [-V|--version]
- [OBJFILE...]
-
- The GNU 'size' utility lists the section sizes and the total size for
- each of the binary files OBJFILE on its argument list. By default, one
- line of output is generated for each file or each module if the file is
- an archive.
-
- OBJFILE... are the files to be examined. If none are specified, the
- file 'a.out' will be used instead.
-
- The command-line options have the following meanings:
-
- '-A'
- '-B'
- '-G'
- '--format=COMPATIBILITY'
- Using one of these options, you can choose whether the output from
- GNU 'size' resembles output from System V 'size' (using '-A', or
- '--format=sysv'), or Berkeley 'size' (using '-B', or
- '--format=berkeley'). The default is the one-line format similar
- to Berkeley's. Alternatively, you can choose the GNU format output
- (using '-G', or '--format=gnu'), this is similar to Berkeley's
- output format, but sizes are counted differently.
-
- Here is an example of the Berkeley (default) format of output from
- 'size':
- $ size --format=Berkeley ranlib size
- text data bss dec hex filename
- 294880 81920 11592 388392 5ed28 ranlib
- 294880 81920 11888 388688 5ee50 size
-
- The Berkeley style output counts read only data in the 'text'
- column, not in the 'data' column, the 'dec' and 'hex' columns both
- display the sum of the 'text', 'data', and 'bss' columns in decimal
- and hexadecimal respectively.
-
- The GNU format counts read only data in the 'data' column, not the
- 'text' column, and only displays the sum of the 'text', 'data', and
- 'bss' columns once, in the 'total' column. The '--radix' option
- can be used to change the number base for all columns. Here is the
- same data displayed with GNU conventions:
-
- $ size --format=GNU ranlib size
- text data bss total filename
- 279880 96920 11592 388392 ranlib
- 279880 96920 11888 388688 size
-
- This is the same data, but displayed closer to System V
- conventions:
-
- $ size --format=SysV ranlib size
- ranlib :
- section size addr
- .text 294880 8192
- .data 81920 303104
- .bss 11592 385024
- Total 388392
-
-
- size :
- section size addr
- .text 294880 8192
- .data 81920 303104
- .bss 11888 385024
- Total 388688
-
- '--help'
- Show a summary of acceptable arguments and options.
-
- '-d'
- '-o'
- '-x'
- '--radix=NUMBER'
- Using one of these options, you can control whether the size of
- each section is given in decimal ('-d', or '--radix=10'); octal
- ('-o', or '--radix=8'); or hexadecimal ('-x', or '--radix=16'). In
- '--radix=NUMBER', only the three values (8, 10, 16) are supported.
- The total size is always given in two radices; decimal and
- hexadecimal for '-d' or '-x' output, or octal and hexadecimal if
- you're using '-o'.
-
- '--common'
- Print total size of common symbols in each file. When using
- Berkeley or GNU format these are included in the bss size.
-
- '-t'
- '--totals'
- Show totals of all objects listed (Berkeley or GNU format mode
- only).
-
- '--target=BFDNAME'
- Specify that the object-code format for OBJFILE is BFDNAME. This
- option may not be necessary; 'size' can automatically recognize
- many formats. *Note Target Selection::, for more information.
-
- '-V'
- '--version'
- Display the version number of 'size'.
-
-
- File: binutils.info, Node: strings, Next: strip, Prev: size, Up: Top
-
- 7 strings
- *********
-
- strings [-afovV] [-MIN-LEN]
- [-n MIN-LEN] [--bytes=MIN-LEN]
- [-t RADIX] [--radix=RADIX]
- [-e ENCODING] [--encoding=ENCODING]
- [-] [--all] [--print-file-name]
- [-T BFDNAME] [--target=BFDNAME]
- [-w] [--include-all-whitespace]
- [-s] [--output-separatorSEP_STRING]
- [--help] [--version] FILE...
-
- For each FILE given, GNU 'strings' prints the printable character
- sequences that are at least 4 characters long (or the number given with
- the options below) and are followed by an unprintable character.
-
- Depending upon how the strings program was configured it will default
- to either displaying all the printable sequences that it can find in
- each file, or only those sequences that are in loadable, initialized
- data sections. If the file type is unrecognizable, or if strings is
- reading from stdin then it will always display all of the printable
- sequences that it can find.
-
- For backwards compatibility any file that occurs after a command-line
- option of just '-' will also be scanned in full, regardless of the
- presence of any '-d' option.
-
- 'strings' is mainly useful for determining the contents of non-text
- files.
-
- '-a'
- '--all'
- '-'
- Scan the whole file, regardless of what sections it contains or
- whether those sections are loaded or initialized. Normally this is
- the default behaviour, but strings can be configured so that the
- '-d' is the default instead.
-
- The '-' option is position dependent and forces strings to perform
- full scans of any file that is mentioned after the '-' on the
- command line, even if the '-d' option has been specified.
-
- '-d'
- '--data'
- Only print strings from initialized, loaded data sections in the
- file. This may reduce the amount of garbage in the output, but it
- also exposes the strings program to any security flaws that may be
- present in the BFD library used to scan and load sections. Strings
- can be configured so that this option is the default behaviour. In
- such cases the '-a' option can be used to avoid using the BFD
- library and instead just print all of the strings found in the
- file.
-
- '-f'
- '--print-file-name'
- Print the name of the file before each string.
-
- '--help'
- Print a summary of the program usage on the standard output and
- exit.
-
- '-MIN-LEN'
- '-n MIN-LEN'
- '--bytes=MIN-LEN'
- Print sequences of characters that are at least MIN-LEN characters
- long, instead of the default 4.
-
- '-o'
- Like '-t o'. Some other versions of 'strings' have '-o' act like
- '-t d' instead. Since we can not be compatible with both ways, we
- simply chose one.
-
- '-t RADIX'
- '--radix=RADIX'
- Print the offset within the file before each string. The single
- character argument specifies the radix of the offset--'o' for
- octal, 'x' for hexadecimal, or 'd' for decimal.
-
- '-e ENCODING'
- '--encoding=ENCODING'
- Select the character encoding of the strings that are to be found.
- Possible values for ENCODING are: 's' = single-7-bit-byte
- characters (ASCII, ISO 8859, etc., default), 'S' =
- single-8-bit-byte characters, 'b' = 16-bit bigendian, 'l' = 16-bit
- littleendian, 'B' = 32-bit bigendian, 'L' = 32-bit littleendian.
- Useful for finding wide character strings. ('l' and 'b' apply to,
- for example, Unicode UTF-16/UCS-2 encodings).
-
- '-T BFDNAME'
- '--target=BFDNAME'
- Specify an object code format other than your system's default
- format. *Note Target Selection::, for more information.
-
- '-v'
- '-V'
- '--version'
- Print the program version number on the standard output and exit.
-
- '-w'
- '--include-all-whitespace'
- By default tab and space characters are included in the strings
- that are displayed, but other whitespace characters, such a
- newlines and carriage returns, are not. The '-w' option changes
- this so that all whitespace characters are considered to be part of
- a string.
-
- '-s'
- '--output-separator'
- By default, output strings are delimited by a new-line. This
- option allows you to supply any string to be used as the output
- record separator. Useful with -include-all-whitespace where
- strings may contain new-lines internally.
-
-
- File: binutils.info, Node: strip, Next: c++filt, Prev: strings, Up: Top
-
- 8 strip
- *******
-
- strip [-F BFDNAME |--target=BFDNAME]
- [-I BFDNAME |--input-target=BFDNAME]
- [-O BFDNAME |--output-target=BFDNAME]
- [-s|--strip-all]
- [-S|-g|-d|--strip-debug]
- [--strip-dwo]
- [-K SYMBOLNAME|--keep-symbol=SYMBOLNAME]
- [-M|--merge-notes][--no-merge-notes]
- [-N SYMBOLNAME |--strip-symbol=SYMBOLNAME]
- [-w|--wildcard]
- [-x|--discard-all] [-X |--discard-locals]
- [-R SECTIONNAME |--remove-section=SECTIONNAME]
- [--keep-section=SECTIONPATTERN]
- [--remove-relocations=SECTIONPATTERN]
- [-o FILE] [-p|--preserve-dates]
- [-D|--enable-deterministic-archives]
- [-U|--disable-deterministic-archives]
- [--keep-file-symbols]
- [--only-keep-debug]
- [-v |--verbose] [-V|--version]
- [--help] [--info]
- OBJFILE...
-
- GNU 'strip' discards all symbols from object files OBJFILE. The list
- of object files may include archives. At least one object file must be
- given.
-
- 'strip' modifies the files named in its argument, rather than writing
- modified copies under different names.
-
- '-F BFDNAME'
- '--target=BFDNAME'
- Treat the original OBJFILE as a file with the object code format
- BFDNAME, and rewrite it in the same format. *Note Target
- Selection::, for more information.
-
- '--help'
- Show a summary of the options to 'strip' and exit.
-
- '--info'
- Display a list showing all architectures and object formats
- available.
-
- '-I BFDNAME'
- '--input-target=BFDNAME'
- Treat the original OBJFILE as a file with the object code format
- BFDNAME. *Note Target Selection::, for more information.
-
- '-O BFDNAME'
- '--output-target=BFDNAME'
- Replace OBJFILE with a file in the output format BFDNAME. *Note
- Target Selection::, for more information.
-
- '-R SECTIONNAME'
- '--remove-section=SECTIONNAME'
- Remove any section named SECTIONNAME from the output file, in
- addition to whatever sections would otherwise be removed. This
- option may be given more than once. Note that using this option
- inappropriately may make the output file unusable. The wildcard
- character '*' may be given at the end of SECTIONNAME. If so, then
- any section starting with SECTIONNAME will be removed.
-
- If the first character of SECTIONPATTERN is the exclamation point
- (!) then matching sections will not be removed even if an earlier
- use of '--remove-section' on the same command line would otherwise
- remove it. For example:
-
- --remove-section=.text.* --remove-section=!.text.foo
-
- will remove all sections matching the pattern '.text.*', but will
- not remove the section '.text.foo'.
-
- '--keep-section=SECTIONPATTERN'
- When removing sections from the output file, keep sections that
- match SECTIONPATTERN.
-
- '--remove-relocations=SECTIONPATTERN'
- Remove relocations from the output file for any section matching
- SECTIONPATTERN. This option may be given more than once. Note
- that using this option inappropriately may make the output file
- unusable. Wildcard characters are accepted in SECTIONPATTERN. For
- example:
-
- --remove-relocations=.text.*
-
- will remove the relocations for all sections matching the patter
- '.text.*'.
-
- If the first character of SECTIONPATTERN is the exclamation point
- (!) then matching sections will not have their relocation removed
- even if an earlier use of '--remove-relocations' on the same
- command line would otherwise cause the relocations to be removed.
- For example:
-
- --remove-relocations=.text.* --remove-relocations=!.text.foo
-
- will remove all relocations for sections matching the pattern
- '.text.*', but will not remove relocations for the section
- '.text.foo'.
-
- '-s'
- '--strip-all'
- Remove all symbols.
-
- '-g'
- '-S'
- '-d'
- '--strip-debug'
- Remove debugging symbols only.
-
- '--strip-dwo'
- Remove the contents of all DWARF .dwo sections, leaving the
- remaining debugging sections and all symbols intact. See the
- description of this option in the 'objcopy' section for more
- information.
-
- '--strip-unneeded'
- Remove all symbols that are not needed for relocation processing.
-
- '-K SYMBOLNAME'
- '--keep-symbol=SYMBOLNAME'
- When stripping symbols, keep symbol SYMBOLNAME even if it would
- normally be stripped. This option may be given more than once.
-
- '-M'
- '--merge-notes'
- '--no-merge-notes'
- For ELF files, attempt (or do not attempt) to reduce the size of
- any SHT_NOTE type sections by removing duplicate notes. The
- default is to attempt this reduction unless stripping debug or DWO
- information.
-
- '-N SYMBOLNAME'
- '--strip-symbol=SYMBOLNAME'
- Remove symbol SYMBOLNAME from the source file. This option may be
- given more than once, and may be combined with strip options other
- than '-K'.
-
- '-o FILE'
- Put the stripped output in FILE, rather than replacing the existing
- file. When this argument is used, only one OBJFILE argument may be
- specified.
-
- '-p'
- '--preserve-dates'
- Preserve the access and modification dates of the file.
-
- '-D'
- '--enable-deterministic-archives'
- Operate in _deterministic_ mode. When copying archive members and
- writing the archive index, use zero for UIDs, GIDs, timestamps, and
- use consistent file modes for all files.
-
- If 'binutils' was configured with
- '--enable-deterministic-archives', then this mode is on by default.
- It can be disabled with the '-U' option, below.
-
- '-U'
- '--disable-deterministic-archives'
- Do _not_ operate in _deterministic_ mode. This is the inverse of
- the '-D' option, above: when copying archive members and writing
- the archive index, use their actual UID, GID, timestamp, and file
- mode values.
-
- This is the default unless 'binutils' was configured with
- '--enable-deterministic-archives'.
-
- '-w'
- '--wildcard'
- Permit regular expressions in SYMBOLNAMEs used in other command
- line options. The question mark (?), asterisk (*), backslash (\)
- and square brackets ([]) operators can be used anywhere in the
- symbol name. If the first character of the symbol name is the
- exclamation point (!) then the sense of the switch is reversed for
- that symbol. For example:
-
- -w -K !foo -K fo*
-
- would cause strip to only keep symbols that start with the letters
- "fo", but to discard the symbol "foo".
-
- '-x'
- '--discard-all'
- Remove non-global symbols.
-
- '-X'
- '--discard-locals'
- Remove compiler-generated local symbols. (These usually start with
- 'L' or '.'.)
-
- '--keep-file-symbols'
- When stripping a file, perhaps with '--strip-debug' or
- '--strip-unneeded', retain any symbols specifying source file
- names, which would otherwise get stripped.
-
- '--only-keep-debug'
- Strip a file, emptying the contents of any sections that would not
- be stripped by '--strip-debug' and leaving the debugging sections
- intact. In ELF files, this preserves all the note sections in the
- output as well.
-
- Note - the section headers of the stripped sections are preserved,
- including their sizes, but the contents of the section are
- discarded. The section headers are preserved so that other tools
- can match up the debuginfo file with the real executable, even if
- that executable has been relocated to a different address space.
-
- The intention is that this option will be used in conjunction with
- '--add-gnu-debuglink' to create a two part executable. One a
- stripped binary which will occupy less space in RAM and in a
- distribution and the second a debugging information file which is
- only needed if debugging abilities are required. The suggested
- procedure to create these files is as follows:
-
- 1. Link the executable as normal. Assuming that it is called
- 'foo' then...
- 2. Run 'objcopy --only-keep-debug foo foo.dbg' to create a file
- containing the debugging info.
- 3. Run 'objcopy --strip-debug foo' to create a stripped
- executable.
- 4. Run 'objcopy --add-gnu-debuglink=foo.dbg foo' to add a link to
- the debugging info into the stripped executable.
-
- Note--the choice of '.dbg' as an extension for the debug info file
- is arbitrary. Also the '--only-keep-debug' step is optional. You
- could instead do this:
-
- 1. Link the executable as normal.
- 2. Copy 'foo' to 'foo.full'
- 3. Run 'strip --strip-debug foo'
- 4. Run 'objcopy --add-gnu-debuglink=foo.full foo'
-
- i.e., the file pointed to by the '--add-gnu-debuglink' can be the
- full executable. It does not have to be a file created by the
- '--only-keep-debug' switch.
-
- Note--this switch is only intended for use on fully linked files.
- It does not make sense to use it on object files where the
- debugging information may be incomplete. Besides the gnu_debuglink
- feature currently only supports the presence of one filename
- containing debugging information, not multiple filenames on a
- one-per-object-file basis.
-
- '-V'
- '--version'
- Show the version number for 'strip'.
-
- '-v'
- '--verbose'
- Verbose output: list all object files modified. In the case of
- archives, 'strip -v' lists all members of the archive.
-
-
- File: binutils.info, Node: c++filt, Next: addr2line, Prev: strip, Up: Top
-
- 9 c++filt
- *********
-
- c++filt [-_|--strip-underscore]
- [-n|--no-strip-underscore]
- [-p|--no-params]
- [-t|--types]
- [-i|--no-verbose]
- [-r|--no-recurse-limit]
- [-R|--recurse-limit]
- [-s FORMAT|--format=FORMAT]
- [--help] [--version] [SYMBOL...]
-
- The C++ and Java languages provide function overloading, which means
- that you can write many functions with the same name, providing that
- each function takes parameters of different types. In order to be able
- to distinguish these similarly named functions C++ and Java encode them
- into a low-level assembler name which uniquely identifies each different
- version. This process is known as "mangling". The 'c++filt' (1)
- program does the inverse mapping: it decodes ("demangles") low-level
- names into user-level names so that they can be read.
-
- Every alphanumeric word (consisting of letters, digits, underscores,
- dollars, or periods) seen in the input is a potential mangled name. If
- the name decodes into a C++ name, the C++ name replaces the low-level
- name in the output, otherwise the original word is output. In this way
- you can pass an entire assembler source file, containing mangled names,
- through 'c++filt' and see the same source file containing demangled
- names.
-
- You can also use 'c++filt' to decipher individual symbols by passing
- them on the command line:
-
- c++filt SYMBOL
-
- If no SYMBOL arguments are given, 'c++filt' reads symbol names from
- the standard input instead. All the results are printed on the standard
- output. The difference between reading names from the command line
- versus reading names from the standard input is that command-line
- arguments are expected to be just mangled names and no checking is
- performed to separate them from surrounding text. Thus for example:
-
- c++filt -n _Z1fv
-
- will work and demangle the name to "f()" whereas:
-
- c++filt -n _Z1fv,
-
- will not work. (Note the extra comma at the end of the mangled name
- which makes it invalid). This command however will work:
-
- echo _Z1fv, | c++filt -n
-
- and will display "f(),", i.e., the demangled name followed by a
- trailing comma. This behaviour is because when the names are read from
- the standard input it is expected that they might be part of an
- assembler source file where there might be extra, extraneous characters
- trailing after a mangled name. For example:
-
- .type _Z1fv, @function
-
- '-_'
- '--strip-underscore'
- On some systems, both the C and C++ compilers put an underscore in
- front of every name. For example, the C name 'foo' gets the
- low-level name '_foo'. This option removes the initial underscore.
- Whether 'c++filt' removes the underscore by default is target
- dependent.
-
- '-n'
- '--no-strip-underscore'
- Do not remove the initial underscore.
-
- '-p'
- '--no-params'
- When demangling the name of a function, do not display the types of
- the function's parameters.
-
- '-t'
- '--types'
- Attempt to demangle types as well as function names. This is
- disabled by default since mangled types are normally only used
- internally in the compiler, and they can be confused with
- non-mangled names. For example, a function called "a" treated as a
- mangled type name would be demangled to "signed char".
-
- '-i'
- '--no-verbose'
- Do not include implementation details (if any) in the demangled
- output.
-
- '-r'
- '-R'
- '--recurse-limit'
- '--no-recurse-limit'
- '--recursion-limit'
- '--no-recursion-limit'
- Enables or disables a limit on the amount of recursion performed
- whilst demangling strings. Since the name mangling formats allow
- for an inifinite level of recursion it is possible to create
- strings whose decoding will exhaust the amount of stack space
- available on the host machine, triggering a memory fault. The
- limit tries to prevent this from happening by restricting recursion
- to 2048 levels of nesting.
-
- The default is for this limit to be enabled, but disabling it may
- be necessary in order to demangle truly complicated names. Note
- however that if the recursion limit is disabled then stack
- exhaustion is possible and any bug reports about such an event will
- be rejected.
-
- The '-r' option is a synonym for the '--no-recurse-limit' option.
- The '-R' option is a synonym for the '--recurse-limit' option.
-
- '-s FORMAT'
- '--format=FORMAT'
- 'c++filt' can decode various methods of mangling, used by different
- compilers. The argument to this option selects which method it
- uses:
-
- 'auto'
- Automatic selection based on executable (the default method)
- 'gnu'
- the one used by the GNU C++ compiler (g++)
- 'lucid'
- the one used by the Lucid compiler (lcc)
- 'arm'
- the one specified by the C++ Annotated Reference Manual
- 'hp'
- the one used by the HP compiler (aCC)
- 'edg'
- the one used by the EDG compiler
- 'gnu-v3'
- the one used by the GNU C++ compiler (g++) with the V3 ABI.
- 'java'
- the one used by the GNU Java compiler (gcj)
- 'gnat'
- the one used by the GNU Ada compiler (GNAT).
-
- '--help'
- Print a summary of the options to 'c++filt' and exit.
-
- '--version'
- Print the version number of 'c++filt' and exit.
-
- _Warning:_ 'c++filt' is a new utility, and the details of its user
- interface are subject to change in future releases. In particular,
- a command-line option may be required in the future to decode a
- name passed as an argument on the command line; in other words,
-
- c++filt SYMBOL
-
- may in a future release become
-
- c++filt OPTION SYMBOL
-
- ---------- Footnotes ----------
-
- (1) MS-DOS does not allow '+' characters in file names, so on MS-DOS
- this program is named 'CXXFILT'.
-
-
- File: binutils.info, Node: addr2line, Next: windmc, Prev: c++filt, Up: Top
-
- 10 addr2line
- ************
-
- addr2line [-a|--addresses]
- [-b BFDNAME|--target=BFDNAME]
- [-C|--demangle[=STYLE]]
- [-r|--no-recurse-limit]
- [-R|--recurse-limit]
- [-e FILENAME|--exe=FILENAME]
- [-f|--functions] [-s|--basename]
- [-i|--inlines]
- [-p|--pretty-print]
- [-j|--section=NAME]
- [-H|--help] [-V|--version]
- [addr addr ...]
-
- 'addr2line' translates addresses into file names and line numbers.
- Given an address in an executable or an offset in a section of a
- relocatable object, it uses the debugging information to figure out
- which file name and line number are associated with it.
-
- The executable or relocatable object to use is specified with the
- '-e' option. The default is the file 'a.out'. The section in the
- relocatable object to use is specified with the '-j' option.
-
- 'addr2line' has two modes of operation.
-
- In the first, hexadecimal addresses are specified on the command
- line, and 'addr2line' displays the file name and line number for each
- address.
-
- In the second, 'addr2line' reads hexadecimal addresses from standard
- input, and prints the file name and line number for each address on
- standard output. In this mode, 'addr2line' may be used in a pipe to
- convert dynamically chosen addresses.
-
- The format of the output is 'FILENAME:LINENO'. By default each input
- address generates one line of output.
-
- Two options can generate additional lines before each
- 'FILENAME:LINENO' line (in that order).
-
- If the '-a' option is used then a line with the input address is
- displayed.
-
- If the '-f' option is used, then a line with the 'FUNCTIONNAME' is
- displayed. This is the name of the function containing the address.
-
- One option can generate additional lines after the 'FILENAME:LINENO'
- line.
-
- If the '-i' option is used and the code at the given address is
- present there because of inlining by the compiler then additional lines
- are displayed afterwards. One or two extra lines (if the '-f' option is
- used) are displayed for each inlined function.
-
- Alternatively if the '-p' option is used then each input address
- generates a single, long, output line containing the address, the
- function name, the file name and the line number. If the '-i' option
- has also been used then any inlined functions will be displayed in the
- same manner, but on separate lines, and prefixed by the text '(inlined
- by)'.
-
- If the file name or function name can not be determined, 'addr2line'
- will print two question marks in their place. If the line number can
- not be determined, 'addr2line' will print 0.
-
- The long and short forms of options, shown here as alternatives, are
- equivalent.
-
- '-a'
- '--addresses'
- Display the address before the function name, file and line number
- information. The address is printed with a '0x' prefix to easily
- identify it.
-
- '-b BFDNAME'
- '--target=BFDNAME'
- Specify that the object-code format for the object files is
- BFDNAME.
-
- '-C'
- '--demangle[=STYLE]'
- Decode ("demangle") low-level symbol names into user-level names.
- Besides removing any initial underscore prepended by the system,
- this makes C++ function names readable. Different compilers have
- different mangling styles. The optional demangling style argument
- can be used to choose an appropriate demangling style for your
- compiler. *Note c++filt::, for more information on demangling.
-
- '-e FILENAME'
- '--exe=FILENAME'
- Specify the name of the executable for which addresses should be
- translated. The default file is 'a.out'.
-
- '-f'
- '--functions'
- Display function names as well as file and line number information.
-
- '-s'
- '--basenames'
- Display only the base of each file name.
-
- '-i'
- '--inlines'
- If the address belongs to a function that was inlined, the source
- information for all enclosing scopes back to the first non-inlined
- function will also be printed. For example, if 'main' inlines
- 'callee1' which inlines 'callee2', and address is from 'callee2',
- the source information for 'callee1' and 'main' will also be
- printed.
-
- '-j'
- '--section'
- Read offsets relative to the specified section instead of absolute
- addresses.
-
- '-p'
- '--pretty-print'
- Make the output more human friendly: each location are printed on
- one line. If option '-i' is specified, lines for all enclosing
- scopes are prefixed with '(inlined by)'.
-
- '-r'
- '-R'
- '--recurse-limit'
- '--no-recurse-limit'
- '--recursion-limit'
- '--no-recursion-limit'
- Enables or disables a limit on the amount of recursion performed
- whilst demangling strings. Since the name mangling formats allow
- for an inifinite level of recursion it is possible to create
- strings whose decoding will exhaust the amount of stack space
- available on the host machine, triggering a memory fault. The
- limit tries to prevent this from happening by restricting recursion
- to 2048 levels of nesting.
-
- The default is for this limit to be enabled, but disabling it may
- be necessary in order to demangle truly complicated names. Note
- however that if the recursion limit is disabled then stack
- exhaustion is possible and any bug reports about such an event will
- be rejected.
-
- The '-r' option is a synonym for the '--no-recurse-limit' option.
- The '-R' option is a synonym for the '--recurse-limit' option.
-
- Note this option is only effective if the '-C' or '--demangle'
- option has been enabled.
-
-
- File: binutils.info, Node: windmc, Next: windres, Prev: addr2line, Up: Top
-
- 11 windmc
- *********
-
- 'windmc' may be used to generator Windows message resources.
-
- _Warning:_ 'windmc' is not always built as part of the binary
- utilities, since it is only useful for Windows targets.
-
- windmc [options] input-file
-
- 'windmc' reads message definitions from an input file (.mc) and
- translate them into a set of output files. The output files may be of
- four kinds:
-
- 'h'
- A C header file containing the message definitions.
-
- 'rc'
- A resource file compilable by the 'windres' tool.
-
- 'bin'
- One or more binary files containing the resource data for a
- specific message language.
-
- 'dbg'
- A C include file that maps message id's to their symbolic name.
-
- The exact description of these different formats is available in
- documentation from Microsoft.
-
- When 'windmc' converts from the 'mc' format to the 'bin' format,
- 'rc', 'h', and optional 'dbg' it is acting like the Windows Message
- Compiler.
-
- '-a'
- '--ascii_in'
- Specifies that the input file specified is ASCII. This is the
- default behaviour.
-
- '-A'
- '--ascii_out'
- Specifies that messages in the output 'bin' files should be in
- ASCII format.
-
- '-b'
- '--binprefix'
- Specifies that 'bin' filenames should have to be prefixed by the
- basename of the source file.
-
- '-c'
- '--customflag'
- Sets the customer bit in all message id's.
-
- '-C CODEPAGE'
- '--codepage_in CODEPAGE'
- Sets the default codepage to be used to convert input file to
- UTF16. The default is ocdepage 1252.
-
- '-d'
- '--decimal_values'
- Outputs the constants in the header file in decimal. Default is
- using hexadecimal output.
-
- '-e EXT'
- '--extension EXT'
- The extension for the header file. The default is .h extension.
-
- '-F TARGET'
- '--target TARGET'
- Specify the BFD format to use for a bin file as output. This is a
- BFD target name; you can use the '--help' option to see a list of
- supported targets. Normally 'windmc' will use the default format,
- which is the first one listed by the '--help' option. *note Target
- Selection::.
-
- '-h PATH'
- '--headerdir PATH'
- The target directory of the generated header file. The default is
- the current directory.
-
- '-H'
- '--help'
- Displays a list of command-line options and then exits.
-
- '-m CHARACTERS'
- '--maxlength CHARACTERS'
- Instructs 'windmc' to generate a warning if the length of any
- message exceeds the number specified.
-
- '-n'
- '--nullterminate'
- Terminate message text in 'bin' files by zero. By default they are
- terminated by CR/LF.
-
- '-o'
- '--hresult_use'
- Not yet implemented. Instructs 'windmc' to generate an OLE2 header
- file, using HRESULT definitions. Status codes are used if the flag
- is not specified.
-
- '-O CODEPAGE'
- '--codepage_out CODEPAGE'
- Sets the default codepage to be used to output text files. The
- default is ocdepage 1252.
-
- '-r PATH'
- '--rcdir PATH'
- The target directory for the generated 'rc' script and the
- generated 'bin' files that the resource compiler script includes.
- The default is the current directory.
-
- '-u'
- '--unicode_in'
- Specifies that the input file is UTF16.
-
- '-U'
- '--unicode_out'
- Specifies that messages in the output 'bin' file should be in UTF16
- format. This is the default behaviour.
-
- '-v'
- '--verbose'
- Enable verbose mode.
-
- '-V'
- '--version'
- Prints the version number for 'windmc'.
-
- '-x PATH'
- '--xdgb PATH'
- The path of the 'dbg' C include file that maps message id's to the
- symbolic name. No such file is generated without specifying the
- switch.
-
-
- File: binutils.info, Node: windres, Next: dlltool, Prev: windmc, Up: Top
-
- 12 windres
- **********
-
- 'windres' may be used to manipulate Windows resources.
-
- _Warning:_ 'windres' is not always built as part of the binary
- utilities, since it is only useful for Windows targets.
-
- windres [options] [input-file] [output-file]
-
- 'windres' reads resources from an input file and copies them into an
- output file. Either file may be in one of three formats:
-
- 'rc'
- A text format read by the Resource Compiler.
-
- 'res'
- A binary format generated by the Resource Compiler.
-
- 'coff'
- A COFF object or executable.
-
- The exact description of these different formats is available in
- documentation from Microsoft.
-
- When 'windres' converts from the 'rc' format to the 'res' format, it
- is acting like the Windows Resource Compiler. When 'windres' converts
- from the 'res' format to the 'coff' format, it is acting like the
- Windows 'CVTRES' program.
-
- When 'windres' generates an 'rc' file, the output is similar but not
- identical to the format expected for the input. When an input 'rc' file
- refers to an external filename, an output 'rc' file will instead include
- the file contents.
-
- If the input or output format is not specified, 'windres' will guess
- based on the file name, or, for the input file, the file contents. A
- file with an extension of '.rc' will be treated as an 'rc' file, a file
- with an extension of '.res' will be treated as a 'res' file, and a file
- with an extension of '.o' or '.exe' will be treated as a 'coff' file.
-
- If no output file is specified, 'windres' will print the resources in
- 'rc' format to standard output.
-
- The normal use is for you to write an 'rc' file, use 'windres' to
- convert it to a COFF object file, and then link the COFF file into your
- application. This will make the resources described in the 'rc' file
- available to Windows.
-
- '-i FILENAME'
- '--input FILENAME'
- The name of the input file. If this option is not used, then
- 'windres' will use the first non-option argument as the input file
- name. If there are no non-option arguments, then 'windres' will
- read from standard input. 'windres' can not read a COFF file from
- standard input.
-
- '-o FILENAME'
- '--output FILENAME'
- The name of the output file. If this option is not used, then
- 'windres' will use the first non-option argument, after any used
- for the input file name, as the output file name. If there is no
- non-option argument, then 'windres' will write to standard output.
- 'windres' can not write a COFF file to standard output. Note, for
- compatibility with 'rc' the option '-fo' is also accepted, but its
- use is not recommended.
-
- '-J FORMAT'
- '--input-format FORMAT'
- The input format to read. FORMAT may be 'res', 'rc', or 'coff'.
- If no input format is specified, 'windres' will guess, as described
- above.
-
- '-O FORMAT'
- '--output-format FORMAT'
- The output format to generate. FORMAT may be 'res', 'rc', or
- 'coff'. If no output format is specified, 'windres' will guess, as
- described above.
-
- '-F TARGET'
- '--target TARGET'
- Specify the BFD format to use for a COFF file as input or output.
- This is a BFD target name; you can use the '--help' option to see a
- list of supported targets. Normally 'windres' will use the default
- format, which is the first one listed by the '--help' option.
- *note Target Selection::.
-
- '--preprocessor PROGRAM'
- When 'windres' reads an 'rc' file, it runs it through the C
- preprocessor first. This option may be used to specify the
- preprocessor to use, including any leading arguments. The default
- preprocessor argument is 'gcc -E -xc-header -DRC_INVOKED'.
-
- '--preprocessor-arg OPTION'
- When 'windres' reads an 'rc' file, it runs it through the C
- preprocessor first. This option may be used to specify additional
- text to be passed to preprocessor on its command line. This option
- can be used multiple times to add multiple options to the
- preprocessor command line.
-
- '-I DIRECTORY'
- '--include-dir DIRECTORY'
- Specify an include directory to use when reading an 'rc' file.
- 'windres' will pass this to the preprocessor as an '-I' option.
- 'windres' will also search this directory when looking for files
- named in the 'rc' file. If the argument passed to this command
- matches any of the supported FORMATS (as described in the '-J'
- option), it will issue a deprecation warning, and behave just like
- the '-J' option. New programs should not use this behaviour. If a
- directory happens to match a FORMAT, simple prefix it with './' to
- disable the backward compatibility.
-
- '-D TARGET'
- '--define SYM[=VAL]'
- Specify a '-D' option to pass to the preprocessor when reading an
- 'rc' file.
-
- '-U TARGET'
- '--undefine SYM'
- Specify a '-U' option to pass to the preprocessor when reading an
- 'rc' file.
-
- '-r'
- Ignored for compatibility with rc.
-
- '-v'
- Enable verbose mode. This tells you what the preprocessor is if
- you didn't specify one.
-
- '-c VAL'
- '--codepage VAL'
- Specify the default codepage to use when reading an 'rc' file. VAL
- should be a hexadecimal prefixed by '0x' or decimal codepage code.
- The valid range is from zero up to 0xffff, but the validity of the
- codepage is host and configuration dependent.
-
- '-l VAL'
- '--language VAL'
- Specify the default language to use when reading an 'rc' file. VAL
- should be a hexadecimal language code. The low eight bits are the
- language, and the high eight bits are the sublanguage.
-
- '--use-temp-file'
- Use a temporary file to instead of using popen to read the output
- of the preprocessor. Use this option if the popen implementation
- is buggy on the host (eg., certain non-English language versions of
- Windows 95 and Windows 98 are known to have buggy popen where the
- output will instead go the console).
-
- '--no-use-temp-file'
- Use popen, not a temporary file, to read the output of the
- preprocessor. This is the default behaviour.
-
- '-h'
- '--help'
- Prints a usage summary.
-
- '-V'
- '--version'
- Prints the version number for 'windres'.
-
- '--yydebug'
- If 'windres' is compiled with 'YYDEBUG' defined as '1', this will
- turn on parser debugging.
-
-
- File: binutils.info, Node: dlltool, Next: readelf, Prev: windres, Up: Top
-
- 13 dlltool
- **********
-
- 'dlltool' is used to create the files needed to create dynamic link
- libraries (DLLs) on systems which understand PE format image files such
- as Windows. A DLL contains an export table which contains information
- that the runtime loader needs to resolve references from a referencing
- program.
-
- The export table is generated by this program by reading in a '.def'
- file or scanning the '.a' and '.o' files which will be in the DLL. A
- '.o' file can contain information in special '.drectve' sections with
- export information.
-
- _Note:_ 'dlltool' is not always built as part of the binary
- utilities, since it is only useful for those targets which support
- DLLs.
-
- dlltool [-d|--input-def DEF-FILE-NAME]
- [-b|--base-file BASE-FILE-NAME]
- [-e|--output-exp EXPORTS-FILE-NAME]
- [-z|--output-def DEF-FILE-NAME]
- [-l|--output-lib LIBRARY-FILE-NAME]
- [-y|--output-delaylib LIBRARY-FILE-NAME]
- [--export-all-symbols] [--no-export-all-symbols]
- [--exclude-symbols LIST]
- [--no-default-excludes]
- [-S|--as PATH-TO-ASSEMBLER] [-f|--as-flags OPTIONS]
- [-D|--dllname NAME] [-m|--machine MACHINE]
- [-a|--add-indirect]
- [-U|--add-underscore] [--add-stdcall-underscore]
- [-k|--kill-at] [-A|--add-stdcall-alias]
- [-p|--ext-prefix-alias PREFIX]
- [-x|--no-idata4] [-c|--no-idata5]
- [--use-nul-prefixed-import-tables]
- [-I|--identify LIBRARY-FILE-NAME] [--identify-strict]
- [-i|--interwork]
- [-n|--nodelete] [-t|--temp-prefix PREFIX]
- [-v|--verbose]
- [-h|--help] [-V|--version]
- [--no-leading-underscore] [--leading-underscore]
- [object-file ...]
-
- 'dlltool' reads its inputs, which can come from the '-d' and '-b'
- options as well as object files specified on the command line. It then
- processes these inputs and if the '-e' option has been specified it
- creates a exports file. If the '-l' option has been specified it
- creates a library file and if the '-z' option has been specified it
- creates a def file. Any or all of the '-e', '-l' and '-z' options can
- be present in one invocation of dlltool.
-
- When creating a DLL, along with the source for the DLL, it is
- necessary to have three other files. 'dlltool' can help with the
- creation of these files.
-
- The first file is a '.def' file which specifies which functions are
- exported from the DLL, which functions the DLL imports, and so on. This
- is a text file and can be created by hand, or 'dlltool' can be used to
- create it using the '-z' option. In this case 'dlltool' will scan the
- object files specified on its command line looking for those functions
- which have been specially marked as being exported and put entries for
- them in the '.def' file it creates.
-
- In order to mark a function as being exported from a DLL, it needs to
- have an '-export:<name_of_function>' entry in the '.drectve' section of
- the object file. This can be done in C by using the asm() operator:
-
- asm (".section .drectve");
- asm (".ascii \"-export:my_func\"");
-
- int my_func (void) { ... }
-
- The second file needed for DLL creation is an exports file. This
- file is linked with the object files that make up the body of the DLL
- and it handles the interface between the DLL and the outside world.
- This is a binary file and it can be created by giving the '-e' option to
- 'dlltool' when it is creating or reading in a '.def' file.
-
- The third file needed for DLL creation is the library file that
- programs will link with in order to access the functions in the DLL (an
- 'import library'). This file can be created by giving the '-l' option
- to dlltool when it is creating or reading in a '.def' file.
-
- If the '-y' option is specified, dlltool generates a delay-import
- library that can be used instead of the normal import library to allow a
- program to link to the dll only as soon as an imported function is
- called for the first time. The resulting executable will need to be
- linked to the static delayimp library containing __delayLoadHelper2(),
- which in turn will import LoadLibraryA and GetProcAddress from kernel32.
-
- 'dlltool' builds the library file by hand, but it builds the exports
- file by creating temporary files containing assembler statements and
- then assembling these. The '-S' command-line option can be used to
- specify the path to the assembler that dlltool will use, and the '-f'
- option can be used to pass specific flags to that assembler. The '-n'
- can be used to prevent dlltool from deleting these temporary assembler
- files when it is done, and if '-n' is specified twice then this will
- prevent dlltool from deleting the temporary object files it used to
- build the library.
-
- Here is an example of creating a DLL from a source file 'dll.c' and
- also creating a program (from an object file called 'program.o') that
- uses that DLL:
-
- gcc -c dll.c
- dlltool -e exports.o -l dll.lib dll.o
- gcc dll.o exports.o -o dll.dll
- gcc program.o dll.lib -o program
-
- 'dlltool' may also be used to query an existing import library to
- determine the name of the DLL to which it is associated. See the
- description of the '-I' or '--identify' option.
-
- The command-line options have the following meanings:
-
- '-d FILENAME'
- '--input-def FILENAME'
- Specifies the name of a '.def' file to be read in and processed.
-
- '-b FILENAME'
- '--base-file FILENAME'
- Specifies the name of a base file to be read in and processed. The
- contents of this file will be added to the relocation section in
- the exports file generated by dlltool.
-
- '-e FILENAME'
- '--output-exp FILENAME'
- Specifies the name of the export file to be created by dlltool.
-
- '-z FILENAME'
- '--output-def FILENAME'
- Specifies the name of the '.def' file to be created by dlltool.
-
- '-l FILENAME'
- '--output-lib FILENAME'
- Specifies the name of the library file to be created by dlltool.
-
- '-y FILENAME'
- '--output-delaylib FILENAME'
- Specifies the name of the delay-import library file to be created
- by dlltool.
-
- '--export-all-symbols'
- Treat all global and weak defined symbols found in the input object
- files as symbols to be exported. There is a small list of symbols
- which are not exported by default; see the '--no-default-excludes'
- option. You may add to the list of symbols to not export by using
- the '--exclude-symbols' option.
-
- '--no-export-all-symbols'
- Only export symbols explicitly listed in an input '.def' file or in
- '.drectve' sections in the input object files. This is the default
- behaviour. The '.drectve' sections are created by 'dllexport'
- attributes in the source code.
-
- '--exclude-symbols LIST'
- Do not export the symbols in LIST. This is a list of symbol names
- separated by comma or colon characters. The symbol names should
- not contain a leading underscore. This is only meaningful when
- '--export-all-symbols' is used.
-
- '--no-default-excludes'
- When '--export-all-symbols' is used, it will by default avoid
- exporting certain special symbols. The current list of symbols to
- avoid exporting is 'DllMain@12', 'DllEntryPoint@0', 'impure_ptr'.
- You may use the '--no-default-excludes' option to go ahead and
- export these special symbols. This is only meaningful when
- '--export-all-symbols' is used.
-
- '-S PATH'
- '--as PATH'
- Specifies the path, including the filename, of the assembler to be
- used to create the exports file.
-
- '-f OPTIONS'
- '--as-flags OPTIONS'
- Specifies any specific command-line options to be passed to the
- assembler when building the exports file. This option will work
- even if the '-S' option is not used. This option only takes one
- argument, and if it occurs more than once on the command line, then
- later occurrences will override earlier occurrences. So if it is
- necessary to pass multiple options to the assembler they should be
- enclosed in double quotes.
-
- '-D NAME'
- '--dll-name NAME'
- Specifies the name to be stored in the '.def' file as the name of
- the DLL when the '-e' option is used. If this option is not
- present, then the filename given to the '-e' option will be used as
- the name of the DLL.
-
- '-m MACHINE'
- '-machine MACHINE'
- Specifies the type of machine for which the library file should be
- built. 'dlltool' has a built in default type, depending upon how
- it was created, but this option can be used to override that. This
- is normally only useful when creating DLLs for an ARM processor,
- when the contents of the DLL are actually encode using Thumb
- instructions.
-
- '-a'
- '--add-indirect'
- Specifies that when 'dlltool' is creating the exports file it
- should add a section which allows the exported functions to be
- referenced without using the import library. Whatever the hell
- that means!
-
- '-U'
- '--add-underscore'
- Specifies that when 'dlltool' is creating the exports file it
- should prepend an underscore to the names of _all_ exported
- symbols.
-
- '--no-leading-underscore'
- '--leading-underscore'
- Specifies whether standard symbol should be forced to be prefixed,
- or not.
-
- '--add-stdcall-underscore'
- Specifies that when 'dlltool' is creating the exports file it
- should prepend an underscore to the names of exported _stdcall_
- functions. Variable names and non-stdcall function names are not
- modified. This option is useful when creating GNU-compatible
- import libs for third party DLLs that were built with MS-Windows
- tools.
-
- '-k'
- '--kill-at'
- Specifies that '@<number>' suffixes should be omitted from the
- names of stdcall functions that will be imported from the DLL. This
- is useful when creating an import library for a DLL which exports
- stdcall functions but without the usual '@<number>' symbol name
- suffix.
-
- This does not change the naming of symbols provided by the import
- library to programs linked against it, but only the entries in the
- import table (ie the .idata section).
-
- '-A'
- '--add-stdcall-alias'
- Specifies that when 'dlltool' is creating the exports file it
- should add aliases for stdcall symbols without '@ <number>' in
- addition to the symbols with '@ <number>'.
-
- '-p'
- '--ext-prefix-alias PREFIX'
- Causes 'dlltool' to create external aliases for all DLL imports
- with the specified prefix. The aliases are created for both
- external and import symbols with no leading underscore.
-
- '-x'
- '--no-idata4'
- Specifies that when 'dlltool' is creating the exports and library
- files it should omit the '.idata4' section. This is for
- compatibility with certain operating systems.
-
- '--use-nul-prefixed-import-tables'
- Specifies that when 'dlltool' is creating the exports and library
- files it should prefix the '.idata4' and '.idata5' by zero an
- element. This emulates old gnu import library generation of
- 'dlltool'. By default this option is turned off.
-
- '-c'
- '--no-idata5'
- Specifies that when 'dlltool' is creating the exports and library
- files it should omit the '.idata5' section. This is for
- compatibility with certain operating systems.
-
- '-I FILENAME'
- '--identify FILENAME'
- Specifies that 'dlltool' should inspect the import library
- indicated by FILENAME and report, on 'stdout', the name(s) of the
- associated DLL(s). This can be performed in addition to any other
- operations indicated by the other options and arguments. 'dlltool'
- fails if the import library does not exist or is not actually an
- import library. See also '--identify-strict'.
-
- '--identify-strict'
- Modifies the behavior of the '--identify' option, such that an
- error is reported if FILENAME is associated with more than one DLL.
-
- '-i'
- '--interwork'
- Specifies that 'dlltool' should mark the objects in the library
- file and exports file that it produces as supporting interworking
- between ARM and Thumb code.
-
- '-n'
- '--nodelete'
- Makes 'dlltool' preserve the temporary assembler files it used to
- create the exports file. If this option is repeated then dlltool
- will also preserve the temporary object files it uses to create the
- library file.
-
- '-t PREFIX'
- '--temp-prefix PREFIX'
- Makes 'dlltool' use PREFIX when constructing the names of temporary
- assembler and object files. By default, the temp file prefix is
- generated from the pid.
-
- '-v'
- '--verbose'
- Make dlltool describe what it is doing.
-
- '-h'
- '--help'
- Displays a list of command-line options and then exits.
-
- '-V'
- '--version'
- Displays dlltool's version number and then exits.
-
- * Menu:
-
- * def file format:: The format of the dlltool '.def' file
-
-
- File: binutils.info, Node: def file format, Up: dlltool
-
- 13.1 The format of the 'dlltool' '.def' file
- ============================================
-
- A '.def' file contains any number of the following commands:
-
- 'NAME' NAME '[ ,' BASE ']'
- The result is going to be named NAME'.exe'.
-
- 'LIBRARY' NAME '[ ,' BASE ']'
- The result is going to be named NAME'.dll'. Note: If you want to
- use LIBRARY as name then you need to quote. Otherwise this will
- fail due a necessary hack for libtool (see PR binutils/13710 for
- more details).
-
- 'EXPORTS ( ( (' NAME1 '[ = ' NAME2 '] ) | ( ' NAME1 '=' MODULE-NAME '.' EXTERNAL-NAME ') ) [ == ' ITS_NAME ']'
- '[' INTEGER '] [ NONAME ] [ CONSTANT ] [ DATA ] [ PRIVATE ] ) *'
- Declares NAME1 as an exported symbol from the DLL, with optional
- ordinal number INTEGER, or declares NAME1 as an alias (forward) of
- the function EXTERNAL-NAME in the DLL. If ITS_NAME is specified,
- this name is used as string in export table. MODULE-NAME. Note:
- The 'EXPORTS' has to be the last command in .def file, as keywords
- are treated - beside 'LIBRARY' - as simple name-identifiers. If
- you want to use LIBRARY as name then you need to quote it.
-
- 'IMPORTS ( (' INTERNAL-NAME '=' MODULE-NAME '.' INTEGER ') | [' INTERNAL-NAME '= ]' MODULE-NAME '.' EXTERNAL-NAME ') [ == ) ITS_NAME ] *'
- Declares that EXTERNAL-NAME or the exported function whose ordinal
- number is INTEGER is to be imported from the file MODULE-NAME. If
- INTERNAL-NAME is specified then this is the name that the imported
- function will be referred to in the body of the DLL. If ITS_NAME is
- specified, this name is used as string in import table. Note: The
- 'IMPORTS' has to be the last command in .def file, as keywords are
- treated - beside 'LIBRARY' - as simple name-identifiers. If you
- want to use LIBRARY as name then you need to quote it.
-
- 'DESCRIPTION' STRING
- Puts STRING into the output '.exp' file in the '.rdata' section.
-
- 'STACKSIZE' NUMBER-RESERVE '[, ' NUMBER-COMMIT ']'
- 'HEAPSIZE' NUMBER-RESERVE '[, ' NUMBER-COMMIT ']'
- Generates '--stack' or '--heap' NUMBER-RESERVE,NUMBER-COMMIT in the
- output '.drectve' section. The linker will see this and act upon
- it.
-
- 'CODE' ATTR '+'
- 'DATA' ATTR '+'
- 'SECTIONS (' SECTION-NAME ATTR' + ) *'
- Generates '--attr' SECTION-NAME ATTR in the output '.drectve'
- section, where ATTR is one of 'READ', 'WRITE', 'EXECUTE' or
- 'SHARED'. The linker will see this and act upon it.
-
-
- File: binutils.info, Node: readelf, Next: elfedit, Prev: dlltool, Up: Top
-
- 14 readelf
- **********
-
- readelf [-a|--all]
- [-h|--file-header]
- [-l|--program-headers|--segments]
- [-S|--section-headers|--sections]
- [-g|--section-groups]
- [-t|--section-details]
- [-e|--headers]
- [-s|--syms|--symbols]
- [--dyn-syms]
- [-n|--notes]
- [-r|--relocs]
- [-u|--unwind]
- [-d|--dynamic]
- [-V|--version-info]
- [-A|--arch-specific]
- [-D|--use-dynamic]
- [-L|--lint|--enable-checks]
- [-x <number or name>|--hex-dump=<number or name>]
- [-p <number or name>|--string-dump=<number or name>]
- [-R <number or name>|--relocated-dump=<number or name>]
- [-z|--decompress]
- [-c|--archive-index]
- [-w[lLiaprmfFsoORtUuTgAckK]|
- --debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]]
- [--dwarf-depth=N]
- [--dwarf-start=N]
- [--ctf=SECTION]
- [--ctf-parent=SECTION]
- [--ctf-symbols=SECTION]
- [--ctf-strings=SECTION]
- [-I|--histogram]
- [-v|--version]
- [-W|--wide]
- [-T|--silent-truncation]
- [-H|--help]
- ELFFILE...
-
- 'readelf' displays information about one or more ELF format object
- files. The options control what particular information to display.
-
- ELFFILE... are the object files to be examined. 32-bit and 64-bit
- ELF files are supported, as are archives containing ELF files.
-
- This program performs a similar function to 'objdump' but it goes
- into more detail and it exists independently of the BFD library, so if
- there is a bug in BFD then readelf will not be affected.
-
- The long and short forms of options, shown here as alternatives, are
- equivalent. At least one option besides '-v' or '-H' must be given.
-
- '-a'
- '--all'
- Equivalent to specifying '--file-header', '--program-headers',
- '--sections', '--symbols', '--relocs', '--dynamic', '--notes',
- '--version-info', '--arch-specific', '--unwind', '--section-groups'
- and '--histogram'.
-
- Note - this option does not enable '--use-dynamic' itself, so if
- that option is not present on the command line then dynamic symbols
- and dynamic relocs will not be displayed.
-
- '-h'
- '--file-header'
- Displays the information contained in the ELF header at the start
- of the file.
-
- '-l'
- '--program-headers'
- '--segments'
- Displays the information contained in the file's segment headers,
- if it has any.
-
- '-S'
- '--sections'
- '--section-headers'
- Displays the information contained in the file's section headers,
- if it has any.
-
- '-g'
- '--section-groups'
- Displays the information contained in the file's section groups, if
- it has any.
-
- '-t'
- '--section-details'
- Displays the detailed section information. Implies '-S'.
-
- '-s'
- '--symbols'
- '--syms'
- Displays the entries in symbol table section of the file, if it has
- one. If a symbol has version information associated with it then
- this is displayed as well. The version string is displayed as a
- suffix to the symbol name, preceeded by an @ character. For
- example 'foo@VER_1'. If the version is the default version to be
- used when resolving unversioned references to the symbol then it is
- displayed as a suffix preceeded by two @ characters. For example
- 'foo@@VER_2'.
-
- '--dyn-syms'
- Displays the entries in dynamic symbol table section of the file,
- if it has one. The output format is the same as the format used by
- the '--syms' option.
-
- '-e'
- '--headers'
- Display all the headers in the file. Equivalent to '-h -l -S'.
-
- '-n'
- '--notes'
- Displays the contents of the NOTE segments and/or sections, if any.
-
- '-r'
- '--relocs'
- Displays the contents of the file's relocation section, if it has
- one.
-
- '-u'
- '--unwind'
- Displays the contents of the file's unwind section, if it has one.
- Only the unwind sections for IA64 ELF files, as well as ARM unwind
- tables ('.ARM.exidx' / '.ARM.extab') are currently supported. If
- support is not yet implemented for your architecture you could try
- dumping the contents of the .EH_FRAMES section using the
- '--debug-dump=frames' or '--debug-dump=frames-interp' options.
-
- '-d'
- '--dynamic'
- Displays the contents of the file's dynamic section, if it has one.
-
- '-V'
- '--version-info'
- Displays the contents of the version sections in the file, it they
- exist.
-
- '-A'
- '--arch-specific'
- Displays architecture-specific information in the file, if there is
- any.
-
- '-D'
- '--use-dynamic'
- When displaying symbols, this option makes 'readelf' use the symbol
- hash tables in the file's dynamic section, rather than the symbol
- table sections.
-
- When displaying relocations, this option makes 'readelf' display
- the dynamic relocations rather than the static relocations.
-
- '-L'
- '--lint'
- '--enable-checks'
- Displays warning messages about possible problems with the file(s)
- being examined. If used on its own then all of the contents of the
- file(s) will be examined. If used with one of the dumping options
- then the warning messages will only be produced for the things
- being displayed.
-
- '-x <number or name>'
- '--hex-dump=<number or name>'
- Displays the contents of the indicated section as a hexadecimal
- bytes. A number identifies a particular section by index in the
- section table; any other string identifies all sections with that
- name in the object file.
-
- '-R <number or name>'
- '--relocated-dump=<number or name>'
- Displays the contents of the indicated section as a hexadecimal
- bytes. A number identifies a particular section by index in the
- section table; any other string identifies all sections with that
- name in the object file. The contents of the section will be
- relocated before they are displayed.
-
- '-p <number or name>'
- '--string-dump=<number or name>'
- Displays the contents of the indicated section as printable
- strings. A number identifies a particular section by index in the
- section table; any other string identifies all sections with that
- name in the object file.
-
- '-z'
- '--decompress'
- Requests that the section(s) being dumped by 'x', 'R' or 'p'
- options are decompressed before being displayed. If the section(s)
- are not compressed then they are displayed as is.
-
- '-c'
- '--archive-index'
- Displays the file symbol index information contained in the header
- part of binary archives. Performs the same function as the 't'
- command to 'ar', but without using the BFD library. *Note ar::.
-
- '-w[lLiaprmfFsOoRtUuTgAckK]'
- '--debug-dump[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]'
-
- Displays the contents of the DWARF debug sections in the file, if
- any are present. Compressed debug sections are automatically
- decompressed (temporarily) before they are displayed. If one or
- more of the optional letters or words follows the switch then only
- those type(s) of data will be dumped. The letters and words refer
- to the following information:
-
- 'a'
- '=abbrev'
- Displays the contents of the '.debug_abbrev' section.
-
- 'A'
- '=addr'
- Displays the contents of the '.debug_addr' section.
-
- 'c'
- '=cu_index'
- Displays the contents of the '.debug_cu_index' and/or
- '.debug_tu_index' sections.
-
- 'f'
- '=frames'
- Display the raw contents of a '.debug_frame' section.
-
- 'F'
- '=frame-interp'
- Display the interpreted contents of a '.debug_frame' section.
-
- 'g'
- '=gdb_index'
- Displays the contents of the '.gdb_index' and/or
- '.debug_names' sections.
-
- 'i'
- '=info'
- Displays the contents of the '.debug_info' section. Note: the
- output from this option can also be restricted by the use of
- the '--dwarf-depth' and '--dwarf-start' options.
-
- 'k'
- '=links'
- Displays the contents of the '.gnu_debuglink' and/or
- '.gnu_debugaltlink' sections. Also displays any links to
- separate dwarf object files (dwo), if they are specified by
- the DW_AT_GNU_dwo_name or DW_AT_dwo_name attributes in the
- '.debug_info' section.
-
- 'K'
- '=follow-links'
- Display the contents of any selected debug sections that are
- found in linked, separate debug info file(s). This can result
- in multiple versions of the same debug section being displayed
- if it exists in more than one file.
-
- In addition, when displaying DWARF attributes, if a form is
- found that references the separate debug info file, then the
- referenced contents will also be displayed.
-
- 'l'
- '=rawline'
- Displays the contents of the '.debug_line' section in a raw
- format.
-
- 'L'
- '=decodedline'
- Displays the interpreted contents of the '.debug_line'
- section.
-
- 'm'
- '=macro'
- Displays the contents of the '.debug_macro' and/or
- '.debug_macinfo' sections.
-
- 'o'
- '=loc'
- Displays the contents of the '.debug_loc' and/or
- '.debug_loclists' sections.
-
- 'O'
- '=str-offsets'
- Displays the contents of the '.debug_str_offsets' section.
-
- 'p'
- '=pubnames'
- Displays the contents of the '.debug_pubnames' and/or
- '.debug_gnu_pubnames' sections.
-
- 'r'
- '=aranges'
- Displays the contents of the '.debug_aranges' section.
-
- 'R'
- '=Ranges'
- Displays the contents of the '.debug_ranges' and/or
- '.debug_rnglists' sections.
-
- 's'
- '=str'
- Displays the contents of the '.debug_str', '.debug_line_str'
- and/or '.debug_str_offsets' sections.
-
- 't'
- '=pubtype'
- Displays the contents of the '.debug_pubtypes' and/or
- '.debug_gnu_pubtypes' sections.
-
- 'T'
- '=trace_aranges'
- Displays the contents of the '.trace_aranges' section.
-
- 'u'
- '=trace_abbrev'
- Displays the contents of the '.trace_abbrev' section.
-
- 'U'
- '=trace_info'
- Displays the contents of the '.trace_info' section.
-
- Note: displaying the contents of '.debug_static_funcs',
- '.debug_static_vars' and 'debug_weaknames' sections is not
- currently supported.
-
- '--dwarf-depth=N'
- Limit the dump of the '.debug_info' section to N children. This is
- only useful with '--debug-dump=info'. The default is to print all
- DIEs; the special value 0 for N will also have this effect.
-
- With a non-zero value for N, DIEs at or deeper than N levels will
- not be printed. The range for N is zero-based.
-
- '--dwarf-start=N'
- Print only DIEs beginning with the DIE numbered N. This is only
- useful with '--debug-dump=info'.
-
- If specified, this option will suppress printing of any header
- information and all DIEs before the DIE numbered N. Only siblings
- and children of the specified DIE will be printed.
-
- This can be used in conjunction with '--dwarf-depth'.
-
- '--ctf=SECTION'
-
- Display the contents of the specified CTF section. CTF sections
- themselves contain many subsections, all of which are displayed in
- order.
-
- '--ctf-parent=SECTION'
-
- Specify the name of another section from which the CTF dictionary
- can inherit types. (If none is specified, we assume the CTF
- dictionary inherits types from the default-named member of the
- archive contained within this section.)
- '--ctf-symbols=SECTION'
- '--ctf-strings=SECTION'
- Specify the name of another section from which the CTF file can
- inherit strings and symbols. By default, the '.symtab' and its
- linked string table are used.
-
- If either of '--ctf-symbols' or '--ctf-strings' is specified, the
- other must be specified as well.
-
- '-I'
- '--histogram'
- Display a histogram of bucket list lengths when displaying the
- contents of the symbol tables.
-
- '-v'
- '--version'
- Display the version number of readelf.
-
- '-W'
- '--wide'
- Don't break output lines to fit into 80 columns. By default
- 'readelf' breaks section header and segment listing lines for
- 64-bit ELF files, so that they fit into 80 columns. This option
- causes 'readelf' to print each section header resp. each segment
- one a single line, which is far more readable on terminals wider
- than 80 columns.
-
- '-T'
- '--silent-truncation'
- Normally when readelf is displaying a symbol name, and it has to
- truncate the name to fit into an 80 column display, it will add a
- suffix of '[...]' to the name. This command line option disables
- this behaviour, allowing 5 more characters of the name to be
- displayed and restoring the old behaviour of readelf (prior to
- release 2.35).
-
- '-H'
- '--help'
- Display the command-line options understood by 'readelf'.
-
-
- File: binutils.info, Node: elfedit, Next: Common Options, Prev: readelf, Up: Top
-
- 15 elfedit
- **********
-
- elfedit [--input-mach=MACHINE]
- [--input-type=TYPE]
- [--input-osabi=OSABI]
- --output-mach=MACHINE
- --output-type=TYPE
- --output-osabi=OSABI
- --enable-x86-feature=FEATURE
- --disable-x86-feature=FEATURE
- [-v|--version]
- [-h|--help]
- ELFFILE...
-
- 'elfedit' updates the ELF header and program property of ELF files
- which have the matching ELF machine and file types. The options control
- how and which fields in the ELF header and program property should be
- updated.
-
- ELFFILE... are the ELF files to be updated. 32-bit and 64-bit ELF
- files are supported, as are archives containing ELF files.
-
- The long and short forms of options, shown here as alternatives, are
- equivalent. At least one of the '--output-mach', '--output-type',
- '--output-osabi', '--enable-x86-feature' and '--disable-x86-feature'
- options must be given.
-
- '--input-mach=MACHINE'
- Set the matching input ELF machine type to MACHINE. If
- '--input-mach' isn't specified, it will match any ELF machine
- types.
-
- The supported ELF machine types are, I386, IAMCU, L1OM, K1OM and
- X86-64.
-
- '--output-mach=MACHINE'
- Change the ELF machine type in the ELF header to MACHINE. The
- supported ELF machine types are the same as '--input-mach'.
-
- '--input-type=TYPE'
- Set the matching input ELF file type to TYPE. If '--input-type'
- isn't specified, it will match any ELF file types.
-
- The supported ELF file types are, REL, EXEC and DYN.
-
- '--output-type=TYPE'
- Change the ELF file type in the ELF header to TYPE. The supported
- ELF types are the same as '--input-type'.
-
- '--input-osabi=OSABI'
- Set the matching input ELF file OSABI to OSABI. If '--input-osabi'
- isn't specified, it will match any ELF OSABIs.
-
- The supported ELF OSABIs are, NONE, HPUX, NETBSD, GNU, LINUX (alias
- for GNU), SOLARIS, AIX, IRIX, FREEBSD, TRU64, MODESTO, OPENBSD,
- OPENVMS, NSK, AROS and FENIXOS.
-
- '--output-osabi=OSABI'
- Change the ELF OSABI in the ELF header to OSABI. The supported ELF
- OSABI are the same as '--input-osabi'.
-
- '--enable-x86-feature=FEATURE'
- Set the FEATURE bit in program property in EXEC or DYN ELF files
- with machine types of I386 or X86-64. The supported features are,
- IBT and SHSTK.
-
- '--disable-x86-feature=FEATURE'
- Clear the FEATURE bit in program property in EXEC or DYN ELF files
- with machine types of I386 or X86-64. The supported features are
- the same as '--enable-x86-feature'.
-
- Note: '--enable-x86-feature' and '--disable-x86-feature' are
- available only on hosts with 'mmap' support.
-
- '-v'
- '--version'
- Display the version number of 'elfedit'.
-
- '-h'
- '--help'
- Display the command-line options understood by 'elfedit'.
-
-
- File: binutils.info, Node: Common Options, Next: Selecting the Target System, Prev: elfedit, Up: Top
-
- 16 Common Options
- *****************
-
- The following command-line options are supported by all of the programs
- described in this manual.
-
- '@FILE'
- Read command-line options from FILE. The options read are inserted
- in place of the original @FILE option. If FILE does not exist, or
- cannot be read, then the option will be treated literally, and not
- removed.
-
- Options in FILE are separated by whitespace. A whitespace
- character may be included in an option by surrounding the entire
- option in either single or double quotes. Any character (including
- a backslash) may be included by prefixing the character to be
- included with a backslash. The FILE may itself contain additional
- @FILE options; any such options will be processed recursively.
-
- '--help'
- Display the command-line options supported by the program.
-
- '--version'
- Display the version number of the program.
-
-
- File: binutils.info, Node: Selecting the Target System, Next: debuginfod, Prev: Common Options, Up: Top
-
- 17 Selecting the Target System
- ******************************
-
- You can specify two aspects of the target system to the GNU binary file
- utilities, each in several ways:
-
- * the target
-
- * the architecture
-
- In the following summaries, the lists of ways to specify values are
- in order of decreasing precedence. The ways listed first override those
- listed later.
-
- The commands to list valid values only list the values for which the
- programs you are running were configured. If they were configured with
- '--enable-targets=all', the commands list most of the available values,
- but a few are left out; not all targets can be configured in at once
- because some of them can only be configured "native" (on hosts with the
- same type as the target system).
-
- * Menu:
-
- * Target Selection::
- * Architecture Selection::
-
-
- File: binutils.info, Node: Target Selection, Next: Architecture Selection, Up: Selecting the Target System
-
- 17.1 Target Selection
- =====================
-
- A "target" is an object file format. A given target may be supported
- for multiple architectures (*note Architecture Selection::). A target
- selection may also have variations for different operating systems or
- architectures.
-
- The command to list valid target values is 'objdump -i' (the first
- column of output contains the relevant information).
-
- Some sample values are: 'a.out-hp300bsd', 'ecoff-littlemips',
- 'a.out-sunos-big'.
-
- You can also specify a target using a configuration triplet. This is
- the same sort of name that is passed to 'configure' to specify a target.
- When you use a configuration triplet as an argument, it must be fully
- canonicalized. You can see the canonical version of a triplet by
- running the shell script 'config.sub' which is included with the
- sources.
-
- Some sample configuration triplets are: 'm68k-hp-bsd',
- 'mips-dec-ultrix', 'sparc-sun-sunos'.
-
- 'objdump' Target
- ----------------
-
- Ways to specify:
-
- 1. command-line option: '-b' or '--target'
-
- 2. environment variable 'GNUTARGET'
-
- 3. deduced from the input file
-
- 'objcopy' and 'strip' Input Target
- ----------------------------------
-
- Ways to specify:
-
- 1. command-line options: '-I' or '--input-target', or '-F' or
- '--target'
-
- 2. environment variable 'GNUTARGET'
-
- 3. deduced from the input file
-
- 'objcopy' and 'strip' Output Target
- -----------------------------------
-
- Ways to specify:
-
- 1. command-line options: '-O' or '--output-target', or '-F' or
- '--target'
-
- 2. the input target (see "'objcopy' and 'strip' Input Target" above)
-
- 3. environment variable 'GNUTARGET'
-
- 4. deduced from the input file
-
- 'nm', 'size', and 'strings' Target
- ----------------------------------
-
- Ways to specify:
-
- 1. command-line option: '--target'
-
- 2. environment variable 'GNUTARGET'
-
- 3. deduced from the input file
-
-
- File: binutils.info, Node: Architecture Selection, Prev: Target Selection, Up: Selecting the Target System
-
- 17.2 Architecture Selection
- ===========================
-
- An "architecture" is a type of CPU on which an object file is to run.
- Its name may contain a colon, separating the name of the processor
- family from the name of the particular CPU.
-
- The command to list valid architecture values is 'objdump -i' (the
- second column contains the relevant information).
-
- Sample values: 'm68k:68020', 'mips:3000', 'sparc'.
-
- 'objdump' Architecture
- ----------------------
-
- Ways to specify:
-
- 1. command-line option: '-m' or '--architecture'
-
- 2. deduced from the input file
-
- 'objcopy', 'nm', 'size', 'strings' Architecture
- -----------------------------------------------
-
- Ways to specify:
-
- 1. deduced from the input file
-
-
- File: binutils.info, Node: debuginfod, Next: Reporting Bugs, Prev: Selecting the Target System, Up: Top
-
- 18 debuginfod
- *************
-
- debuginfod is a web service that indexes ELF/DWARF debugging resources
- by build-id and serves them over HTTP.
-
- Binutils can be built with the debuginfod client library
- 'libdebuginfod' using the '--with-debuginfod' configure option. This
- option is enabled by default if 'libdebuginfod' is installed and found
- at configure time. This allows 'objdump' and 'readelf' to automatically
- query debuginfod servers for separate debug files when the files are
- otherwise not found.
-
- debuginfod is packaged with elfutils, starting with version 0.178.
- You can get the latest version from 'https://sourceware.org/elfutils/'.
-
-
- File: binutils.info, Node: Reporting Bugs, Next: GNU Free Documentation License, Prev: debuginfod, Up: Top
-
- 19 Reporting Bugs
- *****************
-
- Your bug reports play an essential role in making the binary utilities
- reliable.
-
- Reporting a bug may help you by bringing a solution to your problem,
- or it may not. But in any case the principal function of a bug report
- is to help the entire community by making the next version of the binary
- utilities work better. Bug reports are your contribution to their
- maintenance.
-
- In order for a bug report to serve its purpose, you must include the
- information that enables us to fix the bug.
-
- * Menu:
-
- * Bug Criteria:: Have you found a bug?
- * Bug Reporting:: How to report bugs
-
-
- File: binutils.info, Node: Bug Criteria, Next: Bug Reporting, Up: Reporting Bugs
-
- 19.1 Have You Found a Bug?
- ==========================
-
- If you are not sure whether you have found a bug, here are some
- guidelines:
-
- * If a binary utility gets a fatal signal, for any input whatever,
- that is a bug. Reliable utilities never crash.
-
- * If a binary utility produces an error message for valid input, that
- is a bug.
-
- * If you are an experienced user of binary utilities, your
- suggestions for improvement are welcome in any case.
-
-
- File: binutils.info, Node: Bug Reporting, Prev: Bug Criteria, Up: Reporting Bugs
-
- 19.2 How to Report Bugs
- =======================
-
- A number of companies and individuals offer support for GNU products.
- If you obtained the binary utilities from a support organization, we
- recommend you contact that organization first.
-
- You can find contact information for many support companies and
- individuals in the file 'etc/SERVICE' in the GNU Emacs distribution.
-
- In any event, we also recommend that you send bug reports for the
- binary utilities to <http://www.sourceware.org/bugzilla/>.
-
- The fundamental principle of reporting bugs usefully is this: *report
- all the facts*. If you are not sure whether to state a fact or leave it
- out, state it!
-
- Often people omit facts because they think they know what causes the
- problem and assume that some details do not matter. Thus, you might
- assume that the name of a file you use in an example does not matter.
- Well, probably it does not, but one cannot be sure. Perhaps the bug is
- a stray memory reference which happens to fetch from the location where
- that pathname is stored in memory; perhaps, if the pathname were
- different, the contents of that location would fool the utility into
- doing the right thing despite the bug. Play it safe and give a
- specific, complete example. That is the easiest thing for you to do,
- and the most helpful.
-
- Keep in mind that the purpose of a bug report is to enable us to fix
- the bug if it is new to us. Therefore, always write your bug reports on
- the assumption that the bug has not been reported previously.
-
- Sometimes people give a few sketchy facts and ask, "Does this ring a
- bell?" This cannot help us fix a bug, so it is basically useless. We
- respond by asking for enough details to enable us to investigate. You
- might as well expedite matters by sending them to begin with.
-
- To enable us to fix the bug, you should include all these things:
-
- * The version of the utility. Each utility announces it if you start
- it with the '--version' argument.
-
- Without this, we will not know whether there is any point in
- looking for the bug in the current version of the binary utilities.
-
- * Any patches you may have applied to the source, including any
- patches made to the 'BFD' library.
-
- * The type of machine you are using, and the operating system name
- and version number.
-
- * What compiler (and its version) was used to compile the
- utilities--e.g. "'gcc-2.7'".
-
- * The command arguments you gave the utility to observe the bug. To
- guarantee you will not omit something important, list them all. A
- copy of the Makefile (or the output from make) is sufficient.
-
- If we were to try to guess the arguments, we would probably guess
- wrong and then we might not encounter the bug.
-
- * A complete input file, or set of input files, that will reproduce
- the bug. If the utility is reading an object file or files, then
- it is generally most helpful to send the actual object files.
-
- If the source files were produced exclusively using GNU programs
- (e.g., 'gcc', 'gas', and/or the GNU 'ld'), then it may be OK to
- send the source files rather than the object files. In this case,
- be sure to say exactly what version of 'gcc', or whatever, was used
- to produce the object files. Also say how 'gcc', or whatever, was
- configured.
-
- * A description of what behavior you observe that you believe is
- incorrect. For example, "It gets a fatal signal."
-
- Of course, if the bug is that the utility gets a fatal signal, then
- we will certainly notice it. But if the bug is incorrect output,
- we might not notice unless it is glaringly wrong. You might as
- well not give us a chance to make a mistake.
-
- Even if the problem you experience is a fatal signal, you should
- still say so explicitly. Suppose something strange is going on,
- such as your copy of the utility is out of sync, or you have
- encountered a bug in the C library on your system. (This has
- happened!) Your copy might crash and ours would not. If you told
- us to expect a crash, then when ours fails to crash, we would know
- that the bug was not happening for us. If you had not told us to
- expect a crash, then we would not be able to draw any conclusion
- from our observations.
-
- * If you wish to suggest changes to the source, send us context
- diffs, as generated by 'diff' with the '-u', '-c', or '-p' option.
- Always send diffs from the old file to the new file. If you wish
- to discuss something in the 'ld' source, refer to it by context,
- not by line number.
-
- The line numbers in our development sources will not match those in
- your sources. Your line numbers would convey no useful information
- to us.
-
- Here are some things that are not necessary:
-
- * A description of the envelope of the bug.
-
- Often people who encounter a bug spend a lot of time investigating
- which changes to the input file will make the bug go away and which
- changes will not affect it.
-
- This is often time consuming and not very useful, because the way
- we will find the bug is by running a single example under the
- debugger with breakpoints, not by pure deduction from a series of
- examples. We recommend that you save your time for something else.
-
- Of course, if you can find a simpler example to report _instead_ of
- the original one, that is a convenience for us. Errors in the
- output will be easier to spot, running under the debugger will take
- less time, and so on.
-
- However, simplification is not vital; if you do not want to do
- this, report the bug anyway and send us the entire test case you
- used.
-
- * A patch for the bug.
-
- A patch for the bug does help us if it is a good one. But do not
- omit the necessary information, such as the test case, on the
- assumption that a patch is all we need. We might see problems with
- your patch and decide to fix the problem another way, or we might
- not understand it at all.
-
- Sometimes with programs as complicated as the binary utilities it
- is very hard to construct an example that will make the program
- follow a certain path through the code. If you do not send us the
- example, we will not be able to construct one, so we will not be
- able to verify that the bug is fixed.
-
- And if we cannot understand what bug you are trying to fix, or why
- your patch should be an improvement, we will not install it. A
- test case will help us to understand.
-
- * A guess about what the bug is or what it depends on.
-
- Such guesses are usually wrong. Even we cannot guess right about
- such things without first using the debugger to find the facts.
-
-
- File: binutils.info, Node: GNU Free Documentation License, Next: Binutils Index, Prev: Reporting Bugs, Up: Top
-
- Appendix A GNU Free Documentation License
- *****************************************
-
- Version 1.3, 3 November 2008
-
- Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
- <http://fsf.org/>
-
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- 0. PREAMBLE
-
- The purpose of this License is to make a manual, textbook, or other
- functional and useful document "free" in the sense of freedom: to
- assure everyone the effective freedom to copy and redistribute it,
- with or without modifying it, either commercially or
- noncommercially. Secondarily, this License preserves for the
- author and publisher a way to get credit for their work, while not
- being considered responsible for modifications made by others.
-
- This License is a kind of "copyleft", which means that derivative
- works of the document must themselves be free in the same sense.
- It complements the GNU General Public License, which is a copyleft
- license designed for free software.
-
- We have designed this License in order to use it for manuals for
- free software, because free software needs free documentation: a
- free program should come with manuals providing the same freedoms
- that the software does. But this License is not limited to
- software manuals; it can be used for any textual work, regardless
- of subject matter or whether it is published as a printed book. We
- recommend this License principally for works whose purpose is
- instruction or reference.
-
- 1. APPLICABILITY AND DEFINITIONS
-
- This License applies to any manual or other work, in any medium,
- that contains a notice placed by the copyright holder saying it can
- be distributed under the terms of this License. Such a notice
- grants a world-wide, royalty-free license, unlimited in duration,
- to use that work under the conditions stated herein. The
- "Document", below, refers to any such manual or work. Any member
- of the public is a licensee, and is addressed as "you". You accept
- the license if you copy, modify or distribute the work in a way
- requiring permission under copyright law.
-
- A "Modified Version" of the Document means any work containing the
- Document or a portion of it, either copied verbatim, or with
- modifications and/or translated into another language.
-
- A "Secondary Section" is a named appendix or a front-matter section
- of the Document that deals exclusively with the relationship of the
- publishers or authors of the Document to the Document's overall
- subject (or to related matters) and contains nothing that could
- fall directly within that overall subject. (Thus, if the Document
- is in part a textbook of mathematics, a Secondary Section may not
- explain any mathematics.) The relationship could be a matter of
- historical connection with the subject or with related matters, or
- of legal, commercial, philosophical, ethical or political position
- regarding them.
-
- The "Invariant Sections" are certain Secondary Sections whose
- titles are designated, as being those of Invariant Sections, in the
- notice that says that the Document is released under this License.
- If a section does not fit the above definition of Secondary then it
- is not allowed to be designated as Invariant. The Document may
- contain zero Invariant Sections. If the Document does not identify
- any Invariant Sections then there are none.
-
- The "Cover Texts" are certain short passages of text that are
- listed, as Front-Cover Texts or Back-Cover Texts, in the notice
- that says that the Document is released under this License. A
- Front-Cover Text may be at most 5 words, and a Back-Cover Text may
- be at most 25 words.
-
- A "Transparent" copy of the Document means a machine-readable copy,
- represented in a format whose specification is available to the
- general public, that is suitable for revising the document
- straightforwardly with generic text editors or (for images composed
- of pixels) generic paint programs or (for drawings) some widely
- available drawing editor, and that is suitable for input to text
- formatters or for automatic translation to a variety of formats
- suitable for input to text formatters. A copy made in an otherwise
- Transparent file format whose markup, or absence of markup, has
- been arranged to thwart or discourage subsequent modification by
- readers is not Transparent. An image format is not Transparent if
- used for any substantial amount of text. A copy that is not
- "Transparent" is called "Opaque".
-
- Examples of suitable formats for Transparent copies include plain
- ASCII without markup, Texinfo input format, LaTeX input format,
- SGML or XML using a publicly available DTD, and standard-conforming
- simple HTML, PostScript or PDF designed for human modification.
- Examples of transparent image formats include PNG, XCF and JPG.
- Opaque formats include proprietary formats that can be read and
- edited only by proprietary word processors, SGML or XML for which
- the DTD and/or processing tools are not generally available, and
- the machine-generated HTML, PostScript or PDF produced by some word
- processors for output purposes only.
-
- The "Title Page" means, for a printed book, the title page itself,
- plus such following pages as are needed to hold, legibly, the
- material this License requires to appear in the title page. For
- works in formats which do not have any title page as such, "Title
- Page" means the text near the most prominent appearance of the
- work's title, preceding the beginning of the body of the text.
-
- The "publisher" means any person or entity that distributes copies
- of the Document to the public.
-
- A section "Entitled XYZ" means a named subunit of the Document
- whose title either is precisely XYZ or contains XYZ in parentheses
- following text that translates XYZ in another language. (Here XYZ
- stands for a specific section name mentioned below, such as
- "Acknowledgements", "Dedications", "Endorsements", or "History".)
- To "Preserve the Title" of such a section when you modify the
- Document means that it remains a section "Entitled XYZ" according
- to this definition.
-
- The Document may include Warranty Disclaimers next to the notice
- which states that this License applies to the Document. These
- Warranty Disclaimers are considered to be included by reference in
- this License, but only as regards disclaiming warranties: any other
- implication that these Warranty Disclaimers may have is void and
- has no effect on the meaning of this License.
-
- 2. VERBATIM COPYING
-
- You may copy and distribute the Document in any medium, either
- commercially or noncommercially, provided that this License, the
- copyright notices, and the license notice saying this License
- applies to the Document are reproduced in all copies, and that you
- add no other conditions whatsoever to those of this License. You
- may not use technical measures to obstruct or control the reading
- or further copying of the copies you make or distribute. However,
- you may accept compensation in exchange for copies. If you
- distribute a large enough number of copies you must also follow the
- conditions in section 3.
-
- You may also lend copies, under the same conditions stated above,
- and you may publicly display copies.
-
- 3. COPYING IN QUANTITY
-
- If you publish printed copies (or copies in media that commonly
- have printed covers) of the Document, numbering more than 100, and
- the Document's license notice requires Cover Texts, you must
- enclose the copies in covers that carry, clearly and legibly, all
- these Cover Texts: Front-Cover Texts on the front cover, and
- Back-Cover Texts on the back cover. Both covers must also clearly
- and legibly identify you as the publisher of these copies. The
- front cover must present the full title with all words of the title
- equally prominent and visible. You may add other material on the
- covers in addition. Copying with changes limited to the covers, as
- long as they preserve the title of the Document and satisfy these
- conditions, can be treated as verbatim copying in other respects.
-
- If the required texts for either cover are too voluminous to fit
- legibly, you should put the first ones listed (as many as fit
- reasonably) on the actual cover, and continue the rest onto
- adjacent pages.
-
- If you publish or distribute Opaque copies of the Document
- numbering more than 100, you must either include a machine-readable
- Transparent copy along with each Opaque copy, or state in or with
- each Opaque copy a computer-network location from which the general
- network-using public has access to download using public-standard
- network protocols a complete Transparent copy of the Document, free
- of added material. If you use the latter option, you must take
- reasonably prudent steps, when you begin distribution of Opaque
- copies in quantity, to ensure that this Transparent copy will
- remain thus accessible at the stated location until at least one
- year after the last time you distribute an Opaque copy (directly or
- through your agents or retailers) of that edition to the public.
-
- It is requested, but not required, that you contact the authors of
- the Document well before redistributing any large number of copies,
- to give them a chance to provide you with an updated version of the
- Document.
-
- 4. MODIFICATIONS
-
- You may copy and distribute a Modified Version of the Document
- under the conditions of sections 2 and 3 above, provided that you
- release the Modified Version under precisely this License, with the
- Modified Version filling the role of the Document, thus licensing
- distribution and modification of the Modified Version to whoever
- possesses a copy of it. In addition, you must do these things in
- the Modified Version:
-
- A. Use in the Title Page (and on the covers, if any) a title
- distinct from that of the Document, and from those of previous
- versions (which should, if there were any, be listed in the
- History section of the Document). You may use the same title
- as a previous version if the original publisher of that
- version gives permission.
-
- B. List on the Title Page, as authors, one or more persons or
- entities responsible for authorship of the modifications in
- the Modified Version, together with at least five of the
- principal authors of the Document (all of its principal
- authors, if it has fewer than five), unless they release you
- from this requirement.
-
- C. State on the Title page the name of the publisher of the
- Modified Version, as the publisher.
-
- D. Preserve all the copyright notices of the Document.
-
- E. Add an appropriate copyright notice for your modifications
- adjacent to the other copyright notices.
-
- F. Include, immediately after the copyright notices, a license
- notice giving the public permission to use the Modified
- Version under the terms of this License, in the form shown in
- the Addendum below.
-
- G. Preserve in that license notice the full lists of Invariant
- Sections and required Cover Texts given in the Document's
- license notice.
-
- H. Include an unaltered copy of this License.
-
- I. Preserve the section Entitled "History", Preserve its Title,
- and add to it an item stating at least the title, year, new
- authors, and publisher of the Modified Version as given on the
- Title Page. If there is no section Entitled "History" in the
- Document, create one stating the title, year, authors, and
- publisher of the Document as given on its Title Page, then add
- an item describing the Modified Version as stated in the
- previous sentence.
-
- J. Preserve the network location, if any, given in the Document
- for public access to a Transparent copy of the Document, and
- likewise the network locations given in the Document for
- previous versions it was based on. These may be placed in the
- "History" section. You may omit a network location for a work
- that was published at least four years before the Document
- itself, or if the original publisher of the version it refers
- to gives permission.
-
- K. For any section Entitled "Acknowledgements" or "Dedications",
- Preserve the Title of the section, and preserve in the section
- all the substance and tone of each of the contributor
- acknowledgements and/or dedications given therein.
-
- L. Preserve all the Invariant Sections of the Document, unaltered
- in their text and in their titles. Section numbers or the
- equivalent are not considered part of the section titles.
-
- M. Delete any section Entitled "Endorsements". Such a section
- may not be included in the Modified Version.
-
- N. Do not retitle any existing section to be Entitled
- "Endorsements" or to conflict in title with any Invariant
- Section.
-
- O. Preserve any Warranty Disclaimers.
-
- If the Modified Version includes new front-matter sections or
- appendices that qualify as Secondary Sections and contain no
- material copied from the Document, you may at your option designate
- some or all of these sections as invariant. To do this, add their
- titles to the list of Invariant Sections in the Modified Version's
- license notice. These titles must be distinct from any other
- section titles.
-
- You may add a section Entitled "Endorsements", provided it contains
- nothing but endorsements of your Modified Version by various
- parties--for example, statements of peer review or that the text
- has been approved by an organization as the authoritative
- definition of a standard.
-
- You may add a passage of up to five words as a Front-Cover Text,
- and a passage of up to 25 words as a Back-Cover Text, to the end of
- the list of Cover Texts in the Modified Version. Only one passage
- of Front-Cover Text and one of Back-Cover Text may be added by (or
- through arrangements made by) any one entity. If the Document
- already includes a cover text for the same cover, previously added
- by you or by arrangement made by the same entity you are acting on
- behalf of, you may not add another; but you may replace the old
- one, on explicit permission from the previous publisher that added
- the old one.
-
- The author(s) and publisher(s) of the Document do not by this
- License give permission to use their names for publicity for or to
- assert or imply endorsement of any Modified Version.
-
- 5. COMBINING DOCUMENTS
-
- You may combine the Document with other documents released under
- this License, under the terms defined in section 4 above for
- modified versions, provided that you include in the combination all
- of the Invariant Sections of all of the original documents,
- unmodified, and list them all as Invariant Sections of your
- combined work in its license notice, and that you preserve all
- their Warranty Disclaimers.
-
- The combined work need only contain one copy of this License, and
- multiple identical Invariant Sections may be replaced with a single
- copy. If there are multiple Invariant Sections with the same name
- but different contents, make the title of each such section unique
- by adding at the end of it, in parentheses, the name of the
- original author or publisher of that section if known, or else a
- unique number. Make the same adjustment to the section titles in
- the list of Invariant Sections in the license notice of the
- combined work.
-
- In the combination, you must combine any sections Entitled
- "History" in the various original documents, forming one section
- Entitled "History"; likewise combine any sections Entitled
- "Acknowledgements", and any sections Entitled "Dedications". You
- must delete all sections Entitled "Endorsements."
-
- 6. COLLECTIONS OF DOCUMENTS
-
- You may make a collection consisting of the Document and other
- documents released under this License, and replace the individual
- copies of this License in the various documents with a single copy
- that is included in the collection, provided that you follow the
- rules of this License for verbatim copying of each of the documents
- in all other respects.
-
- You may extract a single document from such a collection, and
- distribute it individually under this License, provided you insert
- a copy of this License into the extracted document, and follow this
- License in all other respects regarding verbatim copying of that
- document.
-
- 7. AGGREGATION WITH INDEPENDENT WORKS
-
- A compilation of the Document or its derivatives with other
- separate and independent documents or works, in or on a volume of a
- storage or distribution medium, is called an "aggregate" if the
- copyright resulting from the compilation is not used to limit the
- legal rights of the compilation's users beyond what the individual
- works permit. When the Document is included in an aggregate, this
- License does not apply to the other works in the aggregate which
- are not themselves derivative works of the Document.
-
- If the Cover Text requirement of section 3 is applicable to these
- copies of the Document, then if the Document is less than one half
- of the entire aggregate, the Document's Cover Texts may be placed
- on covers that bracket the Document within the aggregate, or the
- electronic equivalent of covers if the Document is in electronic
- form. Otherwise they must appear on printed covers that bracket
- the whole aggregate.
-
- 8. TRANSLATION
-
- Translation is considered a kind of modification, so you may
- distribute translations of the Document under the terms of section
- 4. Replacing Invariant Sections with translations requires special
- permission from their copyright holders, but you may include
- translations of some or all Invariant Sections in addition to the
- original versions of these Invariant Sections. You may include a
- translation of this License, and all the license notices in the
- Document, and any Warranty Disclaimers, provided that you also
- include the original English version of this License and the
- original versions of those notices and disclaimers. In case of a
- disagreement between the translation and the original version of
- this License or a notice or disclaimer, the original version will
- prevail.
-
- If a section in the Document is Entitled "Acknowledgements",
- "Dedications", or "History", the requirement (section 4) to
- Preserve its Title (section 1) will typically require changing the
- actual title.
-
- 9. TERMINATION
-
- You may not copy, modify, sublicense, or distribute the Document
- except as expressly provided under this License. Any attempt
- otherwise to copy, modify, sublicense, or distribute it is void,
- and will automatically terminate your rights under this License.
-
- However, if you cease all violation of this License, then your
- license from a particular copyright holder is reinstated (a)
- provisionally, unless and until the copyright holder explicitly and
- finally terminates your license, and (b) permanently, if the
- copyright holder fails to notify you of the violation by some
- reasonable means prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
- reinstated permanently if the copyright holder notifies you of the
- violation by some reasonable means, this is the first time you have
- received notice of violation of this License (for any work) from
- that copyright holder, and you cure the violation prior to 30 days
- after your receipt of the notice.
-
- Termination of your rights under this section does not terminate
- the licenses of parties who have received copies or rights from you
- under this License. If your rights have been terminated and not
- permanently reinstated, receipt of a copy of some or all of the
- same material does not give you any rights to use it.
-
- 10. FUTURE REVISIONS OF THIS LICENSE
-
- The Free Software Foundation may publish new, revised versions of
- the GNU Free Documentation License from time to time. Such new
- versions will be similar in spirit to the present version, but may
- differ in detail to address new problems or concerns. See
- <http://www.gnu.org/copyleft/>.
-
- Each version of the License is given a distinguishing version
- number. If the Document specifies that a particular numbered
- version of this License "or any later version" applies to it, you
- have the option of following the terms and conditions either of
- that specified version or of any later version that has been
- published (not as a draft) by the Free Software Foundation. If the
- Document does not specify a version number of this License, you may
- choose any version ever published (not as a draft) by the Free
- Software Foundation. If the Document specifies that a proxy can
- decide which future versions of this License can be used, that
- proxy's public statement of acceptance of a version permanently
- authorizes you to choose that version for the Document.
-
- 11. RELICENSING
-
- "Massive Multiauthor Collaboration Site" (or "MMC Site") means any
- World Wide Web server that publishes copyrightable works and also
- provides prominent facilities for anybody to edit those works. A
- public wiki that anybody can edit is an example of such a server.
- A "Massive Multiauthor Collaboration" (or "MMC") contained in the
- site means any set of copyrightable works thus published on the MMC
- site.
-
- "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
- license published by Creative Commons Corporation, a not-for-profit
- corporation with a principal place of business in San Francisco,
- California, as well as future copyleft versions of that license
- published by that same organization.
-
- "Incorporate" means to publish or republish a Document, in whole or
- in part, as part of another Document.
-
- An MMC is "eligible for relicensing" if it is licensed under this
- License, and if all works that were first published under this
- License somewhere other than this MMC, and subsequently
- incorporated in whole or in part into the MMC, (1) had no cover
- texts or invariant sections, and (2) were thus incorporated prior
- to November 1, 2008.
-
- The operator of an MMC Site may republish an MMC contained in the
- site under CC-BY-SA on the same site at any time before August 1,
- 2009, provided the MMC is eligible for relicensing.
-
- ADDENDUM: How to use this License for your documents
- ====================================================
-
- To use this License in a document you have written, include a copy of
- the License in the document and put the following copyright and license
- notices just after the title page:
-
- Copyright (C) YEAR YOUR NAME.
- Permission is granted to copy, distribute and/or modify this document
- under the terms of the GNU Free Documentation License, Version 1.3
- or any later version published by the Free Software Foundation;
- with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
- Texts. A copy of the license is included in the section entitled ``GNU
- Free Documentation License''.
-
- If you have Invariant Sections, Front-Cover Texts and Back-Cover
- Texts, replace the "with...Texts." line with this:
-
- with the Invariant Sections being LIST THEIR TITLES, with
- the Front-Cover Texts being LIST, and with the Back-Cover Texts
- being LIST.
-
- If you have Invariant Sections without Cover Texts, or some other
- combination of the three, merge those two alternatives to suit the
- situation.
-
- If your document contains nontrivial examples of program code, we
- recommend releasing these examples in parallel under your choice of free
- software license, such as the GNU General Public License, to permit
- their use in free software.
-
-
- File: binutils.info, Node: Binutils Index, Prev: GNU Free Documentation License, Up: Top
-
- Binutils Index
- **************
-
- �[index�]
- * Menu:
-
- * -enable-deterministic-archives: ar cmdline. (line 150)
- * -enable-deterministic-archives <1>: ar cmdline. (line 233)
- * -enable-deterministic-archives <2>: objcopy. (line 355)
- * -enable-deterministic-archives <3>: objcopy. (line 365)
- * -enable-deterministic-archives <4>: ranlib. (line 32)
- * -enable-deterministic-archives <5>: ranlib. (line 44)
- * -enable-deterministic-archives <6>: strip. (line 155)
- * -enable-deterministic-archives <7>: strip. (line 165)
- * .stab: objdump. (line 696)
- * Add prefix to absolute paths: objdump. (line 505)
- * addr2line: addr2line. (line 6)
- * address to file name and line number: addr2line. (line 6)
- * all header information, object file: objdump. (line 818)
- * ar: ar. (line 6)
- * ar compatibility: ar. (line 60)
- * architecture: objdump. (line 257)
- * architectures available: objdump. (line 242)
- * archive contents: ranlib. (line 6)
- * Archive file symbol index information: readelf. (line 194)
- * archive headers: objdump. (line 75)
- * archives: ar. (line 6)
- * base files: dlltool. (line 124)
- * bug criteria: Bug Criteria. (line 6)
- * bug reports: Bug Reporting. (line 6)
- * bugs: Reporting Bugs. (line 6)
- * bugs, reporting: Bug Reporting. (line 6)
- * c++filt: c++filt. (line 6)
- * changing object addresses: objcopy. (line 402)
- * changing section address: objcopy. (line 412)
- * changing section LMA: objcopy. (line 421)
- * changing section VMA: objcopy. (line 434)
- * changing start address: objcopy. (line 396)
- * collections of files: ar. (line 6)
- * Compact Type Format: objdump. (line 682)
- * Compact Type Format <1>: readelf. (line 342)
- * compatibility, ar: ar. (line 60)
- * contents of archive: ar cmdline. (line 97)
- * crash: Bug Criteria. (line 9)
- * creating archives: ar cmdline. (line 144)
- * creating thin archive: ar cmdline. (line 219)
- * CTF: objdump. (line 682)
- * CTF <1>: readelf. (line 342)
- * cxxfilt: c++filt. (line 16)
- * dates in archive: ar cmdline. (line 183)
- * debug symbols: objdump. (line 696)
- * debugging symbols: nm. (line 153)
- * deleting from archive: ar cmdline. (line 26)
- * demangling C++ symbols: c++filt. (line 6)
- * demangling in nm: nm. (line 161)
- * demangling in objdump: objdump. (line 103)
- * demangling in objdump <1>: addr2line. (line 86)
- * deterministic archives: ar cmdline. (line 150)
- * deterministic archives <1>: ar cmdline. (line 233)
- * deterministic archives <2>: objcopy. (line 355)
- * deterministic archives <3>: objcopy. (line 365)
- * deterministic archives <4>: ranlib. (line 32)
- * deterministic archives <5>: ranlib. (line 44)
- * deterministic archives <6>: strip. (line 155)
- * deterministic archives <7>: strip. (line 165)
- * disassembling object code: objdump. (line 144)
- * disassembly architecture: objdump. (line 257)
- * disassembly endianness: objdump. (line 192)
- * disassembly, with source: objdump. (line 494)
- * disassembly, with source <1>: objdump. (line 498)
- * discarding symbols: strip. (line 6)
- * DLL: dlltool. (line 6)
- * dlltool: dlltool. (line 6)
- * dynamic relocation entries, in object file: objdump. (line 482)
- * dynamic symbol table entries, printing: objdump. (line 795)
- * dynamic symbols: nm. (line 191)
- * ELF dynamic section information: readelf. (line 134)
- * ELF dynamic symbol table information: readelf. (line 106)
- * ELF file header information: readelf. (line 69)
- * ELF file information: readelf. (line 6)
- * ELF notes: readelf. (line 116)
- * ELF object file format: objdump. (line 696)
- * ELF program header information: readelf. (line 75)
- * ELF reloc information: readelf. (line 120)
- * ELF section group information: readelf. (line 86)
- * ELF section information: readelf. (line 81)
- * ELF section information <1>: readelf. (line 91)
- * ELF segment information: readelf. (line 75)
- * ELF symbol table information: readelf. (line 96)
- * ELF version sections information: readelf. (line 138)
- * elfedit: elfedit. (line 6)
- * endianness: objdump. (line 192)
- * error on valid input: Bug Criteria. (line 12)
- * external symbols: nm. (line 203)
- * external symbols <1>: nm. (line 267)
- * external symbols <2>: nm. (line 281)
- * extract from archive: ar cmdline. (line 114)
- * fatal signal: Bug Criteria. (line 9)
- * file name: nm. (line 147)
- * header information, all: objdump. (line 818)
- * input .def file: dlltool. (line 120)
- * input file name: nm. (line 147)
- * Instruction width: objdump. (line 522)
- * libraries: ar. (line 25)
- * listings strings: strings. (line 6)
- * machine instructions: objdump. (line 144)
- * moving in archive: ar cmdline. (line 34)
- * MRI compatibility, ar: ar scripts. (line 8)
- * name duplication in archive: ar cmdline. (line 108)
- * name length: ar. (line 18)
- * nm: nm. (line 6)
- * nm compatibility: nm. (line 157)
- * nm compatibility <1>: nm. (line 197)
- * nm format: nm. (line 157)
- * nm format <1>: nm. (line 197)
- * not writing archive index: ar cmdline. (line 212)
- * objdump: objdump. (line 6)
- * objdump inlines: nm. (line 219)
- * object code format: nm. (line 333)
- * object code format <1>: objdump. (line 89)
- * object code format <2>: size. (line 103)
- * object code format <3>: strings. (line 94)
- * object code format <4>: addr2line. (line 81)
- * object file header: objdump. (line 198)
- * object file information: objdump. (line 6)
- * object file offsets: objdump. (line 203)
- * object file sections: objdump. (line 489)
- * object formats available: objdump. (line 242)
- * offsets of files: ar cmdline. (line 188)
- * operations on archive: ar cmdline. (line 22)
- * plugins: ar cmdline. (line 267)
- * plugins <1>: nm. (line 284)
- * printing from archive: ar cmdline. (line 46)
- * printing strings: strings. (line 6)
- * quick append to archive: ar cmdline. (line 54)
- * radix for section sizes: size. (line 85)
- * ranlib: ranlib. (line 6)
- * ranlib <1>: ar cmdline. (line 91)
- * readelf: readelf. (line 6)
- * relative placement in archive: ar cmdline. (line 132)
- * relocation entries, in object file: objdump. (line 476)
- * removing symbols: strip. (line 6)
- * repeated names in archive: ar cmdline. (line 108)
- * replacement in archive: ar cmdline. (line 73)
- * reporting bugs: Reporting Bugs. (line 6)
- * scripts, ar: ar scripts. (line 8)
- * section addresses in objdump: objdump. (line 81)
- * section headers: objdump. (line 219)
- * section information: objdump. (line 247)
- * section sizes: size. (line 6)
- * sections, full contents: objdump. (line 489)
- * separate debug files: debuginfod. (line 6)
- * size: size. (line 6)
- * size display format: size. (line 28)
- * size number format: size. (line 85)
- * sorting symbols: nm. (line 234)
- * source code context: objdump. (line 212)
- * source disassembly: objdump. (line 494)
- * source disassembly <1>: objdump. (line 498)
- * source file name: nm. (line 147)
- * source filenames for object files: objdump. (line 251)
- * stab: objdump. (line 696)
- * start-address: objdump. (line 705)
- * stop-address: objdump. (line 709)
- * strings: strings. (line 6)
- * strings, printing: strings. (line 6)
- * strip: strip. (line 6)
- * Strip absolute paths: objdump. (line 508)
- * symbol index: ar. (line 28)
- * symbol index <1>: ranlib. (line 6)
- * symbol index, listing: nm. (line 256)
- * symbol line numbers: nm. (line 211)
- * symbol table entries, printing: objdump. (line 714)
- * symbols: nm. (line 6)
- * symbols, discarding: strip. (line 6)
- * thin archives: ar. (line 40)
- * undefined symbols: nm. (line 267)
- * undefined symbols <1>: nm. (line 281)
- * Unix compatibility, ar: ar cmdline. (line 8)
- * unwind information: readelf. (line 125)
- * Update ELF header: elfedit. (line 6)
- * updating an archive: ar cmdline. (line 224)
- * version: Top. (line 6)
- * VMA in objdump: objdump. (line 81)
- * wide output, printing: objdump. (line 824)
- * writing archive index: ar cmdline. (line 206)
-
-
-
- Tag Table:
- Node: Top1834
- Node: ar3584
- Node: ar cmdline6737
- Node: ar scripts19363
- Node: nm25049
- Node: objcopy37673
- Node: objdump78166
- Node: ranlib111191
- Node: size112790
- Node: strings116759
- Node: strip121131
- Node: c++filt130656
- Ref: c++filt-Footnote-1136518
- Node: addr2line136624
- Node: windmc142303
- Node: windres145962
- Node: dlltool152321
- Node: def file format165318
- Node: readelf167848
- Node: elfedit181362
- Node: Common Options184318
- Node: Selecting the Target System185352
- Node: Target Selection186280
- Node: Architecture Selection188261
- Node: debuginfod189089
- Node: Reporting Bugs189848
- Node: Bug Criteria190610
- Node: Bug Reporting191163
- Node: GNU Free Documentation License198033
- Node: Binutils Index223193
-
- End Tag Table
|