123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431 |
- # DP: updates from the binutils-2.31 branch
- # git diff 0860693812fff944ab0602e72b762a4a2078da5b 0f494b01431de53959dd72ccfed06a01d5172e3f
- diff --git a/bfd/ChangeLog b/bfd/ChangeLog
- index 5ec906aa8e..fa4173da3a 100644
- --- a/bfd/ChangeLog
- +++ b/bfd/ChangeLog
- @@ -1,8 +1,162 @@
- +2018-11-30 Alan Modra <amodra@gmail.com>
- +
- + PR 23937
- + * elf64-ppc.c (write_plt_relocs_for_local_syms): Don't add local
- + entry offset for ifuncs.
- +
- +2018-11-27 Tamar Christina <tamar.christina@arm.com>
- +
- + Backport from mainline
- + PR ld/23904
- + * elfnn-aarch64.c (_bfd_aarch64_adrp_p): Use existing constants.
- + (_bfd_aarch64_erratum_843419_branch_to_stub): Use _bfd_aarch64_adrp_p.
- + (struct erratum_835769_branch_to_stub_clear_data): New.
- + (_bfd_aarch64_erratum_843419_clear_stub): New.
- + (clear_erratum_843419_entry): New.
- + (elfNN_aarch64_tls_relax): Use it.
- + (elfNN_aarch64_relocate_section): Pass input_section.
- + (aarch64_map_one_stub): Handle branch type none as valid.
- +
- +2018-11-15 Claudiu Zissulescu <claziss@synopsys.com>
- +
- + Backport from mainline
- + 2018-11-09 Cupertino Miranda <cmiranda@synopsys.com>
- + * arc-got.h (arc_got_entry_type_for_reloc): Changed to
- + correct static TLS relocs.
- + * elf32-arc.c (elf_arc_check_relocs): Introduced warning to
- + TLS relocs which require -fPIC.
- + (arc_create_forced_local_got_entries_for_tls): Created.
- + Traverses list of GOT entries to be resolved statically
- + when needed.
- + (elf_arc_finish_dynamic_sections): Changed. Calls
- + arc_create_forced_local_got_entries_for_tls for each known
- + possibly GOT symbol.
- +
- +2018-11-15 Claudiu Zissulescu <claziss@synopsys.com>
- +
- + Backport from mainline
- + 2018-11-09 Claudiu Zissulescu <claziss@synopsys.com>
- + * arc-got.h (arc_get_local_got_ents): Revamp it; use
- + elf_local_got_ents to store the local got list.
- + (get_got_entry_list_for_symbo): Restructure it.
- + * elf32-arc.c (elf_arc_relocate_section): Correct the call to
- + get_got_entry_list_for_symbol.
- +
- +2018-11-15 Claudiu Zissulescu <claziss@synopsys.com>
- +
- + Backport from mainline
- + 2018-09-06 Cupertino Miranda <cmiranda@synopsys.com>
- + * arc-got.h (relocate_fix_got_relocs_for_got_info): Changed. Take
- + TLS section alignment in consideration for this relocation.
- + * elf32-arc.c (FINAL_SECTSTART): Added this formula macro.
- + (ARC_TLS_DTPOFF) Updated reloc to use new created macro instead.
- +
- +2018-11-15 Claudiu Zissulescu <claziss@synopsys.com>
- +
- + Backport from mainline
- + 2018-08-01 Cupertino Miranda <cmiranda@synopsys.com>
- + * arc-got.h (relocate_fix_got_relocs_for_got_info): Changed, fixed
- + TCB_SIZE offsize to include section alignment.
- + * elf32-arc.c (arc_special_overflow_checks): Likewise.
- +
- +2018-11-15 Claudiu Zissulescu <claziss@synopsys.com>
- +
- + Backport from mainline
- + 2018-03-02 Cupertino Miranda <cmiranda@synopsys.com>
- + * elf32-arc.c (elf_arc_check_relocs): Changed.
- +
- +2018-11-15 Claudiu Zissulescu <claziss@synopsys.com>
- +
- + Backport from mainline
- + 2018-03-02 Cupertino Miranda <cmiranda@synopsys.com>
- + * elf32-arc.c (elf_arc_check_relocs): Changed.
- +
- +2018-11-15 Claudiu Zissulescu <claziss@synopsys.com>
- +
- + Backport from mainline
- + 2018-03-02 Cupertino Miranda <cmiranda@synopsys.com>
- + * elf32-arc.c (elf_arc_finish_dynamic_symbol) Return FALSE in case
- + arc_htab is NULL.
- +
- +2018-11-15 Claudiu Zissulescu <claziss@synopsys.com>
- +
- + Backport from mainline
- + 2018-03-02 Cupertino Miranda <cmiranda@synopsys.com>a
- + * arc-got.h (get_got_entry_list_for_symbol): Changed.
- + * ef32-arc.c (struct elf_arc_link_hash_entry): Moved and changed.
- + (elf_arc_link_hash_newfunc): Changed.
- + (arc_elf_link_hash_table_create): Removed old initializations.
- + (elf_arc_relocate_section, elf_arc_finish_dynamic_symbol): Changed.
- +
- +2018-11-06 H.J. Lu <hongjiu.lu@intel.com>
- +
- + PR ld/23818
- + * elflink.c (_bfd_elf_link_assign_sym_version): Hide symbols
- + defined in discarded input sections.
- +
- +2018-09-12 H.J. Lu <hongjiu.lu@intel.com>
- +
- + PR ld/23499
- + * elf.c (_bfd_elf_get_symbol_version_string): Return
- + _("<corrupt>") for corrupt symbol version info.
- +
- +2018-09-12 H.J. Lu <hongjiu.lu@intel.com>
- +
- + PR ld/23499
- + * elflink.c (bfd_elf_record_link_assignment): Always clear
- + h->verinfo.verdef when overriding a dynamic definition.
- +
- +2018-08-12 H.J. Lu <hongjiu.lu@intel.com>
- +
- + PR ld/23428
- + * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): Don't
- + add X86_ISA_1_NEEDED property only if existing properties won't
- + be removed.
- +
- +2018-08-10 H.J. Lu <hongjiu.lu@intel.com>
- +
- + PR ld/23486
- + * elfxx-x86.c (_bfd_x86_elf_merge_gnu_properties): Remove
- + GNU_PROPERTY_X86_ISA_1_USED if an input file doesn't have it.
- + (_bfd_x86_elf_link_setup_gnu_properties): Adding the
- + GNU_PROPERTY_X86_ISA_1_NEEDED, instead of
- + GNU_PROPERTY_X86_ISA_1_USED, property.
- +
- +2018-08-07 Alan Modra <amodra@gmail.com>
- +
- + * elf64-ppc.c (ppc64_elf_relocate_section): Don't skip first
- + instruction of __tls_get_addr_opt stub.
- + (plt_stub_size): Omit ALWAYS_EMIT_R2SAVE condition when
- + dealing with __tls_get_addr_opt stub.
- + (build_tls_get_addr_stub, ppc_size_one_stub): Likewise.
- +
- +2018-08-01 Alan Modra <amodra@gmail.com>
- +
- + * elf64-ppc.c (plt_stub_pad): Delay plt_stub_size call until needed.
- + (ppc_build_one_stub): Don't set stub_offset, instead assert that
- + it is sane. Don't adjust stub_offset for alignment. Adjust size
- + calculation. Use "targ" temp when calculating offsets.
- + (ppc_size_one_stub): Set stub_offset here. Use "targ" temp when
- + calculating offsets. Adjust for alignment before setting
- + tls_get_addr_opt_bctrl.
- +
- +2018-07-23 H.J. Lu <hongjiu.lu@intel.com>
- +
- + PR ld/23428
- + * elfxx-x86.c (_bfd_x86_elf_link_setup_gnu_properties): If the
- + separate code program header is needed, make sure that the first
- + read-only PT_LOAD segment has no code by adding a
- + GNU_PROPERTY_X86_ISA_1_USED note.
- +
- +2018-07-18 Nick Clifton <nickc@redhat.com>
- +
- + * development.sh: Set to true.
- +
- 2018-07-18 Nick Clifton <nickc@redhat.com>
-
- 2.31.1 Release point.
- * version.m4: Set to 2.31.1
- - * development.sh: Set to true.
- + * development.sh: Set to false.
- * configure: Regenerate.
- * po/bfd.pot: Regenerate.
-
- diff --git a/bfd/arc-got.h b/bfd/arc-got.h
- index a86061bcb3..253578b90c 100644
- --- a/bfd/arc-got.h
- +++ b/bfd/arc-got.h
- @@ -24,6 +24,9 @@
-
- #define TCB_SIZE (8)
-
- +#define align_power(addr, align) \
- + (((addr) + ((bfd_vma) 1 << (align)) - 1) & (-((bfd_vma) 1 << (align))))
- +
- enum tls_type_e
- {
- GOT_UNKNOWN = 0,
- @@ -51,27 +54,26 @@ struct got_entry
- enum tls_got_entries existing_entries;
- };
-
- +/* Return the local got list, if not defined, create an empty one. */
- +
- static struct got_entry **
- arc_get_local_got_ents (bfd * abfd)
- {
- - static struct got_entry **local_got_ents = NULL;
- -
- - if (local_got_ents == NULL)
- + if (elf_local_got_ents (abfd) == NULL)
- {
- - size_t size;
- - Elf_Internal_Shdr *symtab_hdr = &((elf_tdata (abfd))->symtab_hdr);
- -
- - size = symtab_hdr->sh_info * sizeof (bfd_vma);
- - local_got_ents = (struct got_entry **)
- - bfd_alloc (abfd, sizeof (struct got_entry *) * size);
- - if (local_got_ents == NULL)
- - return FALSE;
- -
- - memset (local_got_ents, 0, sizeof (struct got_entry *) * size);
- - elf_local_got_ents (abfd) = local_got_ents;
- + bfd_size_type amt = (elf_tdata (abfd)->symtab_hdr.sh_info
- + * sizeof (*elf_local_got_ents (abfd)));
- + elf_local_got_ents (abfd) = bfd_zmalloc (amt);
- + if (elf_local_got_ents (abfd) == NULL)
- + {
- + _bfd_error_handler (_("%pB: cannot allocate memory for local "
- + "GOT entries"), abfd);
- + bfd_set_error (bfd_error_bad_value);
- + return NULL;
- + }
- }
-
- - return local_got_ents;
- + return elf_local_got_ents (abfd);
- }
-
- static struct got_entry *
- @@ -156,15 +158,15 @@ get_got_entry_list_for_symbol (bfd *abfd,
- unsigned long r_symndx,
- struct elf_link_hash_entry *h)
- {
- - if (h != NULL)
- + struct elf_arc_link_hash_entry *h1 =
- + ((struct elf_arc_link_hash_entry *) h);
- + if (h1 != NULL)
- {
- - return &h->got.glist;
- + return &h1->got_ents;
- }
- else
- {
- - struct got_entry **local_got_ents
- - = arc_get_local_got_ents (abfd);
- - return &local_got_ents[r_symndx];
- + return arc_get_local_got_ents (abfd) + r_symndx;
- }
- }
-
- @@ -206,7 +208,7 @@ arc_got_entry_type_for_reloc (reloc_howto_type *howto)
- __LINE__, name_for_global_symbol (H)); \
- } \
- if (H) \
- - if (h->dynindx == -1 && !h->forced_local) \
- + if (H->dynindx == -1 && !H->forced_local) \
- if (! bfd_elf_link_record_dynamic_symbol (info, H)) \
- return FALSE; \
- htab->s##SECNAME->size += 4; \
- @@ -282,6 +284,7 @@ relocate_fix_got_relocs_for_got_info (struct got_entry ** list_p,
- BFD_ASSERT (entry);
-
- if (h == NULL
- + || h->forced_local == TRUE
- || (! elf_hash_table (info)->dynamic_sections_created
- || (bfd_link_pic (info)
- && SYMBOL_REFERENCES_LOCAL (info, h))))
- @@ -329,23 +332,31 @@ relocate_fix_got_relocs_for_got_info (struct got_entry ** list_p,
- BFD_ASSERT (tls_sec && tls_sec->output_section);
- bfd_vma sec_vma = tls_sec->output_section->vma;
-
- - bfd_put_32 (output_bfd,
- - sym_value - sec_vma,
- + if (h == NULL || h->forced_local
- + || !elf_hash_table (info)->dynamic_sections_created)
- + {
- + bfd_put_32 (output_bfd,
- + sym_value - sec_vma
- + + (elf_hash_table (info)->dynamic_sections_created
- + ? 0
- + : (align_power (0,
- + tls_sec->alignment_power))),
- htab->sgot->contents + entry->offset
- + (entry->existing_entries == TLS_GOT_MOD_AND_OFF
- ? 4 : 0));
-
- - ARC_DEBUG ("arc_info: FIXED -> %s value = %#lx "
- - "@ %lx, for symbol %s\n",
- - (entry->type == GOT_TLS_GD ? "GOT_TLS_GD" :
- - "GOT_TLS_IE"),
- - (long) (sym_value - sec_vma),
- - (long) (htab->sgot->output_section->vma
- - + htab->sgot->output_offset->vma
- - + entry->offset
- - + (entry->existing_entries == TLS_GOT_MOD_AND_OFF
- - ? 4 : 0)),
- - symbol_name);
- + ARC_DEBUG ("arc_info: FIXED -> %s value = %#lx "
- + "@ %lx, for symbol %s\n",
- + (entry->type == GOT_TLS_GD ? "GOT_TLS_GD" :
- + "GOT_TLS_IE"),
- + (long) (sym_value - sec_vma),
- + (long) (htab->sgot->output_section->vma
- + + htab->sgot->output_offset
- + + entry->offset
- + + (entry->existing_entries == TLS_GOT_MOD_AND_OFF
- + ? 4 : 0)),
- + symbol_name);
- + }
- }
- break;
-
- @@ -357,7 +368,10 @@ relocate_fix_got_relocs_for_got_info (struct got_entry ** list_p,
-
- bfd_put_32 (output_bfd,
- sym_value - sec_vma
- - + (elf_hash_table (info)->dynamic_sections_created ? 0 : TCB_SIZE),
- + + (elf_hash_table (info)->dynamic_sections_created
- + ? 0
- + : (align_power (TCB_SIZE,
- + tls_sec->alignment_power))),
- htab->sgot->contents + entry->offset
- + (entry->existing_entries == TLS_GOT_MOD_AND_OFF
- ? 4 : 0));
- @@ -368,7 +382,7 @@ relocate_fix_got_relocs_for_got_info (struct got_entry ** list_p,
- "GOT_TLS_IE"),
- (long) (sym_value - sec_vma),
- (long) (htab->sgot->output_section->vma
- - + htab->sgot->output_offset->vma
- + + htab->sgot->output_offset
- + entry->offset
- + (entry->existing_entries == TLS_GOT_MOD_AND_OFF
- ? 4 : 0)),
- diff --git a/bfd/development.sh b/bfd/development.sh
- index 918150f30b..27a7150e6d 100644
- --- a/bfd/development.sh
- +++ b/bfd/development.sh
- @@ -16,4 +16,4 @@
- # along with this program. If not, see <http://www.gnu.org/licenses/>.
-
- # Controls whether to enable development-mode features by default.
- -development=false
- +development=true
- diff --git a/bfd/elf.c b/bfd/elf.c
- index 0f75375128..80410575b0 100644
- --- a/bfd/elf.c
- +++ b/bfd/elf.c
- @@ -1877,7 +1877,7 @@ _bfd_elf_get_symbol_version_string (bfd *abfd, asymbol *symbol,
- {
- Elf_Internal_Verneed *t;
-
- - version_string = "";
- + version_string = _("<corrupt>");
- for (t = elf_tdata (abfd)->verref;
- t != NULL;
- t = t->vn_nextref)
- diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c
- index a48ef0ca15..495fa342d3 100644
- --- a/bfd/elf32-arc.c
- +++ b/bfd/elf32-arc.c
- @@ -160,6 +160,18 @@ struct arc_relocation_data
- const char * symbol_name;
- };
-
- +/* ARC ELF linker hash entry. */
- +struct elf_arc_link_hash_entry
- +{
- + struct elf_link_hash_entry root;
- +
- + /* Track dynamic relocs copied for this symbol. */
- + struct elf_dyn_relocs *dyn_relocs;
- +
- + struct got_entry *got_ents;
- +};
- +
- +
- /* Should be included at this location due to static declarations
- defined before this point. */
- #include "arc-got.h"
- @@ -281,15 +293,6 @@ struct arc_reloc_map
- unsigned char elf_reloc_val;
- };
-
- -/* ARC ELF linker hash entry. */
- -struct elf_arc_link_hash_entry
- -{
- - struct elf_link_hash_entry root;
- -
- - /* Track dynamic relocs copied for this symbol. */
- - struct elf_dyn_relocs *dyn_relocs;
- -};
- -
- /* ARC ELF linker hash table. */
- struct elf_arc_link_hash_table
- {
- @@ -301,28 +304,28 @@ elf_arc_link_hash_newfunc (struct bfd_hash_entry *entry,
- struct bfd_hash_table *table,
- const char *string)
- {
- + struct elf_arc_link_hash_entry * ret =
- + (struct elf_arc_link_hash_entry *) entry;
- +
- /* Allocate the structure if it has not already been allocated by a
- subclass. */
- - if (entry == NULL)
- - {
- - entry = (struct bfd_hash_entry *)
- - bfd_hash_allocate (table,
- - sizeof (struct elf_arc_link_hash_entry));
- - if (entry == NULL)
- - return entry;
- - }
- + if (ret == NULL)
- + ret = (struct elf_arc_link_hash_entry *)
- + bfd_hash_allocate (table, sizeof (struct elf_arc_link_hash_entry));
- + if (ret == NULL)
- + return (struct bfd_hash_entry *) ret;
-
- /* Call the allocation method of the superclass. */
- - entry = _bfd_elf_link_hash_newfunc (entry, table, string);
- - if (entry != NULL)
- + ret = ((struct elf_arc_link_hash_entry *)
- + _bfd_elf_link_hash_newfunc ((struct bfd_hash_entry *) ret,
- + table, string));
- + if (ret != NULL)
- {
- - struct elf_arc_link_hash_entry *eh;
- -
- - eh = (struct elf_arc_link_hash_entry *) entry;
- - eh->dyn_relocs = NULL;
- + ret->dyn_relocs = NULL;
- + ret->got_ents = NULL;
- }
-
- - return entry;
- + return (struct bfd_hash_entry *) ret;
- }
-
- /* Destroy an ARC ELF linker hash table. */
- @@ -352,11 +355,6 @@ arc_elf_link_hash_table_create (bfd *abfd)
- return NULL;
- }
-
- - ret->elf.init_got_refcount.refcount = 0;
- - ret->elf.init_got_refcount.glist = NULL;
- - ret->elf.init_got_offset.offset = 0;
- - ret->elf.init_got_offset.glist = NULL;
- -
- ret->elf.root.hash_table_free = elf_arc_link_hash_table_free;
-
- return &ret->elf.root;
- @@ -1200,11 +1198,14 @@ arc_special_overflow_checks (const struct arc_relocation_data reloc_data,
- + (reloc_data.reloc_offset))))
- #define SECTSTART (bfd_signed_vma) (reloc_data.sym_section->output_section->vma \
- + reloc_data.sym_section->output_offset)
- +#define FINAL_SECTSTART \
- + (bfd_signed_vma) (reloc_data.sym_section->output_section->vma)
- #define JLI (bfd_signed_vma) (reloc_data.sym_section->output_section->vma)
- #define _SDA_BASE_ (bfd_signed_vma) (reloc_data.sdata_begin_symbol_vma)
- #define TLS_REL (bfd_signed_vma) \
- ((elf_hash_table (info))->tls_sec->output_section->vma)
- -#define TLS_TBSS (8)
- +#define TLS_TBSS (align_power(TCB_SIZE, \
- + reloc_data.sym_section->alignment_power))
-
- #define none (0)
-
- @@ -1615,10 +1616,14 @@ elf_arc_relocate_section (bfd * output_bfd,
- while (h->root.type == bfd_link_hash_indirect
- || h->root.type == bfd_link_hash_warning)
- {
- - struct elf_link_hash_entry *h_old = h;
- + struct elf_arc_link_hash_entry *ah_old =
- + (struct elf_arc_link_hash_entry *) h;
- h = (struct elf_link_hash_entry *) h->root.u.i.link;
- - if (h->got.glist == 0 && h_old->got.glist != h->got.glist)
- - h->got.glist = h_old->got.glist;
- + struct elf_arc_link_hash_entry *ah =
- + (struct elf_arc_link_hash_entry *) h;
- +
- + if (ah->got_ents == 0 && ah_old->got_ents != ah->got_ents)
- + ah->got_ents = ah_old->got_ents;
- }
-
- /* TODO: Need to validate what was the intention. */
- @@ -1636,6 +1641,8 @@ elf_arc_relocate_section (bfd * output_bfd,
-
- if (is_reloc_for_GOT (howto) && !bfd_link_pic (info))
- {
- + struct elf_arc_link_hash_entry *ah =
- + (struct elf_arc_link_hash_entry *) h;
- /* TODO: Change it to use arc_do_relocation with
- ARC_32 reloc. Try to use ADD_RELA macro. */
- bfd_vma relocation =
- @@ -1645,8 +1652,8 @@ elf_arc_relocate_section (bfd * output_bfd,
- + reloc_data.sym_section->output_section->vma)
- : 0);
-
- - BFD_ASSERT (h->got.glist);
- - bfd_vma got_offset = h->got.glist->offset;
- + BFD_ASSERT (ah->got_ents);
- + bfd_vma got_offset = ah->got_ents->offset;
- bfd_put_32 (output_bfd, relocation,
- htab->sgot->contents + got_offset);
- }
- @@ -1717,7 +1724,7 @@ elf_arc_relocate_section (bfd * output_bfd,
- reloc_data.should_relocate = TRUE;
-
- struct got_entry **list
- - = get_got_entry_list_for_symbol (output_bfd, r_symndx, h);
- + = get_got_entry_list_for_symbol (input_bfd, r_symndx, h);
-
- reloc_data.got_offset_value
- = relocate_fix_got_relocs_for_got_info (list,
- @@ -1956,40 +1963,45 @@ elf_arc_check_relocs (bfd * abfd,
- if (r_symndx < symtab_hdr->sh_info) /* Is a local symbol. */
- h = NULL;
- else /* Global one. */
- - h = sym_hashes[r_symndx - symtab_hdr->sh_info];
- + {
- + h = sym_hashes[r_symndx - symtab_hdr->sh_info];
- + while (h->root.type == bfd_link_hash_indirect
- + || h->root.type == bfd_link_hash_warning)
- + h = (struct elf_link_hash_entry *) h->root.u.i.link;
- + }
- +
-
- switch (r_type)
- {
- - case R_ARC_32:
- - case R_ARC_32_ME:
- - /* During shared library creation, these relocs should not
- - appear in a shared library (as memory will be read only
- - and the dynamic linker can not resolve these. However
- - the error should not occur for e.g. debugging or
- - non-readonly sections. */
- - if (h != NULL
- - && (bfd_link_dll (info) && !bfd_link_pie (info))
- - && (sec->flags & SEC_ALLOC) != 0
- - && (sec->flags & SEC_READONLY) != 0
- - && ((sec->flags & SEC_CODE) != 0
- - || (sec->flags & SEC_DEBUGGING) != 0))
- - {
- - const char *name;
- - if (h)
- - name = h->root.root.string;
- - else
- - /* bfd_elf_sym_name (abfd, symtab_hdr, isym, NULL); */
- - name = "UNKNOWN";
- - _bfd_error_handler
- - /* xgettext:c-format */
- - (_("%pB: relocation %s against `%s' can not be used"
- - " when making a shared object; recompile with -fPIC"),
- - abfd,
- - arc_elf_howto (r_type)->name,
- - name);
- - bfd_set_error (bfd_error_bad_value);
- - return FALSE;
- - }
- + case R_ARC_32:
- + case R_ARC_32_ME:
- + /* During shared library creation, these relocs should not
- + appear in a shared library (as memory will be read only
- + and the dynamic linker can not resolve these. However
- + the error should not occur for e.g. debugging or
- + non-readonly sections. */
- + if (h != NULL
- + && (bfd_link_dll (info) && !bfd_link_pie (info))
- + && (sec->flags & SEC_ALLOC) != 0
- + && (sec->flags & SEC_READONLY) != 0
- + && ((sec->flags & SEC_CODE) != 0
- + || (sec->flags & SEC_DEBUGGING) != 0))
- + {
- + const char *name;
- + if (h)
- + name = h->root.root.string;
- + else
- + name = "UNKNOWN";
- + _bfd_error_handler
- + /* xgettext:c-format */
- + (_("%pB: relocation %s against `%s' can not be used"
- + " when making a shared object; recompile with -fPIC"),
- + abfd,
- + arc_elf_howto (r_type)->name,
- + name);
- + bfd_set_error (bfd_error_bad_value);
- + return FALSE;
- + }
-
- /* In some cases we are not setting the 'non_got_ref'
- flag, even though the relocations don't require a GOT
- @@ -2031,13 +2043,33 @@ elf_arc_check_relocs (bfd * abfd,
- if (h == NULL)
- continue;
- else
- - h->needs_plt = 1;
- + if (h->forced_local == 0)
- + h->needs_plt = 1;
- }
-
- /* Add info to the symbol got_entry_list. */
- if (is_reloc_for_GOT (howto)
- || is_reloc_for_TLS (howto))
- {
- + if (bfd_link_dll (info) && !bfd_link_pie (info)
- + && (r_type == R_ARC_TLS_LE_32 || r_type == R_ARC_TLS_LE_S9))
- + {
- + const char *name;
- + if (h)
- + name = h->root.root.string;
- + else
- + /* bfd_elf_sym_name (abfd, symtab_hdr, isym, NULL); */
- + name = "UNKNOWN";
- + _bfd_error_handler
- + /* xgettext:c-format */
- + (_("%pB: relocation %s against `%s' can not be used"
- + " when making a shared object; recompile with -fPIC"),
- + abfd,
- + arc_elf_howto (r_type)->name,
- + name);
- + bfd_set_error (bfd_error_bad_value);
- + return FALSE;
- + }
- if (! _bfd_elf_create_got_section (dynobj, info))
- return FALSE;
-
- @@ -2404,7 +2436,9 @@ elf_arc_finish_dynamic_symbol (bfd * output_bfd,
- create respective dynamic relocs. */
- /* TODO: Make function to get list and not access the list directly. */
- /* TODO: Move function to relocate_section create this relocs eagerly. */
- - create_got_dynrelocs_for_got_info (&h->got.glist,
- + struct elf_arc_link_hash_entry *ah =
- + (struct elf_arc_link_hash_entry *) h;
- + create_got_dynrelocs_for_got_info (&ah->got_ents,
- output_bfd,
- info,
- h);
- @@ -2413,6 +2447,9 @@ elf_arc_finish_dynamic_symbol (bfd * output_bfd,
- {
- struct elf_arc_link_hash_table *arc_htab = elf_arc_hash_table (info);
-
- + if (arc_htab == NULL)
- + return FALSE;
- +
- if (h->dynindx == -1
- || (h->root.type != bfd_link_hash_defined
- && h->root.type != bfd_link_hash_defweak)
- @@ -2455,6 +2492,39 @@ elf_arc_finish_dynamic_symbol (bfd * output_bfd,
- s = bfd_get_linker_section (dynobj, SECTION); \
- break;
-
- +
- +struct obfd_info_group {
- + bfd *output_bfd;
- + struct bfd_link_info *info;
- +};
- +
- +static bfd_boolean
- +arc_create_forced_local_got_entries_for_tls (struct bfd_hash_entry *bh,
- + void *data)
- +{
- + struct elf_arc_link_hash_entry * h =
- + (struct elf_arc_link_hash_entry *) bh;
- + struct obfd_info_group *tmp = (struct obfd_info_group *) data;
- +
- + if (h->got_ents != NULL)
- + {
- + BFD_ASSERT (h);
- +
- + struct got_entry *list = h->got_ents;
- +
- + while (list != NULL)
- + {
- + create_got_dynrelocs_for_single_entry (list, tmp->output_bfd,
- + tmp->info,
- + (struct elf_link_hash_entry *) h);
- + list = list->next;
- + }
- + }
- +
- + return TRUE;
- +}
- +
- +
- /* Function : elf_arc_finish_dynamic_sections
- Brief : Finish up the dynamic sections handling.
- Args : output_bfd :
- @@ -2588,6 +2658,12 @@ elf_arc_finish_dynamic_sections (bfd * output_bfd,
- }
- }
-
- + struct obfd_info_group group;
- + group.output_bfd = output_bfd;
- + group.info = info;
- + bfd_hash_traverse (&info->hash->table,
- + arc_create_forced_local_got_entries_for_tls, &group);
- +
- return TRUE;
- }
-
- diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
- index 45d81777eb..746506ef09 100644
- --- a/bfd/elf64-ppc.c
- +++ b/bfd/elf64-ppc.c
- @@ -10810,8 +10810,7 @@ plt_stub_size (struct ppc_link_hash_table *htab,
- && htab->params->tls_get_addr_opt)
- {
- size += 7 * 4;
- - if (ALWAYS_EMIT_R2SAVE
- - || stub_entry->stub_type == ppc_stub_plt_call_r2save)
- + if (stub_entry->stub_type == ppc_stub_plt_call_r2save)
- size += 6 * 4;
- }
- return size;
- @@ -10829,7 +10828,7 @@ plt_stub_pad (struct ppc_link_hash_table *htab,
- bfd_vma plt_off)
- {
- int stub_align;
- - unsigned stub_size = plt_stub_size (htab, stub_entry, plt_off);
- + unsigned stub_size;
- bfd_vma stub_off = stub_entry->group->stub_sec->size;
-
- if (htab->params->plt_stub_align >= 0)
- @@ -10841,6 +10840,7 @@ plt_stub_pad (struct ppc_link_hash_table *htab,
- }
-
- stub_align = 1 << -htab->params->plt_stub_align;
- + stub_size = plt_stub_size (htab, stub_entry, plt_off);
- if (((stub_off + stub_size - 1) & -stub_align) - (stub_off & -stub_align)
- > ((stub_size - 1) & -stub_align))
- return stub_align - (stub_off & (stub_align - 1));
- @@ -11055,8 +11055,7 @@ build_tls_get_addr_stub (struct ppc_link_hash_table *htab,
- bfd_put_32 (obfd, MR_R3_R0, p), p += 4;
- if (r != NULL)
- r[0].r_offset += 7 * 4;
- - if (!ALWAYS_EMIT_R2SAVE
- - && stub_entry->stub_type != ppc_stub_plt_call_r2save)
- + if (stub_entry->stub_type != ppc_stub_plt_call_r2save)
- return build_plt_stub (htab, stub_entry, p, offset, r);
-
- bfd_put_32 (obfd, MFLR_R11, p), p += 4;
- @@ -11148,7 +11147,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- struct ppc_link_hash_table *htab;
- bfd_byte *loc;
- bfd_byte *p;
- - bfd_vma dest, off;
- + bfd_vma targ, off;
- Elf_Internal_Rela *r;
- asection *plt;
-
- @@ -11160,8 +11159,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- if (htab == NULL)
- return FALSE;
-
- - /* Make a note of the offset within the stubs for this entry. */
- - stub_entry->stub_offset = stub_entry->group->stub_sec->size;
- + BFD_ASSERT (stub_entry->stub_offset >= stub_entry->group->stub_sec->size);
- loc = stub_entry->group->stub_sec->contents + stub_entry->stub_offset;
-
- htab->stub_count[stub_entry->stub_type - 1] += 1;
- @@ -11170,16 +11168,16 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- case ppc_stub_long_branch:
- case ppc_stub_long_branch_r2off:
- /* Branches are relative. This is where we are going to. */
- - dest = (stub_entry->target_value
- + targ = (stub_entry->target_value
- + stub_entry->target_section->output_offset
- + stub_entry->target_section->output_section->vma);
- - dest += PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other);
- - off = dest;
- + targ += PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other);
-
- /* And this is where we are coming from. */
- - off -= (stub_entry->stub_offset
- - + stub_entry->group->stub_sec->output_offset
- - + stub_entry->group->stub_sec->output_section->vma);
- + off = (stub_entry->stub_offset
- + + stub_entry->group->stub_sec->output_offset
- + + stub_entry->group->stub_sec->output_section->vma);
- + off = targ - off;
-
- p = loc;
- if (stub_entry->stub_type == ppc_stub_long_branch_r2off)
- @@ -11226,7 +11224,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- return FALSE;
- r->r_offset = p - 4 - stub_entry->group->stub_sec->contents;
- r->r_info = ELF64_R_INFO (0, R_PPC64_REL24);
- - r->r_addend = dest;
- + r->r_addend = targ;
- if (stub_entry->h != NULL)
- {
- struct elf_link_hash_entry **hashes;
- @@ -11278,13 +11276,13 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- return FALSE;
- }
-
- - dest = (stub_entry->target_value
- + targ = (stub_entry->target_value
- + stub_entry->target_section->output_offset
- + stub_entry->target_section->output_section->vma);
- if (stub_entry->stub_type != ppc_stub_plt_branch_r2off)
- - dest += PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other);
- + targ += PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other);
-
- - bfd_put_64 (htab->brlt->owner, dest,
- + bfd_put_64 (htab->brlt->owner, targ,
- htab->brlt->contents + br_entry->offset);
-
- if (br_entry->iter == htab->stub_iteration)
- @@ -11301,7 +11299,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- + htab->brlt->output_offset
- + htab->brlt->output_section->vma);
- rela.r_info = ELF64_R_INFO (0, R_PPC64_RELATIVE);
- - rela.r_addend = dest;
- + rela.r_addend = targ;
-
- rl = htab->relbrlt->contents;
- rl += (htab->relbrlt->reloc_count++
- @@ -11321,17 +11319,17 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- + htab->brlt->output_offset
- + htab->brlt->output_section->vma);
- r->r_info = ELF64_R_INFO (0, R_PPC64_RELATIVE);
- - r->r_addend = dest;
- + r->r_addend = targ;
- }
- }
-
- - dest = (br_entry->offset
- + targ = (br_entry->offset
- + htab->brlt->output_offset
- + htab->brlt->output_section->vma);
-
- - off = (dest
- - - elf_gp (info->output_bfd)
- - - htab->sec_info[stub_entry->group->link_sec->id].toc_off);
- + off = (elf_gp (info->output_bfd)
- + + htab->sec_info[stub_entry->group->link_sec->id].toc_off);
- + off = targ - off;
-
- if (off + 0x80008000 > 0xffffffff || (off & 7) != 0)
- {
- @@ -11354,7 +11352,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- if (stub_entry->stub_type == ppc_stub_plt_branch_r2off)
- r[0].r_offset += 4;
- r[0].r_info = ELF64_R_INFO (0, R_PPC64_TOC16_DS);
- - r[0].r_addend = dest;
- + r[0].r_addend = targ;
- if (PPC_HA (off) != 0)
- {
- r[0].r_info = ELF64_R_INFO (0, R_PPC64_TOC16_HA);
- @@ -11439,8 +11437,8 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- }
-
- /* Now build the stub. */
- - dest = stub_entry->plt_ent->plt.offset & ~1;
- - if (dest >= (bfd_vma) -2)
- + targ = stub_entry->plt_ent->plt.offset & ~1;
- + if (targ >= (bfd_vma) -2)
- abort ();
-
- plt = htab->elf.splt;
- @@ -11453,12 +11451,11 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- else
- plt = htab->pltlocal;
- }
- + targ += plt->output_offset + plt->output_section->vma;
-
- - dest += plt->output_offset + plt->output_section->vma;
- -
- - off = (dest
- - - elf_gp (info->output_bfd)
- - - htab->sec_info[stub_entry->group->link_sec->id].toc_off);
- + off = (elf_gp (info->output_bfd)
- + + htab->sec_info[stub_entry->group->link_sec->id].toc_off);
- + off = targ - off;
-
- if (off + 0x80008000 > 0xffffffff || (off & 7) != 0)
- {
- @@ -11473,15 +11470,6 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- return FALSE;
- }
-
- - if (htab->params->plt_stub_align != 0)
- - {
- - unsigned pad = plt_stub_pad (htab, stub_entry, off);
- -
- - stub_entry->group->stub_sec->size += pad;
- - stub_entry->stub_offset = stub_entry->group->stub_sec->size;
- - loc += pad;
- - }
- -
- r = NULL;
- if (info->emitrelocations)
- {
- @@ -11496,7 +11484,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- r[0].r_offset = loc - stub_entry->group->stub_sec->contents;
- if (bfd_big_endian (info->output_bfd))
- r[0].r_offset += 2;
- - r[0].r_addend = dest;
- + r[0].r_addend = targ;
- }
- if (stub_entry->h != NULL
- && (stub_entry->h == htab->tls_get_addr_fd
- @@ -11515,7 +11503,7 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- return FALSE;
- }
-
- - stub_entry->group->stub_sec->size += p - loc;
- + stub_entry->group->stub_sec->size = stub_entry->stub_offset + (p - loc);
-
- if (htab->params->emit_stub_syms)
- {
- @@ -11567,7 +11555,7 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- struct ppc_stub_hash_entry *stub_entry;
- struct bfd_link_info *info;
- struct ppc_link_hash_table *htab;
- - bfd_vma off;
- + bfd_vma targ, off;
- int size;
-
- /* Massage our args to the form they really have. */
- @@ -11578,6 +11566,9 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- if (htab == NULL)
- return FALSE;
-
- + /* Make a note of the offset within the stubs for this entry. */
- + stub_entry->stub_offset = stub_entry->group->stub_sec->size;
- +
- if (stub_entry->h != NULL
- && stub_entry->h->save_res
- && stub_entry->h->elf.root.type == bfd_link_hash_defined
- @@ -11594,8 +11585,8 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- || stub_entry->stub_type == ppc_stub_plt_call_r2save)
- {
- asection *plt;
- - off = stub_entry->plt_ent->plt.offset & ~(bfd_vma) 1;
- - if (off >= (bfd_vma) -2)
- + targ = stub_entry->plt_ent->plt.offset & ~(bfd_vma) 1;
- + if (targ >= (bfd_vma) -2)
- abort ();
- plt = htab->elf.splt;
- if (!htab->elf.dynamic_sections_created
- @@ -11607,23 +11598,30 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- else
- plt = htab->pltlocal;
- }
- - off += (plt->output_offset
- - + plt->output_section->vma
- - - elf_gp (info->output_bfd)
- - - htab->sec_info[stub_entry->group->link_sec->id].toc_off);
- + targ += plt->output_offset + plt->output_section->vma;
- +
- + off = (elf_gp (info->output_bfd)
- + + htab->sec_info[stub_entry->group->link_sec->id].toc_off);
- + off = targ - off;
- +
- + if (htab->params->plt_stub_align != 0)
- + {
- + unsigned pad = plt_stub_pad (htab, stub_entry, off);
- +
- + stub_entry->group->stub_sec->size += pad;
- + stub_entry->stub_offset = stub_entry->group->stub_sec->size;
- + }
-
- size = plt_stub_size (htab, stub_entry, off);
- +
- if (stub_entry->h != NULL
- && (stub_entry->h == htab->tls_get_addr_fd
- || stub_entry->h == htab->tls_get_addr)
- && htab->params->tls_get_addr_opt
- - && (ALWAYS_EMIT_R2SAVE
- - || stub_entry->stub_type == ppc_stub_plt_call_r2save))
- + && stub_entry->stub_type == ppc_stub_plt_call_r2save)
- stub_entry->group->tls_get_addr_opt_bctrl
- - = stub_entry->group->stub_sec->size + size - 5 * 4;
- + = stub_entry->stub_offset + size - 5 * 4;
-
- - if (htab->params->plt_stub_align)
- - size += plt_stub_pad (htab, stub_entry, off);
- if (info->emitrelocations)
- {
- stub_entry->group->stub_sec->reloc_count
- @@ -11642,12 +11640,12 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- bfd_vma r2off = 0;
- bfd_vma local_off = 0;
-
- - off = (stub_entry->target_value
- - + stub_entry->target_section->output_offset
- - + stub_entry->target_section->output_section->vma);
- - off -= (stub_entry->group->stub_sec->size
- - + stub_entry->group->stub_sec->output_offset
- - + stub_entry->group->stub_sec->output_section->vma);
- + targ = (stub_entry->target_value
- + + stub_entry->target_section->output_offset
- + + stub_entry->target_section->output_section->vma);
- + off = (stub_entry->stub_offset
- + + stub_entry->group->stub_sec->output_offset
- + + stub_entry->group->stub_sec->output_section->vma);
-
- /* Reset the stub type from the plt variant in case we now
- can reach with a shorter stub. */
- @@ -11668,8 +11666,9 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- size += 4;
- if (PPC_LO (r2off) != 0)
- size += 4;
- - off -= size - 4;
- + off += size - 4;
- }
- + off = targ - off;
-
- local_off = PPC64_LOCAL_ENTRY_OFFSET (stub_entry->other);
-
- @@ -11709,11 +11708,12 @@ ppc_size_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- }
-
- stub_entry->stub_type += ppc_stub_plt_branch - ppc_stub_long_branch;
- - off = (br_entry->offset
- - + htab->brlt->output_offset
- - + htab->brlt->output_section->vma
- - - elf_gp (info->output_bfd)
- - - htab->sec_info[stub_entry->group->link_sec->id].toc_off);
- + targ = (br_entry->offset
- + + htab->brlt->output_offset
- + + htab->brlt->output_section->vma);
- + off = (elf_gp (info->output_bfd)
- + + htab->sec_info[stub_entry->group->link_sec->id].toc_off);
- + off = targ - off;
-
- if (info->emitrelocations)
- {
- @@ -13530,7 +13530,8 @@ write_plt_relocs_for_local_syms (struct bfd_link_info *info)
- }
-
- val = sym->st_value + ent->addend;
- - val += PPC64_LOCAL_ENTRY_OFFSET (sym->st_other);
- + if (ELF_ST_TYPE (sym->st_info) != STT_GNU_IFUNC)
- + val += PPC64_LOCAL_ENTRY_OFFSET (sym->st_other);
- if (sym_sec != NULL && sym_sec->output_section != NULL)
- val += sym_sec->output_offset + sym_sec->output_section->vma;
-
- @@ -14877,10 +14878,13 @@ ppc64_elf_relocate_section (bfd *output_bfd,
- addend = 0;
- reloc_dest = DEST_STUB;
-
- - if ((stub_entry->stub_type == ppc_stub_plt_call
- + if (((stub_entry->stub_type == ppc_stub_plt_call
- + && ALWAYS_EMIT_R2SAVE)
- || stub_entry->stub_type == ppc_stub_plt_call_r2save)
- - && (ALWAYS_EMIT_R2SAVE
- - || stub_entry->stub_type == ppc_stub_plt_call_r2save)
- + && !(h != NULL
- + && (h == htab->tls_get_addr_fd
- + || h == htab->tls_get_addr)
- + && htab->params->tls_get_addr_opt)
- && rel + 1 < relend
- && rel[1].r_offset == rel->r_offset + 4
- && ELF64_R_TYPE (rel[1].r_info) == R_PPC64_TOCSAVE)
- diff --git a/bfd/elflink.c b/bfd/elflink.c
- index b24fb95848..46091b6341 100644
- --- a/bfd/elflink.c
- +++ b/bfd/elflink.c
- @@ -686,13 +686,11 @@ bfd_elf_record_link_assignment (bfd *output_bfd,
- && !h->def_regular)
- h->root.type = bfd_link_hash_undefined;
-
- - /* If this symbol is not being provided by the linker script, and it is
- - currently defined by a dynamic object, but not by a regular object,
- - then clear out any version information because the symbol will not be
- - associated with the dynamic object any more. */
- - if (!provide
- - && h->def_dynamic
- - && !h->def_regular)
- + /* If this symbol is currently defined by a dynamic object, but not
- + by a regular object, then clear out any version information because
- + the symbol will not be associated with the dynamic object any
- + more. */
- + if (h->def_dynamic && !h->def_regular)
- h->verinfo.verdef = NULL;
-
- /* Make sure this symbol is not garbage collected. */
- @@ -2360,10 +2358,19 @@ _bfd_elf_link_assign_sym_version (struct elf_link_hash_entry *h, void *data)
- return FALSE;
- }
-
- + bed = get_elf_backend_data (info->output_bfd);
- +
- /* We only need version numbers for symbols defined in regular
- objects. */
- if (!h->def_regular)
- - return TRUE;
- + {
- + /* Hide symbols defined in discarded input sections. */
- + if ((h->root.type == bfd_link_hash_defined
- + || h->root.type == bfd_link_hash_defweak)
- + && discarded_section (h->root.u.def.section))
- + (*bed->elf_backend_hide_symbol) (info, h, TRUE);
- + return TRUE;
- + }
-
- hide = FALSE;
- bed = get_elf_backend_data (info->output_bfd);
- diff --git a/bfd/elfnn-aarch64.c b/bfd/elfnn-aarch64.c
- index cf321f32c2..d4964b1b11 100644
- --- a/bfd/elfnn-aarch64.c
- +++ b/bfd/elfnn-aarch64.c
- @@ -3845,7 +3845,7 @@ _bfd_aarch64_erratum_835769_scan (bfd *input_bfd,
- static bfd_boolean
- _bfd_aarch64_adrp_p (uint32_t insn)
- {
- - return ((insn & 0x9f000000) == 0x90000000);
- + return ((insn & AARCH64_ADRP_OP_MASK) == AARCH64_ADRP_OP);
- }
-
-
- @@ -5074,7 +5074,7 @@ _bfd_aarch64_erratum_843419_branch_to_stub (struct bfd_hash_entry *gen_entry,
- + stub_entry->adrp_offset);
- insn = bfd_getl32 (contents + stub_entry->adrp_offset);
-
- - if ((insn & AARCH64_ADRP_OP_MASK) != AARCH64_ADRP_OP)
- + if (!_bfd_aarch64_adrp_p (insn))
- abort ();
-
- bfd_signed_vma imm =
- @@ -5939,6 +5939,64 @@ bad_ifunc_reloc:
- # define movz_hw_R0 (0x52c00000)
- #endif
-
- +/* Structure to hold payload for _bfd_aarch64_erratum_843419_clear_stub,
- + it is used to identify the stub information to reset. */
- +
- +struct erratum_843419_branch_to_stub_clear_data
- +{
- + bfd_vma adrp_offset;
- + asection *output_section;
- +};
- +
- +/* Clear the erratum information for GEN_ENTRY if the ADRP_OFFSET and
- + section inside IN_ARG matches. The clearing is done by setting the
- + stub_type to none. */
- +
- +static bfd_boolean
- +_bfd_aarch64_erratum_843419_clear_stub (struct bfd_hash_entry *gen_entry,
- + void *in_arg)
- +{
- + struct elf_aarch64_stub_hash_entry *stub_entry
- + = (struct elf_aarch64_stub_hash_entry *) gen_entry;
- + struct erratum_843419_branch_to_stub_clear_data *data
- + = (struct erratum_843419_branch_to_stub_clear_data *) in_arg;
- +
- + if (stub_entry->target_section != data->output_section
- + || stub_entry->stub_type != aarch64_stub_erratum_843419_veneer
- + || stub_entry->adrp_offset != data->adrp_offset)
- + return TRUE;
- +
- + /* Change the stub type instead of removing the entry, removing from the hash
- + table would be slower and we have already reserved the memory for the entry
- + so there wouldn't be much gain. Changing the stub also keeps around a
- + record of what was there before. */
- + stub_entry->stub_type = aarch64_stub_none;
- +
- + /* We're done and there could have been only one matching stub at that
- + particular offset, so abort further traversal. */
- + return FALSE;
- +}
- +
- +/* TLS Relaxations may relax an adrp sequence that matches the erratum 843419
- + sequence. In this case the erratum no longer applies and we need to remove
- + the entry from the pending stub generation. This clears matching adrp insn
- + at ADRP_OFFSET in INPUT_SECTION in the stub table defined in GLOBALS. */
- +
- +static void
- +clear_erratum_843419_entry (struct elf_aarch64_link_hash_table *globals,
- + bfd_vma adrp_offset, asection *input_section)
- +{
- + if (globals->fix_erratum_843419)
- + {
- + struct erratum_843419_branch_to_stub_clear_data data;
- + data.adrp_offset = adrp_offset;
- + data.output_section = input_section;
- +
- + bfd_hash_traverse (&globals->stub_hash_table,
- + _bfd_aarch64_erratum_843419_clear_stub, &data);
- + }
- +}
- +
- /* Handle TLS relaxations. Relaxing is possible for symbols that use
- R_AARCH64_TLSDESC_ADR_{PAGE, LD64_LO12_NC, ADD_LO12_NC} during a static
- link.
- @@ -5949,8 +6007,9 @@ bad_ifunc_reloc:
-
- static bfd_reloc_status_type
- elfNN_aarch64_tls_relax (struct elf_aarch64_link_hash_table *globals,
- - bfd *input_bfd, bfd_byte *contents,
- - Elf_Internal_Rela *rel, struct elf_link_hash_entry *h)
- + bfd *input_bfd, asection *input_section,
- + bfd_byte *contents, Elf_Internal_Rela *rel,
- + struct elf_link_hash_entry *h)
- {
- bfd_boolean is_local = h == NULL;
- unsigned int r_type = ELFNN_R_TYPE (rel->r_info);
- @@ -5971,6 +6030,9 @@ elfNN_aarch64_tls_relax (struct elf_aarch64_link_hash_table *globals,
-
- Where R is x for LP64, and w for ILP32. */
- bfd_putl32 (movz_R0, contents + rel->r_offset);
- + /* We have relaxed the adrp into a mov, we may have to clear any
- + pending erratum fixes. */
- + clear_erratum_843419_entry (globals, rel->r_offset, input_section);
- return bfd_reloc_continue;
- }
- else
- @@ -6261,6 +6323,9 @@ elfNN_aarch64_tls_relax (struct elf_aarch64_link_hash_table *globals,
- {
- insn = bfd_getl32 (contents + rel->r_offset);
- bfd_putl32 (movz_R0 | (insn & 0x1f), contents + rel->r_offset);
- + /* We have relaxed the adrp into a mov, we may have to clear any
- + pending erratum fixes. */
- + clear_erratum_843419_entry (globals, rel->r_offset, input_section);
- }
- return bfd_reloc_continue;
-
- @@ -6485,7 +6550,8 @@ elfNN_aarch64_relocate_section (bfd *output_bfd,
- howto = elfNN_aarch64_howto_from_bfd_reloc (bfd_r_type);
- BFD_ASSERT (howto != NULL);
- r_type = howto->type;
- - r = elfNN_aarch64_tls_relax (globals, input_bfd, contents, rel, h);
- + r = elfNN_aarch64_tls_relax (globals, input_bfd, input_section,
- + contents, rel, h);
- unresolved_reloc = 0;
- }
- else
- @@ -8076,6 +8142,8 @@ aarch64_map_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- if (!elfNN_aarch64_output_map_sym (osi, AARCH64_MAP_INSN, addr))
- return FALSE;
- break;
- + case aarch64_stub_none:
- + break;
-
- default:
- abort ();
- diff --git a/bfd/elfxx-x86.c b/bfd/elfxx-x86.c
- index a2497aab86..2d8f7b640b 100644
- --- a/bfd/elfxx-x86.c
- +++ b/bfd/elfxx-x86.c
- @@ -2407,12 +2407,27 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
- switch (pr_type)
- {
- case GNU_PROPERTY_X86_ISA_1_USED:
- + if (aprop == NULL || bprop == NULL)
- + {
- + /* Only one of APROP and BPROP can be NULL. */
- + if (aprop != NULL)
- + {
- + /* Remove this property since the other input file doesn't
- + have it. */
- + aprop->pr_kind = property_remove;
- + updated = TRUE;
- + }
- + break;
- + }
- + goto or_property;
- +
- case GNU_PROPERTY_X86_ISA_1_NEEDED:
- if (aprop != NULL && bprop != NULL)
- {
- +or_property:
- number = aprop->u.number;
- aprop->u.number = number | bprop->u.number;
- - /* Remove the property if ISA bits are empty. */
- + /* Remove the property if all bits are empty. */
- if (aprop->u.number == 0)
- {
- aprop->pr_kind = property_remove;
- @@ -2428,14 +2443,14 @@ _bfd_x86_elf_merge_gnu_properties (struct bfd_link_info *info,
- {
- if (aprop->u.number == 0)
- {
- - /* Remove APROP if ISA bits are empty. */
- + /* Remove APROP if all bits are empty. */
- aprop->pr_kind = property_remove;
- updated = TRUE;
- }
- }
- else
- {
- - /* Return TRUE if APROP is NULL and ISA bits of BPROP
- + /* Return TRUE if APROP is NULL and all bits of BPROP
- aren't empty to indicate that BPROP should be added
- to ABFD. */
- updated = bprop->u.number != 0;
- @@ -2524,6 +2539,7 @@ _bfd_x86_elf_link_setup_gnu_properties
- const struct elf_backend_data *bed;
- unsigned int class_align = ABI_64_P (info->output_bfd) ? 3 : 2;
- unsigned int got_align;
- + bfd_boolean has_text = FALSE;
-
- features = 0;
- if (info->ibt)
- @@ -2538,24 +2554,75 @@ _bfd_x86_elf_link_setup_gnu_properties
- if (bfd_get_flavour (pbfd) == bfd_target_elf_flavour
- && bfd_count_sections (pbfd) != 0)
- {
- + if (!has_text)
- + {
- + /* Check if there is no non-empty text section. */
- + sec = bfd_get_section_by_name (pbfd, ".text");
- + if (sec != NULL && sec->size != 0)
- + has_text = TRUE;
- + }
- +
- ebfd = pbfd;
-
- if (elf_properties (pbfd) != NULL)
- break;
- }
-
- - if (ebfd != NULL && features)
- + bed = get_elf_backend_data (info->output_bfd);
- +
- + htab = elf_x86_hash_table (info, bed->target_id);
- + if (htab == NULL)
- + return pbfd;
- +
- + if (ebfd != NULL)
- {
- - /* If features is set, add GNU_PROPERTY_X86_FEATURE_1_IBT and
- - GNU_PROPERTY_X86_FEATURE_1_SHSTK. */
- - prop = _bfd_elf_get_property (ebfd,
- - GNU_PROPERTY_X86_FEATURE_1_AND,
- - 4);
- - prop->u.number |= features;
- - prop->pr_kind = property_number;
- + prop = NULL;
- + if (features)
- + {
- + /* If features is set, add GNU_PROPERTY_X86_FEATURE_1_IBT and
- + GNU_PROPERTY_X86_FEATURE_1_SHSTK. */
- + prop = _bfd_elf_get_property (ebfd,
- + GNU_PROPERTY_X86_FEATURE_1_AND,
- + 4);
- + prop->u.number |= features;
- + prop->pr_kind = property_number;
- + }
- + else if (has_text
- + && elf_tdata (info->output_bfd)->o->build_id.sec == NULL
- + && !htab->elf.dynamic_sections_created
- + && !info->traditional_format
- + && (info->output_bfd->flags & D_PAGED) != 0
- + && info->separate_code)
- + {
- + /* If the separate code program header is needed, make sure
- + that the first read-only PT_LOAD segment has no code by
- + adding a GNU_PROPERTY_X86_ISA_1_NEEDED note. */
- + elf_property_list *list;
- + bfd_boolean need_property = TRUE;
- +
- + for (list = elf_properties (ebfd); list; list = list->next)
- + switch (list->property.pr_type)
- + {
- + case GNU_PROPERTY_STACK_SIZE:
- + case GNU_PROPERTY_NO_COPY_ON_PROTECTED:
- + case GNU_PROPERTY_X86_ISA_1_NEEDED:
- + /* These properties won't be removed during merging. */
- + need_property = FALSE;
- + break;
- + }
- +
- + if (need_property)
- + {
- + prop = _bfd_elf_get_property (ebfd,
- + GNU_PROPERTY_X86_ISA_1_NEEDED,
- + 4);
- + prop->u.number = GNU_PROPERTY_X86_ISA_1_486;
- + prop->pr_kind = property_number;
- + }
- + }
-
- /* Create the GNU property note section if needed. */
- - if (pbfd == NULL)
- + if (prop != NULL && pbfd == NULL)
- {
- sec = bfd_make_section_with_flags (ebfd,
- NOTE_GNU_PROPERTY_SECTION_NAME,
- @@ -2581,12 +2648,6 @@ error_alignment:
-
- pbfd = _bfd_elf_link_setup_gnu_properties (info);
-
- - bed = get_elf_backend_data (info->output_bfd);
- -
- - htab = elf_x86_hash_table (info, bed->target_id);
- - if (htab == NULL)
- - return pbfd;
- -
- htab->r_info = init_table->r_info;
- htab->r_sym = init_table->r_sym;
-
- diff --git a/bfd/version.h b/bfd/version.h
- index 222d2e62c3..333881dcd9 100644
- --- a/bfd/version.h
- +++ b/bfd/version.h
- @@ -16,7 +16,7 @@
-
- In releases, the date is not included in either version strings or
- sonames. */
- -#define BFD_VERSION_DATE 20180718
- +#define BFD_VERSION_DATE 20181130
- #define BFD_VERSION @bfd_version@
- #define BFD_VERSION_STRING @bfd_version_package@ @bfd_version_string@
- #define REPORT_BUGS_TO @report_bugs_to@
- diff --git a/binutils/ChangeLog b/binutils/ChangeLog
- index 32f47d5e07..6ef8592ff2 100644
- --- a/binutils/ChangeLog
- +++ b/binutils/ChangeLog
- @@ -1,3 +1,9 @@
- +2018-09-12 H.J. Lu <hongjiu.lu@intel.com>
- +
- + PR ld/23499
- + * readelf.c (get_symbol_version_string): Return _("<corrupt>")
- + for corrupt symbol version info.
- +
- 2018-07-18 Nick Clifton <nickc@redhat.com>
-
- 2.31.1 Release point.
- diff --git a/binutils/readelf.c b/binutils/readelf.c
- index 1b50ba7631..f4df697a7d 100644
- --- a/binutils/readelf.c
- +++ b/binutils/readelf.c
- @@ -11252,6 +11252,7 @@ get_symbol_version_string (Filedata * filedata,
- unsigned char data[2];
- unsigned short vers_data;
- unsigned long offset;
- + unsigned short max_vd_ndx;
-
- if (!is_dynsym
- || version_info[DT_VERSIONTAGIDX (DT_VERSYM)] == 0)
- @@ -11269,6 +11270,8 @@ get_symbol_version_string (Filedata * filedata,
- if ((vers_data & VERSYM_HIDDEN) == 0 && vers_data == 0)
- return NULL;
-
- + max_vd_ndx = 0;
- +
- /* Usually we'd only see verdef for defined symbols, and verneed for
- undefined symbols. However, symbols defined by the linker in
- .dynbss for variables copied from a shared library in order to
- @@ -11311,6 +11314,9 @@ get_symbol_version_string (Filedata * filedata,
- ivd.vd_flags = BYTE_GET (evd.vd_flags);
- }
-
- + if ((ivd.vd_ndx & VERSYM_VERSION) > max_vd_ndx)
- + max_vd_ndx = ivd.vd_ndx & VERSYM_VERSION;
- +
- off += ivd.vd_next;
- }
- while (ivd.vd_ndx != (vers_data & VERSYM_VERSION) && ivd.vd_next != 0);
- @@ -11402,6 +11408,9 @@ get_symbol_version_string (Filedata * filedata,
- return (ivna.vna_name < strtab_size
- ? strtab + ivna.vna_name : _("<corrupt>"));
- }
- + else if ((max_vd_ndx || (vers_data & VERSYM_VERSION) != 1)
- + && (vers_data & VERSYM_VERSION) > max_vd_ndx)
- + return _("<corrupt>");
- }
- return NULL;
- }
- diff --git a/gas/ChangeLog b/gas/ChangeLog
- index bb4541900d..67e9327ed2 100644
- --- a/gas/ChangeLog
- +++ b/gas/ChangeLog
- @@ -1,3 +1,82 @@
- +2018-11-05 H.J. Lu <hongjiu.lu@intel.com>
- +
- + PR gas/23854
- + * config/tc-i386.c (output_disp): Disable GOT relaxation with
- + data prefix.
- + * testsuite/gas/i386/mixed-mode-reloc32.d: Updated.
- +
- +2018-10-19 Tamar Christina <tamar.christina@arm.com>
- +
- + * testsuite/gas/arm/undefined-insn-arm.d: Widen pe skip.
- + * testsuite/gas/arm/undefined-insn-thumb.d: Likewise.
- +
- +2018-10-19 Tamar Christina <tamar.christina@arm.com>
- +
- + * testsuite/gas/arm/undefined-insn-arm.d: New test.
- + * testsuite/gas/arm/undefined-insn-thumb.d: New test.
- + * testsuite/gas/arm/undefined-insn.s: New test.
- +
- +2018-10-16 Matthew Malcomson <matthew.malcomson@arm.com>
- +
- + * testsuite/gas/aarch64/illegal-dotproduct.d: New test.
- + * testsuite/gas/aarch64/illegal-dotproduct.l: New test.
- + * testsuite/gas/aarch64/illegal-dotproduct.s: New test.
- +
- +2018-10-05 H.J. Lu <hongjiu.lu@intel.com>
- +
- + * testsuite/gas/i386/se1.s: Add enclv.
- + * testsuite/gas/i386/x86-64-se1.s: Likewise.
- + * testsuite/gas/i386/se1.d: Updated.
- + * testsuite/gas/i386/x86-64-se1.d: Likewise.
- +
- +2018-09-18 Tamar Christina <tamar.christina@arm.com>
- +
- + * config/tc-aarch64.c (output_operand_error_report): Apply filtering to
- + current instead of head message.
- +
- +2018-09-17 Nick Clifton <nickc@redhat.com>
- +
- + backport from mainline:
- + * 2018-08-14 Robert Yang <liezhi.yang@windriver.com>
- +
- + * as.c (main): Improve check for input file matching output file.
- +
- +2018-08-10 H.J. Lu <hongjiu.lu@intel.com>
- +
- + * testsuite/gas/i386/evex-no-scale.s: Removed.
- + * testsuite/gas/i386/evex-no-scale-32.d: Don't use
- + evex-no-scale.s.
- + * testsuite/gas/i386/evex-no-scale-64.d: Likewise.
- + * testsuite/gas/i386/evex-no-scale-32.s: New file.
- + * testsuite/gas/i386/evex-no-scale-64.s: Likewise.
- +
- +2018-08-10 H.J. Lu <hongjiu.lu@intel.com>
- +
- + * testsuite/gas/i386/i386.exp: Run evex-no-scale-32 and
- + evex-no-scale-64 only for ELF targets.
- +
- +2018-07-31 Jan Beulich <jbeulich@suse.com>
- +
- + PR gas/23465
- + * config/tc-i386.c (output_disp): Restrict scaling.
- + * testsuite/gas/i386/evex-no-scale.s,
- + testsuite/gas/i386/evex-no-scale-32.d
- + testsuite/gas/i386/evex-no-scale-64.d: New.
- + * testsuite/gas/i386/i386.exp: Run new tests.
- +
- +2018-07-30 John David Anglin <danglin@gcc.gnu.org>
- +
- + * config/tc-hppa.c: Include "struc-symbol.h".
- + (pa_build_unwind_subspace): Use call_info->start_symbol->sy_frag
- + instead of frag_now for local symbol replacement.
- +
- +2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
- +
- + PR gas/23418
- + * testsuite/gas/i386/xmmword.s: Add tests for vcvtps2qq,
- + vcvtps2uqq, vcvttps2qq and vcvttps2uqq.
- + * testsuite/gas/i386/xmmword.l: Updated.
- +
- 2018-07-18 Nick Clifton <nickc@redhat.com>
-
- 2.31.1 Release point.
- diff --git a/gas/as.c b/gas/as.c
- index 02c7d2970b..919c24a24a 100644
- --- a/gas/as.c
- +++ b/gas/as.c
- @@ -1254,14 +1254,27 @@ main (int argc, char ** argv)
- {
- struct stat sib;
-
- - if (stat (argv[i], &sib) == 0)
- + /* Check that the input file and output file are different. */
- + if (stat (argv[i], &sib) == 0
- + && sib.st_ino == sob.st_ino
- + /* POSIX emulating systems may support stat() but if the
- + underlying file system does not support a file serial number
- + of some kind then they will return 0 for the inode. So
- + two files with an inode of 0 may not actually be the same.
- + On real POSIX systems no ordinary file will ever have an
- + inode of 0. */
- + && sib.st_ino != 0
- + /* Different files may have the same inode number if they
- + reside on different devices, so check the st_dev field as
- + well. */
- + && sib.st_dev == sob.st_dev)
- {
- - if (sib.st_ino == sob.st_ino && sib.st_ino != 0)
- - {
- - /* Don't let as_fatal remove the output file! */
- - out_file_name = NULL;
- - as_fatal (_("The input and output files must be distinct"));
- - }
- + const char *saved_out_file_name = out_file_name;
- +
- + /* Don't let as_fatal remove the output file! */
- + out_file_name = NULL;
- + as_fatal (_("The input '%s' and output '%s' files are the same"),
- + argv[i], saved_out_file_name);
- }
- }
- }
- diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
- index 31985963e3..c77de21d19 100644
- --- a/gas/config/tc-aarch64.c
- +++ b/gas/config/tc-aarch64.c
- @@ -4809,7 +4809,7 @@ output_operand_error_report (char *str, bfd_boolean non_fatal_only)
- /* If we don't want to print non-fatal errors then don't consider them
- at all. */
- if (curr->detail.kind != kind
- - || (non_fatal_only && !head->detail.non_fatal))
- + || (non_fatal_only && !curr->detail.non_fatal))
- continue;
- /* If there are multiple errors, pick up the one with the highest
- mismatching operand index. In the case of multiple errors with
- diff --git a/gas/config/tc-hppa.c b/gas/config/tc-hppa.c
- index e69fdb2b39..ccae68cb40 100644
- --- a/gas/config/tc-hppa.c
- +++ b/gas/config/tc-hppa.c
- @@ -23,6 +23,7 @@
-
- #include "as.h"
- #include "safe-ctype.h"
- +#include "struc-symbol.h"
- #include "subsegs.h"
- #include "dw2gencfi.h"
-
- @@ -5989,7 +5990,8 @@ pa_build_unwind_subspace (struct call_info *call_info)
- else
- {
- symbolP = symbol_new (name, now_seg,
- - S_GET_VALUE (call_info->start_symbol), frag_now);
- + S_GET_VALUE (call_info->start_symbol),
- + call_info->start_symbol->sy_frag);
- gas_assert (symbolP);
- S_CLEAR_EXTERNAL (symbolP);
- symbol_table_insert (symbolP);
- diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
- index 2d20f1cae9..a288a31844 100644
- --- a/gas/config/tc-i386.c
- +++ b/gas/config/tc-i386.c
- @@ -7857,7 +7857,8 @@ output_disp (fragS *insn_start_frag, offsetT insn_start_off)
- int size = disp_size (n);
- offsetT val = i.op[n].disps->X_add_number;
-
- - val = offset_in_range (val >> i.memshift, size);
- + val = offset_in_range (val >> (size == 1 ? i.memshift : 0),
- + size);
- p = frag_more (size);
- md_number_to_chars (p, val, size);
- }
- @@ -7942,12 +7943,13 @@ output_disp (fragS *insn_start_frag, offsetT insn_start_off)
- /* Check for "call/jmp *mem", "mov mem, %reg",
- "test %reg, mem" and "binop mem, %reg" where binop
- is one of adc, add, and, cmp, or, sbb, sub, xor
- - instructions. Always generate R_386_GOT32X for
- - "sym*GOT" operand in 32-bit mode. */
- - if ((generate_relax_relocations
- - || (!object_64bit
- - && i.rm.mode == 0
- - && i.rm.regmem == 5))
- + instructions without data prefix. Always generate
- + R_386_GOT32X for "sym*GOT" operand in 32-bit mode. */
- + if (i.prefix[DATA_PREFIX] == 0
- + && (generate_relax_relocations
- + || (!object_64bit
- + && i.rm.mode == 0
- + && i.rm.regmem == 5))
- && (i.rm.mode == 2
- || (i.rm.mode == 0 && i.rm.regmem == 5))
- && ((i.operands == 1
- diff --git a/gas/testsuite/gas/aarch64/illegal-dotproduct.d b/gas/testsuite/gas/aarch64/illegal-dotproduct.d
- new file mode 100644
- index 0000000000..8d8b1b8506
- --- /dev/null
- +++ b/gas/testsuite/gas/aarch64/illegal-dotproduct.d
- @@ -0,0 +1,4 @@
- +#as: -march=armv8.2-a+dotprod
- +#name: Invalid dotproduct instructions.
- +#source: illegal-dotproduct.s
- +#error-output: illegal-dotproduct.l
- diff --git a/gas/testsuite/gas/aarch64/illegal-dotproduct.l b/gas/testsuite/gas/aarch64/illegal-dotproduct.l
- new file mode 100644
- index 0000000000..06d0d78b8d
- --- /dev/null
- +++ b/gas/testsuite/gas/aarch64/illegal-dotproduct.l
- @@ -0,0 +1,13 @@
- +[^:]+: Assembler messages:
- +[^:]+:[0-9]+: Error: register element index out of range 0 to 3 at operand 3 -- `udot V0.2S,V0.8B,V0.4B\[4\]'
- +[^:]+:[0-9]+: Error: operand mismatch -- `udot V0.4S,V0.8B,V0.4B\[4\]'
- +[^:]+:[0-9]+: Info: did you mean this\?
- +[^:]+:[0-9]+: Info: udot v0.2s, v0.8b, v0.4b\[4\]
- +[^:]+:[0-9]+: Info: other valid variant\(s\):
- +[^:]+:[0-9]+: Info: udot v0.4s, v0.16b, v0.4b\[4\]
- +[^:]+:[0-9]+: Error: register element index out of range 0 to 3 at operand 3 -- `sdot V0.2S,V0.8B,V0.4B\[4\]'
- +[^:]+:[0-9]+: Error: operand mismatch -- `sdot V0.2S,V0.8B,V0.4H\[4\]'
- +[^:]+:[0-9]+: Info: did you mean this\?
- +[^:]+:[0-9]+: Info: sdot v0.2s, v0.8b, v0.4b\[4\]
- +[^:]+:[0-9]+: Info: other valid variant\(s\):
- +[^:]+:[0-9]+: Info: sdot v0.4s, v0.16b, v0.4b\[4\]
- diff --git a/gas/testsuite/gas/aarch64/illegal-dotproduct.s b/gas/testsuite/gas/aarch64/illegal-dotproduct.s
- new file mode 100644
- index 0000000000..9c714ae54d
- --- /dev/null
- +++ b/gas/testsuite/gas/aarch64/illegal-dotproduct.s
- @@ -0,0 +1,4 @@
- +UDOT V0.2S, V0.8B, V0.4B[4]
- +UDOT V0.4S, V0.8B, V0.4B[4]
- +SDOT V0.2S, V0.8B, V0.4B[4]
- +SDOT V0.2S, V0.8B, V0.4H[4]
- diff --git a/gas/testsuite/gas/arm/undefined-insn-arm.d b/gas/testsuite/gas/arm/undefined-insn-arm.d
- new file mode 100644
- index 0000000000..175e778b50
- --- /dev/null
- +++ b/gas/testsuite/gas/arm/undefined-insn-arm.d
- @@ -0,0 +1,5 @@
- +#name: Undefined binary printing in arm mode
- +#skip: *-*-pe *-*-vxworks
- +#source: undefined-insn.s
- +#objdump: -D -b binary -m armv5te
- +#...
- diff --git a/gas/testsuite/gas/arm/undefined-insn-thumb.d b/gas/testsuite/gas/arm/undefined-insn-thumb.d
- new file mode 100644
- index 0000000000..a5b4159f1e
- --- /dev/null
- +++ b/gas/testsuite/gas/arm/undefined-insn-thumb.d
- @@ -0,0 +1,5 @@
- +#name: Undefined binary printing in thumb mode
- +#skip: *-*-pe *-*-vxworks
- +#source: undefined-insn.s
- +#objdump: -D -b binary -m armv5te -M force-thumb
- +#...
- diff --git a/gas/testsuite/gas/arm/undefined-insn.s b/gas/testsuite/gas/arm/undefined-insn.s
- new file mode 100644
- index 0000000000..cf59a03d1d
- --- /dev/null
- +++ b/gas/testsuite/gas/arm/undefined-insn.s
- @@ -0,0 +1 @@
- + .inst 0xffffffff
- diff --git a/gas/testsuite/gas/i386/evex-no-scale-32.d b/gas/testsuite/gas/i386/evex-no-scale-32.d
- new file mode 100644
- index 0000000000..0a2860d32e
- --- /dev/null
- +++ b/gas/testsuite/gas/i386/evex-no-scale-32.d
- @@ -0,0 +1,12 @@
- +#objdump: -dw
- +#name: ix86 EVEX no disp scaling
- +
- +.*: +file format .*
- +
- +Disassembly of section .text:
- +
- +0+ <disp>:
- + +[a-f0-9]+: 62 f1 7c 48 28 04 05 40 00 00 00 vmovaps 0x40\(,%eax,1\),%zmm0
- + +[a-f0-9]+: 62 f1 7c 48 28 04 25 40 00 00 00 vmovaps 0x40\(,%eiz,1\),%zmm0
- + +[a-f0-9]+: 62 f1 7c 48 28 05 40 00 00 00 vmovaps 0x40,%zmm0
- + +[a-f0-9]+: 67 62 f1 7c 48 28 06 40 00 vmovaps 0x40,%zmm0
- diff --git a/gas/testsuite/gas/i386/evex-no-scale-32.s b/gas/testsuite/gas/i386/evex-no-scale-32.s
- new file mode 100644
- index 0000000000..e28c73f2a3
- --- /dev/null
- +++ b/gas/testsuite/gas/i386/evex-no-scale-32.s
- @@ -0,0 +1,7 @@
- + .allow_index_reg
- + .text
- +disp:
- + vmovaps 64(,%eax), %zmm0
- + vmovaps 64(,%eiz), %zmm0
- + vmovaps 64, %zmm0
- + addr16 vmovaps 64, %zmm0
- diff --git a/gas/testsuite/gas/i386/evex-no-scale-64.d b/gas/testsuite/gas/i386/evex-no-scale-64.d
- new file mode 100644
- index 0000000000..d52d947ab3
- --- /dev/null
- +++ b/gas/testsuite/gas/i386/evex-no-scale-64.d
- @@ -0,0 +1,14 @@
- +#objdump: -dw
- +#name: x86-64 EVEX no disp scaling
- +
- +.*: +file format .*
- +
- +Disassembly of section .text:
- +
- +0+ <disp>:
- + +[a-f0-9]+: 62 f1 7c 48 28 05 00 fc ff ff vmovaps -0x400\(%rip\),%zmm0 # .*
- + +[a-f0-9]+: 62 f1 7c 48 28 04 05 40 00 00 00 vmovaps 0x40\(,%rax,1\),%zmm0
- + +[a-f0-9]+: 62 f1 7c 48 28 04 25 40 00 00 00 vmovaps 0x40,%zmm0
- + +[a-f0-9]+: 67 62 f1 7c 48 28 04 05 40 00 00 00 vmovaps 0x40\(,%eax,1\),%zmm0
- + +[a-f0-9]+: 67 62 f1 7c 48 28 04 25 40 00 00 00 addr32 vmovaps 0x40,%zmm0
- + +[a-f0-9]+: 62 f1 7c 48 28 04 25 40 00 00 00 vmovaps 0x40,%zmm0
- diff --git a/gas/testsuite/gas/i386/evex-no-scale-64.s b/gas/testsuite/gas/i386/evex-no-scale-64.s
- new file mode 100644
- index 0000000000..bc3749cc0c
- --- /dev/null
- +++ b/gas/testsuite/gas/i386/evex-no-scale-64.s
- @@ -0,0 +1,9 @@
- + .allow_index_reg
- + .text
- +disp:
- + vmovaps -1024(%rip), %zmm0
- + vmovaps 64(,%rax), %zmm0
- + vmovaps 64(,%riz), %zmm0
- + vmovaps 64(,%eax), %zmm0
- + vmovaps 64(,%eiz), %zmm0
- + vmovaps 64, %zmm0
- diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
- index 9cc927a962..3987862477 100644
- --- a/gas/testsuite/gas/i386/i386.exp
- +++ b/gas/testsuite/gas/i386/i386.exp
- @@ -525,6 +525,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_32_check]]
- run_dump_test "nop-5"
- run_dump_test "nop-6"
-
- + run_dump_test "evex-no-scale-32"
- +
- if { [gas_64_check] } then {
- run_dump_test "att-regs"
- run_dump_test "intel-regs"
- @@ -1017,6 +1019,8 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t
- run_dump_test "x86-64-nop-4"
- run_dump_test "x86-64-nop-5"
- run_dump_test "x86-64-nop-6"
- +
- + run_dump_test "evex-no-scale-64"
- }
-
- set ASFLAGS "$old_ASFLAGS"
- diff --git a/gas/testsuite/gas/i386/mixed-mode-reloc32.d b/gas/testsuite/gas/i386/mixed-mode-reloc32.d
- index a2ef6a0b85..59234bc9be 100644
- --- a/gas/testsuite/gas/i386/mixed-mode-reloc32.d
- +++ b/gas/testsuite/gas/i386/mixed-mode-reloc32.d
- @@ -7,7 +7,7 @@
-
- RELOCATION RECORDS FOR \[.text\]:
- OFFSET[ ]+TYPE[ ]+VALUE[ ]*
- -[0-9a-f]+[ ]+R_386_GOT32X[ ]+xtrn[ ]*
- +[0-9a-f]+[ ]+R_386_GOT32[ ]+xtrn[ ]*
- [0-9a-f]+[ ]+R_386_PLT32[ ]+xtrn[ ]*
- [0-9a-f]+[ ]+R_386_GOT32X[ ]+xtrn[ ]*
- [0-9a-f]+[ ]+R_386_PLT32[ ]+xtrn[ ]*
- diff --git a/gas/testsuite/gas/i386/se1.d b/gas/testsuite/gas/i386/se1.d
- index ff2685c781..d7800ab885 100644
- --- a/gas/testsuite/gas/i386/se1.d
- +++ b/gas/testsuite/gas/i386/se1.d
- @@ -10,4 +10,5 @@ Disassembly of section .text:
- 0+ <_start>:
- [ ]*[a-f0-9]+: 0f 01 cf encls
- [ ]*[a-f0-9]+: 0f 01 d7 enclu
- +[ ]*[a-f0-9]+: 0f 01 c0 enclv
- #pass
- diff --git a/gas/testsuite/gas/i386/se1.s b/gas/testsuite/gas/i386/se1.s
- index 1b57ac87fe..92d57952c0 100644
- --- a/gas/testsuite/gas/i386/se1.s
- +++ b/gas/testsuite/gas/i386/se1.s
- @@ -5,3 +5,4 @@ _start:
-
- encls
- enclu
- + enclv
- diff --git a/gas/testsuite/gas/i386/x86-64-se1.d b/gas/testsuite/gas/i386/x86-64-se1.d
- index 29494f0090..a515219406 100644
- --- a/gas/testsuite/gas/i386/x86-64-se1.d
- +++ b/gas/testsuite/gas/i386/x86-64-se1.d
- @@ -10,4 +10,5 @@ Disassembly of section .text:
- 0+ <_start>:
- [ ]*[a-f0-9]+: 0f 01 cf encls
- [ ]*[a-f0-9]+: 0f 01 d7 enclu
- +[ ]*[a-f0-9]+: 0f 01 c0 enclv
- #pass
- diff --git a/gas/testsuite/gas/i386/x86-64-se1.s b/gas/testsuite/gas/i386/x86-64-se1.s
- index 1b57ac87fe..92d57952c0 100644
- --- a/gas/testsuite/gas/i386/x86-64-se1.s
- +++ b/gas/testsuite/gas/i386/x86-64-se1.s
- @@ -5,3 +5,4 @@ _start:
-
- encls
- enclu
- + enclv
- diff --git a/gas/testsuite/gas/i386/xmmword.l b/gas/testsuite/gas/i386/xmmword.l
- index ce3af8d150..7d25cb3de2 100644
- --- a/gas/testsuite/gas/i386/xmmword.l
- +++ b/gas/testsuite/gas/i386/xmmword.l
- @@ -99,3 +99,7 @@
- .*:127: Error: .* `vpmovzxwq'
- .*:128: Error: .* `vpmovzxwq'
- .*:129: Error: .* `vpmovzxwq'
- +.*:131: Error: .* `vcvtps2qq'
- +.*:132: Error: .* `vcvtps2uqq'
- +.*:133: Error: .* `vcvttps2qq'
- +.*:134: Error: .* `vcvttps2uqq'
- diff --git a/gas/testsuite/gas/i386/xmmword.s b/gas/testsuite/gas/i386/xmmword.s
- index 47d2d8d595..ffe7aca3cb 100644
- --- a/gas/testsuite/gas/i386/xmmword.s
- +++ b/gas/testsuite/gas/i386/xmmword.s
- @@ -127,3 +127,8 @@ xmmword:
- vpmovzxwq xmm0{k7}, xmmword ptr [eax]
- vpmovzxwq ymm0, xmmword ptr [eax]
- vpmovzxwq ymm0{k7}, xmmword ptr [eax]
- +
- + vcvtps2qq xmm0, xmmword ptr [rax]
- + vcvtps2uqq xmm0, xmmword ptr [rax]
- + vcvttps2qq xmm0, xmmword ptr [rax]
- + vcvttps2uqq xmm0, xmmword ptr [rax]
- diff --git a/gold/ChangeLog b/gold/ChangeLog
- index 18af5e69b1..cf998d901a 100644
- --- a/gold/ChangeLog
- +++ b/gold/ChangeLog
- @@ -1,3 +1,15 @@
- +2018-08-06 Cary Coutant <ccoutant@gmail.com>
- +
- + PR gold/23455
- + * options.h (General_options): Add --warn-drop-version option.
- + * symtab.cc (Symbol_table::set_dynsym_indexes): Check it.
- +
- +2018-08-06 Cary Coutant <ccoutant@gmail.com>
- +
- + * target.h (Sized_target::record_gnu_property): Change first two
- + parameters to unsigned int.
- + * x86_64.cc (Target_x86_64::record_gnu_property): Likewise.
- +
- 2018-07-18 Nick Clifton <nickc@redhat.com>
-
- 2.31.1 Release point.
- diff --git a/gold/options.h b/gold/options.h
- index 98d6be8009..11054981c9 100644
- --- a/gold/options.h
- +++ b/gold/options.h
- @@ -1361,6 +1361,10 @@ class General_options
- DEFINE_bool_ignore(warn_constructors, options::TWO_DASHES, '\0',
- N_("Ignored"), N_("Ignored"));
-
- + DEFINE_bool(warn_drop_version, options::TWO_DASHES, '\0', false,
- + N_("Warn when discarding version information"),
- + N_("Do not warn when discarding version information"));
- +
- DEFINE_bool(warn_execstack, options::TWO_DASHES, '\0', false,
- N_("Warn if the stack is executable"),
- N_("Do not warn if the stack is executable"));
- diff --git a/gold/symtab.cc b/gold/symtab.cc
- index aa7644156f..759e0d0222 100644
- --- a/gold/symtab.cc
- +++ b/gold/symtab.cc
- @@ -2623,11 +2623,12 @@ Symbol_table::set_dynsym_indexes(unsigned int index,
- versions->record_version(this, dynpool, sym);
- else
- {
- - gold_warning(_("discarding version information for "
- - "%s@%s, defined in unused shared library %s "
- - "(linked with --as-needed)"),
- - sym->name(), sym->version(),
- - sym->object()->name().c_str());
- + if (parameters->options().warn_drop_version())
- + gold_warning(_("discarding version information for "
- + "%s@%s, defined in unused shared library %s "
- + "(linked with --as-needed)"),
- + sym->name(), sym->version(),
- + sym->object()->name().c_str());
- sym->clear_version();
- }
- }
- diff --git a/gold/target.h b/gold/target.h
- index bb312067b5..bbc87396f6 100644
- --- a/gold/target.h
- +++ b/gold/target.h
- @@ -1147,7 +1147,8 @@ class Sized_target : public Target
- // Record a target-specific program property in the .note.gnu.property
- // section.
- virtual void
- - record_gnu_property(int, int, size_t, const unsigned char*, const Object*)
- + record_gnu_property(unsigned int, unsigned int, size_t,
- + const unsigned char*, const Object*)
- { }
-
- // Merge the target-specific program properties from the current object.
- diff --git a/gold/x86_64.cc b/gold/x86_64.cc
- index 27f273d64b..9d742f6f13 100644
- --- a/gold/x86_64.cc
- +++ b/gold/x86_64.cc
- @@ -1307,7 +1307,8 @@ class Target_x86_64 : public Sized_target<size, false>
- // Record a target-specific program property in the .note.gnu.property
- // section.
- void
- - record_gnu_property(int, int, size_t, const unsigned char*, const Object*);
- + record_gnu_property(unsigned int, unsigned int, size_t,
- + const unsigned char*, const Object*);
-
- // Merge the target-specific program properties from the current object.
- void
- @@ -1579,7 +1580,7 @@ Target_x86_64<size>::rela_irelative_section(Layout* layout)
- template<int size>
- void
- Target_x86_64<size>::record_gnu_property(
- - int, int pr_type,
- + unsigned int, unsigned int pr_type,
- size_t pr_datasz, const unsigned char* pr_data,
- const Object* object)
- {
- diff --git a/include/ChangeLog b/include/ChangeLog
- index 7decb4fd7b..e0b82bc338 100644
- --- a/include/ChangeLog
- +++ b/include/ChangeLog
- @@ -1,3 +1,9 @@
- +2018-11-15 Claudiu Zissulescu <claziss@synopsys.com>
- +
- + Backport from mainline
- + 2018-08-01 Cupertino Miranda <cmiranda@synopsys.com>
- + * arc-reloc.def (ARC_TLS_LE_32): Updated reloc formula.
- +
- 2018-07-18 Nick Clifton <nickc@redhat.com>
-
- 2.31.1 Release point.
- diff --git a/include/elf/arc-reloc.def b/include/elf/arc-reloc.def
- index a6db724da9..61edd6e67a 100644
- --- a/include/elf/arc-reloc.def
- +++ b/include/elf/arc-reloc.def
- @@ -468,7 +468,7 @@ ARC_RELOC_HOWTO(ARC_TLS_DTPOFF, 67, \
- 32, \
- replace_word32, \
- dont, \
- - ( ME ( S - SECTSTART ) + A ))
- + ( ME ( S - FINAL_SECTSTART ) + A ))
-
- ARC_RELOC_HOWTO(ARC_TLS_DTPOFF_S9, 73, \
- 2, \
- @@ -489,7 +489,7 @@ ARC_RELOC_HOWTO(ARC_TLS_LE_32, 75, \
- 32, \
- replace_word32, \
- dont, \
- - ( ME ( ( ( ( S + A ) + TCB_SIZE ) - TLS_REL ) ) ))
- + ( ME ( ( ( ( S + A ) + TLS_TBSS ) - TLS_REL ) ) ))
-
- ARC_RELOC_HOWTO(ARC_S25W_PCREL_PLT, 76, \
- 2, \
- diff --git a/ld/ChangeLog b/ld/ChangeLog
- index c07e442c84..38963b90cf 100644
- --- a/ld/ChangeLog
- +++ b/ld/ChangeLog
- @@ -1,3 +1,134 @@
- +2018-11-30 Alan Modra <amodra@gmail.com>
- +
- + * testsuite/ld-powerpc/pr23937.d,
- + * testsuite/ld-powerpc/pr23937.s: New test.
- + * testsuite/ld-powerpc/powerpc.exp: Run it.
- +
- +2018-11-27 Tamar Christina <tamar.christina@arm.com>
- +
- + PR ld/23904
- + * testsuite/ld-aarch64/aarch64-elf.exp: Add erratum843419_tls_ie.
- + * testsuite/ld-aarch64/erratum843419_tls_ie.d: New test.
- + * testsuite/ld-aarch64/erratum843419_tls_ie.s: New test.
- +
- +2018-11-06 H.J. Lu <hongjiu.lu@intel.com>
- +
- + PR gas/23854
- + * testsuite/ld-i386/i386.exp: Run pr23854.
- + * testsuite/ld-x86-64/x86-64.exp: Likewwise.
- + * testsuite/ld-i386/pr23854.d: New file.
- + * testsuite/ld-i386/pr23854.s: Likewwise.
- + * testsuite/ld-i386/pr23854.d: Likewwise.
- + * testsuite/ld-x86-64/pr23854.d: Likewwise.
- + * testsuite/ld-x86-64/pr23854.s: Likewwise.
- +
- +2018-11-06 H.J. Lu <hongjiu.lu@intel.com>
- +
- + PR ld/23818
- + * testsuite/ld-plugin/lto.exp: Run PR ld/23818 test.
- + * testsuite/ld-plugin/pr23818.d: New file.
- + * testsuite/ld-plugin/pr23818.t: Likewise.
- + * testsuite/ld-plugin/pr23818a.c: Likewise.
- + * testsuite/ld-plugin/pr23818b.c: Likewise.
- +
- +2018-08-12 H.J. Lu <hongjiu.lu@intel.com>
- +
- + * testsuite/ld-x86-64/pr23486b.d: Swap pr23486a.s and pr23486a.s.
- +
- +2018-08-12 H.J. Lu <hongjiu.lu@intel.com>
- +
- + PR ld/23428
- + * testsuite/ld-elf/dummy.s: New file.
- + * testsuite/ld-elf/linux-x86.S: Add X86_FEATURE_1_AND property.
- + * testsuite/ld-elf/linux-x86.exp: Add dummy.s to pr23428.
- +
- +2018-08-10 H.J. Lu <hongjiu.lu@intel.com>
- +
- + PR ld/23486
- + * testsuite/ld-i386/i386.exp: Run PR ld/23486 tests.
- + * testsuite/ld-x86-64/x86-64.exp: Likewise.
- + * testsuite/ld-i386/pr23486a.d: New file.
- + * testsuite/ld-i386/pr23486b.d: Likewise.
- + * testsuite/ld-x86-64/pr23486a-x32.d: Likewise.
- + * testsuite/ld-x86-64/pr23486a.d: Likewise.
- + * testsuite/ld-x86-64/pr23486a.s: Likewise.
- + * testsuite/ld-x86-64/pr23486b-x32.d: Likewise.
- + * testsuite/ld-x86-64/pr23486b.d: Likewise.
- + * testsuite/ld-x86-64/pr23486b.s: Likewise.
- + * testsuite/ld-i386/property-3.r: Remove "x86 ISA used".
- + * testsuite/ld-i386/property-4.r: Likewise.
- + * testsuite/ld-i386/property-5.r: Likewise.
- + * testsuite/ld-i386/property-x86-ibt3a.d: Likewise.
- + * testsuite/ld-i386/property-x86-ibt3b.d: Likewise.
- + * testsuite/ld-i386/property-x86-shstk3a.d: Likewise.
- + * testsuite/ld-i386/property-x86-shstk3b.d: Likewise.
- + * testsuite/ld-x86-64/property-3.r: Likewise.
- + * testsuite/ld-x86-64/property-4.r: Likewise.
- + * testsuite/ld-x86-64/property-5.r: Likewise.
- + * testsuite/ld-x86-64/property-x86-ibt3a-x32.d: Likewise.
- + * testsuite/ld-x86-64/property-x86-ibt3a.d: Likewise.
- + * testsuite/ld-x86-64/property-x86-ibt3b-x32.d: Likewise.
- + * testsuite/ld-x86-64/property-x86-ibt3b.d: Likewise.
- + * testsuite/ld-x86-64/property-x86-shstk3a-x32.d: Likewise.
- + * testsuite/ld-x86-64/property-x86-shstk3a.d: Likewise.
- + * testsuite/ld-x86-64/property-x86-shstk3b-x32.d: Likewise.
- + * testsuite/ld-x86-64/property-x86-shstk3b.d: Likewise.
- +
- +2018-08-10 H.J. Lu <hongjiu.lu@intel.com>
- +
- + * testsuite/ld-x86-64/property-x86-3.s: Use ".p2align 2" to
- + align .note.gnu.property section if __64_bit__ is undefined.
- +
- +2018-08-01 Alan Modra <amodra@gmail.com>
- +
- + * testsuite/ld-powerpc/powerpc.exp: Run tlsopt5 with hash-style
- + specified.
- +
- +2018-08-01 Alan Modra <amodra@gmail.com>
- +
- + * testsuite/ld-powerpc/powerpc.exp: Run tlsopt5 with plt alignment.
- + * testsuite/ld-powerpc/tlsopt5.s: Add extra call.
- + * testsuite/ld-powerpc/tlsopt5.wf: Adjust expected output.
- + * testsuite/ld-powerpc/tlsopt5.d: Likewise.
- +
- +2018-08-07 Nick Clifton <nickc@redhat.com>
- +
- + * po/bg.po: Updated Bulgarian translation.
- +
- +2018-08-01 Roland McGrath <mcgrathr@google.com>
- +
- + * testsuite/ld-aarch64/ifunc-1-local.d: Adjust regexps to match
- + the offsets emitted by aarch64-elf configurations.
- + * testsuite/ld-aarch64/ifunc-1.d: Likewise.
- + * testsuite/ld-aarch64/ifunc-2-local.d: Likewise.
- + * testsuite/ld-aarch64/ifunc-2.d: Likewise.
- + * testsuite/ld-aarch64/ifunc-21.d: Likewise.
- + * testsuite/ld-aarch64/ifunc-3a.d: Likewise.
- +
- +2018-07-23 H.J. Lu <hongjiu.lu@intel.com>
- +
- + PR ld/23428
- + * testsuite/ld-elf/linux-x86.S: New file.
- + * testsuite/ld-elf/linux-x86.exp: Likewise.
- + * testsuite/ld-elf/pr23428.c: Likewise.
- + * testsuite/ld-elf/sec64k.exp: Pass "-z noseparate-code" to ld
- + for Linux/x86 targets.
- + * testsuite/ld-i386/abs-iamcu.d: Likewise.
- + * testsuite/ld-i386/abs.d: Likewise.
- + * testsuite/ld-i386/pr12718.d: Likewise.
- + * testsuite/ld-i386/pr12921.d: Likewise.
- + * testsuite/ld-x86-64/abs-k1om.d: Likewise.
- + * testsuite/ld-x86-64/abs-l1om.d: Likewise.
- + * testsuite/ld-x86-64/abs.d: Likewise.
- + * testsuite/ld-x86-64/pr12718.d: Likewise.
- + * testsuite/ld-x86-64/pr12921.d: Likewise.
- + * testsuite/ld-linkonce/zeroeh.ld: Discard .note.gnu.property
- + section.
- + * testsuite/ld-scripts/print-memory-usage.t: Likewise.
- + * testsuite/ld-scripts/size-2.t: Likewise.
- + * testsuite/lib/ld-lib.exp (run_ld_link_exec_tests): Use ld to
- + create executable if language is "asm".
- +
- 2018-07-18 Nick Clifton <nickc@redhat.com>
-
- 2.31.1 Release point.
- diff --git a/ld/po/bg.po b/ld/po/bg.po
- index 5e8e818818..bf6ecd9b61 100644
- --- a/ld/po/bg.po
- +++ b/ld/po/bg.po
- @@ -13,7 +13,7 @@ msgstr ""
- "Project-Id-Version: ld 2.30.90\n"
- "Report-Msgid-Bugs-To: bug-binutils@gnu.org\n"
- "POT-Creation-Date: 2018-06-24 19:43+0100\n"
- -"PO-Revision-Date: 2018-06-28 22:58+0300\n"
- +"PO-Revision-Date: 2018-07-26 20:34+0300\n"
- "Last-Translator: Румен Петров <transl@roumenpetrov.info>\n"
- "Language-Team: Bulgarian <dict@ludost.net>\n"
- "Language: bg\n"
- @@ -33,7 +33,7 @@ msgstr "%X%P: cref_hash_lookup не успя: %E\n"
-
- #: ldcref.c:186
- msgid "%X%P: cref alloc failed: %E\n"
- -msgstr "%X%P: пропадна заделяне(на памет) за cref: %E\n"
- +msgstr "%X%P: не успя заделянето на памет в cref: %E\n"
-
- #: ldcref.c:371
- #, c-format
- @@ -62,7 +62,7 @@ msgstr "Без имена\n"
-
- #: ldcref.c:413 ldcref.c:565
- msgid "%P: symbol `%pT' missing from main hash table\n"
- -msgstr "%P: име '%pT' липсва в главната хеш-таблица\n"
- +msgstr "%P: в главния речник липсва името '%pT'\n"
-
- #: ldcref.c:517 ldcref.c:628 ldmain.c:1211 ldmisc.c:335 pe-dll.c:715
- #: pe-dll.c:1296 pe-dll.c:1417 pe-dll.c:1535 earm_wince_pe.c:1430
- @@ -87,7 +87,7 @@ msgstr "%X%P: %C: забранено е кръстосана отпратка о
-
- #: ldctor.c:83
- msgid "%X%P: different relocs used in set %s\n"
- -msgstr "%X%P: различни \"преместванията\" се използват в множеството %s\n"
- +msgstr "%X%P: различни \"премествания\" се използват в набора %s\n"
-
- #: ldctor.c:101
- msgid "%X%P: different object file formats composing set %s\n"
- @@ -103,7 +103,7 @@ msgstr "%X%P: раздел %s не поддържа преместване %s з
-
- #: ldctor.c:321
- msgid "%X%P: unsupported size %d for set %s\n"
- -msgstr "%X%P: неподдържан размер %d за множеството %s\n"
- +msgstr "%X%P: неподдържан размер %d за набор %s\n"
-
- #: ldctor.c:344
- msgid ""
- @@ -202,7 +202,7 @@ msgstr "%F%P:%pS не може да се върне обратно брояч н
-
- #: ldexp.c:1167
- msgid "%F%P:%s: hash creation failed\n"
- -msgstr "%F%P:%s: пропадна създаването на хеш\n"
- +msgstr "%F%P:%s: не успя създаването на хеш\n"
-
- #: ldexp.c:1519 ldexp.c:1545 ldexp.c:1605
- msgid "%F%P:%pS: nonconstant expression for %s\n"
- @@ -210,7 +210,7 @@ msgstr "%F%P:%pS: не е константен изразът за %s\n"
-
- #: ldexp.c:1631 ldlang.c:1234 ldlang.c:3187 ldlang.c:7174
- msgid "%F%P: can not create hash table: %E\n"
- -msgstr "%F%P: не може да се създаде хеш-таблицата: %E\n"
- +msgstr "%F%P: не може да се създаде речник: %E\n"
-
- #: ldfile.c:132 eaarch64cloudabi.c:656 eaarch64cloudabib.c:656
- #: eaarch64elf.c:656 eaarch64elf32.c:656 eaarch64elf32b.c:656
- @@ -286,12 +286,12 @@ msgstr "%F%P: не може да се създаде хеш-таблицата:
- #: eshlelf_vxworks.c:370 ev850.c:387 ev850_rh850.c:387 exgateelf.c:341
- #, c-format
- msgid "attempt to open %s failed\n"
- -msgstr "опита да се отвори %s не успя\n"
- +msgstr "опитът да се отвори %s не успя\n"
-
- #: ldfile.c:134
- #, c-format
- msgid "attempt to open %s succeeded\n"
- -msgstr "опита да се отвори %s успя\n"
- +msgstr "опитът да се отвори %s успя\n"
-
- #: ldfile.c:140
- msgid "%F%P: invalid BFD target `%s'\n"
- @@ -353,7 +353,7 @@ msgstr "%F%P:%pS: грешка: синоним за област памет по
-
- #: ldlang.c:1372
- msgid "%F%P:%pS: error: redefinition of memory region alias `%s'\n"
- -msgstr "%F%P:%pS: грешка: повторен определение на синоним за област памет '%s'\n"
- +msgstr "%F%P:%pS: грешка: повторено определение на синоним за област памет '%s'\n"
-
- #: ldlang.c:1379
- msgid "%F%P:%pS: error: memory region `%s' for alias `%s' does not exist\n"
- @@ -361,7 +361,7 @@ msgstr "%F%P:%pS: грешка: област памет '%s' за синоним
-
- #: ldlang.c:1438 ldlang.c:1477
- msgid "%F%P: failed creating section `%s': %E\n"
- -msgstr "%F%P: пропадна създаването на раздел '%s': %E\n"
- +msgstr "%F%P: не успя създаването на раздел '%s': %E\n"
-
- #: ldlang.c:1998
- msgid ""
- @@ -439,7 +439,7 @@ msgstr "%F%P: %pB: файлът не е разпознат: %E\n"
-
- #: ldlang.c:2854
- msgid "%F%P: %pB: member %pB in archive is not an object\n"
- -msgstr "%F%P: %pB: членът, на архива %pB, не е обект\n"
- +msgstr "%F%P: %pB: членът на архива %pB не е обект\n"
-
- #: ldlang.c:2869 ldlang.c:2883 eaarch64cloudabi.c:776 eaarch64cloudabib.c:776
- #: eaarch64elf.c:776 eaarch64elf32.c:776 eaarch64elf32b.c:776
- @@ -518,7 +518,7 @@ msgstr "%F%P: %pB: грешка при добавяне на имената: %E\
-
- #: ldlang.c:3157
- msgid "%P: warning: could not find any targets that match endianness requirement\n"
- -msgstr "%P: предупреждение: не може да се открие резултат, който да отговаря на изискванията за подредба(на байтовете)\n"
- +msgstr "%P: предупреждение: не може да се открие резултат, който да отговаря на изискванията за подредба на байтовете\n"
-
- #: ldlang.c:3171
- msgid "%F%P: target %s not found\n"
- @@ -546,7 +546,7 @@ msgstr "%X%P: не е определено задължителното име '
-
- #: ldlang.c:3770
- msgid "%F%P: %s not found for insert\n"
- -msgstr "%F%P: %s не е намерен(за добавяне)\n"
- +msgstr "%F%P: %s не е намерен за добавяне\n"
-
- #: ldlang.c:4011
- msgid " load address 0x%V"
- @@ -598,7 +598,7 @@ msgstr "%X%P: %pB раздел '%s' не се побира в област '%s'\
-
- #: ldlang.c:5050
- msgid "%F%P:%pS: non constant or forward reference address expression for section %s\n"
- -msgstr "%F%P:%pS: адресния израз не е константен или отпратка за по нататък при раздел %s\n"
- +msgstr "%F%P:%pS: адресният израз не е константен или е отпратка за по нататък при раздел %s\n"
-
- #: ldlang.c:5075
- msgid "%X%P: internal error on COFF shared library section %s\n"
- @@ -664,7 +664,7 @@ msgstr "%X%P: %s архитектурата на входен файл '%pB' е
-
- #: ldlang.c:6332
- msgid "%X%P: failed to merge target specific data of file %pB\n"
- -msgstr "%X%P: пропадна сливането, на специфични за резултата данни, от файл %pB\n"
- +msgstr "%X%P: не успя сливането на целеви данни от файл %pB\n"
-
- #: ldlang.c:6403
- msgid "%F%P: could not define common symbol `%pT': %E\n"
- @@ -704,7 +704,7 @@ msgstr "%F%P:%pS: грешка: зададено е подравняване с
-
- #: ldlang.c:7198
- msgid "%F%P: %s: plugin reported error after all symbols read\n"
- -msgstr "%F%P: %s: приставката рапортува грешка, след прочитане на всички имена\n"
- +msgstr "%F%P: %s: приставката отчете грешка след прочитане на всички имена\n"
-
- #: ldlang.c:7602
- msgid "%F%P: multiple STARTUP files\n"
- @@ -805,11 +805,11 @@ msgstr "%P: грешка при свързване, изтриване на из
-
- #: ldmain.c:490
- msgid "%F%P: %pB: final close failed: %E\n"
- -msgstr "%F%P: %pB: пропадна заключителното затваряне: %E\n"
- +msgstr "%F%P: %pB: не успя заключителното затваряне: %E\n"
-
- #: ldmain.c:517
- msgid "%F%P: unable to open for source of copy `%s'\n"
- -msgstr "%F%P: не можа да се отвори източника на копието '%s'\n"
- +msgstr "%F%P: не можа да се отвори източникът на копието '%s'\n"
-
- #: ldmain.c:520
- msgid "%F%P: unable to open for destination of copy `%s'\n"
- @@ -1017,7 +1017,7 @@ msgstr "%P: вътрешна грешка: прекратяване на %s:%d\n
-
- #: ldmisc.c:703
- msgid "%F%P: please report this bug\n"
- -msgstr "%F%P: моля, рапортувайте този проблем\n"
- +msgstr "%F%P: моля, докладвайте този проблем\n"
-
- #. Output for noisy == 2 is intended to follow the GNU standards.
- #: ldver.c:37
- @@ -1048,7 +1048,7 @@ msgstr " Поддържани подражавания:\n"
-
- #: ldwrite.c:60 ldwrite.c:206 ldwrite.c:258 ldwrite.c:299
- msgid "%F%P: bfd_new_link_order failed\n"
- -msgstr "%F%P: пропадна bfd_new_link_order\n"
- +msgstr "%F%P: bfd_new_link_order не успя\n"
-
- #: ldwrite.c:368
- msgid "%F%P: cannot create split section name for %s\n"
- @@ -1056,7 +1056,7 @@ msgstr "%F%P: при разцепване на раздел, не можа да
-
- #: ldwrite.c:380
- msgid "%F%P: clone section failed: %E\n"
- -msgstr "%F%P: пропадна копирането на раздел: %E\n"
- +msgstr "%F%P: не успя раздвояването на раздел: %E\n"
-
- #: ldwrite.c:418
- #, c-format
- @@ -1065,7 +1065,7 @@ msgstr "%8x други\n"
-
- #: ldwrite.c:588
- msgid "%F%P: final link failed: %E\n"
- -msgstr "%F%P: пропадна заключителното свързване: %E\n"
- +msgstr "%F%P: не успя заключителното свързване: %E\n"
-
- #: lexsup.c:102 lexsup.c:276
- msgid "KEYWORD"
- @@ -1490,7 +1490,7 @@ msgstr ""
-
- #: lexsup.c:350
- msgid "Set default hash table size close to <NUMBER>"
- -msgstr "Установява размер по подразбиране на таблицат за хеш близък до <ЧИСЛО>"
- +msgstr "Установява размер, по подразбиране, на речника близък до <ЧИСЛО>"
-
- #: lexsup.c:353
- msgid "Print option help"
- @@ -1776,15 +1776,15 @@ msgstr "Предупреждение, ако споделен обект съд
-
- #: lexsup.c:518
- msgid "Warn if an object has alternate ELF machine code"
- -msgstr "Предупреждение ако обекта е с друг ELF ELF код за машина"
- +msgstr "Предупреждение, ако обекта е с друг ELF код за машина"
-
- #: lexsup.c:522
- msgid "Report unresolved symbols as warnings"
- -msgstr "Рапортуване като предупреждения, на несвързани имена"
- +msgstr "Докладване на несвързани имена като предупреждения"
-
- #: lexsup.c:525
- msgid "Report unresolved symbols as errors"
- -msgstr "Рапортуване, като грешки, на несвързани имена"
- +msgstr "Докладване на несвързани имена като грешки"
-
- #: lexsup.c:527
- msgid "Include all objects from following archives"
- @@ -2332,12 +2332,12 @@ msgstr "%X%P: не може да се създаде раздел .reloc: %E\n"
- #: pe-dll.c:1100
- #, c-format
- msgid "%X%P: error: ordinal used twice: %d (%s vs %s)\n"
- -msgstr "%X%P: грешка, номера е използван два пъти: %d (%s с/у %s)\n"
- +msgstr "%X%P: грешка, номерът е използван два пъти: %d (%s с/у %s)\n"
-
- #: pe-dll.c:1136
- #, c-format
- msgid "%X%P: error: export ordinal too large: %d\n"
- -msgstr "%X%P: грешка: номера е твърде голям: %d\n"
- +msgstr "%X%P: грешка: номерът е твърде голям: %d\n"
-
- #: pe-dll.c:1452
- #, c-format
- @@ -2346,7 +2346,7 @@ msgstr "Сведение: разрешаване на %s със свързван
-
- #: pe-dll.c:1458
- msgid "%P: warning: auto-importing has been activated without --enable-auto-import specified on the command line; this should work unless it involves constant data structures referencing symbols from auto-imported DLLs\n"
- -msgstr "%P: предупреждение: автоматично внасяне е задействано без да се зададе --enable-auto-import на командния ред.Това работи, освен ако не е свързано с константни структури за данни, които указват към имена от автоматично внасяни DLL-ли.\n"
- +msgstr "%P: предупреждение: автоматично внасяне е задействано без да се зададе --enable-auto-import на командния ред. Това работи, освен ако не е свързано с константни структури за данни, които указват към имена от автоматично внасяни DLL-ли.\n"
-
- #. Huh? Shouldn't happen, but punt if it does.
- #: pe-dll.c:1527
- @@ -2370,7 +2370,7 @@ msgstr "; липсва съдържание\n"
-
- #: pe-dll.c:2780
- msgid "%X%P: %C: variable '%pT' can't be auto-imported; please read the documentation for ld's --enable-auto-import for details\n"
- -msgstr "%X%P: %C: променливата '%pT' не може да се внесе автоматично. Да се прочете в документацията на свързващата програма за повече сведения относно --enable-auto-import.\n"
- +msgstr "%X%P: %C: променливата '%pT' не може да се внесе автоматично. Да се провери в документацията на свързващата програма за повече сведения относно --enable-auto-import.\n"
-
- #: pe-dll.c:2807
- #, c-format
- @@ -2469,7 +2469,7 @@ msgstr "%F%P: приставката не можа да задели памет
-
- #: plugin.c:1138
- msgid "%F%P: %s: plugin reported error claiming file\n"
- -msgstr "%F%P: %s: приставката рапортува грешка, при твърденията за файла\n"
- +msgstr "%F%P: %s: приставката отчете грешка при твърденията за файла\n"
-
- #: plugin.c:1248
- msgid "%P: %s: error in plugin cleanup: %d (ignored)\n"
- @@ -2547,7 +2547,7 @@ msgstr "%P: %s: грешка при почистване на приставка
- #: eshlelf_nto.c:81 eshlelf_vxworks.c:81 ev850.c:81 ev850_rh850.c:81
- #: exgateelf.c:81
- msgid "%F%P: map sections to segments failed: %E\n"
- -msgstr "%F%P: пропадна свързването на раздел към част: %E\n"
- +msgstr "%F%P: не успя свързването на раздел към част: %E\n"
-
- #: eaarch64cloudabi.c:101 eaarch64cloudabib.c:101 eaarch64elf.c:101
- #: eaarch64elf32.c:101 eaarch64elf32b.c:101 eaarch64elfb.c:101
- @@ -5051,31 +5051,31 @@ msgstr "%F%P: не се чете %s\n"
-
- #: eaix5ppc.c:390 eaix5rs6.c:390 eaixppc.c:390 eaixrs6.c:390 eppcmacos.c:390
- msgid "%P: warning: ignoring invalid -D number %s\n"
- -msgstr "%P: предупреждение: изоставяне на неправилно число за -D %s\n"
- +msgstr "%P: предупреждение: пропускане на неправилно число за -D %s\n"
-
- #: eaix5ppc.c:398 eaix5rs6.c:398 eaixppc.c:398 eaixrs6.c:398 eppcmacos.c:398
- msgid "%P: warning: ignoring invalid -H number %s\n"
- -msgstr "%P: предупреждение: изоставяне на неправилно число за -H %s\n"
- +msgstr "%P: предупреждение: пропускане на неправилно число за -H %s\n"
-
- #: eaix5ppc.c:510 eaix5rs6.c:510 eaixppc.c:510 eaixrs6.c:510 eppcmacos.c:510
- msgid "%P: warning: ignoring invalid -bmaxdata number %s\n"
- -msgstr "%P: предупреждение: изоставяне на неправилно число за -bmaxdata %s\n"
- +msgstr "%P: предупреждение: пропускане на неправилно число за -bmaxdata %s\n"
-
- #: eaix5ppc.c:519 eaix5rs6.c:519 eaixppc.c:519 eaixrs6.c:519 eppcmacos.c:519
- msgid "%P: warning: ignoring invalid -bmaxstack number %s\n"
- -msgstr "%P: предупреждение: изоставяне на неправилно число за -bmaxstack %s\n"
- +msgstr "%P: предупреждение: пропускане на неправилно число за -bmaxstack %s\n"
-
- #: eaix5ppc.c:532 eaix5rs6.c:532 eaixppc.c:532 eaixrs6.c:532 eppcmacos.c:532
- msgid "%P: warning: ignoring invalid module type %s\n"
- -msgstr "%P: предупреждение: изоставяне на неправиен тип на модул %s\n"
- +msgstr "%P: предупреждение: пропускане на неправиен тип на модул %s\n"
-
- #: eaix5ppc.c:562 eaix5rs6.c:562 eaixppc.c:562 eaixrs6.c:562 eppcmacos.c:562
- msgid "%P: warning: ignoring invalid -pD number %s\n"
- -msgstr "%P: предупреждение: изоставяне на неправилно число за -pD %s\n"
- +msgstr "%P: предупреждение: пропускане на неправилно число за -pD %s\n"
-
- #: eaix5ppc.c:585 eaix5rs6.c:585 eaixppc.c:585 eaixrs6.c:585 eppcmacos.c:585
- msgid "%P: warning: ignoring invalid -pT number %s\n"
- -msgstr "%P: предупреждение: изоставяне на неправилно число за -pT %s\n"
- +msgstr "%P: предупреждение: пропускане на неправилно число за -pT %s\n"
-
- #: eaix5ppc.c:714 eaix5rs6.c:714 eaixppc.c:714 eaixrs6.c:714 eppcmacos.c:714
- msgid "%F%P: bfd_xcoff_link_record_set failed: %E\n"
- @@ -5252,7 +5252,7 @@ msgstr " --[no-]leading-underscore Изрично установява
- #: emcorepe.c:392 eppcpe.c:392 eshpe.c:392
- #, c-format
- msgid " --thumb-entry=<symbol> Set the entry point to be Thumb <symbol>\n"
- -msgstr " --thumb-entry=<знак> Установяване на входяща точка да е отбелязания <знак>\n"
- +msgstr " --thumb-entry=<знак> Установяване на входяща точка на отбелязания <знак>\n"
-
- #: earm_wince_pe.c:393 earmpe.c:393 ei386pe.c:393 ei386pe_posix.c:393
- #: emcorepe.c:393 eppcpe.c:393 eshpe.c:393
- @@ -5264,7 +5264,7 @@ msgstr " --[no-]insert-timestamp Използва истинска
- #: ei386pep.c:375 emcorepe.c:394 eppcpe.c:394 eshpe.c:394
- #, c-format
- msgid " This makes binaries non-deterministic\n"
- -msgstr " Това прави двоичните файлове неопределяеми\n"
- +msgstr " Това прави двоичните файлове несравними\n"
-
- #: earm_wince_pe.c:396 earmpe.c:396 ei386pe.c:396 ei386pe_posix.c:396
- #: ei386pep.c:377 emcorepe.c:396 eppcpe.c:396 eshpe.c:396
- @@ -5440,7 +5440,7 @@ msgid ""
- " greater than 2 gigabytes\n"
- msgstr ""
- " --large-address-aware Програмата поддържа виртуални адреси\n"
- -" по-голями от 2 гигабайта\n"
- +" по-големи от 2 гигабайта\n"
-
- #: earm_wince_pe.c:420 earmpe.c:420 ei386pe.c:420 ei386pe_posix.c:420
- #: emcorepe.c:420 eppcpe.c:420 eshpe.c:420
- @@ -5450,7 +5450,7 @@ msgid ""
- " addresses greater than 2 gigabytes\n"
- msgstr ""
- " --disable-large-address-aware Програмата не поддържа виртуални\n"
- -" адреси по-голями от 2 гигабайта\n"
- +" адреси по-големи от 2 гигабайта\n"
-
- #: earm_wince_pe.c:421 earmpe.c:421 ei386pe.c:421 ei386pe_posix.c:421
- #: ei386pep.c:399 emcorepe.c:421 eppcpe.c:421 eshpe.c:421
- @@ -5479,7 +5479,7 @@ msgid ""
- " --dynamicbase Image base address may be relocated using\n"
- " address space layout randomization (ASLR)\n"
- msgstr ""
- -" --dynamicbase Основния адрес на образа може да бъде преместен\n"
- +" --dynamicbase Основният адрес на образа може да бъде преместен\n"
- " като се използва случаен адрес\n"
-
- #: earm_wince_pe.c:424 earmpe.c:424 ei386pe.c:424 ei386pe_posix.c:424
- @@ -5492,13 +5492,13 @@ msgstr " --forceinteg Налагане на проверка за
- #: ei386pep.c:404 emcorepe.c:425 eppcpe.c:425 eshpe.c:425
- #, c-format
- msgid " --nxcompat Image is compatible with data execution prevention\n"
- -msgstr " --nxcompat Образа е съвместим с предотвратяване на изпълнение на данни\n"
- +msgstr " --nxcompat Образът е съвместим с предотвратяване на изпълнение на данни\n"
-
- #: earm_wince_pe.c:426 earmpe.c:426 ei386pe.c:426 ei386pe_posix.c:426
- #: ei386pep.c:405 emcorepe.c:426 eppcpe.c:426 eshpe.c:426
- #, c-format
- msgid " --no-isolation Image understands isolation but do not isolate the image\n"
- -msgstr " --no-isolation Образа поддържа изолиране, но да не се изолира\n"
- +msgstr " --no-isolation Образът поддържа изолиране, но да не се изолира\n"
-
- #: earm_wince_pe.c:427 earmpe.c:427 ei386pe.c:427 ei386pe_posix.c:427
- #: emcorepe.c:427 eppcpe.c:427 eshpe.c:427
- @@ -5507,7 +5507,7 @@ msgid ""
- " --no-seh Image does not use SEH. No SE handler may\n"
- " be called in this image\n"
- msgstr ""
- -" --no-seh Образа не използва SEH. В този образ не\n"
- +" --no-seh Образът не използва SEH. В този образ не\n"
- " може да се извиква SE подръжка\n"
-
- #: earm_wince_pe.c:428 earmpe.c:428 ei386pe.c:428 ei386pe_posix.c:428
- @@ -5526,7 +5526,7 @@ msgstr " --wdmdriver Използване на WDM модел з
- #: ei386pep.c:409 emcorepe.c:430 eppcpe.c:430 eshpe.c:430
- #, c-format
- msgid " --tsaware Image is Terminal Server aware\n"
- -msgstr " --tsaware Образа поддържа \"Terminal Server\"\n"
- +msgstr " --tsaware Образът поддържа \"Terminal Server\"\n"
-
- #: earm_wince_pe.c:431 earmpe.c:431 ei386pe.c:431 ei386pe_posix.c:431
- #: ei386pep.c:410 emcorepe.c:431 eppcpe.c:431 eshpe.c:431
- @@ -5603,7 +5603,7 @@ msgstr ""
- #: earm_wince_pe.c:1302 earmpe.c:1302 ei386pe.c:1302 ei386pe_posix.c:1302
- #: ei386pep.c:1305 emcorepe.c:1302 eppcpe.c:1302 eshpe.c:1302
- msgid "%F%P: cannot perform PE operations on non PE output file '%pB'\n"
- -msgstr "%F%P: не може да се извърши \"PE\"-операции на изходен файл '%pB', който не е \"PE\"\n"
- +msgstr "%F%P: не може да се извършат \"PE\"-операции на изходен файл '%pB', който не е \"PE\"\n"
-
- #: earm_wince_pe.c:1442 earmpe.c:1442 ei386pe.c:1442 ei386pe_posix.c:1442
- #: ei386pep.c:1426 emcorepe.c:1442 eppcpe.c:1442 eshpe.c:1442
- @@ -5649,7 +5649,7 @@ msgstr "%P: предупреждение: '--thumb-entry %s' прегазва '-
- #: earmnto.c:577 earmpe.c:1876 earmsymbian.c:577 ei386pe.c:1876
- #: ei386pe_posix.c:1876 emcorepe.c:1876 eppcpe.c:1876 eshpe.c:1876
- msgid "%P: warning: cannot find thumb start symbol %s\n"
- -msgstr "%P: предупреждение: не е намерен, като начален, отбелязания знак %s\n"
- +msgstr "%P: предупреждение: не е намерен, като начален, отбелязаният знак %s\n"
-
- #: earmelf.c:603 earmelf_fbsd.c:603 earmelf_fuchsia.c:603 earmelf_linux.c:603
- #: earmelf_linux_eabi.c:603 earmelf_linux_fdpiceabi.c:603 earmelf_nacl.c:603
- @@ -5700,7 +5700,7 @@ msgstr "%P: неразпознат вид STM32L4XX поправка '%s'\n"
- #: earmelfb_nacl.c:2851 earmelfb_nbsd.c:2851 earmnto.c:2826 earmsymbian.c:2851
- #, c-format
- msgid " --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym>\n"
- -msgstr " --thumb-entry=<знак> Установява входяща точка да е отбелязания <знак>\n"
- +msgstr " --thumb-entry=<знак> Установява входяща точка на отбелязания <знак>\n"
-
- #: earmelf.c:2852 earmelf_fbsd.c:2859 earmelf_fuchsia.c:2852
- #: earmelf_linux.c:2852 earmelf_linux_eabi.c:2852
- @@ -6667,7 +6667,7 @@ msgstr ""
-
- #: eelf32xtensa.c:561
- msgid "%F%P: failed to create .xtensa.info section\n"
- -msgstr "%F%P: пропадна създаването на раздел .xtensa.info\n"
- +msgstr "%F%P: не успя създаването на раздел .xtensa.info\n"
-
- #: eelf32xtensa.c:4073
- #, c-format
- @@ -6945,7 +6945,7 @@ msgid ""
- " --no-seh Image does not use SEH; no SE handler may\n"
- " be called in this image\n"
- msgstr ""
- -" --no-seh Образа не използва SEH. В този образ не може\n"
- +" --no-seh Образът не използва SEH. В този образ не може\n"
- " да се извиква SE подръжка\n"
-
- #: ei386pep.c:908
- diff --git a/ld/testsuite/ld-aarch64/aarch64-elf.exp b/ld/testsuite/ld-aarch64/aarch64-elf.exp
- index 1bbc064857..3912ef1cdd 100644
- --- a/ld/testsuite/ld-aarch64/aarch64-elf.exp
- +++ b/ld/testsuite/ld-aarch64/aarch64-elf.exp
- @@ -86,6 +86,7 @@ run_ld_link_tests $aarch64elftests
- run_ld_link_tests eh-frame-merge-lp64
-
- run_dump_test "erratum843419"
- +run_dump_test "erratum843419_tls_ie"
-
- # Relocation Tests
- run_dump_test_lp64 "weak-undefined"
- diff --git a/ld/testsuite/ld-aarch64/erratum843419_tls_ie.d b/ld/testsuite/ld-aarch64/erratum843419_tls_ie.d
- new file mode 100644
- index 0000000000..eba5a20217
- --- /dev/null
- +++ b/ld/testsuite/ld-aarch64/erratum843419_tls_ie.d
- @@ -0,0 +1,49 @@
- +#source: erratum843419_tls_ie.s
- +#as:
- +#ld: --fix-cortex-a53-843419 -e0 --section-start .e843419=0x20000000 -Ttext=0x400000 -Tdata=0x40000000
- +#objdump: -dr
- +#...
- +
- +Disassembly of section .e843419:
- +
- +0*20000000 <farbranch>:
- +[ ]*20000000: d10043ff sub sp, sp, #0x10
- +[ ]*20000004: d28001a7 mov x7, #0xd // #13
- +[ ]*20000008: b9000fe7 str w7, \[sp, #12\]
- +[ ]*2000000c: 140003fb b 20000ff8 <e843419>
- + ...
- +
- +0*20000ff8 <e843419>:
- +[ ]*20000ff8: d2a00000 movz x0, #0x0, lsl #16
- +[ ]*20000ffc: f800c007 stur x7, \[x0, #12\]
- +[ ]*20001000: d2800128 mov x8, #0x9 // #9
- +[ ]*20001004: f2800208 movk x8, #0x10
- +[ ]*20001008: 8b050020 add x0, x1, x5
- +[ ]*2000100c: b9400fe7 ldr w7, \[sp, #12\]
- +[ ]*20001010: 0b0700e0 add w0, w7, w7
- +[ ]*20001014: 910043ff add sp, sp, #0x10
- +[ ]*20001018: d65f03c0 ret
- +[ ]*2000101c: 00000000 .inst 0x00000000 ; undefined
- +[ ]*20001020: 14000400 b 20002020 <e843419\+0x1028>
- +[ ]*20001024: d503201f nop
- +[ ]*20001028: 00000000 .inst 0x00000000 ; undefined
- +[ ]*2000102c: 17fffff7 b 20001008 <e843419\+0x10>
- + ...
- +
- +Disassembly of section .text:
- +
- +0*400000 <main>:
- +[ ]*400000: d10043ff sub sp, sp, #0x10
- +[ ]*400004: d28001a7 mov x7, #0xd // #13
- +[ ]*400008: b9000fe7 str w7, \[sp, #12\]
- +[ ]*40000c: 14000005 b 400020 <__farbranch_veneer>
- +[ ]*400010: d65f03c0 ret
- +[ ]*400014: d503201f nop
- +[ ]*400018: 14000400 b 401018 <__farbranch_veneer\+0xff8>
- +[ ]*40001c: d503201f nop
- +
- +0*400020 <__farbranch_veneer>:
- +[ ]*400020: 900fe010 adrp x16, 20000000 <farbranch>
- +[ ]*400024: 91000210 add x16, x16, #0x0
- +[ ]*400028: d61f0200 br x16
- + ...
- diff --git a/ld/testsuite/ld-aarch64/erratum843419_tls_ie.s b/ld/testsuite/ld-aarch64/erratum843419_tls_ie.s
- new file mode 100644
- index 0000000000..60322445c5
- --- /dev/null
- +++ b/ld/testsuite/ld-aarch64/erratum843419_tls_ie.s
- @@ -0,0 +1,43 @@
- + .text
- + .align 2
- + .global main
- + .type main, %function
- +main:
- + sub sp, sp, #16
- + mov x7, 13
- + str w7, [sp,12]
- + b farbranch
- + ret
- + .size main, .-main
- +
- + .section .e843419, "xa"
- + .align 2
- + .global farbranch
- + .type farbranch, %function
- +farbranch:
- + sub sp, sp, #16
- + mov x7, 13
- + str w7, [sp,12]
- + b e843419
- + .fill 4072,1,0
- +e843419:
- + adrp x0, :gottprel:l_tlsievar
- + str x7, [x0,12]
- + mov x8, 9
- + str x8, [x0, :gottprel_lo12:l_tlsievar]
- +
- + add x0, x1, x5
- + ldr w7, [sp,12]
- + add w0, w7, w7
- + add sp, sp, 16
- + ret
- + .size farbranch, .-farbranch
- +
- +# ---
- +
- + .section .tbss,"awT",%nobits
- + .align 2
- + .type l_tlsievar, %object
- + .size l_tlsievar, 4
- +l_tlsievar:
- + .zero 4
- diff --git a/ld/testsuite/ld-aarch64/ifunc-1-local.d b/ld/testsuite/ld-aarch64/ifunc-1-local.d
- index bcba0aa025..1783637865 100644
- --- a/ld/testsuite/ld-aarch64/ifunc-1-local.d
- +++ b/ld/testsuite/ld-aarch64/ifunc-1-local.d
- @@ -3,7 +3,7 @@
- #target: aarch64*-*-*
-
- #...
- -0+(110|180) <__GI_foo>:
- +0+(110|180|1a0) <(__GI_)?foo>:
- #...
- -[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+(0x110|0x180)@plt>
- +[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+(0x110|0x180|0x1a0)@plt>
- #pass
- diff --git a/ld/testsuite/ld-aarch64/ifunc-1.d b/ld/testsuite/ld-aarch64/ifunc-1.d
- index f408bfff78..0274ac0094 100644
- --- a/ld/testsuite/ld-aarch64/ifunc-1.d
- +++ b/ld/testsuite/ld-aarch64/ifunc-1.d
- @@ -3,7 +3,7 @@
- #target: aarch64*-*-*
-
- #...
- -0+(130|1a0) <foo>:
- +0+(130|1a0|1c8) <foo>:
- #...
- -[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(130|1a0)@plt>
- +[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(130|1a0|1c8)@plt>
- #pass
- diff --git a/ld/testsuite/ld-aarch64/ifunc-2-local.d b/ld/testsuite/ld-aarch64/ifunc-2-local.d
- index fb1bb40e38..a3d9e15f8b 100644
- --- a/ld/testsuite/ld-aarch64/ifunc-2-local.d
- +++ b/ld/testsuite/ld-aarch64/ifunc-2-local.d
- @@ -3,9 +3,9 @@
- #target: aarch64*-*-*
-
- #...
- -0+(110|180) <__GI_foo>:
- +0+(110|180|1a0) <__GI_foo>:
- #...
- -[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(110|180)@plt>
- +[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(110|180|1a0)@plt>
- [ \t0-9a-f]+:[ \t0-9a-f]+adrp[ \t]+x0, 0 <.*>
- -[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x(100|170)
- +[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x(100|170|190)
- #pass
- diff --git a/ld/testsuite/ld-aarch64/ifunc-2.d b/ld/testsuite/ld-aarch64/ifunc-2.d
- index 16c75ead40..eb6fa0ccf0 100644
- --- a/ld/testsuite/ld-aarch64/ifunc-2.d
- +++ b/ld/testsuite/ld-aarch64/ifunc-2.d
- @@ -3,9 +3,9 @@
- #target: aarch64*-*-*
-
- #...
- -0+(130|1a0) <foo>:
- +0+(130|1a0|1c8) <foo>:
- #...
- -[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(130|1a0)@plt>
- +[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(130|1a0|1c8)@plt>
- [ \t0-9a-f]+:[ \t0-9a-f]+adrp[ \t]+x0, 0 <.*>
- -[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x(120|190)
- +[ \t0-9a-f]+:[ \t0-9a-f]+add[ \t]+x0, x0, #0x(120|190|1b8)
- #pass
- diff --git a/ld/testsuite/ld-aarch64/ifunc-21.d b/ld/testsuite/ld-aarch64/ifunc-21.d
- index b501bd6712..a16186b587 100644
- --- a/ld/testsuite/ld-aarch64/ifunc-21.d
- +++ b/ld/testsuite/ld-aarch64/ifunc-21.d
- @@ -11,7 +11,7 @@ Contents of section .text:
- [0-9a-f]+ .*
- Contents of section .got.plt:
- [0-9a-f]+ 0+ 0+ 0+ 0+ .*
- - 10298 0+ 0+ [0-9a-f]+ [0-9a-f]+ .*
- + (10298|102b8) 0+ 0+ [0-9a-f]+ [0-9a-f]+ .*
-
- Disassembly of section .text:
-
- @@ -20,7 +20,7 @@ Disassembly of section .text:
-
- .* <bar>:
- .*: 90000080 adrp x0, 10000 <.*>
- - .*: .* ldr x0, \[x0, #672\]
- + .*: .* ldr x0, \[x0, #(672|704)\]
- .*: d65f03c0 ret
-
- #pass
- diff --git a/ld/testsuite/ld-aarch64/ifunc-3a.d b/ld/testsuite/ld-aarch64/ifunc-3a.d
- index a01a75c904..4919d96892 100644
- --- a/ld/testsuite/ld-aarch64/ifunc-3a.d
- +++ b/ld/testsuite/ld-aarch64/ifunc-3a.d
- @@ -4,7 +4,7 @@
- #target: aarch64*-*-*
-
- #...
- -0+(150|1d0) <__GI_foo>:
- +0+(150|1d0|1e8) <__GI_foo>:
- #...
- -[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(150|1d0)@plt>
- +[ \t0-9a-f]+:[ \t0-9a-f]+bl[ \t0-9a-f]+<\*ABS\*\+0x(150|1d0|1e8)@plt>
- #pass
- diff --git a/ld/testsuite/ld-aarch64/ifunc-9.d b/ld/testsuite/ld-aarch64/ifunc-9.d
- index 3b4e995254..e921591275 100644
- --- a/ld/testsuite/ld-aarch64/ifunc-9.d
- +++ b/ld/testsuite/ld-aarch64/ifunc-9.d
- @@ -1,3 +1,4 @@
- #ld: --export-dynamic
- -#error: .*dynamic STT_GNU_IFUNC symbol `foo' with pointer equality in `.*.o' can not be used when making an executable; recompile with -fPIE and relink with -pie
- +#objdump: -dr
- #target: aarch64*-*-*
- +#...
- diff --git a/ld/testsuite/ld-elf/dummy.s b/ld/testsuite/ld-elf/dummy.s
- new file mode 100644
- index 0000000000..403f98000d
- --- /dev/null
- +++ b/ld/testsuite/ld-elf/dummy.s
- @@ -0,0 +1 @@
- +# Dummy
- diff --git a/ld/testsuite/ld-elf/linux-x86.S b/ld/testsuite/ld-elf/linux-x86.S
- new file mode 100644
- index 0000000000..d94abc1106
- --- /dev/null
- +++ b/ld/testsuite/ld-elf/linux-x86.S
- @@ -0,0 +1,91 @@
- + .text
- + .globl _start
- + .type _start,@function
- + .p2align 4
- +_start:
- + xorl %ebp, %ebp
- +#ifdef __LP64__
- + popq %rdi
- + movq %rsp, %rsi
- + andq $~15, %rsp
- +#elif defined __x86_64__
- + mov (%rsp),%edi
- + addl $4,%esp
- + movl %esp, %esi
- + andl $~15, %esp
- +#else
- + popl %esi
- + movl %esp, %ecx
- + andl $~15, %esp
- +
- + subl $8,%esp
- + pushl %ecx
- + pushl %esi
- +#endif
- +
- + call main
- +
- + hlt
- +
- + .type syscall, @function
- + .globl syscall
- + .p2align 4
- +syscall:
- +#ifdef __x86_64__
- + movq %rdi, %rax /* Syscall number -> rax. */
- + movq %rsi, %rdi /* shift arg1 - arg5. */
- + movq %rdx, %rsi
- + movq %rcx, %rdx
- + movq %r8, %r10
- + movq %r9, %r8
- + movq 8(%rsp),%r9 /* arg6 is on the stack. */
- + syscall /* Do the system call. */
- +#else
- + push %ebp
- + push %edi
- + push %esi
- + push %ebx
- + mov 0x2c(%esp),%ebp
- + mov 0x28(%esp),%edi
- + mov 0x24(%esp),%esi
- + mov 0x20(%esp),%edx
- + mov 0x1c(%esp),%ecx
- + mov 0x18(%esp),%ebx
- + mov 0x14(%esp),%eax
- + int $0x80
- + pop %ebx
- + pop %esi
- + pop %edi
- + pop %ebp
- +#endif
- + ret /* Return to caller. */
- + .size syscall, .-syscall
- + .section .note.GNU-stack,"",@progbits
- +
- + .section ".note.gnu.property", "a"
- +#ifdef __LP64__
- + .p2align 3
- +#else
- + .p2align 2
- +#endif
- + .long 1f - 0f /* name length */
- + .long 5f - 2f /* data length */
- + .long 5 /* note type */
- +0: .asciz "GNU" /* vendor name */
- +1:
- +#ifdef __LP64__
- + .p2align 3
- +#else
- + .p2align 2
- +#endif
- +2: .long 0xc0000002 /* pr_type. */
- + .long 4f - 3f /* pr_datasz. */
- +3:
- + .long 0x2
- +4:
- +#ifdef __LP64__
- + .p2align 3
- +#else
- + .p2align 2
- +#endif
- +5:
- diff --git a/ld/testsuite/ld-elf/linux-x86.exp b/ld/testsuite/ld-elf/linux-x86.exp
- new file mode 100644
- index 0000000000..f6f5a80853
- --- /dev/null
- +++ b/ld/testsuite/ld-elf/linux-x86.exp
- @@ -0,0 +1,46 @@
- +# Expect script for simple native Linux/x86 tests.
- +# Copyright (C) 2018 Free Software Foundation, Inc.
- +#
- +# This file is part of the GNU Binutils.
- +#
- +# This program is free software; you can redistribute it and/or modify
- +# it under the terms of the GNU General Public License as published by
- +# the Free Software Foundation; either version 3 of the License, or
- +# (at your option) any later version.
- +#
- +# This program is distributed in the hope that it will be useful,
- +# but WITHOUT ANY WARRANTY; without even the implied warranty of
- +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- +# GNU General Public License for more details.
- +#
- +# You should have received a copy of the GNU General Public License
- +# along with this program; if not, write to the Free Software
- +# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
- +# MA 02110-1301, USA.
- +#
- +
- +# Test very simple native Linux/x86 programs with linux-x86.S.
- +if { ![isnative] || [which $CC] == 0 \
- + || (![istarget "i?86-*-linux*"] \
- + && ![istarget "x86_64-*-linux*"] \
- + && ![istarget "amd64-*-linux*"]) } {
- + return
- +}
- +
- +# Add $PLT_CFLAGS if PLT is expected.
- +global PLT_CFLAGS
- +# Add $NOPIE_CFLAGS and $NOPIE_LDFLAGS if non-PIE is required.
- +global NOPIE_CFLAGS NOPIE_LDFLAGS
- +
- +run_ld_link_exec_tests [list \
- + [list \
- + "Run PR ld/23428 test" \
- + "--no-dynamic-linker -z separate-code" \
- + "" \
- + { linux-x86.S pr23428.c dummy.s } \
- + "pr23428" \
- + "pass.out" \
- + "$NOPIE_CFLAGS -fno-asynchronous-unwind-tables" \
- + "asm" \
- + ] \
- +]
- diff --git a/ld/testsuite/ld-elf/pr23428.c b/ld/testsuite/ld-elf/pr23428.c
- new file mode 100644
- index 0000000000..3631ed7926
- --- /dev/null
- +++ b/ld/testsuite/ld-elf/pr23428.c
- @@ -0,0 +1,43 @@
- +#include <unistd.h>
- +#include <link.h>
- +#include <syscall.h>
- +
- +#define STRING_COMMA_LEN(STR) (STR), (sizeof (STR) - 1)
- +
- +int
- +main (int argc, char **argv)
- +{
- + char **ev = &argv[argc + 1];
- + char **evp = ev;
- + ElfW(auxv_t) *av;
- + const ElfW(Phdr) *phdr = NULL;
- + size_t phnum = 0;
- + size_t loadnum = 0;
- + int fd = STDOUT_FILENO;
- + size_t i;
- +
- + while (*evp++ != NULL)
- + ;
- +
- + av = (ElfW(auxv_t) *) evp;
- +
- + for (; av->a_type != AT_NULL; ++av)
- + switch (av->a_type)
- + {
- + case AT_PHDR:
- + phdr = (const void *) av->a_un.a_val;
- + break;
- + case AT_PHNUM:
- + phnum = av->a_un.a_val;
- + break;
- + }
- +
- + for (i = 0; i < phnum; i++, phdr++)
- + if (phdr->p_type == PT_LOAD)
- + loadnum++;
- +
- + syscall (SYS_write, fd, STRING_COMMA_LEN ("PASS\n"));
- +
- + syscall (SYS_exit, !loadnum);
- + return 0;
- +}
- diff --git a/ld/testsuite/ld-elf/sec64k.exp b/ld/testsuite/ld-elf/sec64k.exp
- index b58139e9dd..3909c0eaa1 100644
- --- a/ld/testsuite/ld-elf/sec64k.exp
- +++ b/ld/testsuite/ld-elf/sec64k.exp
- @@ -177,6 +177,8 @@ if { ![istarget "d10v-*-*"]
- foreach sfile $sfiles { puts $ofd "#source: $sfile" }
- if { [istarget spu*-*-*] } {
- puts $ofd "#ld: --local-store 0:0"
- + } elseif { [istarget "i?86-*-linux*"] || [istarget "x86_64-*-linux*"] } {
- + puts $ofd "#ld: -z noseparate-code"
- } else {
- puts $ofd "#ld:"
- }
- diff --git a/ld/testsuite/ld-i386/abs-iamcu.d b/ld/testsuite/ld-i386/abs-iamcu.d
- index ac9beff2e5..aba7d6b03f 100644
- --- a/ld/testsuite/ld-i386/abs-iamcu.d
- +++ b/ld/testsuite/ld-i386/abs-iamcu.d
- @@ -2,7 +2,7 @@
- #source: abs.s
- #source: zero.s
- #as: --32 -march=iamcu
- -#ld: -m elf_iamcu
- +#ld: -m elf_iamcu -z noseparate-code
- #objdump: -rs -j .text
-
- .*: file format .*
- diff --git a/ld/testsuite/ld-i386/abs.d b/ld/testsuite/ld-i386/abs.d
- index e660aca524..191ee4456a 100644
- --- a/ld/testsuite/ld-i386/abs.d
- +++ b/ld/testsuite/ld-i386/abs.d
- @@ -2,7 +2,7 @@
- #as: --32
- #source: abs.s
- #source: zero.s
- -#ld: -melf_i386
- +#ld: -melf_i386 -z noseparate-code
- #objdump: -rs
-
- .*: file format .*
- diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp
- index 6d794fe653..56c95367e1 100644
- --- a/ld/testsuite/ld-i386/i386.exp
- +++ b/ld/testsuite/ld-i386/i386.exp
- @@ -462,6 +462,9 @@ run_dump_test "pr23189"
- run_dump_test "pr23194"
- run_dump_test "pr23372a"
- run_dump_test "pr23372b"
- +run_dump_test "pr23486a"
- +run_dump_test "pr23486b"
- +run_dump_test "pr23854"
-
- if { !([istarget "i?86-*-linux*"]
- || [istarget "i?86-*-gnu*"]
- diff --git a/ld/testsuite/ld-i386/pr12718.d b/ld/testsuite/ld-i386/pr12718.d
- index ec51540a42..7eba52d95e 100644
- --- a/ld/testsuite/ld-i386/pr12718.d
- +++ b/ld/testsuite/ld-i386/pr12718.d
- @@ -1,6 +1,6 @@
- #name: PR ld/12718
- #as: --32
- -#ld: -melf_i386
- +#ld: -melf_i386 -z noseparate-code
- #readelf: -S
-
- There are 5 section headers, starting at offset 0x[0-9a-f]+:
- diff --git a/ld/testsuite/ld-i386/pr12921.d b/ld/testsuite/ld-i386/pr12921.d
- index e49079b3c8..ea2da3eb51 100644
- --- a/ld/testsuite/ld-i386/pr12921.d
- +++ b/ld/testsuite/ld-i386/pr12921.d
- @@ -1,6 +1,6 @@
- #name: PR ld/12921
- #as: --32
- -#ld: -melf_i386
- +#ld: -melf_i386 -z noseparate-code
- #readelf: -S --wide
-
- There are 7 section headers, starting at offset 0x[0-9a-f]+:
- diff --git a/ld/testsuite/ld-i386/pr23486a.d b/ld/testsuite/ld-i386/pr23486a.d
- new file mode 100644
- index 0000000000..41a6dcf7d5
- --- /dev/null
- +++ b/ld/testsuite/ld-i386/pr23486a.d
- @@ -0,0 +1,10 @@
- +#source: ../ld-x86-64/pr23486a.s
- +#source: ../ld-x86-64/pr23486b.s
- +#as: --32
- +#ld: -r -m elf_i386
- +#readelf: -n
- +
- +Displaying notes found in: .note.gnu.property
- + Owner Data size Description
- + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: i486, 586
- diff --git a/ld/testsuite/ld-i386/pr23486b.d b/ld/testsuite/ld-i386/pr23486b.d
- new file mode 100644
- index 0000000000..08019b7274
- --- /dev/null
- +++ b/ld/testsuite/ld-i386/pr23486b.d
- @@ -0,0 +1,10 @@
- +#source: ../ld-x86-64/pr23486b.s
- +#source: ../ld-x86-64/pr23486a.s
- +#as: --32
- +#ld: -r -m elf_i386
- +#readelf: -n
- +
- +Displaying notes found in: .note.gnu.property
- + Owner Data size Description
- + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: i486, 586
- diff --git a/ld/testsuite/ld-i386/pr23854.d b/ld/testsuite/ld-i386/pr23854.d
- new file mode 100644
- index 0000000000..3ed9c206e5
- --- /dev/null
- +++ b/ld/testsuite/ld-i386/pr23854.d
- @@ -0,0 +1,28 @@
- +#as: --32 -mrelax-relocations=yes
- +#ld: -melf_i386
- +#objdump: -dw
- +
- +.*: +file format .*
- +
- +Disassembly of section .text:
- +
- +[a-f0-9]+ <_start>:
- + +[a-f0-9]+: 66 13 81 f8 ff ff ff adc -0x8\(%ecx\),%ax
- + +[a-f0-9]+: 66 03 99 f8 ff ff ff add -0x8\(%ecx\),%bx
- + +[a-f0-9]+: 66 23 89 f8 ff ff ff and -0x8\(%ecx\),%cx
- + +[a-f0-9]+: 66 3b 91 f8 ff ff ff cmp -0x8\(%ecx\),%dx
- + +[a-f0-9]+: 66 0b b9 f8 ff ff ff or -0x8\(%ecx\),%di
- + +[a-f0-9]+: 66 1b b1 f8 ff ff ff sbb -0x8\(%ecx\),%si
- + +[a-f0-9]+: 66 2b a9 f8 ff ff ff sub -0x8\(%ecx\),%bp
- + +[a-f0-9]+: 66 33 a1 f8 ff ff ff xor -0x8\(%ecx\),%sp
- + +[a-f0-9]+: 66 85 89 f8 ff ff ff test %cx,-0x8\(%ecx\)
- + +[a-f0-9]+: 66 13 81 fc ff ff ff adc -0x4\(%ecx\),%ax
- + +[a-f0-9]+: 66 03 99 fc ff ff ff add -0x4\(%ecx\),%bx
- + +[a-f0-9]+: 66 23 89 fc ff ff ff and -0x4\(%ecx\),%cx
- + +[a-f0-9]+: 66 3b 91 fc ff ff ff cmp -0x4\(%ecx\),%dx
- + +[a-f0-9]+: 66 0b b9 fc ff ff ff or -0x4\(%ecx\),%di
- + +[a-f0-9]+: 66 1b b1 fc ff ff ff sbb -0x4\(%ecx\),%si
- + +[a-f0-9]+: 66 2b a9 fc ff ff ff sub -0x4\(%ecx\),%bp
- + +[a-f0-9]+: 66 33 a1 fc ff ff ff xor -0x4\(%ecx\),%sp
- + +[a-f0-9]+: 66 85 89 fc ff ff ff test %cx,-0x4\(%ecx\)
- +#pass
- diff --git a/ld/testsuite/ld-i386/pr23854.s b/ld/testsuite/ld-i386/pr23854.s
- new file mode 100644
- index 0000000000..565e747be0
- --- /dev/null
- +++ b/ld/testsuite/ld-i386/pr23854.s
- @@ -0,0 +1,33 @@
- + .data
- + .type bar, @object
- +bar:
- + .byte 1
- + .size bar, .-bar
- + .globl foo
- + .type foo, @object
- +foo:
- + .byte 1
- + .size foo, .-foo
- + .text
- + .globl _start
- + .type _start, @function
- +_start:
- + adcw bar@GOT(%ecx), %ax
- + addw bar@GOT(%ecx), %bx
- + andw bar@GOT(%ecx), %cx
- + cmpw bar@GOT(%ecx), %dx
- + orw bar@GOT(%ecx), %di
- + sbbw bar@GOT(%ecx), %si
- + subw bar@GOT(%ecx), %bp
- + xorw bar@GOT(%ecx), %sp
- + testw %cx, bar@GOT(%ecx)
- + adcw foo@GOT(%ecx), %ax
- + addw foo@GOT(%ecx), %bx
- + andw foo@GOT(%ecx), %cx
- + cmpw foo@GOT(%ecx), %dx
- + orw foo@GOT(%ecx), %di
- + sbbw foo@GOT(%ecx), %si
- + subw foo@GOT(%ecx), %bp
- + xorw foo@GOT(%ecx), %sp
- + testw %cx, foo@GOT(%ecx)
- + .size _start, .-_start
- diff --git a/ld/testsuite/ld-i386/property-3.r b/ld/testsuite/ld-i386/property-3.r
- index 0ed91f5922..d03203c1e5 100644
- --- a/ld/testsuite/ld-i386/property-3.r
- +++ b/ld/testsuite/ld-i386/property-3.r
- @@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
- Owner Data size Description
- GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
- Properties: stack size: 0x800000
- - x86 ISA used: 586, SSE
- x86 ISA needed: i486, 586
- #pass
- diff --git a/ld/testsuite/ld-i386/property-4.r b/ld/testsuite/ld-i386/property-4.r
- index cb2bc15d9a..da295eb6c7 100644
- --- a/ld/testsuite/ld-i386/property-4.r
- +++ b/ld/testsuite/ld-i386/property-4.r
- @@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
- Owner Data size Description
- GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
- Properties: stack size: 0x800000
- - x86 ISA used: i486, 586, SSE
- x86 ISA needed: i486, 586, SSE
- #pass
- diff --git a/ld/testsuite/ld-i386/property-5.r b/ld/testsuite/ld-i386/property-5.r
- index 552965058c..e4141594b3 100644
- --- a/ld/testsuite/ld-i386/property-5.r
- +++ b/ld/testsuite/ld-i386/property-5.r
- @@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
- Owner Data size Description
- GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
- Properties: stack size: 0x900000
- - x86 ISA used: i486, 586, SSE
- x86 ISA needed: i486, 586, SSE
- #pass
- diff --git a/ld/testsuite/ld-i386/property-x86-ibt3a.d b/ld/testsuite/ld-i386/property-x86-ibt3a.d
- index 4bb35b00fb..0aedea1614 100644
- --- a/ld/testsuite/ld-i386/property-x86-ibt3a.d
- +++ b/ld/testsuite/ld-i386/property-x86-ibt3a.d
- @@ -6,6 +6,5 @@
-
- Displaying notes found in: .note.gnu.property
- Owner Data size Description
- - GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- - Properties: x86 ISA used: i486, 586, SSE2, SSE3
- - x86 ISA needed: 586, SSE, SSE3, SSE4_1
- + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
- diff --git a/ld/testsuite/ld-i386/property-x86-ibt3b.d b/ld/testsuite/ld-i386/property-x86-ibt3b.d
- index 418d58a8f7..bd69ac6478 100644
- --- a/ld/testsuite/ld-i386/property-x86-ibt3b.d
- +++ b/ld/testsuite/ld-i386/property-x86-ibt3b.d
- @@ -6,6 +6,5 @@
-
- Displaying notes found in: .note.gnu.property
- Owner Data size Description
- - GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- - Properties: x86 ISA used: i486, 586, SSE2, SSE3
- - x86 ISA needed: 586, SSE, SSE3, SSE4_1
- + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
- diff --git a/ld/testsuite/ld-i386/property-x86-shstk3a.d b/ld/testsuite/ld-i386/property-x86-shstk3a.d
- index e261038f60..76d2a39f2c 100644
- --- a/ld/testsuite/ld-i386/property-x86-shstk3a.d
- +++ b/ld/testsuite/ld-i386/property-x86-shstk3a.d
- @@ -6,6 +6,5 @@
-
- Displaying notes found in: .note.gnu.property
- Owner Data size Description
- - GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- - Properties: x86 ISA used: i486, 586, SSE2, SSE3
- - x86 ISA needed: 586, SSE, SSE3, SSE4_1
- + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
- diff --git a/ld/testsuite/ld-i386/property-x86-shstk3b.d b/ld/testsuite/ld-i386/property-x86-shstk3b.d
- index 25f3d2361e..e770ecffa5 100644
- --- a/ld/testsuite/ld-i386/property-x86-shstk3b.d
- +++ b/ld/testsuite/ld-i386/property-x86-shstk3b.d
- @@ -6,6 +6,5 @@
-
- Displaying notes found in: .note.gnu.property
- Owner Data size Description
- - GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- - Properties: x86 ISA used: i486, 586, SSE2, SSE3
- - x86 ISA needed: 586, SSE, SSE3, SSE4_1
- + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: 586, SSE, SSE3, SSE4_1
- diff --git a/ld/testsuite/ld-ifunc/ifunc.exp b/ld/testsuite/ld-ifunc/ifunc.exp
- index 612d91402f..86892b96b5 100644
- --- a/ld/testsuite/ld-ifunc/ifunc.exp
- +++ b/ld/testsuite/ld-ifunc/ifunc.exp
- @@ -713,7 +713,7 @@ run_ld_link_exec_tests [list \
- # That does not happen for the pr23169 testcase where the resolver is
- # in the executable (which is relocated last by ld.so).
- if { [isnative]
- - && ![istarget "powerpc-*-*"] } {
- + && !([istarget "powerpc-*-*"] || [istarget "aarch64*-*-*"]) } {
- run_ld_link_exec_tests [list \
- [list \
- "Run pr23169a" \
- diff --git a/ld/testsuite/ld-linkonce/zeroeh.ld b/ld/testsuite/ld-linkonce/zeroeh.ld
- index b22eaa12c9..f89855a08f 100644
- --- a/ld/testsuite/ld-linkonce/zeroeh.ld
- +++ b/ld/testsuite/ld-linkonce/zeroeh.ld
- @@ -2,4 +2,5 @@ SECTIONS {
- .text 0xa00 : { *(.text); *(.gnu.linkonce.t.*) }
- .gcc_except_table 0x2000 : { *(.gcc_except_table) }
- .eh_frame 0x4000 : { *(.eh_frame) }
- + /DISCARD/ : { *(.note.gnu.property) }
- }
- diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp
- index 7c50b0f102..4ce74f2587 100644
- --- a/ld/testsuite/ld-plugin/lto.exp
- +++ b/ld/testsuite/ld-plugin/lto.exp
- @@ -219,6 +219,12 @@ set lto_link_tests [list \
- [list "Build pr22751.a" \
- "$plug_opt" "-flto $lto_no_fat $INT128_CFLAGS" \
- {pr22751.c} {} "pr22751.a"] \
- + [list "Build libpr23818.so" \
- + "-shared -flto -g -Wl,-version-script,pr23818.t" \
- + "-g -flto $lto_fat" \
- + {pr23818a.c pr23818b.c} \
- + {{"readelf" {-s --wide} "pr23818.d"}} \
- + "libpr23818.so"] \
- ]
-
- if { [at_least_gcc_version 4 7] } {
- diff --git a/ld/testsuite/ld-plugin/pr23818.d b/ld/testsuite/ld-plugin/pr23818.d
- new file mode 100644
- index 0000000000..5753cd64fd
- --- /dev/null
- +++ b/ld/testsuite/ld-plugin/pr23818.d
- @@ -0,0 +1,4 @@
- +#failif
- +#...
- +.*0+ +[A-Z]+ +GLOBAL +DEFAULT +ABS foo
- +#...
- diff --git a/ld/testsuite/ld-plugin/pr23818.t b/ld/testsuite/ld-plugin/pr23818.t
- new file mode 100644
- index 0000000000..45bca5580e
- --- /dev/null
- +++ b/ld/testsuite/ld-plugin/pr23818.t
- @@ -0,0 +1,4 @@
- +{
- + global: bar;
- + local: *;
- +};
- diff --git a/ld/testsuite/ld-plugin/pr23818a.c b/ld/testsuite/ld-plugin/pr23818a.c
- new file mode 100644
- index 0000000000..5b5ccbf7cb
- --- /dev/null
- +++ b/ld/testsuite/ld-plugin/pr23818a.c
- @@ -0,0 +1,4 @@
- +void
- +foo ()
- +{
- +}
- diff --git a/ld/testsuite/ld-plugin/pr23818b.c b/ld/testsuite/ld-plugin/pr23818b.c
- new file mode 100644
- index 0000000000..d4be333a39
- --- /dev/null
- +++ b/ld/testsuite/ld-plugin/pr23818b.c
- @@ -0,0 +1,7 @@
- +void foo (void);
- +
- +void
- +bar (void)
- +{
- + foo ();
- +}
- diff --git a/ld/testsuite/ld-powerpc/powerpc.exp b/ld/testsuite/ld-powerpc/powerpc.exp
- index 0359ba28cb..5ec3850787 100644
- --- a/ld/testsuite/ld-powerpc/powerpc.exp
- +++ b/ld/testsuite/ld-powerpc/powerpc.exp
- @@ -221,7 +221,7 @@ set ppc64elftests {
- "tlsopt4"}
- {"TLS DLL" "-shared -melf64ppc --version-script tlsdll.ver" "" "-a64" {tlsdll.s}
- {} "tlsdll.so"}
- - {"TLS opt 5" "-melf64ppc --no-plt-align -shared --gc-sections --no-plt-localentry tmpdir/tlsdll.so" "" "-a64" {tlsopt5.s}
- + {"TLS opt 5" "-melf64ppc -shared --hash-style=both --gc-sections --no-plt-localentry tmpdir/tlsdll.so" "" "-a64" {tlsopt5.s}
- {{objdump -dr tlsopt5.d} {readelf -wf tlsopt5.wf}}
- "tlsopt5"}
- {"sym@tocbase" "-shared -melf64ppc" "" "-a64" {symtocbase-1.s symtocbase-2.s}
- @@ -328,6 +328,7 @@ if [ supports_ppc64 ] then {
- run_dump_test "dotsym2"
- run_dump_test "dotsym3"
- run_dump_test "dotsym4"
- + run_dump_test "pr23937"
- }
-
- run_dump_test "tlsld32"
- diff --git a/ld/testsuite/ld-powerpc/pr23937.d b/ld/testsuite/ld-powerpc/pr23937.d
- new file mode 100644
- index 0000000000..6ef79e81cf
- --- /dev/null
- +++ b/ld/testsuite/ld-powerpc/pr23937.d
- @@ -0,0 +1,10 @@
- +#as: -a64
- +#ld: -melf64ppc --defsym puts=0 --defsym _start=0
- +#readelf: -srW
- +# Check that the IRELATIVE addend is magic+0, not magic+8
- +
- +#...
- +.* R_PPC64_IRELATIVE +10000180
- +#...
- +.*: 0+10000180 +20 IFUNC +LOCAL +DEFAULT .* magic
- +#pass
- diff --git a/ld/testsuite/ld-powerpc/pr23937.s b/ld/testsuite/ld-powerpc/pr23937.s
- new file mode 100644
- index 0000000000..155e53adb7
- --- /dev/null
- +++ b/ld/testsuite/ld-powerpc/pr23937.s
- @@ -0,0 +1,65 @@
- + .abiversion 2
- + .text
- + .p2align 4,,15
- + .type implementation, @function
- +implementation:
- +.LCF0:
- + addis 2,12,.TOC.-.LCF0@ha
- + addi 2,2,.TOC.-.LCF0@l
- + .localentry implementation,.-implementation
- + mflr 0
- + addis 3,2,.LC0@toc@ha
- + addi 3,3,.LC0@toc@l
- + std 0,16(1)
- + stdu 1,-32(1)
- + bl puts
- + nop
- + addi 1,1,32
- + li 3,0
- + ld 0,16(1)
- + mtlr 0
- + blr
- + .size implementation,.-implementation
- +
- + .p2align 4,,15
- + .type resolver, @function
- +resolver:
- +.LCF1:
- + addis 2,12,.TOC.-.LCF1@ha
- + addi 2,2,.TOC.-.LCF1@l
- + .localentry resolver,.-resolver
- + addis 3,2,implementation@toc@ha
- + addi 3,3,implementation@toc@l
- + blr
- + .size resolver,.-resolver
- +
- + .type magic, @gnu_indirect_function
- + .set magic,resolver
- +
- + .section .text.startup,"ax",@progbits
- + .p2align 4,,15
- + .globl main
- + .type main, @function
- +main:
- +.LCF2:
- + addis 2,12,.TOC.-.LCF2@ha
- + addi 2,2,.TOC.-.LCF2@l
- + .localentry main,.-main
- + mflr 0
- + std 0,16(1)
- + stdu 1,-32(1)
- + bl magic
- + nop
- + addi 1,1,32
- + cntlzw 3,3
- + ld 0,16(1)
- + srwi 3,3,5
- + mtlr 0
- + xori 3,3,0x1
- + blr
- + .size main,.-main
- +
- + .section .rodata.str1.8,"aMS",@progbits,1
- + .p2align 3
- +.LC0:
- + .string "'ere I am JH"
- diff --git a/ld/testsuite/ld-powerpc/tlsopt5.d b/ld/testsuite/ld-powerpc/tlsopt5.d
- index 4521a9b427..4caf1832ea 100644
- --- a/ld/testsuite/ld-powerpc/tlsopt5.d
- +++ b/ld/testsuite/ld-powerpc/tlsopt5.d
- @@ -8,6 +8,13 @@
-
- Disassembly of section \.text:
-
- +.* <.*\.plt_call\.foo>:
- +.*: (18 00 41 f8|f8 41 00 18) std r2,24\(r1\)
- +.*: (28 80 82 e9|e9 82 80 28) ld r12,-32728\(r2\)
- +.*: (a6 03 89 7d|7d 89 03 a6) mtctr r12
- +.*: (20 04 80 4e|4e 80 04 20) bctr
- + \.\.\.
- +
- .* <.*\.plt_call\.__tls_get_addr_opt@@GLIBC_2\.22>:
- .*: (00 00 63 e9|e9 63 00 00) ld r11,0\(r3\)
- .*: (08 00 83 e9|e9 83 00 08) ld r12,8\(r3\)
- @@ -19,17 +26,21 @@ Disassembly of section \.text:
- .*: (a6 02 68 7d|7d 68 02 a6) mflr r11
- .*: (08 00 61 f9|f9 61 00 08) std r11,8\(r1\)
- .*: (18 00 41 f8|f8 41 00 18) std r2,24\(r1\)
- -.*: (28 80 82 e9|e9 82 80 28) ld r12,-32728\(r2\)
- +.*: (30 80 82 e9|e9 82 80 30) ld r12,-32720\(r2\)
- .*: (a6 03 89 7d|7d 89 03 a6) mtctr r12
- .*: (21 04 80 4e|4e 80 04 21) bctrl
- .*: (18 00 41 e8|e8 41 00 18) ld r2,24\(r1\)
- .*: (08 00 61 e9|e9 61 00 08) ld r11,8\(r1\)
- .*: (a6 03 68 7d|7d 68 03 a6) mtlr r11
- .*: (20 00 80 4e|4e 80 00 20) blr
- + \.\.\.
-
- .* <_start>:
- .*: (08 80 62 38|38 62 80 08) addi r3,r2,-32760
- -.*: (b9 ff ff 4b|4b ff ff b9) bl .*
- +.*: (9d ff ff 4b|4b ff ff 9d) bl .* <.*\.plt_call\.__tls_get_addr_opt@@GLIBC_2\.22>
- +.*: (00 00 00 60|60 00 00 00) nop
- +.*: (75 ff ff 4b|4b ff ff 75) bl .* <.*\.plt_call\.foo>
- +.*: (18 00 41 e8|e8 41 00 18) ld r2,24\(r1\)
- .*: (00 00 00 60|60 00 00 00) nop
- .*
- .*
- @@ -50,5 +61,8 @@ Disassembly of section \.text:
- .*: (08 00 6b e9|e9 6b 00 08) ld r11,8\(r11\)
- .*: (20 04 80 4e|4e 80 04 20) bctr
-
- +.* <foo@plt>:
- +.* (c8 ff ff 4b|4b ff ff c8) b .*
- +
- .* <__tls_get_addr_opt@plt>:
- -.*: (c8 ff ff 4b|4b ff ff c8) b .*
- +.*: (c4 ff ff 4b|4b ff ff c4) b .*
- diff --git a/ld/testsuite/ld-powerpc/tlsopt5.s b/ld/testsuite/ld-powerpc/tlsopt5.s
- index 70902ef96a..7cb82db1f6 100644
- --- a/ld/testsuite/ld-powerpc/tlsopt5.s
- +++ b/ld/testsuite/ld-powerpc/tlsopt5.s
- @@ -1,7 +1,10 @@
- .globl _start
- + .weak foo
- _start:
- .cfi_startproc
- addi 3,2,gd@got@tlsgd
- bl __tls_get_addr(gd@tlsgd)
- nop
- + bl foo
- + nop
- .cfi_endproc
- diff --git a/ld/testsuite/ld-powerpc/tlsopt5.wf b/ld/testsuite/ld-powerpc/tlsopt5.wf
- index af8cb76d1c..f0453610e0 100644
- --- a/ld/testsuite/ld-powerpc/tlsopt5.wf
- +++ b/ld/testsuite/ld-powerpc/tlsopt5.wf
- @@ -7,11 +7,10 @@ Contents of the \.eh_frame section:
- Data alignment factor: -8
- Return address column: 65
- Augmentation data: 1b
- -
- DW_CFA_def_cfa: r1 ofs 0
-
- 0+14 0+14 0+18 FDE cie=0+ pc=.*
- - DW_CFA_advance_loc: 48 to .*
- + DW_CFA_advance_loc: 80 to .*
- DW_CFA_offset_extended_sf: r65 at cfa\+8
- DW_CFA_advance_loc: 16 to .*
- DW_CFA_restore_extended: r65
- diff --git a/ld/testsuite/ld-scripts/print-memory-usage.t b/ld/testsuite/ld-scripts/print-memory-usage.t
- index 5ff057a5e3..6eda1d2dc4 100644
- --- a/ld/testsuite/ld-scripts/print-memory-usage.t
- +++ b/ld/testsuite/ld-scripts/print-memory-usage.t
- @@ -11,4 +11,6 @@ SECTIONS
- *(.data)
- *(.rw)
- }
- +
- + /DISCARD/ : { *(.note.gnu.property) }
- }
- diff --git a/ld/testsuite/ld-scripts/size-2.t b/ld/testsuite/ld-scripts/size-2.t
- index 723863995e..c3c4eddab4 100644
- --- a/ld/testsuite/ld-scripts/size-2.t
- +++ b/ld/testsuite/ld-scripts/size-2.t
- @@ -18,4 +18,5 @@ SECTIONS
- LONG (SIZEOF (.tdata))
- LONG (SIZEOF (.tbss))
- } :image
- + /DISCARD/ : { *(.note.gnu.property) }
- }
- diff --git a/ld/testsuite/ld-x86-64/abs-k1om.d b/ld/testsuite/ld-x86-64/abs-k1om.d
- index 2c26639fc0..6b0fde0eed 100644
- --- a/ld/testsuite/ld-x86-64/abs-k1om.d
- +++ b/ld/testsuite/ld-x86-64/abs-k1om.d
- @@ -2,7 +2,7 @@
- #source: ../ld-i386/abs.s
- #source: ../ld-i386/zero.s
- #as: --64 -march=k1om
- -#ld: -m elf_k1om
- +#ld: -m elf_k1om -z noseparate-code
- #objdump: -rs -j .text
-
- .*: file format .*
- diff --git a/ld/testsuite/ld-x86-64/abs-l1om.d b/ld/testsuite/ld-x86-64/abs-l1om.d
- index 1fb96d44b7..f87869f9d0 100644
- --- a/ld/testsuite/ld-x86-64/abs-l1om.d
- +++ b/ld/testsuite/ld-x86-64/abs-l1om.d
- @@ -2,7 +2,7 @@
- #source: ../ld-i386/abs.s
- #source: ../ld-i386/zero.s
- #as: --64 -march=l1om
- -#ld: -m elf_l1om
- +#ld: -m elf_l1om -z noseparate-code
- #objdump: -rs -j .text
- #target: x86_64-*-linux*
-
- diff --git a/ld/testsuite/ld-x86-64/abs.d b/ld/testsuite/ld-x86-64/abs.d
- index b24b018639..d99ab4685d 100644
- --- a/ld/testsuite/ld-x86-64/abs.d
- +++ b/ld/testsuite/ld-x86-64/abs.d
- @@ -1,7 +1,7 @@
- #name: Absolute non-overflowing relocs
- #source: ../ld-i386/abs.s
- #source: ../ld-i386/zero.s
- -#ld:
- +#ld: -z noseparate-code
- #objdump: -rs
-
- .*: file format .*
- diff --git a/ld/testsuite/ld-x86-64/pr12718.d b/ld/testsuite/ld-x86-64/pr12718.d
- index 07d17325d0..2c503ffbaa 100644
- --- a/ld/testsuite/ld-x86-64/pr12718.d
- +++ b/ld/testsuite/ld-x86-64/pr12718.d
- @@ -1,6 +1,6 @@
- #name: PR ld/12718
- #as: --64
- -#ld: -melf_x86_64
- +#ld: -melf_x86_64 -z noseparate-code
- #readelf: -S --wide
-
- There are 5 section headers, starting at offset 0x[0-9a-f]+:
- diff --git a/ld/testsuite/ld-x86-64/pr12921.d b/ld/testsuite/ld-x86-64/pr12921.d
- index 6fe6abee09..1162d55818 100644
- --- a/ld/testsuite/ld-x86-64/pr12921.d
- +++ b/ld/testsuite/ld-x86-64/pr12921.d
- @@ -1,6 +1,6 @@
- #name: PR ld/12921
- #as: --64
- -#ld: -melf_x86_64
- +#ld: -melf_x86_64 -z noseparate-code
- #readelf: -S --wide
-
- There are 7 section headers, starting at offset 0x[0-9a-f]+:
- diff --git a/ld/testsuite/ld-x86-64/pr23486a-x32.d b/ld/testsuite/ld-x86-64/pr23486a-x32.d
- new file mode 100644
- index 0000000000..6d9fa68cdb
- --- /dev/null
- +++ b/ld/testsuite/ld-x86-64/pr23486a-x32.d
- @@ -0,0 +1,10 @@
- +#source: pr23486a.s
- +#source: pr23486b.s
- +#as: --x32
- +#ld: -r -m elf32_x86_64
- +#readelf: -n
- +
- +Displaying notes found in: .note.gnu.property
- + Owner Data size Description
- + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: i486, 586
- diff --git a/ld/testsuite/ld-x86-64/pr23486a.d b/ld/testsuite/ld-x86-64/pr23486a.d
- new file mode 100644
- index 0000000000..dc2b7bf760
- --- /dev/null
- +++ b/ld/testsuite/ld-x86-64/pr23486a.d
- @@ -0,0 +1,10 @@
- +#source: pr23486a.s
- +#source: pr23486b.s
- +#as: --64 -defsym __64_bit__=1
- +#ld: -r -m elf_x86_64
- +#readelf: -n
- +
- +Displaying notes found in: .note.gnu.property
- + Owner Data size Description
- + GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: i486, 586
- diff --git a/ld/testsuite/ld-x86-64/pr23486a.s b/ld/testsuite/ld-x86-64/pr23486a.s
- new file mode 100644
- index 0000000000..a07d0c7ced
- --- /dev/null
- +++ b/ld/testsuite/ld-x86-64/pr23486a.s
- @@ -0,0 +1,30 @@
- + .section ".note.gnu.property", "a"
- +.ifdef __64_bit__
- + .p2align 3
- +.else
- + .p2align 2
- +.endif
- + .long 1f - 0f /* name length. */
- + .long 4f - 1f /* data length. */
- + /* NT_GNU_PROPERTY_TYPE_0 */
- + .long 5 /* note type. */
- +0:
- + .asciz "GNU" /* vendor name. */
- +1:
- +.ifdef __64_bit__
- + .p2align 3
- +.else
- + .p2align 2
- +.endif
- + /* GNU_PROPERTY_X86_ISA_1_USED */
- + .long 0xc0000000 /* pr_type. */
- + .long 3f - 2f /* pr_datasz. */
- +2:
- + .long 0xa
- +3:
- +.ifdef __64_bit__
- + .p2align 3
- +.else
- + .p2align 2
- +.endif
- +4:
- diff --git a/ld/testsuite/ld-x86-64/pr23486b-x32.d b/ld/testsuite/ld-x86-64/pr23486b-x32.d
- new file mode 100644
- index 0000000000..0445e69d82
- --- /dev/null
- +++ b/ld/testsuite/ld-x86-64/pr23486b-x32.d
- @@ -0,0 +1,10 @@
- +#source: pr23486b.s
- +#source: pr23486a.s
- +#as: --x32
- +#ld: -r -m elf32_x86_64
- +#readelf: -n
- +
- +Displaying notes found in: .note.gnu.property
- + Owner Data size Description
- + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: i486, 586
- diff --git a/ld/testsuite/ld-x86-64/pr23486b.d b/ld/testsuite/ld-x86-64/pr23486b.d
- new file mode 100644
- index 0000000000..dd0fe88143
- --- /dev/null
- +++ b/ld/testsuite/ld-x86-64/pr23486b.d
- @@ -0,0 +1,10 @@
- +#source: pr23486b.s
- +#source: pr23486a.s
- +#as: --64 -defsym __64_bit__=1
- +#ld: -r -m elf_x86_64
- +#readelf: -n
- +
- +Displaying notes found in: .note.gnu.property
- + Owner Data size Description
- + GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: i486, 586
- diff --git a/ld/testsuite/ld-x86-64/pr23486b.s b/ld/testsuite/ld-x86-64/pr23486b.s
- new file mode 100644
- index 0000000000..c5167eeb65
- --- /dev/null
- +++ b/ld/testsuite/ld-x86-64/pr23486b.s
- @@ -0,0 +1,30 @@
- + .section ".note.gnu.property", "a"
- +.ifdef __64_bit__
- + .p2align 3
- +.else
- + .p2align 2
- +.endif
- + .long 1f - 0f /* name length. */
- + .long 4f - 1f /* data length. */
- + /* NT_GNU_PROPERTY_TYPE_0 */
- + .long 5 /* note type. */
- +0:
- + .asciz "GNU" /* vendor name. */
- +1:
- +.ifdef __64_bit__
- + .p2align 3
- +.else
- + .p2align 2
- +.endif
- + /* GNU_PROPERTY_X86_ISA_1_NEEDED */
- + .long 0xc0000001 /* pr_type. */
- + .long 3f - 2f /* pr_datasz. */
- +2:
- + .long 0x3
- +3:
- +.ifdef __64_bit__
- + .p2align 3
- +.else
- + .p2align 2
- +.endif
- +4:
- diff --git a/ld/testsuite/ld-x86-64/pr23854.d b/ld/testsuite/ld-x86-64/pr23854.d
- new file mode 100644
- index 0000000000..95770d3cef
- --- /dev/null
- +++ b/ld/testsuite/ld-x86-64/pr23854.d
- @@ -0,0 +1,28 @@
- +#as: --64 -mrelax-relocations=yes
- +#ld: -melf_x86_64
- +#objdump: -dw
- +
- +.*: +file format .*
- +
- +Disassembly of section .text:
- +
- +[a-f0-9]+ <_start>:
- + +[a-f0-9]+: 66 13 05 ([0-9a-f]{2} ){4} * adc 0x[a-f0-9]+\(%rip\),%ax # [a-f0-9]+ <.got>
- + +[a-f0-9]+: 66 03 1d ([0-9a-f]{2} ){4} * add 0x[a-f0-9]+\(%rip\),%bx # [a-f0-9]+ <.got>
- + +[a-f0-9]+: 66 23 0d ([0-9a-f]{2} ){4} * and 0x[a-f0-9]+\(%rip\),%cx # [a-f0-9]+ <.got>
- + +[a-f0-9]+: 66 3b 15 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%dx # [a-f0-9]+ <.got>
- + +[a-f0-9]+: 66 0b 3d ([0-9a-f]{2} ){4} * or 0x[a-f0-9]+\(%rip\),%di # [a-f0-9]+ <.got>
- + +[a-f0-9]+: 66 1b 35 ([0-9a-f]{2} ){4} * sbb 0x[a-f0-9]+\(%rip\),%si # [a-f0-9]+ <.got>
- + +[a-f0-9]+: 66 2b 2d ([0-9a-f]{2} ){4} * sub 0x[a-f0-9]+\(%rip\),%bp # [a-f0-9]+ <.got>
- + +[a-f0-9]+: 66 44 33 05 ([0-9a-f]{2} ){4} * xor 0x[a-f0-9]+\(%rip\),%r8w # [a-f0-9]+ <.got>
- + +[a-f0-9]+: 66 85 0d ([0-9a-f]{2} ){4} * test %cx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.got>
- + +[a-f0-9]+: 66 13 05 ([0-9a-f]{2} ){4} * adc 0x[a-f0-9]+\(%rip\),%ax # [a-f0-9]+ <.got\+0x8>
- + +[a-f0-9]+: 66 03 1d ([0-9a-f]{2} ){4} * add 0x[a-f0-9]+\(%rip\),%bx # [a-f0-9]+ <.got\+0x8>
- + +[a-f0-9]+: 66 23 0d ([0-9a-f]{2} ){4} * and 0x[a-f0-9]+\(%rip\),%cx # [a-f0-9]+ <.got\+0x8>
- + +[a-f0-9]+: 66 3b 15 ([0-9a-f]{2} ){4} * cmp 0x[a-f0-9]+\(%rip\),%dx # [a-f0-9]+ <.got\+0x8>
- + +[a-f0-9]+: 66 0b 3d ([0-9a-f]{2} ){4} * or 0x[a-f0-9]+\(%rip\),%di # [a-f0-9]+ <.got\+0x8>
- + +[a-f0-9]+: 66 1b 35 ([0-9a-f]{2} ){4} * sbb 0x[a-f0-9]+\(%rip\),%si # [a-f0-9]+ <.got\+0x8>
- + +[a-f0-9]+: 66 2b 2d ([0-9a-f]{2} ){4} * sub 0x[a-f0-9]+\(%rip\),%bp # [a-f0-9]+ <.got\+0x8>
- + +[a-f0-9]+: 66 44 33 05 ([0-9a-f]{2} ){4} * xor 0x[a-f0-9]+\(%rip\),%r8w # [a-f0-9]+ <.got\+0x8>
- + +[a-f0-9]+: 66 85 0d ([0-9a-f]{2} ){4} * test %cx,0x[a-f0-9]+\(%rip\) # [a-f0-9]+ <.got\+0x8>
- +#pass
- diff --git a/ld/testsuite/ld-x86-64/pr23854.s b/ld/testsuite/ld-x86-64/pr23854.s
- new file mode 100644
- index 0000000000..b720154fb2
- --- /dev/null
- +++ b/ld/testsuite/ld-x86-64/pr23854.s
- @@ -0,0 +1,33 @@
- + .data
- + .type bar, @object
- +bar:
- + .byte 1
- + .size bar, .-bar
- + .globl foo
- + .type foo, @object
- +foo:
- + .byte 1
- + .size foo, .-foo
- + .text
- + .globl _start
- + .type _start, @function
- +_start:
- + adcw bar@GOTPCREL(%rip), %ax
- + addw bar@GOTPCREL(%rip), %bx
- + andw bar@GOTPCREL(%rip), %cx
- + cmpw bar@GOTPCREL(%rip), %dx
- + orw bar@GOTPCREL(%rip), %di
- + sbbw bar@GOTPCREL(%rip), %si
- + subw bar@GOTPCREL(%rip), %bp
- + xorw bar@GOTPCREL(%rip), %r8w
- + testw %cx, bar@GOTPCREL(%rip)
- + adcw foo@GOTPCREL(%rip), %ax
- + addw foo@GOTPCREL(%rip), %bx
- + andw foo@GOTPCREL(%rip), %cx
- + cmpw foo@GOTPCREL(%rip), %dx
- + orw foo@GOTPCREL(%rip), %di
- + sbbw foo@GOTPCREL(%rip), %si
- + subw foo@GOTPCREL(%rip), %bp
- + xorw foo@GOTPCREL(%rip), %r8w
- + testw %cx, foo@GOTPCREL(%rip)
- + .size _start, .-_start
- diff --git a/ld/testsuite/ld-x86-64/property-3.r b/ld/testsuite/ld-x86-64/property-3.r
- index 0ed91f5922..d03203c1e5 100644
- --- a/ld/testsuite/ld-x86-64/property-3.r
- +++ b/ld/testsuite/ld-x86-64/property-3.r
- @@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
- Owner Data size Description
- GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
- Properties: stack size: 0x800000
- - x86 ISA used: 586, SSE
- x86 ISA needed: i486, 586
- #pass
- diff --git a/ld/testsuite/ld-x86-64/property-4.r b/ld/testsuite/ld-x86-64/property-4.r
- index cb2bc15d9a..da295eb6c7 100644
- --- a/ld/testsuite/ld-x86-64/property-4.r
- +++ b/ld/testsuite/ld-x86-64/property-4.r
- @@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
- Owner Data size Description
- GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
- Properties: stack size: 0x800000
- - x86 ISA used: i486, 586, SSE
- x86 ISA needed: i486, 586, SSE
- #pass
- diff --git a/ld/testsuite/ld-x86-64/property-5.r b/ld/testsuite/ld-x86-64/property-5.r
- index 552965058c..e4141594b3 100644
- --- a/ld/testsuite/ld-x86-64/property-5.r
- +++ b/ld/testsuite/ld-x86-64/property-5.r
- @@ -3,6 +3,5 @@ Displaying notes found in: .note.gnu.property
- Owner Data size Description
- GNU 0x[0-9a-f]+ NT_GNU_PROPERTY_TYPE_0
- Properties: stack size: 0x900000
- - x86 ISA used: i486, 586, SSE
- x86 ISA needed: i486, 586, SSE
- #pass
- diff --git a/ld/testsuite/ld-x86-64/property-x86-3.s b/ld/testsuite/ld-x86-64/property-x86-3.s
- index be8cc9efb1..239cf622ff 100644
- --- a/ld/testsuite/ld-x86-64/property-x86-3.s
- +++ b/ld/testsuite/ld-x86-64/property-x86-3.s
- @@ -41,7 +41,11 @@
- 3:
-
- .section ".note.gnu.property", "a"
- +.ifdef __64_bit__
- .p2align 3
- +.else
- + .p2align 2
- +.endif
- .long 1f - 0f /* name length. */
- .long 3f - 1f /* data length. */
- /* NT_GNU_PROPERTY_TYPE_0 */
- diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
- index 011426f5a4..4cec728dc7 100644
- --- a/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
- +++ b/ld/testsuite/ld-x86-64/property-x86-ibt3a-x32.d
- @@ -6,6 +6,5 @@
-
- Displaying notes found in: .note.gnu.property
- Owner Data size Description
- - GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- - Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- - x86 ISA needed: i486, 586, SSE2, SSE3
- + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: i486, 586, SSE2, SSE3
- diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3a.d b/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
- index 1b4229a037..a8df49a351 100644
- --- a/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
- +++ b/ld/testsuite/ld-x86-64/property-x86-ibt3a.d
- @@ -6,6 +6,5 @@
-
- Displaying notes found in: .note.gnu.property
- Owner Data size Description
- - GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- - Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- - x86 ISA needed: i486, 586, SSE2, SSE3
- + GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: i486, 586, SSE2, SSE3
- diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d b/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
- index 290ed6abf1..c112626711 100644
- --- a/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
- +++ b/ld/testsuite/ld-x86-64/property-x86-ibt3b-x32.d
- @@ -6,6 +6,5 @@
-
- Displaying notes found in: .note.gnu.property
- Owner Data size Description
- - GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- - Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- - x86 ISA needed: i486, 586, SSE2, SSE3
- + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: i486, 586, SSE2, SSE3
- diff --git a/ld/testsuite/ld-x86-64/property-x86-ibt3b.d b/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
- index 1142e03272..f10dffdc2c 100644
- --- a/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
- +++ b/ld/testsuite/ld-x86-64/property-x86-ibt3b.d
- @@ -6,6 +6,5 @@
-
- Displaying notes found in: .note.gnu.property
- Owner Data size Description
- - GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- - Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- - x86 ISA needed: i486, 586, SSE2, SSE3
- + GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: i486, 586, SSE2, SSE3
- diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
- index 819542d181..0147a3c7b6 100644
- --- a/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
- +++ b/ld/testsuite/ld-x86-64/property-x86-shstk3a-x32.d
- @@ -6,6 +6,5 @@
-
- Displaying notes found in: .note.gnu.property
- Owner Data size Description
- - GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- - Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- - x86 ISA needed: i486, 586, SSE2, SSE3
- + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: i486, 586, SSE2, SSE3
- diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3a.d b/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
- index 4c5d0e0a18..1f8c2dc929 100644
- --- a/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
- +++ b/ld/testsuite/ld-x86-64/property-x86-shstk3a.d
- @@ -6,6 +6,5 @@
-
- Displaying notes found in: .note.gnu.property
- Owner Data size Description
- - GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- - Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- - x86 ISA needed: i486, 586, SSE2, SSE3
- + GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: i486, 586, SSE2, SSE3
- diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d b/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
- index ba181e0bc5..7ca2539ca5 100644
- --- a/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
- +++ b/ld/testsuite/ld-x86-64/property-x86-shstk3b-x32.d
- @@ -6,6 +6,5 @@
-
- Displaying notes found in: .note.gnu.property
- Owner Data size Description
- - GNU 0x00000018 NT_GNU_PROPERTY_TYPE_0
- - Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- - x86 ISA needed: i486, 586, SSE2, SSE3
- + GNU 0x0000000c NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: i486, 586, SSE2, SSE3
- diff --git a/ld/testsuite/ld-x86-64/property-x86-shstk3b.d b/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
- index 5216f385dd..f66a40e449 100644
- --- a/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
- +++ b/ld/testsuite/ld-x86-64/property-x86-shstk3b.d
- @@ -6,6 +6,5 @@
-
- Displaying notes found in: .note.gnu.property
- Owner Data size Description
- - GNU 0x00000020 NT_GNU_PROPERTY_TYPE_0
- - Properties: x86 ISA used: 586, SSE, SSE3, SSE4_1
- - x86 ISA needed: i486, 586, SSE2, SSE3
- + GNU 0x00000010 NT_GNU_PROPERTY_TYPE_0
- + Properties: x86 ISA needed: i486, 586, SSE2, SSE3
- diff --git a/ld/testsuite/ld-x86-64/x86-64.exp b/ld/testsuite/ld-x86-64/x86-64.exp
- index 6edb9e86f4..9abafd2765 100644
- --- a/ld/testsuite/ld-x86-64/x86-64.exp
- +++ b/ld/testsuite/ld-x86-64/x86-64.exp
- @@ -403,6 +403,11 @@ run_dump_test "pr23372a"
- run_dump_test "pr23372a-x32"
- run_dump_test "pr23372b"
- run_dump_test "pr23372b-x32"
- +run_dump_test "pr23486a"
- +run_dump_test "pr23486a-x32"
- +run_dump_test "pr23486b"
- +run_dump_test "pr23486b-x32"
- +run_dump_test "pr23854"
-
- if { ![istarget "x86_64-*-linux*"] && ![istarget "x86_64-*-nacl*"]} {
- return
- diff --git a/ld/testsuite/lib/ld-lib.exp b/ld/testsuite/lib/ld-lib.exp
- index cfbefe9028..1095091882 100644
- --- a/ld/testsuite/lib/ld-lib.exp
- +++ b/ld/testsuite/lib/ld-lib.exp
- @@ -1482,7 +1482,10 @@ proc run_ld_link_exec_tests { ldtests args } {
- continue
- }
-
- - if { [ string match "c++" $lang ] } {
- + if { [ string match "asm" $lang ] } {
- + set link_proc ld_link
- + set link_cmd $ld
- + } elseif { [ string match "c++" $lang ] } {
- set link_proc ld_link
- set link_cmd $CXX
- } else {
- diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
- index d04963a9fa..8f89565935 100644
- --- a/opcodes/ChangeLog
- +++ b/opcodes/ChangeLog
- @@ -1,3 +1,36 @@
- +2018-10-19 Tamar Christina <tamar.christina@arm.com>
- +
- + * arm-dis.c (UNKNOWN_INSTRUCTION_32BIT): Format specifier for arm mode.
- + (UNKNOWN_INSTRUCTION_16BIT): Format specifier for thumb mode.
- + (print_insn_arm, print_insn_thumb16, print_insn_thumb32): Use them.
- +
- +2018-10-16 Matthew Malcomson <matthew.malcomson@arm.com>
- +
- + * aarch64-opc.c (struct operand_qualifier_data): Change qualifier data
- + corresponding to AARCH64_OPND_QLF_S_4B qualifier.
- +
- +2018-10-05 H.J. Lu <hongjiu.lu@intel.com>
- +
- + * i386-dis.c (rm_table): Add enclv.
- + * i386-opc.tbl: Add enclv.
- + * i386-tbl.h: Regenerated.
- +
- +2018-07-18 H.J. Lu <hongjiu.lu@intel.com>
- +
- + PR gas/23418
- + * i386-opc.h (Byte): Update comments.
- + (Word): Likewise.
- + (Dword): Likewise.
- + (Fword): Likewise.
- + (Qword): Likewise.
- + (Tbyte): Likewise.
- + (Xmmword): Likewise.
- + (Ymmword): Likewise.
- + (Zmmword): Likewise.
- + * i386-opc.tbl: Split vcvtps2qq, vcvtps2uqq, vcvttps2qq and
- + vcvttps2uqq.
- + * i386-tbl.h: Regenerated.
- +
- 2018-07-18 Nick Clifton <nickc@redhat.com>
-
- 2.31.1 Release point.
- diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c
- index ba2af7bfc2..e59240c98d 100644
- --- a/opcodes/aarch64-opc.c
- +++ b/opcodes/aarch64-opc.c
- @@ -698,7 +698,7 @@ struct operand_qualifier_data aarch64_opnd_qualifiers[] =
- {4, 1, 0x2, "s", OQK_OPD_VARIANT},
- {8, 1, 0x3, "d", OQK_OPD_VARIANT},
- {16, 1, 0x4, "q", OQK_OPD_VARIANT},
- - {1, 4, 0x0, "4b", OQK_OPD_VARIANT},
- + {4, 1, 0x0, "4b", OQK_OPD_VARIANT},
-
- {1, 4, 0x0, "4b", OQK_OPD_VARIANT},
- {1, 8, 0x0, "8b", OQK_OPD_VARIANT},
- @@ -2501,6 +2501,7 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx,
- else
- num = 16;
- num = num / aarch64_get_qualifier_esize (qualifier) - 1;
- + assert (aarch64_get_qualifier_nelem (qualifier) == 1);
-
- /* Index out-of-range. */
- if (!value_in_range_p (opnd->reglane.index, 0, num))
- diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c
- index b6cccc5233..bc97bc2617 100644
- --- a/opcodes/arm-dis.c
- +++ b/opcodes/arm-dis.c
- @@ -141,6 +141,8 @@ enum opcode_sentinel_enum
- } opcode_sentinels;
-
- #define UNDEFINED_INSTRUCTION "\t\t; <UNDEFINED> instruction: %0-31x"
- +#define UNKNOWN_INSTRUCTION_32BIT "\t\t; <UNDEFINED> instruction: %08x"
- +#define UNKNOWN_INSTRUCTION_16BIT "\t\t; <UNDEFINED> instruction: %04x"
- #define UNPREDICTABLE_INSTRUCTION "\t; <UNPREDICTABLE>"
-
- /* Common coprocessor opcodes shared between Arm and Thumb-2. */
- @@ -5188,7 +5190,8 @@ print_insn_arm (bfd_vma pc, struct disassemble_info *info, long given)
- return;
- }
- }
- - abort ();
- + func (stream, UNKNOWN_INSTRUCTION_32BIT, (unsigned)given);
- + return;
- }
-
- /* Print one 16-bit Thumb instruction from PC on INFO->STREAM. */
- @@ -5459,7 +5462,8 @@ print_insn_thumb16 (bfd_vma pc, struct disassemble_info *info, long given)
- }
-
- /* No match. */
- - abort ();
- + func (stream, UNKNOWN_INSTRUCTION_16BIT, (unsigned)given);
- + return;
- }
-
- /* Return the name of an V7M special register. */
- @@ -6083,7 +6087,8 @@ print_insn_thumb32 (bfd_vma pc, struct disassemble_info *info, long given)
- }
-
- /* No match. */
- - abort ();
- + func (stream, UNKNOWN_INSTRUCTION_32BIT, (unsigned)given);
- + return;
- }
-
- /* Print data bytes on INFO->STREAM. */
- diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
- index 42d219cb11..78436879fb 100644
- --- a/opcodes/i386-dis.c
- +++ b/opcodes/i386-dis.c
- @@ -12321,7 +12321,7 @@ static const struct dis386 rm_table[][8] = {
- },
- {
- /* RM_0F01_REG_0 */
- - { Bad_Opcode },
- + { "enclv", { Skip_MODRM }, 0 },
- { "vmcall", { Skip_MODRM }, 0 },
- { "vmlaunch", { Skip_MODRM }, 0 },
- { "vmresume", { Skip_MODRM }, 0 },
- diff --git a/opcodes/i386-opc.h b/opcodes/i386-opc.h
- index 9a22b3c95f..f43b5e11eb 100644
- --- a/opcodes/i386-opc.h
- +++ b/opcodes/i386-opc.h
- @@ -736,23 +736,23 @@ enum
- RegMem,
- /* Memory. */
- Mem,
- - /* BYTE memory. */
- + /* BYTE size. */
- Byte,
- - /* WORD memory. 2 byte */
- + /* WORD size. 2 byte */
- Word,
- - /* DWORD memory. 4 byte */
- + /* DWORD size. 4 byte */
- Dword,
- - /* FWORD memory. 6 byte */
- + /* FWORD size. 6 byte */
- Fword,
- - /* QWORD memory. 8 byte */
- + /* QWORD size. 8 byte */
- Qword,
- - /* TBYTE memory. 10 byte */
- + /* TBYTE size. 10 byte */
- Tbyte,
- - /* XMMWORD memory. */
- + /* XMMWORD size. */
- Xmmword,
- - /* YMMWORD memory. */
- + /* YMMWORD size. */
- Ymmword,
- - /* ZMMWORD memory. */
- + /* ZMMWORD size. */
- Zmmword,
- /* Unspecified memory size. */
- Unspecified,
- diff --git a/opcodes/i386-opc.tbl b/opcodes/i386-opc.tbl
- index fad588ae3f..99f4d6635a 100644
- --- a/opcodes/i386-opc.tbl
- +++ b/opcodes/i386-opc.tbl
- @@ -4100,6 +4100,7 @@ xsavec64, 1, 0xfc7, 0x4, 2, CpuXSAVEC|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No
-
- encls, 0, 0xf01cf, None, 3, CpuSE1, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
- enclu, 0, 0xf01d7, None, 3, CpuSE1, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
- +enclv, 0, 0xf01c0, None, 3, CpuSE1, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { 0 }
-
- // SGX instructions end.
-
- @@ -5408,11 +5409,13 @@ vcvtpd2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|
- vcvtpd2uqq, 3, 0x6679, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegZMM, RegZMM }
-
- vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegZMM }
- -vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM }
- +vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
- +vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex, RegXMM }
- vcvtps2qq, 2, 0x667B, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegYMM }
- vcvtps2qq, 3, 0x667B, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegYMM, RegZMM }
- vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegZMM }
- -vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM }
- +vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
- +vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex, RegXMM }
- vcvtps2uqq, 2, 0x6679, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegYMM }
- vcvtps2uqq, 3, 0x6679, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|StaticRounding|SAE, { Imm8, RegYMM, RegZMM }
-
- @@ -5442,11 +5445,13 @@ vcvttpd2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3
- vcvttpd2uqq, 3, 0x6678, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=2|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegZMM, RegZMM }
-
- vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegZMM }
- -vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM }
- +vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
- +vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex, RegXMM }
- vcvttps2qq, 2, 0x667A, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegYMM }
- vcvttps2qq, 3, 0x667A, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegYMM, RegZMM }
- vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=5|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegYMM|Dword|YMMword|Unspecified|BaseIndex, RegZMM }
- -vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|Qword|Unspecified|BaseIndex, RegXMM }
- +vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM, RegXMM }
- +vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=2|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=3|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex, RegXMM }
- vcvttps2uqq, 2, 0x6678, None, 1, CpuAVX512DQ|CpuAVX512VL, Modrm|EVex=3|Masking=3|VexOpcode=0|VexW=1|Broadcast|Disp8MemShift=4|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { RegXMM|Dword|XMMword|Unspecified|BaseIndex, RegYMM }
- vcvttps2uqq, 3, 0x6678, None, 1, CpuAVX512DQ, Modrm|EVex=1|Masking=3|VexOpcode=0|VexW=1|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|SAE, { Imm8, RegYMM, RegZMM }
-
- diff --git a/opcodes/i386-tbl.h b/opcodes/i386-tbl.h
- index d513275deb..42ac313eca 100644
- --- a/opcodes/i386-tbl.h
- +++ b/opcodes/i386-tbl.h
- @@ -83658,6 +83658,20 @@ const insn_template i386_optab[] =
- { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0 } } } },
- + { "enclv", 0, 0xf01c0, None, 3,
- + { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0 } },
- + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,
- + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0 },
- + { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0 } } } },
- { "vcvtpd2udqx", 2, 0x79, None, 1,
- { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0,
- @@ -87881,6 +87895,23 @@ const insn_template i386_optab[] =
- { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
- 0, 0, 0 } } } },
- + { "vcvtps2qq", 2, 0x667B, None, 1,
- + { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0 } },
- + { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1,
- + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 1, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0 },
- + { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
- + 0, 0, 0 } },
- + { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
- + 0, 0, 0 } } } },
- { "vcvtps2qq", 2, 0x667B, None, 1,
- { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
- @@ -87892,8 +87923,8 @@ const insn_template i386_optab[] =
- 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 2, 3, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0,
- 0, 0 },
- - { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
- - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0,
- + { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
- + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
- 0, 0, 0 } },
- { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
- @@ -87952,6 +87983,23 @@ const insn_template i386_optab[] =
- { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
- 0, 0, 0 } } } },
- + { "vcvtps2uqq", 2, 0x6679, None, 1,
- + { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0 } },
- + { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1,
- + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 1, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0 },
- + { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
- + 0, 0, 0 } },
- + { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
- + 0, 0, 0 } } } },
- { "vcvtps2uqq", 2, 0x6679, None, 1,
- { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
- @@ -87963,8 +88011,8 @@ const insn_template i386_optab[] =
- 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 2, 3, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0,
- 0, 0 },
- - { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
- - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0,
- + { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
- + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
- 0, 0, 0 } },
- { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
- @@ -88412,6 +88460,23 @@ const insn_template i386_optab[] =
- { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
- 0, 0, 0 } } } },
- + { "vcvttps2qq", 2, 0x667A, None, 1,
- + { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0 } },
- + { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1,
- + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 1, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0 },
- + { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
- + 0, 0, 0 } },
- + { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
- + 0, 0, 0 } } } },
- { "vcvttps2qq", 2, 0x667A, None, 1,
- { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
- @@ -88423,8 +88488,8 @@ const insn_template i386_optab[] =
- 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 2, 3, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0,
- 0, 0 },
- - { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
- - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0,
- + { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
- + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
- 0, 0, 0 } },
- { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
- @@ -88483,6 +88548,23 @@ const insn_template i386_optab[] =
- { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,
- 0, 0, 0 } } } },
- + { "vcvttps2uqq", 2, 0x6678, None, 1,
- + { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0 } },
- + { 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 1, 1,
- + 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 1, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0 },
- + { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
- + 0, 0, 0 } },
- + { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
- + 0, 0, 0 } } } },
- { "vcvttps2uqq", 2, 0x6678, None, 1,
- { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0,
- @@ -88494,8 +88576,8 @@ const insn_template i386_optab[] =
- 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 1, 0, 0, 0, 0, 0, 2, 3, 1, 0, 0, 3, 0, 0, 0, 0, 0, 0,
- 0, 0 },
- - { { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
- - 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0,
- + { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1,
- + 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0,
- 0, 0, 0 } },
- { { 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0,
- diff --git a/opcodes/s390-opc.txt b/opcodes/s390-opc.txt
- index ef75e38e7e..d8a9cce1e2 100644
- --- a/opcodes/s390-opc.txt
- +++ b/opcodes/s390-opc.txt
- @@ -1126,7 +1126,7 @@ e561 tbeginc SIL_RDU "constrained transaction begin" zEC12 zarch htm
- b2f8 tend S_00 "transaction end" zEC12 zarch htm
- c7 bpp SMI_U0RDP "branch prediction preload" zEC12 zarch
- c5 bprp MII_UPP "branch prediction relative preload" zEC12 zarch
- -b2e8 ppa RRF_U0RR "perform processor assist" zEC12 zarch
- +b2e8 ppa RRF_U0RR "perform processor assist" zEC12 zarch htm
- b2fa niai IE_UU "next instruction access intent" zEC12 zarch
- b98f crdte RRF_RURR2 "compare and replace DAT table entry" zEC12 zarch optparm
- e3000000009f lat RXY_RRRD "load and trap 32 bit" zEC12 zarch
|