uclibc-git-20140602.patch 4.5 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855458564585745858458594586045861458624586345864458654586645867458684586945870458714587245873458744587545876458774587845879458804588145882458834588445885458864588745888458894589045891458924589345894458954589645897458984589945900459014590245903459044590545906459074590845909459104591145912459134591445915459164591745918459194592045921459224592345924459254592645927459284592945930459314593245933459344593545936459374593845939459404594145942459434594445945459464594745948459494595045951459524595345954459554595645957459584595945960459614596245963459644596545966459674596845969459704597145972459734597445975459764597745978459794598045981459824598345984459854598645987459884598945990459914599245993459944599545996459974599845999460004600146002460034600446005460064600746008460094601046011460124601346014460154601646017460184601946020460214602246023460244602546026460274602846029460304603146032460334603446035460364603746038460394604046041460424604346044460454604646047460484604946050460514605246053460544605546056460574605846059460604606146062460634606446065460664606746068460694607046071460724607346074460754607646077460784607946080460814608246083460844608546086460874608846089460904609146092460934609446095460964609746098460994610046101461024610346104461054610646107461084610946110461114611246113461144611546116461174611846119461204612146122461234612446125461264612746128461294613046131461324613346134461354613646137461384613946140461414614246143461444614546146461474614846149461504615146152461534615446155461564615746158461594616046161461624616346164461654616646167461684616946170461714617246173461744617546176461774617846179461804618146182461834618446185461864618746188461894619046191461924619346194461954619646197461984619946200462014620246203462044620546206462074620846209462104621146212462134621446215462164621746218462194622046221462224622346224462254622646227462284622946230462314623246233462344623546236462374623846239462404624146242462434624446245462464624746248462494625046251462524625346254462554625646257462584625946260462614626246263462644626546266462674626846269462704627146272462734627446275462764627746278462794628046281462824628346284462854628646287462884628946290462914629246293462944629546296462974629846299463004630146302463034630446305463064630746308463094631046311463124631346314463154631646317463184631946320463214632246323463244632546326463274632846329463304633146332463334633446335463364633746338463394634046341463424634346344463454634646347463484634946350463514635246353463544635546356463574635846359463604636146362463634636446365463664636746368463694637046371463724637346374463754637646377463784637946380463814638246383463844638546386463874638846389463904639146392463934639446395463964639746398463994640046401464024640346404464054640646407464084640946410464114641246413464144641546416464174641846419464204642146422464234642446425464264642746428464294643046431464324643346434464354643646437464384643946440464414644246443464444644546446464474644846449464504645146452464534645446455464564645746458464594646046461464624646346464464654646646467464684646946470464714647246473464744647546476464774647846479464804648146482464834648446485464864648746488464894649046491464924649346494464954649646497464984649946500465014650246503465044650546506465074650846509465104651146512465134651446515465164651746518465194652046521465224652346524465254652646527465284652946530465314653246533465344653546536465374653846539465404654146542465434654446545465464654746548465494655046551465524655346554465554655646557465584655946560465614656246563465644656546566465674656846569465704657146572465734657446575465764657746578465794658046581465824658346584465854658646587465884658946590465914659246593465944659546596465974659846599466004660146602466034660446605466064660746608466094661046611466124661346614466154661646617466184661946620466214662246623466244662546626466274662846629466304663146632466334663446635466364663746638466394664046641466424664346644466454664646647466484664946650466514665246653466544665546656466574665846659466604666146662466634666446665466664666746668466694667046671466724667346674466754667646677466784667946680466814668246683466844668546686466874668846689466904669146692466934669446695466964669746698466994670046701467024670346704467054670646707467084670946710467114671246713467144671546716467174671846719467204672146722467234672446725467264672746728467294673046731467324673346734467354673646737467384673946740467414674246743467444674546746467474674846749467504675146752467534675446755467564675746758467594676046761467624676346764467654676646767467684676946770467714677246773467744677546776467774677846779467804678146782467834678446785467864678746788467894679046791467924679346794467954679646797467984679946800468014680246803468044680546806468074680846809468104681146812468134681446815468164681746818468194682046821468224682346824468254682646827468284682946830468314683246833468344683546836468374683846839468404684146842468434684446845468464684746848468494685046851468524685346854468554685646857468584685946860468614686246863468644686546866468674686846869468704687146872468734687446875468764687746878468794688046881468824688346884468854688646887468884688946890468914689246893468944689546896468974689846899469004690146902469034690446905469064690746908469094691046911469124691346914469154691646917469184691946920469214692246923469244692546926469274692846929469304693146932469334693446935469364693746938469394694046941469424694346944469454694646947469484694946950469514695246953469544695546956469574695846959469604696146962469634696446965469664696746968469694697046971469724697346974469754697646977469784697946980469814698246983469844698546986469874698846989469904699146992469934699446995469964699746998469994700047001470024700347004470054700647007470084700947010470114701247013470144701547016470174701847019470204702147022470234702447025470264702747028470294703047031470324703347034470354703647037470384703947040470414704247043470444704547046470474704847049470504705147052470534705447055470564705747058470594706047061470624706347064470654706647067470684706947070470714707247073470744707547076470774707847079470804708147082470834708447085470864708747088470894709047091470924709347094470954709647097470984709947100471014710247103471044710547106471074710847109471104711147112471134711447115471164711747118471194712047121471224712347124471254712647127471284712947130471314713247133471344713547136471374713847139471404714147142471434714447145471464714747148471494715047151471524715347154471554715647157471584715947160471614716247163471644716547166471674716847169471704717147172471734717447175471764717747178471794718047181471824718347184471854718647187471884718947190471914719247193471944719547196471974719847199472004720147202472034720447205472064720747208472094721047211472124721347214472154721647217472184721947220472214722247223472244722547226472274722847229472304723147232472334723447235472364723747238472394724047241472424724347244472454724647247472484724947250472514725247253472544725547256472574725847259472604726147262472634726447265472664726747268472694727047271472724727347274472754727647277472784727947280472814728247283472844728547286472874728847289472904729147292472934729447295472964729747298472994730047301473024730347304473054730647307473084730947310473114731247313473144731547316473174731847319473204732147322473234732447325473264732747328473294733047331473324733347334473354733647337473384733947340473414734247343473444734547346473474734847349473504735147352473534735447355473564735747358473594736047361473624736347364473654736647367473684736947370473714737247373473744737547376473774737847379473804738147382473834738447385473864738747388473894739047391473924739347394473954739647397473984739947400474014740247403474044740547406474074740847409474104741147412474134741447415474164741747418474194742047421474224742347424474254742647427474284742947430474314743247433474344743547436474374743847439474404744147442474434744447445474464744747448474494745047451474524745347454474554745647457474584745947460474614746247463474644746547466474674746847469474704747147472474734747447475474764747747478474794748047481474824748347484474854748647487474884748947490474914749247493474944749547496474974749847499475004750147502475034750447505475064750747508475094751047511475124751347514475154751647517475184751947520475214752247523475244752547526475274752847529475304753147532475334753447535475364753747538475394754047541475424754347544475454754647547475484754947550475514755247553475544755547556475574755847559475604756147562475634756447565475664756747568475694757047571475724757347574475754757647577475784757947580475814758247583475844758547586475874758847589475904759147592475934759447595475964759747598475994760047601476024760347604476054760647607476084760947610476114761247613476144761547616476174761847619476204762147622476234762447625476264762747628476294763047631476324763347634476354763647637476384763947640476414764247643476444764547646476474764847649476504765147652476534765447655476564765747658476594766047661476624766347664476654766647667476684766947670476714767247673476744767547676476774767847679476804768147682476834768447685476864768747688476894769047691476924769347694476954769647697476984769947700477014770247703477044770547706477074770847709477104771147712477134771447715477164771747718477194772047721477224772347724477254772647727477284772947730477314773247733477344773547736477374773847739477404774147742477434774447745477464774747748477494775047751477524775347754477554775647757477584775947760477614776247763477644776547766477674776847769477704777147772477734777447775477764777747778477794778047781477824778347784477854778647787477884778947790477914779247793477944779547796477974779847799478004780147802478034780447805478064780747808478094781047811478124781347814478154781647817478184781947820478214782247823478244782547826478274782847829478304783147832478334783447835478364783747838478394784047841478424784347844478454784647847478484784947850478514785247853478544785547856478574785847859478604786147862478634786447865478664786747868478694787047871478724787347874478754787647877478784787947880478814788247883478844788547886478874788847889478904789147892478934789447895478964789747898478994790047901479024790347904479054790647907479084790947910479114791247913479144791547916479174791847919479204792147922479234792447925479264792747928479294793047931479324793347934479354793647937479384793947940479414794247943479444794547946479474794847949479504795147952479534795447955479564795747958479594796047961479624796347964479654796647967479684796947970479714797247973479744797547976479774797847979479804798147982479834798447985479864798747988479894799047991479924799347994479954799647997479984799948000480014800248003480044800548006480074800848009480104801148012480134801448015480164801748018480194802048021480224802348024480254802648027480284802948030480314803248033480344803548036480374803848039480404804148042480434804448045480464804748048480494805048051480524805348054480554805648057480584805948060480614806248063480644806548066480674806848069480704807148072480734807448075480764807748078480794808048081480824808348084480854808648087480884808948090480914809248093480944809548096480974809848099481004810148102481034810448105481064810748108481094811048111481124811348114481154811648117481184811948120481214812248123481244812548126481274812848129481304813148132481334813448135481364813748138481394814048141481424814348144481454814648147481484814948150481514815248153481544815548156481574815848159481604816148162481634816448165481664816748168481694817048171481724817348174481754817648177481784817948180481814818248183481844818548186481874818848189481904819148192481934819448195481964819748198481994820048201482024820348204482054820648207482084820948210482114821248213482144821548216482174821848219482204822148222482234822448225482264822748228482294823048231482324823348234482354823648237482384823948240482414824248243482444824548246482474824848249482504825148252482534825448255482564825748258482594826048261482624826348264482654826648267482684826948270482714827248273482744827548276482774827848279482804828148282482834828448285482864828748288482894829048291482924829348294482954829648297482984829948300483014830248303483044830548306483074830848309483104831148312483134831448315483164831748318483194832048321483224832348324483254832648327483284832948330483314833248333483344833548336483374833848339483404834148342483434834448345483464834748348483494835048351483524835348354483554835648357483584835948360483614836248363483644836548366483674836848369483704837148372483734837448375483764837748378483794838048381483824838348384483854838648387483884838948390483914839248393483944839548396483974839848399484004840148402484034840448405484064840748408484094841048411484124841348414484154841648417484184841948420484214842248423484244842548426484274842848429484304843148432484334843448435484364843748438484394844048441484424844348444484454844648447484484844948450484514845248453484544845548456484574845848459484604846148462484634846448465484664846748468484694847048471484724847348474484754847648477484784847948480484814848248483484844848548486484874848848489484904849148492484934849448495484964849748498484994850048501485024850348504485054850648507485084850948510485114851248513485144851548516485174851848519485204852148522485234852448525485264852748528485294853048531485324853348534485354853648537485384853948540485414854248543485444854548546485474854848549485504855148552485534855448555485564855748558485594856048561485624856348564485654856648567485684856948570485714857248573485744857548576485774857848579485804858148582485834858448585485864858748588485894859048591485924859348594485954859648597485984859948600486014860248603486044860548606486074860848609486104861148612486134861448615486164861748618486194862048621486224862348624486254862648627486284862948630486314863248633486344863548636486374863848639486404864148642486434864448645486464864748648486494865048651486524865348654486554865648657486584865948660486614866248663486644866548666486674866848669486704867148672486734867448675486764867748678486794868048681486824868348684486854868648687486884868948690486914869248693486944869548696486974869848699487004870148702487034870448705487064870748708487094871048711487124871348714487154871648717487184871948720487214872248723487244872548726487274872848729487304873148732487334873448735487364873748738487394874048741487424874348744487454874648747487484874948750487514875248753487544875548756487574875848759487604876148762487634876448765487664876748768487694877048771487724877348774487754877648777487784877948780487814878248783487844878548786487874878848789487904879148792487934879448795487964879748798487994880048801488024880348804488054880648807488084880948810488114881248813488144881548816488174881848819488204882148822488234882448825488264882748828488294883048831488324883348834488354883648837488384883948840488414884248843488444884548846488474884848849488504885148852488534885448855488564885748858488594886048861488624886348864488654886648867488684886948870488714887248873488744887548876488774887848879488804888148882488834888448885488864888748888488894889048891488924889348894488954889648897488984889948900489014890248903489044890548906489074890848909489104891148912489134891448915489164891748918489194892048921489224892348924489254892648927489284892948930489314893248933489344893548936489374893848939489404894148942489434894448945489464894748948489494895048951489524895348954489554895648957489584895948960489614896248963489644896548966489674896848969489704897148972489734897448975489764897748978489794898048981489824898348984489854898648987489884898948990489914899248993489944899548996489974899848999490004900149002490034900449005490064900749008490094901049011490124901349014490154901649017490184901949020490214902249023490244902549026490274902849029490304903149032490334903449035490364903749038490394904049041490424904349044490454904649047490484904949050490514905249053490544905549056490574905849059490604906149062490634906449065490664906749068490694907049071490724907349074490754907649077490784907949080490814908249083490844908549086490874908849089490904909149092490934909449095490964909749098490994910049101491024910349104491054910649107491084910949110491114911249113491144911549116491174911849119491204912149122491234912449125491264912749128491294913049131491324913349134491354913649137491384913949140491414914249143491444914549146491474914849149491504915149152491534915449155491564915749158491594916049161491624916349164491654916649167491684916949170491714917249173491744917549176491774917849179491804918149182491834918449185491864918749188491894919049191491924919349194491954919649197491984919949200492014920249203492044920549206492074920849209492104921149212492134921449215492164921749218492194922049221492224922349224492254922649227492284922949230492314923249233492344923549236492374923849239492404924149242492434924449245492464924749248492494925049251492524925349254492554925649257492584925949260492614926249263492644926549266492674926849269492704927149272492734927449275492764927749278492794928049281492824928349284492854928649287492884928949290492914929249293492944929549296492974929849299493004930149302493034930449305493064930749308493094931049311493124931349314493154931649317493184931949320493214932249323493244932549326493274932849329493304933149332493334933449335493364933749338493394934049341493424934349344493454934649347493484934949350493514935249353493544935549356493574935849359493604936149362493634936449365493664936749368493694937049371493724937349374493754937649377493784937949380493814938249383493844938549386493874938849389493904939149392493934939449395493964939749398493994940049401494024940349404494054940649407494084940949410494114941249413494144941549416494174941849419494204942149422494234942449425494264942749428494294943049431494324943349434494354943649437494384943949440494414944249443494444944549446494474944849449494504945149452494534945449455494564945749458494594946049461494624946349464494654946649467494684946949470494714947249473494744947549476494774947849479494804948149482494834948449485494864948749488494894949049491494924949349494494954949649497494984949949500495014950249503495044950549506495074950849509495104951149512495134951449515495164951749518495194952049521495224952349524495254952649527495284952949530495314953249533495344953549536495374953849539495404954149542495434954449545495464954749548495494955049551495524955349554495554955649557495584955949560495614956249563495644956549566495674956849569495704957149572495734957449575495764957749578495794958049581495824958349584495854958649587495884958949590495914959249593495944959549596495974959849599496004960149602496034960449605496064960749608496094961049611496124961349614496154961649617496184961949620496214962249623496244962549626496274962849629496304963149632496334963449635496364963749638496394964049641496424964349644496454964649647496484964949650496514965249653496544965549656496574965849659496604966149662496634966449665496664966749668496694967049671496724967349674496754967649677496784967949680496814968249683496844968549686496874968849689496904969149692496934969449695496964969749698496994970049701497024970349704497054970649707497084970949710497114971249713497144971549716497174971849719497204972149722497234972449725497264972749728497294973049731497324973349734497354973649737497384973949740497414974249743497444974549746497474974849749497504975149752497534975449755497564975749758497594976049761497624976349764497654976649767497684976949770497714977249773497744977549776497774977849779497804978149782497834978449785497864978749788497894979049791497924979349794497954979649797497984979949800498014980249803498044980549806498074980849809498104981149812498134981449815498164981749818498194982049821498224982349824498254982649827498284982949830498314983249833498344983549836498374983849839498404984149842498434984449845498464984749848498494985049851498524985349854498554985649857498584985949860498614986249863498644986549866498674986849869498704987149872498734987449875498764987749878498794988049881498824988349884498854988649887498884988949890498914989249893498944989549896498974989849899499004990149902499034990449905499064990749908499094991049911499124991349914499154991649917499184991949920499214992249923499244992549926499274992849929499304993149932499334993449935499364993749938499394994049941499424994349944499454994649947499484994949950499514995249953499544995549956499574995849959499604996149962499634996449965499664996749968499694997049971499724997349974499754997649977499784997949980499814998249983499844998549986499874998849989499904999149992499934999449995499964999749998499995000050001500025000350004500055000650007500085000950010500115001250013500145001550016500175001850019500205002150022500235002450025500265002750028500295003050031500325003350034500355003650037500385003950040500415004250043500445004550046500475004850049500505005150052500535005450055500565005750058500595006050061500625006350064500655006650067500685006950070500715007250073500745007550076500775007850079500805008150082500835008450085500865008750088500895009050091500925009350094500955009650097500985009950100501015010250103501045010550106501075010850109501105011150112501135011450115501165011750118501195012050121501225012350124501255012650127501285012950130501315013250133501345013550136501375013850139501405014150142501435014450145501465014750148501495015050151501525015350154501555015650157501585015950160501615016250163501645016550166501675016850169501705017150172501735017450175501765017750178501795018050181501825018350184501855018650187501885018950190501915019250193501945019550196501975019850199502005020150202502035020450205502065020750208502095021050211502125021350214502155021650217502185021950220502215022250223502245022550226502275022850229502305023150232502335023450235502365023750238502395024050241502425024350244502455024650247502485024950250502515025250253502545025550256502575025850259502605026150262502635026450265502665026750268502695027050271502725027350274502755027650277502785027950280502815028250283502845028550286502875028850289502905029150292502935029450295502965029750298502995030050301503025030350304503055030650307503085030950310503115031250313503145031550316503175031850319503205032150322503235032450325503265032750328503295033050331503325033350334503355033650337503385033950340503415034250343503445034550346503475034850349503505035150352503535035450355503565035750358503595036050361503625036350364503655036650367503685036950370503715037250373503745037550376503775037850379503805038150382503835038450385503865038750388503895039050391503925039350394503955039650397503985039950400504015040250403504045040550406504075040850409504105041150412504135041450415504165041750418504195042050421504225042350424504255042650427504285042950430504315043250433504345043550436504375043850439504405044150442504435044450445504465044750448504495045050451504525045350454504555045650457504585045950460504615046250463504645046550466504675046850469504705047150472504735047450475504765047750478504795048050481504825048350484504855048650487504885048950490504915049250493504945049550496504975049850499505005050150502505035050450505505065050750508505095051050511505125051350514505155051650517505185051950520505215052250523505245052550526505275052850529505305053150532505335053450535505365053750538505395054050541505425054350544505455054650547505485054950550505515055250553505545055550556505575055850559505605056150562505635056450565505665056750568505695057050571505725057350574505755057650577505785057950580505815058250583505845058550586505875058850589505905059150592505935059450595505965059750598505995060050601506025060350604506055060650607506085060950610506115061250613506145061550616506175061850619506205062150622506235062450625506265062750628506295063050631506325063350634506355063650637506385063950640506415064250643506445064550646506475064850649506505065150652506535065450655506565065750658506595066050661506625066350664506655066650667506685066950670506715067250673506745067550676506775067850679506805068150682506835068450685506865068750688506895069050691506925069350694506955069650697506985069950700507015070250703507045070550706507075070850709507105071150712507135071450715507165071750718507195072050721507225072350724507255072650727507285072950730507315073250733507345073550736507375073850739507405074150742507435074450745507465074750748507495075050751507525075350754507555075650757507585075950760507615076250763507645076550766507675076850769507705077150772507735077450775507765077750778507795078050781507825078350784507855078650787507885078950790507915079250793507945079550796507975079850799508005080150802508035080450805508065080750808508095081050811508125081350814508155081650817508185081950820508215082250823508245082550826508275082850829508305083150832508335083450835508365083750838508395084050841508425084350844508455084650847508485084950850508515085250853508545085550856508575085850859508605086150862508635086450865508665086750868508695087050871508725087350874508755087650877508785087950880508815088250883508845088550886508875088850889508905089150892508935089450895508965089750898508995090050901509025090350904509055090650907509085090950910509115091250913509145091550916509175091850919509205092150922509235092450925509265092750928509295093050931509325093350934509355093650937509385093950940509415094250943509445094550946509475094850949509505095150952509535095450955509565095750958509595096050961509625096350964509655096650967509685096950970509715097250973509745097550976509775097850979509805098150982509835098450985509865098750988509895099050991509925099350994509955099650997509985099951000510015100251003510045100551006510075100851009510105101151012510135101451015510165101751018510195102051021510225102351024510255102651027510285102951030510315103251033510345103551036510375103851039510405104151042510435104451045510465104751048510495105051051510525105351054510555105651057510585105951060510615106251063510645106551066510675106851069510705107151072510735107451075510765107751078510795108051081510825108351084510855108651087510885108951090510915109251093510945109551096510975109851099511005110151102511035110451105511065110751108511095111051111511125111351114511155111651117511185111951120511215112251123511245112551126511275112851129511305113151132511335113451135511365113751138511395114051141511425114351144511455114651147511485114951150511515115251153511545115551156511575115851159511605116151162511635116451165511665116751168511695117051171511725117351174511755117651177511785117951180511815118251183511845118551186511875118851189511905119151192511935119451195511965119751198511995120051201512025120351204512055120651207512085120951210512115121251213512145121551216512175121851219512205122151222512235122451225512265122751228512295123051231512325123351234512355123651237512385123951240512415124251243512445124551246512475124851249512505125151252512535125451255512565125751258512595126051261512625126351264512655126651267512685126951270512715127251273512745127551276512775127851279512805128151282512835128451285512865128751288512895129051291512925129351294512955129651297512985129951300513015130251303513045130551306513075130851309513105131151312513135131451315513165131751318513195132051321513225132351324513255132651327513285132951330513315133251333513345133551336513375133851339513405134151342513435134451345513465134751348513495135051351513525135351354513555135651357513585135951360513615136251363513645136551366513675136851369513705137151372513735137451375513765137751378513795138051381513825138351384513855138651387513885138951390513915139251393513945139551396513975139851399514005140151402514035140451405514065140751408514095141051411514125141351414514155141651417514185141951420514215142251423514245142551426514275142851429514305143151432514335143451435514365143751438514395144051441514425144351444514455144651447514485144951450514515145251453514545145551456514575145851459514605146151462514635146451465514665146751468514695147051471514725147351474514755147651477514785147951480514815148251483514845148551486514875148851489514905149151492514935149451495514965149751498514995150051501515025150351504515055150651507515085150951510515115151251513515145151551516515175151851519515205152151522515235152451525515265152751528515295153051531515325153351534515355153651537515385153951540515415154251543515445154551546515475154851549515505155151552515535155451555515565155751558515595156051561515625156351564515655156651567515685156951570515715157251573515745157551576515775157851579515805158151582515835158451585515865158751588515895159051591515925159351594515955159651597515985159951600516015160251603516045160551606516075160851609516105161151612516135161451615516165161751618516195162051621516225162351624516255162651627516285162951630516315163251633516345163551636516375163851639516405164151642516435164451645516465164751648516495165051651516525165351654516555165651657516585165951660516615166251663516645166551666516675166851669516705167151672516735167451675516765167751678516795168051681516825168351684516855168651687516885168951690516915169251693516945169551696516975169851699517005170151702517035170451705517065170751708517095171051711517125171351714517155171651717517185171951720517215172251723517245172551726517275172851729517305173151732517335173451735517365173751738517395174051741517425174351744517455174651747517485174951750517515175251753517545175551756517575175851759517605176151762517635176451765517665176751768517695177051771517725177351774517755177651777517785177951780517815178251783517845178551786517875178851789517905179151792517935179451795517965179751798517995180051801518025180351804518055180651807518085180951810518115181251813518145181551816518175181851819518205182151822518235182451825518265182751828518295183051831518325183351834518355183651837518385183951840518415184251843518445184551846518475184851849518505185151852518535185451855518565185751858518595186051861518625186351864518655186651867518685186951870518715187251873518745187551876518775187851879518805188151882518835188451885518865188751888518895189051891518925189351894518955189651897518985189951900519015190251903519045190551906519075190851909519105191151912519135191451915519165191751918519195192051921519225192351924519255192651927519285192951930519315193251933519345193551936519375193851939519405194151942519435194451945519465194751948519495195051951519525195351954519555195651957519585195951960519615196251963519645196551966519675196851969519705197151972519735197451975519765197751978519795198051981519825198351984519855198651987519885198951990519915199251993519945199551996519975199851999520005200152002520035200452005520065200752008520095201052011520125201352014520155201652017520185201952020520215202252023520245202552026520275202852029520305203152032520335203452035520365203752038520395204052041520425204352044520455204652047520485204952050520515205252053520545205552056520575205852059520605206152062520635206452065520665206752068520695207052071520725207352074520755207652077520785207952080520815208252083520845208552086520875208852089520905209152092520935209452095520965209752098520995210052101521025210352104521055210652107521085210952110521115211252113521145211552116521175211852119521205212152122521235212452125521265212752128521295213052131521325213352134521355213652137521385213952140521415214252143521445214552146521475214852149521505215152152521535215452155521565215752158521595216052161521625216352164521655216652167521685216952170521715217252173521745217552176521775217852179521805218152182521835218452185521865218752188521895219052191521925219352194521955219652197521985219952200522015220252203522045220552206522075220852209522105221152212522135221452215522165221752218522195222052221522225222352224522255222652227522285222952230522315223252233522345223552236522375223852239522405224152242522435224452245522465224752248522495225052251522525225352254522555225652257522585225952260522615226252263522645226552266522675226852269522705227152272522735227452275522765227752278522795228052281522825228352284522855228652287522885228952290522915229252293522945229552296522975229852299523005230152302523035230452305523065230752308523095231052311523125231352314523155231652317523185231952320523215232252323523245232552326523275232852329523305233152332523335233452335523365233752338523395234052341523425234352344523455234652347523485234952350523515235252353523545235552356523575235852359523605236152362523635236452365523665236752368523695237052371523725237352374523755237652377523785237952380523815238252383523845238552386523875238852389523905239152392523935239452395523965239752398523995240052401524025240352404524055240652407524085240952410524115241252413524145241552416524175241852419524205242152422524235242452425524265242752428524295243052431524325243352434524355243652437524385243952440524415244252443524445244552446524475244852449524505245152452524535245452455524565245752458524595246052461524625246352464524655246652467524685246952470524715247252473524745247552476524775247852479524805248152482524835248452485524865248752488524895249052491524925249352494524955249652497524985249952500525015250252503525045250552506525075250852509525105251152512525135251452515525165251752518525195252052521525225252352524525255252652527525285252952530525315253252533525345253552536525375253852539525405254152542525435254452545525465254752548525495255052551525525255352554525555255652557525585255952560525615256252563525645256552566525675256852569525705257152572525735257452575525765257752578525795258052581525825258352584525855258652587525885258952590525915259252593525945259552596525975259852599526005260152602526035260452605526065260752608526095261052611526125261352614526155261652617526185261952620526215262252623526245262552626526275262852629526305263152632526335263452635526365263752638526395264052641526425264352644526455264652647526485264952650526515265252653526545265552656526575265852659526605266152662526635266452665526665266752668526695267052671526725267352674526755267652677526785267952680526815268252683526845268552686526875268852689526905269152692526935269452695526965269752698526995270052701527025270352704527055270652707527085270952710527115271252713527145271552716527175271852719527205272152722527235272452725527265272752728527295273052731527325273352734527355273652737527385273952740527415274252743527445274552746527475274852749527505275152752527535275452755527565275752758527595276052761527625276352764527655276652767527685276952770527715277252773527745277552776527775277852779527805278152782527835278452785527865278752788527895279052791527925279352794527955279652797527985279952800528015280252803528045280552806528075280852809528105281152812528135281452815528165281752818528195282052821528225282352824528255282652827528285282952830528315283252833528345283552836528375283852839528405284152842528435284452845528465284752848528495285052851528525285352854528555285652857528585285952860528615286252863528645286552866528675286852869528705287152872528735287452875528765287752878528795288052881528825288352884528855288652887528885288952890528915289252893528945289552896528975289852899529005290152902529035290452905529065290752908529095291052911529125291352914529155291652917529185291952920529215292252923529245292552926529275292852929529305293152932529335293452935529365293752938529395294052941529425294352944529455294652947529485294952950529515295252953529545295552956529575295852959529605296152962529635296452965529665296752968529695297052971529725297352974529755297652977529785297952980529815298252983529845298552986529875298852989529905299152992529935299452995529965299752998529995300053001530025300353004530055300653007530085300953010530115301253013530145301553016530175301853019530205302153022530235302453025530265302753028530295303053031530325303353034530355303653037530385303953040530415304253043530445304553046530475304853049530505305153052530535305453055530565305753058530595306053061530625306353064530655306653067530685306953070530715307253073530745307553076530775307853079530805308153082530835308453085530865308753088530895309053091530925309353094530955309653097530985309953100531015310253103531045310553106531075310853109531105311153112531135311453115531165311753118531195312053121531225312353124531255312653127531285312953130531315313253133531345313553136531375313853139531405314153142531435314453145531465314753148531495315053151531525315353154531555315653157531585315953160531615316253163531645316553166531675316853169531705317153172531735317453175531765317753178531795318053181531825318353184531855318653187531885318953190531915319253193531945319553196531975319853199532005320153202532035320453205532065320753208532095321053211532125321353214532155321653217532185321953220532215322253223532245322553226532275322853229532305323153232532335323453235532365323753238532395324053241532425324353244532455324653247532485324953250532515325253253532545325553256532575325853259532605326153262532635326453265532665326753268532695327053271532725327353274532755327653277532785327953280532815328253283532845328553286532875328853289532905329153292532935329453295532965329753298532995330053301533025330353304533055330653307533085330953310533115331253313533145331553316533175331853319533205332153322533235332453325533265332753328533295333053331533325333353334533355333653337533385333953340533415334253343533445334553346533475334853349533505335153352533535335453355533565335753358533595336053361533625336353364533655336653367533685336953370533715337253373533745337553376533775337853379533805338153382533835338453385533865338753388533895339053391533925339353394533955339653397533985339953400534015340253403534045340553406534075340853409534105341153412534135341453415534165341753418534195342053421534225342353424534255342653427534285342953430534315343253433534345343553436534375343853439534405344153442534435344453445534465344753448534495345053451534525345353454534555345653457534585345953460534615346253463534645346553466534675346853469534705347153472534735347453475534765347753478534795348053481534825348353484534855348653487534885348953490534915349253493534945349553496534975349853499535005350153502535035350453505535065350753508535095351053511535125351353514535155351653517535185351953520535215352253523535245352553526535275352853529535305353153532535335353453535535365353753538535395354053541535425354353544535455354653547535485354953550535515355253553535545355553556535575355853559535605356153562535635356453565535665356753568535695357053571535725357353574535755357653577535785357953580535815358253583535845358553586535875358853589535905359153592535935359453595535965359753598535995360053601536025360353604536055360653607536085360953610536115361253613536145361553616536175361853619536205362153622536235362453625536265362753628536295363053631536325363353634536355363653637536385363953640536415364253643536445364553646536475364853649536505365153652536535365453655536565365753658536595366053661536625366353664536655366653667536685366953670536715367253673536745367553676536775367853679536805368153682536835368453685536865368753688536895369053691536925369353694536955369653697536985369953700537015370253703537045370553706537075370853709537105371153712537135371453715537165371753718537195372053721537225372353724537255372653727537285372953730537315373253733537345373553736537375373853739537405374153742537435374453745537465374753748537495375053751537525375353754537555375653757537585375953760537615376253763537645376553766537675376853769537705377153772537735377453775537765377753778537795378053781537825378353784537855378653787537885378953790537915379253793537945379553796537975379853799538005380153802538035380453805538065380753808538095381053811538125381353814538155381653817538185381953820538215382253823538245382553826538275382853829538305383153832538335383453835538365383753838538395384053841538425384353844538455384653847538485384953850538515385253853538545385553856538575385853859538605386153862538635386453865538665386753868538695387053871538725387353874538755387653877538785387953880538815388253883538845388553886538875388853889538905389153892538935389453895538965389753898538995390053901539025390353904539055390653907539085390953910539115391253913539145391553916539175391853919539205392153922539235392453925539265392753928539295393053931539325393353934539355393653937539385393953940539415394253943539445394553946539475394853949539505395153952539535395453955539565395753958539595396053961539625396353964539655396653967539685396953970539715397253973539745397553976539775397853979539805398153982539835398453985539865398753988539895399053991539925399353994539955399653997539985399954000540015400254003540045400554006540075400854009540105401154012540135401454015540165401754018540195402054021540225402354024540255402654027540285402954030540315403254033540345403554036540375403854039540405404154042540435404454045540465404754048540495405054051540525405354054540555405654057540585405954060540615406254063540645406554066540675406854069540705407154072540735407454075540765407754078540795408054081540825408354084540855408654087540885408954090540915409254093540945409554096540975409854099541005410154102541035410454105541065410754108541095411054111541125411354114541155411654117541185411954120541215412254123541245412554126541275412854129541305413154132541335413454135541365413754138541395414054141541425414354144541455414654147541485414954150541515415254153541545415554156541575415854159541605416154162541635416454165541665416754168541695417054171541725417354174541755417654177541785417954180541815418254183541845418554186541875418854189541905419154192541935419454195541965419754198541995420054201542025420354204542055420654207542085420954210542115421254213542145421554216542175421854219542205422154222542235422454225542265422754228542295423054231542325423354234542355423654237542385423954240542415424254243542445424554246542475424854249542505425154252542535425454255542565425754258542595426054261542625426354264542655426654267542685426954270542715427254273542745427554276542775427854279542805428154282542835428454285542865428754288542895429054291542925429354294542955429654297542985429954300543015430254303543045430554306543075430854309543105431154312543135431454315543165431754318543195432054321543225432354324543255432654327543285432954330543315433254333543345433554336543375433854339543405434154342543435434454345543465434754348543495435054351543525435354354543555435654357543585435954360543615436254363543645436554366543675436854369543705437154372543735437454375543765437754378543795438054381543825438354384543855438654387543885438954390543915439254393543945439554396543975439854399544005440154402544035440454405544065440754408544095441054411544125441354414544155441654417544185441954420544215442254423544245442554426544275442854429544305443154432544335443454435544365443754438544395444054441544425444354444544455444654447544485444954450544515445254453544545445554456544575445854459544605446154462544635446454465544665446754468544695447054471544725447354474544755447654477544785447954480544815448254483544845448554486544875448854489544905449154492544935449454495544965449754498544995450054501545025450354504545055450654507545085450954510545115451254513545145451554516545175451854519545205452154522545235452454525545265452754528545295453054531545325453354534545355453654537545385453954540545415454254543545445454554546545475454854549545505455154552545535455454555545565455754558545595456054561545625456354564545655456654567545685456954570545715457254573545745457554576545775457854579545805458154582545835458454585545865458754588545895459054591545925459354594545955459654597545985459954600546015460254603546045460554606546075460854609546105461154612546135461454615546165461754618546195462054621546225462354624546255462654627546285462954630546315463254633546345463554636546375463854639546405464154642546435464454645546465464754648546495465054651546525465354654546555465654657546585465954660546615466254663546645466554666546675466854669546705467154672546735467454675546765467754678546795468054681546825468354684546855468654687546885468954690546915469254693546945469554696546975469854699547005470154702547035470454705547065470754708547095471054711547125471354714547155471654717547185471954720547215472254723547245472554726547275472854729547305473154732547335473454735547365473754738547395474054741547425474354744547455474654747547485474954750547515475254753547545475554756547575475854759547605476154762547635476454765547665476754768547695477054771547725477354774547755477654777547785477954780547815478254783547845478554786547875478854789547905479154792547935479454795547965479754798547995480054801548025480354804548055480654807548085480954810548115481254813548145481554816548175481854819548205482154822548235482454825548265482754828548295483054831548325483354834548355483654837548385483954840548415484254843548445484554846548475484854849548505485154852548535485454855548565485754858548595486054861548625486354864548655486654867548685486954870548715487254873548745487554876548775487854879548805488154882548835488454885548865488754888548895489054891548925489354894548955489654897548985489954900549015490254903549045490554906549075490854909549105491154912549135491454915549165491754918549195492054921549225492354924549255492654927549285492954930549315493254933549345493554936549375493854939549405494154942549435494454945549465494754948549495495054951549525495354954549555495654957549585495954960549615496254963549645496554966549675496854969549705497154972549735497454975549765497754978549795498054981549825498354984549855498654987549885498954990549915499254993549945499554996549975499854999550005500155002550035500455005550065500755008550095501055011550125501355014550155501655017550185501955020550215502255023550245502555026550275502855029550305503155032550335503455035550365503755038550395504055041550425504355044550455504655047550485504955050550515505255053550545505555056550575505855059550605506155062550635506455065550665506755068550695507055071550725507355074550755507655077550785507955080550815508255083550845508555086550875508855089550905509155092550935509455095550965509755098550995510055101551025510355104551055510655107551085510955110551115511255113551145511555116551175511855119551205512155122551235512455125551265512755128551295513055131551325513355134551355513655137551385513955140551415514255143551445514555146551475514855149551505515155152551535515455155551565515755158551595516055161551625516355164551655516655167551685516955170551715517255173551745517555176551775517855179551805518155182551835518455185551865518755188551895519055191551925519355194551955519655197551985519955200552015520255203552045520555206552075520855209552105521155212552135521455215552165521755218552195522055221552225522355224552255522655227552285522955230552315523255233552345523555236552375523855239552405524155242552435524455245552465524755248552495525055251552525525355254552555525655257552585525955260552615526255263552645526555266552675526855269552705527155272552735527455275552765527755278552795528055281552825528355284552855528655287552885528955290552915529255293552945529555296552975529855299553005530155302553035530455305553065530755308553095531055311553125531355314553155531655317553185531955320553215532255323553245532555326553275532855329553305533155332553335533455335553365533755338553395534055341553425534355344553455534655347553485534955350553515535255353553545535555356553575535855359553605536155362553635536455365553665536755368553695537055371553725537355374553755537655377553785537955380553815538255383553845538555386553875538855389553905539155392553935539455395553965539755398553995540055401554025540355404554055540655407554085540955410554115541255413554145541555416554175541855419554205542155422554235542455425554265542755428554295543055431554325543355434554355543655437554385543955440554415544255443554445544555446554475544855449554505545155452554535545455455554565545755458554595546055461554625546355464554655546655467554685546955470554715547255473554745547555476554775547855479554805548155482554835548455485554865548755488554895549055491554925549355494554955549655497554985549955500555015550255503555045550555506555075550855509555105551155512555135551455515555165551755518555195552055521555225552355524555255552655527555285552955530555315553255533555345553555536555375553855539555405554155542555435554455545555465554755548555495555055551555525555355554555555555655557555585555955560555615556255563555645556555566555675556855569555705557155572555735557455575555765557755578555795558055581555825558355584555855558655587555885558955590555915559255593555945559555596555975559855599556005560155602556035560455605556065560755608556095561055611556125561355614556155561655617556185561955620556215562255623556245562555626556275562855629556305563155632556335563455635556365563755638556395564055641556425564355644556455564655647556485564955650556515565255653556545565555656556575565855659556605566155662556635566455665556665566755668556695567055671556725567355674556755567655677556785567955680556815568255683556845568555686556875568855689556905569155692556935569455695556965569755698556995570055701557025570355704557055570655707557085570955710557115571255713557145571555716557175571855719557205572155722557235572455725557265572755728557295573055731557325573355734557355573655737557385573955740557415574255743557445574555746557475574855749557505575155752557535575455755557565575755758557595576055761557625576355764557655576655767557685576955770557715577255773557745577555776557775577855779557805578155782557835578455785557865578755788557895579055791557925579355794557955579655797557985579955800558015580255803558045580555806558075580855809558105581155812558135581455815558165581755818558195582055821558225582355824558255582655827558285582955830558315583255833558345583555836558375583855839558405584155842558435584455845558465584755848558495585055851558525585355854558555585655857558585585955860558615586255863558645586555866558675586855869558705587155872558735587455875558765587755878558795588055881558825588355884558855588655887558885588955890558915589255893558945589555896558975589855899559005590155902559035590455905559065590755908559095591055911559125591355914559155591655917559185591955920559215592255923559245592555926559275592855929559305593155932559335593455935559365593755938559395594055941559425594355944559455594655947559485594955950559515595255953559545595555956559575595855959559605596155962559635596455965559665596755968559695597055971559725597355974559755597655977559785597955980559815598255983559845598555986559875598855989559905599155992559935599455995559965599755998559995600056001560025600356004560055600656007560085600956010560115601256013560145601556016560175601856019560205602156022560235602456025560265602756028560295603056031560325603356034560355603656037560385603956040560415604256043560445604556046560475604856049560505605156052560535605456055560565605756058560595606056061560625606356064560655606656067560685606956070560715607256073560745607556076560775607856079560805608156082560835608456085560865608756088560895609056091560925609356094560955609656097560985609956100561015610256103561045610556106561075610856109561105611156112561135611456115561165611756118561195612056121561225612356124561255612656127561285612956130561315613256133561345613556136561375613856139561405614156142561435614456145561465614756148561495615056151561525615356154561555615656157561585615956160561615616256163561645616556166561675616856169561705617156172561735617456175561765617756178561795618056181561825618356184561855618656187561885618956190561915619256193561945619556196561975619856199562005620156202562035620456205562065620756208562095621056211562125621356214562155621656217562185621956220562215622256223562245622556226562275622856229562305623156232562335623456235562365623756238562395624056241562425624356244562455624656247562485624956250562515625256253562545625556256562575625856259562605626156262562635626456265562665626756268562695627056271562725627356274562755627656277562785627956280562815628256283562845628556286562875628856289562905629156292562935629456295562965629756298562995630056301563025630356304563055630656307563085630956310563115631256313563145631556316563175631856319563205632156322563235632456325563265632756328563295633056331563325633356334563355633656337563385633956340563415634256343563445634556346563475634856349563505635156352563535635456355563565635756358563595636056361563625636356364563655636656367563685636956370563715637256373563745637556376563775637856379563805638156382563835638456385563865638756388563895639056391563925639356394563955639656397563985639956400564015640256403564045640556406564075640856409564105641156412564135641456415564165641756418564195642056421564225642356424564255642656427564285642956430564315643256433564345643556436564375643856439564405644156442564435644456445564465644756448564495645056451564525645356454564555645656457564585645956460564615646256463564645646556466564675646856469564705647156472564735647456475564765647756478564795648056481564825648356484564855648656487564885648956490564915649256493564945649556496564975649856499565005650156502565035650456505565065650756508565095651056511565125651356514565155651656517565185651956520565215652256523565245652556526565275652856529565305653156532565335653456535565365653756538565395654056541565425654356544565455654656547565485654956550565515655256553565545655556556565575655856559565605656156562565635656456565565665656756568565695657056571565725657356574565755657656577565785657956580565815658256583565845658556586565875658856589565905659156592565935659456595565965659756598565995660056601566025660356604566055660656607566085660956610566115661256613566145661556616566175661856619566205662156622566235662456625566265662756628566295663056631566325663356634566355663656637566385663956640566415664256643566445664556646566475664856649566505665156652566535665456655566565665756658566595666056661566625666356664566655666656667566685666956670566715667256673566745667556676566775667856679566805668156682566835668456685566865668756688566895669056691566925669356694566955669656697566985669956700567015670256703567045670556706567075670856709567105671156712567135671456715567165671756718567195672056721567225672356724567255672656727567285672956730567315673256733567345673556736567375673856739567405674156742567435674456745567465674756748567495675056751567525675356754567555675656757567585675956760567615676256763567645676556766567675676856769567705677156772567735677456775567765677756778567795678056781567825678356784567855678656787567885678956790567915679256793567945679556796567975679856799568005680156802568035680456805568065680756808568095681056811568125681356814568155681656817568185681956820568215682256823568245682556826568275682856829568305683156832568335683456835568365683756838568395684056841568425684356844568455684656847568485684956850568515685256853568545685556856568575685856859568605686156862568635686456865568665686756868568695687056871568725687356874568755687656877568785687956880568815688256883568845688556886568875688856889568905689156892568935689456895568965689756898568995690056901569025690356904569055690656907569085690956910569115691256913569145691556916569175691856919569205692156922569235692456925569265692756928569295693056931569325693356934569355693656937569385693956940569415694256943569445694556946569475694856949569505695156952569535695456955569565695756958569595696056961569625696356964569655696656967569685696956970569715697256973569745697556976569775697856979569805698156982569835698456985569865698756988569895699056991569925699356994569955699656997569985699957000570015700257003570045700557006570075700857009570105701157012570135701457015570165701757018570195702057021570225702357024570255702657027570285702957030570315703257033570345703557036570375703857039570405704157042570435704457045570465704757048570495705057051570525705357054570555705657057570585705957060570615706257063570645706557066570675706857069570705707157072570735707457075570765707757078570795708057081570825708357084570855708657087570885708957090570915709257093570945709557096570975709857099571005710157102571035710457105571065710757108571095711057111571125711357114571155711657117571185711957120571215712257123571245712557126571275712857129571305713157132571335713457135571365713757138571395714057141571425714357144571455714657147571485714957150571515715257153571545715557156571575715857159571605716157162571635716457165571665716757168571695717057171571725717357174571755717657177571785717957180571815718257183571845718557186571875718857189571905719157192571935719457195571965719757198571995720057201572025720357204572055720657207572085720957210572115721257213572145721557216572175721857219572205722157222572235722457225572265722757228572295723057231572325723357234572355723657237572385723957240572415724257243572445724557246572475724857249572505725157252572535725457255572565725757258572595726057261572625726357264572655726657267572685726957270572715727257273572745727557276572775727857279572805728157282572835728457285572865728757288572895729057291572925729357294572955729657297572985729957300573015730257303573045730557306573075730857309573105731157312573135731457315573165731757318573195732057321573225732357324573255732657327573285732957330573315733257333573345733557336573375733857339573405734157342573435734457345573465734757348573495735057351573525735357354573555735657357573585735957360573615736257363573645736557366573675736857369573705737157372573735737457375573765737757378573795738057381573825738357384573855738657387573885738957390573915739257393573945739557396573975739857399574005740157402574035740457405574065740757408574095741057411574125741357414574155741657417574185741957420574215742257423574245742557426574275742857429574305743157432574335743457435574365743757438574395744057441574425744357444574455744657447574485744957450574515745257453574545745557456574575745857459574605746157462574635746457465574665746757468574695747057471574725747357474574755747657477574785747957480574815748257483574845748557486574875748857489574905749157492574935749457495574965749757498574995750057501575025750357504575055750657507575085750957510575115751257513575145751557516575175751857519575205752157522575235752457525575265752757528575295753057531575325753357534575355753657537575385753957540575415754257543575445754557546575475754857549575505755157552575535755457555575565755757558575595756057561575625756357564575655756657567575685756957570575715757257573575745757557576575775757857579575805758157582575835758457585575865758757588575895759057591575925759357594575955759657597575985759957600576015760257603576045760557606576075760857609576105761157612576135761457615576165761757618576195762057621576225762357624576255762657627576285762957630576315763257633576345763557636576375763857639576405764157642576435764457645576465764757648576495765057651576525765357654576555765657657576585765957660576615766257663576645766557666576675766857669576705767157672576735767457675576765767757678576795768057681576825768357684576855768657687576885768957690576915769257693576945769557696576975769857699577005770157702577035770457705577065770757708577095771057711577125771357714577155771657717577185771957720577215772257723577245772557726577275772857729577305773157732577335773457735577365773757738577395774057741577425774357744577455774657747577485774957750577515775257753577545775557756577575775857759577605776157762577635776457765577665776757768577695777057771577725777357774577755777657777577785777957780577815778257783577845778557786577875778857789577905779157792577935779457795577965779757798577995780057801578025780357804578055780657807578085780957810578115781257813578145781557816578175781857819578205782157822578235782457825578265782757828578295783057831578325783357834578355783657837578385783957840578415784257843578445784557846578475784857849578505785157852578535785457855578565785757858578595786057861578625786357864578655786657867578685786957870578715787257873578745787557876578775787857879578805788157882578835788457885578865788757888578895789057891578925789357894578955789657897578985789957900579015790257903579045790557906579075790857909579105791157912579135791457915579165791757918579195792057921579225792357924579255792657927579285792957930579315793257933579345793557936579375793857939579405794157942579435794457945579465794757948579495795057951579525795357954579555795657957579585795957960579615796257963579645796557966579675796857969579705797157972579735797457975579765797757978579795798057981579825798357984579855798657987579885798957990579915799257993579945799557996579975799857999580005800158002580035800458005580065800758008580095801058011580125801358014580155801658017580185801958020580215802258023580245802558026580275802858029580305803158032580335803458035580365803758038580395804058041580425804358044580455804658047580485804958050580515805258053580545805558056580575805858059580605806158062580635806458065580665806758068580695807058071580725807358074580755807658077580785807958080580815808258083580845808558086580875808858089580905809158092580935809458095580965809758098580995810058101581025810358104581055810658107581085810958110581115811258113581145811558116581175811858119581205812158122581235812458125581265812758128581295813058131581325813358134581355813658137581385813958140581415814258143581445814558146581475814858149581505815158152581535815458155581565815758158581595816058161581625816358164581655816658167581685816958170581715817258173581745817558176581775817858179581805818158182581835818458185581865818758188581895819058191581925819358194581955819658197581985819958200582015820258203582045820558206582075820858209582105821158212582135821458215582165821758218582195822058221582225822358224582255822658227582285822958230582315823258233582345823558236582375823858239582405824158242582435824458245582465824758248582495825058251582525825358254582555825658257582585825958260582615826258263582645826558266582675826858269582705827158272582735827458275582765827758278582795828058281582825828358284582855828658287582885828958290582915829258293582945829558296582975829858299583005830158302583035830458305583065830758308583095831058311583125831358314583155831658317583185831958320583215832258323583245832558326583275832858329583305833158332583335833458335583365833758338583395834058341583425834358344583455834658347583485834958350583515835258353583545835558356583575835858359583605836158362583635836458365583665836758368583695837058371583725837358374583755837658377583785837958380583815838258383583845838558386583875838858389583905839158392583935839458395583965839758398583995840058401584025840358404584055840658407584085840958410584115841258413584145841558416584175841858419584205842158422584235842458425584265842758428584295843058431584325843358434584355843658437584385843958440584415844258443584445844558446584475844858449584505845158452584535845458455584565845758458584595846058461584625846358464584655846658467584685846958470584715847258473584745847558476584775847858479584805848158482584835848458485584865848758488584895849058491584925849358494584955849658497584985849958500585015850258503585045850558506585075850858509585105851158512585135851458515585165851758518585195852058521585225852358524585255852658527585285852958530585315853258533585345853558536585375853858539585405854158542585435854458545585465854758548585495855058551585525855358554585555855658557585585855958560585615856258563585645856558566585675856858569585705857158572585735857458575585765857758578585795858058581585825858358584585855858658587585885858958590585915859258593585945859558596585975859858599586005860158602586035860458605586065860758608586095861058611586125861358614586155861658617586185861958620586215862258623586245862558626586275862858629586305863158632586335863458635586365863758638586395864058641586425864358644586455864658647586485864958650586515865258653586545865558656586575865858659586605866158662586635866458665586665866758668586695867058671586725867358674586755867658677586785867958680586815868258683586845868558686586875868858689586905869158692586935869458695586965869758698586995870058701587025870358704587055870658707587085870958710587115871258713587145871558716587175871858719587205872158722587235872458725587265872758728587295873058731587325873358734587355873658737587385873958740587415874258743587445874558746587475874858749587505875158752587535875458755587565875758758587595876058761587625876358764587655876658767587685876958770587715877258773587745877558776587775877858779587805878158782587835878458785587865878758788587895879058791587925879358794587955879658797587985879958800588015880258803588045880558806588075880858809588105881158812588135881458815588165881758818588195882058821588225882358824588255882658827588285882958830588315883258833588345883558836588375883858839588405884158842588435884458845588465884758848588495885058851588525885358854588555885658857588585885958860588615886258863588645886558866588675886858869588705887158872588735887458875588765887758878588795888058881588825888358884588855888658887588885888958890588915889258893588945889558896588975889858899589005890158902589035890458905589065890758908589095891058911589125891358914589155891658917589185891958920589215892258923589245892558926589275892858929589305893158932589335893458935589365893758938589395894058941589425894358944589455894658947589485894958950589515895258953589545895558956589575895858959589605896158962589635896458965589665896758968589695897058971589725897358974589755897658977589785897958980589815898258983589845898558986589875898858989589905899158992589935899458995589965899758998589995900059001590025900359004590055900659007590085900959010590115901259013590145901559016590175901859019590205902159022590235902459025590265902759028590295903059031590325903359034590355903659037590385903959040590415904259043590445904559046590475904859049590505905159052590535905459055590565905759058590595906059061590625906359064590655906659067590685906959070590715907259073590745907559076590775907859079590805908159082590835908459085590865908759088590895909059091590925909359094590955909659097590985909959100591015910259103591045910559106591075910859109591105911159112591135911459115591165911759118591195912059121591225912359124591255912659127591285912959130591315913259133591345913559136591375913859139591405914159142591435914459145591465914759148591495915059151591525915359154591555915659157591585915959160591615916259163591645916559166591675916859169591705917159172591735917459175591765917759178591795918059181591825918359184591855918659187591885918959190591915919259193591945919559196591975919859199592005920159202592035920459205592065920759208592095921059211592125921359214592155921659217592185921959220592215922259223592245922559226592275922859229592305923159232592335923459235592365923759238592395924059241592425924359244592455924659247592485924959250592515925259253592545925559256592575925859259592605926159262592635926459265592665926759268592695927059271592725927359274592755927659277592785927959280592815928259283592845928559286592875928859289592905929159292592935929459295592965929759298592995930059301593025930359304593055930659307593085930959310593115931259313593145931559316593175931859319593205932159322593235932459325593265932759328593295933059331593325933359334593355933659337593385933959340593415934259343593445934559346593475934859349593505935159352593535935459355593565935759358593595936059361593625936359364593655936659367593685936959370593715937259373593745937559376593775937859379593805938159382593835938459385593865938759388593895939059391593925939359394593955939659397593985939959400594015940259403594045940559406594075940859409594105941159412594135941459415594165941759418594195942059421594225942359424594255942659427594285942959430594315943259433594345943559436594375943859439594405944159442594435944459445594465944759448594495945059451594525945359454594555945659457594585945959460594615946259463594645946559466594675946859469594705947159472594735947459475594765947759478594795948059481594825948359484594855948659487594885948959490594915949259493594945949559496594975949859499595005950159502595035950459505595065950759508595095951059511595125951359514595155951659517595185951959520595215952259523595245952559526595275952859529595305953159532595335953459535595365953759538595395954059541595425954359544595455954659547595485954959550595515955259553595545955559556595575955859559595605956159562595635956459565595665956759568595695957059571595725957359574595755957659577595785957959580595815958259583595845958559586595875958859589595905959159592595935959459595595965959759598595995960059601596025960359604596055960659607596085960959610596115961259613596145961559616596175961859619596205962159622596235962459625596265962759628596295963059631596325963359634596355963659637596385963959640596415964259643596445964559646596475964859649596505965159652596535965459655596565965759658596595966059661596625966359664596655966659667596685966959670596715967259673596745967559676596775967859679596805968159682596835968459685596865968759688596895969059691596925969359694596955969659697596985969959700597015970259703597045970559706597075970859709597105971159712597135971459715597165971759718597195972059721597225972359724597255972659727597285972959730597315973259733597345973559736597375973859739597405974159742597435974459745597465974759748597495975059751597525975359754597555975659757597585975959760597615976259763597645976559766597675976859769597705977159772597735977459775597765977759778597795978059781597825978359784597855978659787597885978959790597915979259793597945979559796597975979859799598005980159802598035980459805598065980759808598095981059811598125981359814598155981659817598185981959820598215982259823598245982559826598275982859829598305983159832598335983459835598365983759838598395984059841598425984359844598455984659847598485984959850598515985259853598545985559856598575985859859598605986159862598635986459865598665986759868598695987059871598725987359874598755987659877598785987959880598815988259883598845988559886598875988859889598905989159892598935989459895598965989759898598995990059901599025990359904599055990659907599085990959910599115991259913599145991559916599175991859919599205992159922599235992459925599265992759928599295993059931599325993359934599355993659937599385993959940599415994259943599445994559946599475994859949599505995159952599535995459955599565995759958599595996059961599625996359964599655996659967599685996959970599715997259973599745997559976599775997859979599805998159982599835998459985599865998759988599895999059991599925999359994599955999659997599985999960000600016000260003600046000560006600076000860009600106001160012600136001460015600166001760018600196002060021600226002360024600256002660027600286002960030600316003260033600346003560036600376003860039600406004160042600436004460045600466004760048600496005060051600526005360054600556005660057600586005960060600616006260063600646006560066600676006860069600706007160072600736007460075600766007760078600796008060081600826008360084600856008660087600886008960090600916009260093600946009560096600976009860099601006010160102601036010460105601066010760108601096011060111601126011360114601156011660117601186011960120601216012260123601246012560126601276012860129601306013160132601336013460135601366013760138601396014060141601426014360144601456014660147601486014960150601516015260153601546015560156601576015860159601606016160162601636016460165601666016760168601696017060171601726017360174601756017660177601786017960180601816018260183601846018560186601876018860189601906019160192601936019460195601966019760198601996020060201602026020360204602056020660207602086020960210602116021260213602146021560216602176021860219602206022160222602236022460225602266022760228602296023060231602326023360234602356023660237602386023960240602416024260243602446024560246602476024860249602506025160252602536025460255602566025760258602596026060261602626026360264602656026660267602686026960270602716027260273602746027560276602776027860279602806028160282602836028460285602866028760288602896029060291602926029360294602956029660297602986029960300603016030260303603046030560306603076030860309603106031160312603136031460315603166031760318603196032060321603226032360324603256032660327603286032960330603316033260333603346033560336603376033860339603406034160342603436034460345603466034760348603496035060351603526035360354603556035660357603586035960360603616036260363603646036560366603676036860369603706037160372603736037460375603766037760378603796038060381603826038360384603856038660387603886038960390603916039260393603946039560396603976039860399604006040160402604036040460405604066040760408604096041060411604126041360414604156041660417604186041960420604216042260423604246042560426604276042860429604306043160432604336043460435604366043760438604396044060441604426044360444604456044660447604486044960450604516045260453604546045560456604576045860459604606046160462604636046460465604666046760468604696047060471604726047360474604756047660477604786047960480604816048260483604846048560486604876048860489604906049160492604936049460495604966049760498604996050060501605026050360504605056050660507605086050960510605116051260513605146051560516605176051860519605206052160522605236052460525605266052760528605296053060531605326053360534605356053660537605386053960540605416054260543605446054560546605476054860549605506055160552605536055460555605566055760558605596056060561605626056360564605656056660567605686056960570605716057260573605746057560576605776057860579605806058160582605836058460585605866058760588605896059060591605926059360594605956059660597605986059960600606016060260603606046060560606606076060860609606106061160612606136061460615606166061760618606196062060621606226062360624606256062660627606286062960630606316063260633606346063560636606376063860639606406064160642606436064460645606466064760648606496065060651606526065360654606556065660657606586065960660606616066260663606646066560666606676066860669606706067160672606736067460675606766067760678606796068060681606826068360684606856068660687606886068960690606916069260693606946069560696606976069860699607006070160702607036070460705607066070760708607096071060711607126071360714607156071660717607186071960720607216072260723607246072560726607276072860729607306073160732607336073460735607366073760738607396074060741607426074360744607456074660747607486074960750607516075260753607546075560756607576075860759607606076160762607636076460765607666076760768607696077060771607726077360774607756077660777607786077960780607816078260783607846078560786607876078860789607906079160792607936079460795607966079760798607996080060801608026080360804608056080660807608086080960810608116081260813608146081560816608176081860819608206082160822608236082460825608266082760828608296083060831608326083360834608356083660837608386083960840608416084260843608446084560846608476084860849608506085160852608536085460855608566085760858608596086060861608626086360864608656086660867608686086960870608716087260873608746087560876608776087860879608806088160882608836088460885608866088760888608896089060891608926089360894608956089660897608986089960900609016090260903609046090560906609076090860909609106091160912609136091460915609166091760918609196092060921609226092360924609256092660927609286092960930609316093260933609346093560936609376093860939609406094160942609436094460945609466094760948609496095060951609526095360954609556095660957609586095960960609616096260963609646096560966609676096860969609706097160972609736097460975609766097760978609796098060981609826098360984609856098660987609886098960990609916099260993609946099560996609976099860999610006100161002610036100461005610066100761008610096101061011610126101361014610156101661017610186101961020610216102261023610246102561026610276102861029610306103161032610336103461035610366103761038610396104061041610426104361044610456104661047610486104961050610516105261053610546105561056610576105861059610606106161062610636106461065610666106761068610696107061071610726107361074610756107661077610786107961080610816108261083610846108561086610876108861089610906109161092610936109461095610966109761098610996110061101611026110361104611056110661107611086110961110611116111261113611146111561116611176111861119611206112161122611236112461125611266112761128611296113061131611326113361134611356113661137611386113961140611416114261143611446114561146611476114861149611506115161152611536115461155611566115761158611596116061161611626116361164611656116661167611686116961170611716117261173611746117561176611776117861179611806118161182611836118461185611866118761188611896119061191611926119361194611956119661197611986119961200612016120261203612046120561206612076120861209612106121161212612136121461215612166121761218612196122061221612226122361224612256122661227612286122961230612316123261233612346123561236612376123861239612406124161242612436124461245612466124761248612496125061251612526125361254612556125661257612586125961260612616126261263612646126561266612676126861269612706127161272612736127461275612766127761278612796128061281612826128361284612856128661287612886128961290612916129261293612946129561296612976129861299613006130161302613036130461305613066130761308613096131061311613126131361314613156131661317613186131961320613216132261323613246132561326613276132861329613306133161332613336133461335613366133761338613396134061341613426134361344613456134661347613486134961350613516135261353613546135561356613576135861359613606136161362613636136461365613666136761368613696137061371613726137361374613756137661377613786137961380613816138261383613846138561386613876138861389613906139161392613936139461395613966139761398613996140061401614026140361404614056140661407614086140961410614116141261413614146141561416614176141861419614206142161422614236142461425614266142761428614296143061431614326143361434614356143661437614386143961440614416144261443614446144561446614476144861449614506145161452614536145461455614566145761458614596146061461614626146361464614656146661467614686146961470614716147261473614746147561476614776147861479614806148161482614836148461485614866148761488614896149061491614926149361494614956149661497614986149961500615016150261503615046150561506615076150861509615106151161512615136151461515615166151761518615196152061521615226152361524615256152661527615286152961530615316153261533615346153561536615376153861539615406154161542615436154461545615466154761548615496155061551615526155361554615556155661557615586155961560615616156261563615646156561566615676156861569615706157161572615736157461575615766157761578615796158061581615826158361584615856158661587615886158961590615916159261593615946159561596615976159861599616006160161602616036160461605616066160761608616096161061611616126161361614616156161661617616186161961620616216162261623616246162561626616276162861629616306163161632616336163461635616366163761638616396164061641616426164361644616456164661647616486164961650616516165261653616546165561656616576165861659616606166161662616636166461665616666166761668616696167061671616726167361674616756167661677616786167961680616816168261683616846168561686616876168861689616906169161692616936169461695616966169761698616996170061701617026170361704617056170661707617086170961710617116171261713617146171561716617176171861719617206172161722617236172461725617266172761728617296173061731617326173361734617356173661737617386173961740617416174261743617446174561746617476174861749617506175161752617536175461755617566175761758617596176061761617626176361764617656176661767617686176961770617716177261773617746177561776617776177861779617806178161782617836178461785617866178761788617896179061791617926179361794617956179661797617986179961800618016180261803618046180561806618076180861809618106181161812618136181461815618166181761818618196182061821618226182361824618256182661827618286182961830618316183261833618346183561836618376183861839618406184161842618436184461845618466184761848618496185061851618526185361854618556185661857618586185961860618616186261863618646186561866618676186861869618706187161872618736187461875618766187761878618796188061881618826188361884618856188661887618886188961890618916189261893618946189561896618976189861899619006190161902619036190461905619066190761908619096191061911619126191361914619156191661917619186191961920619216192261923619246192561926619276192861929619306193161932619336193461935619366193761938619396194061941619426194361944619456194661947619486194961950619516195261953619546195561956619576195861959619606196161962619636196461965619666196761968619696197061971619726197361974619756197661977619786197961980619816198261983619846198561986619876198861989619906199161992619936199461995619966199761998619996200062001620026200362004620056200662007620086200962010620116201262013620146201562016620176201862019620206202162022620236202462025620266202762028620296203062031620326203362034620356203662037620386203962040620416204262043620446204562046620476204862049620506205162052620536205462055620566205762058620596206062061620626206362064620656206662067620686206962070620716207262073620746207562076620776207862079620806208162082620836208462085620866208762088620896209062091620926209362094620956209662097620986209962100621016210262103621046210562106621076210862109621106211162112621136211462115621166211762118621196212062121621226212362124621256212662127621286212962130621316213262133621346213562136621376213862139621406214162142621436214462145621466214762148621496215062151621526215362154621556215662157621586215962160621616216262163621646216562166621676216862169621706217162172621736217462175621766217762178621796218062181621826218362184621856218662187621886218962190621916219262193621946219562196621976219862199622006220162202622036220462205622066220762208622096221062211622126221362214622156221662217622186221962220622216222262223622246222562226622276222862229622306223162232622336223462235622366223762238622396224062241622426224362244622456224662247622486224962250622516225262253622546225562256622576225862259622606226162262622636226462265622666226762268622696227062271622726227362274622756227662277622786227962280622816228262283622846228562286622876228862289622906229162292622936229462295622966229762298622996230062301623026230362304623056230662307623086230962310623116231262313623146231562316623176231862319623206232162322623236232462325623266232762328623296233062331623326233362334623356233662337623386233962340623416234262343623446234562346623476234862349623506235162352623536235462355623566235762358623596236062361623626236362364623656236662367623686236962370623716237262373623746237562376623776237862379623806238162382623836238462385623866238762388623896239062391623926239362394623956239662397623986239962400624016240262403624046240562406624076240862409624106241162412624136241462415624166241762418624196242062421624226242362424624256242662427624286242962430624316243262433624346243562436624376243862439624406244162442624436244462445624466244762448624496245062451624526245362454624556245662457624586245962460624616246262463624646246562466624676246862469624706247162472624736247462475624766247762478624796248062481624826248362484624856248662487624886248962490624916249262493624946249562496624976249862499625006250162502625036250462505625066250762508625096251062511625126251362514625156251662517625186251962520625216252262523625246252562526625276252862529625306253162532625336253462535625366253762538625396254062541625426254362544625456254662547625486254962550625516255262553625546255562556625576255862559625606256162562625636256462565625666256762568625696257062571625726257362574625756257662577625786257962580625816258262583625846258562586625876258862589625906259162592625936259462595625966259762598625996260062601626026260362604626056260662607626086260962610626116261262613626146261562616626176261862619626206262162622626236262462625626266262762628626296263062631626326263362634626356263662637626386263962640626416264262643626446264562646626476264862649626506265162652626536265462655626566265762658626596266062661626626266362664626656266662667626686266962670626716267262673626746267562676626776267862679626806268162682626836268462685626866268762688626896269062691626926269362694626956269662697626986269962700627016270262703627046270562706627076270862709627106271162712627136271462715627166271762718627196272062721627226272362724627256272662727627286272962730627316273262733627346273562736627376273862739627406274162742627436274462745627466274762748627496275062751627526275362754627556275662757627586275962760627616276262763627646276562766627676276862769627706277162772627736277462775627766277762778627796278062781627826278362784627856278662787627886278962790627916279262793627946279562796627976279862799628006280162802628036280462805628066280762808628096281062811628126281362814628156281662817628186281962820628216282262823628246282562826628276282862829628306283162832628336283462835628366283762838628396284062841628426284362844628456284662847628486284962850628516285262853628546285562856628576285862859628606286162862628636286462865628666286762868628696287062871628726287362874628756287662877628786287962880628816288262883628846288562886628876288862889628906289162892628936289462895628966289762898628996290062901629026290362904629056290662907629086290962910629116291262913629146291562916629176291862919629206292162922629236292462925629266292762928629296293062931629326293362934629356293662937629386293962940629416294262943629446294562946629476294862949629506295162952629536295462955629566295762958629596296062961629626296362964629656296662967629686296962970629716297262973629746297562976629776297862979629806298162982629836298462985629866298762988629896299062991629926299362994629956299662997629986299963000630016300263003630046300563006630076300863009630106301163012630136301463015630166301763018630196302063021630226302363024630256302663027630286302963030630316303263033630346303563036630376303863039630406304163042630436304463045630466304763048630496305063051630526305363054630556305663057630586305963060630616306263063630646306563066630676306863069630706307163072630736307463075630766307763078630796308063081630826308363084630856308663087630886308963090630916309263093630946309563096630976309863099631006310163102631036310463105631066310763108631096311063111631126311363114631156311663117631186311963120631216312263123631246312563126631276312863129631306313163132631336313463135631366313763138631396314063141631426314363144631456314663147631486314963150631516315263153631546315563156631576315863159631606316163162631636316463165631666316763168631696317063171631726317363174631756317663177631786317963180631816318263183631846318563186631876318863189631906319163192631936319463195631966319763198631996320063201632026320363204632056320663207632086320963210632116321263213632146321563216632176321863219632206322163222632236322463225632266322763228632296323063231632326323363234632356323663237632386323963240632416324263243632446324563246632476324863249632506325163252632536325463255632566325763258632596326063261632626326363264632656326663267632686326963270632716327263273632746327563276632776327863279632806328163282632836328463285632866328763288632896329063291632926329363294632956329663297632986329963300633016330263303633046330563306633076330863309633106331163312633136331463315633166331763318633196332063321633226332363324633256332663327633286332963330633316333263333633346333563336633376333863339633406334163342633436334463345633466334763348633496335063351633526335363354633556335663357633586335963360633616336263363633646336563366633676336863369633706337163372633736337463375633766337763378633796338063381633826338363384633856338663387633886338963390633916339263393633946339563396633976339863399634006340163402634036340463405634066340763408634096341063411634126341363414634156341663417634186341963420634216342263423634246342563426634276342863429634306343163432634336343463435634366343763438634396344063441634426344363444634456344663447634486344963450634516345263453634546345563456634576345863459634606346163462634636346463465634666346763468634696347063471634726347363474634756347663477634786347963480634816348263483634846348563486634876348863489634906349163492634936349463495634966349763498634996350063501635026350363504635056350663507635086350963510635116351263513635146351563516635176351863519635206352163522635236352463525635266352763528635296353063531635326353363534635356353663537635386353963540635416354263543635446354563546635476354863549635506355163552635536355463555635566355763558635596356063561635626356363564635656356663567635686356963570635716357263573635746357563576635776357863579635806358163582635836358463585635866358763588635896359063591635926359363594635956359663597635986359963600636016360263603636046360563606636076360863609636106361163612636136361463615636166361763618636196362063621636226362363624636256362663627636286362963630636316363263633636346363563636636376363863639636406364163642636436364463645636466364763648636496365063651636526365363654636556365663657636586365963660636616366263663636646366563666636676366863669636706367163672636736367463675636766367763678636796368063681636826368363684636856368663687636886368963690636916369263693636946369563696636976369863699637006370163702637036370463705637066370763708637096371063711637126371363714637156371663717637186371963720637216372263723637246372563726637276372863729637306373163732637336373463735637366373763738637396374063741637426374363744637456374663747637486374963750637516375263753637546375563756637576375863759637606376163762637636376463765637666376763768637696377063771637726377363774637756377663777637786377963780637816378263783637846378563786637876378863789637906379163792637936379463795637966379763798637996380063801638026380363804638056380663807638086380963810638116381263813638146381563816638176381863819638206382163822638236382463825638266382763828638296383063831638326383363834638356383663837638386383963840638416384263843638446384563846638476384863849638506385163852638536385463855638566385763858638596386063861638626386363864638656386663867638686386963870638716387263873638746387563876638776387863879638806388163882638836388463885638866388763888638896389063891638926389363894638956389663897638986389963900639016390263903639046390563906639076390863909639106391163912639136391463915639166391763918639196392063921639226392363924639256392663927639286392963930639316393263933639346393563936639376393863939639406394163942639436394463945639466394763948639496395063951639526395363954639556395663957639586395963960639616396263963639646396563966639676396863969639706397163972639736397463975639766397763978639796398063981639826398363984639856398663987639886398963990639916399263993639946399563996639976399863999640006400164002640036400464005640066400764008640096401064011640126401364014640156401664017640186401964020640216402264023640246402564026640276402864029640306403164032640336403464035640366403764038640396404064041640426404364044640456404664047640486404964050640516405264053640546405564056640576405864059640606406164062640636406464065640666406764068640696407064071640726407364074640756407664077640786407964080640816408264083640846408564086640876408864089640906409164092640936409464095640966409764098640996410064101641026410364104641056410664107641086410964110641116411264113641146411564116641176411864119641206412164122641236412464125641266412764128641296413064131641326413364134641356413664137641386413964140641416414264143641446414564146641476414864149641506415164152641536415464155641566415764158641596416064161641626416364164641656416664167641686416964170641716417264173641746417564176641776417864179641806418164182641836418464185641866418764188641896419064191641926419364194641956419664197641986419964200642016420264203642046420564206642076420864209642106421164212642136421464215642166421764218642196422064221642226422364224642256422664227642286422964230642316423264233642346423564236642376423864239642406424164242642436424464245642466424764248642496425064251642526425364254642556425664257642586425964260642616426264263642646426564266642676426864269642706427164272642736427464275642766427764278642796428064281642826428364284642856428664287642886428964290642916429264293642946429564296642976429864299643006430164302643036430464305643066430764308643096431064311643126431364314643156431664317643186431964320643216432264323643246432564326643276432864329643306433164332643336433464335643366433764338643396434064341643426434364344643456434664347643486434964350643516435264353643546435564356643576435864359643606436164362643636436464365643666436764368643696437064371643726437364374643756437664377643786437964380643816438264383643846438564386643876438864389643906439164392643936439464395643966439764398643996440064401644026440364404644056440664407644086440964410644116441264413644146441564416644176441864419644206442164422644236442464425644266442764428644296443064431644326443364434644356443664437644386443964440644416444264443644446444564446644476444864449644506445164452644536445464455644566445764458644596446064461644626446364464644656446664467644686446964470644716447264473644746447564476644776447864479644806448164482644836448464485644866448764488644896449064491644926449364494644956449664497644986449964500645016450264503645046450564506645076450864509645106451164512645136451464515645166451764518645196452064521645226452364524645256452664527645286452964530645316453264533645346453564536645376453864539645406454164542645436454464545645466454764548645496455064551645526455364554645556455664557645586455964560645616456264563645646456564566645676456864569645706457164572645736457464575645766457764578645796458064581645826458364584645856458664587645886458964590645916459264593645946459564596645976459864599646006460164602646036460464605646066460764608646096461064611646126461364614646156461664617646186461964620646216462264623646246462564626646276462864629646306463164632646336463464635646366463764638646396464064641646426464364644646456464664647646486464964650646516465264653646546465564656646576465864659646606466164662646636466464665646666466764668646696467064671646726467364674646756467664677646786467964680646816468264683646846468564686646876468864689646906469164692646936469464695646966469764698646996470064701647026470364704647056470664707647086470964710647116471264713647146471564716647176471864719647206472164722647236472464725647266472764728647296473064731647326473364734647356473664737647386473964740647416474264743647446474564746647476474864749647506475164752647536475464755647566475764758647596476064761647626476364764647656476664767647686476964770647716477264773647746477564776647776477864779647806478164782647836478464785647866478764788647896479064791647926479364794647956479664797647986479964800648016480264803648046480564806648076480864809648106481164812648136481464815648166481764818648196482064821648226482364824648256482664827648286482964830648316483264833648346483564836648376483864839648406484164842648436484464845648466484764848648496485064851648526485364854648556485664857648586485964860648616486264863648646486564866648676486864869648706487164872648736487464875648766487764878648796488064881648826488364884648856488664887648886488964890648916489264893648946489564896648976489864899649006490164902649036490464905649066490764908649096491064911649126491364914649156491664917649186491964920649216492264923649246492564926649276492864929649306493164932649336493464935649366493764938649396494064941649426494364944649456494664947649486494964950649516495264953649546495564956649576495864959649606496164962649636496464965649666496764968649696497064971649726497364974649756497664977649786497964980649816498264983649846498564986649876498864989649906499164992649936499464995649966499764998649996500065001650026500365004650056500665007650086500965010650116501265013650146501565016650176501865019650206502165022650236502465025650266502765028650296503065031650326503365034650356503665037650386503965040650416504265043650446504565046650476504865049650506505165052650536505465055650566505765058650596506065061650626506365064650656506665067650686506965070650716507265073650746507565076650776507865079650806508165082650836508465085650866508765088650896509065091650926509365094650956509665097650986509965100651016510265103651046510565106651076510865109651106511165112651136511465115651166511765118651196512065121651226512365124651256512665127651286512965130651316513265133651346513565136651376513865139651406514165142651436514465145651466514765148651496515065151651526515365154651556515665157651586515965160651616516265163651646516565166651676516865169651706517165172651736517465175651766517765178651796518065181651826518365184651856518665187651886518965190651916519265193651946519565196651976519865199652006520165202652036520465205652066520765208652096521065211652126521365214652156521665217652186521965220652216522265223652246522565226652276522865229652306523165232652336523465235652366523765238652396524065241652426524365244652456524665247652486524965250652516525265253652546525565256652576525865259652606526165262652636526465265652666526765268652696527065271652726527365274652756527665277652786527965280652816528265283652846528565286652876528865289652906529165292652936529465295652966529765298652996530065301653026530365304653056530665307653086530965310653116531265313653146531565316653176531865319653206532165322653236532465325653266532765328653296533065331653326533365334653356533665337653386533965340653416534265343653446534565346653476534865349653506535165352653536535465355653566535765358653596536065361653626536365364653656536665367653686536965370653716537265373653746537565376653776537865379653806538165382653836538465385653866538765388653896539065391653926539365394653956539665397653986539965400654016540265403654046540565406654076540865409654106541165412654136541465415654166541765418654196542065421654226542365424654256542665427654286542965430654316543265433654346543565436654376543865439654406544165442654436544465445654466544765448654496545065451654526545365454654556545665457654586545965460654616546265463654646546565466654676546865469654706547165472654736547465475654766547765478654796548065481654826548365484654856548665487654886548965490654916549265493654946549565496654976549865499655006550165502655036550465505655066550765508655096551065511655126551365514655156551665517655186551965520655216552265523655246552565526655276552865529655306553165532655336553465535655366553765538655396554065541655426554365544655456554665547655486554965550655516555265553655546555565556655576555865559655606556165562655636556465565655666556765568655696557065571655726557365574655756557665577655786557965580655816558265583655846558565586655876558865589655906559165592655936559465595655966559765598655996560065601656026560365604656056560665607656086560965610656116561265613656146561565616656176561865619656206562165622656236562465625656266562765628656296563065631656326563365634656356563665637656386563965640656416564265643656446564565646656476564865649656506565165652656536565465655656566565765658656596566065661656626566365664656656566665667656686566965670656716567265673656746567565676656776567865679656806568165682656836568465685656866568765688656896569065691656926569365694656956569665697656986569965700657016570265703657046570565706657076570865709657106571165712657136571465715657166571765718657196572065721657226572365724657256572665727657286572965730657316573265733657346573565736657376573865739657406574165742657436574465745657466574765748657496575065751657526575365754657556575665757657586575965760657616576265763657646576565766657676576865769657706577165772657736577465775657766577765778657796578065781657826578365784657856578665787657886578965790657916579265793657946579565796657976579865799658006580165802658036580465805658066580765808658096581065811658126581365814658156581665817658186581965820658216582265823658246582565826658276582865829658306583165832658336583465835658366583765838658396584065841658426584365844658456584665847658486584965850658516585265853658546585565856658576585865859658606586165862658636586465865658666586765868658696587065871658726587365874658756587665877658786587965880658816588265883658846588565886658876588865889658906589165892658936589465895658966589765898658996590065901659026590365904659056590665907659086590965910659116591265913659146591565916659176591865919659206592165922659236592465925659266592765928659296593065931659326593365934659356593665937659386593965940659416594265943659446594565946659476594865949659506595165952659536595465955659566595765958659596596065961659626596365964659656596665967659686596965970659716597265973659746597565976659776597865979659806598165982659836598465985659866598765988659896599065991659926599365994659956599665997659986599966000660016600266003660046600566006660076600866009660106601166012660136601466015660166601766018660196602066021660226602366024660256602666027660286602966030660316603266033660346603566036660376603866039660406604166042660436604466045660466604766048660496605066051660526605366054660556605666057660586605966060660616606266063660646606566066660676606866069660706607166072660736607466075660766607766078660796608066081660826608366084660856608666087660886608966090660916609266093660946609566096660976609866099661006610166102661036610466105661066610766108661096611066111661126611366114661156611666117661186611966120661216612266123661246612566126661276612866129661306613166132661336613466135661366613766138661396614066141661426614366144661456614666147661486614966150661516615266153661546615566156661576615866159661606616166162661636616466165661666616766168661696617066171661726617366174661756617666177661786617966180661816618266183661846618566186661876618866189661906619166192661936619466195661966619766198661996620066201662026620366204662056620666207662086620966210662116621266213662146621566216662176621866219662206622166222662236622466225662266622766228662296623066231662326623366234662356623666237662386623966240662416624266243662446624566246662476624866249662506625166252662536625466255662566625766258662596626066261662626626366264662656626666267662686626966270662716627266273662746627566276662776627866279662806628166282662836628466285662866628766288662896629066291662926629366294662956629666297662986629966300663016630266303663046630566306663076630866309663106631166312663136631466315663166631766318663196632066321663226632366324663256632666327663286632966330663316633266333663346633566336663376633866339663406634166342663436634466345663466634766348663496635066351663526635366354663556635666357663586635966360663616636266363663646636566366663676636866369663706637166372663736637466375663766637766378663796638066381663826638366384663856638666387663886638966390663916639266393663946639566396663976639866399664006640166402664036640466405664066640766408664096641066411664126641366414664156641666417664186641966420664216642266423664246642566426664276642866429664306643166432664336643466435664366643766438664396644066441664426644366444664456644666447664486644966450664516645266453664546645566456664576645866459664606646166462664636646466465664666646766468664696647066471664726647366474664756647666477664786647966480664816648266483664846648566486664876648866489664906649166492664936649466495664966649766498664996650066501665026650366504665056650666507665086650966510665116651266513665146651566516665176651866519665206652166522665236652466525665266652766528665296653066531665326653366534665356653666537665386653966540665416654266543665446654566546665476654866549665506655166552665536655466555665566655766558665596656066561665626656366564665656656666567665686656966570665716657266573665746657566576665776657866579665806658166582665836658466585665866658766588665896659066591665926659366594665956659666597665986659966600666016660266603666046660566606666076660866609666106661166612666136661466615666166661766618666196662066621666226662366624666256662666627666286662966630666316663266633666346663566636666376663866639666406664166642666436664466645666466664766648666496665066651666526665366654666556665666657666586665966660666616666266663666646666566666666676666866669666706667166672666736667466675666766667766678666796668066681666826668366684666856668666687666886668966690666916669266693666946669566696666976669866699667006670166702667036670466705667066670766708667096671066711667126671366714667156671666717667186671966720667216672266723667246672566726667276672866729667306673166732667336673466735667366673766738667396674066741667426674366744667456674666747667486674966750667516675266753667546675566756667576675866759667606676166762667636676466765667666676766768667696677066771667726677366774667756677666777667786677966780667816678266783667846678566786667876678866789667906679166792667936679466795667966679766798667996680066801668026680366804668056680666807668086680966810668116681266813668146681566816668176681866819668206682166822668236682466825668266682766828668296683066831668326683366834668356683666837668386683966840668416684266843668446684566846668476684866849668506685166852668536685466855668566685766858668596686066861668626686366864668656686666867668686686966870668716687266873668746687566876668776687866879668806688166882668836688466885668866688766888668896689066891668926689366894668956689666897668986689966900669016690266903669046690566906669076690866909669106691166912669136691466915669166691766918669196692066921669226692366924669256692666927669286692966930669316693266933669346693566936669376693866939669406694166942669436694466945669466694766948669496695066951669526695366954669556695666957669586695966960669616696266963669646696566966669676696866969669706697166972669736697466975669766697766978669796698066981669826698366984669856698666987669886698966990669916699266993669946699566996669976699866999670006700167002670036700467005670066700767008670096701067011670126701367014670156701667017670186701967020670216702267023670246702567026670276702867029670306703167032670336703467035670366703767038670396704067041670426704367044670456704667047670486704967050670516705267053670546705567056670576705867059670606706167062670636706467065670666706767068670696707067071670726707367074670756707667077670786707967080670816708267083670846708567086670876708867089670906709167092670936709467095670966709767098670996710067101671026710367104671056710667107671086710967110671116711267113671146711567116671176711867119671206712167122671236712467125671266712767128671296713067131671326713367134671356713667137671386713967140671416714267143671446714567146671476714867149671506715167152671536715467155671566715767158671596716067161671626716367164671656716667167671686716967170671716717267173671746717567176671776717867179671806718167182671836718467185671866718767188671896719067191671926719367194671956719667197671986719967200672016720267203672046720567206672076720867209672106721167212672136721467215672166721767218672196722067221672226722367224672256722667227672286722967230672316723267233672346723567236672376723867239672406724167242672436724467245672466724767248672496725067251672526725367254672556725667257672586725967260672616726267263672646726567266672676726867269672706727167272672736727467275672766727767278672796728067281672826728367284672856728667287672886728967290672916729267293672946729567296672976729867299673006730167302673036730467305673066730767308673096731067311673126731367314673156731667317673186731967320673216732267323673246732567326673276732867329673306733167332673336733467335673366733767338673396734067341673426734367344673456734667347673486734967350673516735267353673546735567356673576735867359673606736167362673636736467365673666736767368673696737067371673726737367374673756737667377673786737967380673816738267383673846738567386673876738867389673906739167392673936739467395673966739767398673996740067401674026740367404674056740667407674086740967410674116741267413674146741567416674176741867419674206742167422674236742467425674266742767428674296743067431674326743367434674356743667437674386743967440674416744267443674446744567446674476744867449674506745167452674536745467455674566745767458674596746067461674626746367464674656746667467674686746967470674716747267473674746747567476674776747867479674806748167482674836748467485674866748767488674896749067491674926749367494674956749667497674986749967500675016750267503675046750567506675076750867509675106751167512675136751467515675166751767518675196752067521675226752367524675256752667527675286752967530675316753267533675346753567536675376753867539675406754167542675436754467545675466754767548675496755067551675526755367554675556755667557675586755967560675616756267563675646756567566675676756867569675706757167572675736757467575675766757767578675796758067581675826758367584675856758667587675886758967590675916759267593675946759567596675976759867599676006760167602676036760467605676066760767608676096761067611676126761367614676156761667617676186761967620676216762267623676246762567626676276762867629676306763167632676336763467635676366763767638676396764067641676426764367644676456764667647676486764967650676516765267653676546765567656676576765867659676606766167662676636766467665676666766767668676696767067671676726767367674676756767667677676786767967680676816768267683676846768567686676876768867689676906769167692676936769467695676966769767698676996770067701677026770367704677056770667707677086770967710677116771267713677146771567716677176771867719677206772167722677236772467725677266772767728677296773067731677326773367734677356773667737677386773967740677416774267743677446774567746677476774867749677506775167752677536775467755677566775767758677596776067761677626776367764677656776667767677686776967770677716777267773677746777567776677776777867779677806778167782677836778467785677866778767788677896779067791677926779367794677956779667797677986779967800678016780267803678046780567806678076780867809678106781167812678136781467815678166781767818678196782067821678226782367824678256782667827678286782967830678316783267833678346783567836678376783867839678406784167842678436784467845678466784767848678496785067851678526785367854678556785667857678586785967860678616786267863678646786567866678676786867869678706787167872678736787467875678766787767878678796788067881678826788367884678856788667887678886788967890678916789267893678946789567896678976789867899679006790167902679036790467905679066790767908679096791067911679126791367914679156791667917679186791967920679216792267923679246792567926679276792867929679306793167932679336793467935679366793767938679396794067941679426794367944679456794667947679486794967950679516795267953679546795567956679576795867959679606796167962679636796467965679666796767968679696797067971679726797367974679756797667977679786797967980679816798267983679846798567986679876798867989679906799167992679936799467995679966799767998679996800068001680026800368004680056800668007680086800968010680116801268013680146801568016680176801868019680206802168022680236802468025680266802768028680296803068031680326803368034680356803668037680386803968040680416804268043680446804568046680476804868049680506805168052680536805468055680566805768058680596806068061680626806368064680656806668067680686806968070680716807268073680746807568076680776807868079680806808168082680836808468085680866808768088680896809068091680926809368094680956809668097680986809968100681016810268103681046810568106681076810868109681106811168112681136811468115681166811768118681196812068121681226812368124681256812668127681286812968130681316813268133681346813568136681376813868139681406814168142681436814468145681466814768148681496815068151681526815368154681556815668157681586815968160681616816268163681646816568166681676816868169681706817168172681736817468175681766817768178681796818068181681826818368184681856818668187681886818968190681916819268193681946819568196681976819868199682006820168202682036820468205682066820768208682096821068211682126821368214682156821668217682186821968220682216822268223682246822568226682276822868229682306823168232682336823468235682366823768238682396824068241682426824368244682456824668247682486824968250682516825268253682546825568256682576825868259682606826168262682636826468265682666826768268682696827068271682726827368274682756827668277682786827968280682816828268283682846828568286682876828868289682906829168292682936829468295682966829768298682996830068301683026830368304683056830668307683086830968310683116831268313683146831568316683176831868319683206832168322683236832468325683266832768328683296833068331683326833368334683356833668337683386833968340683416834268343683446834568346683476834868349683506835168352683536835468355683566835768358683596836068361683626836368364683656836668367683686836968370683716837268373683746837568376683776837868379683806838168382683836838468385683866838768388683896839068391683926839368394683956839668397683986839968400684016840268403684046840568406684076840868409684106841168412684136841468415684166841768418684196842068421684226842368424684256842668427684286842968430684316843268433684346843568436684376843868439684406844168442684436844468445684466844768448684496845068451684526845368454684556845668457684586845968460684616846268463684646846568466684676846868469684706847168472684736847468475684766847768478684796848068481684826848368484684856848668487684886848968490684916849268493684946849568496684976849868499685006850168502685036850468505685066850768508685096851068511685126851368514685156851668517685186851968520685216852268523685246852568526685276852868529685306853168532685336853468535685366853768538685396854068541685426854368544685456854668547685486854968550685516855268553685546855568556685576855868559685606856168562685636856468565685666856768568685696857068571685726857368574685756857668577685786857968580685816858268583685846858568586685876858868589685906859168592685936859468595685966859768598685996860068601686026860368604686056860668607686086860968610686116861268613686146861568616686176861868619686206862168622686236862468625686266862768628686296863068631686326863368634686356863668637686386863968640686416864268643686446864568646686476864868649686506865168652686536865468655686566865768658686596866068661686626866368664686656866668667686686866968670686716867268673686746867568676686776867868679686806868168682686836868468685686866868768688686896869068691686926869368694686956869668697686986869968700687016870268703687046870568706687076870868709687106871168712687136871468715687166871768718687196872068721687226872368724687256872668727687286872968730687316873268733687346873568736687376873868739687406874168742687436874468745687466874768748687496875068751687526875368754687556875668757687586875968760687616876268763687646876568766687676876868769687706877168772687736877468775687766877768778687796878068781687826878368784687856878668787687886878968790687916879268793687946879568796687976879868799688006880168802688036880468805688066880768808688096881068811688126881368814688156881668817688186881968820688216882268823688246882568826688276882868829688306883168832688336883468835688366883768838688396884068841688426884368844688456884668847688486884968850688516885268853688546885568856688576885868859688606886168862688636886468865688666886768868688696887068871688726887368874688756887668877688786887968880688816888268883688846888568886688876888868889688906889168892688936889468895688966889768898688996890068901689026890368904689056890668907689086890968910689116891268913689146891568916689176891868919689206892168922689236892468925689266892768928689296893068931689326893368934689356893668937689386893968940689416894268943689446894568946689476894868949689506895168952689536895468955689566895768958689596896068961689626896368964689656896668967689686896968970689716897268973689746897568976689776897868979689806898168982689836898468985689866898768988689896899068991689926899368994689956899668997689986899969000690016900269003690046900569006690076900869009690106901169012690136901469015690166901769018690196902069021690226902369024690256902669027690286902969030690316903269033690346903569036690376903869039690406904169042690436904469045690466904769048690496905069051690526905369054690556905669057690586905969060690616906269063690646906569066690676906869069690706907169072690736907469075690766907769078690796908069081690826908369084690856908669087690886908969090690916909269093690946909569096690976909869099691006910169102691036910469105691066910769108691096911069111691126911369114691156911669117691186911969120691216912269123691246912569126691276912869129691306913169132691336913469135691366913769138691396914069141691426914369144691456914669147691486914969150691516915269153691546915569156691576915869159691606916169162691636916469165691666916769168691696917069171691726917369174691756917669177691786917969180691816918269183691846918569186691876918869189691906919169192691936919469195691966919769198691996920069201692026920369204692056920669207692086920969210692116921269213692146921569216692176921869219692206922169222692236922469225692266922769228692296923069231692326923369234692356923669237692386923969240692416924269243692446924569246692476924869249692506925169252692536925469255692566925769258692596926069261692626926369264692656926669267692686926969270692716927269273692746927569276692776927869279692806928169282692836928469285692866928769288692896929069291692926929369294692956929669297692986929969300693016930269303693046930569306693076930869309693106931169312693136931469315693166931769318693196932069321693226932369324693256932669327693286932969330693316933269333693346933569336693376933869339693406934169342693436934469345693466934769348693496935069351693526935369354693556935669357693586935969360693616936269363693646936569366693676936869369693706937169372693736937469375693766937769378693796938069381693826938369384693856938669387693886938969390693916939269393693946939569396693976939869399694006940169402694036940469405694066940769408694096941069411694126941369414694156941669417694186941969420694216942269423694246942569426694276942869429694306943169432694336943469435694366943769438694396944069441694426944369444694456944669447694486944969450694516945269453694546945569456694576945869459694606946169462694636946469465694666946769468694696947069471694726947369474694756947669477694786947969480694816948269483694846948569486694876948869489694906949169492694936949469495694966949769498694996950069501695026950369504695056950669507695086950969510695116951269513695146951569516695176951869519695206952169522695236952469525695266952769528695296953069531695326953369534695356953669537695386953969540695416954269543695446954569546695476954869549695506955169552695536955469555695566955769558695596956069561695626956369564695656956669567695686956969570695716957269573695746957569576695776957869579695806958169582695836958469585695866958769588695896959069591695926959369594695956959669597695986959969600696016960269603696046960569606696076960869609696106961169612696136961469615696166961769618696196962069621696226962369624696256962669627696286962969630696316963269633696346963569636696376963869639696406964169642696436964469645696466964769648696496965069651696526965369654696556965669657696586965969660696616966269663696646966569666696676966869669696706967169672696736967469675696766967769678696796968069681696826968369684696856968669687696886968969690696916969269693696946969569696696976969869699697006970169702697036970469705697066970769708697096971069711697126971369714697156971669717697186971969720697216972269723697246972569726697276972869729697306973169732697336973469735697366973769738697396974069741697426974369744697456974669747697486974969750697516975269753697546975569756697576975869759697606976169762697636976469765697666976769768697696977069771697726977369774697756977669777697786977969780697816978269783697846978569786697876978869789697906979169792697936979469795697966979769798697996980069801698026980369804698056980669807698086980969810698116981269813698146981569816698176981869819698206982169822698236982469825698266982769828698296983069831698326983369834698356983669837698386983969840698416984269843698446984569846698476984869849698506985169852698536985469855698566985769858698596986069861698626986369864698656986669867698686986969870698716987269873698746987569876698776987869879698806988169882698836988469885698866988769888698896989069891698926989369894698956989669897698986989969900699016990269903699046990569906699076990869909699106991169912699136991469915699166991769918699196992069921699226992369924699256992669927699286992969930699316993269933699346993569936699376993869939699406994169942699436994469945699466994769948699496995069951699526995369954699556995669957699586995969960699616996269963699646996569966699676996869969699706997169972699736997469975699766997769978699796998069981699826998369984699856998669987699886998969990699916999269993699946999569996699976999869999700007000170002700037000470005700067000770008700097001070011700127001370014700157001670017700187001970020700217002270023700247002570026700277002870029700307003170032700337003470035700367003770038700397004070041700427004370044700457004670047700487004970050700517005270053700547005570056700577005870059700607006170062700637006470065700667006770068700697007070071700727007370074700757007670077700787007970080700817008270083700847008570086700877008870089700907009170092700937009470095700967009770098700997010070101701027010370104701057010670107701087010970110701117011270113701147011570116701177011870119701207012170122701237012470125701267012770128701297013070131701327013370134701357013670137701387013970140701417014270143701447014570146701477014870149701507015170152701537015470155701567015770158701597016070161701627016370164701657016670167701687016970170701717017270173701747017570176701777017870179701807018170182701837018470185701867018770188701897019070191701927019370194701957019670197701987019970200702017020270203702047020570206702077020870209702107021170212702137021470215702167021770218702197022070221702227022370224702257022670227702287022970230702317023270233702347023570236702377023870239702407024170242702437024470245702467024770248702497025070251702527025370254702557025670257702587025970260702617026270263702647026570266702677026870269702707027170272702737027470275702767027770278702797028070281702827028370284702857028670287702887028970290702917029270293702947029570296702977029870299703007030170302703037030470305703067030770308703097031070311703127031370314703157031670317703187031970320703217032270323703247032570326703277032870329703307033170332703337033470335703367033770338703397034070341703427034370344703457034670347703487034970350703517035270353703547035570356703577035870359703607036170362703637036470365703667036770368703697037070371703727037370374703757037670377703787037970380703817038270383703847038570386703877038870389703907039170392703937039470395703967039770398703997040070401704027040370404704057040670407704087040970410704117041270413704147041570416704177041870419704207042170422704237042470425704267042770428704297043070431704327043370434704357043670437704387043970440704417044270443704447044570446704477044870449704507045170452704537045470455704567045770458704597046070461704627046370464704657046670467704687046970470704717047270473704747047570476704777047870479704807048170482704837048470485704867048770488704897049070491704927049370494704957049670497704987049970500705017050270503705047050570506705077050870509705107051170512705137051470515705167051770518705197052070521705227052370524705257052670527705287052970530705317053270533705347053570536705377053870539705407054170542705437054470545705467054770548705497055070551705527055370554705557055670557705587055970560705617056270563705647056570566705677056870569705707057170572705737057470575705767057770578705797058070581705827058370584705857058670587705887058970590705917059270593705947059570596705977059870599706007060170602706037060470605706067060770608706097061070611706127061370614706157061670617706187061970620706217062270623706247062570626706277062870629706307063170632706337063470635706367063770638706397064070641706427064370644706457064670647706487064970650706517065270653706547065570656706577065870659706607066170662706637066470665706667066770668706697067070671706727067370674706757067670677706787067970680706817068270683706847068570686706877068870689706907069170692706937069470695706967069770698706997070070701707027070370704707057070670707707087070970710707117071270713707147071570716707177071870719707207072170722707237072470725707267072770728707297073070731707327073370734707357073670737707387073970740707417074270743707447074570746707477074870749707507075170752707537075470755707567075770758707597076070761707627076370764707657076670767707687076970770707717077270773707747077570776707777077870779707807078170782707837078470785707867078770788707897079070791707927079370794707957079670797707987079970800708017080270803708047080570806708077080870809708107081170812708137081470815708167081770818708197082070821708227082370824708257082670827708287082970830708317083270833708347083570836708377083870839708407084170842708437084470845708467084770848708497085070851708527085370854708557085670857708587085970860708617086270863708647086570866708677086870869708707087170872708737087470875708767087770878708797088070881708827088370884708857088670887708887088970890708917089270893708947089570896708977089870899709007090170902709037090470905709067090770908709097091070911709127091370914709157091670917709187091970920709217092270923709247092570926709277092870929709307093170932709337093470935709367093770938709397094070941709427094370944709457094670947709487094970950709517095270953709547095570956709577095870959709607096170962709637096470965709667096770968709697097070971709727097370974709757097670977709787097970980709817098270983709847098570986709877098870989709907099170992709937099470995709967099770998709997100071001710027100371004710057100671007710087100971010710117101271013710147101571016710177101871019710207102171022710237102471025710267102771028710297103071031710327103371034710357103671037710387103971040710417104271043710447104571046710477104871049710507105171052710537105471055710567105771058710597106071061710627106371064710657106671067710687106971070710717107271073710747107571076710777107871079710807108171082710837108471085710867108771088710897109071091710927109371094710957109671097710987109971100711017110271103711047110571106711077110871109711107111171112711137111471115711167111771118711197112071121711227112371124711257112671127711287112971130711317113271133711347113571136711377113871139711407114171142711437114471145711467114771148711497115071151711527115371154711557115671157711587115971160711617116271163711647116571166711677116871169711707117171172711737117471175711767117771178711797118071181711827118371184711857118671187711887118971190711917119271193711947119571196711977119871199712007120171202712037120471205712067120771208712097121071211712127121371214712157121671217712187121971220712217122271223712247122571226712277122871229712307123171232712337123471235712367123771238712397124071241712427124371244712457124671247712487124971250712517125271253712547125571256712577125871259712607126171262712637126471265712667126771268712697127071271712727127371274712757127671277712787127971280712817128271283712847128571286712877128871289712907129171292712937129471295712967129771298712997130071301713027130371304713057130671307713087130971310713117131271313713147131571316713177131871319713207132171322713237132471325713267132771328713297133071331713327133371334713357133671337713387133971340713417134271343713447134571346713477134871349713507135171352713537135471355713567135771358713597136071361713627136371364713657136671367713687136971370713717137271373713747137571376713777137871379713807138171382713837138471385713867138771388713897139071391713927139371394713957139671397713987139971400714017140271403714047140571406714077140871409714107141171412714137141471415714167141771418714197142071421714227142371424714257142671427714287142971430714317143271433714347143571436714377143871439714407144171442714437144471445714467144771448714497145071451714527145371454714557145671457714587145971460714617146271463714647146571466714677146871469714707147171472714737147471475714767147771478714797148071481714827148371484714857148671487714887148971490714917149271493714947149571496714977149871499715007150171502715037150471505715067150771508715097151071511715127151371514715157151671517715187151971520715217152271523715247152571526715277152871529715307153171532715337153471535715367153771538715397154071541715427154371544715457154671547715487154971550715517155271553715547155571556715577155871559715607156171562715637156471565715667156771568715697157071571715727157371574715757157671577715787157971580715817158271583715847158571586715877158871589715907159171592715937159471595715967159771598715997160071601716027160371604716057160671607716087160971610716117161271613716147161571616716177161871619716207162171622716237162471625716267162771628716297163071631716327163371634716357163671637716387163971640716417164271643716447164571646716477164871649716507165171652716537165471655716567165771658716597166071661716627166371664716657166671667716687166971670716717167271673716747167571676716777167871679716807168171682716837168471685716867168771688716897169071691716927169371694716957169671697716987169971700717017170271703717047170571706717077170871709717107171171712717137171471715717167171771718717197172071721717227172371724717257172671727717287172971730717317173271733717347173571736717377173871739717407174171742717437174471745717467174771748717497175071751717527175371754717557175671757717587175971760717617176271763717647176571766717677176871769717707177171772717737177471775717767177771778717797178071781717827178371784717857178671787717887178971790717917179271793717947179571796717977179871799718007180171802718037180471805718067180771808718097181071811718127181371814718157181671817718187181971820718217182271823718247182571826718277182871829718307183171832718337183471835718367183771838718397184071841718427184371844718457184671847718487184971850718517185271853718547185571856718577185871859718607186171862718637186471865718667186771868718697187071871718727187371874718757187671877718787187971880718817188271883718847188571886718877188871889718907189171892718937189471895718967189771898718997190071901719027190371904719057190671907719087190971910719117191271913719147191571916719177191871919719207192171922719237192471925719267192771928719297193071931719327193371934719357193671937719387193971940719417194271943719447194571946719477194871949719507195171952719537195471955719567195771958719597196071961719627196371964719657196671967719687196971970719717197271973719747197571976719777197871979719807198171982719837198471985719867198771988719897199071991719927199371994719957199671997719987199972000720017200272003720047200572006720077200872009720107201172012720137201472015720167201772018720197202072021720227202372024720257202672027720287202972030720317203272033720347203572036720377203872039720407204172042720437204472045720467204772048720497205072051720527205372054720557205672057720587205972060720617206272063720647206572066720677206872069720707207172072720737207472075720767207772078720797208072081720827208372084720857208672087720887208972090720917209272093720947209572096720977209872099721007210172102721037210472105721067210772108721097211072111721127211372114721157211672117721187211972120721217212272123721247212572126721277212872129721307213172132721337213472135721367213772138721397214072141721427214372144721457214672147721487214972150721517215272153721547215572156721577215872159721607216172162721637216472165721667216772168721697217072171721727217372174721757217672177721787217972180721817218272183721847218572186721877218872189721907219172192721937219472195721967219772198721997220072201722027220372204722057220672207722087220972210722117221272213722147221572216722177221872219722207222172222722237222472225722267222772228722297223072231722327223372234722357223672237722387223972240722417224272243722447224572246722477224872249722507225172252722537225472255722567225772258722597226072261722627226372264722657226672267722687226972270722717227272273722747227572276722777227872279722807228172282722837228472285722867228772288722897229072291722927229372294722957229672297722987229972300723017230272303723047230572306723077230872309723107231172312723137231472315723167231772318723197232072321723227232372324723257232672327723287232972330723317233272333723347233572336723377233872339723407234172342723437234472345723467234772348723497235072351723527235372354723557235672357723587235972360723617236272363723647236572366723677236872369723707237172372723737237472375723767237772378723797238072381723827238372384723857238672387723887238972390723917239272393723947239572396723977239872399724007240172402724037240472405724067240772408724097241072411724127241372414724157241672417724187241972420724217242272423724247242572426724277242872429724307243172432724337243472435724367243772438724397244072441724427244372444724457244672447724487244972450724517245272453724547245572456724577245872459724607246172462724637246472465724667246772468724697247072471724727247372474724757247672477724787247972480724817248272483724847248572486724877248872489724907249172492724937249472495724967249772498724997250072501725027250372504725057250672507725087250972510725117251272513725147251572516725177251872519725207252172522725237252472525725267252772528725297253072531725327253372534725357253672537725387253972540725417254272543725447254572546725477254872549725507255172552725537255472555725567255772558725597256072561725627256372564725657256672567725687256972570725717257272573725747257572576725777257872579725807258172582725837258472585725867258772588725897259072591725927259372594725957259672597725987259972600726017260272603726047260572606726077260872609726107261172612726137261472615726167261772618726197262072621726227262372624726257262672627726287262972630726317263272633726347263572636726377263872639726407264172642726437264472645726467264772648726497265072651726527265372654726557265672657726587265972660726617266272663726647266572666726677266872669726707267172672726737267472675726767267772678726797268072681726827268372684726857268672687726887268972690726917269272693726947269572696726977269872699727007270172702727037270472705727067270772708727097271072711727127271372714727157271672717727187271972720727217272272723727247272572726727277272872729727307273172732727337273472735727367273772738727397274072741727427274372744727457274672747727487274972750727517275272753727547275572756727577275872759727607276172762727637276472765727667276772768727697277072771727727277372774727757277672777727787277972780727817278272783727847278572786727877278872789727907279172792727937279472795727967279772798727997280072801728027280372804728057280672807728087280972810728117281272813728147281572816728177281872819728207282172822728237282472825728267282772828728297283072831728327283372834728357283672837728387283972840728417284272843728447284572846728477284872849728507285172852728537285472855728567285772858728597286072861728627286372864728657286672867728687286972870728717287272873728747287572876728777287872879728807288172882728837288472885728867288772888728897289072891728927289372894728957289672897728987289972900729017290272903729047290572906729077290872909729107291172912729137291472915729167291772918729197292072921729227292372924729257292672927729287292972930729317293272933729347293572936729377293872939729407294172942729437294472945729467294772948729497295072951729527295372954729557295672957729587295972960729617296272963729647296572966729677296872969729707297172972729737297472975729767297772978729797298072981729827298372984729857298672987729887298972990729917299272993729947299572996729977299872999730007300173002730037300473005730067300773008730097301073011730127301373014730157301673017730187301973020730217302273023730247302573026730277302873029730307303173032730337303473035730367303773038730397304073041730427304373044730457304673047730487304973050730517305273053730547305573056730577305873059730607306173062730637306473065730667306773068730697307073071730727307373074730757307673077730787307973080730817308273083730847308573086730877308873089730907309173092730937309473095730967309773098730997310073101731027310373104731057310673107731087310973110731117311273113731147311573116731177311873119731207312173122731237312473125731267312773128731297313073131731327313373134731357313673137731387313973140731417314273143731447314573146731477314873149731507315173152731537315473155731567315773158731597316073161731627316373164731657316673167731687316973170731717317273173731747317573176731777317873179731807318173182731837318473185731867318773188731897319073191731927319373194731957319673197731987319973200732017320273203732047320573206732077320873209732107321173212732137321473215732167321773218732197322073221732227322373224732257322673227732287322973230732317323273233732347323573236732377323873239732407324173242732437324473245732467324773248732497325073251732527325373254732557325673257732587325973260732617326273263732647326573266732677326873269732707327173272732737327473275732767327773278732797328073281732827328373284732857328673287732887328973290732917329273293732947329573296732977329873299733007330173302733037330473305733067330773308733097331073311733127331373314733157331673317733187331973320733217332273323733247332573326733277332873329733307333173332733337333473335733367333773338733397334073341733427334373344733457334673347733487334973350733517335273353733547335573356733577335873359733607336173362733637336473365733667336773368733697337073371733727337373374733757337673377733787337973380733817338273383733847338573386733877338873389733907339173392733937339473395733967339773398733997340073401734027340373404734057340673407734087340973410734117341273413734147341573416734177341873419734207342173422734237342473425734267342773428734297343073431734327343373434734357343673437734387343973440734417344273443734447344573446734477344873449734507345173452734537345473455734567345773458734597346073461734627346373464734657346673467734687346973470734717347273473734747347573476734777347873479734807348173482734837348473485734867348773488734897349073491734927349373494734957349673497734987349973500735017350273503735047350573506735077350873509735107351173512735137351473515735167351773518735197352073521735227352373524735257352673527735287352973530735317353273533735347353573536735377353873539735407354173542735437354473545735467354773548735497355073551735527355373554735557355673557735587355973560735617356273563735647356573566735677356873569735707357173572735737357473575735767357773578735797358073581735827358373584735857358673587735887358973590735917359273593735947359573596735977359873599736007360173602736037360473605736067360773608736097361073611736127361373614736157361673617736187361973620736217362273623736247362573626736277362873629736307363173632736337363473635736367363773638736397364073641736427364373644736457364673647736487364973650736517365273653736547365573656736577365873659736607366173662736637366473665736667366773668736697367073671736727367373674736757367673677736787367973680736817368273683736847368573686736877368873689736907369173692736937369473695736967369773698736997370073701737027370373704737057370673707737087370973710737117371273713737147371573716737177371873719737207372173722737237372473725737267372773728737297373073731737327373373734737357373673737737387373973740737417374273743737447374573746737477374873749737507375173752737537375473755737567375773758737597376073761737627376373764737657376673767737687376973770737717377273773737747377573776737777377873779737807378173782737837378473785737867378773788737897379073791737927379373794737957379673797737987379973800738017380273803738047380573806738077380873809738107381173812738137381473815738167381773818738197382073821738227382373824738257382673827738287382973830738317383273833738347383573836738377383873839738407384173842738437384473845738467384773848738497385073851738527385373854738557385673857738587385973860738617386273863738647386573866738677386873869738707387173872738737387473875738767387773878738797388073881738827388373884738857388673887738887388973890738917389273893738947389573896738977389873899739007390173902739037390473905739067390773908739097391073911739127391373914739157391673917739187391973920739217392273923739247392573926739277392873929739307393173932739337393473935739367393773938739397394073941739427394373944739457394673947739487394973950739517395273953739547395573956739577395873959739607396173962739637396473965739667396773968739697397073971739727397373974739757397673977739787397973980739817398273983739847398573986739877398873989739907399173992739937399473995739967399773998739997400074001740027400374004740057400674007740087400974010740117401274013740147401574016740177401874019740207402174022740237402474025740267402774028740297403074031740327403374034740357403674037740387403974040740417404274043740447404574046740477404874049740507405174052740537405474055740567405774058740597406074061740627406374064740657406674067740687406974070740717407274073740747407574076740777407874079740807408174082740837408474085740867408774088740897409074091740927409374094740957409674097740987409974100741017410274103741047410574106741077410874109741107411174112741137411474115741167411774118741197412074121741227412374124741257412674127741287412974130741317413274133741347413574136741377413874139741407414174142741437414474145741467414774148741497415074151741527415374154741557415674157741587415974160741617416274163741647416574166741677416874169741707417174172741737417474175741767417774178741797418074181741827418374184741857418674187741887418974190741917419274193741947419574196741977419874199742007420174202742037420474205742067420774208742097421074211742127421374214742157421674217742187421974220742217422274223742247422574226742277422874229742307423174232742337423474235742367423774238742397424074241742427424374244742457424674247742487424974250742517425274253742547425574256742577425874259742607426174262742637426474265742667426774268742697427074271742727427374274742757427674277742787427974280742817428274283742847428574286742877428874289742907429174292742937429474295742967429774298742997430074301743027430374304743057430674307743087430974310743117431274313743147431574316743177431874319743207432174322743237432474325743267432774328743297433074331743327433374334743357433674337743387433974340743417434274343743447434574346743477434874349743507435174352743537435474355743567435774358743597436074361743627436374364743657436674367743687436974370743717437274373743747437574376743777437874379743807438174382743837438474385743867438774388743897439074391743927439374394743957439674397743987439974400744017440274403744047440574406744077440874409744107441174412744137441474415744167441774418744197442074421744227442374424744257442674427744287442974430744317443274433744347443574436744377443874439744407444174442744437444474445744467444774448744497445074451744527445374454744557445674457744587445974460744617446274463744647446574466744677446874469744707447174472744737447474475744767447774478744797448074481744827448374484744857448674487744887448974490744917449274493744947449574496744977449874499745007450174502745037450474505745067450774508745097451074511745127451374514745157451674517745187451974520745217452274523745247452574526745277452874529745307453174532745337453474535745367453774538745397454074541745427454374544745457454674547745487454974550745517455274553745547455574556745577455874559745607456174562745637456474565745667456774568745697457074571745727457374574745757457674577745787457974580745817458274583745847458574586745877458874589745907459174592745937459474595745967459774598745997460074601746027460374604746057460674607746087460974610746117461274613746147461574616746177461874619746207462174622746237462474625746267462774628746297463074631746327463374634746357463674637746387463974640746417464274643746447464574646746477464874649746507465174652746537465474655746567465774658746597466074661746627466374664746657466674667746687466974670746717467274673746747467574676746777467874679746807468174682746837468474685746867468774688746897469074691746927469374694746957469674697746987469974700747017470274703747047470574706747077470874709747107471174712747137471474715747167471774718747197472074721747227472374724747257472674727747287472974730747317473274733747347473574736747377473874739747407474174742747437474474745747467474774748747497475074751747527475374754747557475674757747587475974760747617476274763747647476574766747677476874769747707477174772747737477474775747767477774778747797478074781747827478374784747857478674787747887478974790747917479274793747947479574796747977479874799748007480174802748037480474805748067480774808748097481074811748127481374814748157481674817748187481974820748217482274823748247482574826748277482874829748307483174832748337483474835748367483774838748397484074841748427484374844748457484674847748487484974850748517485274853748547485574856748577485874859748607486174862748637486474865748667486774868748697487074871748727487374874748757487674877748787487974880748817488274883748847488574886748877488874889748907489174892748937489474895748967489774898748997490074901749027490374904749057490674907749087490974910749117491274913749147491574916749177491874919749207492174922749237492474925749267492774928749297493074931749327493374934749357493674937749387493974940749417494274943749447494574946749477494874949749507495174952749537495474955749567495774958749597496074961749627496374964749657496674967749687496974970749717497274973749747497574976749777497874979749807498174982749837498474985749867498774988749897499074991749927499374994749957499674997749987499975000750017500275003750047500575006750077500875009750107501175012750137501475015750167501775018750197502075021750227502375024750257502675027750287502975030750317503275033750347503575036750377503875039750407504175042750437504475045750467504775048750497505075051750527505375054750557505675057750587505975060750617506275063750647506575066750677506875069750707507175072750737507475075750767507775078750797508075081750827508375084750857508675087750887508975090750917509275093750947509575096750977509875099751007510175102751037510475105751067510775108751097511075111751127511375114751157511675117751187511975120751217512275123751247512575126751277512875129751307513175132751337513475135751367513775138751397514075141751427514375144751457514675147751487514975150751517515275153751547515575156751577515875159751607516175162751637516475165751667516775168751697517075171751727517375174751757517675177751787517975180751817518275183751847518575186751877518875189751907519175192751937519475195751967519775198751997520075201752027520375204752057520675207752087520975210752117521275213752147521575216752177521875219752207522175222752237522475225752267522775228752297523075231752327523375234752357523675237752387523975240752417524275243752447524575246752477524875249752507525175252752537525475255752567525775258752597526075261752627526375264752657526675267752687526975270752717527275273752747527575276752777527875279752807528175282752837528475285752867528775288752897529075291752927529375294752957529675297752987529975300753017530275303753047530575306753077530875309753107531175312753137531475315753167531775318753197532075321753227532375324753257532675327753287532975330753317533275333753347533575336753377533875339753407534175342753437534475345753467534775348753497535075351753527535375354753557535675357753587535975360753617536275363753647536575366753677536875369753707537175372753737537475375753767537775378753797538075381753827538375384753857538675387753887538975390753917539275393753947539575396753977539875399754007540175402754037540475405754067540775408754097541075411754127541375414754157541675417754187541975420754217542275423754247542575426754277542875429754307543175432754337543475435754367543775438754397544075441754427544375444754457544675447754487544975450754517545275453754547545575456754577545875459754607546175462754637546475465754667546775468754697547075471754727547375474754757547675477754787547975480754817548275483754847548575486754877548875489754907549175492754937549475495754967549775498754997550075501755027550375504755057550675507755087550975510755117551275513755147551575516755177551875519755207552175522755237552475525755267552775528755297553075531755327553375534755357553675537755387553975540755417554275543755447554575546755477554875549755507555175552755537555475555755567555775558755597556075561755627556375564755657556675567755687556975570755717557275573755747557575576755777557875579755807558175582755837558475585755867558775588755897559075591755927559375594755957559675597755987559975600756017560275603756047560575606756077560875609756107561175612756137561475615756167561775618756197562075621756227562375624756257562675627756287562975630756317563275633756347563575636756377563875639756407564175642756437564475645756467564775648756497565075651756527565375654756557565675657756587565975660756617566275663756647566575666756677566875669756707567175672756737567475675756767567775678756797568075681756827568375684756857568675687756887568975690756917569275693756947569575696756977569875699757007570175702757037570475705757067570775708757097571075711757127571375714757157571675717757187571975720757217572275723757247572575726757277572875729757307573175732757337573475735757367573775738757397574075741757427574375744757457574675747757487574975750757517575275753757547575575756757577575875759757607576175762757637576475765757667576775768757697577075771757727577375774757757577675777757787577975780757817578275783757847578575786757877578875789757907579175792757937579475795757967579775798757997580075801758027580375804758057580675807758087580975810758117581275813758147581575816758177581875819758207582175822758237582475825758267582775828758297583075831758327583375834758357583675837758387583975840758417584275843758447584575846758477584875849758507585175852758537585475855758567585775858758597586075861758627586375864758657586675867758687586975870758717587275873758747587575876758777587875879758807588175882758837588475885758867588775888758897589075891758927589375894758957589675897758987589975900759017590275903759047590575906759077590875909759107591175912759137591475915759167591775918759197592075921759227592375924759257592675927759287592975930759317593275933759347593575936759377593875939759407594175942759437594475945759467594775948759497595075951759527595375954759557595675957759587595975960759617596275963759647596575966759677596875969759707597175972759737597475975759767597775978759797598075981759827598375984759857598675987759887598975990759917599275993759947599575996759977599875999760007600176002760037600476005760067600776008760097601076011760127601376014760157601676017760187601976020760217602276023760247602576026760277602876029760307603176032760337603476035760367603776038760397604076041760427604376044760457604676047760487604976050760517605276053760547605576056760577605876059760607606176062760637606476065760667606776068760697607076071760727607376074760757607676077760787607976080760817608276083760847608576086760877608876089760907609176092760937609476095760967609776098760997610076101761027610376104761057610676107761087610976110761117611276113761147611576116761177611876119761207612176122761237612476125761267612776128761297613076131761327613376134761357613676137761387613976140761417614276143761447614576146761477614876149761507615176152761537615476155761567615776158761597616076161761627616376164761657616676167761687616976170761717617276173761747617576176761777617876179761807618176182761837618476185761867618776188761897619076191761927619376194761957619676197761987619976200762017620276203762047620576206762077620876209762107621176212762137621476215762167621776218762197622076221762227622376224762257622676227762287622976230762317623276233762347623576236762377623876239762407624176242762437624476245762467624776248762497625076251762527625376254762557625676257762587625976260762617626276263762647626576266762677626876269762707627176272762737627476275762767627776278762797628076281762827628376284762857628676287762887628976290762917629276293762947629576296762977629876299763007630176302763037630476305763067630776308763097631076311763127631376314763157631676317763187631976320763217632276323763247632576326763277632876329763307633176332763337633476335763367633776338763397634076341763427634376344763457634676347763487634976350763517635276353763547635576356763577635876359763607636176362763637636476365763667636776368763697637076371763727637376374763757637676377763787637976380763817638276383763847638576386763877638876389763907639176392763937639476395763967639776398763997640076401764027640376404764057640676407764087640976410764117641276413764147641576416764177641876419764207642176422764237642476425764267642776428764297643076431764327643376434764357643676437764387643976440764417644276443764447644576446764477644876449764507645176452764537645476455764567645776458764597646076461764627646376464764657646676467764687646976470764717647276473764747647576476764777647876479764807648176482764837648476485764867648776488764897649076491764927649376494764957649676497764987649976500765017650276503765047650576506765077650876509765107651176512765137651476515765167651776518765197652076521765227652376524765257652676527765287652976530765317653276533765347653576536765377653876539765407654176542765437654476545765467654776548765497655076551765527655376554765557655676557765587655976560765617656276563765647656576566765677656876569765707657176572765737657476575765767657776578765797658076581765827658376584765857658676587765887658976590765917659276593765947659576596765977659876599766007660176602766037660476605766067660776608766097661076611766127661376614766157661676617766187661976620766217662276623766247662576626766277662876629766307663176632766337663476635766367663776638766397664076641766427664376644766457664676647766487664976650766517665276653766547665576656766577665876659766607666176662766637666476665766667666776668766697667076671766727667376674766757667676677766787667976680766817668276683766847668576686766877668876689766907669176692766937669476695766967669776698766997670076701767027670376704767057670676707767087670976710767117671276713767147671576716767177671876719767207672176722767237672476725767267672776728767297673076731767327673376734767357673676737767387673976740767417674276743767447674576746767477674876749767507675176752767537675476755767567675776758767597676076761767627676376764767657676676767767687676976770767717677276773767747677576776767777677876779767807678176782767837678476785767867678776788767897679076791767927679376794767957679676797767987679976800768017680276803768047680576806768077680876809768107681176812768137681476815768167681776818768197682076821768227682376824768257682676827768287682976830768317683276833768347683576836768377683876839768407684176842768437684476845768467684776848768497685076851768527685376854768557685676857768587685976860768617686276863768647686576866768677686876869768707687176872768737687476875768767687776878768797688076881768827688376884768857688676887768887688976890768917689276893768947689576896768977689876899769007690176902769037690476905769067690776908769097691076911769127691376914769157691676917769187691976920769217692276923769247692576926769277692876929769307693176932769337693476935769367693776938769397694076941769427694376944769457694676947769487694976950769517695276953769547695576956769577695876959769607696176962769637696476965769667696776968769697697076971769727697376974769757697676977769787697976980769817698276983769847698576986769877698876989769907699176992769937699476995769967699776998769997700077001770027700377004770057700677007770087700977010770117701277013770147701577016770177701877019770207702177022770237702477025770267702777028770297703077031770327703377034770357703677037770387703977040770417704277043770447704577046770477704877049770507705177052770537705477055770567705777058770597706077061770627706377064770657706677067770687706977070770717707277073770747707577076770777707877079770807708177082770837708477085770867708777088770897709077091770927709377094770957709677097770987709977100771017710277103771047710577106771077710877109771107711177112771137711477115771167711777118771197712077121771227712377124771257712677127771287712977130771317713277133771347713577136771377713877139771407714177142771437714477145771467714777148771497715077151771527715377154771557715677157771587715977160771617716277163771647716577166771677716877169771707717177172771737717477175771767717777178771797718077181771827718377184771857718677187771887718977190771917719277193771947719577196771977719877199772007720177202772037720477205772067720777208772097721077211772127721377214772157721677217772187721977220772217722277223772247722577226772277722877229772307723177232772337723477235772367723777238772397724077241772427724377244772457724677247772487724977250772517725277253772547725577256772577725877259772607726177262772637726477265772667726777268772697727077271772727727377274772757727677277772787727977280772817728277283772847728577286772877728877289772907729177292772937729477295772967729777298772997730077301773027730377304773057730677307773087730977310773117731277313773147731577316773177731877319773207732177322773237732477325773267732777328773297733077331773327733377334773357733677337773387733977340773417734277343773447734577346773477734877349773507735177352773537735477355773567735777358773597736077361773627736377364773657736677367773687736977370773717737277373773747737577376773777737877379773807738177382773837738477385773867738777388773897739077391773927739377394773957739677397773987739977400774017740277403774047740577406774077740877409774107741177412774137741477415774167741777418774197742077421774227742377424774257742677427774287742977430774317743277433774347743577436774377743877439774407744177442774437744477445774467744777448774497745077451774527745377454774557745677457774587745977460774617746277463774647746577466774677746877469774707747177472774737747477475774767747777478774797748077481774827748377484774857748677487774887748977490774917749277493774947749577496774977749877499775007750177502775037750477505775067750777508775097751077511775127751377514775157751677517775187751977520775217752277523775247752577526775277752877529775307753177532775337753477535775367753777538775397754077541775427754377544775457754677547775487754977550775517755277553775547755577556775577755877559775607756177562775637756477565775667756777568775697757077571775727757377574775757757677577775787757977580775817758277583775847758577586775877758877589775907759177592775937759477595775967759777598775997760077601776027760377604776057760677607776087760977610776117761277613776147761577616776177761877619776207762177622776237762477625776267762777628776297763077631776327763377634776357763677637776387763977640776417764277643776447764577646776477764877649776507765177652776537765477655776567765777658776597766077661776627766377664776657766677667776687766977670776717767277673776747767577676776777767877679776807768177682776837768477685776867768777688776897769077691776927769377694776957769677697776987769977700777017770277703777047770577706777077770877709777107771177712777137771477715777167771777718777197772077721777227772377724777257772677727777287772977730777317773277733777347773577736777377773877739777407774177742777437774477745777467774777748777497775077751777527775377754777557775677757777587775977760777617776277763777647776577766777677776877769777707777177772777737777477775777767777777778777797778077781777827778377784777857778677787777887778977790777917779277793777947779577796777977779877799778007780177802778037780477805778067780777808778097781077811778127781377814778157781677817778187781977820778217782277823778247782577826778277782877829778307783177832778337783477835778367783777838778397784077841778427784377844778457784677847778487784977850778517785277853778547785577856778577785877859778607786177862778637786477865778667786777868778697787077871778727787377874778757787677877778787787977880778817788277883778847788577886778877788877889778907789177892778937789477895778967789777898778997790077901779027790377904779057790677907779087790977910779117791277913779147791577916779177791877919779207792177922779237792477925779267792777928779297793077931779327793377934779357793677937779387793977940779417794277943779447794577946779477794877949779507795177952779537795477955779567795777958779597796077961779627796377964779657796677967779687796977970779717797277973779747797577976779777797877979779807798177982779837798477985779867798777988779897799077991779927799377994779957799677997779987799978000780017800278003780047800578006780077800878009780107801178012780137801478015780167801778018780197802078021780227802378024780257802678027780287802978030780317803278033780347803578036780377803878039780407804178042780437804478045780467804778048780497805078051780527805378054780557805678057780587805978060780617806278063780647806578066780677806878069780707807178072780737807478075780767807778078780797808078081780827808378084780857808678087780887808978090780917809278093780947809578096780977809878099781007810178102781037810478105781067810778108781097811078111781127811378114781157811678117781187811978120781217812278123781247812578126781277812878129781307813178132781337813478135781367813778138781397814078141781427814378144781457814678147781487814978150781517815278153781547815578156781577815878159781607816178162781637816478165781667816778168781697817078171781727817378174781757817678177781787817978180781817818278183781847818578186781877818878189781907819178192781937819478195781967819778198781997820078201782027820378204782057820678207782087820978210782117821278213782147821578216782177821878219782207822178222782237822478225782267822778228782297823078231782327823378234782357823678237782387823978240782417824278243782447824578246782477824878249782507825178252782537825478255782567825778258782597826078261782627826378264782657826678267782687826978270782717827278273782747827578276782777827878279782807828178282782837828478285782867828778288782897829078291782927829378294782957829678297782987829978300783017830278303783047830578306783077830878309783107831178312783137831478315783167831778318783197832078321783227832378324783257832678327783287832978330783317833278333783347833578336783377833878339783407834178342783437834478345783467834778348783497835078351783527835378354783557835678357783587835978360783617836278363783647836578366783677836878369783707837178372783737837478375783767837778378783797838078381783827838378384783857838678387783887838978390783917839278393783947839578396783977839878399784007840178402784037840478405784067840778408784097841078411784127841378414784157841678417784187841978420784217842278423784247842578426784277842878429784307843178432784337843478435784367843778438784397844078441784427844378444784457844678447784487844978450784517845278453784547845578456784577845878459784607846178462784637846478465784667846778468784697847078471784727847378474784757847678477784787847978480784817848278483784847848578486784877848878489784907849178492784937849478495784967849778498784997850078501785027850378504785057850678507785087850978510785117851278513785147851578516785177851878519785207852178522785237852478525785267852778528785297853078531785327853378534785357853678537785387853978540785417854278543785447854578546785477854878549785507855178552785537855478555785567855778558785597856078561785627856378564785657856678567785687856978570785717857278573785747857578576785777857878579785807858178582785837858478585785867858778588785897859078591785927859378594785957859678597785987859978600786017860278603786047860578606786077860878609786107861178612786137861478615786167861778618786197862078621786227862378624786257862678627786287862978630786317863278633786347863578636786377863878639786407864178642786437864478645786467864778648786497865078651786527865378654786557865678657786587865978660786617866278663786647866578666786677866878669786707867178672786737867478675786767867778678786797868078681786827868378684786857868678687786887868978690786917869278693786947869578696786977869878699787007870178702787037870478705787067870778708787097871078711787127871378714787157871678717787187871978720787217872278723787247872578726787277872878729787307873178732787337873478735787367873778738787397874078741787427874378744787457874678747787487874978750787517875278753787547875578756787577875878759787607876178762787637876478765787667876778768787697877078771787727877378774787757877678777787787877978780787817878278783787847878578786787877878878789787907879178792787937879478795787967879778798787997880078801788027880378804788057880678807788087880978810788117881278813788147881578816788177881878819788207882178822788237882478825788267882778828788297883078831788327883378834788357883678837788387883978840788417884278843788447884578846788477884878849788507885178852788537885478855788567885778858788597886078861788627886378864788657886678867788687886978870788717887278873788747887578876788777887878879788807888178882788837888478885788867888778888788897889078891788927889378894788957889678897788987889978900789017890278903789047890578906789077890878909789107891178912789137891478915789167891778918789197892078921789227892378924789257892678927789287892978930789317893278933789347893578936789377893878939789407894178942789437894478945789467894778948789497895078951789527895378954789557895678957789587895978960789617896278963789647896578966789677896878969789707897178972789737897478975789767897778978789797898078981789827898378984789857898678987789887898978990789917899278993789947899578996789977899878999790007900179002790037900479005790067900779008790097901079011790127901379014790157901679017790187901979020790217902279023790247902579026790277902879029790307903179032790337903479035790367903779038790397904079041790427904379044790457904679047790487904979050790517905279053790547905579056790577905879059790607906179062790637906479065790667906779068790697907079071790727907379074790757907679077790787907979080790817908279083790847908579086790877908879089790907909179092790937909479095790967909779098790997910079101791027910379104791057910679107791087910979110791117911279113791147911579116791177911879119791207912179122791237912479125791267912779128791297913079131791327913379134791357913679137791387913979140791417914279143791447914579146791477914879149791507915179152791537915479155791567915779158791597916079161791627916379164791657916679167791687916979170791717917279173791747917579176791777917879179791807918179182791837918479185791867918779188791897919079191791927919379194791957919679197791987919979200792017920279203792047920579206792077920879209792107921179212792137921479215792167921779218792197922079221792227922379224792257922679227792287922979230792317923279233792347923579236792377923879239792407924179242792437924479245792467924779248792497925079251792527925379254792557925679257792587925979260792617926279263792647926579266792677926879269792707927179272792737927479275792767927779278792797928079281792827928379284792857928679287792887928979290792917929279293792947929579296792977929879299793007930179302793037930479305793067930779308793097931079311793127931379314793157931679317793187931979320793217932279323793247932579326793277932879329793307933179332793337933479335793367933779338793397934079341793427934379344793457934679347793487934979350793517935279353793547935579356793577935879359793607936179362793637936479365793667936779368793697937079371793727937379374793757937679377793787937979380793817938279383793847938579386793877938879389793907939179392793937939479395793967939779398793997940079401794027940379404794057940679407794087940979410794117941279413794147941579416794177941879419794207942179422794237942479425794267942779428794297943079431794327943379434794357943679437794387943979440794417944279443794447944579446794477944879449794507945179452794537945479455794567945779458794597946079461794627946379464794657946679467794687946979470794717947279473794747947579476794777947879479794807948179482794837948479485794867948779488794897949079491794927949379494794957949679497794987949979500795017950279503795047950579506795077950879509795107951179512795137951479515795167951779518795197952079521795227952379524795257952679527795287952979530795317953279533795347953579536795377953879539795407954179542795437954479545795467954779548795497955079551795527955379554795557955679557795587955979560795617956279563795647956579566795677956879569795707957179572795737957479575795767957779578795797958079581795827958379584795857958679587795887958979590795917959279593795947959579596795977959879599796007960179602796037960479605796067960779608796097961079611796127961379614796157961679617796187961979620796217962279623796247962579626796277962879629796307963179632796337963479635796367963779638796397964079641796427964379644796457964679647796487964979650796517965279653796547965579656796577965879659796607966179662796637966479665796667966779668796697967079671796727967379674796757967679677796787967979680796817968279683796847968579686796877968879689796907969179692796937969479695796967969779698796997970079701797027970379704797057970679707797087970979710797117971279713797147971579716797177971879719797207972179722797237972479725797267972779728797297973079731797327973379734797357973679737797387973979740797417974279743797447974579746797477974879749797507975179752797537975479755797567975779758797597976079761797627976379764797657976679767797687976979770797717977279773797747977579776797777977879779797807978179782797837978479785797867978779788797897979079791797927979379794797957979679797797987979979800798017980279803798047980579806798077980879809798107981179812798137981479815798167981779818798197982079821798227982379824798257982679827798287982979830798317983279833798347983579836798377983879839798407984179842798437984479845798467984779848798497985079851798527985379854798557985679857798587985979860798617986279863798647986579866798677986879869798707987179872798737987479875798767987779878798797988079881798827988379884798857988679887798887988979890798917989279893798947989579896798977989879899799007990179902799037990479905799067990779908799097991079911799127991379914799157991679917799187991979920799217992279923799247992579926799277992879929799307993179932799337993479935799367993779938799397994079941799427994379944799457994679947799487994979950799517995279953799547995579956799577995879959799607996179962799637996479965799667996779968799697997079971799727997379974799757997679977799787997979980799817998279983799847998579986799877998879989799907999179992799937999479995799967999779998799998000080001800028000380004800058000680007800088000980010800118001280013800148001580016800178001880019800208002180022800238002480025800268002780028800298003080031800328003380034800358003680037800388003980040800418004280043800448004580046800478004880049800508005180052800538005480055800568005780058800598006080061800628006380064800658006680067800688006980070800718007280073800748007580076800778007880079800808008180082800838008480085800868008780088800898009080091800928009380094800958009680097800988009980100801018010280103801048010580106801078010880109801108011180112801138011480115801168011780118801198012080121801228012380124801258012680127801288012980130801318013280133801348013580136801378013880139801408014180142801438014480145801468014780148801498015080151801528015380154801558015680157801588015980160801618016280163801648016580166801678016880169801708017180172801738017480175801768017780178801798018080181801828018380184801858018680187801888018980190801918019280193801948019580196801978019880199802008020180202802038020480205802068020780208802098021080211802128021380214802158021680217802188021980220802218022280223802248022580226802278022880229802308023180232802338023480235802368023780238802398024080241802428024380244802458024680247802488024980250802518025280253802548025580256802578025880259802608026180262802638026480265802668026780268802698027080271802728027380274802758027680277802788027980280802818028280283802848028580286802878028880289802908029180292802938029480295802968029780298802998030080301803028030380304803058030680307803088030980310803118031280313803148031580316803178031880319803208032180322803238032480325803268032780328803298033080331803328033380334803358033680337803388033980340803418034280343803448034580346803478034880349803508035180352803538035480355803568035780358803598036080361803628036380364803658036680367803688036980370803718037280373803748037580376803778037880379803808038180382803838038480385803868038780388803898039080391803928039380394803958039680397803988039980400804018040280403804048040580406804078040880409804108041180412804138041480415804168041780418804198042080421804228042380424804258042680427804288042980430804318043280433804348043580436804378043880439804408044180442804438044480445804468044780448804498045080451804528045380454804558045680457804588045980460804618046280463804648046580466804678046880469804708047180472804738047480475804768047780478804798048080481804828048380484804858048680487804888048980490804918049280493804948049580496804978049880499805008050180502805038050480505805068050780508805098051080511805128051380514805158051680517805188051980520805218052280523805248052580526805278052880529805308053180532805338053480535805368053780538805398054080541805428054380544805458054680547805488054980550805518055280553805548055580556805578055880559805608056180562805638056480565805668056780568805698057080571805728057380574805758057680577805788057980580805818058280583805848058580586805878058880589805908059180592805938059480595805968059780598805998060080601806028060380604806058060680607806088060980610806118061280613806148061580616806178061880619806208062180622806238062480625806268062780628806298063080631806328063380634806358063680637806388063980640806418064280643806448064580646806478064880649806508065180652806538065480655806568065780658806598066080661806628066380664806658066680667806688066980670806718067280673806748067580676806778067880679806808068180682806838068480685806868068780688806898069080691806928069380694806958069680697806988069980700807018070280703807048070580706807078070880709807108071180712807138071480715807168071780718807198072080721807228072380724807258072680727807288072980730807318073280733807348073580736807378073880739807408074180742807438074480745807468074780748807498075080751807528075380754807558075680757807588075980760807618076280763807648076580766807678076880769807708077180772807738077480775807768077780778807798078080781807828078380784807858078680787807888078980790807918079280793807948079580796807978079880799808008080180802808038080480805808068080780808808098081080811808128081380814808158081680817808188081980820808218082280823808248082580826808278082880829808308083180832808338083480835808368083780838808398084080841808428084380844808458084680847808488084980850808518085280853808548085580856808578085880859808608086180862808638086480865808668086780868808698087080871808728087380874808758087680877808788087980880808818088280883808848088580886808878088880889808908089180892808938089480895808968089780898808998090080901809028090380904809058090680907809088090980910809118091280913809148091580916809178091880919809208092180922809238092480925809268092780928809298093080931809328093380934809358093680937809388093980940809418094280943809448094580946809478094880949809508095180952809538095480955809568095780958809598096080961809628096380964809658096680967809688096980970809718097280973809748097580976809778097880979809808098180982809838098480985809868098780988809898099080991809928099380994809958099680997809988099981000810018100281003810048100581006810078100881009810108101181012810138101481015810168101781018810198102081021810228102381024810258102681027810288102981030810318103281033810348103581036810378103881039810408104181042810438104481045810468104781048810498105081051810528105381054810558105681057810588105981060810618106281063810648106581066810678106881069810708107181072810738107481075810768107781078810798108081081810828108381084810858108681087810888108981090810918109281093810948109581096810978109881099811008110181102811038110481105811068110781108811098111081111811128111381114811158111681117811188111981120811218112281123811248112581126811278112881129811308113181132811338113481135811368113781138811398114081141811428114381144811458114681147811488114981150811518115281153811548115581156811578115881159811608116181162811638116481165811668116781168811698117081171811728117381174811758117681177811788117981180811818118281183811848118581186811878118881189811908119181192811938119481195811968119781198811998120081201812028120381204812058120681207812088120981210812118121281213812148121581216812178121881219812208122181222812238122481225812268122781228812298123081231812328123381234812358123681237812388123981240812418124281243812448124581246812478124881249812508125181252812538125481255812568125781258812598126081261812628126381264812658126681267812688126981270812718127281273812748127581276812778127881279812808128181282812838128481285812868128781288812898129081291812928129381294812958129681297812988129981300813018130281303813048130581306813078130881309813108131181312813138131481315813168131781318813198132081321813228132381324813258132681327813288132981330813318133281333813348133581336813378133881339813408134181342813438134481345813468134781348813498135081351813528135381354813558135681357813588135981360813618136281363813648136581366813678136881369813708137181372813738137481375813768137781378813798138081381813828138381384813858138681387813888138981390813918139281393813948139581396813978139881399814008140181402814038140481405814068140781408814098141081411814128141381414814158141681417814188141981420814218142281423814248142581426814278142881429814308143181432814338143481435814368143781438814398144081441814428144381444814458144681447814488144981450814518145281453814548145581456814578145881459814608146181462814638146481465814668146781468814698147081471814728147381474814758147681477814788147981480814818148281483814848148581486814878148881489814908149181492814938149481495814968149781498814998150081501815028150381504815058150681507815088150981510815118151281513815148151581516815178151881519815208152181522815238152481525815268152781528815298153081531815328153381534815358153681537815388153981540815418154281543815448154581546815478154881549815508155181552815538155481555815568155781558815598156081561815628156381564815658156681567815688156981570815718157281573815748157581576815778157881579815808158181582815838158481585815868158781588815898159081591815928159381594815958159681597815988159981600816018160281603816048160581606816078160881609816108161181612816138161481615816168161781618816198162081621816228162381624816258162681627816288162981630816318163281633816348163581636816378163881639816408164181642816438164481645816468164781648816498165081651816528165381654816558165681657816588165981660816618166281663816648166581666816678166881669816708167181672816738167481675816768167781678816798168081681816828168381684816858168681687816888168981690816918169281693816948169581696816978169881699817008170181702817038170481705817068170781708817098171081711817128171381714817158171681717817188171981720817218172281723817248172581726817278172881729817308173181732817338173481735817368173781738817398174081741817428174381744817458174681747817488174981750817518175281753817548175581756817578175881759817608176181762817638176481765817668176781768817698177081771817728177381774817758177681777817788177981780817818178281783817848178581786817878178881789817908179181792817938179481795817968179781798817998180081801818028180381804818058180681807818088180981810818118181281813818148181581816818178181881819818208182181822818238182481825818268182781828818298183081831818328183381834818358183681837818388183981840818418184281843818448184581846818478184881849818508185181852818538185481855818568185781858818598186081861818628186381864818658186681867818688186981870818718187281873818748187581876818778187881879818808188181882818838188481885818868188781888818898189081891818928189381894818958189681897818988189981900819018190281903819048190581906819078190881909819108191181912819138191481915819168191781918819198192081921819228192381924819258192681927819288192981930819318193281933819348193581936819378193881939819408194181942819438194481945819468194781948819498195081951819528195381954819558195681957819588195981960819618196281963819648196581966819678196881969819708197181972819738197481975819768197781978819798198081981819828198381984819858198681987819888198981990819918199281993819948199581996819978199881999820008200182002820038200482005820068200782008820098201082011820128201382014820158201682017820188201982020820218202282023820248202582026820278202882029820308203182032820338203482035820368203782038820398204082041820428204382044820458204682047820488204982050820518205282053820548205582056820578205882059820608206182062820638206482065820668206782068820698207082071820728207382074820758207682077820788207982080820818208282083820848208582086820878208882089820908209182092820938209482095820968209782098820998210082101821028210382104821058210682107821088210982110821118211282113821148211582116821178211882119821208212182122821238212482125821268212782128821298213082131821328213382134821358213682137821388213982140821418214282143821448214582146821478214882149821508215182152821538215482155821568215782158821598216082161821628216382164821658216682167821688216982170821718217282173821748217582176821778217882179821808218182182821838218482185821868218782188821898219082191821928219382194821958219682197821988219982200822018220282203822048220582206822078220882209822108221182212822138221482215822168221782218822198222082221822228222382224822258222682227822288222982230822318223282233822348223582236822378223882239822408224182242822438224482245822468224782248822498225082251822528225382254822558225682257822588225982260822618226282263822648226582266822678226882269822708227182272822738227482275822768227782278822798228082281822828228382284822858228682287822888228982290822918229282293822948229582296822978229882299823008230182302823038230482305823068230782308823098231082311823128231382314823158231682317823188231982320823218232282323823248232582326823278232882329823308233182332823338233482335823368233782338823398234082341823428234382344823458234682347823488234982350823518235282353823548235582356823578235882359823608236182362823638236482365823668236782368823698237082371823728237382374823758237682377823788237982380823818238282383823848238582386823878238882389823908239182392823938239482395823968239782398823998240082401824028240382404824058240682407824088240982410824118241282413824148241582416824178241882419824208242182422824238242482425824268242782428824298243082431824328243382434824358243682437824388243982440824418244282443824448244582446824478244882449824508245182452824538245482455824568245782458824598246082461824628246382464824658246682467824688246982470824718247282473824748247582476824778247882479824808248182482824838248482485824868248782488824898249082491824928249382494824958249682497824988249982500825018250282503825048250582506825078250882509825108251182512825138251482515825168251782518825198252082521825228252382524825258252682527825288252982530825318253282533825348253582536825378253882539825408254182542825438254482545825468254782548825498255082551825528255382554825558255682557825588255982560825618256282563825648256582566825678256882569825708257182572825738257482575825768257782578825798258082581825828258382584825858258682587825888258982590825918259282593825948259582596825978259882599826008260182602826038260482605826068260782608826098261082611826128261382614826158261682617826188261982620826218262282623826248262582626826278262882629826308263182632826338263482635826368263782638826398264082641826428264382644826458264682647826488264982650826518265282653826548265582656826578265882659826608266182662826638266482665826668266782668826698267082671826728267382674826758267682677826788267982680826818268282683826848268582686826878268882689826908269182692826938269482695826968269782698826998270082701827028270382704827058270682707827088270982710827118271282713827148271582716827178271882719827208272182722827238272482725827268272782728827298273082731827328273382734827358273682737827388273982740827418274282743827448274582746827478274882749827508275182752827538275482755827568275782758827598276082761827628276382764827658276682767827688276982770827718277282773827748277582776827778277882779827808278182782827838278482785827868278782788827898279082791827928279382794827958279682797827988279982800828018280282803828048280582806828078280882809828108281182812828138281482815828168281782818828198282082821828228282382824828258282682827828288282982830828318283282833828348283582836828378283882839828408284182842828438284482845828468284782848828498285082851828528285382854828558285682857828588285982860828618286282863828648286582866828678286882869828708287182872828738287482875828768287782878828798288082881828828288382884828858288682887828888288982890828918289282893828948289582896828978289882899829008290182902829038290482905829068290782908829098291082911829128291382914829158291682917829188291982920829218292282923829248292582926829278292882929829308293182932829338293482935829368293782938829398294082941829428294382944829458294682947829488294982950829518295282953829548295582956829578295882959829608296182962829638296482965829668296782968829698297082971829728297382974829758297682977829788297982980829818298282983829848298582986829878298882989829908299182992829938299482995829968299782998829998300083001830028300383004830058300683007830088300983010830118301283013830148301583016830178301883019830208302183022830238302483025830268302783028830298303083031830328303383034830358303683037830388303983040830418304283043830448304583046830478304883049830508305183052830538305483055830568305783058830598306083061830628306383064830658306683067830688306983070830718307283073830748307583076830778307883079830808308183082830838308483085830868308783088830898309083091830928309383094830958309683097830988309983100831018310283103831048310583106831078310883109831108311183112831138311483115831168311783118831198312083121831228312383124831258312683127831288312983130831318313283133831348313583136831378313883139831408314183142831438314483145831468314783148831498315083151831528315383154831558315683157831588315983160831618316283163831648316583166831678316883169831708317183172831738317483175831768317783178831798318083181831828318383184831858318683187831888318983190831918319283193831948319583196831978319883199832008320183202832038320483205832068320783208832098321083211832128321383214832158321683217832188321983220832218322283223832248322583226832278322883229832308323183232832338323483235832368323783238832398324083241832428324383244832458324683247832488324983250832518325283253832548325583256832578325883259832608326183262832638326483265832668326783268832698327083271832728327383274832758327683277832788327983280832818328283283832848328583286832878328883289832908329183292832938329483295832968329783298832998330083301833028330383304833058330683307833088330983310833118331283313833148331583316833178331883319833208332183322833238332483325833268332783328833298333083331833328333383334833358333683337833388333983340833418334283343833448334583346833478334883349833508335183352833538335483355833568335783358833598336083361833628336383364833658336683367833688336983370833718337283373833748337583376833778337883379833808338183382833838338483385833868338783388833898339083391833928339383394833958339683397833988339983400834018340283403834048340583406834078340883409834108341183412834138341483415834168341783418834198342083421834228342383424834258342683427834288342983430834318343283433834348343583436834378343883439834408344183442834438344483445834468344783448834498345083451834528345383454834558345683457834588345983460834618346283463834648346583466834678346883469834708347183472834738347483475834768347783478834798348083481834828348383484834858348683487834888348983490834918349283493834948349583496834978349883499835008350183502835038350483505835068350783508835098351083511835128351383514835158351683517835188351983520835218352283523835248352583526835278352883529835308353183532835338353483535835368353783538835398354083541835428354383544835458354683547835488354983550835518355283553835548355583556835578355883559835608356183562835638356483565835668356783568835698357083571835728357383574835758357683577835788357983580835818358283583835848358583586835878358883589835908359183592835938359483595835968359783598835998360083601836028360383604836058360683607836088360983610836118361283613836148361583616836178361883619836208362183622836238362483625836268362783628836298363083631836328363383634836358363683637836388363983640836418364283643836448364583646836478364883649836508365183652836538365483655836568365783658836598366083661836628366383664836658366683667836688366983670836718367283673836748367583676836778367883679836808368183682836838368483685836868368783688836898369083691836928369383694836958369683697836988369983700837018370283703837048370583706837078370883709837108371183712837138371483715837168371783718837198372083721837228372383724837258372683727837288372983730837318373283733837348373583736837378373883739837408374183742837438374483745837468374783748837498375083751837528375383754837558375683757837588375983760837618376283763837648376583766837678376883769837708377183772837738377483775837768377783778837798378083781837828378383784837858378683787837888378983790837918379283793837948379583796837978379883799838008380183802838038380483805838068380783808838098381083811838128381383814838158381683817838188381983820838218382283823838248382583826838278382883829838308383183832838338383483835838368383783838838398384083841838428384383844838458384683847838488384983850838518385283853838548385583856838578385883859838608386183862838638386483865838668386783868838698387083871838728387383874838758387683877838788387983880838818388283883838848388583886838878388883889838908389183892838938389483895838968389783898838998390083901839028390383904839058390683907839088390983910839118391283913839148391583916839178391883919839208392183922839238392483925839268392783928839298393083931839328393383934839358393683937839388393983940839418394283943839448394583946839478394883949839508395183952839538395483955839568395783958839598396083961839628396383964839658396683967839688396983970839718397283973839748397583976839778397883979839808398183982839838398483985839868398783988839898399083991839928399383994839958399683997839988399984000840018400284003840048400584006840078400884009840108401184012840138401484015840168401784018840198402084021840228402384024840258402684027840288402984030840318403284033840348403584036840378403884039840408404184042840438404484045840468404784048840498405084051840528405384054840558405684057840588405984060840618406284063840648406584066840678406884069840708407184072840738407484075840768407784078840798408084081840828408384084840858408684087840888408984090840918409284093840948409584096840978409884099841008410184102841038410484105841068410784108841098411084111841128411384114841158411684117841188411984120841218412284123841248412584126841278412884129841308413184132841338413484135841368413784138841398414084141841428414384144841458414684147841488414984150841518415284153841548415584156841578415884159841608416184162841638416484165841668416784168841698417084171841728417384174841758417684177841788417984180841818418284183841848418584186841878418884189841908419184192841938419484195841968419784198841998420084201842028420384204842058420684207842088420984210842118421284213842148421584216842178421884219842208422184222842238422484225842268422784228842298423084231842328423384234842358423684237842388423984240842418424284243842448424584246842478424884249842508425184252842538425484255842568425784258842598426084261842628426384264842658426684267842688426984270842718427284273842748427584276842778427884279842808428184282842838428484285842868428784288842898429084291842928429384294842958429684297842988429984300843018430284303843048430584306843078430884309843108431184312843138431484315843168431784318843198432084321843228432384324843258432684327843288432984330843318433284333843348433584336843378433884339843408434184342843438434484345843468434784348843498435084351843528435384354843558435684357843588435984360843618436284363843648436584366843678436884369843708437184372843738437484375843768437784378843798438084381843828438384384843858438684387843888438984390843918439284393843948439584396843978439884399844008440184402844038440484405844068440784408844098441084411844128441384414844158441684417844188441984420844218442284423844248442584426844278442884429844308443184432844338443484435844368443784438844398444084441844428444384444844458444684447844488444984450844518445284453844548445584456844578445884459844608446184462844638446484465844668446784468844698447084471844728447384474844758447684477844788447984480844818448284483844848448584486844878448884489844908449184492844938449484495844968449784498844998450084501845028450384504845058450684507845088450984510845118451284513845148451584516845178451884519845208452184522845238452484525845268452784528845298453084531845328453384534845358453684537845388453984540845418454284543845448454584546845478454884549845508455184552845538455484555845568455784558845598456084561845628456384564845658456684567845688456984570845718457284573845748457584576845778457884579845808458184582845838458484585845868458784588845898459084591845928459384594845958459684597845988459984600846018460284603846048460584606846078460884609846108461184612846138461484615846168461784618846198462084621846228462384624846258462684627846288462984630846318463284633846348463584636846378463884639846408464184642846438464484645846468464784648846498465084651846528465384654846558465684657846588465984660846618466284663846648466584666846678466884669846708467184672846738467484675846768467784678846798468084681846828468384684846858468684687846888468984690846918469284693846948469584696846978469884699847008470184702847038470484705847068470784708847098471084711847128471384714847158471684717847188471984720847218472284723847248472584726847278472884729847308473184732847338473484735847368473784738847398474084741847428474384744847458474684747847488474984750847518475284753847548475584756847578475884759847608476184762847638476484765847668476784768847698477084771847728477384774847758477684777847788477984780847818478284783847848478584786847878478884789847908479184792847938479484795847968479784798847998480084801848028480384804848058480684807848088480984810848118481284813848148481584816848178481884819848208482184822848238482484825848268482784828848298483084831848328483384834848358483684837848388483984840848418484284843848448484584846848478484884849848508485184852848538485484855848568485784858848598486084861848628486384864848658486684867848688486984870848718487284873848748487584876848778487884879848808488184882848838488484885848868488784888848898489084891848928489384894848958489684897848988489984900849018490284903849048490584906849078490884909849108491184912849138491484915849168491784918849198492084921849228492384924849258492684927849288492984930849318493284933849348493584936849378493884939849408494184942849438494484945849468494784948849498495084951849528495384954849558495684957849588495984960849618496284963849648496584966849678496884969849708497184972849738497484975849768497784978849798498084981849828498384984849858498684987849888498984990849918499284993849948499584996849978499884999850008500185002850038500485005850068500785008850098501085011850128501385014850158501685017850188501985020850218502285023850248502585026850278502885029850308503185032850338503485035850368503785038850398504085041850428504385044850458504685047850488504985050850518505285053850548505585056850578505885059850608506185062850638506485065850668506785068850698507085071850728507385074850758507685077850788507985080850818508285083850848508585086850878508885089850908509185092850938509485095850968509785098850998510085101851028510385104851058510685107851088510985110851118511285113851148511585116851178511885119851208512185122851238512485125851268512785128851298513085131851328513385134851358513685137851388513985140851418514285143851448514585146851478514885149851508515185152851538515485155851568515785158851598516085161851628516385164851658516685167851688516985170851718517285173851748517585176851778517885179851808518185182851838518485185851868518785188851898519085191851928519385194851958519685197851988519985200852018520285203852048520585206852078520885209852108521185212852138521485215852168521785218852198522085221852228522385224852258522685227852288522985230852318523285233852348523585236852378523885239852408524185242852438524485245852468524785248852498525085251852528525385254852558525685257852588525985260852618526285263852648526585266852678526885269852708527185272852738527485275852768527785278852798528085281852828528385284852858528685287852888528985290852918529285293852948529585296852978529885299853008530185302853038530485305853068530785308853098531085311853128531385314853158531685317853188531985320853218532285323853248532585326853278532885329853308533185332853338533485335853368533785338853398534085341853428534385344853458534685347853488534985350853518535285353853548535585356853578535885359853608536185362853638536485365853668536785368853698537085371853728537385374853758537685377853788537985380853818538285383853848538585386853878538885389853908539185392853938539485395853968539785398853998540085401854028540385404854058540685407854088540985410854118541285413854148541585416854178541885419854208542185422854238542485425854268542785428854298543085431854328543385434854358543685437854388543985440854418544285443854448544585446854478544885449854508545185452854538545485455854568545785458854598546085461854628546385464854658546685467854688546985470854718547285473854748547585476854778547885479854808548185482854838548485485854868548785488854898549085491854928549385494854958549685497854988549985500855018550285503855048550585506855078550885509855108551185512855138551485515855168551785518855198552085521855228552385524855258552685527855288552985530855318553285533855348553585536855378553885539855408554185542855438554485545855468554785548855498555085551855528555385554855558555685557855588555985560855618556285563855648556585566855678556885569855708557185572855738557485575855768557785578855798558085581855828558385584855858558685587855888558985590855918559285593855948559585596855978559885599856008560185602856038560485605856068560785608856098561085611856128561385614856158561685617856188561985620856218562285623856248562585626856278562885629856308563185632856338563485635856368563785638856398564085641856428564385644856458564685647856488564985650856518565285653856548565585656856578565885659856608566185662856638566485665856668566785668856698567085671856728567385674856758567685677856788567985680856818568285683856848568585686856878568885689856908569185692856938569485695856968569785698856998570085701857028570385704857058570685707857088570985710857118571285713857148571585716857178571885719857208572185722857238572485725857268572785728857298573085731857328573385734857358573685737857388573985740857418574285743857448574585746857478574885749857508575185752857538575485755857568575785758857598576085761857628576385764857658576685767857688576985770857718577285773857748577585776857778577885779857808578185782857838578485785857868578785788857898579085791857928579385794857958579685797857988579985800858018580285803858048580585806858078580885809858108581185812858138581485815858168581785818858198582085821858228582385824858258582685827858288582985830858318583285833858348583585836858378583885839858408584185842858438584485845858468584785848858498585085851858528585385854858558585685857858588585985860858618586285863858648586585866858678586885869858708587185872858738587485875858768587785878858798588085881858828588385884858858588685887858888588985890858918589285893858948589585896858978589885899859008590185902859038590485905859068590785908859098591085911859128591385914859158591685917859188591985920859218592285923859248592585926859278592885929859308593185932859338593485935859368593785938859398594085941859428594385944859458594685947859488594985950859518595285953859548595585956859578595885959859608596185962859638596485965859668596785968859698597085971859728597385974859758597685977859788597985980859818598285983859848598585986859878598885989859908599185992859938599485995859968599785998859998600086001860028600386004860058600686007860088600986010860118601286013860148601586016860178601886019860208602186022860238602486025860268602786028860298603086031860328603386034860358603686037860388603986040860418604286043860448604586046860478604886049860508605186052860538605486055860568605786058860598606086061860628606386064860658606686067860688606986070860718607286073860748607586076860778607886079860808608186082860838608486085860868608786088860898609086091860928609386094860958609686097860988609986100861018610286103861048610586106861078610886109861108611186112861138611486115861168611786118861198612086121861228612386124861258612686127861288612986130861318613286133861348613586136861378613886139861408614186142861438614486145861468614786148861498615086151861528615386154861558615686157861588615986160861618616286163861648616586166861678616886169861708617186172861738617486175861768617786178861798618086181861828618386184861858618686187861888618986190861918619286193861948619586196861978619886199862008620186202862038620486205862068620786208862098621086211862128621386214862158621686217862188621986220862218622286223862248622586226862278622886229862308623186232862338623486235862368623786238862398624086241862428624386244862458624686247862488624986250862518625286253862548625586256862578625886259862608626186262862638626486265862668626786268862698627086271862728627386274862758627686277862788627986280862818628286283862848628586286862878628886289862908629186292862938629486295862968629786298862998630086301863028630386304863058630686307863088630986310863118631286313863148631586316863178631886319863208632186322863238632486325863268632786328863298633086331863328633386334863358633686337863388633986340863418634286343863448634586346863478634886349863508635186352863538635486355863568635786358863598636086361863628636386364863658636686367863688636986370863718637286373863748637586376863778637886379863808638186382863838638486385863868638786388863898639086391863928639386394863958639686397863988639986400864018640286403864048640586406864078640886409864108641186412864138641486415864168641786418864198642086421864228642386424864258642686427864288642986430864318643286433864348643586436864378643886439864408644186442864438644486445864468644786448864498645086451864528645386454864558645686457864588645986460864618646286463864648646586466864678646886469864708647186472864738647486475864768647786478864798648086481864828648386484864858648686487864888648986490864918649286493864948649586496864978649886499865008650186502865038650486505865068650786508865098651086511865128651386514865158651686517865188651986520865218652286523865248652586526865278652886529865308653186532865338653486535865368653786538865398654086541865428654386544865458654686547865488654986550865518655286553865548655586556865578655886559865608656186562865638656486565865668656786568865698657086571865728657386574865758657686577865788657986580865818658286583865848658586586865878658886589865908659186592865938659486595865968659786598865998660086601866028660386604866058660686607866088660986610866118661286613866148661586616866178661886619866208662186622866238662486625866268662786628866298663086631866328663386634866358663686637866388663986640866418664286643866448664586646866478664886649866508665186652866538665486655866568665786658866598666086661866628666386664866658666686667866688666986670866718667286673866748667586676866778667886679866808668186682866838668486685866868668786688866898669086691866928669386694866958669686697866988669986700867018670286703867048670586706867078670886709867108671186712867138671486715867168671786718867198672086721867228672386724867258672686727867288672986730867318673286733867348673586736867378673886739867408674186742867438674486745867468674786748867498675086751867528675386754867558675686757867588675986760867618676286763867648676586766867678676886769867708677186772867738677486775867768677786778867798678086781867828678386784867858678686787867888678986790867918679286793867948679586796867978679886799868008680186802868038680486805868068680786808868098681086811868128681386814868158681686817868188681986820868218682286823868248682586826868278682886829868308683186832868338683486835868368683786838868398684086841868428684386844868458684686847868488684986850868518685286853868548685586856868578685886859868608686186862868638686486865868668686786868868698687086871868728687386874868758687686877868788687986880868818688286883868848688586886868878688886889868908689186892868938689486895868968689786898868998690086901869028690386904869058690686907869088690986910869118691286913869148691586916869178691886919869208692186922869238692486925869268692786928869298693086931869328693386934869358693686937869388693986940869418694286943869448694586946869478694886949869508695186952869538695486955869568695786958869598696086961869628696386964869658696686967869688696986970869718697286973869748697586976869778697886979869808698186982869838698486985869868698786988869898699086991869928699386994869958699686997869988699987000870018700287003870048700587006870078700887009870108701187012870138701487015870168701787018870198702087021870228702387024870258702687027870288702987030870318703287033870348703587036870378703887039870408704187042870438704487045870468704787048870498705087051870528705387054870558705687057870588705987060870618706287063870648706587066870678706887069870708707187072870738707487075870768707787078870798708087081870828708387084870858708687087870888708987090870918709287093870948709587096870978709887099871008710187102871038710487105871068710787108871098711087111871128711387114871158711687117871188711987120871218712287123871248712587126871278712887129871308713187132871338713487135871368713787138871398714087141871428714387144871458714687147871488714987150871518715287153871548715587156871578715887159871608716187162871638716487165871668716787168871698717087171871728717387174871758717687177871788717987180871818718287183871848718587186871878718887189871908719187192871938719487195871968719787198871998720087201872028720387204872058720687207872088720987210872118721287213872148721587216872178721887219872208722187222872238722487225872268722787228872298723087231872328723387234872358723687237872388723987240872418724287243872448724587246872478724887249872508725187252872538725487255872568725787258872598726087261872628726387264872658726687267872688726987270872718727287273872748727587276872778727887279872808728187282872838728487285872868728787288872898729087291872928729387294872958729687297872988729987300873018730287303873048730587306873078730887309873108731187312873138731487315873168731787318873198732087321873228732387324873258732687327873288732987330873318733287333873348733587336873378733887339873408734187342873438734487345873468734787348873498735087351873528735387354873558735687357873588735987360873618736287363873648736587366873678736887369873708737187372873738737487375873768737787378873798738087381873828738387384873858738687387873888738987390873918739287393873948739587396873978739887399874008740187402874038740487405874068740787408874098741087411874128741387414874158741687417874188741987420874218742287423874248742587426874278742887429874308743187432874338743487435874368743787438874398744087441874428744387444874458744687447874488744987450874518745287453874548745587456874578745887459874608746187462874638746487465874668746787468874698747087471874728747387474874758747687477874788747987480874818748287483874848748587486874878748887489874908749187492874938749487495874968749787498874998750087501875028750387504875058750687507875088750987510875118751287513875148751587516875178751887519875208752187522875238752487525875268752787528875298753087531875328753387534875358753687537875388753987540875418754287543875448754587546875478754887549875508755187552875538755487555875568755787558875598756087561875628756387564875658756687567875688756987570875718757287573875748757587576875778757887579875808758187582875838758487585875868758787588875898759087591875928759387594875958759687597875988759987600876018760287603876048760587606876078760887609876108761187612876138761487615876168761787618876198762087621876228762387624876258762687627876288762987630876318763287633876348763587636876378763887639876408764187642876438764487645876468764787648876498765087651876528765387654876558765687657876588765987660876618766287663876648766587666876678766887669876708767187672876738767487675876768767787678876798768087681876828768387684876858768687687876888768987690876918769287693876948769587696876978769887699877008770187702877038770487705877068770787708877098771087711877128771387714877158771687717877188771987720877218772287723877248772587726877278772887729877308773187732877338773487735877368773787738877398774087741877428774387744877458774687747877488774987750877518775287753877548775587756877578775887759877608776187762877638776487765877668776787768877698777087771877728777387774877758777687777877788777987780877818778287783877848778587786877878778887789877908779187792877938779487795877968779787798877998780087801878028780387804878058780687807878088780987810878118781287813878148781587816878178781887819878208782187822878238782487825878268782787828878298783087831878328783387834878358783687837878388783987840878418784287843878448784587846878478784887849878508785187852878538785487855878568785787858878598786087861878628786387864878658786687867878688786987870878718787287873878748787587876878778787887879878808788187882878838788487885878868788787888878898789087891878928789387894878958789687897878988789987900879018790287903879048790587906879078790887909879108791187912879138791487915879168791787918879198792087921879228792387924879258792687927879288792987930879318793287933879348793587936879378793887939879408794187942879438794487945879468794787948879498795087951879528795387954879558795687957879588795987960879618796287963879648796587966879678796887969879708797187972879738797487975879768797787978879798798087981879828798387984879858798687987879888798987990879918799287993879948799587996879978799887999880008800188002880038800488005880068800788008880098801088011880128801388014880158801688017880188801988020880218802288023880248802588026880278802888029880308803188032880338803488035880368803788038880398804088041880428804388044880458804688047880488804988050880518805288053880548805588056880578805888059880608806188062880638806488065880668806788068880698807088071880728807388074880758807688077880788807988080880818808288083880848808588086880878808888089880908809188092880938809488095880968809788098880998810088101881028810388104881058810688107881088810988110881118811288113881148811588116881178811888119881208812188122881238812488125881268812788128881298813088131881328813388134881358813688137881388813988140881418814288143881448814588146881478814888149881508815188152881538815488155881568815788158881598816088161881628816388164881658816688167881688816988170881718817288173881748817588176881778817888179881808818188182881838818488185881868818788188881898819088191881928819388194881958819688197881988819988200882018820288203882048820588206882078820888209882108821188212882138821488215882168821788218882198822088221882228822388224882258822688227882288822988230882318823288233882348823588236882378823888239882408824188242882438824488245882468824788248882498825088251882528825388254882558825688257882588825988260882618826288263882648826588266882678826888269882708827188272882738827488275882768827788278882798828088281882828828388284882858828688287882888828988290882918829288293882948829588296882978829888299883008830188302883038830488305883068830788308883098831088311883128831388314883158831688317883188831988320883218832288323883248832588326883278832888329883308833188332883338833488335883368833788338883398834088341883428834388344883458834688347883488834988350883518835288353883548835588356883578835888359883608836188362883638836488365883668836788368883698837088371883728837388374883758837688377883788837988380883818838288383883848838588386883878838888389883908839188392883938839488395883968839788398883998840088401884028840388404884058840688407884088840988410884118841288413884148841588416884178841888419884208842188422884238842488425884268842788428884298843088431884328843388434884358843688437884388843988440884418844288443884448844588446884478844888449884508845188452884538845488455884568845788458884598846088461884628846388464884658846688467884688846988470884718847288473884748847588476884778847888479884808848188482884838848488485884868848788488884898849088491884928849388494884958849688497884988849988500885018850288503885048850588506885078850888509885108851188512885138851488515885168851788518885198852088521885228852388524885258852688527885288852988530885318853288533885348853588536885378853888539885408854188542885438854488545885468854788548885498855088551885528855388554885558855688557885588855988560885618856288563885648856588566885678856888569885708857188572885738857488575885768857788578885798858088581885828858388584885858858688587885888858988590885918859288593885948859588596885978859888599886008860188602886038860488605886068860788608886098861088611886128861388614886158861688617886188861988620886218862288623886248862588626886278862888629886308863188632886338863488635886368863788638886398864088641886428864388644886458864688647886488864988650886518865288653886548865588656886578865888659886608866188662886638866488665886668866788668886698867088671886728867388674886758867688677886788867988680886818868288683886848868588686886878868888689886908869188692886938869488695886968869788698886998870088701887028870388704887058870688707887088870988710887118871288713887148871588716887178871888719887208872188722887238872488725887268872788728887298873088731887328873388734887358873688737887388873988740887418874288743887448874588746887478874888749887508875188752887538875488755887568875788758887598876088761887628876388764887658876688767887688876988770887718877288773887748877588776887778877888779887808878188782887838878488785887868878788788887898879088791887928879388794887958879688797887988879988800888018880288803888048880588806888078880888809888108881188812888138881488815888168881788818888198882088821888228882388824888258882688827888288882988830888318883288833888348883588836888378883888839888408884188842888438884488845888468884788848888498885088851888528885388854888558885688857888588885988860888618886288863888648886588866888678886888869888708887188872888738887488875888768887788878888798888088881888828888388884888858888688887888888888988890888918889288893888948889588896888978889888899889008890188902889038890488905889068890788908889098891088911889128891388914889158891688917889188891988920889218892288923889248892588926889278892888929889308893188932889338893488935889368893788938889398894088941889428894388944889458894688947889488894988950889518895288953889548895588956889578895888959889608896188962889638896488965889668896788968889698897088971889728897388974889758897688977889788897988980889818898288983889848898588986889878898888989889908899188992889938899488995889968899788998889998900089001890028900389004890058900689007890088900989010890118901289013890148901589016890178901889019890208902189022890238902489025890268902789028890298903089031890328903389034890358903689037890388903989040890418904289043890448904589046890478904889049890508905189052890538905489055890568905789058890598906089061890628906389064890658906689067890688906989070890718907289073890748907589076890778907889079890808908189082890838908489085890868908789088890898909089091890928909389094890958909689097890988909989100891018910289103891048910589106891078910889109891108911189112891138911489115891168911789118891198912089121891228912389124891258912689127891288912989130891318913289133891348913589136891378913889139891408914189142891438914489145891468914789148891498915089151891528915389154891558915689157891588915989160891618916289163891648916589166891678916889169891708917189172891738917489175891768917789178891798918089181891828918389184891858918689187891888918989190891918919289193891948919589196891978919889199892008920189202892038920489205892068920789208892098921089211892128921389214892158921689217892188921989220892218922289223892248922589226892278922889229892308923189232892338923489235892368923789238892398924089241892428924389244892458924689247892488924989250892518925289253892548925589256892578925889259892608926189262892638926489265892668926789268892698927089271892728927389274892758927689277892788927989280892818928289283892848928589286892878928889289892908929189292892938929489295892968929789298892998930089301893028930389304893058930689307893088930989310893118931289313893148931589316893178931889319893208932189322893238932489325893268932789328893298933089331893328933389334893358933689337893388933989340893418934289343893448934589346893478934889349893508935189352893538935489355893568935789358893598936089361893628936389364893658936689367893688936989370893718937289373893748937589376893778937889379893808938189382893838938489385893868938789388893898939089391893928939389394893958939689397893988939989400894018940289403894048940589406894078940889409894108941189412894138941489415894168941789418894198942089421894228942389424894258942689427894288942989430894318943289433894348943589436894378943889439894408944189442894438944489445894468944789448894498945089451894528945389454894558945689457894588945989460894618946289463894648946589466894678946889469894708947189472894738947489475894768947789478894798948089481894828948389484894858948689487894888948989490894918949289493894948949589496894978949889499895008950189502895038950489505895068950789508895098951089511895128951389514895158951689517895188951989520895218952289523895248952589526895278952889529895308953189532895338953489535895368953789538895398954089541895428954389544895458954689547895488954989550895518955289553895548955589556895578955889559895608956189562895638956489565895668956789568895698957089571895728957389574895758957689577895788957989580895818958289583895848958589586895878958889589895908959189592895938959489595895968959789598895998960089601896028960389604896058960689607896088960989610896118961289613896148961589616896178961889619896208962189622896238962489625896268962789628896298963089631896328963389634896358963689637896388963989640896418964289643896448964589646896478964889649896508965189652896538965489655896568965789658896598966089661896628966389664896658966689667896688966989670896718967289673896748967589676896778967889679896808968189682896838968489685896868968789688896898969089691896928969389694896958969689697896988969989700897018970289703897048970589706897078970889709897108971189712897138971489715897168971789718897198972089721897228972389724897258972689727897288972989730897318973289733897348973589736897378973889739897408974189742897438974489745897468974789748897498975089751897528975389754897558975689757897588975989760897618976289763897648976589766897678976889769897708977189772897738977489775897768977789778897798978089781897828978389784897858978689787897888978989790897918979289793897948979589796897978979889799898008980189802898038980489805898068980789808898098981089811898128981389814898158981689817898188981989820898218982289823898248982589826898278982889829898308983189832898338983489835898368983789838898398984089841898428984389844898458984689847898488984989850898518985289853898548985589856898578985889859898608986189862898638986489865898668986789868898698987089871898728987389874898758987689877898788987989880898818988289883898848988589886898878988889889898908989189892898938989489895898968989789898898998990089901899028990389904899058990689907899088990989910899118991289913899148991589916899178991889919899208992189922899238992489925899268992789928899298993089931899328993389934899358993689937899388993989940899418994289943899448994589946899478994889949899508995189952899538995489955899568995789958899598996089961899628996389964899658996689967899688996989970899718997289973899748997589976899778997889979899808998189982899838998489985899868998789988899898999089991899928999389994899958999689997899988999990000900019000290003900049000590006900079000890009900109001190012900139001490015900169001790018900199002090021900229002390024900259002690027900289002990030900319003290033900349003590036900379003890039900409004190042900439004490045900469004790048900499005090051900529005390054900559005690057900589005990060900619006290063900649006590066900679006890069900709007190072900739007490075900769007790078900799008090081900829008390084900859008690087900889008990090900919009290093900949009590096900979009890099901009010190102901039010490105901069010790108901099011090111901129011390114901159011690117901189011990120901219012290123901249012590126901279012890129901309013190132901339013490135901369013790138901399014090141901429014390144901459014690147901489014990150901519015290153901549015590156901579015890159901609016190162901639016490165901669016790168901699017090171901729017390174901759017690177901789017990180901819018290183901849018590186901879018890189901909019190192901939019490195901969019790198901999020090201902029020390204902059020690207902089020990210902119021290213902149021590216902179021890219902209022190222902239022490225902269022790228902299023090231902329023390234902359023690237902389023990240902419024290243902449024590246902479024890249902509025190252902539025490255902569025790258902599026090261902629026390264902659026690267902689026990270902719027290273902749027590276902779027890279902809028190282902839028490285902869028790288902899029090291902929029390294902959029690297902989029990300903019030290303903049030590306903079030890309903109031190312903139031490315903169031790318903199032090321903229032390324903259032690327903289032990330903319033290333903349033590336903379033890339903409034190342903439034490345903469034790348903499035090351903529035390354903559035690357903589035990360903619036290363903649036590366903679036890369903709037190372903739037490375903769037790378903799038090381903829038390384903859038690387903889038990390903919039290393903949039590396903979039890399904009040190402904039040490405904069040790408904099041090411904129041390414904159041690417904189041990420904219042290423904249042590426904279042890429904309043190432904339043490435904369043790438904399044090441904429044390444904459044690447904489044990450904519045290453904549045590456904579045890459904609046190462904639046490465904669046790468904699047090471904729047390474904759047690477904789047990480904819048290483904849048590486904879048890489904909049190492904939049490495904969049790498904999050090501905029050390504905059050690507905089050990510905119051290513905149051590516905179051890519905209052190522905239052490525905269052790528905299053090531905329053390534905359053690537905389053990540905419054290543905449054590546905479054890549905509055190552905539055490555905569055790558905599056090561905629056390564905659056690567905689056990570905719057290573905749057590576905779057890579905809058190582905839058490585905869058790588905899059090591905929059390594905959059690597905989059990600906019060290603906049060590606906079060890609906109061190612906139061490615906169061790618906199062090621906229062390624906259062690627906289062990630906319063290633906349063590636906379063890639906409064190642906439064490645906469064790648906499065090651906529065390654906559065690657906589065990660906619066290663906649066590666906679066890669906709067190672906739067490675906769067790678906799068090681906829068390684906859068690687906889068990690906919069290693906949069590696906979069890699907009070190702907039070490705907069070790708907099071090711907129071390714907159071690717907189071990720907219072290723907249072590726907279072890729907309073190732907339073490735907369073790738907399074090741907429074390744907459074690747907489074990750907519075290753907549075590756907579075890759907609076190762907639076490765907669076790768907699077090771907729077390774907759077690777907789077990780907819078290783907849078590786907879078890789907909079190792907939079490795907969079790798907999080090801908029080390804908059080690807908089080990810908119081290813908149081590816908179081890819908209082190822908239082490825908269082790828908299083090831908329083390834908359083690837908389083990840908419084290843908449084590846908479084890849908509085190852908539085490855908569085790858908599086090861908629086390864908659086690867908689086990870908719087290873908749087590876908779087890879908809088190882908839088490885908869088790888908899089090891908929089390894908959089690897908989089990900909019090290903909049090590906909079090890909909109091190912909139091490915909169091790918909199092090921909229092390924909259092690927909289092990930909319093290933909349093590936909379093890939909409094190942909439094490945909469094790948909499095090951909529095390954909559095690957909589095990960909619096290963909649096590966909679096890969909709097190972909739097490975909769097790978909799098090981909829098390984909859098690987909889098990990909919099290993909949099590996909979099890999910009100191002910039100491005910069100791008910099101091011910129101391014910159101691017910189101991020910219102291023910249102591026910279102891029910309103191032910339103491035910369103791038910399104091041910429104391044910459104691047910489104991050910519105291053910549105591056910579105891059910609106191062910639106491065910669106791068910699107091071910729107391074910759107691077910789107991080910819108291083910849108591086910879108891089910909109191092910939109491095910969109791098910999110091101911029110391104911059110691107911089110991110911119111291113911149111591116911179111891119911209112191122911239112491125911269112791128911299113091131911329113391134911359113691137911389113991140911419114291143911449114591146911479114891149911509115191152911539115491155911569115791158911599116091161911629116391164911659116691167911689116991170911719117291173911749117591176911779117891179911809118191182911839118491185911869118791188911899119091191911929119391194911959119691197911989119991200912019120291203912049120591206912079120891209912109121191212912139121491215912169121791218912199122091221912229122391224912259122691227912289122991230912319123291233912349123591236912379123891239912409124191242912439124491245912469124791248912499125091251912529125391254912559125691257912589125991260912619126291263912649126591266912679126891269912709127191272912739127491275912769127791278912799128091281912829128391284912859128691287912889128991290912919129291293912949129591296912979129891299913009130191302913039130491305913069130791308913099131091311913129131391314913159131691317913189131991320913219132291323913249132591326913279132891329913309133191332913339133491335913369133791338913399134091341913429134391344913459134691347913489134991350913519135291353913549135591356913579135891359913609136191362913639136491365913669136791368913699137091371913729137391374913759137691377913789137991380913819138291383913849138591386913879138891389913909139191392913939139491395913969139791398913999140091401914029140391404914059140691407914089140991410914119141291413914149141591416914179141891419914209142191422914239142491425914269142791428914299143091431914329143391434914359143691437914389143991440914419144291443914449144591446914479144891449914509145191452914539145491455914569145791458914599146091461914629146391464914659146691467914689146991470914719147291473914749147591476914779147891479914809148191482914839148491485914869148791488914899149091491914929149391494914959149691497914989149991500915019150291503915049150591506915079150891509915109151191512915139151491515915169151791518915199152091521915229152391524915259152691527915289152991530915319153291533915349153591536915379153891539915409154191542915439154491545915469154791548915499155091551915529155391554915559155691557915589155991560915619156291563915649156591566915679156891569915709157191572915739157491575915769157791578915799158091581915829158391584915859158691587915889158991590915919159291593915949159591596915979159891599916009160191602916039160491605916069160791608916099161091611916129161391614916159161691617916189161991620916219162291623916249162591626916279162891629916309163191632916339163491635916369163791638916399164091641916429164391644916459164691647916489164991650916519165291653916549165591656916579165891659916609166191662916639166491665916669166791668916699167091671916729167391674916759167691677916789167991680916819168291683916849168591686916879168891689916909169191692916939169491695916969169791698916999170091701917029170391704917059170691707917089170991710917119171291713917149171591716917179171891719917209172191722917239172491725917269172791728917299173091731917329173391734917359173691737917389173991740917419174291743917449174591746917479174891749917509175191752917539175491755917569175791758917599176091761917629176391764917659176691767917689176991770917719177291773917749177591776917779177891779917809178191782917839178491785917869178791788917899179091791917929179391794917959179691797917989179991800918019180291803918049180591806918079180891809918109181191812918139181491815918169181791818918199182091821918229182391824918259182691827918289182991830918319183291833918349183591836918379183891839918409184191842918439184491845918469184791848918499185091851918529185391854918559185691857918589185991860918619186291863918649186591866918679186891869918709187191872918739187491875918769187791878918799188091881918829188391884918859188691887918889188991890918919189291893918949189591896918979189891899919009190191902919039190491905919069190791908919099191091911919129191391914919159191691917919189191991920919219192291923919249192591926919279192891929919309193191932919339193491935919369193791938919399194091941919429194391944919459194691947919489194991950919519195291953919549195591956919579195891959919609196191962919639196491965919669196791968919699197091971919729197391974919759197691977919789197991980919819198291983919849198591986919879198891989919909199191992919939199491995919969199791998919999200092001920029200392004920059200692007920089200992010920119201292013920149201592016920179201892019920209202192022920239202492025920269202792028920299203092031920329203392034920359203692037920389203992040920419204292043920449204592046920479204892049920509205192052920539205492055920569205792058920599206092061920629206392064920659206692067920689206992070920719207292073920749207592076920779207892079920809208192082920839208492085920869208792088920899209092091920929209392094920959209692097920989209992100921019210292103921049210592106921079210892109921109211192112921139211492115921169211792118921199212092121921229212392124921259212692127921289212992130921319213292133921349213592136921379213892139921409214192142921439214492145921469214792148921499215092151921529215392154921559215692157921589215992160921619216292163921649216592166921679216892169921709217192172921739217492175921769217792178921799218092181921829218392184921859218692187921889218992190921919219292193921949219592196921979219892199922009220192202922039220492205922069220792208922099221092211922129221392214922159221692217922189221992220922219222292223922249222592226922279222892229922309223192232922339223492235922369223792238922399224092241922429224392244922459224692247922489224992250922519225292253922549225592256922579225892259922609226192262922639226492265922669226792268922699227092271922729227392274922759227692277922789227992280922819228292283922849228592286922879228892289922909229192292922939229492295922969229792298922999230092301923029230392304923059230692307923089230992310923119231292313923149231592316923179231892319923209232192322923239232492325923269232792328923299233092331923329233392334923359233692337923389233992340923419234292343923449234592346923479234892349923509235192352923539235492355923569235792358923599236092361923629236392364923659236692367923689236992370923719237292373923749237592376923779237892379923809238192382923839238492385923869238792388923899239092391923929239392394923959239692397923989239992400924019240292403924049240592406924079240892409924109241192412924139241492415924169241792418924199242092421924229242392424924259242692427924289242992430924319243292433924349243592436924379243892439924409244192442924439244492445924469244792448924499245092451924529245392454924559245692457924589245992460924619246292463924649246592466924679246892469924709247192472924739247492475924769247792478924799248092481924829248392484924859248692487924889248992490924919249292493924949249592496924979249892499925009250192502925039250492505925069250792508925099251092511925129251392514925159251692517925189251992520925219252292523925249252592526925279252892529925309253192532925339253492535925369253792538925399254092541925429254392544925459254692547925489254992550925519255292553925549255592556925579255892559925609256192562925639256492565925669256792568925699257092571925729257392574925759257692577925789257992580925819258292583925849258592586925879258892589925909259192592925939259492595925969259792598925999260092601926029260392604926059260692607926089260992610926119261292613926149261592616926179261892619926209262192622926239262492625926269262792628926299263092631926329263392634926359263692637926389263992640926419264292643926449264592646926479264892649926509265192652926539265492655926569265792658926599266092661926629266392664926659266692667926689266992670926719267292673926749267592676926779267892679926809268192682926839268492685926869268792688926899269092691926929269392694926959269692697926989269992700927019270292703927049270592706927079270892709927109271192712927139271492715927169271792718927199272092721927229272392724927259272692727927289272992730927319273292733927349273592736927379273892739927409274192742927439274492745927469274792748927499275092751927529275392754927559275692757927589275992760927619276292763927649276592766927679276892769927709277192772927739277492775927769277792778927799278092781927829278392784927859278692787927889278992790927919279292793927949279592796927979279892799928009280192802928039280492805928069280792808928099281092811928129281392814928159281692817928189281992820928219282292823928249282592826928279282892829928309283192832928339283492835928369283792838928399284092841928429284392844928459284692847928489284992850928519285292853928549285592856928579285892859928609286192862928639286492865928669286792868928699287092871928729287392874928759287692877928789287992880928819288292883928849288592886928879288892889928909289192892928939289492895928969289792898928999290092901929029290392904929059290692907929089290992910929119291292913929149291592916929179291892919929209292192922929239292492925929269292792928929299293092931929329293392934929359293692937929389293992940929419294292943929449294592946929479294892949929509295192952929539295492955929569295792958929599296092961929629296392964929659296692967929689296992970929719297292973929749297592976929779297892979929809298192982929839298492985929869298792988929899299092991929929299392994929959299692997929989299993000930019300293003930049300593006930079300893009930109301193012930139301493015930169301793018930199302093021930229302393024930259302693027930289302993030930319303293033930349303593036930379303893039930409304193042930439304493045930469304793048930499305093051930529305393054930559305693057930589305993060930619306293063930649306593066930679306893069930709307193072930739307493075930769307793078930799308093081930829308393084930859308693087930889308993090930919309293093930949309593096930979309893099931009310193102931039310493105931069310793108931099311093111931129311393114931159311693117931189311993120931219312293123931249312593126931279312893129931309313193132931339313493135931369313793138931399314093141931429314393144931459314693147931489314993150931519315293153931549315593156931579315893159931609316193162931639316493165931669316793168931699317093171931729317393174931759317693177931789317993180931819318293183931849318593186931879318893189931909319193192931939319493195931969319793198931999320093201932029320393204932059320693207932089320993210932119321293213932149321593216932179321893219932209322193222932239322493225932269322793228932299323093231932329323393234932359323693237932389323993240932419324293243932449324593246932479324893249932509325193252932539325493255932569325793258932599326093261932629326393264932659326693267932689326993270932719327293273932749327593276932779327893279932809328193282932839328493285932869328793288932899329093291932929329393294932959329693297932989329993300933019330293303933049330593306933079330893309933109331193312933139331493315933169331793318933199332093321933229332393324933259332693327933289332993330933319333293333933349333593336933379333893339933409334193342933439334493345933469334793348933499335093351933529335393354933559335693357933589335993360933619336293363933649336593366933679336893369933709337193372933739337493375933769337793378933799338093381933829338393384933859338693387933889338993390933919339293393933949339593396933979339893399934009340193402934039340493405934069340793408934099341093411934129341393414934159341693417934189341993420934219342293423934249342593426934279342893429934309343193432934339343493435934369343793438934399344093441934429344393444934459344693447934489344993450934519345293453934549345593456934579345893459934609346193462934639346493465934669346793468934699347093471934729347393474934759347693477934789347993480934819348293483934849348593486934879348893489934909349193492934939349493495934969349793498934999350093501935029350393504935059350693507935089350993510935119351293513935149351593516935179351893519935209352193522935239352493525935269352793528935299353093531935329353393534935359353693537935389353993540935419354293543935449354593546935479354893549935509355193552935539355493555935569355793558935599356093561935629356393564935659356693567935689356993570935719357293573935749357593576935779357893579935809358193582935839358493585935869358793588935899359093591935929359393594935959359693597935989359993600936019360293603936049360593606936079360893609936109361193612936139361493615936169361793618936199362093621936229362393624936259362693627936289362993630936319363293633936349363593636936379363893639936409364193642936439364493645936469364793648936499365093651936529365393654936559365693657936589365993660936619366293663936649366593666936679366893669936709367193672936739367493675936769367793678936799368093681936829368393684936859368693687936889368993690936919369293693936949369593696936979369893699937009370193702937039370493705937069370793708937099371093711937129371393714937159371693717937189371993720937219372293723937249372593726937279372893729937309373193732937339373493735937369373793738937399374093741937429374393744937459374693747937489374993750937519375293753937549375593756937579375893759937609376193762937639376493765937669376793768937699377093771937729377393774937759377693777937789377993780937819378293783937849378593786937879378893789937909379193792937939379493795937969379793798937999380093801938029380393804938059380693807938089380993810938119381293813938149381593816938179381893819938209382193822938239382493825938269382793828938299383093831938329383393834938359383693837938389383993840938419384293843938449384593846938479384893849938509385193852938539385493855938569385793858938599386093861938629386393864938659386693867938689386993870938719387293873938749387593876938779387893879938809388193882938839388493885938869388793888938899389093891938929389393894938959389693897938989389993900939019390293903939049390593906939079390893909939109391193912939139391493915939169391793918939199392093921939229392393924939259392693927939289392993930939319393293933939349393593936939379393893939939409394193942939439394493945939469394793948939499395093951939529395393954939559395693957939589395993960939619396293963939649396593966939679396893969939709397193972939739397493975939769397793978939799398093981939829398393984939859398693987939889398993990939919399293993939949399593996939979399893999940009400194002940039400494005940069400794008940099401094011940129401394014940159401694017940189401994020940219402294023940249402594026940279402894029940309403194032940339403494035940369403794038940399404094041940429404394044940459404694047940489404994050940519405294053940549405594056940579405894059940609406194062940639406494065940669406794068940699407094071940729407394074940759407694077940789407994080940819408294083940849408594086940879408894089940909409194092940939409494095940969409794098940999410094101941029410394104941059410694107941089410994110941119411294113941149411594116941179411894119941209412194122941239412494125941269412794128941299413094131941329413394134941359413694137941389413994140941419414294143941449414594146941479414894149941509415194152941539415494155941569415794158941599416094161941629416394164941659416694167941689416994170941719417294173941749417594176941779417894179941809418194182941839418494185941869418794188941899419094191941929419394194941959419694197941989419994200942019420294203942049420594206942079420894209942109421194212942139421494215942169421794218942199422094221942229422394224942259422694227942289422994230942319423294233942349423594236942379423894239942409424194242942439424494245942469424794248942499425094251942529425394254942559425694257942589425994260942619426294263942649426594266942679426894269942709427194272942739427494275942769427794278942799428094281942829428394284942859428694287942889428994290942919429294293942949429594296942979429894299943009430194302943039430494305943069430794308943099431094311943129431394314943159431694317943189431994320943219432294323943249432594326943279432894329943309433194332943339433494335943369433794338943399434094341943429434394344943459434694347943489434994350943519435294353943549435594356943579435894359943609436194362943639436494365943669436794368943699437094371943729437394374943759437694377943789437994380943819438294383943849438594386943879438894389943909439194392943939439494395943969439794398943999440094401944029440394404944059440694407944089440994410944119441294413944149441594416944179441894419944209442194422944239442494425944269442794428944299443094431944329443394434944359443694437944389443994440944419444294443944449444594446944479444894449944509445194452944539445494455944569445794458944599446094461944629446394464944659446694467944689446994470944719447294473944749447594476944779447894479944809448194482944839448494485944869448794488944899449094491944929449394494944959449694497944989449994500945019450294503945049450594506945079450894509945109451194512945139451494515945169451794518945199452094521945229452394524945259452694527945289452994530945319453294533945349453594536945379453894539945409454194542945439454494545945469454794548945499455094551945529455394554945559455694557945589455994560945619456294563945649456594566945679456894569945709457194572945739457494575945769457794578945799458094581945829458394584945859458694587945889458994590945919459294593945949459594596945979459894599946009460194602946039460494605946069460794608946099461094611946129461394614946159461694617946189461994620946219462294623946249462594626946279462894629946309463194632946339463494635946369463794638946399464094641946429464394644946459464694647946489464994650946519465294653946549465594656946579465894659946609466194662946639466494665946669466794668946699467094671946729467394674946759467694677946789467994680946819468294683946849468594686946879468894689946909469194692946939469494695946969469794698946999470094701947029470394704947059470694707947089470994710947119471294713947149471594716947179471894719947209472194722947239472494725947269472794728947299473094731947329473394734947359473694737947389473994740947419474294743947449474594746947479474894749947509475194752947539475494755947569475794758947599476094761947629476394764947659476694767947689476994770947719477294773947749477594776947779477894779947809478194782947839478494785947869478794788947899479094791947929479394794947959479694797947989479994800948019480294803948049480594806948079480894809948109481194812948139481494815948169481794818948199482094821948229482394824948259482694827948289482994830948319483294833948349483594836948379483894839948409484194842948439484494845948469484794848948499485094851948529485394854948559485694857948589485994860948619486294863948649486594866948679486894869948709487194872948739487494875948769487794878948799488094881948829488394884948859488694887948889488994890948919489294893948949489594896948979489894899949009490194902949039490494905949069490794908949099491094911949129491394914949159491694917949189491994920949219492294923949249492594926949279492894929949309493194932949339493494935949369493794938949399494094941949429494394944949459494694947949489494994950949519495294953949549495594956949579495894959949609496194962949639496494965949669496794968949699497094971949729497394974949759497694977949789497994980949819498294983949849498594986949879498894989949909499194992949939499494995949969499794998949999500095001950029500395004950059500695007950089500995010950119501295013950149501595016950179501895019950209502195022950239502495025950269502795028950299503095031950329503395034950359503695037950389503995040950419504295043950449504595046950479504895049950509505195052950539505495055950569505795058950599506095061950629506395064950659506695067950689506995070950719507295073950749507595076950779507895079950809508195082950839508495085950869508795088950899509095091950929509395094950959509695097950989509995100951019510295103951049510595106951079510895109951109511195112951139511495115951169511795118951199512095121951229512395124951259512695127951289512995130951319513295133951349513595136951379513895139951409514195142951439514495145951469514795148951499515095151951529515395154951559515695157951589515995160951619516295163951649516595166951679516895169951709517195172951739517495175951769517795178951799518095181951829518395184951859518695187951889518995190951919519295193951949519595196951979519895199952009520195202952039520495205952069520795208952099521095211952129521395214952159521695217952189521995220952219522295223952249522595226952279522895229952309523195232952339523495235952369523795238952399524095241952429524395244952459524695247952489524995250952519525295253952549525595256952579525895259952609526195262952639526495265952669526795268952699527095271952729527395274952759527695277952789527995280952819528295283952849528595286952879528895289952909529195292952939529495295952969529795298952999530095301953029530395304953059530695307953089530995310953119531295313953149531595316953179531895319953209532195322953239532495325953269532795328953299533095331953329533395334953359533695337953389533995340953419534295343953449534595346953479534895349953509535195352953539535495355953569535795358953599536095361953629536395364953659536695367953689536995370953719537295373953749537595376953779537895379953809538195382953839538495385953869538795388953899539095391953929539395394953959539695397953989539995400954019540295403954049540595406954079540895409954109541195412954139541495415954169541795418954199542095421954229542395424954259542695427954289542995430954319543295433954349543595436954379543895439954409544195442954439544495445954469544795448954499545095451954529545395454954559545695457954589545995460954619546295463954649546595466954679546895469954709547195472954739547495475954769547795478954799548095481954829548395484954859548695487954889548995490954919549295493954949549595496954979549895499955009550195502955039550495505955069550795508955099551095511955129551395514955159551695517955189551995520955219552295523955249552595526955279552895529955309553195532955339553495535955369553795538955399554095541955429554395544955459554695547955489554995550955519555295553955549555595556955579555895559955609556195562955639556495565955669556795568955699557095571955729557395574955759557695577955789557995580955819558295583955849558595586955879558895589955909559195592955939559495595955969559795598955999560095601956029560395604956059560695607956089560995610956119561295613956149561595616956179561895619956209562195622956239562495625956269562795628956299563095631956329563395634956359563695637956389563995640956419564295643956449564595646956479564895649956509565195652956539565495655956569565795658956599566095661956629566395664956659566695667956689566995670956719567295673956749567595676956779567895679956809568195682956839568495685956869568795688956899569095691956929569395694956959569695697956989569995700957019570295703957049570595706957079570895709957109571195712957139571495715957169571795718957199572095721957229572395724957259572695727957289572995730957319573295733957349573595736957379573895739957409574195742957439574495745957469574795748957499575095751957529575395754957559575695757957589575995760957619576295763957649576595766957679576895769957709577195772957739577495775957769577795778957799578095781957829578395784957859578695787957889578995790957919579295793957949579595796957979579895799958009580195802958039580495805958069580795808958099581095811958129581395814958159581695817958189581995820958219582295823958249582595826958279582895829958309583195832958339583495835958369583795838958399584095841958429584395844958459584695847958489584995850958519585295853958549585595856958579585895859958609586195862958639586495865958669586795868958699587095871958729587395874958759587695877958789587995880958819588295883958849588595886958879588895889958909589195892958939589495895958969589795898958999590095901959029590395904959059590695907959089590995910959119591295913959149591595916959179591895919959209592195922959239592495925959269592795928959299593095931959329593395934959359593695937959389593995940959419594295943959449594595946959479594895949959509595195952959539595495955959569595795958959599596095961959629596395964959659596695967959689596995970959719597295973959749597595976959779597895979959809598195982959839598495985959869598795988959899599095991959929599395994959959599695997959989599996000960019600296003960049600596006960079600896009960109601196012960139601496015960169601796018960199602096021960229602396024960259602696027960289602996030960319603296033960349603596036960379603896039960409604196042960439604496045960469604796048960499605096051960529605396054960559605696057960589605996060960619606296063960649606596066960679606896069960709607196072960739607496075960769607796078960799608096081960829608396084960859608696087960889608996090960919609296093960949609596096960979609896099961009610196102961039610496105961069610796108961099611096111961129611396114961159611696117961189611996120961219612296123961249612596126961279612896129961309613196132961339613496135961369613796138961399614096141961429614396144961459614696147961489614996150961519615296153961549615596156961579615896159961609616196162961639616496165961669616796168961699617096171961729617396174961759617696177961789617996180961819618296183961849618596186961879618896189961909619196192961939619496195961969619796198961999620096201962029620396204962059620696207962089620996210962119621296213962149621596216962179621896219962209622196222962239622496225962269622796228962299623096231962329623396234962359623696237962389623996240962419624296243962449624596246962479624896249962509625196252962539625496255962569625796258962599626096261962629626396264962659626696267962689626996270962719627296273962749627596276962779627896279962809628196282962839628496285962869628796288962899629096291962929629396294962959629696297962989629996300963019630296303963049630596306963079630896309963109631196312963139631496315963169631796318963199632096321963229632396324963259632696327963289632996330963319633296333963349633596336963379633896339963409634196342963439634496345963469634796348963499635096351963529635396354963559635696357963589635996360963619636296363963649636596366963679636896369963709637196372963739637496375963769637796378963799638096381963829638396384963859638696387963889638996390963919639296393963949639596396963979639896399964009640196402964039640496405964069640796408964099641096411964129641396414964159641696417964189641996420964219642296423964249642596426964279642896429964309643196432964339643496435964369643796438964399644096441964429644396444964459644696447964489644996450964519645296453964549645596456964579645896459964609646196462964639646496465964669646796468964699647096471964729647396474964759647696477964789647996480964819648296483964849648596486964879648896489964909649196492964939649496495964969649796498964999650096501965029650396504965059650696507965089650996510965119651296513965149651596516965179651896519965209652196522965239652496525965269652796528965299653096531965329653396534965359653696537965389653996540965419654296543965449654596546965479654896549965509655196552965539655496555965569655796558965599656096561965629656396564965659656696567965689656996570965719657296573965749657596576965779657896579965809658196582965839658496585965869658796588965899659096591965929659396594965959659696597965989659996600966019660296603966049660596606966079660896609966109661196612966139661496615966169661796618966199662096621966229662396624966259662696627966289662996630966319663296633966349663596636966379663896639966409664196642966439664496645966469664796648966499665096651966529665396654966559665696657966589665996660966619666296663966649666596666966679666896669966709667196672966739667496675966769667796678966799668096681966829668396684966859668696687966889668996690966919669296693966949669596696966979669896699967009670196702967039670496705967069670796708967099671096711967129671396714967159671696717967189671996720967219672296723967249672596726967279672896729967309673196732967339673496735967369673796738967399674096741967429674396744967459674696747967489674996750967519675296753967549675596756967579675896759967609676196762967639676496765967669676796768967699677096771967729677396774967759677696777967789677996780967819678296783967849678596786967879678896789967909679196792967939679496795967969679796798967999680096801968029680396804968059680696807968089680996810968119681296813968149681596816968179681896819968209682196822968239682496825968269682796828968299683096831968329683396834968359683696837968389683996840968419684296843968449684596846968479684896849968509685196852968539685496855968569685796858968599686096861968629686396864968659686696867968689686996870968719687296873968749687596876968779687896879968809688196882968839688496885968869688796888968899689096891968929689396894968959689696897968989689996900969019690296903969049690596906969079690896909969109691196912969139691496915969169691796918969199692096921969229692396924969259692696927969289692996930969319693296933969349693596936969379693896939969409694196942969439694496945969469694796948969499695096951969529695396954969559695696957969589695996960969619696296963969649696596966969679696896969969709697196972969739697496975969769697796978969799698096981969829698396984969859698696987969889698996990969919699296993969949699596996969979699896999970009700197002970039700497005970069700797008970099701097011970129701397014970159701697017970189701997020970219702297023970249702597026970279702897029970309703197032970339703497035970369703797038970399704097041970429704397044970459704697047970489704997050970519705297053970549705597056970579705897059970609706197062970639706497065970669706797068970699707097071970729707397074970759707697077970789707997080970819708297083970849708597086970879708897089970909709197092970939709497095970969709797098970999710097101971029710397104971059710697107971089710997110971119711297113971149711597116971179711897119971209712197122971239712497125971269712797128971299713097131971329713397134971359713697137971389713997140971419714297143971449714597146971479714897149971509715197152971539715497155971569715797158971599716097161971629716397164971659716697167971689716997170971719717297173971749717597176971779717897179971809718197182971839718497185971869718797188971899719097191971929719397194971959719697197971989719997200972019720297203972049720597206972079720897209972109721197212972139721497215972169721797218972199722097221972229722397224972259722697227972289722997230972319723297233972349723597236972379723897239972409724197242972439724497245972469724797248972499725097251972529725397254972559725697257972589725997260972619726297263972649726597266972679726897269972709727197272972739727497275972769727797278972799728097281972829728397284972859728697287972889728997290972919729297293972949729597296972979729897299973009730197302973039730497305973069730797308973099731097311973129731397314973159731697317973189731997320973219732297323973249732597326973279732897329973309733197332973339733497335973369733797338973399734097341973429734397344973459734697347973489734997350973519735297353973549735597356973579735897359973609736197362973639736497365973669736797368973699737097371973729737397374973759737697377973789737997380973819738297383973849738597386973879738897389973909739197392973939739497395973969739797398973999740097401974029740397404974059740697407974089740997410974119741297413974149741597416974179741897419974209742197422974239742497425974269742797428974299743097431974329743397434974359743697437974389743997440974419744297443974449744597446974479744897449974509745197452974539745497455974569745797458974599746097461974629746397464974659746697467974689746997470974719747297473974749747597476974779747897479974809748197482974839748497485974869748797488974899749097491974929749397494974959749697497974989749997500975019750297503975049750597506975079750897509975109751197512975139751497515975169751797518975199752097521975229752397524975259752697527975289752997530975319753297533975349753597536975379753897539975409754197542975439754497545975469754797548975499755097551975529755397554975559755697557975589755997560975619756297563975649756597566975679756897569975709757197572975739757497575975769757797578975799758097581975829758397584975859758697587975889758997590975919759297593975949759597596975979759897599976009760197602976039760497605976069760797608976099761097611976129761397614976159761697617976189761997620976219762297623976249762597626976279762897629976309763197632976339763497635976369763797638976399764097641976429764397644976459764697647976489764997650976519765297653976549765597656976579765897659976609766197662976639766497665976669766797668976699767097671976729767397674976759767697677976789767997680976819768297683976849768597686976879768897689976909769197692976939769497695976969769797698976999770097701977029770397704977059770697707977089770997710977119771297713977149771597716977179771897719977209772197722977239772497725977269772797728977299773097731977329773397734977359773697737977389773997740977419774297743977449774597746977479774897749977509775197752977539775497755977569775797758977599776097761977629776397764977659776697767977689776997770977719777297773977749777597776977779777897779977809778197782977839778497785977869778797788977899779097791977929779397794977959779697797977989779997800978019780297803978049780597806978079780897809978109781197812978139781497815978169781797818978199782097821978229782397824978259782697827978289782997830978319783297833978349783597836978379783897839978409784197842978439784497845978469784797848978499785097851978529785397854978559785697857978589785997860978619786297863978649786597866978679786897869978709787197872978739787497875978769787797878978799788097881978829788397884978859788697887978889788997890978919789297893978949789597896978979789897899979009790197902979039790497905979069790797908979099791097911979129791397914979159791697917979189791997920979219792297923979249792597926979279792897929979309793197932979339793497935979369793797938979399794097941979429794397944979459794697947979489794997950979519795297953979549795597956979579795897959979609796197962979639796497965979669796797968979699797097971979729797397974979759797697977979789797997980979819798297983979849798597986979879798897989979909799197992979939799497995979969799797998979999800098001980029800398004980059800698007980089800998010980119801298013980149801598016980179801898019980209802198022980239802498025980269802798028980299803098031980329803398034980359803698037980389803998040980419804298043980449804598046980479804898049980509805198052980539805498055980569805798058980599806098061980629806398064980659806698067980689806998070980719807298073980749807598076980779807898079980809808198082980839808498085980869808798088980899809098091980929809398094980959809698097980989809998100981019810298103981049810598106981079810898109981109811198112981139811498115981169811798118981199812098121981229812398124981259812698127981289812998130981319813298133981349813598136981379813898139981409814198142981439814498145981469814798148981499815098151981529815398154981559815698157981589815998160981619816298163981649816598166981679816898169981709817198172981739817498175981769817798178981799818098181981829818398184981859818698187981889818998190981919819298193981949819598196981979819898199982009820198202982039820498205982069820798208982099821098211982129821398214982159821698217982189821998220982219822298223982249822598226982279822898229982309823198232982339823498235982369823798238982399824098241982429824398244982459824698247982489824998250982519825298253982549825598256982579825898259982609826198262982639826498265982669826798268982699827098271982729827398274982759827698277982789827998280982819828298283982849828598286982879828898289982909829198292982939829498295982969829798298982999830098301983029830398304983059830698307983089830998310983119831298313983149831598316983179831898319983209832198322983239832498325983269832798328983299833098331983329833398334983359833698337983389833998340983419834298343983449834598346983479834898349983509835198352983539835498355983569835798358983599836098361983629836398364983659836698367983689836998370983719837298373983749837598376983779837898379983809838198382983839838498385983869838798388983899839098391983929839398394983959839698397983989839998400984019840298403984049840598406984079840898409984109841198412984139841498415984169841798418984199842098421984229842398424984259842698427984289842998430984319843298433984349843598436984379843898439984409844198442984439844498445984469844798448984499845098451984529845398454984559845698457984589845998460984619846298463984649846598466984679846898469984709847198472984739847498475984769847798478984799848098481984829848398484984859848698487984889848998490984919849298493984949849598496984979849898499985009850198502985039850498505985069850798508985099851098511985129851398514985159851698517985189851998520985219852298523985249852598526985279852898529985309853198532985339853498535985369853798538985399854098541985429854398544985459854698547985489854998550985519855298553985549855598556985579855898559985609856198562985639856498565985669856798568985699857098571985729857398574985759857698577985789857998580985819858298583985849858598586985879858898589985909859198592985939859498595985969859798598985999860098601986029860398604986059860698607986089860998610986119861298613986149861598616986179861898619986209862198622986239862498625986269862798628986299863098631986329863398634986359863698637986389863998640986419864298643986449864598646986479864898649986509865198652986539865498655986569865798658986599866098661986629866398664986659866698667986689866998670986719867298673986749867598676986779867898679986809868198682986839868498685986869868798688986899869098691986929869398694986959869698697986989869998700987019870298703987049870598706987079870898709987109871198712987139871498715987169871798718987199872098721987229872398724987259872698727987289872998730987319873298733987349873598736987379873898739987409874198742987439874498745987469874798748987499875098751987529875398754987559875698757987589875998760987619876298763987649876598766987679876898769987709877198772987739877498775987769877798778987799878098781987829878398784987859878698787987889878998790987919879298793987949879598796987979879898799988009880198802988039880498805988069880798808988099881098811988129881398814988159881698817988189881998820988219882298823988249882598826988279882898829988309883198832988339883498835988369883798838988399884098841988429884398844988459884698847988489884998850988519885298853988549885598856988579885898859988609886198862988639886498865988669886798868988699887098871988729887398874988759887698877988789887998880988819888298883988849888598886988879888898889988909889198892988939889498895988969889798898988999890098901989029890398904989059890698907989089890998910989119891298913989149891598916989179891898919989209892198922989239892498925989269892798928989299893098931989329893398934989359893698937989389893998940989419894298943989449894598946989479894898949989509895198952989539895498955989569895798958989599896098961989629896398964989659896698967989689896998970989719897298973989749897598976989779897898979989809898198982989839898498985989869898798988989899899098991989929899398994989959899698997989989899999000990019900299003990049900599006990079900899009990109901199012990139901499015990169901799018990199902099021990229902399024990259902699027990289902999030990319903299033990349903599036990379903899039990409904199042990439904499045990469904799048990499905099051990529905399054990559905699057990589905999060990619906299063990649906599066990679906899069990709907199072990739907499075990769907799078990799908099081990829908399084990859908699087990889908999090990919909299093990949909599096990979909899099991009910199102991039910499105991069910799108991099911099111991129911399114991159911699117991189911999120991219912299123991249912599126991279912899129991309913199132991339913499135991369913799138991399914099141991429914399144991459914699147991489914999150991519915299153991549915599156991579915899159991609916199162991639916499165991669916799168991699917099171991729917399174991759917699177991789917999180991819918299183991849918599186991879918899189991909919199192991939919499195991969919799198991999920099201992029920399204992059920699207992089920999210992119921299213992149921599216992179921899219992209922199222992239922499225992269922799228992299923099231992329923399234992359923699237992389923999240992419924299243992449924599246992479924899249992509925199252992539925499255992569925799258992599926099261992629926399264992659926699267992689926999270992719927299273992749927599276992779927899279992809928199282992839928499285992869928799288992899929099291992929929399294992959929699297992989929999300993019930299303993049930599306993079930899309993109931199312993139931499315993169931799318993199932099321993229932399324993259932699327993289932999330993319933299333993349933599336993379933899339993409934199342993439934499345993469934799348993499935099351993529935399354993559935699357993589935999360993619936299363993649936599366993679936899369993709937199372993739937499375993769937799378993799938099381993829938399384993859938699387993889938999390993919939299393993949939599396993979939899399994009940199402994039940499405994069940799408994099941099411994129941399414994159941699417994189941999420994219942299423994249942599426994279942899429994309943199432994339943499435994369943799438994399944099441994429944399444994459944699447994489944999450994519945299453994549945599456994579945899459994609946199462994639946499465994669946799468994699947099471994729947399474994759947699477994789947999480994819948299483994849948599486994879948899489994909949199492994939949499495994969949799498994999950099501995029950399504995059950699507995089950999510995119951299513995149951599516995179951899519995209952199522995239952499525995269952799528995299953099531995329953399534995359953699537995389953999540995419954299543995449954599546995479954899549995509955199552995539955499555995569955799558995599956099561995629956399564995659956699567995689956999570995719957299573995749957599576995779957899579995809958199582995839958499585995869958799588995899959099591995929959399594995959959699597995989959999600996019960299603996049960599606996079960899609996109961199612996139961499615996169961799618996199962099621996229962399624996259962699627996289962999630996319963299633996349963599636996379963899639996409964199642996439964499645996469964799648996499965099651996529965399654996559965699657996589965999660996619966299663996649966599666996679966899669996709967199672996739967499675996769967799678996799968099681996829968399684996859968699687996889968999690996919969299693996949969599696996979969899699997009970199702997039970499705997069970799708997099971099711997129971399714997159971699717997189971999720997219972299723997249972599726997279972899729997309973199732997339973499735997369973799738997399974099741997429974399744997459974699747997489974999750997519975299753997549975599756997579975899759997609976199762997639976499765997669976799768997699977099771997729977399774997759977699777997789977999780997819978299783997849978599786997879978899789997909979199792997939979499795997969979799798997999980099801998029980399804998059980699807998089980999810998119981299813998149981599816998179981899819998209982199822998239982499825998269982799828998299983099831998329983399834998359983699837998389983999840998419984299843998449984599846998479984899849998509985199852998539985499855998569985799858998599986099861998629986399864998659986699867998689986999870998719987299873998749987599876998779987899879998809988199882998839988499885998869988799888998899989099891998929989399894998959989699897998989989999900999019990299903999049990599906999079990899909999109991199912999139991499915999169991799918999199992099921999229992399924999259992699927999289992999930999319993299933999349993599936999379993899939999409994199942999439994499945999469994799948999499995099951999529995399954999559995699957999589995999960999619996299963999649996599966999679996899969999709997199972999739997499975999769997799978999799998099981999829998399984999859998699987999889998999990999919999299993999949999599996999979999899999100000100001100002100003100004100005100006100007100008100009100010100011100012100013100014100015100016100017100018100019100020100021100022100023100024100025100026100027100028100029100030100031100032100033100034100035100036100037100038100039100040100041100042100043100044100045100046100047100048100049100050100051100052100053100054100055100056100057100058100059100060100061100062100063100064100065100066100067100068100069100070100071100072100073100074100075100076100077100078100079100080100081100082100083100084100085100086100087100088100089100090100091100092100093100094100095100096100097100098100099100100100101100102100103100104100105100106100107100108100109100110100111100112100113100114100115100116100117100118100119100120100121100122100123100124100125100126100127100128100129100130100131100132100133100134100135100136100137100138100139100140100141100142100143100144100145100146100147100148100149100150100151100152100153100154100155100156100157100158100159100160100161100162100163100164100165100166100167100168100169100170100171100172100173100174100175100176100177100178100179100180100181100182100183100184100185100186100187100188100189100190100191100192100193100194100195100196100197100198100199100200100201100202100203100204100205100206100207100208100209100210100211100212100213100214100215100216100217100218100219100220100221100222100223100224100225100226100227100228100229100230100231100232100233100234100235100236100237100238100239100240100241100242100243100244100245100246100247100248100249100250100251100252100253100254100255100256100257100258100259100260100261100262100263100264100265100266100267100268100269100270100271100272100273100274100275100276100277100278100279100280100281100282100283100284100285100286100287100288100289100290100291100292100293100294100295100296100297100298100299100300100301100302100303100304100305100306100307100308100309100310100311100312100313100314100315100316100317100318100319100320100321100322100323100324100325100326100327100328100329100330100331100332100333100334100335100336100337100338100339100340100341100342100343100344100345100346100347100348100349100350100351100352100353100354100355100356100357100358100359100360100361100362100363100364100365100366100367100368100369100370100371100372100373100374100375100376100377100378100379100380100381100382100383100384100385100386100387100388100389100390100391100392100393100394100395100396100397100398100399100400100401100402100403100404100405100406100407100408100409100410100411100412100413100414100415100416100417100418100419100420100421100422100423100424100425100426100427100428100429100430100431100432100433100434100435100436100437100438100439100440100441100442100443100444100445100446100447100448100449100450100451100452100453100454100455100456100457100458100459100460100461100462100463100464100465100466100467100468100469100470100471100472100473100474100475100476100477100478100479100480100481100482100483100484100485100486100487100488100489100490100491100492100493100494100495100496100497100498100499100500100501100502100503100504100505100506100507100508100509100510100511100512100513100514100515100516100517100518100519100520100521100522100523100524100525100526100527100528100529100530100531100532100533100534100535100536100537100538100539100540100541100542100543100544100545100546100547100548100549100550100551100552100553100554100555100556100557100558100559100560100561100562100563100564100565100566100567100568100569100570100571100572100573100574100575100576100577100578100579100580100581100582100583100584100585100586100587100588100589100590100591100592100593100594100595100596100597100598100599100600100601100602100603100604100605100606100607100608100609100610100611100612100613100614100615100616100617100618100619100620100621100622100623100624100625100626100627100628100629100630100631100632100633100634100635100636100637100638100639100640100641100642100643100644100645100646100647100648100649100650100651100652100653100654100655100656100657100658100659100660100661100662100663100664100665100666100667100668100669100670100671100672100673100674100675100676100677100678100679100680100681100682100683100684100685100686100687100688100689100690100691100692100693100694100695100696100697100698100699100700100701100702100703100704100705100706100707100708100709100710100711100712100713100714100715100716100717100718100719100720100721100722100723100724100725100726100727100728100729100730100731100732100733100734100735100736100737100738100739100740100741100742100743100744100745100746100747100748100749100750100751100752100753100754100755100756100757100758100759100760100761100762100763100764100765100766100767100768100769100770100771100772100773100774100775100776100777100778100779100780100781100782100783100784100785100786100787100788100789100790100791100792100793100794100795100796100797100798100799100800100801100802100803100804100805100806100807100808100809100810100811100812100813100814100815100816100817100818100819100820100821100822100823100824100825100826100827100828100829100830100831100832100833100834100835100836100837100838100839100840100841100842100843100844100845100846100847100848100849100850100851100852100853100854100855100856100857100858100859100860100861100862100863100864100865100866100867100868100869100870100871100872100873100874100875100876100877100878100879100880100881100882100883100884100885100886100887100888100889100890100891100892100893100894100895100896100897100898100899100900100901100902100903100904100905100906100907100908100909100910100911100912100913100914100915100916100917100918100919100920100921100922100923100924100925100926100927100928100929100930100931100932100933100934100935100936100937100938100939100940100941100942100943100944100945100946100947100948100949100950100951100952100953100954100955100956100957100958100959100960100961100962100963100964100965100966100967100968100969100970100971100972100973100974100975100976100977100978100979100980100981100982100983100984100985100986100987100988100989100990100991100992100993100994100995100996100997100998100999101000101001101002101003101004101005101006101007101008101009101010101011101012101013101014101015101016101017101018101019101020101021101022101023101024101025101026101027101028101029101030101031101032101033101034101035101036101037101038101039101040101041101042101043101044101045101046101047101048101049101050101051101052101053101054101055101056101057101058101059101060101061101062101063101064101065101066101067101068101069101070101071101072101073101074101075101076101077101078101079101080101081101082101083101084101085101086101087101088101089101090101091101092101093101094101095101096101097101098101099101100101101101102101103101104101105101106101107101108101109101110101111101112101113101114101115101116101117101118101119101120101121101122101123101124101125101126101127101128101129101130101131101132101133101134101135101136101137101138101139101140101141101142101143101144101145101146101147101148101149101150101151101152101153101154101155101156101157101158101159101160101161101162101163101164101165101166101167101168101169101170101171101172101173101174101175101176101177101178101179101180101181101182101183101184101185101186101187101188101189101190101191101192101193101194101195101196101197101198101199101200101201101202101203101204101205101206101207101208101209101210101211101212101213101214101215101216101217101218101219101220101221101222101223101224101225101226101227101228101229101230101231101232101233101234101235101236101237101238101239101240101241101242101243101244101245101246101247101248101249101250101251101252101253101254101255101256101257101258101259101260101261101262101263101264101265101266101267101268101269101270101271101272101273101274101275101276101277101278101279101280101281101282101283101284101285101286101287101288101289101290101291101292101293101294101295101296101297101298101299101300101301101302101303101304101305101306101307101308101309101310101311101312101313101314101315101316101317101318101319101320101321101322101323101324101325101326101327101328101329101330101331101332101333101334101335101336101337101338101339101340101341101342101343101344101345101346101347101348101349101350101351101352101353101354101355101356101357101358101359101360101361101362101363101364101365101366101367101368101369101370101371101372101373101374101375101376101377101378101379101380101381101382101383101384101385101386101387101388101389101390101391101392101393101394101395101396101397101398101399101400101401101402101403101404101405101406101407101408101409101410101411101412101413101414101415101416101417101418101419101420101421101422101423101424101425101426101427101428101429101430101431101432101433101434101435101436101437101438101439101440101441101442101443101444101445101446101447101448101449101450101451101452101453101454101455101456101457101458101459101460101461101462101463101464101465101466101467101468101469101470101471101472101473101474101475101476101477101478101479101480101481101482101483101484101485101486101487101488101489101490101491101492101493101494101495101496101497101498101499101500101501101502101503101504101505101506101507101508101509101510101511101512101513101514101515101516101517101518101519101520101521101522101523101524101525101526101527101528101529101530101531101532101533101534101535101536101537101538101539101540101541101542101543101544101545101546101547101548101549101550101551101552101553101554101555101556101557101558101559101560101561101562101563101564101565101566101567101568101569101570101571101572101573101574101575101576101577101578101579101580101581101582101583101584101585101586101587101588101589101590101591101592101593101594101595101596101597101598101599101600101601101602101603101604101605101606101607101608101609101610101611101612101613101614101615101616101617101618101619101620101621101622101623101624101625101626101627101628101629101630101631101632101633101634101635101636101637101638101639101640101641101642101643101644101645101646101647101648101649101650101651101652101653101654101655101656101657101658101659101660101661101662101663101664101665101666101667101668101669101670101671101672101673101674101675101676101677101678101679101680101681101682101683101684101685101686101687101688101689101690101691101692101693101694101695101696101697101698101699101700101701101702101703101704101705101706101707101708101709101710101711101712101713101714101715101716101717101718101719101720101721101722101723101724101725101726101727101728101729101730101731101732101733101734101735101736101737101738101739101740101741101742101743101744101745101746101747101748101749101750101751101752101753101754101755101756101757101758101759101760101761101762101763101764101765101766101767101768101769101770101771101772101773101774101775101776101777101778101779101780101781101782101783101784101785101786101787101788101789101790101791101792101793101794101795101796101797101798101799101800101801101802101803101804101805101806101807101808101809101810101811101812101813101814101815101816101817101818101819101820101821101822101823101824101825101826101827101828101829101830101831101832101833101834101835101836101837101838101839101840101841101842101843101844101845101846101847101848101849101850101851101852101853101854101855101856101857101858101859101860101861101862101863101864101865101866101867101868101869101870101871101872101873101874101875101876101877101878101879101880101881101882101883101884101885101886101887101888101889101890101891101892101893101894101895101896101897101898101899101900101901101902101903101904101905101906101907101908101909101910101911101912101913101914101915101916101917101918101919101920101921101922101923101924101925101926101927101928101929101930101931101932101933101934101935101936101937101938101939101940101941101942101943101944101945101946101947101948101949101950101951101952101953101954101955101956101957101958101959101960101961101962101963101964101965101966101967101968101969101970101971101972101973101974101975101976101977101978101979101980101981101982101983101984101985101986101987101988101989101990101991101992101993101994101995101996101997101998101999102000102001102002102003102004102005102006102007102008102009102010102011102012102013102014102015102016102017102018102019102020102021102022102023102024102025102026102027102028102029102030102031102032102033102034102035102036102037102038102039102040102041102042102043102044102045102046102047102048102049102050102051102052102053102054102055102056102057102058102059102060102061102062102063102064102065102066102067102068102069102070102071102072102073102074102075102076102077102078102079102080102081102082102083102084102085102086102087102088102089102090102091102092102093102094102095102096102097102098102099102100102101102102102103102104102105102106102107102108102109102110102111102112102113102114102115102116102117102118102119102120102121102122102123102124102125102126102127102128102129102130102131102132102133102134102135102136102137102138102139102140102141102142102143102144102145102146102147102148102149102150102151102152102153102154102155102156102157102158102159102160102161102162102163102164102165102166102167102168102169102170102171102172102173102174102175102176102177102178102179102180102181102182102183102184102185102186102187102188102189102190102191102192102193102194102195102196102197102198102199102200102201102202102203102204102205102206102207102208102209102210102211102212102213102214102215102216102217102218102219102220102221102222102223102224102225102226102227102228102229102230102231102232102233102234102235102236102237102238102239102240102241102242102243102244102245102246102247102248102249102250102251102252102253102254102255102256102257102258102259102260102261102262102263102264102265102266102267102268102269102270102271102272102273102274102275102276102277102278102279102280102281102282102283102284102285102286102287102288102289102290102291102292102293102294102295102296102297102298102299102300102301102302102303102304102305102306102307102308102309102310102311102312102313102314102315102316102317102318102319102320102321102322102323102324102325102326102327102328102329102330102331102332102333102334102335102336102337102338102339102340102341102342102343102344102345102346102347102348102349102350102351102352102353102354102355102356102357102358102359102360102361102362102363102364102365102366102367102368102369102370102371102372102373102374102375102376102377102378102379102380102381102382102383102384102385102386102387102388102389102390102391102392102393102394102395102396102397102398102399102400102401102402102403102404102405102406102407102408102409102410102411102412102413102414102415102416102417102418102419102420102421102422102423102424102425102426102427102428102429102430102431102432102433102434102435102436102437102438102439102440102441102442102443102444102445102446102447102448102449102450102451102452102453102454102455102456102457102458102459102460102461102462102463102464102465102466102467102468102469102470102471102472102473102474102475102476102477102478102479102480102481102482102483102484102485102486102487102488102489102490102491102492102493102494102495102496102497102498102499102500102501102502102503102504102505102506102507102508102509102510102511102512102513102514102515102516102517102518102519102520102521102522102523102524102525102526102527102528102529102530102531102532102533102534102535102536102537102538102539102540102541102542102543102544102545102546102547102548102549102550102551102552102553102554102555102556102557102558102559102560102561102562102563102564102565102566102567102568102569102570102571102572102573102574102575102576102577102578102579102580102581102582102583102584102585102586102587102588102589102590102591102592102593102594102595102596102597102598102599102600102601102602102603102604102605102606102607102608102609102610102611102612102613102614102615102616102617102618102619102620102621102622102623102624102625102626102627102628102629102630102631102632102633102634102635102636102637102638102639102640102641102642102643102644102645102646102647102648102649102650102651102652102653102654102655102656102657102658102659102660102661102662102663102664102665102666102667102668102669102670102671102672102673102674102675102676102677102678102679102680102681102682102683102684102685102686102687102688102689102690102691102692102693102694102695102696102697102698102699102700102701102702102703102704102705102706102707102708102709102710102711102712102713102714102715102716102717102718102719102720102721102722102723102724102725102726102727102728102729102730102731102732102733102734102735102736102737102738102739102740102741102742102743102744102745102746102747102748102749102750102751102752102753102754102755102756102757102758102759102760102761102762102763102764102765102766102767102768102769102770102771102772102773102774102775102776102777102778102779102780102781102782102783102784102785102786102787102788102789102790102791102792102793102794102795102796102797102798102799102800102801102802102803102804102805102806102807102808102809102810102811102812102813102814102815102816102817102818102819102820102821102822102823102824102825102826102827102828102829102830102831102832102833102834102835102836102837102838102839102840102841102842102843102844102845102846102847102848102849102850102851102852102853102854102855102856102857102858102859102860102861102862102863102864102865102866102867102868102869102870102871102872102873102874102875102876102877102878102879102880102881102882102883102884102885102886102887102888102889102890102891102892102893102894102895102896102897102898102899102900102901102902102903102904102905102906102907102908102909102910102911102912102913102914102915102916102917102918102919102920102921102922102923102924102925102926102927102928102929102930102931102932102933102934102935102936102937102938102939102940102941102942102943102944102945102946102947102948102949102950102951102952102953102954102955102956102957102958102959102960102961102962102963102964102965102966102967102968102969102970102971102972102973102974102975102976102977102978102979102980102981102982102983102984102985102986102987102988102989102990102991102992102993102994102995102996102997102998102999103000103001103002103003103004103005103006103007103008103009103010103011103012103013103014103015103016103017103018103019103020103021103022103023103024103025103026103027103028103029103030103031103032103033103034103035103036103037103038103039103040103041103042103043103044103045103046103047103048103049103050103051103052103053103054103055103056103057103058103059103060103061103062103063103064103065103066103067103068103069103070103071103072103073103074103075103076103077103078103079103080103081103082103083103084103085103086103087103088103089103090103091103092103093103094103095103096103097103098103099103100103101103102103103103104103105103106103107103108103109103110103111103112103113103114103115103116103117103118103119103120103121103122103123103124103125103126103127103128103129103130103131103132103133103134103135103136103137103138103139103140103141103142103143103144103145103146103147103148103149103150103151103152103153103154103155103156103157103158103159103160103161103162103163103164103165103166103167103168103169103170103171103172103173103174103175103176103177103178103179103180103181103182103183103184103185103186103187103188103189103190103191103192103193103194103195103196103197103198103199103200103201103202103203103204103205103206103207103208103209103210103211103212103213103214103215103216103217103218103219103220103221103222103223103224103225103226103227103228103229103230103231103232103233103234103235103236103237103238103239103240103241103242103243103244103245103246103247103248103249103250103251103252103253103254103255103256103257103258103259103260103261103262103263103264103265103266103267103268103269103270103271103272103273103274103275103276103277103278103279103280103281103282103283103284103285103286103287103288103289103290103291103292103293103294103295103296103297103298103299103300103301103302103303103304103305103306103307103308103309103310103311103312103313103314103315103316103317103318103319103320103321103322103323103324103325103326103327103328103329103330103331103332103333103334103335103336103337103338103339103340103341103342103343103344103345103346103347103348103349103350103351103352103353103354103355103356103357103358103359103360103361103362103363103364103365103366103367103368103369103370103371103372103373103374103375103376103377103378103379103380103381103382103383103384103385103386103387103388103389103390103391103392103393103394103395103396103397103398103399103400103401103402103403103404103405103406103407103408103409103410103411103412103413103414103415103416103417103418103419103420103421103422103423103424103425103426103427103428103429103430103431103432103433103434103435103436103437103438103439103440103441103442103443103444103445103446103447103448103449103450103451103452103453103454103455103456103457103458103459103460103461103462103463103464103465103466103467103468103469103470103471103472103473103474103475103476103477103478103479103480103481103482103483103484103485103486103487103488103489103490103491103492103493103494103495103496103497103498103499103500103501103502103503103504103505103506103507103508103509103510103511103512103513103514103515103516103517103518103519103520103521103522103523103524103525103526103527103528103529103530103531103532103533103534103535103536103537103538103539103540103541103542103543103544103545103546103547103548103549103550103551103552103553103554103555103556103557103558103559103560103561103562103563103564103565103566103567103568103569103570103571103572103573103574103575103576103577103578103579103580103581103582103583103584103585103586103587103588103589103590103591103592103593103594103595103596103597103598103599103600103601103602103603103604103605103606103607103608103609103610103611103612103613103614103615103616103617103618103619103620103621103622103623103624103625103626103627103628103629103630103631103632103633103634103635103636103637103638103639103640103641103642103643103644103645103646103647103648103649103650103651103652103653103654103655103656103657103658103659103660103661103662103663103664103665103666103667103668103669103670103671103672103673103674103675103676103677103678103679103680103681103682103683103684103685103686103687103688103689103690103691103692103693103694103695103696103697103698103699103700103701103702103703103704103705103706103707103708103709103710103711103712103713103714103715103716103717103718103719103720103721103722103723103724103725103726103727103728103729103730103731103732103733103734103735103736103737103738103739103740103741103742103743103744103745103746103747103748103749103750103751103752103753103754103755103756103757103758103759103760103761103762103763103764103765103766103767103768103769103770103771103772103773103774103775103776103777103778103779103780103781103782103783103784103785103786103787103788103789103790103791103792103793103794103795103796103797103798103799103800103801103802103803103804103805103806103807103808103809103810103811103812103813103814103815103816103817103818103819103820103821103822103823103824103825103826103827103828103829103830103831103832103833103834103835103836103837103838103839103840103841103842103843103844103845103846103847103848103849103850103851103852103853103854103855103856103857103858103859103860103861103862103863103864103865103866103867103868103869103870103871103872103873103874103875103876103877103878103879103880103881103882103883103884103885103886103887103888103889103890103891103892103893103894103895103896103897103898103899103900103901103902103903103904103905103906103907103908103909103910103911103912103913103914103915103916103917103918103919103920103921103922103923103924103925103926103927103928103929103930103931103932103933103934103935103936103937103938103939103940103941103942103943103944103945103946103947103948103949103950103951103952103953103954103955103956103957103958103959103960103961103962103963103964103965103966103967103968103969103970103971103972103973103974103975103976103977103978103979103980103981103982103983103984103985103986103987103988103989103990103991103992103993103994103995103996103997103998103999104000104001104002104003104004104005104006104007104008104009104010104011104012104013104014104015104016104017104018104019104020104021104022104023104024104025104026104027104028104029104030104031104032104033104034104035104036104037104038104039104040104041104042104043104044104045104046104047104048104049104050104051104052104053104054104055104056104057104058104059104060104061104062104063104064104065104066104067104068104069104070104071104072104073104074104075104076104077104078104079104080104081104082104083104084104085104086104087104088104089104090104091104092104093104094104095104096104097104098104099104100104101104102104103104104104105104106104107104108104109104110104111104112104113104114104115104116104117104118104119104120104121104122104123104124104125104126104127104128104129104130104131104132104133104134104135104136104137104138104139104140104141104142104143104144104145104146104147104148104149104150104151104152104153104154104155104156104157104158104159104160104161104162104163104164104165104166104167104168104169104170104171104172104173104174104175104176104177104178104179104180104181104182104183104184104185104186104187104188104189104190104191104192104193104194104195104196104197104198104199104200104201104202104203104204104205104206104207104208104209104210104211104212104213104214104215104216104217104218104219104220104221104222104223104224104225104226104227104228104229104230104231104232104233104234104235104236104237104238104239104240104241104242104243104244104245104246104247104248104249104250104251104252104253104254104255104256104257104258104259104260104261104262104263104264104265104266104267104268104269104270104271104272104273104274104275104276104277104278104279104280104281104282104283104284104285104286104287104288104289104290104291104292104293104294104295104296104297104298104299104300104301104302104303104304104305104306104307104308104309104310104311104312104313104314104315104316104317104318104319104320104321104322104323104324104325104326104327104328104329104330104331104332104333104334104335104336104337104338104339104340104341104342104343104344104345104346104347104348104349104350104351104352104353104354104355104356104357104358104359104360104361104362104363104364104365104366104367104368104369104370104371104372104373104374104375104376104377104378104379104380104381104382104383104384104385104386104387104388104389104390104391104392104393104394104395104396104397104398104399104400104401104402104403104404104405104406104407104408104409104410104411104412104413104414104415104416104417104418104419104420104421104422104423104424104425104426104427104428104429104430104431104432104433104434104435104436104437104438104439104440104441104442104443104444104445104446104447104448104449104450104451104452104453104454104455104456104457104458104459104460104461104462104463104464104465104466104467104468104469104470104471104472104473104474104475104476104477104478104479104480104481104482104483104484104485104486104487104488104489104490104491104492104493104494104495104496104497104498104499104500104501104502104503104504104505104506104507104508104509104510104511104512104513104514104515104516104517104518104519104520104521104522104523104524104525104526104527104528104529104530104531104532104533104534104535104536104537104538104539104540104541104542104543104544104545104546104547104548104549104550104551104552104553104554104555104556104557104558104559104560104561104562104563104564104565104566104567104568104569104570104571104572104573104574104575104576104577104578104579104580104581104582104583104584104585104586104587104588104589104590104591104592104593104594104595104596104597104598104599104600104601104602104603104604104605104606104607104608104609104610104611104612104613104614104615104616104617104618104619104620104621104622104623104624104625104626104627104628104629104630104631104632104633104634104635104636104637104638104639104640104641104642104643104644104645104646104647104648104649104650104651104652104653104654104655104656104657104658104659104660104661104662104663104664104665104666104667104668104669104670104671104672104673104674104675104676104677104678104679104680104681104682104683104684104685104686104687104688104689104690104691104692104693104694104695104696104697104698104699104700104701104702104703104704104705104706104707104708104709104710104711104712104713104714104715104716104717104718104719104720104721104722104723104724104725104726104727104728104729104730104731104732104733104734104735104736104737104738104739104740104741104742104743104744104745104746104747104748104749104750104751104752104753104754104755104756104757104758104759104760104761104762104763104764104765104766104767104768104769104770104771104772104773104774104775104776104777104778104779104780104781104782104783104784104785104786104787104788104789104790104791104792104793104794104795104796104797104798104799104800104801104802104803104804104805104806104807104808104809104810104811104812104813104814104815104816104817104818104819104820104821104822104823104824104825104826104827104828104829104830104831104832104833104834104835104836104837104838104839104840104841104842104843104844104845104846104847104848104849104850104851104852104853104854104855104856104857104858104859104860104861104862104863104864104865104866104867104868104869104870104871104872104873104874104875104876104877104878104879104880104881104882104883104884104885104886104887104888104889104890104891104892104893104894104895104896104897104898104899104900104901104902104903104904104905104906104907104908104909104910104911104912104913104914104915104916104917104918104919104920104921104922104923104924104925104926104927104928104929104930104931104932104933104934104935104936104937104938104939104940104941104942104943104944104945104946104947104948104949104950104951104952104953104954104955104956104957104958104959104960104961104962104963104964104965104966104967104968104969104970104971104972104973104974104975104976104977104978104979104980104981104982104983104984104985104986104987104988104989104990104991104992104993104994104995104996104997104998104999105000105001105002105003105004105005105006105007105008105009105010105011105012105013105014105015105016105017105018105019105020105021105022105023105024105025105026105027105028105029105030105031105032105033105034105035105036105037105038105039105040105041105042105043105044105045105046105047105048105049105050105051105052105053105054105055105056105057105058105059105060105061105062105063105064105065105066105067105068105069105070105071105072105073105074105075105076105077105078105079105080105081105082105083105084105085105086105087105088105089105090105091105092105093105094105095105096105097105098105099105100105101105102105103105104105105105106105107105108105109105110105111105112105113105114105115105116105117105118105119105120105121105122105123105124105125105126105127105128105129105130105131105132105133105134105135105136105137105138105139105140105141105142105143105144105145105146105147105148105149105150105151105152105153105154105155105156105157105158105159105160105161105162105163105164105165105166105167105168105169105170105171105172105173105174105175105176105177105178105179105180105181105182105183105184105185105186105187105188105189105190105191105192105193105194105195105196105197105198105199105200105201105202105203105204105205105206105207105208105209105210105211105212105213105214105215105216105217105218105219105220105221105222105223105224105225105226105227105228105229105230105231105232105233105234105235105236105237105238105239105240105241105242105243105244105245105246105247105248105249105250105251105252105253105254105255105256105257105258105259105260105261105262105263105264105265105266105267105268105269105270105271105272105273105274105275105276105277105278105279105280105281105282105283105284105285105286105287105288105289105290105291105292105293105294105295105296105297105298105299105300105301105302105303105304105305105306105307105308105309105310105311105312105313105314105315105316105317105318105319105320105321105322105323105324105325105326105327105328105329105330105331105332105333105334105335105336105337105338105339105340105341105342105343105344105345105346105347105348105349105350105351105352105353105354105355105356105357105358105359105360105361105362105363105364105365105366105367105368105369105370105371105372105373105374105375105376105377105378105379105380105381105382105383105384105385105386105387105388105389105390105391105392105393105394105395105396105397105398105399105400105401105402105403105404105405105406105407105408105409105410105411105412105413105414105415105416105417105418105419105420105421105422105423105424105425105426105427105428105429105430105431105432105433105434105435105436105437105438105439105440105441105442105443105444105445105446105447105448105449105450105451105452105453105454105455105456105457105458105459105460105461105462105463105464105465105466105467105468105469105470105471105472105473105474105475105476105477105478105479105480105481105482105483105484105485105486105487105488105489105490105491105492105493105494105495105496105497105498105499105500105501105502105503105504105505105506105507105508105509105510105511105512105513105514105515105516105517105518105519105520105521105522105523105524105525105526105527105528105529105530105531105532105533105534105535105536105537105538105539105540105541105542105543105544105545105546105547105548105549105550105551105552105553105554105555105556105557105558105559105560105561105562105563105564105565105566105567105568105569105570105571105572105573105574105575105576105577105578105579105580105581105582105583105584105585105586105587105588105589105590105591105592105593105594105595105596105597105598105599105600105601105602105603105604105605105606105607105608105609105610105611105612105613105614105615105616105617105618105619105620105621105622105623105624105625105626105627105628105629105630105631105632105633105634105635105636105637105638105639105640105641105642105643105644105645105646105647105648105649105650105651105652105653105654105655105656105657105658105659105660105661105662105663105664105665105666105667105668105669105670105671105672105673105674105675105676105677105678105679105680105681105682105683105684105685105686105687105688105689105690105691105692105693105694105695105696105697105698105699105700105701105702105703105704105705105706105707105708105709105710105711105712105713105714105715105716105717105718105719105720105721105722105723105724105725105726105727105728105729105730105731105732105733105734105735105736105737105738105739105740105741105742105743105744105745105746105747105748105749105750105751105752105753105754105755105756105757105758105759105760105761105762105763105764105765105766105767105768105769105770105771105772105773105774105775105776105777105778105779105780105781105782105783105784105785105786105787105788105789105790105791105792105793105794105795105796105797105798105799105800105801105802105803105804105805105806105807105808105809105810105811105812105813105814105815105816105817105818105819105820105821105822105823105824105825105826105827105828105829105830105831105832105833105834105835105836105837105838105839105840105841105842105843105844105845105846105847105848105849105850105851105852105853105854105855105856105857105858105859105860105861105862105863105864105865105866105867105868105869105870105871105872105873105874105875105876105877105878105879105880105881105882105883105884105885105886105887105888105889105890105891105892105893105894105895105896105897105898105899105900105901105902105903105904105905105906105907105908105909105910105911105912105913105914105915105916105917105918105919105920105921105922105923105924105925105926105927105928105929105930105931105932105933105934105935105936105937105938105939105940105941105942105943105944105945105946105947105948105949105950105951105952105953105954105955105956105957105958105959105960105961105962105963105964105965105966105967105968105969105970105971105972105973105974105975105976105977105978105979105980105981105982105983105984105985105986105987105988105989105990105991105992105993105994105995105996105997105998105999106000106001106002106003106004106005106006106007106008106009106010106011106012106013106014106015106016106017106018106019106020106021106022106023106024106025106026106027106028106029106030106031106032106033106034106035106036106037106038106039106040106041106042106043106044106045106046106047106048106049106050106051106052106053106054106055106056106057106058106059106060106061106062106063106064106065106066106067106068106069106070106071106072106073106074106075106076106077106078106079106080106081106082106083106084106085106086106087106088106089106090106091106092106093106094106095106096106097106098106099106100106101106102106103106104106105106106106107106108106109106110106111106112106113106114106115106116106117106118106119106120106121106122106123106124106125106126106127106128106129106130106131106132106133106134106135106136106137106138106139106140106141106142106143106144106145106146106147106148106149106150106151106152106153106154106155106156106157106158106159106160106161106162106163106164106165106166106167106168106169106170106171106172106173106174106175106176106177106178106179106180106181106182106183106184106185106186106187106188106189106190106191106192106193106194106195106196106197106198106199106200106201106202106203106204106205106206106207106208106209106210106211106212106213106214106215106216106217106218106219106220106221106222106223106224106225106226106227106228106229106230106231106232106233106234106235106236106237106238106239106240106241106242106243106244106245106246106247106248106249106250106251106252106253106254106255106256106257106258106259106260106261106262106263106264106265106266106267106268106269106270106271106272106273106274106275106276106277106278106279106280106281106282106283106284106285106286106287106288106289106290106291106292106293106294106295106296106297106298106299106300106301106302106303106304106305106306106307106308106309106310106311106312106313106314106315106316106317106318106319106320106321106322106323106324106325106326106327106328106329106330106331106332106333106334106335106336106337106338106339106340106341106342106343106344106345106346106347106348106349106350106351106352106353106354106355106356106357106358106359106360106361106362106363106364106365106366106367106368106369106370106371106372106373106374106375106376106377106378106379106380106381106382106383106384106385106386106387106388106389106390106391106392106393106394106395106396106397106398106399106400106401106402106403106404106405106406106407106408106409106410106411106412106413106414106415106416106417106418106419106420106421106422106423106424106425106426106427106428106429106430106431106432106433106434106435106436106437106438106439106440106441106442106443106444106445106446106447106448106449106450106451106452106453106454106455106456106457106458106459106460106461106462106463106464106465106466106467106468106469106470106471106472106473106474106475106476106477106478106479106480106481106482106483106484106485106486106487106488106489106490106491106492106493106494106495106496106497106498106499106500106501106502106503106504106505106506106507106508106509106510106511106512106513106514106515106516106517106518106519106520106521106522106523106524106525106526106527106528106529106530106531106532106533106534106535106536106537106538106539106540106541106542106543106544106545106546106547106548106549106550106551106552106553106554106555106556106557106558106559106560106561106562106563106564106565106566106567106568106569106570106571106572106573106574106575106576106577106578106579106580106581106582106583106584106585106586106587106588106589106590106591106592106593106594106595106596106597106598106599106600106601106602106603106604106605106606106607106608106609106610106611106612106613106614106615106616106617106618106619106620106621106622106623106624106625106626106627106628106629106630106631106632106633106634106635106636106637106638106639106640106641106642106643106644106645106646106647106648106649106650106651106652106653106654106655106656106657106658106659106660106661106662106663106664106665106666106667106668106669106670106671106672106673106674106675106676106677106678106679106680106681106682106683106684106685106686106687106688106689106690106691106692106693106694106695106696106697106698106699106700106701106702106703106704106705106706106707106708106709106710106711106712106713106714106715106716106717106718106719106720106721106722106723106724106725106726106727106728106729106730106731106732106733106734106735106736106737106738106739106740106741106742106743106744106745106746106747106748106749106750106751106752106753106754106755106756106757106758106759106760106761106762106763106764106765106766106767106768106769106770106771106772106773106774106775106776106777106778106779106780106781106782106783106784106785106786106787106788106789106790106791106792106793106794106795106796106797106798106799106800106801106802106803106804106805106806106807106808106809106810106811106812106813106814106815106816106817106818106819106820106821106822106823106824106825106826106827106828106829106830106831106832106833106834106835106836106837106838106839106840106841106842106843106844106845106846106847106848106849106850106851106852106853106854106855106856106857106858106859106860106861106862106863106864106865106866106867106868106869106870106871106872106873106874106875106876106877106878106879106880106881106882106883106884106885106886106887106888106889106890106891106892106893106894106895106896106897106898106899106900106901106902106903106904106905106906106907106908106909106910106911106912106913106914106915106916106917106918106919106920106921106922106923106924106925106926106927106928106929106930106931106932106933106934106935106936106937106938106939106940106941106942106943106944106945106946106947106948106949106950106951106952106953106954106955106956106957106958106959106960106961106962106963106964106965106966106967106968106969106970106971106972106973106974106975106976106977106978106979106980106981106982106983106984106985106986106987106988106989106990106991106992106993106994106995106996106997106998106999107000107001107002107003107004107005107006107007107008107009107010107011107012107013107014107015107016107017107018107019107020107021107022107023107024107025107026107027107028107029107030107031107032107033107034107035107036107037107038107039107040107041107042107043107044107045107046107047107048107049107050107051107052107053107054107055107056107057107058107059107060107061107062107063107064107065107066107067107068107069107070107071107072107073107074107075107076107077107078107079107080107081107082107083107084107085107086107087107088107089107090107091107092107093107094107095107096107097107098107099107100107101107102107103107104107105107106107107107108107109107110107111107112107113107114107115107116107117107118107119107120107121107122107123107124107125107126107127107128107129107130107131107132107133107134107135107136107137107138107139107140107141107142107143107144107145107146107147107148107149107150107151107152107153107154107155107156107157107158107159107160107161107162107163107164107165107166107167107168107169107170107171107172107173107174107175107176107177107178107179107180107181107182107183107184107185107186107187107188107189107190107191107192107193107194107195107196107197107198107199107200107201107202107203107204107205107206107207107208107209107210107211107212107213107214107215107216107217107218107219107220107221107222107223107224107225107226107227107228107229107230107231107232107233107234107235107236107237107238107239107240107241107242107243107244107245107246107247107248107249107250107251107252107253107254107255107256107257107258107259107260107261107262107263107264107265107266107267107268107269107270107271107272107273107274107275107276107277107278107279107280107281107282107283107284107285107286107287107288107289107290107291107292107293107294107295107296107297107298107299107300107301107302107303107304107305107306107307107308107309107310107311107312107313107314107315107316107317107318107319107320107321107322107323107324107325107326107327107328107329107330107331107332107333107334107335107336107337107338107339107340107341107342107343107344107345107346107347107348107349107350107351107352107353107354107355107356107357107358107359107360107361107362107363107364107365107366107367107368107369107370107371107372107373107374107375107376107377107378107379107380107381107382107383107384107385107386107387107388107389107390107391107392107393107394107395107396107397107398107399107400107401107402107403107404107405107406107407107408107409107410107411107412107413107414107415107416107417107418107419107420107421107422107423107424107425107426107427107428107429107430107431107432107433107434107435107436107437107438107439107440107441107442107443107444107445107446107447107448107449107450107451107452107453107454107455107456107457107458107459107460107461107462107463107464107465107466107467107468107469107470107471107472107473107474107475107476107477107478107479107480107481107482107483107484107485107486107487107488107489107490107491107492107493107494107495107496107497107498107499107500107501107502107503107504107505107506107507107508107509107510107511107512107513107514107515107516107517107518107519107520107521107522107523107524107525107526107527107528107529107530107531107532107533107534107535107536107537107538107539107540107541107542107543107544107545107546107547107548107549107550107551107552107553107554107555107556107557107558107559107560107561107562107563107564107565107566107567107568107569107570107571107572107573107574107575107576107577107578107579107580107581107582107583107584107585107586107587107588107589107590107591107592107593107594107595107596107597107598107599107600107601107602107603107604107605107606107607107608107609107610107611107612107613107614107615107616107617107618107619107620107621107622107623107624107625107626107627107628107629107630107631107632107633107634107635107636107637107638107639107640107641107642107643107644107645107646107647107648107649107650107651107652107653107654107655107656107657107658107659107660107661107662107663107664107665107666107667107668107669107670107671107672107673107674107675107676107677107678107679107680107681107682107683107684107685107686107687107688107689107690107691107692107693107694107695107696107697107698107699107700107701107702107703107704107705107706107707107708107709107710107711107712107713107714107715107716107717107718107719107720107721107722107723107724107725107726107727107728107729107730107731107732107733107734107735107736107737107738107739107740107741107742107743107744107745107746107747107748107749107750107751107752107753107754107755107756107757107758107759107760107761107762107763107764107765107766107767107768107769107770107771107772107773107774107775107776107777107778107779107780107781107782107783107784107785107786107787107788107789107790107791107792107793107794107795107796107797107798107799107800107801107802107803107804107805107806107807107808107809107810107811107812107813107814107815107816107817107818107819107820107821107822107823107824107825107826107827107828107829107830107831107832107833107834107835107836107837107838107839107840107841107842107843107844107845107846107847107848107849107850107851107852107853107854107855107856107857107858107859107860107861107862107863107864107865107866107867107868107869107870107871107872107873107874107875107876107877107878107879107880107881107882107883107884107885107886107887107888107889107890107891107892107893107894107895107896107897107898107899107900107901107902107903107904107905107906107907107908107909107910107911107912107913107914107915107916107917107918107919107920107921107922107923107924107925107926107927107928107929107930107931107932107933107934107935107936107937107938107939107940107941107942107943107944107945107946107947107948107949107950107951107952107953107954107955107956107957107958107959107960107961107962107963107964107965107966107967107968107969107970107971107972107973107974107975107976107977107978107979107980107981107982107983107984107985107986107987107988107989107990107991107992107993107994107995107996107997107998107999108000108001108002108003108004108005108006108007108008108009108010108011108012108013108014108015108016108017108018108019108020108021108022108023108024108025108026108027108028108029108030108031108032108033108034108035108036108037108038108039108040108041108042108043108044108045108046108047108048108049108050108051108052108053108054108055108056108057108058108059108060108061108062108063108064108065108066108067108068108069108070108071108072108073108074108075108076108077108078108079108080108081108082108083108084108085108086108087108088108089108090108091108092108093108094108095108096108097108098108099108100108101108102108103108104108105108106108107108108108109108110108111108112108113108114108115108116108117108118108119108120108121108122108123108124108125108126108127108128108129108130108131108132108133108134108135108136108137108138108139108140108141108142108143108144108145108146108147108148108149108150108151108152108153108154108155108156108157108158108159108160108161108162108163108164108165108166108167108168108169108170108171108172108173108174108175108176108177108178108179108180108181108182108183108184108185108186108187108188108189108190108191108192108193108194108195108196108197108198108199108200108201108202108203108204108205108206108207108208108209108210108211108212108213108214108215108216108217108218108219108220108221108222108223108224108225108226108227108228108229108230108231108232108233108234108235108236108237108238108239108240108241108242108243108244108245108246108247108248108249108250108251108252108253108254108255108256108257108258108259108260108261108262108263108264108265108266108267108268108269108270108271108272108273108274108275108276108277108278108279108280108281108282108283108284108285108286108287108288108289108290108291108292108293108294108295108296108297108298108299108300108301108302108303108304108305108306108307108308108309108310108311108312108313108314108315108316108317108318108319108320108321108322108323108324108325108326108327108328108329108330108331108332108333108334108335108336108337108338108339108340108341108342108343108344108345108346108347108348108349108350108351108352108353108354108355108356108357108358108359108360108361108362108363108364108365108366108367108368108369108370108371108372108373108374108375108376108377108378108379108380108381108382108383108384108385108386108387108388108389108390108391108392108393108394108395108396108397108398108399108400108401108402108403108404108405108406108407108408108409108410108411108412108413108414108415108416108417108418108419108420108421108422108423108424108425108426108427108428108429108430108431108432108433108434108435108436108437108438108439108440108441108442108443108444108445108446108447108448108449108450108451108452108453108454108455108456108457108458108459108460108461108462108463108464108465108466108467108468108469108470108471108472108473108474108475108476108477108478108479108480108481108482108483108484108485108486108487108488108489108490108491108492108493108494108495108496108497108498108499108500108501108502108503108504108505108506108507108508108509108510108511108512108513108514108515108516108517108518108519108520108521108522108523108524108525108526108527108528108529108530108531108532108533108534108535108536108537108538108539108540108541108542108543108544108545108546108547108548108549108550108551108552108553108554108555108556108557108558108559108560108561108562108563108564108565108566108567108568108569108570108571108572108573108574108575108576108577108578108579108580108581108582108583108584108585108586108587108588108589108590108591108592108593108594108595108596108597108598108599108600108601108602108603108604108605108606108607108608108609108610108611108612108613108614108615108616108617108618108619108620108621108622108623108624108625108626108627108628108629108630108631108632108633108634108635108636108637108638108639108640108641108642108643108644108645108646108647108648108649108650108651108652108653108654108655108656108657108658108659108660108661108662108663108664108665108666108667108668108669108670108671108672108673108674108675108676108677108678108679108680108681108682108683108684108685108686108687108688108689108690108691108692108693108694108695108696108697108698108699108700108701108702108703108704108705108706108707108708108709108710108711108712108713108714108715108716108717108718108719108720108721108722108723108724108725108726108727108728108729108730108731108732108733108734108735108736108737108738108739108740108741108742108743108744108745108746108747108748108749108750108751108752108753108754108755108756108757108758108759108760108761108762108763108764108765108766108767108768108769108770108771108772108773108774108775108776108777108778108779108780108781108782108783108784108785108786108787108788108789108790108791108792108793108794108795108796108797108798108799108800108801108802108803108804108805108806108807108808108809108810108811108812108813108814108815108816108817108818108819108820108821108822108823108824108825108826108827108828108829108830108831108832108833108834108835108836108837108838108839108840108841108842108843108844108845108846108847108848108849108850108851108852108853108854108855108856108857108858108859108860108861108862108863108864108865108866108867108868108869108870108871108872108873108874108875108876108877108878108879108880108881108882108883108884108885108886108887108888108889108890108891108892108893108894108895108896108897108898108899108900108901108902108903108904108905108906108907108908108909108910108911108912108913108914108915108916108917108918108919108920108921108922108923108924108925108926108927108928108929108930108931108932108933108934108935108936108937108938108939108940108941108942108943108944108945108946108947108948108949108950108951108952108953108954108955108956108957108958108959108960108961108962108963108964108965108966108967108968108969108970108971108972108973108974108975108976108977108978108979108980108981108982108983108984108985108986108987108988108989108990108991108992108993108994108995108996108997108998108999109000109001109002109003109004109005109006109007109008109009109010109011109012109013109014109015109016109017109018109019109020109021109022109023109024109025109026109027109028109029109030109031109032109033109034109035109036109037109038109039109040109041109042109043109044109045109046109047109048109049109050109051109052109053109054109055109056109057109058109059109060109061109062109063109064109065109066109067109068109069109070109071109072109073109074109075109076109077109078109079109080109081109082109083109084109085109086109087109088109089109090109091109092109093109094109095109096109097109098109099109100109101109102109103109104109105109106109107109108109109109110109111109112109113109114109115109116109117109118109119109120109121109122109123109124109125109126109127109128109129109130109131109132109133109134109135109136109137109138109139109140109141109142109143109144109145109146109147109148109149109150109151109152109153109154109155109156109157109158109159109160109161109162109163109164109165109166109167109168109169109170109171109172109173109174109175109176109177109178109179109180109181109182109183109184109185109186109187109188109189109190109191109192109193109194109195109196109197109198109199109200109201109202109203109204109205109206109207109208109209109210109211109212109213109214109215109216109217109218109219109220109221109222109223109224109225109226109227109228109229109230109231109232109233109234109235109236109237109238109239109240109241109242109243109244109245109246109247109248109249109250109251109252109253109254109255109256109257109258109259109260109261109262109263109264109265109266109267109268109269109270109271109272109273109274109275109276109277109278109279109280109281109282109283109284109285109286109287109288109289109290109291109292109293109294109295109296109297109298109299109300109301109302109303109304109305109306109307109308109309109310109311109312109313109314109315109316109317109318109319109320109321109322109323109324109325109326109327109328109329109330109331109332109333109334109335109336109337109338109339109340109341109342109343109344109345109346109347109348109349109350109351109352109353109354109355109356109357109358109359109360109361109362109363109364109365109366109367109368109369109370109371109372109373109374109375109376109377109378109379109380109381109382109383109384109385109386109387109388109389109390109391109392109393109394109395109396109397109398109399109400109401109402109403109404109405109406109407109408109409109410109411109412109413109414109415109416109417109418109419109420109421109422109423109424109425109426109427109428109429109430109431109432109433109434109435109436109437109438109439109440109441109442109443109444109445109446109447109448109449109450109451109452109453109454109455109456109457109458109459109460109461109462109463109464109465109466109467109468109469109470109471109472109473109474109475109476109477109478109479109480109481109482109483109484109485109486109487109488109489109490109491109492109493109494109495109496109497109498109499109500109501109502109503109504109505109506109507109508109509109510109511109512109513109514109515109516109517109518109519109520109521109522109523109524109525109526109527109528109529109530109531109532109533109534109535109536109537109538109539109540109541109542109543109544109545109546109547109548109549109550109551109552109553109554109555109556109557109558109559109560109561109562109563109564109565109566109567109568109569109570109571109572109573109574109575109576109577109578109579109580109581109582109583109584109585109586109587109588109589109590109591109592109593109594109595109596109597109598109599109600109601109602109603109604109605109606109607109608109609109610109611109612109613109614109615109616109617109618109619109620109621109622109623109624109625109626109627109628109629109630109631109632109633109634109635109636109637109638109639109640109641109642109643109644109645109646109647109648109649109650109651109652109653109654109655109656109657109658109659109660109661109662109663109664109665109666109667109668109669109670109671109672109673109674109675109676109677109678109679109680109681109682109683109684109685109686109687109688109689109690109691109692109693109694109695109696109697109698109699109700109701109702109703109704109705109706109707109708109709109710109711109712109713109714109715109716109717109718109719109720109721109722109723109724109725109726109727109728109729109730109731109732109733109734109735109736109737109738109739109740109741109742109743109744109745109746109747109748109749109750109751109752109753109754109755109756109757109758109759109760109761109762109763109764109765109766109767109768109769109770109771109772109773109774109775109776109777109778109779109780109781109782109783109784109785109786109787109788109789109790109791109792109793109794109795109796109797109798109799109800109801109802109803109804109805109806109807109808109809109810109811109812109813109814109815109816109817109818109819109820109821109822109823109824109825109826109827109828109829109830109831109832109833109834109835109836109837109838109839109840109841109842109843109844109845109846109847109848109849109850109851109852109853109854109855109856109857109858109859109860109861109862109863109864109865109866109867109868109869109870109871109872109873109874109875109876109877109878109879109880109881109882109883109884109885109886109887109888109889109890109891109892109893109894109895109896109897109898109899109900109901109902109903109904109905109906109907109908109909109910109911109912109913109914109915109916109917109918109919109920109921109922109923109924109925109926109927109928109929109930109931109932109933109934109935109936109937109938109939109940109941109942109943109944109945109946109947109948109949109950109951109952109953109954109955109956109957109958109959109960109961109962109963109964109965109966109967109968109969109970109971109972109973109974109975109976109977109978109979109980109981109982109983109984109985109986109987109988109989109990109991109992109993109994109995109996109997109998109999110000110001110002110003110004110005110006110007110008110009110010110011110012110013110014110015110016110017110018110019110020110021110022110023110024110025110026110027110028110029110030110031110032110033110034110035110036110037110038110039110040110041110042110043110044110045110046110047110048110049110050110051110052110053110054110055110056110057110058110059110060110061110062110063110064110065110066110067110068110069110070110071110072110073110074110075110076110077110078110079110080110081110082110083110084110085110086110087110088110089110090110091110092110093110094110095110096110097110098110099110100110101110102110103110104110105110106110107110108110109110110110111110112110113110114110115110116110117110118110119110120110121110122110123110124110125110126110127110128110129110130110131110132110133110134110135110136110137110138110139110140110141110142110143110144110145110146110147110148110149110150110151110152110153110154110155110156110157110158110159110160110161110162110163110164110165110166110167110168110169110170110171110172110173110174110175110176110177110178110179110180110181110182110183110184110185110186110187110188110189110190110191110192110193110194110195110196110197110198110199110200110201110202110203110204110205110206110207110208110209110210110211110212110213110214110215110216110217110218110219110220110221110222110223110224110225110226110227110228110229110230110231110232110233110234110235110236110237110238110239110240110241110242110243110244110245110246110247110248110249110250110251110252110253110254110255110256110257110258110259110260110261110262110263110264110265110266110267110268110269110270110271110272110273110274110275110276110277110278110279110280110281110282110283110284110285110286110287110288110289110290110291110292110293110294110295110296110297110298110299110300110301110302110303110304110305110306110307110308110309110310110311110312110313110314110315110316110317110318110319110320110321110322110323110324110325110326110327110328110329110330110331110332110333110334110335110336110337110338110339110340110341110342110343110344110345110346110347110348110349110350110351110352110353110354110355110356110357110358110359110360110361110362110363110364110365110366110367110368110369110370110371110372110373110374110375110376110377110378110379110380110381110382110383110384110385110386110387110388110389110390110391110392110393110394110395110396110397110398110399110400110401110402110403110404110405110406110407110408110409110410110411110412110413110414110415110416110417110418110419110420110421110422110423110424110425110426110427110428110429110430110431110432110433110434110435110436110437110438110439110440110441110442110443110444110445110446110447110448110449110450110451110452110453110454110455110456110457110458110459110460110461110462110463110464110465110466110467110468110469110470110471110472110473110474110475110476110477110478110479110480110481110482110483110484110485110486110487110488110489110490110491110492110493110494110495110496110497110498110499110500110501110502110503110504110505110506110507110508110509110510110511110512110513110514110515110516110517110518110519110520110521110522110523110524110525110526110527110528110529110530110531110532110533110534110535110536110537110538110539110540110541110542110543110544110545110546110547110548110549110550110551110552110553110554110555110556110557110558110559110560110561110562110563110564110565110566110567110568110569110570110571110572110573110574110575110576110577110578110579110580110581110582110583110584110585110586110587110588110589110590110591110592110593110594110595110596110597110598110599110600110601110602110603110604110605110606110607110608110609110610110611110612110613110614110615110616110617110618110619110620110621110622110623110624110625110626110627110628110629110630110631110632110633110634110635110636110637110638110639110640110641110642110643110644110645110646110647110648110649110650110651110652110653110654110655110656110657110658110659110660110661110662110663110664110665110666110667110668110669110670110671110672110673110674110675110676110677110678110679110680110681110682110683110684110685110686110687110688110689110690110691110692110693110694110695110696110697110698110699110700110701110702110703110704110705110706110707110708110709110710110711110712110713110714110715110716110717110718110719110720110721110722110723110724110725110726110727110728110729110730110731110732110733110734110735110736110737110738110739110740110741110742110743110744110745110746110747110748110749110750110751110752110753110754110755110756110757110758110759110760110761110762110763110764110765110766110767110768110769110770110771110772110773110774110775110776110777110778110779110780110781110782110783110784110785110786110787110788110789110790110791110792110793110794110795110796110797110798110799110800110801110802110803110804110805110806110807110808110809110810110811110812110813110814110815110816110817110818110819110820110821110822110823110824110825110826110827110828110829110830110831110832110833110834110835110836110837110838110839110840110841110842110843110844110845110846110847110848110849110850110851110852110853110854110855110856110857110858110859110860110861110862110863110864110865110866110867110868110869110870110871110872110873110874110875110876110877110878110879110880110881110882110883110884110885110886110887110888110889110890110891110892110893110894110895110896110897110898110899110900110901110902110903110904110905110906110907110908110909110910110911110912110913110914110915110916110917110918110919110920110921110922110923110924110925110926110927110928110929110930110931110932110933110934110935110936110937110938110939110940110941110942110943110944110945110946110947110948110949110950110951110952110953110954110955110956110957110958110959110960110961110962110963110964110965110966110967110968110969110970110971110972110973110974110975110976110977110978110979110980110981110982110983110984110985110986110987110988110989110990110991110992110993110994110995110996110997110998110999111000111001111002111003111004111005111006111007111008111009111010111011111012111013111014111015111016111017111018111019111020111021111022111023111024111025111026111027111028111029111030111031111032111033111034111035111036111037111038111039111040111041111042111043111044111045111046111047111048111049111050111051111052111053111054111055111056111057111058111059111060111061111062111063111064111065111066111067111068111069111070111071111072111073111074111075111076111077111078111079111080111081111082111083111084111085111086111087111088111089111090111091111092111093111094111095111096111097111098111099111100111101111102111103111104111105111106111107111108111109111110111111111112111113111114111115111116111117111118111119111120111121111122111123111124111125111126111127111128111129111130111131111132111133111134111135111136111137111138111139111140111141111142111143111144111145111146111147111148111149111150111151111152111153111154111155111156111157111158111159111160111161111162111163111164111165111166111167111168111169111170111171111172111173111174111175111176111177111178111179111180111181111182111183111184111185111186111187111188111189111190111191111192111193111194111195111196111197111198111199111200111201111202111203111204111205111206111207111208111209111210111211111212111213111214111215111216111217111218111219111220111221111222111223111224111225111226111227111228111229111230111231111232111233111234111235111236111237111238111239111240111241111242111243111244111245111246111247111248111249111250111251111252111253111254111255111256111257111258111259111260111261111262111263111264111265111266111267111268111269111270111271111272111273111274111275111276111277111278111279111280111281111282111283111284111285111286111287111288111289111290111291111292111293111294111295111296111297111298111299111300111301111302111303111304111305111306111307111308111309111310111311111312111313111314111315111316111317111318111319111320111321111322111323111324111325111326111327111328111329111330111331111332111333111334111335111336111337111338111339111340111341111342111343111344111345111346111347111348111349111350111351111352111353111354111355111356111357111358111359111360111361111362111363111364111365111366111367111368111369111370111371111372111373111374111375111376111377111378111379111380111381111382111383111384111385111386111387111388111389111390111391111392111393111394111395111396111397111398111399111400111401111402111403111404111405111406111407111408111409111410111411111412111413111414111415111416111417111418111419111420111421111422111423111424111425111426111427111428111429111430111431111432111433111434111435111436111437111438111439111440111441111442111443111444111445111446111447111448111449111450111451111452111453111454111455111456111457111458111459111460111461111462111463111464111465111466111467111468111469111470111471111472111473111474111475111476111477111478111479111480111481111482111483111484111485111486111487111488111489111490111491111492111493111494111495111496111497111498111499111500111501111502111503111504111505111506111507111508111509111510111511111512111513111514111515111516111517111518111519111520111521111522111523111524111525111526111527111528111529111530111531111532111533111534111535111536111537111538111539111540111541111542111543111544111545111546111547111548111549111550111551111552111553111554111555111556111557111558111559111560111561111562111563111564111565111566111567111568111569111570111571111572111573111574111575111576111577111578111579111580111581111582111583111584111585111586111587111588111589111590111591111592111593111594111595111596111597111598111599111600111601111602111603111604111605111606111607111608111609111610111611111612111613111614111615111616111617111618111619111620111621111622111623111624111625111626111627111628111629111630111631111632111633111634111635111636111637111638111639111640111641111642111643111644111645111646111647111648111649111650111651111652111653111654111655111656111657111658111659111660111661111662111663111664111665111666111667111668111669111670111671111672111673111674111675111676111677111678111679111680111681111682111683111684111685111686111687111688111689111690111691111692111693111694111695111696111697111698111699111700111701111702111703111704111705111706111707111708111709111710111711111712111713111714111715111716111717111718111719111720111721111722111723111724111725111726111727111728111729111730111731111732111733111734111735111736111737111738111739111740111741111742111743111744111745111746111747111748111749111750111751111752111753111754111755111756111757111758111759111760111761111762111763111764111765111766111767111768111769111770111771111772111773111774111775111776111777111778111779111780111781111782111783111784111785111786111787111788111789111790111791111792111793111794111795111796111797111798111799111800111801111802111803111804111805111806111807111808111809111810111811111812111813111814111815111816111817111818111819111820111821111822111823111824111825111826111827111828111829111830111831111832111833111834111835111836111837111838111839111840111841111842111843111844111845111846111847111848111849111850111851111852111853111854111855111856111857111858111859111860111861111862111863111864111865111866111867111868111869111870111871111872111873111874111875111876111877111878111879111880111881111882111883111884111885111886111887111888111889111890111891111892111893111894111895111896111897111898111899111900111901111902111903111904111905111906111907111908111909111910111911111912111913111914111915111916111917111918111919111920111921111922111923111924111925111926111927111928111929111930111931111932111933111934111935111936111937111938111939111940111941111942111943111944111945111946111947111948111949111950111951111952111953111954111955111956111957111958111959111960111961111962111963111964111965111966111967111968111969111970111971111972111973111974111975111976111977111978111979111980111981111982111983111984111985111986111987111988111989111990111991111992111993111994111995111996111997111998111999112000112001112002112003112004112005112006112007112008112009112010112011112012112013112014112015112016112017112018112019112020112021112022112023112024112025112026112027112028112029112030112031112032112033112034112035112036112037112038112039112040112041112042112043112044112045112046112047112048112049112050112051112052112053112054112055112056112057112058112059112060112061112062112063112064112065112066112067112068112069112070112071112072112073112074112075112076112077112078112079112080112081112082112083112084112085112086112087112088112089112090112091112092112093112094112095112096112097112098112099112100112101112102112103112104112105112106112107112108112109112110112111112112112113112114112115112116112117112118112119112120112121112122112123112124112125112126112127112128112129112130112131112132112133112134112135112136112137112138112139112140112141112142112143112144112145112146112147112148112149112150112151112152112153112154112155112156112157112158112159112160112161112162112163112164112165112166112167112168112169112170112171112172112173112174112175112176112177112178112179112180112181112182112183112184112185112186112187112188112189112190112191112192112193112194112195112196112197112198112199112200112201112202112203112204112205112206112207112208112209112210112211112212112213112214112215112216112217112218112219112220112221112222112223112224112225112226112227112228112229112230112231112232112233112234112235112236112237112238112239112240112241112242112243112244112245112246112247112248112249112250112251112252112253112254112255112256112257112258112259112260112261112262112263112264112265112266112267112268112269112270112271112272112273112274112275112276112277112278112279112280112281112282112283112284112285112286112287112288112289112290112291112292112293112294112295112296112297112298112299112300112301112302112303112304112305112306112307112308112309112310112311112312112313112314112315112316112317112318112319112320112321112322112323112324112325112326112327112328112329112330112331112332112333112334112335112336112337112338112339112340112341112342112343112344112345112346112347112348112349112350112351112352112353112354112355112356112357112358112359112360112361112362112363112364112365112366112367112368112369112370112371112372112373112374112375112376112377112378112379112380112381112382112383112384112385112386112387112388112389112390112391112392112393112394112395112396112397112398112399112400112401112402112403112404112405112406112407112408112409112410112411112412112413112414112415112416112417112418112419112420112421112422112423112424112425112426112427112428112429112430112431112432112433112434112435112436112437112438112439112440112441112442112443112444112445112446112447112448112449112450112451112452112453112454112455112456112457112458112459112460112461112462112463112464112465112466112467112468112469112470112471112472112473112474112475112476112477112478112479112480112481112482112483112484112485112486112487112488112489112490112491112492112493112494112495112496112497112498112499112500112501112502112503112504112505112506112507112508112509112510112511112512112513112514112515112516112517112518112519112520112521112522112523112524112525112526112527112528112529112530112531112532112533112534112535112536112537112538112539112540112541112542112543112544112545112546112547112548112549112550112551112552112553112554112555112556112557112558112559112560112561112562112563112564112565112566112567112568112569112570112571112572112573112574112575112576112577112578112579112580112581112582112583112584112585112586112587112588112589112590112591112592112593112594112595112596112597112598112599112600112601112602112603112604112605112606112607112608112609112610112611112612112613112614112615112616112617112618112619112620112621112622112623112624112625112626112627112628112629112630112631112632112633112634112635112636112637112638112639112640112641112642112643112644112645112646112647112648112649112650112651112652112653112654112655112656112657112658112659112660112661112662112663112664112665112666112667112668112669112670112671112672112673112674112675112676112677112678112679112680112681112682112683112684112685112686112687112688112689112690112691112692112693112694112695112696112697112698112699112700112701112702112703112704112705112706112707112708112709112710112711112712112713112714112715112716112717112718112719112720112721112722112723112724112725112726112727112728112729112730112731112732112733112734112735112736112737112738112739112740112741112742112743112744112745112746112747112748112749112750112751112752112753112754112755112756112757112758112759112760112761112762112763112764112765112766112767112768112769112770112771112772112773112774112775112776112777112778112779112780112781112782112783112784112785112786112787112788112789112790112791112792112793112794112795112796112797112798112799112800112801112802112803112804112805112806112807112808112809112810112811112812112813112814112815112816112817112818112819112820112821112822112823112824112825112826112827112828112829112830112831112832112833112834112835112836112837112838112839112840112841112842112843112844112845112846112847112848112849112850112851112852112853112854112855112856112857112858112859112860112861112862112863112864112865112866112867112868112869112870112871112872112873112874112875112876112877112878112879112880112881112882112883112884112885112886112887112888112889112890112891112892112893112894112895112896112897112898112899112900112901112902112903112904112905112906112907112908112909112910112911112912112913112914112915112916112917112918112919112920112921112922112923112924112925112926112927112928112929112930112931112932112933112934112935112936112937112938112939112940112941112942112943112944112945112946112947112948112949112950112951112952112953112954112955112956112957112958112959112960112961112962112963112964112965112966112967112968112969112970112971112972112973112974112975112976112977112978112979112980112981112982112983112984112985112986112987112988112989112990112991112992112993112994112995112996112997112998112999113000113001113002113003113004113005113006113007113008113009113010113011113012113013113014113015113016113017113018113019113020113021113022113023113024113025113026113027113028113029113030113031113032113033113034113035113036113037113038113039113040113041113042113043113044113045113046113047113048113049113050113051113052113053113054113055113056113057113058113059113060113061113062113063113064113065113066113067113068113069113070113071113072113073113074113075113076113077113078113079113080113081113082113083113084113085113086113087113088113089113090113091113092113093113094113095113096113097113098113099113100113101113102113103113104113105113106113107113108113109113110113111113112113113113114113115113116113117113118113119113120113121113122113123113124113125113126113127113128113129113130113131113132113133113134113135113136113137113138113139113140113141113142113143113144113145113146113147113148113149113150113151113152113153113154113155113156113157113158113159113160113161113162113163113164113165113166113167113168113169113170113171113172113173113174113175113176113177113178113179113180113181113182113183113184113185113186113187113188113189113190113191113192113193113194113195113196113197113198113199113200113201113202113203113204113205113206113207113208113209113210113211113212113213113214113215113216113217113218113219113220113221113222113223113224113225113226113227113228113229113230113231113232113233113234113235113236113237113238113239113240113241113242113243113244113245113246113247113248113249113250113251113252113253113254113255113256113257113258113259113260113261113262113263113264113265113266113267113268113269113270113271113272113273113274113275113276113277113278113279113280113281113282113283113284113285113286113287113288113289113290113291113292113293113294113295113296113297113298113299113300113301113302113303113304113305113306113307113308113309113310113311113312113313113314113315113316113317113318113319113320113321113322113323113324113325113326113327113328113329113330113331113332113333113334113335113336113337113338113339113340113341113342113343113344113345113346113347113348113349113350113351113352113353113354113355113356113357113358113359113360113361113362113363113364113365113366113367113368113369113370113371113372113373113374113375113376113377113378113379113380113381113382113383113384113385113386113387113388113389113390113391113392113393113394113395113396113397113398113399113400113401113402113403113404113405113406113407113408113409113410113411113412113413113414113415113416113417113418113419113420113421113422113423113424113425113426113427113428113429113430113431113432113433113434113435113436113437113438113439113440113441113442113443113444113445113446113447113448113449113450113451113452113453113454113455113456113457113458113459113460113461113462113463113464113465113466113467113468113469113470113471113472113473113474113475113476113477113478113479113480113481113482113483113484113485113486113487113488113489113490113491113492113493113494113495113496113497113498113499113500113501113502113503113504113505113506113507113508113509113510113511113512113513113514113515113516113517113518113519113520113521113522113523113524113525113526113527113528113529113530113531113532113533113534113535113536113537113538113539113540113541113542113543113544113545113546113547113548113549113550113551113552113553113554113555113556113557113558113559113560113561113562113563113564113565113566113567113568113569113570113571113572113573113574113575113576113577113578113579113580113581113582113583113584113585113586113587113588113589113590113591113592113593113594113595113596113597113598113599113600113601113602113603113604113605113606113607113608113609113610113611113612113613113614113615113616113617113618113619113620113621113622113623113624113625113626113627113628113629113630113631113632113633113634113635113636113637113638113639113640113641113642113643113644113645113646113647113648113649113650113651113652113653113654113655113656113657113658113659113660113661113662113663113664113665113666113667113668113669113670113671113672113673113674113675113676113677113678113679113680113681113682113683113684113685113686113687113688113689113690113691113692113693113694113695113696113697113698113699113700113701113702113703113704113705113706113707113708113709113710113711113712113713113714113715113716113717113718113719113720113721113722113723113724113725113726113727113728113729113730113731113732113733113734113735113736113737113738113739113740113741113742113743113744113745113746113747113748113749113750113751113752113753113754113755113756113757113758113759113760113761113762113763113764113765113766113767113768113769113770113771113772113773113774113775113776113777113778113779113780113781113782113783113784113785113786113787113788113789113790113791113792113793113794113795113796113797113798113799113800113801113802113803113804113805113806113807113808113809113810113811113812113813113814113815113816113817113818113819113820113821113822113823113824113825113826113827113828113829113830113831113832113833113834113835113836113837113838113839113840113841113842113843113844113845113846113847113848113849113850113851113852113853113854113855113856113857113858113859113860113861113862113863113864113865113866113867113868113869113870113871113872113873113874113875113876113877113878113879113880113881113882113883113884113885113886113887113888113889113890113891113892113893113894113895113896113897113898113899113900113901113902113903113904113905113906113907113908113909113910113911113912113913113914113915113916113917113918113919113920113921113922113923113924113925113926113927113928113929113930113931113932113933113934113935113936113937113938113939113940113941113942113943113944113945113946113947113948113949113950113951113952113953113954113955113956113957113958113959113960113961113962113963113964113965113966113967113968113969113970113971113972113973113974113975113976113977113978113979113980113981113982113983113984113985113986113987113988113989113990113991113992113993113994113995113996113997113998113999114000114001114002114003114004114005114006114007114008114009114010114011114012114013114014114015114016114017114018114019114020114021114022114023114024114025114026114027114028114029114030114031114032114033114034114035114036114037114038114039114040114041114042114043114044114045114046114047114048114049114050114051114052114053114054114055114056114057114058114059114060114061114062114063114064114065114066114067114068114069114070114071114072114073114074114075114076114077114078114079114080114081114082114083114084114085114086114087114088114089114090114091114092114093114094114095114096114097114098114099114100114101114102114103114104114105114106114107114108114109114110114111114112114113114114114115114116114117114118114119114120114121114122114123114124114125114126114127114128114129114130114131114132114133114134114135114136114137114138114139114140114141114142114143114144114145114146114147114148114149114150114151114152114153114154114155114156114157114158114159114160114161114162114163114164114165114166114167114168114169114170114171114172114173114174114175114176114177114178114179114180114181114182114183114184114185114186114187114188114189114190114191114192114193114194114195114196114197114198114199114200114201114202114203114204114205114206114207114208114209114210114211114212114213114214114215114216114217114218114219114220114221114222114223114224114225114226114227114228114229114230114231114232114233114234114235114236114237114238114239114240114241114242114243114244114245114246114247114248114249114250114251114252114253114254114255114256114257114258114259114260114261114262114263114264114265114266114267114268114269114270114271114272114273114274114275114276114277114278114279114280114281114282114283114284114285114286114287114288114289114290114291114292114293114294114295114296114297114298114299114300114301114302114303114304114305114306114307114308114309114310114311114312114313114314114315114316114317114318114319114320114321114322114323114324114325114326114327114328114329114330114331114332114333114334114335114336114337114338114339114340114341114342114343114344114345114346114347114348114349114350114351114352114353114354114355114356114357114358114359114360114361114362114363114364114365114366114367114368114369114370114371114372114373114374114375114376114377114378114379114380114381114382114383114384114385114386114387114388114389114390114391114392114393114394114395114396114397114398114399114400114401114402114403114404114405114406114407114408114409114410114411114412114413114414114415114416114417114418114419114420114421114422114423114424114425114426114427114428114429114430114431114432114433114434114435114436114437114438114439114440114441114442114443114444114445114446114447114448114449114450114451114452114453114454114455114456114457114458114459114460114461114462114463114464114465114466114467114468114469114470114471114472114473114474114475114476114477114478114479114480114481114482114483114484114485114486114487114488114489114490114491114492114493114494114495114496114497114498114499114500114501114502114503114504114505114506114507114508114509114510114511114512114513114514114515114516114517114518114519114520114521114522114523114524114525114526114527114528114529114530114531114532114533114534114535114536114537114538114539114540114541114542114543114544114545114546114547114548114549114550114551114552114553114554114555114556114557114558114559114560114561114562114563114564114565114566114567114568114569114570114571114572114573114574114575114576114577114578114579114580114581114582114583114584114585114586114587114588114589114590114591114592114593114594114595114596114597114598114599114600114601114602114603114604114605114606114607114608114609114610114611114612114613114614114615114616114617114618114619114620114621114622114623114624114625114626114627114628114629114630114631114632114633114634114635114636114637114638114639114640114641114642114643114644114645114646114647114648114649114650114651114652114653114654114655114656114657114658114659114660114661114662114663114664114665114666114667114668114669114670114671114672114673114674114675114676114677114678114679114680114681114682114683114684114685114686114687114688114689114690114691114692114693114694114695114696114697114698114699114700114701114702114703114704114705114706114707114708114709114710114711114712114713114714114715114716114717114718114719114720114721114722114723114724114725114726114727114728114729114730114731114732114733114734114735114736114737114738114739114740114741114742114743114744114745114746114747114748114749114750114751114752114753114754114755114756114757114758114759114760114761114762114763114764114765114766114767114768114769114770114771114772114773114774114775114776114777114778114779114780114781114782114783114784114785114786114787114788114789114790114791114792114793114794114795114796114797114798114799114800114801114802114803114804114805114806114807114808114809114810114811114812114813114814114815114816114817114818114819114820114821114822114823114824114825114826114827114828114829114830114831114832114833114834114835114836114837114838114839114840114841114842114843114844114845114846114847114848114849114850114851114852114853114854114855114856114857114858114859114860114861114862114863114864114865114866114867114868114869114870114871114872114873114874114875114876114877114878114879114880114881114882114883114884114885114886114887114888114889114890114891114892114893114894114895114896114897114898114899114900114901114902114903114904114905114906114907114908114909114910114911114912114913114914114915114916114917114918114919114920114921114922114923114924114925114926114927114928114929114930114931114932114933114934114935114936114937114938114939114940114941114942114943114944114945114946114947114948114949114950114951114952114953114954114955114956114957114958114959114960114961114962114963114964114965114966114967114968114969114970114971114972114973114974114975114976114977114978114979114980114981114982114983114984114985114986114987114988114989114990114991114992114993114994114995114996114997114998114999115000115001115002115003115004115005115006115007115008115009115010115011115012115013115014115015115016115017115018115019115020115021115022115023115024115025115026115027115028115029115030115031115032115033115034115035115036115037115038115039115040115041115042115043115044115045115046115047115048115049115050115051115052115053115054115055115056115057115058115059115060115061115062115063115064115065115066115067115068115069115070115071115072115073115074115075115076115077115078115079115080115081115082115083115084115085115086115087115088115089115090115091115092115093115094115095115096115097115098115099115100115101115102115103115104115105115106115107115108115109115110115111115112115113115114115115115116115117115118115119115120115121115122115123115124115125115126115127115128115129115130115131115132115133115134115135115136115137115138115139115140115141115142115143115144115145115146115147115148115149115150115151115152115153115154115155115156115157115158115159115160115161115162115163115164115165115166115167115168115169115170115171115172115173115174115175115176115177115178115179115180115181115182115183115184115185115186115187115188115189115190115191115192115193115194115195115196115197115198115199115200115201115202115203115204115205115206115207115208115209115210115211115212115213115214115215115216115217115218115219115220115221115222115223115224115225115226115227115228115229115230115231115232115233115234115235115236115237115238115239115240115241115242115243115244115245115246115247115248115249115250115251115252115253115254115255115256115257115258115259115260115261115262115263115264115265115266115267115268115269115270115271115272115273115274115275115276115277115278115279115280115281115282115283115284115285115286115287115288115289115290115291115292115293115294115295115296115297115298115299115300115301115302115303115304115305115306115307115308115309115310115311115312115313115314115315115316115317115318115319115320115321115322115323115324115325115326115327115328115329115330115331115332115333115334115335115336115337115338115339115340115341115342115343115344115345115346115347115348115349115350115351115352115353115354115355115356115357115358115359115360115361115362115363115364115365115366115367115368115369115370115371115372115373115374115375115376115377115378115379115380115381115382115383115384115385115386115387115388115389115390115391115392115393115394115395115396115397115398115399115400115401115402115403115404115405115406115407115408115409115410115411115412115413115414115415115416115417115418115419115420115421115422115423115424115425115426115427115428115429115430115431115432115433115434115435115436115437115438115439115440115441115442115443115444115445115446115447115448115449115450115451115452115453115454115455115456115457115458115459115460115461115462115463115464115465115466115467115468115469115470115471115472115473115474115475115476115477115478115479115480115481115482115483115484115485115486115487115488115489115490115491115492115493115494115495115496115497115498115499115500115501115502115503115504115505115506115507115508115509115510115511115512115513115514115515115516115517115518115519115520115521115522115523115524115525115526115527115528115529115530115531115532115533115534115535115536115537115538115539115540115541115542115543115544115545115546115547115548115549115550115551115552115553115554115555115556115557115558115559115560115561115562115563115564115565115566115567115568115569115570115571115572115573115574115575115576115577115578115579115580115581115582115583115584115585115586115587115588115589115590115591115592115593115594115595115596115597115598115599115600115601115602115603115604115605115606115607115608115609115610115611115612115613115614115615115616115617115618115619115620115621115622115623115624115625115626115627115628115629115630115631115632115633115634115635115636115637115638115639115640115641115642115643115644115645115646115647115648115649115650115651115652115653115654115655115656115657115658115659115660115661115662115663115664115665115666115667115668115669115670115671115672115673115674115675115676115677115678115679115680115681115682115683115684115685115686115687115688115689115690115691115692115693115694115695115696115697115698115699115700115701115702115703115704115705115706115707115708115709115710115711115712115713115714115715115716115717115718115719115720115721115722115723115724115725115726115727115728115729115730115731115732115733115734115735115736115737115738115739115740115741115742115743115744115745115746115747115748115749115750115751115752115753115754115755115756115757115758115759115760115761115762115763115764115765115766115767115768115769115770115771115772115773115774115775115776115777115778115779115780115781115782115783115784115785115786115787115788115789115790115791115792115793115794115795115796115797115798115799115800115801115802115803115804115805115806115807115808115809115810115811115812115813115814115815115816115817115818115819115820115821115822115823115824115825115826115827115828115829115830115831115832115833115834115835115836115837115838115839115840115841115842115843115844115845115846115847115848115849115850115851115852115853115854115855115856115857115858115859115860115861115862115863115864115865115866115867115868115869115870115871115872115873115874115875115876115877115878115879115880115881115882115883115884115885115886115887115888115889115890115891115892115893115894115895115896115897115898115899115900115901115902115903115904115905115906115907115908115909115910115911115912115913115914115915115916115917115918115919115920115921115922115923115924115925115926115927115928115929115930115931115932115933115934115935115936115937115938115939115940115941115942115943115944115945115946115947115948115949115950115951115952115953115954115955115956115957115958115959115960115961115962115963115964115965115966115967115968115969115970115971115972115973115974115975115976115977115978115979115980115981115982115983115984115985115986115987115988115989115990115991115992115993115994115995115996115997115998115999116000116001116002116003116004116005116006116007116008116009116010116011116012116013116014116015116016116017116018116019116020116021116022116023116024116025116026116027116028116029116030116031116032116033116034116035116036116037116038116039116040116041116042116043116044116045116046116047116048116049116050116051116052116053116054116055116056116057116058116059116060116061116062116063116064116065116066116067116068116069116070116071116072116073116074116075116076116077116078116079116080116081116082116083116084116085116086116087116088116089116090116091116092116093116094116095116096116097116098116099116100116101116102116103116104116105116106116107116108116109116110116111116112116113116114116115116116116117116118116119116120116121116122116123116124116125116126116127116128116129116130116131116132116133116134116135116136116137116138116139116140116141116142116143116144116145116146116147116148116149116150116151116152116153116154116155116156116157116158116159116160116161116162116163116164116165116166116167116168116169116170116171116172116173116174116175116176116177116178116179116180116181116182116183116184116185116186116187116188116189116190116191116192116193116194116195116196116197116198116199116200116201116202116203116204116205116206116207116208116209116210116211116212116213116214116215116216116217116218116219116220116221116222116223116224116225116226116227116228116229116230116231116232116233116234116235116236116237116238116239116240116241116242116243116244116245116246116247116248116249116250116251116252116253116254116255116256116257116258116259116260116261116262116263116264116265116266116267116268116269116270116271116272116273116274116275116276116277116278116279116280116281116282116283116284116285116286116287116288116289116290116291116292116293116294116295116296116297116298116299116300116301116302116303116304116305116306116307116308116309116310116311116312116313116314116315116316116317116318116319116320116321116322116323116324116325116326116327116328116329116330116331116332116333116334116335116336116337116338116339116340116341116342116343116344116345116346116347116348116349116350116351116352116353116354116355116356116357116358116359116360116361116362116363116364116365116366116367116368116369116370116371116372116373116374116375116376116377116378116379116380116381116382116383116384116385116386116387116388116389116390116391116392116393116394116395116396116397116398116399116400116401116402116403116404116405116406116407116408116409116410116411116412116413116414116415116416116417116418116419116420116421116422116423116424116425116426116427116428116429116430116431116432116433116434116435116436116437116438116439116440116441116442116443116444116445116446116447116448116449116450116451116452116453116454116455116456116457116458116459116460116461116462116463116464116465116466116467116468116469116470116471116472116473116474116475116476116477116478116479116480116481116482116483116484116485116486116487116488116489116490116491116492116493116494116495116496116497116498116499116500116501116502116503116504116505116506116507116508116509116510116511116512116513116514116515116516116517116518116519116520116521116522116523116524116525116526116527116528116529116530116531116532116533116534116535116536116537116538116539116540116541116542116543116544116545116546116547116548116549116550116551116552116553116554116555116556116557116558116559116560116561116562116563116564116565116566116567116568116569116570116571116572116573116574116575116576116577116578116579116580116581116582116583116584116585116586116587116588116589116590116591116592116593116594116595116596116597116598116599116600116601116602116603116604116605116606116607116608116609116610116611116612116613116614116615116616116617116618116619116620116621116622116623116624116625116626116627116628116629116630116631116632116633116634116635116636116637116638116639116640116641116642116643116644116645116646116647116648116649116650116651116652116653116654116655116656116657116658116659116660116661116662116663116664116665116666116667116668116669116670116671116672116673116674116675116676116677116678116679116680116681116682116683116684116685116686116687116688116689116690116691116692116693116694116695116696116697116698116699116700116701116702116703116704116705116706116707116708116709116710116711116712116713116714116715116716116717116718116719116720116721116722116723116724116725116726116727116728116729116730116731116732116733116734116735116736116737116738116739116740116741116742116743116744116745116746116747116748116749116750116751116752116753116754116755116756116757116758116759116760116761116762116763116764116765116766116767116768116769116770116771116772116773116774116775116776116777116778116779116780116781116782116783116784116785116786116787116788116789116790116791116792116793116794116795116796116797116798116799116800116801116802116803116804116805116806116807116808116809116810116811116812116813116814116815116816116817116818116819116820116821116822116823116824116825116826116827116828116829116830116831116832116833116834116835116836116837116838116839116840116841116842116843116844116845116846116847116848116849116850116851116852116853116854116855116856116857116858116859116860116861116862116863116864116865116866116867116868116869116870116871116872116873116874116875116876116877116878116879116880116881116882116883116884116885116886116887116888116889116890116891116892116893116894116895116896116897116898116899116900116901116902116903116904116905116906116907116908116909116910116911116912116913116914116915116916116917116918116919116920116921116922116923116924116925116926116927116928116929116930116931116932116933116934116935116936116937116938116939116940116941116942116943116944116945116946116947116948116949116950116951116952116953116954116955116956116957116958116959116960116961116962116963116964116965116966116967116968116969116970116971116972116973116974116975116976116977116978116979116980116981116982116983116984116985116986116987116988116989116990116991116992116993116994116995116996116997116998116999117000117001117002117003117004117005117006117007117008117009117010117011117012117013117014117015117016117017117018117019117020117021117022117023117024117025117026117027117028117029117030117031117032117033117034117035117036117037117038117039117040117041117042117043117044117045117046117047117048117049117050117051117052117053117054117055117056117057117058117059117060117061117062117063117064117065117066117067117068117069117070117071117072117073117074117075117076117077117078117079117080117081117082117083117084117085117086117087117088117089117090117091117092117093117094117095117096117097117098117099117100117101117102117103117104117105117106117107117108117109117110117111117112117113117114117115117116117117117118117119117120117121117122117123117124117125117126117127117128117129117130117131117132117133117134117135117136117137117138117139117140117141117142117143117144117145117146117147117148117149117150117151117152117153117154117155117156117157117158117159117160117161117162117163117164117165117166117167117168117169117170117171117172117173117174117175117176117177117178117179117180117181117182117183117184117185117186117187117188117189117190117191117192117193117194117195117196117197117198117199117200117201117202117203117204117205117206117207117208117209117210117211117212117213117214117215117216117217117218117219117220117221117222117223117224117225117226117227117228117229117230117231117232117233117234117235117236117237117238117239117240117241117242117243117244117245117246117247117248117249117250117251117252117253117254117255117256117257117258117259117260117261117262117263117264117265117266117267117268117269117270117271117272117273117274117275117276117277117278117279117280117281117282117283117284117285117286117287117288117289117290117291117292117293117294117295117296117297117298117299117300117301117302117303117304117305117306117307117308117309117310117311117312117313117314117315117316117317117318117319117320117321117322117323117324117325117326117327117328117329117330117331117332117333117334117335117336117337117338117339117340117341117342117343117344117345117346117347117348117349117350117351117352117353117354117355117356117357117358117359117360117361117362117363117364117365117366117367117368117369117370117371117372117373117374117375117376117377117378117379117380117381117382117383117384117385117386117387117388117389117390117391117392117393117394117395117396117397117398117399117400117401117402117403117404117405117406117407117408117409117410117411117412117413117414117415117416117417117418117419117420117421117422117423117424117425117426117427117428117429117430117431117432117433117434117435117436117437117438117439117440117441117442117443117444117445117446117447117448117449117450117451117452117453117454117455117456117457117458117459117460117461117462117463117464117465117466117467117468117469117470117471117472117473117474117475117476117477117478117479117480117481117482117483117484117485117486117487117488117489117490117491117492117493117494117495117496117497117498117499117500117501117502117503117504117505117506117507117508117509117510117511117512117513117514117515117516117517117518117519117520117521117522117523117524117525117526117527117528117529117530117531117532117533117534117535117536117537117538117539117540117541117542117543117544117545117546117547117548117549117550117551117552117553117554117555117556117557117558117559117560117561117562117563117564117565117566117567117568117569117570117571117572117573117574117575117576117577117578117579117580117581117582117583117584117585117586117587117588117589117590117591117592117593117594117595117596117597117598117599117600117601117602117603117604117605117606117607117608117609117610117611117612117613117614117615117616117617117618117619117620117621117622117623117624117625117626117627117628117629117630117631117632117633117634117635117636117637117638117639117640117641117642117643117644117645117646117647117648117649117650117651117652117653117654117655117656117657117658117659117660117661117662117663117664117665117666117667117668117669117670117671117672117673117674117675117676117677117678117679117680117681117682117683117684117685117686117687117688117689117690117691117692117693117694117695117696117697117698117699117700117701117702117703117704117705117706117707117708117709117710117711117712117713117714117715117716117717117718117719117720117721117722117723117724117725117726117727117728117729117730117731117732117733117734117735117736117737117738117739117740117741117742117743117744117745117746117747117748117749117750117751117752117753117754117755117756117757117758117759117760117761117762117763117764117765117766117767117768117769117770117771117772117773117774117775117776117777117778117779117780117781117782117783117784117785117786117787117788117789117790117791117792117793117794117795117796117797117798117799117800117801117802117803117804117805117806117807117808117809117810117811117812117813117814117815117816117817117818117819117820117821117822117823117824117825117826117827117828117829117830117831117832117833117834117835117836117837117838117839117840117841117842117843117844117845117846117847117848117849117850117851117852117853117854117855117856117857117858117859117860117861117862117863117864117865117866117867117868117869117870117871117872117873117874117875117876117877117878117879117880117881117882117883117884117885117886117887117888117889117890117891117892117893117894117895117896117897117898117899117900117901117902117903117904117905117906117907117908117909117910117911117912117913117914117915117916117917117918117919117920117921117922117923117924117925117926117927117928117929117930117931117932117933117934117935117936117937117938117939117940117941117942117943117944117945117946117947117948117949117950117951117952117953117954117955117956117957117958117959117960117961117962117963117964117965117966117967117968117969117970117971117972117973117974117975117976117977117978117979117980117981117982117983117984117985117986117987117988117989117990117991117992117993117994117995117996117997117998117999118000118001118002118003118004118005118006118007118008118009118010118011118012118013118014118015118016118017118018118019118020118021118022118023118024118025118026118027118028118029118030118031118032118033118034118035118036118037118038118039118040118041118042118043118044118045118046118047118048118049118050118051118052118053118054118055118056118057118058118059118060118061118062118063118064118065118066118067118068118069118070118071118072118073118074118075118076118077118078118079118080118081118082118083118084118085118086118087118088118089118090118091118092118093118094118095118096118097118098118099118100118101118102118103118104118105118106118107118108118109118110118111118112118113118114118115118116118117118118118119118120118121118122118123118124118125118126118127118128118129118130118131118132118133118134118135118136118137118138118139118140118141118142118143118144118145118146118147118148118149118150118151118152118153118154118155118156118157118158118159118160118161118162118163118164118165118166118167118168118169118170118171118172118173118174118175118176118177118178118179118180118181118182118183118184118185118186118187118188118189118190118191118192118193118194118195118196118197118198118199118200118201118202118203118204118205118206118207118208118209118210118211118212118213118214118215118216118217118218118219118220118221118222118223118224118225118226118227118228118229118230118231118232118233118234118235118236118237118238118239118240118241118242118243118244118245118246118247118248118249118250118251118252118253118254118255118256118257118258118259118260118261118262118263118264118265118266118267118268118269118270118271118272118273118274118275118276118277118278118279118280118281118282118283118284118285118286118287118288118289118290118291118292118293118294118295118296118297118298118299118300118301118302118303118304118305118306118307118308118309118310118311118312118313118314118315118316118317118318118319118320118321118322118323118324118325118326118327118328118329118330118331118332118333118334118335118336118337118338118339118340118341118342118343118344118345118346118347118348118349118350118351118352118353118354118355118356118357118358118359118360118361118362118363118364118365118366118367118368118369118370118371118372118373118374118375118376118377118378118379118380118381118382118383118384118385118386118387118388118389118390118391118392118393118394118395118396118397118398118399118400118401118402118403118404118405118406118407118408118409118410118411118412118413118414118415118416118417118418118419118420118421118422118423118424118425118426118427118428118429118430118431118432118433118434118435118436118437118438118439118440118441118442118443118444118445118446118447118448118449118450118451118452118453118454118455118456118457118458118459118460118461118462118463118464118465118466118467118468118469118470118471118472118473118474118475118476118477118478118479118480118481118482118483118484118485118486118487118488118489118490118491118492118493118494118495118496118497118498118499118500118501118502118503118504118505118506118507118508118509118510118511118512118513118514118515118516118517118518118519118520118521118522118523118524118525118526118527118528118529118530118531118532118533118534118535118536118537118538118539118540118541118542118543118544118545118546118547118548118549118550118551118552118553118554118555118556118557118558118559118560118561118562118563118564118565118566118567118568118569118570118571118572118573118574118575118576118577118578118579118580118581118582118583118584118585118586118587118588118589118590118591118592118593118594118595118596118597118598118599118600118601118602118603118604118605118606118607118608118609118610118611118612118613118614118615118616118617118618118619118620118621118622118623118624118625118626118627118628118629118630118631118632118633118634118635118636118637118638118639118640118641118642118643118644118645118646118647118648118649118650118651118652118653118654118655118656118657118658118659118660118661118662118663118664118665118666118667118668118669118670118671118672118673118674118675118676118677118678118679118680118681118682118683118684118685118686118687118688118689118690118691118692118693118694118695118696118697118698118699118700118701118702118703118704118705118706118707118708118709118710118711118712118713118714118715118716118717118718118719118720118721118722118723118724118725118726118727118728118729118730118731118732118733118734118735118736118737118738118739118740118741118742118743118744118745118746118747118748118749118750118751118752118753118754118755118756118757118758118759118760118761118762118763118764118765118766118767118768118769118770118771118772118773118774118775118776118777118778118779118780118781118782118783118784118785118786118787118788118789118790118791118792118793118794118795118796118797118798118799118800118801118802118803118804118805118806118807118808118809118810118811118812118813118814118815118816118817118818118819118820118821118822118823118824118825118826118827118828118829118830118831118832118833118834118835118836118837118838118839118840118841118842118843118844118845118846118847118848118849118850118851118852118853118854118855118856118857118858118859118860118861118862118863118864118865118866118867118868118869118870118871118872118873118874118875118876118877118878118879118880118881118882118883118884118885118886118887118888118889118890118891118892118893118894118895118896118897118898118899118900118901118902118903118904118905118906118907118908118909118910118911118912118913118914118915118916118917118918118919118920118921118922118923118924118925118926118927118928118929118930118931118932118933118934118935118936118937118938118939118940118941118942118943118944118945118946118947118948118949118950118951118952118953118954118955118956118957118958118959118960118961118962118963118964118965118966118967118968118969118970118971118972118973118974118975118976118977118978118979118980118981118982118983118984118985118986118987118988118989118990118991118992118993118994118995118996118997118998118999119000119001119002119003119004119005119006119007119008119009119010119011119012119013119014119015119016119017119018119019119020119021119022119023119024119025119026119027119028119029119030119031119032119033119034119035119036119037119038119039119040119041119042119043119044119045119046119047119048119049119050119051119052119053119054119055119056119057119058119059119060119061119062119063119064119065119066119067119068119069119070119071119072119073119074119075119076119077119078119079119080119081119082119083119084119085119086119087119088119089119090119091119092119093119094119095119096119097119098119099119100119101119102119103119104119105119106119107119108119109119110119111119112119113119114119115119116119117119118119119119120119121119122119123119124119125119126119127119128119129119130119131119132119133119134119135119136119137119138119139119140119141119142119143119144119145119146119147119148119149119150119151119152119153119154119155119156119157119158119159119160119161119162119163119164119165119166119167119168119169119170119171119172119173119174119175119176119177119178119179119180119181119182119183119184119185119186119187119188119189119190119191119192119193119194119195119196119197119198119199119200119201119202119203119204119205119206119207119208119209119210119211119212119213119214119215119216119217119218119219119220119221119222119223119224119225119226119227119228119229119230119231119232119233119234119235119236119237119238119239119240119241119242119243119244119245119246119247119248119249119250119251119252119253119254119255119256119257119258119259119260119261119262119263119264119265119266119267119268119269119270119271119272119273119274119275119276119277119278119279119280119281119282119283119284119285119286119287119288119289119290119291119292119293119294119295119296119297119298119299119300119301119302119303119304119305119306119307119308119309119310119311119312119313119314119315119316119317119318119319119320119321119322119323119324119325119326119327119328119329119330119331119332119333119334119335119336119337119338119339119340119341119342119343119344119345119346119347119348119349119350119351119352119353119354119355119356119357119358119359119360119361119362119363119364119365119366119367119368119369119370119371119372119373119374119375119376119377119378119379119380119381119382119383119384119385119386119387119388119389119390119391119392119393119394119395119396119397119398119399119400119401119402119403119404119405119406119407119408119409119410119411119412119413119414119415119416119417119418119419119420119421119422119423119424119425119426119427119428119429119430119431119432119433119434119435119436119437119438119439119440119441119442119443119444119445119446119447119448119449119450119451119452119453119454119455119456119457119458119459119460119461119462119463119464119465119466119467119468119469119470119471119472119473119474119475119476119477119478119479119480119481119482119483119484119485119486119487119488119489119490119491119492119493119494119495119496119497119498119499119500119501119502119503119504119505119506119507119508119509119510119511119512119513119514119515119516119517119518119519119520119521119522119523119524119525119526119527119528119529119530119531119532119533119534119535119536119537119538119539119540119541119542119543119544119545119546119547119548119549119550119551119552119553119554119555119556119557119558119559119560119561119562119563119564119565119566119567119568119569119570119571119572119573119574119575119576119577119578119579119580119581119582119583119584119585119586119587119588119589119590119591119592119593119594119595119596119597119598119599119600119601119602119603119604119605119606119607119608119609119610119611119612119613119614119615119616119617119618119619119620119621119622119623119624119625119626119627119628119629119630119631119632119633119634119635119636119637119638119639119640119641119642119643119644119645119646119647119648119649119650119651119652119653119654119655119656119657119658119659119660119661119662119663119664119665119666119667119668119669119670119671119672119673119674119675119676119677119678119679119680119681119682119683119684119685119686119687119688119689119690119691119692119693119694119695119696119697119698119699119700119701119702119703119704119705119706119707119708119709119710119711119712119713119714119715119716119717119718119719119720119721119722119723119724119725119726119727119728119729119730119731119732119733119734119735119736119737119738119739119740119741119742119743119744119745119746119747119748119749119750119751119752119753119754119755119756119757119758119759119760119761119762119763119764119765119766119767119768119769119770119771119772119773119774119775119776119777119778119779119780119781119782119783119784119785119786119787119788119789119790119791119792119793119794119795119796119797119798119799119800119801119802119803119804119805119806119807119808119809119810119811119812119813119814119815119816119817119818119819119820119821119822119823119824119825119826119827119828119829119830119831119832119833119834119835119836119837119838119839119840119841119842119843119844119845119846119847119848119849119850119851119852119853119854119855119856119857119858119859119860119861119862119863119864119865119866119867119868119869119870119871119872119873119874119875119876119877119878119879119880119881119882119883119884119885119886119887119888119889119890119891119892119893119894119895119896119897119898119899119900119901119902119903119904119905119906119907119908119909119910119911119912119913119914119915119916119917119918119919119920119921119922119923119924119925119926119927119928119929119930119931119932119933119934119935119936119937119938119939119940119941119942119943119944119945119946119947119948119949119950119951119952119953119954119955119956119957119958119959119960119961119962119963119964119965119966119967119968119969119970119971119972119973119974119975119976119977119978119979119980119981119982119983119984119985119986119987119988119989119990119991119992119993119994119995119996119997119998119999120000120001120002120003120004120005120006120007120008120009120010120011120012120013120014120015120016120017120018120019120020120021120022120023120024120025120026120027120028120029120030120031120032120033120034120035120036120037120038120039120040120041120042120043120044120045120046120047120048120049120050120051120052120053120054120055120056120057120058120059120060120061120062120063120064120065120066120067120068120069120070120071120072120073120074120075120076120077120078120079120080120081120082120083120084120085120086120087120088120089120090120091120092120093120094120095120096120097120098120099120100120101120102120103120104120105120106120107120108120109120110120111120112120113120114120115120116120117120118120119120120120121120122120123120124120125120126120127120128120129120130120131120132120133120134120135120136120137120138120139120140120141120142120143120144120145120146120147120148120149120150120151120152120153120154120155120156120157120158120159120160120161120162120163120164120165120166120167120168120169120170120171120172120173120174120175120176120177120178120179120180120181120182120183120184120185120186120187120188120189120190120191120192120193120194120195120196120197120198120199120200120201120202120203120204120205120206120207120208120209120210120211120212120213120214120215120216120217120218120219120220120221120222120223120224120225120226120227120228120229120230120231120232120233120234120235120236120237120238120239120240120241120242120243120244120245120246120247120248120249120250120251120252120253120254120255120256120257120258120259120260120261120262120263120264120265120266120267120268120269120270120271120272120273120274120275120276120277120278120279120280120281120282120283120284120285120286120287120288120289120290120291120292120293120294120295120296120297120298120299120300120301120302120303120304120305120306120307120308120309120310120311120312120313120314120315120316120317120318120319120320120321120322120323120324120325120326120327120328120329120330120331120332120333120334120335120336120337120338120339120340120341120342120343120344120345120346120347120348120349120350120351120352120353120354120355120356120357120358120359120360120361120362120363120364120365120366120367120368120369120370120371120372120373120374120375120376120377120378120379120380120381120382120383120384120385120386120387120388120389120390120391120392120393120394120395120396120397120398120399120400120401120402120403120404120405120406120407120408120409120410120411120412120413120414120415120416120417120418120419120420120421120422120423120424120425120426120427120428120429120430120431120432120433120434120435120436120437120438120439120440120441120442120443120444120445120446120447120448120449120450120451120452120453120454120455120456120457120458120459120460120461120462120463120464120465120466120467120468120469120470120471120472120473120474120475120476120477120478120479120480120481120482120483120484120485120486120487120488120489120490120491120492120493120494120495120496120497120498120499120500120501120502120503120504120505120506120507120508120509120510120511120512120513120514120515120516120517120518120519120520120521120522120523120524120525120526120527120528120529120530120531120532120533120534120535120536120537120538120539120540120541120542120543120544120545120546120547120548120549120550120551120552120553120554120555120556120557120558120559120560120561120562120563120564120565120566120567120568120569120570120571120572120573120574120575120576120577120578120579120580120581120582120583120584120585120586120587120588120589120590120591120592120593120594120595120596120597120598120599120600120601120602120603120604120605120606120607120608120609120610120611120612120613120614120615120616120617120618120619120620120621120622120623120624120625120626120627120628120629120630120631120632120633120634120635120636120637120638120639120640120641120642120643120644120645120646120647120648120649120650120651120652120653120654120655120656120657120658120659120660120661120662120663120664120665120666120667120668120669120670120671120672120673120674120675120676120677120678120679120680120681120682120683120684120685120686120687120688120689120690120691120692120693120694120695120696120697120698120699120700120701120702120703120704120705120706120707120708120709120710120711120712120713120714120715120716120717120718120719120720120721120722120723120724120725120726120727120728120729120730120731120732120733120734120735120736120737120738120739120740120741120742120743120744120745120746120747120748120749120750120751120752120753120754120755120756120757120758120759120760120761120762120763120764120765120766120767120768120769120770120771120772120773120774120775120776120777120778120779120780120781120782120783120784120785120786120787120788120789120790120791120792120793120794120795120796120797120798120799120800120801120802120803120804120805120806120807120808120809120810120811120812120813120814120815120816120817120818120819120820120821120822120823120824120825120826120827120828120829120830120831120832120833120834120835120836120837120838120839120840120841120842120843120844120845120846120847120848120849120850120851120852120853120854120855120856120857120858120859120860120861120862120863120864120865120866120867120868120869120870120871120872120873120874120875120876120877120878120879120880120881120882120883120884120885120886120887120888120889120890120891120892120893120894120895120896120897120898120899120900120901120902120903120904120905120906120907120908120909120910120911120912120913120914120915120916120917120918120919120920120921120922120923120924120925120926120927120928120929120930120931120932120933120934120935120936120937120938120939120940120941120942120943120944120945120946120947120948120949120950120951120952120953120954120955120956120957120958120959120960120961120962120963120964120965120966120967120968120969120970120971120972120973120974120975120976120977120978120979120980120981120982120983120984120985120986120987120988120989120990120991120992120993120994120995120996120997120998120999121000121001121002121003121004121005121006121007121008121009121010121011121012121013121014121015121016121017121018121019121020121021121022121023121024121025121026121027121028121029121030121031121032121033121034121035121036121037121038121039121040121041121042121043121044121045121046121047121048121049121050121051121052121053121054121055121056121057121058121059121060121061121062121063121064121065121066121067121068121069121070121071121072121073121074121075121076121077121078121079121080121081121082121083121084121085121086121087121088121089121090121091121092121093121094121095121096121097121098121099121100121101121102121103121104121105121106121107121108121109121110121111121112121113121114121115121116121117121118121119121120121121121122121123121124121125121126121127121128121129121130121131121132121133121134121135121136121137121138121139121140121141121142121143121144121145121146121147121148121149121150121151121152121153121154121155121156121157121158121159121160121161121162121163121164121165121166121167121168121169121170121171121172121173121174121175121176121177121178121179121180121181121182121183121184121185121186121187121188121189121190121191121192121193121194121195121196121197121198121199121200121201121202121203121204121205121206121207121208121209121210121211121212121213121214121215121216121217121218121219121220121221121222121223121224121225121226121227121228121229121230121231121232121233121234121235121236121237121238121239121240121241121242121243121244121245121246121247121248121249121250121251121252121253121254121255121256121257121258121259121260121261121262121263121264121265121266121267121268121269121270121271121272121273121274121275121276121277121278121279121280121281121282121283121284121285121286121287121288121289121290121291121292121293121294121295121296121297121298121299121300121301121302121303121304121305121306121307121308121309121310121311121312121313121314121315121316121317121318121319121320121321121322121323121324121325121326121327121328121329121330121331121332121333121334121335121336121337121338121339121340121341121342121343121344121345121346121347121348121349121350121351121352121353121354121355121356121357121358121359121360121361121362121363121364121365121366121367121368121369121370121371121372121373121374121375121376121377121378121379121380121381121382121383121384121385121386121387121388121389121390121391121392121393121394121395121396121397121398121399121400121401121402121403121404121405121406121407121408121409121410121411121412121413121414121415121416121417121418121419121420121421121422121423121424121425121426121427121428121429121430121431121432121433121434121435121436121437121438121439121440121441121442121443121444121445121446121447121448121449121450121451121452121453121454121455121456121457121458121459121460121461121462121463121464121465121466121467121468121469121470121471121472121473121474121475121476121477121478121479121480121481121482121483121484121485121486121487121488121489121490121491121492121493121494121495121496121497121498121499121500121501121502121503121504121505121506121507121508121509121510121511121512121513121514121515121516121517121518121519121520121521121522121523121524121525121526121527121528121529121530121531121532121533121534121535121536121537121538121539121540121541121542121543121544121545121546121547121548121549121550121551121552121553121554121555121556121557121558121559121560121561121562121563121564121565121566121567121568121569121570121571121572121573121574121575121576121577121578121579121580121581121582121583121584121585121586121587121588121589121590121591121592121593121594121595121596121597121598121599121600121601121602121603121604121605121606121607121608121609121610121611121612121613121614121615121616121617121618121619121620121621121622121623121624121625121626121627121628121629121630121631121632121633121634121635121636121637121638121639121640121641121642121643121644121645121646121647121648121649121650121651121652121653121654121655121656121657121658121659121660121661121662121663121664121665121666121667121668121669121670121671121672121673121674121675121676121677121678121679121680121681121682121683121684121685121686121687121688121689121690121691121692121693121694121695121696121697121698121699121700121701121702121703121704121705121706121707121708121709121710121711121712121713121714121715121716121717121718121719121720121721121722121723121724121725121726121727121728121729121730121731121732121733121734121735121736121737121738121739121740121741121742121743121744121745121746121747121748121749121750121751121752121753121754121755121756121757121758121759121760121761121762121763121764121765121766121767121768121769121770121771121772121773121774121775121776121777121778121779121780121781121782121783121784121785121786121787121788121789121790121791121792121793121794121795121796121797121798121799121800121801121802121803121804121805121806121807121808121809121810121811121812121813121814121815121816121817121818121819121820121821121822121823121824121825121826121827121828121829121830121831121832121833121834121835121836121837121838121839121840121841121842121843121844121845121846121847121848121849121850121851121852121853121854121855121856121857121858121859121860121861121862121863121864121865121866121867121868121869121870121871121872121873121874121875121876121877121878121879121880121881121882121883121884121885121886121887121888121889121890121891121892121893121894121895121896121897121898121899121900121901121902121903121904121905121906121907121908121909121910121911121912121913121914121915121916121917121918121919121920121921121922121923121924121925121926121927121928121929121930121931121932121933121934121935121936121937121938121939121940121941121942121943121944121945121946121947121948121949121950121951121952121953121954121955121956121957121958121959121960121961121962121963121964121965121966121967121968121969121970121971121972121973121974121975121976121977121978121979121980121981121982121983121984121985121986121987121988121989121990121991121992121993121994121995121996121997121998121999122000122001122002122003122004122005122006122007122008122009122010122011122012122013122014122015122016122017122018122019122020122021122022122023122024122025122026122027122028122029122030122031122032122033122034122035122036122037122038122039122040122041122042122043122044122045122046122047122048122049122050122051122052122053122054122055122056122057122058122059122060122061122062122063122064122065122066122067122068122069122070122071122072122073122074122075122076122077122078122079122080122081122082122083122084122085122086122087122088122089122090122091122092122093122094122095122096122097122098122099122100122101122102122103122104122105122106122107122108122109122110122111122112122113122114122115122116122117122118122119122120122121122122122123122124122125122126122127122128122129122130122131122132122133122134122135122136122137122138122139122140122141122142122143122144122145122146122147122148122149122150122151122152122153122154122155122156122157122158122159122160122161122162122163122164122165122166122167122168122169122170122171122172122173122174122175122176122177122178122179122180122181122182122183122184122185122186122187122188122189122190122191122192122193122194122195122196122197122198122199122200122201122202122203122204122205122206122207122208122209122210122211122212122213122214122215122216122217122218122219122220122221122222122223122224122225122226122227122228122229122230122231122232122233122234122235122236122237122238122239122240122241122242122243122244122245122246122247122248122249122250122251122252122253122254122255122256122257122258122259122260122261122262122263122264122265122266122267122268122269122270122271122272122273122274122275122276122277122278122279122280122281122282122283122284122285122286122287122288122289122290122291122292122293122294122295122296122297122298122299122300122301122302122303122304122305122306122307122308122309122310122311122312122313122314122315122316122317122318122319122320122321122322122323122324122325122326122327122328122329122330122331122332122333122334122335122336122337122338122339122340122341122342122343122344122345122346122347122348122349122350122351122352122353122354122355122356122357122358122359122360122361122362122363122364122365122366122367122368122369122370122371122372122373122374122375122376122377122378122379122380122381122382122383122384122385122386122387122388122389122390122391122392122393122394122395122396122397122398122399122400122401122402122403122404122405122406122407122408122409122410122411122412122413122414122415122416122417122418122419122420122421122422122423122424122425122426122427122428122429122430122431122432122433122434122435122436122437122438122439122440122441122442122443122444122445122446122447122448122449122450122451122452122453122454122455122456122457122458122459122460122461122462122463122464122465122466122467122468122469122470122471122472122473122474122475122476122477122478122479122480122481122482122483122484122485122486122487122488122489122490122491122492122493122494122495122496122497122498122499122500122501122502122503122504122505122506122507122508122509122510122511122512122513122514122515122516122517122518122519122520122521122522122523122524122525122526122527122528122529122530122531122532122533122534122535122536122537122538122539122540122541122542122543122544122545122546122547122548122549122550122551122552122553122554122555122556122557122558122559122560122561122562122563122564122565122566122567122568122569122570122571122572122573122574122575122576122577122578122579122580122581122582122583122584122585122586122587122588122589122590122591122592122593122594122595122596122597122598122599122600122601122602122603122604122605122606122607122608122609122610122611122612122613122614122615122616122617122618122619122620122621122622122623122624122625122626122627122628122629122630122631122632122633122634122635122636122637122638122639122640122641122642122643122644122645122646122647122648122649122650122651122652122653122654122655122656122657122658122659122660122661122662122663122664122665122666122667122668122669122670122671122672122673122674122675122676122677122678122679122680122681122682122683122684122685122686122687122688122689122690122691122692122693122694122695122696122697122698122699122700122701122702122703122704122705122706122707122708122709122710122711122712122713122714122715122716122717122718122719122720122721122722122723122724122725122726122727122728122729122730122731122732122733122734122735122736122737122738122739122740122741122742122743122744122745122746122747122748122749122750122751122752122753122754122755122756122757122758122759122760122761122762122763122764122765122766122767122768122769122770122771122772122773122774122775122776122777122778122779122780122781122782122783122784122785122786122787122788122789122790122791122792122793122794122795122796122797122798122799122800122801122802122803122804122805122806122807122808122809122810122811122812122813122814122815122816122817122818122819122820122821122822122823122824122825122826122827122828122829122830122831122832122833122834122835122836122837122838122839122840122841122842122843122844122845122846122847122848122849122850122851122852122853122854122855122856122857122858122859122860122861122862122863122864122865122866122867122868122869122870122871122872122873122874122875122876122877122878122879122880122881122882122883122884122885122886122887122888122889122890122891122892122893122894122895122896122897122898122899122900122901122902122903122904122905122906122907122908122909122910122911122912122913122914122915122916122917122918122919122920122921122922122923122924122925122926122927122928122929122930122931122932122933122934122935122936122937122938122939122940122941122942122943122944122945122946122947122948122949122950122951122952122953122954122955122956122957122958122959122960122961122962122963122964122965122966122967122968122969122970122971122972122973122974122975122976122977122978122979122980122981122982122983122984122985122986122987122988122989122990122991122992122993122994122995122996122997122998122999123000123001123002123003123004123005123006123007123008123009123010123011123012123013123014123015123016123017123018123019123020123021123022123023123024123025123026123027123028123029123030123031123032123033123034123035123036123037123038123039123040123041123042123043123044123045123046123047123048123049123050123051123052123053123054123055123056123057123058123059123060123061123062123063123064123065123066123067123068123069123070123071123072123073123074123075123076123077123078123079123080123081123082123083123084123085123086123087123088123089123090123091123092123093123094123095123096123097123098123099123100123101123102123103123104123105123106123107123108123109123110123111123112123113123114123115123116123117123118123119123120123121123122123123123124123125123126123127123128123129123130123131123132123133123134123135123136123137123138123139123140123141123142123143123144123145123146123147123148123149123150123151123152123153123154123155123156123157123158123159123160123161123162123163123164123165123166123167123168123169123170123171123172123173123174123175123176123177123178123179123180123181123182123183123184123185123186123187123188123189123190123191123192123193123194123195123196123197123198123199123200123201123202123203123204123205123206123207123208123209123210123211123212123213123214123215123216123217123218123219123220123221123222123223123224123225123226123227123228123229123230123231123232123233123234123235123236123237123238123239123240123241123242123243123244123245123246123247123248123249123250123251123252123253123254123255123256123257123258123259123260123261123262123263123264123265123266123267123268123269123270123271123272123273123274123275123276123277123278123279123280123281123282123283123284123285123286123287123288123289123290123291123292123293123294123295123296123297123298123299123300123301123302123303123304123305123306123307123308123309123310123311123312123313123314123315123316123317123318123319123320123321123322123323123324123325123326123327123328123329123330123331123332123333123334123335123336123337123338123339123340123341123342123343123344123345123346123347123348123349123350123351123352123353123354123355123356123357123358123359123360123361123362123363123364123365123366123367123368123369123370123371123372123373123374123375123376123377123378123379123380123381123382123383123384123385123386123387123388123389123390123391123392123393123394123395123396123397123398123399123400123401123402123403123404123405123406123407123408123409123410123411123412123413123414123415123416123417123418123419123420123421123422123423123424123425123426123427123428123429123430123431123432123433123434123435123436123437123438123439123440123441123442123443123444123445123446123447123448123449123450123451123452123453123454123455123456123457123458123459123460123461123462123463123464123465123466123467123468123469123470123471123472123473123474123475123476123477123478123479123480123481123482123483123484123485123486123487123488123489123490123491123492123493123494123495123496123497123498123499123500123501123502123503123504123505123506123507123508123509123510123511123512123513123514123515123516123517123518123519123520123521123522123523123524123525123526123527123528123529123530123531123532123533123534123535123536123537123538123539123540123541123542123543123544123545123546123547123548123549123550123551123552123553123554123555123556123557123558123559123560123561123562123563123564123565123566123567123568123569123570123571123572123573123574123575123576123577123578123579123580123581123582123583123584123585123586123587123588123589123590123591123592123593123594123595123596123597123598123599123600123601123602123603123604123605123606123607123608123609123610123611123612123613123614123615123616123617123618123619123620123621123622123623123624123625123626123627123628123629123630123631123632123633123634123635123636123637123638123639123640123641123642123643123644123645123646123647123648123649123650123651123652123653123654123655123656123657123658123659123660123661123662123663123664123665123666123667123668123669123670123671123672123673123674123675123676123677123678123679123680123681123682123683123684123685123686123687123688123689123690123691123692123693123694123695123696123697123698123699123700123701123702123703123704123705123706123707123708123709123710123711123712123713123714123715123716123717123718123719123720123721123722123723123724123725123726123727123728123729123730123731123732123733123734123735123736123737123738123739123740123741123742123743123744123745123746123747123748123749123750123751123752123753123754123755123756123757123758123759123760123761123762123763123764123765123766123767123768123769123770123771123772123773123774123775123776123777123778123779123780123781123782123783123784123785123786123787123788123789123790123791123792123793123794123795123796123797123798123799123800123801123802123803123804123805123806123807123808123809123810123811123812123813123814123815123816123817123818123819123820123821123822123823123824123825123826123827123828123829123830123831123832123833123834123835123836123837123838123839123840123841123842123843123844123845123846123847123848123849123850123851123852123853123854123855123856123857123858123859123860123861123862123863123864123865123866123867123868123869123870123871123872123873123874123875123876123877123878123879123880123881123882123883123884123885123886123887123888123889123890123891123892123893123894123895123896123897123898123899123900123901123902123903123904123905123906123907123908123909123910123911123912123913123914123915123916123917123918123919123920123921123922123923123924123925123926123927123928123929123930123931123932123933123934123935123936123937123938123939123940123941123942123943123944123945123946123947123948123949123950123951123952123953123954123955123956123957123958123959123960123961123962123963123964123965123966123967123968123969123970123971123972123973123974123975123976123977123978123979123980123981123982123983123984123985123986123987123988123989123990123991123992123993123994123995123996123997123998123999124000124001124002124003124004124005124006124007124008124009124010124011124012124013124014124015124016124017124018124019124020124021124022124023124024124025124026124027124028124029124030124031124032124033124034124035124036124037124038124039124040124041124042124043124044124045124046124047124048124049124050124051124052124053124054124055124056124057124058124059124060124061124062124063124064124065124066124067124068124069124070124071124072124073124074124075124076124077124078124079124080124081124082124083124084124085124086124087124088124089124090124091124092124093124094124095124096124097124098124099124100124101124102124103124104124105124106124107124108124109124110124111124112124113124114124115124116124117124118124119124120124121124122124123124124124125124126124127124128124129124130124131124132124133124134124135124136124137124138124139124140124141124142124143124144124145124146124147124148124149124150124151124152124153124154124155124156124157124158124159124160124161124162124163124164124165124166124167124168124169124170124171124172124173124174124175124176124177124178124179124180124181124182124183124184124185124186124187124188124189124190124191124192124193124194124195124196124197124198124199124200124201124202124203124204124205124206124207124208124209124210124211124212124213124214124215124216124217124218124219124220124221124222124223124224124225124226124227124228124229124230124231124232124233124234124235124236124237124238124239124240124241124242124243124244124245124246124247124248124249124250124251124252124253124254124255124256124257124258124259124260124261124262124263124264124265124266124267124268124269124270124271124272124273124274124275124276124277124278124279124280124281124282124283124284124285124286124287124288124289124290124291124292124293124294124295124296124297124298124299124300124301124302124303124304124305124306124307124308124309124310124311124312124313124314124315124316124317124318124319124320124321124322124323124324124325124326124327124328124329124330124331124332124333124334124335124336124337124338124339124340124341124342124343124344124345124346124347124348124349124350124351124352124353124354124355124356124357124358124359124360124361124362124363124364124365124366124367124368124369124370124371124372124373124374124375124376124377124378124379124380124381124382124383124384124385124386124387124388124389124390124391124392124393124394124395124396124397124398124399124400124401124402124403124404124405124406124407124408124409124410124411124412124413124414124415124416124417124418124419124420124421124422124423124424124425124426124427124428124429124430124431124432124433124434124435124436124437124438124439124440124441124442124443124444124445124446124447124448124449124450124451124452124453124454124455124456124457124458124459124460124461124462124463124464124465124466124467124468124469124470124471124472124473124474124475124476124477124478124479124480124481124482124483124484124485124486124487124488124489124490124491124492124493124494124495124496124497124498124499124500124501124502124503124504124505124506124507124508124509124510124511124512124513124514124515124516124517124518124519124520124521124522124523124524124525124526124527124528124529124530124531124532124533124534124535124536124537124538124539124540124541124542124543124544124545124546124547124548124549124550124551124552124553124554124555124556124557124558124559124560124561124562124563124564124565124566124567124568124569124570124571124572124573124574124575124576124577124578124579124580124581124582124583124584124585124586124587124588124589124590124591124592124593124594124595124596124597124598124599124600124601124602124603124604124605124606124607124608124609124610124611124612124613124614124615124616124617124618124619124620124621124622124623124624124625124626124627124628124629124630124631124632124633124634124635124636124637124638124639124640124641124642124643124644124645124646124647124648124649124650124651124652124653124654124655124656124657124658124659124660124661124662124663124664124665124666124667124668124669124670124671124672124673124674124675124676124677124678124679124680124681124682124683124684124685124686124687124688124689124690124691124692124693124694124695124696124697124698124699124700124701124702124703124704124705124706124707124708124709124710124711124712124713124714124715124716124717124718124719124720124721124722124723124724124725124726124727124728124729124730124731124732124733124734124735124736124737124738124739124740124741124742124743124744124745124746124747124748124749124750124751124752124753124754124755124756124757124758124759124760124761124762124763124764124765124766124767124768124769124770124771124772124773124774124775124776124777124778124779124780124781124782124783124784124785124786124787124788124789124790124791124792124793124794124795124796124797124798124799124800124801124802124803124804124805124806124807124808124809124810124811124812124813124814124815124816124817124818124819124820124821124822124823124824124825124826124827124828124829124830124831124832124833124834124835124836124837124838124839124840124841124842124843124844124845124846124847124848124849124850124851124852124853124854124855124856124857124858124859124860124861124862124863124864124865124866124867124868124869124870124871124872124873124874124875124876124877124878124879124880124881124882124883124884124885124886124887124888124889124890124891124892124893124894124895124896124897124898124899124900124901124902124903124904124905124906124907124908124909124910124911124912124913124914124915124916124917124918124919124920124921124922124923124924124925124926124927124928124929124930124931124932124933124934124935124936124937124938124939124940124941124942124943124944124945124946124947124948124949124950124951124952124953124954124955124956124957124958124959124960124961124962124963124964124965124966124967124968124969124970124971124972124973124974124975124976124977124978124979124980124981124982124983124984124985124986124987124988124989124990124991124992124993124994124995124996124997124998124999125000125001125002125003125004125005125006125007125008125009125010125011125012125013125014125015125016125017125018125019125020125021125022125023125024125025125026125027125028125029125030125031125032125033125034125035125036125037125038125039125040125041125042125043125044125045125046125047125048125049125050125051125052125053125054125055125056125057125058125059125060125061125062125063125064125065125066125067125068125069125070125071125072125073125074125075125076125077125078125079125080125081125082125083125084125085125086125087125088125089125090125091125092125093125094125095125096125097125098125099125100125101125102125103125104125105125106125107125108125109125110125111125112125113125114125115125116125117125118125119125120125121125122125123125124125125125126125127125128125129125130125131125132125133125134125135125136125137125138125139125140125141125142125143125144125145125146125147125148125149125150125151125152125153125154125155125156125157125158125159125160125161125162125163125164125165125166125167125168125169125170125171125172125173125174125175125176125177125178125179125180125181125182125183125184125185125186125187125188125189125190125191125192125193125194125195125196125197125198125199125200125201125202125203125204125205125206125207125208125209125210125211125212125213125214125215125216125217125218125219125220125221125222125223125224125225125226125227125228125229125230125231125232125233125234125235125236125237125238125239125240125241125242125243125244125245125246125247125248125249125250125251125252125253125254125255125256125257125258125259125260125261125262125263125264125265125266125267125268125269125270125271125272125273125274125275125276125277125278125279125280125281125282125283125284125285125286125287125288125289125290125291125292125293125294125295125296125297125298125299125300125301125302125303125304125305125306125307125308125309125310125311125312125313125314125315125316125317125318125319125320125321125322125323125324125325125326125327125328125329125330125331125332125333125334125335125336125337125338125339125340125341125342125343125344125345125346125347125348125349125350125351125352125353125354125355125356125357125358125359125360125361125362125363125364125365125366125367125368125369125370125371125372125373125374125375125376125377125378125379125380125381125382125383125384125385125386125387125388125389125390125391125392125393125394125395125396125397125398125399125400125401125402125403125404125405125406125407125408125409125410125411125412125413125414125415125416125417125418125419125420125421125422125423125424125425125426125427125428125429125430125431125432125433125434125435125436125437125438125439125440125441125442125443125444125445125446125447125448125449125450125451125452125453125454125455125456125457125458125459125460125461125462125463125464125465125466125467125468125469125470125471125472125473125474125475125476125477125478125479125480125481125482125483125484125485125486125487125488125489125490125491125492125493125494125495125496125497125498125499125500125501125502125503125504125505125506125507125508125509125510125511125512125513125514125515125516125517125518125519125520125521125522125523125524125525125526125527125528125529125530125531125532125533125534125535125536125537125538125539125540125541125542125543125544125545125546125547125548125549125550125551125552125553125554125555125556125557125558125559125560125561125562125563125564125565125566125567125568125569125570125571125572125573125574125575125576125577125578125579125580125581125582125583125584125585125586125587125588125589125590125591125592125593125594125595125596125597125598125599125600125601125602125603125604125605125606125607125608125609125610125611125612125613125614125615125616125617125618125619125620125621125622125623125624125625125626125627125628125629125630125631125632125633125634125635125636125637125638125639125640125641125642125643125644125645125646125647125648125649125650125651125652125653125654125655125656125657125658125659125660125661125662125663125664125665125666125667125668125669125670125671125672125673125674125675125676125677125678125679125680125681125682125683125684125685125686125687125688125689125690125691125692125693125694125695125696125697125698125699125700125701125702125703125704125705125706125707125708125709125710125711125712125713125714125715125716125717125718125719125720125721125722125723125724125725125726125727125728125729125730125731125732125733125734125735125736125737125738125739125740125741125742125743125744125745125746125747125748125749125750125751125752125753125754125755125756125757125758125759125760125761125762125763125764125765125766125767125768125769125770125771125772125773125774125775125776125777125778125779125780125781125782125783125784125785125786125787125788125789125790125791125792125793125794125795125796125797125798125799125800125801125802125803125804125805125806125807125808125809125810125811125812125813125814125815125816125817125818125819125820125821125822125823125824125825125826125827125828125829125830125831125832125833125834125835125836125837125838125839125840125841125842125843125844125845125846125847125848125849125850125851125852125853125854125855125856125857125858125859125860125861125862125863125864125865125866125867125868125869125870125871125872125873125874125875125876125877125878125879125880125881125882125883125884125885125886125887125888125889125890125891125892125893125894125895125896125897125898125899125900125901125902125903125904125905125906125907125908125909125910125911125912125913125914125915125916125917125918125919125920125921125922125923125924125925125926125927125928125929125930125931125932125933125934125935125936125937125938125939125940125941125942125943125944125945125946125947125948125949125950125951125952125953125954125955125956125957125958125959125960125961125962125963125964125965125966125967125968125969125970125971125972125973125974125975125976125977125978125979125980125981125982125983125984125985125986125987125988125989125990125991125992125993125994125995125996125997125998125999126000126001126002126003126004126005126006126007126008126009126010126011126012126013126014126015126016126017126018126019126020126021126022126023126024126025126026126027126028126029126030126031126032126033126034126035126036126037126038126039126040126041126042126043126044126045126046126047126048126049126050126051126052126053126054126055126056126057126058126059126060126061126062126063126064126065126066126067126068126069126070126071126072126073126074126075126076126077126078126079126080126081126082126083126084126085126086126087126088126089126090126091126092126093126094126095126096126097126098126099126100126101126102126103126104126105126106126107126108126109126110126111126112126113126114126115126116126117126118126119126120126121126122126123126124126125126126126127126128126129126130126131126132126133126134126135126136126137126138126139126140126141126142126143126144126145126146126147126148126149126150126151126152126153126154126155126156126157126158126159126160126161126162126163126164126165126166126167126168126169126170126171126172126173126174126175126176126177126178126179126180126181126182126183126184126185126186126187126188126189126190126191126192126193126194126195126196126197126198126199126200126201126202126203126204126205126206126207126208126209126210126211126212126213126214126215126216126217126218126219126220126221126222126223126224126225126226126227126228126229126230126231126232126233126234126235126236126237126238126239126240126241126242126243126244126245126246126247126248126249126250126251126252126253126254126255126256126257126258126259126260126261126262126263126264126265126266126267126268126269126270126271126272126273126274126275126276126277126278126279126280126281126282126283126284126285126286126287126288126289126290126291126292126293126294126295126296126297126298126299126300126301126302126303126304126305126306126307126308126309126310126311126312126313126314126315126316126317126318126319126320126321126322126323126324126325126326126327126328126329126330126331126332126333126334126335126336126337126338126339126340126341126342126343126344126345126346126347126348126349126350126351126352126353126354126355126356126357126358126359126360126361126362126363126364126365126366126367126368126369126370126371126372126373126374126375126376126377126378126379126380126381126382126383126384126385126386126387126388126389126390126391126392126393126394126395126396126397126398126399126400126401126402126403126404126405126406126407126408126409126410126411126412126413126414126415126416126417126418126419126420126421126422126423126424126425126426126427126428126429126430126431126432126433126434126435126436126437126438126439126440126441126442126443126444126445126446126447126448126449126450126451126452126453126454126455126456126457126458126459126460126461126462126463126464126465126466126467126468126469126470126471126472126473126474126475126476126477126478126479126480126481126482126483126484126485126486126487126488126489126490126491126492126493126494126495126496126497126498126499126500126501126502126503126504126505126506126507126508126509126510126511126512126513126514126515126516126517126518126519126520126521126522126523126524126525126526126527126528126529126530126531126532126533126534126535126536126537126538126539126540126541126542126543126544126545126546126547126548126549126550126551126552126553126554126555126556126557126558126559126560126561126562126563126564126565126566126567126568126569126570126571126572126573126574126575126576126577126578126579126580126581126582126583126584126585126586126587126588126589126590126591126592126593126594126595126596126597126598126599126600126601126602126603126604126605126606126607126608126609126610126611126612126613126614126615126616126617126618126619126620126621126622126623126624126625126626126627126628126629126630126631126632126633126634126635126636126637126638126639126640126641126642126643126644126645126646126647126648126649126650126651126652126653126654126655126656126657126658126659126660126661126662126663126664126665126666126667126668126669126670126671126672126673126674126675126676126677126678126679126680126681126682126683126684126685126686126687126688126689126690126691126692126693126694126695126696126697126698126699126700126701126702126703126704126705126706126707126708126709126710126711126712126713126714126715126716126717126718126719126720126721126722126723126724126725126726126727126728126729126730126731126732126733126734126735126736126737126738126739126740126741126742126743126744126745126746126747126748126749126750126751126752126753126754126755126756126757126758126759126760126761126762126763126764126765126766126767126768126769126770126771126772126773126774126775126776126777126778126779126780126781126782126783126784126785126786126787126788126789126790126791126792126793126794126795126796126797126798126799126800126801126802126803126804126805126806126807126808126809126810126811126812126813126814126815126816126817126818126819126820126821126822126823126824126825126826126827126828126829126830126831126832126833126834126835126836126837126838126839126840126841126842126843126844126845126846126847126848126849126850126851126852126853126854126855126856126857126858126859126860126861126862126863126864126865126866126867126868126869126870126871126872126873126874126875126876126877126878126879126880126881126882126883126884126885126886126887126888126889126890126891126892126893126894126895126896126897126898126899126900126901126902126903126904126905126906126907126908126909126910126911126912126913126914126915126916126917126918126919126920126921126922126923126924126925126926126927126928126929126930126931126932126933126934126935126936126937126938126939126940126941126942126943126944126945126946126947126948126949126950126951126952126953126954126955126956126957126958126959126960126961126962126963126964126965126966126967126968126969126970126971126972126973126974126975126976126977126978126979126980126981126982126983126984126985126986126987126988126989126990126991126992126993126994126995126996126997126998126999127000127001127002127003127004127005127006127007127008127009127010127011127012127013127014127015127016127017127018127019127020127021127022127023127024127025127026127027127028127029127030127031127032127033127034127035127036127037127038127039127040127041127042127043127044127045127046127047127048127049127050127051127052127053127054127055127056127057127058127059127060127061127062127063127064127065127066127067127068127069127070127071127072127073127074127075127076127077127078127079127080127081127082127083127084127085127086127087127088127089127090127091127092127093127094127095127096127097127098127099127100127101127102127103127104127105127106127107127108127109127110127111127112127113127114127115127116127117127118127119127120127121127122127123127124127125127126127127127128127129127130127131127132127133127134127135127136127137127138127139127140127141127142127143127144127145127146127147127148127149127150127151127152127153127154127155127156127157127158127159127160127161127162127163127164127165127166127167127168127169127170127171127172127173127174127175127176127177127178127179127180127181127182127183127184127185127186127187127188127189127190127191127192127193127194127195127196127197127198127199127200127201127202127203127204127205127206127207127208127209127210127211127212127213127214127215127216127217127218127219127220127221127222127223127224127225127226127227127228127229127230127231127232127233127234127235127236127237127238127239127240127241127242127243127244127245127246127247127248127249127250127251127252127253127254127255127256127257127258127259127260127261127262127263127264127265127266127267127268127269127270127271127272127273127274127275127276127277127278127279127280127281127282127283127284127285127286127287127288127289127290127291127292127293127294127295127296127297127298127299127300127301127302127303127304127305127306127307127308127309127310127311127312127313127314127315127316127317127318127319127320127321127322127323127324127325127326127327127328127329127330127331127332127333127334127335127336127337127338127339127340127341127342127343127344127345127346127347127348127349127350127351127352127353127354127355127356127357127358127359127360127361127362127363127364127365127366127367127368127369127370127371127372127373127374127375127376127377127378127379127380127381127382127383127384127385127386127387127388127389127390127391127392127393127394127395127396127397127398127399127400127401127402127403127404127405127406127407127408127409127410127411127412127413127414127415127416127417127418127419127420127421127422127423127424127425127426127427127428127429127430127431127432127433127434127435127436127437127438127439127440127441127442127443127444127445127446127447127448127449127450127451127452127453127454127455127456127457127458127459127460127461127462127463127464127465127466127467127468127469127470127471127472127473127474127475127476127477127478127479127480127481127482127483127484127485127486127487127488127489127490127491127492127493127494127495127496127497127498127499127500127501127502127503127504127505127506127507127508127509127510127511127512127513127514127515127516127517127518127519127520127521127522127523127524127525127526127527127528127529127530127531127532127533127534127535127536127537127538127539127540127541127542127543127544127545127546127547127548127549127550127551127552127553127554127555127556127557127558127559127560127561127562127563127564127565127566127567127568127569127570127571127572127573127574127575127576127577127578127579127580127581127582127583127584127585127586127587127588127589127590127591127592127593127594127595127596127597127598127599127600127601127602127603127604127605127606127607127608127609127610127611127612127613127614127615127616127617127618127619127620127621127622127623127624127625127626127627127628127629127630127631127632127633127634127635127636127637127638127639127640127641127642127643127644127645127646127647127648127649127650127651127652127653127654127655127656127657127658127659127660127661127662127663127664127665127666127667127668127669127670127671127672127673127674127675127676127677127678127679127680127681127682127683127684127685127686127687127688127689127690127691127692127693127694127695127696127697127698127699127700127701127702127703127704127705127706127707127708127709127710127711127712127713127714127715127716127717127718127719127720127721127722127723127724127725127726127727127728127729127730127731127732127733127734127735127736127737127738127739127740127741127742127743127744127745127746127747127748127749127750127751127752127753127754127755127756127757127758127759127760127761127762127763127764127765127766127767127768127769127770127771127772127773127774127775127776127777127778127779127780127781127782127783127784127785127786127787127788127789127790127791127792127793127794127795127796127797127798127799127800127801127802127803127804127805127806127807127808127809127810127811127812127813127814127815127816127817127818127819127820127821127822127823127824127825127826127827127828127829127830127831127832127833127834127835127836127837127838127839127840127841127842127843127844127845127846127847127848127849127850127851127852127853127854127855127856127857127858127859127860127861127862127863127864127865127866127867127868127869127870127871127872127873127874127875127876127877127878127879127880127881127882127883127884127885127886127887127888127889127890127891127892127893127894127895127896127897127898127899127900127901127902127903127904127905127906127907127908127909127910127911127912127913127914127915127916127917127918127919127920127921127922127923127924127925127926127927127928127929127930127931127932127933127934127935127936127937127938127939127940127941127942127943127944127945127946127947127948127949127950127951127952127953127954127955127956127957127958127959127960127961127962127963127964127965127966127967127968127969127970127971127972127973127974127975127976127977127978127979127980127981127982127983127984127985127986127987127988127989127990127991127992127993127994127995127996127997127998127999128000128001128002128003128004128005128006128007128008128009128010128011128012128013128014128015128016128017128018128019128020128021128022128023128024128025128026128027128028128029128030128031128032128033128034128035128036128037128038128039128040128041128042128043128044128045128046128047128048128049128050128051128052128053128054128055128056128057128058128059128060128061128062128063128064128065128066128067128068128069128070128071128072128073128074128075128076128077128078128079128080128081128082128083128084128085128086128087128088128089128090128091128092128093128094128095128096128097128098128099128100128101128102128103128104128105128106128107128108128109128110128111128112128113128114128115128116128117128118128119128120128121128122128123128124128125128126128127128128128129128130128131128132128133128134128135128136128137128138128139128140128141128142128143128144128145128146128147128148128149128150128151128152128153128154128155128156128157128158128159128160128161128162128163128164128165128166128167128168128169128170128171128172128173128174128175128176128177128178128179128180128181128182128183128184128185128186128187128188128189128190128191128192128193128194128195128196128197128198128199128200128201128202128203128204128205128206128207128208128209128210128211128212128213128214128215128216128217128218128219128220128221128222128223128224128225128226128227128228128229128230128231128232128233128234128235128236128237128238128239128240128241128242128243128244128245128246128247128248128249128250128251128252128253128254128255128256128257128258128259128260128261128262128263128264128265128266128267128268128269128270128271128272128273128274128275128276128277128278128279128280128281128282128283128284128285128286128287128288128289128290128291128292128293128294128295128296128297128298128299128300128301128302128303128304128305128306128307128308128309128310128311128312128313128314128315128316128317128318128319128320128321128322128323128324128325128326128327128328128329128330128331128332128333128334128335128336128337128338128339128340128341128342128343128344128345128346128347128348128349128350128351128352128353128354128355128356128357128358128359128360128361128362128363128364128365128366128367128368128369128370128371128372128373128374128375128376128377128378128379128380128381128382128383128384128385128386128387128388128389128390128391128392128393128394128395128396128397128398128399128400128401128402128403128404128405128406128407128408128409128410128411128412128413128414128415128416128417128418128419128420128421128422128423128424128425128426128427128428128429128430128431128432128433128434128435128436128437128438128439128440128441128442128443128444128445128446128447128448128449128450128451128452128453128454128455128456128457128458128459128460128461128462128463128464128465128466128467128468128469128470128471128472128473128474128475128476128477128478128479128480128481128482128483128484128485128486128487128488128489128490128491128492128493128494128495128496128497128498128499128500128501128502128503128504128505128506128507128508128509128510128511128512128513128514128515128516128517128518128519128520128521128522128523128524128525128526128527128528128529128530128531128532128533128534128535128536128537128538128539128540128541128542128543128544128545128546128547128548128549128550128551128552128553128554128555128556128557128558128559128560128561128562128563128564128565128566128567128568128569128570128571128572128573128574128575128576128577128578128579128580128581128582128583128584128585128586128587128588128589128590128591128592128593128594128595128596128597128598128599128600128601128602128603128604128605128606128607128608128609128610128611128612128613128614128615128616128617128618128619128620128621128622128623128624128625128626128627128628128629128630128631128632128633128634128635128636128637128638128639128640128641128642128643128644128645128646128647128648128649128650128651128652128653128654128655128656128657128658128659128660128661128662128663128664128665128666128667128668128669128670128671128672128673128674128675128676128677128678128679128680128681128682128683128684128685128686128687128688128689128690128691128692128693128694128695128696128697128698128699128700128701128702128703128704128705128706128707128708128709128710128711128712128713128714128715128716128717128718128719128720128721128722128723128724128725128726128727128728128729128730128731128732128733128734128735128736128737128738128739128740128741128742128743128744128745128746128747128748128749128750128751128752128753128754128755128756128757128758128759128760128761128762128763128764128765128766128767128768128769128770128771128772128773128774128775128776128777128778128779128780128781128782128783128784128785128786128787128788128789128790128791128792128793128794128795128796128797128798128799128800128801128802128803128804128805128806128807128808128809128810128811128812128813128814128815128816128817128818128819128820128821128822128823128824128825128826128827128828128829128830128831128832128833128834128835128836128837128838128839128840128841128842128843128844128845128846128847128848128849128850128851128852128853128854128855128856128857128858128859128860128861128862128863128864128865128866128867128868128869128870128871128872128873128874128875128876128877128878128879128880128881128882128883128884128885128886128887128888128889128890128891128892128893128894128895128896128897128898128899128900128901128902128903128904128905128906128907128908128909128910128911128912128913128914128915128916128917128918128919128920128921128922128923128924128925128926128927128928128929128930128931128932128933128934128935128936128937128938128939128940128941128942128943128944128945128946128947128948128949128950128951128952128953128954128955128956128957128958128959128960128961128962128963128964128965128966128967128968128969128970128971128972128973128974128975128976128977128978128979128980128981128982128983128984128985128986128987128988128989128990128991128992128993128994128995128996128997128998128999129000129001129002129003129004129005129006129007129008129009129010129011129012129013129014129015129016129017129018129019129020129021129022129023129024129025129026129027129028129029129030129031129032129033129034129035129036129037129038129039129040129041129042129043129044129045129046129047129048129049129050129051129052129053129054129055129056129057129058129059129060129061129062129063129064129065129066129067129068129069129070129071129072129073129074129075129076129077129078129079129080129081129082129083129084129085129086129087129088129089129090129091129092129093129094129095129096129097129098129099129100129101129102129103129104129105129106129107129108129109129110129111129112129113129114129115129116129117129118129119129120129121129122129123129124129125129126129127129128129129129130129131129132129133129134129135129136129137129138129139129140129141129142129143129144129145129146129147129148129149129150129151129152129153129154129155129156129157129158129159129160129161129162129163129164129165129166129167129168129169129170129171129172129173129174129175129176129177129178129179129180129181129182129183129184129185129186129187129188129189129190129191129192129193129194129195129196129197129198129199129200129201129202129203129204129205129206129207129208129209129210129211129212129213129214129215129216129217129218129219129220129221129222129223129224129225129226129227129228129229129230129231129232129233129234129235129236129237129238129239129240129241129242129243129244129245129246129247129248129249129250129251129252129253129254129255129256129257129258129259129260129261129262129263129264129265129266129267129268129269129270129271129272129273129274129275129276129277129278129279129280129281129282129283129284129285129286129287129288129289129290129291129292129293129294129295129296129297129298129299129300129301129302129303129304129305129306129307129308129309129310129311129312129313129314129315129316129317129318129319129320129321129322129323129324129325129326129327129328129329129330129331129332129333129334129335129336129337129338129339129340129341129342129343129344129345129346129347129348129349129350129351129352129353129354129355129356129357129358129359129360129361129362129363129364129365129366129367129368129369129370129371129372129373129374129375129376129377129378129379129380129381129382129383129384129385129386129387129388129389129390129391129392129393129394129395129396129397129398129399129400129401129402129403129404129405129406129407129408129409129410129411129412129413129414129415129416129417129418129419129420129421129422129423129424129425129426129427129428129429129430129431129432129433129434129435129436129437129438129439129440129441129442129443129444129445129446129447129448129449129450129451129452129453129454129455129456129457129458129459129460129461129462129463129464129465129466129467129468129469129470129471129472129473129474129475129476129477129478129479129480129481129482129483129484129485129486129487129488129489129490129491129492129493129494129495129496129497129498129499129500129501129502129503129504129505129506129507129508129509129510129511129512129513129514129515129516129517129518129519129520129521129522129523129524129525129526129527129528129529129530129531129532129533129534129535129536129537129538129539129540129541129542129543129544129545129546129547129548129549129550129551129552129553129554129555129556129557129558129559129560129561129562129563129564129565129566129567129568129569129570129571129572129573129574129575129576129577129578129579129580129581129582129583129584129585129586129587129588129589129590129591129592129593129594129595129596129597129598129599129600129601129602129603129604129605129606129607129608129609129610129611129612129613129614129615129616129617129618129619129620129621129622129623129624129625129626129627129628129629129630129631129632129633129634129635129636129637129638129639129640129641129642129643129644129645129646129647129648129649129650129651129652129653129654129655129656129657129658129659129660129661129662129663129664129665129666129667129668129669129670129671129672129673129674129675129676129677129678129679129680129681129682129683129684129685129686129687129688129689129690129691129692129693129694129695129696129697129698129699129700129701129702129703129704129705129706129707129708129709129710129711129712129713129714129715129716129717129718129719129720129721129722129723129724129725129726129727129728129729129730129731129732129733129734129735129736129737129738129739129740129741129742129743129744129745129746129747129748129749129750129751129752129753129754129755129756129757129758129759129760129761129762129763129764129765129766129767129768129769129770129771129772129773129774129775129776129777129778129779129780129781129782129783129784129785129786129787129788129789129790129791129792129793129794129795129796129797129798129799129800129801129802129803129804129805129806129807129808129809129810129811129812129813129814129815129816129817129818129819129820129821129822129823129824129825129826129827129828129829129830129831129832129833129834129835129836129837129838129839129840129841129842129843129844129845129846129847129848129849129850129851129852129853129854129855129856129857129858129859129860129861129862129863129864129865129866129867129868129869129870129871129872129873129874129875129876129877129878129879129880129881129882129883129884129885129886129887129888129889129890129891129892129893129894129895129896129897129898129899129900129901129902129903129904129905129906129907129908129909129910129911129912129913129914129915129916129917129918129919129920129921129922129923129924129925129926129927129928129929129930129931129932129933129934129935129936129937129938129939129940129941129942129943129944129945129946129947129948129949129950129951129952129953129954129955129956129957129958129959129960129961129962129963129964129965129966129967129968129969129970129971129972129973129974129975129976129977129978129979129980129981129982129983129984129985129986129987129988129989129990129991129992129993129994129995129996129997129998129999130000130001130002130003130004130005130006130007130008130009130010130011130012130013130014130015130016130017130018130019130020130021130022130023130024130025130026130027130028130029130030130031130032130033130034130035130036130037130038130039130040130041130042130043130044130045130046130047130048130049130050130051130052130053130054130055130056130057130058130059130060130061130062130063130064130065130066130067130068130069130070130071130072130073130074130075130076130077130078130079130080130081130082130083130084130085130086130087130088130089130090130091130092130093130094130095130096130097130098130099130100130101130102130103130104130105130106130107130108130109130110130111130112130113130114130115130116130117130118130119130120130121130122130123130124130125130126130127130128130129130130130131130132130133130134130135130136130137130138130139130140130141130142130143130144130145130146130147130148130149130150130151130152130153130154130155130156130157130158130159130160130161130162130163130164130165130166130167130168130169130170130171130172130173130174130175130176130177130178130179130180130181130182130183130184130185130186130187130188130189130190130191130192130193130194130195130196130197130198130199130200130201130202130203130204130205130206130207130208130209130210130211130212130213130214130215130216130217130218130219130220130221130222130223130224130225130226130227130228130229130230130231130232130233130234130235130236130237130238130239130240130241130242130243130244130245130246130247130248130249130250130251130252130253130254130255130256130257130258130259130260130261130262130263130264130265130266130267130268130269130270130271130272130273130274130275130276130277130278130279130280130281130282130283130284130285130286130287130288130289130290130291130292130293130294130295130296130297130298130299130300130301130302130303130304130305130306130307130308130309130310130311130312130313130314130315130316130317130318130319130320130321130322130323130324130325130326130327130328130329130330130331130332130333130334130335130336130337130338130339130340130341130342130343130344130345130346130347130348130349130350130351130352130353130354130355130356130357130358130359130360130361130362130363130364130365130366130367130368130369130370130371130372130373130374130375130376130377130378130379130380130381130382130383130384130385130386130387130388130389130390130391130392130393130394130395130396130397130398130399130400130401130402130403130404130405130406130407130408130409130410130411130412130413130414130415130416130417130418130419130420130421130422130423130424130425130426130427130428130429130430130431130432130433130434130435130436130437130438130439130440130441130442130443130444130445130446130447130448130449130450130451130452130453130454130455130456130457130458130459130460130461130462130463130464130465130466130467130468130469130470130471130472130473130474130475130476130477130478130479130480130481130482130483130484130485130486130487130488130489130490130491130492130493130494130495130496130497130498130499130500130501130502130503130504130505130506130507130508130509130510130511130512130513130514130515130516130517130518130519130520130521130522130523130524130525130526130527130528130529130530130531130532130533130534130535130536130537130538130539130540130541130542130543130544130545130546130547130548130549130550130551130552130553130554130555130556130557130558130559130560130561130562130563130564130565130566130567130568130569130570130571130572130573130574130575130576130577130578130579130580130581130582130583130584130585130586130587130588130589130590130591130592130593130594130595130596130597130598130599130600130601130602130603130604130605130606130607130608130609130610130611130612130613130614130615130616130617130618130619130620130621130622130623130624130625130626130627130628130629130630130631130632130633130634130635130636130637130638130639130640130641130642130643130644130645130646130647130648130649130650130651130652130653130654130655130656130657130658130659130660130661130662130663130664130665130666130667130668130669130670130671130672130673130674130675130676130677130678130679130680130681130682130683130684130685130686130687130688130689130690130691130692130693130694130695130696130697130698130699130700130701130702130703130704130705130706130707130708130709130710130711130712130713130714130715130716130717130718130719130720130721130722130723130724130725130726130727130728130729130730130731130732130733130734130735130736130737130738130739130740130741130742130743130744130745130746130747130748130749130750130751130752130753130754130755130756130757130758130759130760130761130762130763130764130765130766130767130768130769130770130771130772130773130774130775130776130777130778130779130780130781130782130783130784130785130786130787130788130789130790130791130792130793130794130795130796130797130798130799130800130801130802130803130804130805130806130807130808130809130810130811130812130813130814130815130816130817130818130819130820130821130822130823130824130825130826130827130828130829130830130831130832130833130834130835130836130837130838130839130840130841130842130843130844130845130846130847130848130849130850130851130852130853130854130855130856130857130858130859130860130861130862130863130864130865130866130867130868130869130870130871130872130873130874130875130876130877130878130879130880130881130882130883130884130885130886130887130888130889130890130891130892130893130894130895130896130897130898130899130900130901130902130903130904130905130906130907130908130909130910130911130912130913130914130915130916130917130918130919130920130921130922130923130924130925130926130927130928130929130930130931130932130933130934130935130936130937130938130939130940130941130942130943130944130945130946130947130948130949130950130951130952130953130954130955130956130957130958130959130960130961130962130963130964130965130966130967130968130969130970130971130972130973130974130975130976130977130978130979130980130981130982130983130984130985130986130987130988130989130990130991130992130993130994130995130996130997130998130999131000131001131002131003131004131005131006131007131008131009131010131011131012131013131014131015131016131017131018131019131020131021131022131023131024131025131026131027131028131029131030131031131032131033131034131035131036131037131038131039131040131041131042131043131044131045131046131047131048131049131050131051131052131053131054131055131056131057131058131059131060131061131062131063131064131065131066131067131068131069131070131071131072131073131074131075131076131077131078131079131080131081131082131083131084131085131086131087131088131089131090131091131092131093131094131095131096131097131098131099131100131101131102131103131104131105131106131107131108131109131110131111131112131113131114131115131116131117131118131119131120131121131122131123131124131125131126131127131128131129131130131131131132131133131134131135131136131137131138131139131140131141131142131143131144131145131146131147131148131149131150131151131152131153131154131155131156131157131158131159131160131161131162131163131164131165131166131167131168131169131170131171131172131173131174131175131176131177131178131179131180131181131182131183131184131185131186131187131188131189131190131191131192131193131194131195131196131197131198131199131200131201131202131203131204131205131206131207131208131209131210131211131212131213131214131215131216131217131218131219131220131221131222131223131224131225131226131227131228131229131230131231131232131233131234131235131236131237131238131239131240131241131242131243131244131245131246131247131248131249131250131251131252131253131254131255131256131257131258131259131260131261131262131263131264131265131266131267131268131269131270131271131272131273131274131275131276131277131278131279131280131281131282131283131284131285131286131287131288131289131290131291131292131293131294131295131296131297131298131299131300131301131302131303131304131305131306131307131308131309131310131311131312131313131314131315131316131317131318131319131320131321131322131323131324131325131326131327131328131329131330131331131332131333131334131335131336131337131338131339131340131341131342131343131344131345131346131347131348131349131350131351131352131353131354131355131356131357131358131359131360131361131362131363131364131365131366131367131368131369131370131371131372131373131374131375131376131377131378131379131380131381131382131383131384131385131386131387131388131389131390131391131392131393131394131395131396131397131398131399131400131401131402131403131404131405131406131407131408131409131410131411131412131413131414131415131416131417131418131419131420131421131422131423131424131425131426131427131428131429131430131431131432131433131434131435131436131437131438131439131440131441131442131443131444131445131446131447131448131449131450131451131452131453131454131455131456131457131458131459131460131461131462131463131464131465131466131467131468131469131470131471131472131473131474131475131476131477131478131479131480131481131482131483131484131485131486131487131488131489131490131491131492131493131494131495131496131497131498131499131500131501131502131503131504131505131506131507131508131509131510131511131512131513131514131515131516131517131518131519131520131521131522131523131524131525131526131527131528131529131530131531131532131533131534131535131536131537131538131539131540131541131542131543131544131545131546131547131548131549131550131551131552131553131554131555131556131557131558131559131560131561131562131563131564131565131566131567131568131569131570131571131572131573131574131575131576131577131578131579131580131581131582131583131584131585131586131587131588131589131590131591131592131593131594131595131596131597131598131599131600131601131602131603131604131605131606131607131608131609131610131611131612131613131614131615131616131617131618131619131620131621131622131623131624131625131626131627131628131629131630131631131632131633131634131635131636131637131638131639131640131641131642131643131644131645131646131647131648131649131650131651131652131653131654131655131656131657131658131659131660131661131662131663131664131665131666131667131668131669131670131671131672131673131674131675131676131677131678131679131680131681131682131683131684131685131686131687131688131689131690131691131692131693131694131695131696131697131698131699131700131701131702131703131704131705131706131707131708131709131710131711131712131713131714131715131716131717131718131719131720131721131722131723131724131725131726131727131728131729131730131731131732131733131734131735131736131737131738131739131740131741131742131743131744131745131746131747131748131749131750131751131752131753131754131755131756131757131758131759131760131761131762131763131764131765131766131767131768131769131770131771131772131773131774131775131776131777131778131779131780131781131782131783131784131785131786131787131788131789131790131791131792131793131794131795131796131797131798131799131800131801131802131803131804131805131806131807131808131809131810131811131812131813131814131815131816131817131818131819131820131821131822131823131824131825131826131827131828131829131830131831131832131833131834131835131836131837131838131839131840131841131842131843131844131845131846131847131848131849131850131851131852131853131854131855131856131857131858131859131860131861131862131863131864131865131866131867131868131869131870131871131872131873131874131875131876131877131878131879131880131881131882131883131884131885131886131887131888131889131890131891131892131893131894131895131896131897131898131899131900131901131902131903131904131905131906131907131908131909131910131911131912131913131914131915131916131917131918131919131920131921131922131923131924131925131926131927131928131929131930131931131932131933131934131935131936131937131938131939131940131941131942131943131944131945131946131947131948131949131950131951131952131953131954131955131956131957131958131959131960131961131962131963131964131965131966131967131968131969131970131971131972131973131974131975131976131977131978131979131980131981131982131983131984131985131986131987131988131989131990131991131992131993131994131995131996131997131998131999132000132001132002132003132004132005132006132007132008132009132010132011132012132013132014132015132016132017132018132019132020132021132022132023132024132025132026132027132028132029132030132031132032132033132034132035132036132037132038132039132040132041132042132043132044132045132046132047132048132049132050132051132052132053132054132055132056132057132058132059132060132061132062132063132064132065132066132067132068132069132070132071132072132073132074132075132076132077132078132079132080132081132082132083132084132085132086132087132088132089132090132091132092132093132094132095132096132097132098132099132100132101132102132103132104132105132106132107132108132109132110132111132112132113132114132115132116132117132118132119132120132121132122132123132124132125132126132127132128132129132130132131132132132133132134132135132136132137132138132139132140132141132142132143132144132145132146132147132148132149132150132151132152132153132154132155132156132157132158132159132160132161132162132163132164132165132166132167132168132169132170132171132172132173132174132175132176132177132178132179132180132181132182132183132184132185132186132187132188132189132190132191132192132193132194132195132196132197132198132199132200132201132202132203132204132205132206132207132208132209132210132211132212132213132214132215132216132217132218132219132220132221132222132223132224132225132226132227132228132229132230132231132232132233132234132235132236132237132238132239132240132241132242132243132244132245132246132247132248132249132250132251132252132253132254132255132256132257132258132259132260132261132262132263132264132265132266132267132268132269132270132271132272132273132274132275132276132277132278132279132280132281132282132283132284132285132286132287132288132289132290132291132292132293132294132295132296132297132298132299132300132301132302132303132304132305132306132307132308132309132310132311132312132313132314132315132316132317132318132319132320132321132322132323132324132325132326132327132328132329132330132331132332132333132334132335132336132337132338132339132340132341132342132343132344132345132346132347132348132349132350132351132352132353132354132355132356132357132358132359132360132361132362132363132364132365132366132367132368132369132370132371132372132373132374132375132376132377132378132379132380132381132382132383132384132385132386132387132388132389132390132391132392132393132394132395132396132397132398132399132400132401132402132403132404132405132406132407132408132409132410132411132412132413132414132415132416132417132418132419132420132421132422132423132424132425132426132427132428132429132430132431132432132433132434132435132436132437132438132439132440132441132442132443132444132445132446132447132448132449132450132451132452132453132454132455132456132457132458132459132460132461132462132463132464132465132466132467132468132469132470132471132472132473132474132475132476132477132478132479132480132481132482132483132484132485132486132487132488132489132490132491132492132493132494132495132496132497132498132499132500132501132502132503132504132505132506132507132508132509132510132511132512132513132514132515132516132517132518132519132520132521132522132523132524132525132526132527132528132529132530132531132532132533132534132535132536132537132538132539132540132541132542132543132544132545132546132547132548132549132550132551132552132553132554132555132556132557132558132559132560132561132562132563132564132565132566132567132568132569132570132571132572132573132574132575132576132577132578132579132580132581132582132583132584132585132586132587132588132589132590132591132592132593132594132595132596132597132598132599132600132601132602132603132604132605132606132607132608132609132610132611132612132613132614132615132616132617132618132619132620132621132622132623132624132625132626132627132628132629132630132631132632132633132634132635132636132637132638132639132640132641132642132643132644132645132646132647132648132649132650132651132652132653132654132655132656132657132658132659132660132661132662132663132664132665132666132667132668132669132670132671132672132673132674132675132676132677132678132679132680132681132682132683132684132685132686132687132688132689132690132691132692132693132694132695132696132697132698132699132700132701132702132703132704132705132706132707132708132709132710132711132712132713132714132715132716132717132718132719132720132721132722132723132724132725132726132727132728132729132730132731132732132733132734132735132736132737132738132739132740132741132742132743132744132745132746132747132748132749132750132751132752132753132754132755132756132757132758132759132760132761132762132763132764132765132766132767132768132769132770132771132772132773132774132775132776132777132778132779132780132781132782132783132784132785132786132787132788132789132790132791132792132793132794132795132796132797132798132799132800132801132802132803132804132805132806132807132808132809132810132811132812132813132814132815132816132817132818132819132820132821132822132823132824132825132826132827132828132829132830132831132832132833132834132835132836132837132838132839132840132841132842132843132844132845132846132847132848132849132850132851132852132853132854132855132856132857132858132859132860132861132862132863132864132865132866132867132868132869132870132871132872132873132874132875132876132877132878132879132880132881132882132883132884132885132886132887132888132889132890132891132892132893132894132895132896132897132898132899132900132901132902132903132904132905132906132907132908132909132910132911132912132913132914132915132916132917132918132919132920132921132922132923132924132925132926132927132928132929132930132931132932132933132934132935132936132937132938132939132940132941132942132943132944132945132946132947132948132949132950132951132952132953132954132955132956132957132958132959132960132961132962132963132964132965132966132967132968132969132970132971132972132973132974132975132976132977132978132979132980132981132982132983132984132985132986132987132988132989132990132991132992132993132994132995132996132997132998132999133000133001133002133003133004133005133006133007133008133009133010133011133012133013133014133015133016133017133018133019133020133021133022133023133024133025133026133027133028133029133030133031133032133033133034133035133036133037133038133039133040133041133042133043133044133045133046133047133048133049133050133051133052133053133054133055133056133057133058133059133060133061133062133063133064133065133066133067133068133069133070133071133072133073133074133075133076133077133078133079133080133081133082133083133084133085133086133087133088133089133090133091133092133093133094133095133096133097133098133099133100133101133102133103133104133105133106133107133108133109133110133111133112133113133114133115133116133117133118133119133120133121133122133123133124133125133126133127133128133129133130133131133132133133133134133135133136133137133138133139133140133141133142133143133144133145133146133147133148133149133150133151133152133153133154133155133156133157133158133159133160133161133162133163133164133165133166133167133168133169133170133171133172133173133174133175133176133177133178133179133180133181133182133183133184133185133186133187133188133189133190133191133192133193133194133195133196133197133198133199133200133201133202133203133204133205133206133207133208133209133210133211133212133213133214133215133216133217133218133219133220133221133222133223133224133225133226133227133228133229133230133231133232133233133234133235133236133237133238133239133240133241133242133243133244133245133246133247133248133249133250133251133252133253133254133255133256133257133258133259133260133261133262133263133264133265133266133267133268133269133270133271133272133273133274133275133276133277133278133279133280133281133282133283133284133285133286133287133288133289133290133291133292133293133294133295133296133297133298133299133300133301133302133303133304133305133306133307133308133309133310133311133312133313133314133315133316133317133318133319133320133321133322133323133324133325133326133327133328133329133330133331133332133333133334133335133336133337133338133339133340133341133342133343133344133345133346133347133348133349133350133351133352133353133354133355133356133357133358133359133360133361133362133363133364133365133366133367133368133369133370133371133372133373133374133375133376133377133378133379133380133381133382133383133384133385133386133387133388133389133390133391133392133393133394133395133396133397133398133399133400133401133402133403133404133405133406133407133408133409133410133411133412133413133414133415133416133417133418133419133420133421133422133423133424133425133426133427133428133429133430133431133432133433133434133435133436133437133438133439133440133441133442133443133444133445133446133447133448133449133450133451133452133453133454133455133456133457133458133459133460133461133462133463133464133465133466133467133468133469133470133471133472133473133474133475133476133477133478133479133480133481133482133483133484133485133486133487133488133489133490133491133492133493133494133495133496133497133498133499133500133501133502133503133504133505133506133507133508133509133510133511133512133513133514133515133516133517133518133519133520133521133522133523133524133525133526133527133528133529133530133531133532133533133534133535133536133537133538133539133540133541133542133543133544133545133546133547133548133549133550133551133552133553133554133555133556133557133558133559133560133561133562133563133564133565133566133567133568133569133570133571133572133573133574133575133576133577133578133579133580133581133582133583133584133585133586133587133588133589133590133591133592133593133594133595133596133597133598133599133600133601133602133603133604133605133606133607133608133609133610133611133612133613133614133615133616133617133618133619133620133621133622133623133624133625133626133627133628133629133630133631133632133633133634133635133636133637133638133639133640133641133642133643133644133645133646133647133648133649133650133651133652133653133654133655133656133657133658133659133660133661133662133663133664133665133666133667133668133669133670133671133672133673133674133675133676133677133678133679133680133681133682133683133684133685133686133687133688133689133690133691133692133693133694133695133696133697133698133699133700133701133702133703133704133705133706133707133708133709133710133711133712133713133714133715133716133717133718133719133720133721133722133723133724133725133726133727133728133729133730133731133732133733133734133735133736133737133738133739133740133741133742133743133744133745133746133747133748133749133750133751133752133753133754133755133756133757133758133759133760133761133762133763133764133765133766133767133768133769133770133771133772133773133774133775133776133777133778133779133780133781133782133783133784133785133786133787133788133789133790133791133792133793133794133795133796133797133798133799133800133801133802133803133804133805133806133807133808133809133810133811133812133813133814133815133816133817133818133819133820133821133822133823133824133825133826133827133828133829133830133831133832133833133834133835133836133837133838133839133840133841133842133843133844133845133846133847133848133849133850133851133852133853133854133855133856133857133858133859133860133861133862133863133864133865133866133867133868133869133870133871133872133873133874133875133876133877133878133879133880133881133882133883133884133885133886133887133888133889133890133891133892133893133894133895133896133897133898133899133900133901133902133903133904133905133906133907133908133909133910133911133912133913133914133915133916133917133918133919133920133921133922133923133924133925133926133927133928133929133930133931133932133933133934133935133936133937133938133939133940133941133942133943133944133945133946133947133948133949133950133951133952133953133954133955133956133957133958133959133960133961133962133963133964133965133966133967133968133969133970133971133972133973133974133975133976133977133978133979133980133981133982133983133984133985133986133987133988133989133990133991133992133993133994133995133996133997133998133999134000134001134002134003134004134005134006134007134008134009134010134011134012134013134014134015134016134017134018134019134020134021134022134023134024134025134026134027134028134029134030134031134032134033134034134035134036134037134038134039134040134041134042134043134044134045134046134047134048134049134050134051134052134053134054134055134056134057134058134059134060134061134062134063134064134065134066134067134068134069134070134071134072134073134074134075134076134077134078134079134080134081134082134083134084134085134086134087134088134089134090134091134092134093134094134095134096134097134098134099134100134101134102134103134104134105134106134107134108134109134110134111134112134113134114134115134116134117134118134119134120134121134122134123134124134125134126134127134128134129134130134131134132134133134134134135134136134137134138134139134140134141134142134143134144134145134146134147134148134149134150134151134152134153134154134155134156134157134158134159134160134161134162134163134164134165134166134167134168134169134170134171134172134173134174134175134176134177134178134179134180134181134182134183134184134185134186134187134188134189134190134191134192134193134194134195134196134197134198134199134200134201134202134203134204134205134206134207134208134209134210134211134212134213134214134215134216134217134218134219134220134221134222134223134224134225134226134227134228134229134230134231134232134233134234134235134236134237134238134239134240134241134242134243134244134245134246134247134248134249134250134251134252134253134254134255134256134257134258134259134260134261134262134263134264134265134266134267134268134269134270134271134272134273134274134275134276134277134278134279134280134281134282134283134284134285134286134287134288134289134290134291134292134293134294134295134296134297134298134299134300134301134302134303134304134305134306134307134308134309134310134311134312134313134314134315134316134317134318134319134320134321134322134323134324134325134326134327134328134329134330134331134332134333134334134335134336134337134338134339134340134341134342134343134344134345134346134347134348134349134350134351134352134353134354134355134356134357134358134359134360134361134362134363134364134365134366134367134368134369134370134371134372134373134374134375134376134377134378134379134380134381134382134383134384134385134386134387134388134389134390134391134392134393134394134395134396134397134398134399134400134401134402134403134404134405134406134407134408134409134410134411134412134413134414134415134416134417134418134419134420134421134422134423134424134425134426134427134428134429134430134431134432134433134434134435134436134437134438134439134440134441134442134443134444134445134446134447134448134449134450134451134452134453134454134455134456134457134458134459134460134461134462134463134464134465134466134467134468134469134470134471134472134473134474134475134476134477134478134479134480134481134482134483134484134485134486134487134488134489134490134491134492134493134494134495134496134497134498134499134500134501134502134503134504134505134506134507134508134509134510134511134512134513134514134515134516134517134518134519134520134521134522134523134524134525134526134527134528134529134530134531134532134533134534134535134536134537134538134539134540134541134542134543134544134545134546134547134548134549134550134551134552134553134554134555134556134557134558134559134560134561134562134563134564134565134566134567134568134569134570134571134572134573134574134575134576134577134578134579134580134581134582134583134584134585134586134587134588134589134590134591134592134593134594134595134596134597134598134599134600134601134602134603134604134605134606134607134608134609134610134611134612134613134614134615134616134617134618134619134620134621134622134623134624134625134626134627134628134629134630134631134632134633134634134635134636134637134638134639134640134641134642134643134644134645134646134647134648134649134650134651134652134653134654134655134656134657134658134659134660134661134662134663134664134665134666134667134668134669134670134671134672134673134674134675134676134677134678134679134680134681134682134683134684134685134686134687134688134689134690134691134692134693134694134695134696134697134698134699134700134701134702134703134704134705134706134707134708134709134710134711134712134713134714134715134716134717134718134719134720134721134722134723134724134725134726134727134728134729134730134731134732134733134734134735134736134737134738134739134740134741134742134743134744134745134746134747134748134749134750134751134752134753134754134755134756134757134758134759134760134761134762134763134764134765134766134767134768134769134770134771134772134773134774134775134776134777134778134779134780134781134782134783134784134785134786134787134788134789134790134791134792134793134794134795134796134797134798134799134800134801134802134803134804134805134806134807134808134809134810134811134812134813134814134815134816134817134818134819134820134821134822134823134824134825134826134827134828134829134830134831134832134833134834134835134836134837134838134839134840134841134842134843134844134845134846134847134848134849134850134851134852134853134854134855134856134857134858134859134860134861134862134863134864134865134866134867134868134869134870134871134872134873134874134875134876134877134878134879134880134881134882134883134884134885134886134887134888134889134890134891134892134893134894134895134896134897134898134899134900134901134902134903134904134905134906134907134908134909134910134911134912134913134914134915134916134917134918134919134920134921134922134923134924134925134926134927134928134929134930134931134932134933134934134935134936134937134938134939134940134941134942134943134944134945134946134947134948134949134950134951134952134953134954134955134956134957134958134959134960134961134962134963134964134965134966134967134968134969134970134971134972134973134974134975134976134977134978134979134980134981134982134983134984134985134986134987134988134989134990134991134992134993134994134995134996134997134998134999135000135001135002135003135004135005135006135007135008135009135010135011135012135013135014135015135016135017135018135019135020135021135022135023135024135025135026135027135028135029135030135031135032135033135034135035135036135037135038135039135040135041135042135043135044135045135046135047135048135049135050135051135052135053135054135055135056135057135058135059135060135061135062135063135064135065135066135067135068135069135070135071135072135073135074135075135076135077135078135079135080135081135082135083135084135085135086135087135088135089135090135091135092135093135094135095135096135097135098135099135100135101135102135103135104135105135106135107135108135109135110135111135112135113135114135115135116135117135118135119135120135121135122135123135124135125135126135127135128135129135130135131135132135133135134135135135136135137135138135139135140135141135142135143135144135145135146135147135148135149135150135151135152135153135154135155135156135157135158135159135160135161135162135163135164135165135166135167135168135169135170135171135172135173135174135175135176135177135178135179135180135181135182135183135184135185135186135187135188135189135190135191135192135193135194135195135196135197135198135199135200135201135202135203135204135205135206135207135208135209135210135211135212135213135214135215135216135217135218135219135220135221135222135223135224135225135226135227135228135229135230135231135232135233135234135235135236135237135238135239135240135241135242135243135244135245135246135247135248135249135250135251135252135253135254135255135256135257135258135259135260135261135262135263135264135265135266135267135268135269135270135271135272135273135274135275135276135277135278135279135280135281135282135283135284135285135286135287135288135289135290135291135292135293135294135295135296135297135298135299135300135301135302135303135304135305135306135307135308135309135310135311135312135313135314135315135316135317135318135319135320135321135322135323135324135325135326135327135328135329135330135331135332135333135334135335135336135337135338135339135340135341135342135343135344135345135346135347135348135349135350135351135352135353135354135355135356135357135358135359135360135361135362135363135364135365135366135367135368135369135370135371135372135373135374135375135376135377135378135379135380135381135382135383135384135385135386135387135388135389135390135391135392135393135394135395135396135397135398135399135400135401135402135403135404135405135406135407135408135409135410135411135412135413135414135415135416135417135418135419135420135421135422135423135424135425135426135427135428135429135430135431135432135433135434135435135436135437135438135439135440135441135442135443135444135445135446135447135448135449135450135451135452135453135454135455135456135457135458135459135460135461135462135463135464135465135466135467135468135469135470135471135472135473135474135475135476135477135478135479135480135481135482135483135484135485135486135487135488135489135490135491135492135493135494135495135496135497135498135499135500135501135502135503135504135505135506135507135508135509135510135511135512135513135514135515135516135517135518135519135520135521135522135523135524135525135526135527135528135529135530135531135532135533135534135535135536135537135538135539135540135541135542135543135544135545135546135547135548135549135550135551135552135553135554135555135556135557135558135559135560135561135562135563135564135565135566135567135568135569135570135571135572135573135574135575135576135577135578135579135580135581135582135583135584135585135586135587135588135589135590135591135592135593135594135595135596135597135598135599135600135601135602135603135604135605135606135607135608135609135610135611135612135613135614135615135616135617135618135619135620135621135622135623135624135625135626135627135628135629135630135631135632135633135634135635135636135637135638135639135640135641135642135643135644135645135646135647135648135649135650135651135652135653135654135655135656135657135658135659135660135661135662135663135664135665135666135667135668135669135670135671135672135673135674135675135676135677135678135679135680135681135682135683135684135685135686135687135688135689135690135691135692135693135694135695135696135697135698135699135700135701135702135703135704135705135706135707135708135709135710135711135712135713135714135715135716135717135718135719135720135721135722135723135724135725135726135727135728135729135730135731135732135733135734135735135736135737135738135739135740135741135742135743135744135745135746135747135748135749135750135751135752135753135754135755135756135757135758135759135760135761135762135763135764135765135766135767135768135769135770135771135772135773135774135775135776135777135778135779135780135781135782135783135784135785135786135787135788135789135790135791135792135793135794135795135796135797135798135799135800135801135802135803135804135805135806135807135808135809135810135811135812135813135814135815135816135817135818135819135820135821135822135823135824135825135826135827135828135829135830135831135832135833135834135835135836135837135838135839135840135841135842135843135844135845135846135847135848135849135850135851135852135853135854135855135856135857135858135859135860135861135862135863135864135865135866135867135868135869135870135871135872135873135874135875135876135877135878135879135880135881135882135883135884135885135886135887135888135889135890135891135892135893135894135895135896135897135898135899135900135901135902135903135904135905135906135907135908135909135910135911135912135913135914135915135916135917135918135919135920135921135922135923
  1. diff -Nur uClibc-0.9.33.2/docs/man/arc4random.3 uClibc-git/docs/man/arc4random.3
  2. --- uClibc-0.9.33.2/docs/man/arc4random.3 1970-01-01 01:00:00.000000000 +0100
  3. +++ uClibc-git/docs/man/arc4random.3 2014-06-02 17:40:33.670710081 +0200
  4. @@ -0,0 +1,110 @@
  5. +.\" $OpenBSD: arc4random.3,v 1.19 2005/07/17 08:50:55 jaredy Exp $
  6. +.\"
  7. +.\" Copyright 1997 Niels Provos <provos@physnet.uni-hamburg.de>
  8. +.\" All rights reserved.
  9. +.\"
  10. +.\" Redistribution and use in source and binary forms, with or without
  11. +.\" modification, are permitted provided that the following conditions
  12. +.\" are met:
  13. +.\" 1. Redistributions of source code must retain the above copyright
  14. +.\" notice, this list of conditions and the following disclaimer.
  15. +.\" 2. Redistributions in binary form must reproduce the above copyright
  16. +.\" notice, this list of conditions and the following disclaimer in the
  17. +.\" documentation and/or other materials provided with the distribution.
  18. +.\" 3. All advertising materials mentioning features or use of this software
  19. +.\" must display the following acknowledgement:
  20. +.\" This product includes software developed by Niels Provos.
  21. +.\" 4. The name of the author may not be used to endorse or promote products
  22. +.\" derived from this software without specific prior written permission.
  23. +.\"
  24. +.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
  25. +.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  26. +.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  27. +.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
  28. +.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  29. +.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  30. +.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  31. +.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  32. +.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  33. +.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  34. +.\"
  35. +.\" Manual page, using -mandoc macros
  36. +.\"
  37. +.Dd April 15, 1997
  38. +.Dt ARC4RANDOM 3
  39. +.Os
  40. +.Sh NAME
  41. +.Nm arc4random ,
  42. +.Nm arc4random_stir ,
  43. +.Nm arc4random_addrandom
  44. +.Nd arc4 random number generator
  45. +.Sh SYNOPSIS
  46. +.Fd #include <stdlib.h>
  47. +.Ft uint32_t
  48. +.Fn arc4random "void"
  49. +.Ft void
  50. +.Fn arc4random_stir "void"
  51. +.Ft void
  52. +.Fn arc4random_addrandom "u_char *dat" "int datlen"
  53. +.Sh DESCRIPTION
  54. +The
  55. +.Fn arc4random
  56. +function provides a high quality 32-bit pseudo-random
  57. +number very quickly.
  58. +.Fn arc4random
  59. +seeds itself on a regular basis from the kernel strong random number
  60. +subsystem described in
  61. +.Xr random 4 .
  62. +On each call, an ARC4 generator is used to generate a new result.
  63. +The
  64. +.Fn arc4random
  65. +function uses the ARC4 cipher key stream generator,
  66. +which uses 8*8 8-bit S-Boxes.
  67. +The S-Boxes can be in about (2**1700) states.
  68. +.Pp
  69. +.Fn arc4random
  70. +fits into a middle ground not covered by other subsystems such as
  71. +the strong, slow, and resource expensive random
  72. +devices described in
  73. +.Xr random 4
  74. +versus the fast but poor quality interfaces described in
  75. +.Xr rand 3 ,
  76. +.Xr random 3 ,
  77. +and
  78. +.Xr drand48 3 .
  79. +.Pp
  80. +The
  81. +.Fn arc4random_stir
  82. +function reads data from a pseudo-random device, usually
  83. +.Pa /dev/urandom,
  84. +and uses it to permute the S-Boxes via
  85. +.Fn arc4random_addrandom .
  86. +.Pp
  87. +There is no need to call
  88. +.Fn arc4random_stir
  89. +before using
  90. +.Fn arc4random ,
  91. +since
  92. +.Fn arc4random
  93. +automatically initializes itself.
  94. +.Sh SEE ALSO
  95. +.Xr rand 3 ,
  96. +.Xr rand48 3 ,
  97. +.Xr random 3
  98. +.Sh HISTORY
  99. +An algorithm called
  100. +.Pa RC4
  101. +was designed by RSA Data Security, Inc.
  102. +It was considered a trade secret.
  103. +Because it was a trade secret, it obviously could not be patented.
  104. +A clone of this was posted anonymously to USENET and confirmed to
  105. +be equivalent by several sources who had access to the original cipher.
  106. +Because of the trade secret situation, RSA Data Security, Inc. can do
  107. +nothing about the release of the ARC4 algorithm.
  108. +Since
  109. +.Pa RC4
  110. +used to be a trade secret, the cipher is now referred to as
  111. +.Pa ARC4 .
  112. +.Pp
  113. +These functions first appeared in
  114. +.Ox 2.1 .
  115. diff -Nur uClibc-0.9.33.2/docs/PORTING uClibc-git/docs/PORTING
  116. --- uClibc-0.9.33.2/docs/PORTING 2012-05-15 09:20:09.000000000 +0200
  117. +++ uClibc-git/docs/PORTING 2014-06-02 17:40:33.670710081 +0200
  118. @@ -130,9 +130,6 @@
  119. ====================
  120. === Misc Cruft ===
  121. ====================
  122. -- utils/readelf.c - not really needed generally speaking, but might as well
  123. - add your arch to the giant EM_* list (describe_elf_hdr)
  124. -
  125. - MAINTAINERS - presumably you're going to submit this code back to mainline
  126. and since you're the only one who cares about this arch (right now), you
  127. should add yourself to the toplevel MAINTAINERS file. do it.
  128. diff -Nur uClibc-0.9.33.2/extra/config/check.sh uClibc-git/extra/config/check.sh
  129. --- uClibc-0.9.33.2/extra/config/check.sh 2012-05-15 09:20:09.000000000 +0200
  130. +++ uClibc-git/extra/config/check.sh 2014-06-02 17:40:33.722710369 +0200
  131. @@ -1,6 +1,6 @@
  132. #!/bin/sh
  133. # Needed for systems without gettext
  134. -$* -xc -o /dev/null - > /dev/null 2>&1 << EOF
  135. +$* -x c -o /dev/null - > /dev/null 2>&1 << EOF
  136. #include <libintl.h>
  137. int main()
  138. {
  139. diff -Nur uClibc-0.9.33.2/extra/config/conf.c uClibc-git/extra/config/conf.c
  140. --- uClibc-0.9.33.2/extra/config/conf.c 2012-05-15 09:20:09.000000000 +0200
  141. +++ uClibc-git/extra/config/conf.c 2014-06-02 17:40:33.722710369 +0200
  142. @@ -10,42 +10,48 @@
  143. #include <string.h>
  144. #include <time.h>
  145. #include <unistd.h>
  146. +#include <getopt.h>
  147. #include <sys/stat.h>
  148. #include <sys/time.h>
  149. +#include <errno.h>
  150. -#define LKC_DIRECT_LINK
  151. #include "lkc.h"
  152. static void conf(struct menu *menu);
  153. static void check_conf(struct menu *menu);
  154. +static void xfgets(char *str, int size, FILE *in);
  155. -enum {
  156. - ask_all,
  157. - ask_new,
  158. - ask_silent,
  159. - set_default,
  160. - set_yes,
  161. - set_mod,
  162. - set_no,
  163. - set_random
  164. -} input_mode = ask_all;
  165. -char *defconfig_file;
  166. +enum input_mode {
  167. + oldaskconfig,
  168. + silentoldconfig,
  169. + oldconfig,
  170. + allnoconfig,
  171. + allyesconfig,
  172. + allmodconfig,
  173. + alldefconfig,
  174. + randconfig,
  175. + defconfig,
  176. + savedefconfig,
  177. + listnewconfig,
  178. + olddefconfig,
  179. +} input_mode = oldaskconfig;
  180. static int indent = 1;
  181. +static int tty_stdio;
  182. static int valid_stdin = 1;
  183. static int sync_kconfig;
  184. static int conf_cnt;
  185. static char line[128];
  186. static struct menu *rootEntry;
  187. -static char nohelp_text[] = N_("Sorry, no help available for this option yet.\n");
  188. -
  189. -static const char *get_help(struct menu *menu)
  190. +static void print_help(struct menu *menu)
  191. {
  192. - if (menu_has_help(menu))
  193. - return _(menu_get_help(menu));
  194. - else
  195. - return nohelp_text;
  196. + struct gstr help = str_new();
  197. +
  198. + menu_get_ext_help(menu, &help);
  199. +
  200. + printf("\n%s\n", str_get(&help));
  201. + str_free(&help);
  202. }
  203. static void strip(char *str)
  204. @@ -93,16 +99,19 @@
  205. }
  206. switch (input_mode) {
  207. - case ask_new:
  208. - case ask_silent:
  209. + case oldconfig:
  210. + case silentoldconfig:
  211. if (sym_has_value(sym)) {
  212. printf("%s\n", def);
  213. return 0;
  214. }
  215. check_stdin();
  216. - case ask_all:
  217. + /* fall through */
  218. + case oldaskconfig:
  219. fflush(stdout);
  220. - fgets(line, 128, stdin);
  221. + xfgets(line, 128, stdin);
  222. + if (!tty_stdio)
  223. + printf("\n");
  224. return 1;
  225. default:
  226. break;
  227. @@ -121,7 +130,7 @@
  228. return 1;
  229. }
  230. -int conf_string(struct menu *menu)
  231. +static int conf_string(struct menu *menu)
  232. {
  233. struct symbol *sym = menu->sym;
  234. const char *def;
  235. @@ -140,10 +149,11 @@
  236. case '?':
  237. /* print help */
  238. if (line[1] == '\n') {
  239. - printf("\n%s\n", get_help(menu));
  240. + print_help(menu);
  241. def = NULL;
  242. break;
  243. }
  244. + /* fall through */
  245. default:
  246. line[strlen(line)-1] = 0;
  247. def = line;
  248. @@ -156,14 +166,12 @@
  249. static int conf_sym(struct menu *menu)
  250. {
  251. struct symbol *sym = menu->sym;
  252. - int type;
  253. tristate oldval, newval;
  254. while (1) {
  255. printf("%*s%s ", indent - 1, "", _(menu->prompt->text));
  256. if (sym->name)
  257. printf("(%s) ", sym->name);
  258. - type = sym_get_type(sym);
  259. putchar('[');
  260. oldval = sym_get_tristate_value(sym);
  261. switch (oldval) {
  262. @@ -220,7 +228,7 @@
  263. if (sym_set_tristate_value(sym, newval))
  264. return 0;
  265. help:
  266. - printf("\n%s\n", get_help(menu));
  267. + print_help(menu);
  268. }
  269. }
  270. @@ -228,11 +236,9 @@
  271. {
  272. struct symbol *sym, *def_sym;
  273. struct menu *child;
  274. - int type;
  275. bool is_new;
  276. sym = menu->sym;
  277. - type = sym_get_type(sym);
  278. is_new = !sym_has_value(sym);
  279. if (sym_is_changable(sym)) {
  280. conf_sym(menu);
  281. @@ -294,20 +300,21 @@
  282. printf("?");
  283. printf("]: ");
  284. switch (input_mode) {
  285. - case ask_new:
  286. - case ask_silent:
  287. + case oldconfig:
  288. + case silentoldconfig:
  289. if (!is_new) {
  290. cnt = def;
  291. printf("%d\n", cnt);
  292. break;
  293. }
  294. check_stdin();
  295. - case ask_all:
  296. + /* fall through */
  297. + case oldaskconfig:
  298. fflush(stdout);
  299. - fgets(line, 128, stdin);
  300. + xfgets(line, 128, stdin);
  301. strip(line);
  302. if (line[0] == '?') {
  303. - printf("\n%s\n", get_help(menu));
  304. + print_help(menu);
  305. continue;
  306. }
  307. if (!line[0])
  308. @@ -330,8 +337,8 @@
  309. }
  310. if (!child)
  311. continue;
  312. - if (line[strlen(line) - 1] == '?') {
  313. - printf("\n%s\n", get_help(child));
  314. + if (line[0] && line[strlen(line) - 1] == '?') {
  315. + print_help(child);
  316. continue;
  317. }
  318. sym_set_choice_value(sym, child->sym);
  319. @@ -360,10 +367,14 @@
  320. switch (prop->type) {
  321. case P_MENU:
  322. - if (input_mode == ask_silent && rootEntry != menu) {
  323. + if ((input_mode == silentoldconfig ||
  324. + input_mode == listnewconfig ||
  325. + input_mode == olddefconfig) &&
  326. + rootEntry != menu) {
  327. check_conf(menu);
  328. return;
  329. }
  330. + /* fall through */
  331. case P_COMMENT:
  332. prompt = menu_get_prompt(menu);
  333. if (prompt)
  334. @@ -418,10 +429,16 @@
  335. if (sym && !sym_has_value(sym)) {
  336. if (sym_is_changable(sym) ||
  337. (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)) {
  338. - if (!conf_cnt++)
  339. - printf(_("*\n* Restart config...\n*\n"));
  340. - rootEntry = menu_get_parent_menu(menu);
  341. - conf(rootEntry);
  342. + if (input_mode == listnewconfig) {
  343. + if (sym->name && !sym_is_choice_value(sym)) {
  344. + printf("%s%s\n", CONFIG_, sym->name);
  345. + }
  346. + } else if (input_mode != olddefconfig) {
  347. + if (!conf_cnt++)
  348. + printf(_("*\n* Restart config...\n*\n"));
  349. + rootEntry = menu_get_parent_menu(menu);
  350. + conf(rootEntry);
  351. + }
  352. }
  353. }
  354. @@ -429,90 +446,170 @@
  355. check_conf(child);
  356. }
  357. +#if 00 // || !defined __UCLIBC__ || \
  358. + (defined UCLIBC_HAS_GETOPT_LONG || defined UCLIBC_HAS_GNU_GETOPT)
  359. +static struct option long_opts[] = {
  360. + {"oldaskconfig", no_argument, NULL, oldaskconfig},
  361. + {"oldconfig", no_argument, NULL, oldconfig},
  362. + {"silentoldconfig", no_argument, NULL, silentoldconfig},
  363. + {"defconfig", optional_argument, NULL, defconfig},
  364. + {"savedefconfig", required_argument, NULL, savedefconfig},
  365. + {"allnoconfig", no_argument, NULL, allnoconfig},
  366. + {"allyesconfig", no_argument, NULL, allyesconfig},
  367. + {"allmodconfig", no_argument, NULL, allmodconfig},
  368. + {"alldefconfig", no_argument, NULL, alldefconfig},
  369. + {"randconfig", no_argument, NULL, randconfig},
  370. + {"listnewconfig", no_argument, NULL, listnewconfig},
  371. + {"olddefconfig", no_argument, NULL, olddefconfig},
  372. + /*
  373. + * oldnoconfig is an alias of olddefconfig, because people already
  374. + * are dependent on its behavior(sets new symbols to their default
  375. + * value but not 'n') with the counter-intuitive name.
  376. + */
  377. + {"oldnoconfig", no_argument, NULL, olddefconfig},
  378. + {NULL, 0, NULL, 0}
  379. +};
  380. +
  381. +static void conf_usage(const char *progname)
  382. +{
  383. +
  384. + printf("Usage: %s [option] <kconfig-file>\n", progname);
  385. + printf("[option] is _one_ of the following:\n");
  386. + printf(" --listnewconfig List new options\n");
  387. + printf(" --oldaskconfig Start a new configuration using a line-oriented program\n");
  388. + printf(" --oldconfig Update a configuration using a provided .config as base\n");
  389. + printf(" --silentoldconfig Same as oldconfig, but quietly, additionally update deps\n");
  390. + printf(" --olddefconfig Same as silentoldconfig but sets new symbols to their default value\n");
  391. + printf(" --oldnoconfig An alias of olddefconfig\n");
  392. + printf(" --defconfig <file> New config with default defined in <file>\n");
  393. + printf(" --savedefconfig <file> Save the minimal current configuration to <file>\n");
  394. + printf(" --allnoconfig New config where all options are answered with no\n");
  395. + printf(" --allyesconfig New config where all options are answered with yes\n");
  396. + printf(" --allmodconfig New config where all options are answered with mod\n");
  397. + printf(" --alldefconfig New config with all symbols set to default\n");
  398. + printf(" --randconfig New config with random answer to all options\n");
  399. +}
  400. +#else
  401. +static void conf_usage(const char *progname)
  402. +{
  403. +
  404. + printf("Usage: %s [option] <kconfig-file>\n", progname);
  405. + printf("[option] is _one_ of the following:\n");
  406. + printf(" -a, --oldaskconfig Start a new configuration using a line-oriented program\n");
  407. + printf(" -s, --silentoldconfig Same as oldconfig, but quietly, additionally update deps\n");
  408. + printf(" -o, --oldconfig Update a configuration using a provided .config as base\n");
  409. + printf(" -n, --allnoconfig New config where all options are answered with no\n");
  410. + printf(" -y, --allyesconfig New config where all options are answered with yes\n");
  411. + printf(" -m, --allmodconfig New config where all options are answered with mod\n");
  412. + printf(" -A, --alldefconfig New config with all symbols set to default\n");
  413. + printf(" -r, --randconfig New config with random answer to all options\n");
  414. + printf(" -D, --defconfig <file> New config with default defined in <file>\n");
  415. + printf(" -S, --savedefconfig <file> Save the minimal current configuration to <file>\n");
  416. + printf(" -l, --listnewconfig List new options\n");
  417. + printf(" -d, --olddefconfig Same as silentoldconfig but sets new symbols to their default value\n");
  418. + printf(" --oldnoconfig An alias of olddefconfig\n");
  419. +
  420. +}
  421. +#endif
  422. +
  423. int main(int ac, char **av)
  424. {
  425. + const char *progname = av[0];
  426. int opt;
  427. - const char *name;
  428. - const char *configname = conf_get_configname();
  429. + const char *name, *defconfig_file = NULL /* gcc uninit */;
  430. struct stat tmpstat;
  431. setlocale(LC_ALL, "");
  432. bindtextdomain(PACKAGE, LOCALEDIR);
  433. textdomain(PACKAGE);
  434. - while ((opt = getopt(ac, av, "osdD:nmyrh")) != -1) {
  435. + tty_stdio = isatty(0) && isatty(1) && isatty(2);
  436. +
  437. +#if 00// !defined __UCLIBC__ || \
  438. + (defined UCLIBC_HAS_GETOPT_LONG || defined UCLIBC_HAS_GNU_GETOPT)
  439. + while ((opt = getopt_long(ac, av, "", long_opts, NULL)) != -1)
  440. +#else
  441. + char *gch = "asonymArDSld";
  442. + while ((opt = getopt(ac, av, "asonymArD:S:ldh")) != -1)
  443. +#endif
  444. + {
  445. + char *x = memchr(gch, opt, strlen(gch));
  446. + if (x == NULL)
  447. + opt = '?';
  448. + else
  449. + opt = x - gch;
  450. + input_mode = (enum input_mode)opt;
  451. switch (opt) {
  452. - case 'o':
  453. - input_mode = ask_silent;
  454. - break;
  455. - case 's':
  456. - input_mode = ask_silent;
  457. + case silentoldconfig:
  458. sync_kconfig = 1;
  459. break;
  460. - case 'd':
  461. - input_mode = set_default;
  462. - break;
  463. - case 'D':
  464. - input_mode = set_default;
  465. + case defconfig:
  466. + case savedefconfig:
  467. defconfig_file = optarg;
  468. break;
  469. - case 'n':
  470. - input_mode = set_no;
  471. - break;
  472. - case 'm':
  473. - input_mode = set_mod;
  474. - break;
  475. - case 'y':
  476. - input_mode = set_yes;
  477. - break;
  478. - case 'r':
  479. + case randconfig:
  480. {
  481. struct timeval now;
  482. unsigned int seed;
  483. + char *seed_env;
  484. /*
  485. * Use microseconds derived seed,
  486. * compensate for systems where it may be zero
  487. */
  488. gettimeofday(&now, NULL);
  489. -
  490. seed = (unsigned int)((now.tv_sec + 1) * (now.tv_usec + 1));
  491. - srand(seed);
  492. - input_mode = set_random;
  493. + seed_env = getenv("KCONFIG_SEED");
  494. + if( seed_env && *seed_env ) {
  495. + char *endp;
  496. + int tmp = (int)strtol(seed_env, &endp, 0);
  497. + if (*endp == '\0') {
  498. + seed = tmp;
  499. + }
  500. + }
  501. + fprintf( stderr, "KCONFIG_SEED=0x%X\n", seed );
  502. + srand(seed);
  503. break;
  504. }
  505. - case 'h':
  506. - printf(_("See README for usage info\n"));
  507. - exit(0);
  508. + case oldaskconfig:
  509. + case oldconfig:
  510. + case allnoconfig:
  511. + case allyesconfig:
  512. + case allmodconfig:
  513. + case alldefconfig:
  514. + case listnewconfig:
  515. + case olddefconfig:
  516. break;
  517. - default:
  518. - fprintf(stderr, _("See README for usage info\n"));
  519. + case '?':
  520. + conf_usage(progname);
  521. exit(1);
  522. + break;
  523. }
  524. }
  525. if (ac == optind) {
  526. printf(_("%s: Kconfig file missing\n"), av[0]);
  527. + conf_usage(progname);
  528. exit(1);
  529. }
  530. name = av[optind];
  531. conf_parse(name);
  532. //zconfdump(stdout);
  533. if (sync_kconfig) {
  534. - if (stat(configname, &tmpstat)) {
  535. + name = conf_get_configname();
  536. + if (stat(name, &tmpstat)) {
  537. fprintf(stderr, _("***\n"
  538. - "*** You have not yet configured!\n"
  539. - "*** (missing .config file)\n"
  540. + "*** Configuration file \"%s\" not found!\n"
  541. "***\n"
  542. "*** Please run some configurator (e.g. \"make oldconfig\" or\n"
  543. "*** \"make menuconfig\" or \"make xconfig\").\n"
  544. - "***\n"));
  545. + "***\n"), name);
  546. exit(1);
  547. }
  548. }
  549. switch (input_mode) {
  550. - case set_default:
  551. + case defconfig:
  552. if (!defconfig_file)
  553. defconfig_file = conf_get_default_confname();
  554. if (conf_read(defconfig_file)) {
  555. @@ -522,31 +619,46 @@
  556. exit(1);
  557. }
  558. break;
  559. - case ask_silent:
  560. - case ask_all:
  561. - case ask_new:
  562. + case savedefconfig:
  563. + case silentoldconfig:
  564. + case oldaskconfig:
  565. + case oldconfig:
  566. + case listnewconfig:
  567. + case olddefconfig:
  568. conf_read(NULL);
  569. break;
  570. - case set_no:
  571. - case set_mod:
  572. - case set_yes:
  573. - case set_random:
  574. + case allnoconfig:
  575. + case allyesconfig:
  576. + case allmodconfig:
  577. + case alldefconfig:
  578. + case randconfig:
  579. name = getenv("KCONFIG_ALLCONFIG");
  580. - if (name && !stat(name, &tmpstat)) {
  581. - conf_read_simple(name, S_DEF_USER);
  582. + if (!name)
  583. + break;
  584. + if ((strcmp(name, "") != 0) && (strcmp(name, "1") != 0)) {
  585. + if (conf_read_simple(name, S_DEF_USER)) {
  586. + fprintf(stderr,
  587. + _("*** Can't read seed configuration \"%s\"!\n"),
  588. + name);
  589. + exit(1);
  590. + }
  591. break;
  592. }
  593. switch (input_mode) {
  594. - case set_no: name = "allno.config"; break;
  595. - case set_mod: name = "allmod.config"; break;
  596. - case set_yes: name = "allyes.config"; break;
  597. - case set_random: name = "allrandom.config"; break;
  598. + case allnoconfig: name = "allno.config"; break;
  599. + case allyesconfig: name = "allyes.config"; break;
  600. + case allmodconfig: name = "allmod.config"; break;
  601. + case alldefconfig: name = "alldef.config"; break;
  602. + case randconfig: name = "allrandom.config"; break;
  603. default: break;
  604. }
  605. - if (!stat(name, &tmpstat))
  606. - conf_read_simple(name, S_DEF_USER);
  607. - else if (!stat("all.config", &tmpstat))
  608. - conf_read_simple("all.config", S_DEF_USER);
  609. + if (conf_read_simple(name, S_DEF_USER) &&
  610. + conf_read_simple("all.config", S_DEF_USER)) {
  611. + fprintf(stderr,
  612. + _("*** KCONFIG_ALLCONFIG set, but no \"%s\" or \"all.config\" file found\n"),
  613. + name);
  614. + exit(1);
  615. + }
  616. break;
  617. default:
  618. break;
  619. @@ -557,41 +669,51 @@
  620. name = getenv("KCONFIG_NOSILENTUPDATE");
  621. if (name && *name) {
  622. fprintf(stderr,
  623. - _("\n*** configuration requires explicit update.\n\n"));
  624. + _("\n*** The configuration requires explicit update.\n\n"));
  625. return 1;
  626. }
  627. }
  628. - valid_stdin = isatty(0) && isatty(1) && isatty(2);
  629. + valid_stdin = tty_stdio;
  630. }
  631. switch (input_mode) {
  632. - case set_no:
  633. + case allnoconfig:
  634. conf_set_all_new_symbols(def_no);
  635. break;
  636. - case set_yes:
  637. + case allyesconfig:
  638. conf_set_all_new_symbols(def_yes);
  639. break;
  640. - case set_mod:
  641. + case allmodconfig:
  642. conf_set_all_new_symbols(def_mod);
  643. break;
  644. - case set_random:
  645. - conf_set_all_new_symbols(def_random);
  646. + case alldefconfig:
  647. + conf_set_all_new_symbols(def_default);
  648. + break;
  649. + case randconfig:
  650. + /* Really nothing to do in this loop */
  651. + while (conf_set_all_new_symbols(def_random)) ;
  652. break;
  653. - case set_default:
  654. + case defconfig:
  655. conf_set_all_new_symbols(def_default);
  656. break;
  657. - case ask_new:
  658. - case ask_all:
  659. + case savedefconfig:
  660. + break;
  661. + case oldaskconfig:
  662. rootEntry = &rootmenu;
  663. conf(&rootmenu);
  664. - input_mode = ask_silent;
  665. + input_mode = silentoldconfig;
  666. /* fall through */
  667. - case ask_silent:
  668. + case oldconfig:
  669. + case listnewconfig:
  670. + case olddefconfig:
  671. + case silentoldconfig:
  672. /* Update until a loop caused no more changes */
  673. do {
  674. conf_cnt = 0;
  675. check_conf(&rootmenu);
  676. - } while (conf_cnt);
  677. + } while (conf_cnt &&
  678. + (input_mode != listnewconfig &&
  679. + input_mode != olddefconfig));
  680. break;
  681. }
  682. @@ -607,7 +729,13 @@
  683. fprintf(stderr, _("\n*** Error during update of the configuration.\n\n"));
  684. return 1;
  685. }
  686. - } else {
  687. + } else if (input_mode == savedefconfig) {
  688. + if (conf_write_defconfig(defconfig_file)) {
  689. + fprintf(stderr, _("n*** Error while saving defconfig to: %s\n\n"),
  690. + defconfig_file);
  691. + return 1;
  692. + }
  693. + } else if (input_mode != listnewconfig) {
  694. if (conf_write(NULL)) {
  695. fprintf(stderr, _("\n*** Error during writing of the configuration.\n\n"));
  696. exit(1);
  697. @@ -615,3 +743,12 @@
  698. }
  699. return 0;
  700. }
  701. +
  702. +/*
  703. + * Helper function to facilitate fgets() by Jean Sacren.
  704. + */
  705. +void xfgets(char *str, int size, FILE *in)
  706. +{
  707. + if (fgets(str, size, in) == NULL)
  708. + fprintf(stderr, "\nError in reading or end of file.\n");
  709. +}
  710. diff -Nur uClibc-0.9.33.2/extra/config/confdata.c uClibc-git/extra/config/confdata.c
  711. --- uClibc-0.9.33.2/extra/config/confdata.c 2012-05-15 09:20:09.000000000 +0200
  712. +++ uClibc-git/extra/config/confdata.c 2014-06-02 17:40:33.722710369 +0200
  713. @@ -5,24 +5,27 @@
  714. #include <sys/stat.h>
  715. #include <ctype.h>
  716. +#include <errno.h>
  717. #include <fcntl.h>
  718. +#include <stdarg.h>
  719. #include <stdio.h>
  720. #include <stdlib.h>
  721. #include <string.h>
  722. #include <time.h>
  723. #include <unistd.h>
  724. -#include <libgen.h>
  725. -#define LKC_DIRECT_LINK
  726. #include "lkc.h"
  727. static void conf_warning(const char *fmt, ...)
  728. __attribute__ ((format (printf, 1, 2)));
  729. +static void conf_message(const char *fmt, ...)
  730. + __attribute__ ((format (printf, 1, 2)));
  731. +
  732. static const char *conf_filename;
  733. static int conf_lineno, conf_warnings, conf_unsaved;
  734. -const char conf_defname[] = "extra/Configs/defconfigs/$ARCH";
  735. +const char conf_defname[] = "arch/$ARCH/defconfig";
  736. static void conf_warning(const char *fmt, ...)
  737. {
  738. @@ -35,6 +38,29 @@
  739. conf_warnings++;
  740. }
  741. +static void conf_default_message_callback(const char *fmt, va_list ap)
  742. +{
  743. + printf("#\n# ");
  744. + vprintf(fmt, ap);
  745. + printf("\n#\n");
  746. +}
  747. +
  748. +static void (*conf_message_callback) (const char *fmt, va_list ap) =
  749. + conf_default_message_callback;
  750. +void conf_set_message_callback(void (*fn) (const char *fmt, va_list ap))
  751. +{
  752. + conf_message_callback = fn;
  753. +}
  754. +
  755. +static void conf_message(const char *fmt, ...)
  756. +{
  757. + va_list ap;
  758. +
  759. + va_start(ap, fmt);
  760. + if (conf_message_callback)
  761. + conf_message_callback(fmt, ap);
  762. +}
  763. +
  764. const char *conf_get_configname(void)
  765. {
  766. char *name = getenv("KCONFIG_CONFIG");
  767. @@ -42,6 +68,13 @@
  768. return name ? name : ".config";
  769. }
  770. +const char *conf_get_autoconfig_name(void)
  771. +{
  772. + char *name = getenv("KCONFIG_AUTOCONFIG");
  773. +
  774. + return name ? name : "include/config/auto.conf";
  775. +}
  776. +
  777. static char *conf_expand_value(const char *in)
  778. {
  779. struct symbol *sym;
  780. @@ -95,6 +128,7 @@
  781. sym->flags |= def_flags;
  782. break;
  783. }
  784. + /* fall through */
  785. case S_BOOLEAN:
  786. if (p[0] == 'y') {
  787. sym->def[def].tri = yes;
  788. @@ -107,7 +141,7 @@
  789. break;
  790. }
  791. conf_warning("symbol value '%s' invalid for %s", p, sym->name);
  792. - break;
  793. + return 1;
  794. case S_OTHER:
  795. if (*p != '"') {
  796. for (p2 = p; *p2 && !isspace(*p2); p2++)
  797. @@ -115,6 +149,7 @@
  798. sym->type = S_STRING;
  799. goto done;
  800. }
  801. + /* fall through */
  802. case S_STRING:
  803. if (*p++ != '"')
  804. break;
  805. @@ -129,6 +164,7 @@
  806. conf_warning("invalid string found");
  807. return 1;
  808. }
  809. + /* fall through */
  810. case S_INT:
  811. case S_HEX:
  812. done:
  813. @@ -146,10 +182,66 @@
  814. return 0;
  815. }
  816. +#define LINE_GROWTH 16
  817. +static int add_byte(int c, char **lineptr, size_t slen, size_t *n)
  818. +{
  819. + char *nline;
  820. + size_t new_size = slen + 1;
  821. + if (new_size > *n) {
  822. + new_size += LINE_GROWTH - 1;
  823. + new_size *= 2;
  824. + nline = realloc(*lineptr, new_size);
  825. + if (!nline)
  826. + return -1;
  827. +
  828. + *lineptr = nline;
  829. + *n = new_size;
  830. + }
  831. +
  832. + (*lineptr)[slen] = c;
  833. +
  834. + return 0;
  835. +}
  836. +
  837. +static ssize_t compat_getline(char **lineptr, size_t *n, FILE *stream)
  838. +{
  839. + char *line = *lineptr;
  840. + size_t slen = 0;
  841. +
  842. + for (;;) {
  843. + int c = getc(stream);
  844. +
  845. + switch (c) {
  846. + case '\n':
  847. + if (add_byte(c, &line, slen, n) < 0)
  848. + goto e_out;
  849. + slen++;
  850. + /* fall through */
  851. + case EOF:
  852. + if (add_byte('\0', &line, slen, n) < 0)
  853. + goto e_out;
  854. + *lineptr = line;
  855. + if (slen == 0)
  856. + return -1;
  857. + return slen;
  858. + default:
  859. + if (add_byte(c, &line, slen, n) < 0)
  860. + goto e_out;
  861. + slen++;
  862. + }
  863. + }
  864. +
  865. +e_out:
  866. + line[slen-1] = '\0';
  867. + *lineptr = line;
  868. + return -1;
  869. +}
  870. +
  871. int conf_read_simple(const char *name, int def)
  872. {
  873. FILE *in = NULL;
  874. - char line[1024];
  875. + char *line = NULL;
  876. + size_t line_asize = 0;
  877. char *p, *p2;
  878. struct symbol *sym;
  879. int i, def_flags;
  880. @@ -164,8 +256,11 @@
  881. if (in)
  882. goto load;
  883. sym_add_change_count(1);
  884. - if (!sym_defconfig_list)
  885. + if (!sym_defconfig_list) {
  886. + if (modules_sym)
  887. + sym_calc_value(modules_sym);
  888. return 1;
  889. + }
  890. for_all_defaults(sym_defconfig_list, prop) {
  891. if (expr_calc_value(prop->visible.expr) == no ||
  892. @@ -174,9 +269,8 @@
  893. name = conf_expand_value(prop->expr->left.sym->name);
  894. in = zconf_fopen(name);
  895. if (in) {
  896. - printf(_("#\n"
  897. - "# using defaults found in %s\n"
  898. - "#\n"), name);
  899. + conf_message(_("using defaults found in %s"),
  900. + name);
  901. goto load;
  902. }
  903. }
  904. @@ -202,33 +296,33 @@
  905. case S_STRING:
  906. if (sym->def[def].val)
  907. free(sym->def[def].val);
  908. + /* fall through */
  909. default:
  910. sym->def[def].val = NULL;
  911. sym->def[def].tri = no;
  912. }
  913. }
  914. - while (fgets(line, sizeof(line), in)) {
  915. + while (compat_getline(&line, &line_asize, in) != -1) {
  916. conf_lineno++;
  917. sym = NULL;
  918. - switch (line[0]) {
  919. - case '#':
  920. - if (line[1] != ' ')
  921. + if (line[0] == '#') {
  922. + if (memcmp(line + 2, CONFIG_, strlen(CONFIG_)))
  923. continue;
  924. - p = strchr(line + 2, ' ');
  925. + p = strchr(line + 2 + strlen(CONFIG_), ' ');
  926. if (!p)
  927. continue;
  928. *p++ = 0;
  929. if (strncmp(p, "is not set", 10))
  930. continue;
  931. if (def == S_DEF_USER) {
  932. - sym = sym_find(line + 2);
  933. + sym = sym_find(line + 2 + strlen(CONFIG_));
  934. if (!sym) {
  935. sym_add_change_count(1);
  936. - break;
  937. + goto setsym;
  938. }
  939. } else {
  940. - sym = sym_lookup(line + 2, 0);
  941. + sym = sym_lookup(line + 2 + strlen(CONFIG_), 0);
  942. if (sym->type == S_UNKNOWN)
  943. sym->type = S_BOOLEAN;
  944. }
  945. @@ -244,13 +338,10 @@
  946. default:
  947. ;
  948. }
  949. - break;
  950. - case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': case 'G': case 'H': case 'I': case 'J': case 'K': case 'L': case 'M': case 'N': case 'O': case 'P': case 'Q': case 'R': case 'S': case 'T': case 'U': case 'V': case 'W': case 'X': case 'Y': case 'Z':
  951. - p = strchr(line, '=');
  952. - if (!p) {
  953. - conf_warning("unexpected data '%s'", line);
  954. + } else if (memcmp(line, CONFIG_, strlen(CONFIG_)) == 0) {
  955. + p = strchr(line + strlen(CONFIG_), '=');
  956. + if (!p)
  957. continue;
  958. - }
  959. *p++ = 0;
  960. p2 = strchr(p, '\n');
  961. if (p2) {
  962. @@ -259,13 +350,13 @@
  963. *p2 = 0;
  964. }
  965. if (def == S_DEF_USER) {
  966. - sym = sym_find(line);
  967. + sym = sym_find(line + strlen(CONFIG_));
  968. if (!sym) {
  969. sym_add_change_count(1);
  970. - break;
  971. + goto setsym;
  972. }
  973. } else {
  974. - sym = sym_lookup(line, 0);
  975. + sym = sym_lookup(line + strlen(CONFIG_), 0);
  976. if (sym->type == S_UNKNOWN)
  977. sym->type = S_OTHER;
  978. }
  979. @@ -274,14 +365,12 @@
  980. }
  981. if (conf_set_sym_val(sym, def, def_flags, p))
  982. continue;
  983. - break;
  984. - case '\r':
  985. - case '\n':
  986. - break;
  987. - default:
  988. - conf_warning("unexpected data");
  989. + } else {
  990. + if (line[0] != '\r' && line[0] != '\n')
  991. + conf_warning("unexpected data");
  992. continue;
  993. }
  994. +setsym:
  995. if (sym && sym_is_choice_value(sym)) {
  996. struct symbol *cs = prop_get_symbol(sym_get_choice_prop(sym));
  997. switch (sym->def[def].tri) {
  998. @@ -302,6 +391,7 @@
  999. cs->def[def].tri = EXPR_OR(cs->def[def].tri, sym->def[def].tri);
  1000. }
  1001. }
  1002. + free(line);
  1003. fclose(in);
  1004. if (modules_sym)
  1005. @@ -311,10 +401,8 @@
  1006. int conf_read(const char *name)
  1007. {
  1008. - struct symbol *sym, *choice_sym;
  1009. - struct property *prop;
  1010. - struct expr *e;
  1011. - int i, flags;
  1012. + struct symbol *sym;
  1013. + int i;
  1014. sym_set_change_count(0);
  1015. @@ -324,7 +412,7 @@
  1016. for_all_symbols(i, sym) {
  1017. sym_calc_value(sym);
  1018. if (sym_is_choice(sym) || (sym->flags & SYMBOL_AUTO))
  1019. - goto sym_ok;
  1020. + continue;
  1021. if (sym_has_value(sym) && (sym->flags & SYMBOL_WRITE)) {
  1022. /* check that calculated value agrees with saved value */
  1023. switch (sym->type) {
  1024. @@ -333,29 +421,18 @@
  1025. if (sym->def[S_DEF_USER].tri != sym_get_tristate_value(sym))
  1026. break;
  1027. if (!sym_is_choice(sym))
  1028. - goto sym_ok;
  1029. + continue;
  1030. + /* fall through */
  1031. default:
  1032. if (!strcmp(sym->curr.val, sym->def[S_DEF_USER].val))
  1033. - goto sym_ok;
  1034. + continue;
  1035. break;
  1036. }
  1037. } else if (!sym_has_value(sym) && !(sym->flags & SYMBOL_WRITE))
  1038. /* no previous value and not saved */
  1039. - goto sym_ok;
  1040. + continue;
  1041. conf_unsaved++;
  1042. /* maybe print value in verbose mode... */
  1043. - sym_ok:
  1044. - if (!sym_is_choice(sym))
  1045. - continue;
  1046. - /* The choice symbol only has a set value (and thus is not new)
  1047. - * if all its visible childs have values.
  1048. - */
  1049. - prop = sym_get_choice_prop(sym);
  1050. - flags = sym->flags;
  1051. - expr_list_for_each_sym(prop->expr, e, choice_sym)
  1052. - if (choice_sym->visible != no)
  1053. - flags &= choice_sym->flags;
  1054. - sym->flags &= flags | ~SYMBOL_DEF_USER;
  1055. }
  1056. for_all_symbols(i, sym) {
  1057. @@ -388,43 +465,300 @@
  1058. return 0;
  1059. }
  1060. +/*
  1061. + * Kconfig configuration printer
  1062. + *
  1063. + * This printer is used when generating the resulting configuration after
  1064. + * kconfig invocation and `defconfig' files. Unset symbol might be omitted by
  1065. + * passing a non-NULL argument to the printer.
  1066. + *
  1067. + */
  1068. +static void
  1069. +kconfig_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg)
  1070. +{
  1071. +
  1072. + switch (sym->type) {
  1073. + case S_BOOLEAN:
  1074. + case S_TRISTATE:
  1075. + if (*value == 'n') {
  1076. + bool skip_unset = (arg != NULL);
  1077. +
  1078. + if (!skip_unset)
  1079. + fprintf(fp, "# %s%s is not set\n",
  1080. + CONFIG_, sym->name);
  1081. + return;
  1082. + }
  1083. + break;
  1084. + default:
  1085. + break;
  1086. + }
  1087. +
  1088. + fprintf(fp, "%s%s=%s\n", CONFIG_, sym->name, value);
  1089. +}
  1090. +
  1091. +static void
  1092. +kconfig_print_comment(FILE *fp, const char *value, void *arg)
  1093. +{
  1094. + const char *p = value;
  1095. + size_t l;
  1096. +
  1097. + for (;;) {
  1098. + l = strcspn(p, "\n");
  1099. + fprintf(fp, "#");
  1100. + if (l) {
  1101. + fprintf(fp, " ");
  1102. + xfwrite(p, l, 1, fp);
  1103. + p += l;
  1104. + }
  1105. + fprintf(fp, "\n");
  1106. + if (*p++ == '\0')
  1107. + break;
  1108. + }
  1109. +}
  1110. +
  1111. +static struct conf_printer kconfig_printer_cb =
  1112. +{
  1113. + .print_symbol = kconfig_print_symbol,
  1114. + .print_comment = kconfig_print_comment,
  1115. +};
  1116. +
  1117. +/*
  1118. + * Header printer
  1119. + *
  1120. + * This printer is used when generating the `include/generated/autoconf.h' file.
  1121. + */
  1122. +static void
  1123. +header_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg)
  1124. +{
  1125. +
  1126. + switch (sym->type) {
  1127. + case S_BOOLEAN:
  1128. + case S_TRISTATE: {
  1129. + const char *suffix = "";
  1130. +
  1131. + switch (*value) {
  1132. + case 'n':
  1133. + break;
  1134. + case 'm':
  1135. + suffix = "_MODULE";
  1136. + /* fall through */
  1137. + default:
  1138. + fprintf(fp, "#define %s%s%s 1\n",
  1139. + CONFIG_, sym->name, suffix);
  1140. + }
  1141. + break;
  1142. + }
  1143. + case S_HEX: {
  1144. + const char *prefix = "";
  1145. +
  1146. + if (value[0] != '0' || (value[1] != 'x' && value[1] != 'X'))
  1147. + prefix = "0x";
  1148. + fprintf(fp, "#define %s%s %s%s\n",
  1149. + CONFIG_, sym->name, prefix, value);
  1150. + break;
  1151. + }
  1152. + case S_STRING:
  1153. + case S_INT:
  1154. + fprintf(fp, "#define %s%s %s\n",
  1155. + CONFIG_, sym->name, value);
  1156. + break;
  1157. + default:
  1158. + break;
  1159. + }
  1160. +
  1161. +}
  1162. +
  1163. +static void
  1164. +header_print_comment(FILE *fp, const char *value, void *arg)
  1165. +{
  1166. + const char *p = value;
  1167. + size_t l;
  1168. +
  1169. + fprintf(fp, "/*\n");
  1170. + for (;;) {
  1171. + l = strcspn(p, "\n");
  1172. + fprintf(fp, " *");
  1173. + if (l) {
  1174. + fprintf(fp, " ");
  1175. + xfwrite(p, l, 1, fp);
  1176. + p += l;
  1177. + }
  1178. + fprintf(fp, "\n");
  1179. + if (*p++ == '\0')
  1180. + break;
  1181. + }
  1182. + fprintf(fp, " */\n");
  1183. +}
  1184. +
  1185. +static struct conf_printer header_printer_cb =
  1186. +{
  1187. + .print_symbol = header_print_symbol,
  1188. + .print_comment = header_print_comment,
  1189. +};
  1190. +
  1191. +/*
  1192. + * Tristate printer
  1193. + *
  1194. + * This printer is used when generating the `include/config/tristate.conf' file.
  1195. + */
  1196. +static void
  1197. +tristate_print_symbol(FILE *fp, struct symbol *sym, const char *value, void *arg)
  1198. +{
  1199. +
  1200. + if (sym->type == S_TRISTATE && *value != 'n')
  1201. + fprintf(fp, "%s%s=%c\n", CONFIG_, sym->name, (char)toupper(*value));
  1202. +}
  1203. +
  1204. +static struct conf_printer tristate_printer_cb =
  1205. +{
  1206. + .print_symbol = tristate_print_symbol,
  1207. + .print_comment = kconfig_print_comment,
  1208. +};
  1209. +
  1210. +static void conf_write_symbol(FILE *fp, struct symbol *sym,
  1211. + struct conf_printer *printer, void *printer_arg)
  1212. +{
  1213. + const char *str;
  1214. +
  1215. + switch (sym->type) {
  1216. + case S_OTHER:
  1217. + case S_UNKNOWN:
  1218. + break;
  1219. + case S_STRING:
  1220. + str = sym_get_string_value(sym);
  1221. + str = sym_escape_string_value(str);
  1222. + printer->print_symbol(fp, sym, str, printer_arg);
  1223. + free((void *)str);
  1224. + break;
  1225. + default:
  1226. + str = sym_get_string_value(sym);
  1227. + printer->print_symbol(fp, sym, str, printer_arg);
  1228. + }
  1229. +}
  1230. +
  1231. +static void
  1232. +conf_write_heading(FILE *fp, struct conf_printer *printer, void *printer_arg)
  1233. +{
  1234. + char buf[256];
  1235. +
  1236. + snprintf(buf, sizeof(buf),
  1237. + "\n"
  1238. + "Automatically generated file; DO NOT EDIT.\n"
  1239. + "%s\n",
  1240. + rootmenu.prompt->text);
  1241. +
  1242. + printer->print_comment(fp, buf, printer_arg);
  1243. +}
  1244. +
  1245. +/*
  1246. + * Write out a minimal config.
  1247. + * All values that has default values are skipped as this is redundant.
  1248. + */
  1249. +int conf_write_defconfig(const char *filename)
  1250. +{
  1251. + struct symbol *sym;
  1252. + struct menu *menu;
  1253. + FILE *out;
  1254. +
  1255. + out = fopen(filename, "w");
  1256. + if (!out)
  1257. + return 1;
  1258. +
  1259. + sym_clear_all_valid();
  1260. +
  1261. + /* Traverse all menus to find all relevant symbols */
  1262. + menu = rootmenu.list;
  1263. +
  1264. + while (menu != NULL)
  1265. + {
  1266. + sym = menu->sym;
  1267. + if (sym == NULL) {
  1268. + if (!menu_is_visible(menu))
  1269. + goto next_menu;
  1270. + } else if (!sym_is_choice(sym)) {
  1271. + sym_calc_value(sym);
  1272. + if (!(sym->flags & SYMBOL_WRITE))
  1273. + goto next_menu;
  1274. + sym->flags &= ~SYMBOL_WRITE;
  1275. + /* If we cannot change the symbol - skip */
  1276. + if (!sym_is_changable(sym))
  1277. + goto next_menu;
  1278. + /* If symbol equals to default value - skip */
  1279. + if (strcmp(sym_get_string_value(sym), sym_get_string_default(sym)) == 0)
  1280. + goto next_menu;
  1281. +
  1282. + /*
  1283. + * If symbol is a choice value and equals to the
  1284. + * default for a choice - skip.
  1285. + * But only if value is bool and equal to "y" and
  1286. + * choice is not "optional".
  1287. + * (If choice is "optional" then all values can be "n")
  1288. + */
  1289. + if (sym_is_choice_value(sym)) {
  1290. + struct symbol *cs;
  1291. + struct symbol *ds;
  1292. +
  1293. + cs = prop_get_symbol(sym_get_choice_prop(sym));
  1294. + ds = sym_choice_default(cs);
  1295. + if (!sym_is_optional(cs) && sym == ds) {
  1296. + if ((sym->type == S_BOOLEAN) &&
  1297. + sym_get_tristate_value(sym) == yes)
  1298. + goto next_menu;
  1299. + }
  1300. + }
  1301. + conf_write_symbol(out, sym, &kconfig_printer_cb, NULL);
  1302. + }
  1303. +next_menu:
  1304. + if (menu->list != NULL) {
  1305. + menu = menu->list;
  1306. + }
  1307. + else if (menu->next != NULL) {
  1308. + menu = menu->next;
  1309. + } else {
  1310. + while ((menu = menu->parent)) {
  1311. + if (menu->next != NULL) {
  1312. + menu = menu->next;
  1313. + break;
  1314. + }
  1315. + }
  1316. + }
  1317. + }
  1318. + fclose(out);
  1319. + return 0;
  1320. +}
  1321. +
  1322. int conf_write(const char *name)
  1323. {
  1324. FILE *out;
  1325. struct symbol *sym;
  1326. struct menu *menu;
  1327. const char *basename;
  1328. - char dirname[128], tmpname[128], newname[128];
  1329. - int type, l;
  1330. const char *str;
  1331. - time_t now;
  1332. - int use_timestamp = 1;
  1333. - char *env;
  1334. + char tmpname[PATH_MAX+1], newname[PATH_MAX+1];
  1335. + char *env, *dirname = NULL;
  1336. - dirname[0] = 0;
  1337. - if (name == NULL)
  1338. - name = conf_get_configname();
  1339. if (name && name[0]) {
  1340. struct stat st;
  1341. char *slash;
  1342. if (!stat(name, &st) && S_ISDIR(st.st_mode)) {
  1343. - strcpy(dirname, name);
  1344. + dirname = strndup(name, strlen(name) + 1);
  1345. strcat(dirname, "/");
  1346. basename = conf_get_configname();
  1347. } else if ((slash = strrchr(name, '/'))) {
  1348. int size = slash - name + 1;
  1349. - memcpy(dirname, name, size);
  1350. - dirname[size] = 0;
  1351. + dirname = strndup(name, size);
  1352. if (slash[1])
  1353. basename = slash + 1;
  1354. else
  1355. basename = conf_get_configname();
  1356. } else
  1357. basename = name;
  1358. - } else
  1359. - basename = conf_get_configname();
  1360. -
  1361. + } else {
  1362. + dirname = strdup(conf_get_configname());
  1363. + basename = strdup(base_name(dirname));
  1364. + dirname = dir_name(dirname);
  1365. + }
  1366. sprintf(newname, "%s%s", dirname, basename);
  1367. env = getenv("KCONFIG_OVERWRITECONFIG");
  1368. if (!env || !*env) {
  1369. @@ -434,24 +768,11 @@
  1370. *tmpname = 0;
  1371. out = fopen(newname, "w");
  1372. }
  1373. + free(dirname);
  1374. if (!out)
  1375. return 1;
  1376. - sym = sym_lookup("VERSION", 0);
  1377. - sym_calc_value(sym);
  1378. - time(&now);
  1379. - env = getenv("KCONFIG_NOTIMESTAMP");
  1380. - if (env && *env)
  1381. - use_timestamp = 0;
  1382. -
  1383. - fprintf(out, _("#\n"
  1384. - "# Automatically generated make config: don't edit\n"
  1385. - "# Version: %s\n"
  1386. - "%s%s"
  1387. - "#\n"),
  1388. - sym_get_string_value(sym),
  1389. - use_timestamp ? "# " : "",
  1390. - use_timestamp ? ctime(&now) : "");
  1391. + conf_write_heading(out, &kconfig_printer_cb, NULL);
  1392. if (!conf_get_changed())
  1393. sym_clear_all_valid();
  1394. @@ -472,56 +793,11 @@
  1395. if (!(sym->flags & SYMBOL_WRITE))
  1396. goto next;
  1397. sym->flags &= ~SYMBOL_WRITE;
  1398. - type = sym->type;
  1399. - if (type == S_TRISTATE) {
  1400. - sym_calc_value(modules_sym);
  1401. - if (modules_sym->curr.tri == no)
  1402. - type = S_BOOLEAN;
  1403. - }
  1404. - switch (type) {
  1405. - case S_BOOLEAN:
  1406. - case S_TRISTATE:
  1407. - switch (sym_get_tristate_value(sym)) {
  1408. - case no:
  1409. - fprintf(out, "# %s is not set\n", sym->name);
  1410. - break;
  1411. - case mod:
  1412. - fprintf(out, "%s=m\n", sym->name);
  1413. - break;
  1414. - case yes:
  1415. - fprintf(out, "%s=y\n", sym->name);
  1416. - break;
  1417. - }
  1418. - break;
  1419. - case S_STRING:
  1420. - str = sym_get_string_value(sym);
  1421. - fprintf(out, "%s=\"", sym->name);
  1422. - while (1) {
  1423. - l = strcspn(str, "\"\\");
  1424. - if (l) {
  1425. - fwrite(str, l, 1, out);
  1426. - str += l;
  1427. - }
  1428. - if (!*str)
  1429. - break;
  1430. - fprintf(out, "\\%c", *str++);
  1431. - }
  1432. - fputs("\"\n", out);
  1433. - break;
  1434. - case S_HEX:
  1435. - str = sym_get_string_value(sym);
  1436. - if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
  1437. - fprintf(out, "%s=%s\n", sym->name, str);
  1438. - break;
  1439. - }
  1440. - case S_INT:
  1441. - str = sym_get_string_value(sym);
  1442. - fprintf(out, "%s=%s\n", sym->name, str);
  1443. - break;
  1444. - }
  1445. +
  1446. + conf_write_symbol(out, sym, &kconfig_printer_cb, NULL);
  1447. }
  1448. - next:
  1449. +next:
  1450. if (menu->list) {
  1451. menu = menu->list;
  1452. continue;
  1453. @@ -538,38 +814,39 @@
  1454. fclose(out);
  1455. if (*tmpname) {
  1456. - strcat(dirname, basename);
  1457. + dirname = strndup(basename, strlen(basename) + 4);
  1458. strcat(dirname, ".old");
  1459. rename(newname, dirname);
  1460. + free(dirname);
  1461. if (rename(tmpname, newname))
  1462. return 1;
  1463. }
  1464. - printf(_("#\n"
  1465. - "# configuration written to %s\n"
  1466. - "#\n"), newname);
  1467. + conf_message(_("configuration written to %s"), newname);
  1468. sym_set_change_count(0);
  1469. return 0;
  1470. }
  1471. -int conf_split_config(void)
  1472. +static int conf_split_config(void)
  1473. {
  1474. - char *name, path[128], opwd[512];
  1475. + const char *name;
  1476. + char path[PATH_MAX+1], opwd[PATH_MAX+1];
  1477. char *s, *d, c;
  1478. struct symbol *sym;
  1479. struct stat sb;
  1480. int res, i, fd;
  1481. - name = getenv("KCONFIG_AUTOCONFIG");
  1482. - if (!name)
  1483. - name = "include/config/auto.conf";
  1484. - conf_read_simple(name, S_DEF_AUTO);
  1485. -
  1486. if (getcwd(opwd, sizeof(opwd)) == NULL)
  1487. return 1;
  1488. - if (chdir(dirname(strdup(name))))
  1489. + name = conf_get_autoconfig_name();
  1490. + conf_read_simple(name, S_DEF_AUTO);
  1491. +
  1492. + strcpy(path, name);
  1493. + dir_name(path);
  1494. +
  1495. + if (chdir(path))
  1496. return 1;
  1497. res = 0;
  1498. @@ -671,126 +948,85 @@
  1499. int conf_write_autoconf(void)
  1500. {
  1501. - char opwd[512];
  1502. struct symbol *sym;
  1503. - const char *str;
  1504. - char *name;
  1505. - FILE *out, *out_h;
  1506. - time_t now;
  1507. - int i, l;
  1508. + const char *name;
  1509. + char cfg_fname[PATH_MAX+1], tristate_fname[PATH_MAX+1],
  1510. + cfgh_fname[PATH_MAX+1];
  1511. + char *dirname;
  1512. + FILE *out, *tristate, *out_h;
  1513. + int i;
  1514. - if (getcwd(opwd, sizeof(opwd)) == NULL)
  1515. - return 1;
  1516. - if (chdir(dirname(strdup(conf_get_configname()))))
  1517. - return 1;
  1518. sym_clear_all_valid();
  1519. - file_write_dep("include/config/auto.conf.cmd");
  1520. + sprintf(cfg_fname, "%s.cmd", conf_get_autoconfig_name());
  1521. + file_write_dep(cfg_fname);
  1522. if (conf_split_config())
  1523. return 1;
  1524. - out = fopen(".tmpconfig", "w");
  1525. + dirname = dir_name(strdup(conf_get_configname()));
  1526. + sprintf(cfg_fname, "%s.tmpconfig", dirname);
  1527. + sprintf(tristate_fname, "%s.tmpconfig_tristate", dirname);
  1528. + sprintf(cfgh_fname, "%s.tmpconfig.h", dirname);
  1529. + free(dirname);
  1530. +
  1531. + out = fopen(cfg_fname, "w");
  1532. if (!out)
  1533. return 1;
  1534. - out_h = fopen(".tmpconfig.h", "w");
  1535. + tristate = fopen(tristate_fname, "w");
  1536. + if (!tristate) {
  1537. + fclose(out);
  1538. + return 1;
  1539. + }
  1540. +
  1541. + out_h = fopen(cfgh_fname, "w");
  1542. if (!out_h) {
  1543. fclose(out);
  1544. + fclose(tristate);
  1545. return 1;
  1546. }
  1547. - sym = sym_lookup("VERSION", 0);
  1548. - sym_calc_value(sym);
  1549. - time(&now);
  1550. - fprintf(out, "#\n"
  1551. - "# Automatically generated make config: don't edit\n"
  1552. - "# Version: %s\n"
  1553. - "# %s"
  1554. - "#\n",
  1555. - sym_get_string_value(sym), ctime(&now));
  1556. - fprintf(out_h, "/*\n"
  1557. - " * Automatically generated C config: don't edit\n"
  1558. - " * Version: %s\n"
  1559. - " * %s"
  1560. - " */\n"
  1561. - "#define AUTOCONF_INCLUDED\n",
  1562. - sym_get_string_value(sym), ctime(&now));
  1563. + conf_write_heading(out, &kconfig_printer_cb, NULL);
  1564. +
  1565. + conf_write_heading(tristate, &tristate_printer_cb, NULL);
  1566. +
  1567. + conf_write_heading(out_h, &header_printer_cb, NULL);
  1568. for_all_symbols(i, sym) {
  1569. sym_calc_value(sym);
  1570. if (!(sym->flags & SYMBOL_WRITE) || !sym->name)
  1571. continue;
  1572. - switch (sym->type) {
  1573. - case S_BOOLEAN:
  1574. - case S_TRISTATE:
  1575. - switch (sym_get_tristate_value(sym)) {
  1576. - case no:
  1577. - break;
  1578. - case mod:
  1579. - fprintf(out, "CONFIG_%s=m\n", sym->name);
  1580. - fprintf(out_h, "#define CONFIG_%s_MODULE 1\n", sym->name);
  1581. - break;
  1582. - case yes:
  1583. - fprintf(out, "%s=y\n", sym->name);
  1584. - fprintf(out_h, "#define %s 1\n", sym->name);
  1585. - break;
  1586. - }
  1587. - break;
  1588. - case S_STRING:
  1589. - str = sym_get_string_value(sym);
  1590. - fprintf(out, "%s=\"", sym->name);
  1591. - fprintf(out_h, "#define %s \"", sym->name);
  1592. - while (1) {
  1593. - l = strcspn(str, "\"\\");
  1594. - if (l) {
  1595. - fwrite(str, l, 1, out);
  1596. - fwrite(str, l, 1, out_h);
  1597. - str += l;
  1598. - }
  1599. - if (!*str)
  1600. - break;
  1601. - fprintf(out, "\\%c", *str);
  1602. - fprintf(out_h, "\\%c", *str);
  1603. - str++;
  1604. - }
  1605. - fputs("\"\n", out);
  1606. - fputs("\"\n", out_h);
  1607. - break;
  1608. - case S_HEX:
  1609. - str = sym_get_string_value(sym);
  1610. - if (str[0] != '0' || (str[1] != 'x' && str[1] != 'X')) {
  1611. - fprintf(out, "%s=%s\n", sym->name, str);
  1612. - fprintf(out_h, "#define %s 0x%s\n", sym->name, str);
  1613. - break;
  1614. - }
  1615. - case S_INT:
  1616. - str = sym_get_string_value(sym);
  1617. - fprintf(out, "%s=%s\n", sym->name, str);
  1618. - fprintf(out_h, "#define %s %s\n", sym->name, str);
  1619. - break;
  1620. - default:
  1621. - break;
  1622. - }
  1623. +
  1624. + /* write symbol to auto.conf, tristate and header files */
  1625. + conf_write_symbol(out, sym, &kconfig_printer_cb, (void *)1);
  1626. +
  1627. + conf_write_symbol(tristate, sym, &tristate_printer_cb, (void *)1);
  1628. +
  1629. + conf_write_symbol(out_h, sym, &header_printer_cb, NULL);
  1630. }
  1631. fclose(out);
  1632. + fclose(tristate);
  1633. fclose(out_h);
  1634. name = getenv("KCONFIG_AUTOHEADER");
  1635. if (!name)
  1636. - name = "include/config/autoconf.h";
  1637. - if (rename(".tmpconfig.h", name))
  1638. + name = "include/generated/autoconf.h";
  1639. + if (rename(cfgh_fname, name))
  1640. return 1;
  1641. - name = getenv("KCONFIG_AUTOCONFIG");
  1642. + name = getenv("KCONFIG_TRISTATE");
  1643. if (!name)
  1644. - name = "include/config/auto.conf";
  1645. + name = "include/config/tristate.conf";
  1646. + if (rename(tristate_fname, name))
  1647. + return 1;
  1648. + name = conf_get_autoconfig_name();
  1649. /*
  1650. * This must be the last step, kbuild has a dependency on auto.conf
  1651. * and this marks the successful completion of the previous steps.
  1652. */
  1653. - if (rename(".tmpconfig", name))
  1654. + if (rename(cfg_fname, name))
  1655. return 1;
  1656. - chdir(opwd);
  1657. +
  1658. return 0;
  1659. }
  1660. @@ -821,20 +1057,131 @@
  1661. conf_changed_callback = fn;
  1662. }
  1663. +static bool randomize_choice_values(struct symbol *csym)
  1664. +{
  1665. + struct property *prop;
  1666. + struct symbol *sym;
  1667. + struct expr *e;
  1668. + int cnt, def;
  1669. -void conf_set_all_new_symbols(enum conf_def_mode mode)
  1670. + /*
  1671. + * If choice is mod then we may have more items selected
  1672. + * and if no then no-one.
  1673. + * In both cases stop.
  1674. + */
  1675. + if (csym->curr.tri != yes)
  1676. + return false;
  1677. +
  1678. + prop = sym_get_choice_prop(csym);
  1679. +
  1680. + /* count entries in choice block */
  1681. + cnt = 0;
  1682. + expr_list_for_each_sym(prop->expr, e, sym)
  1683. + cnt++;
  1684. +
  1685. + /*
  1686. + * find a random value and set it to yes,
  1687. + * set the rest to no so we have only one set
  1688. + */
  1689. + def = (rand() % cnt);
  1690. +
  1691. + cnt = 0;
  1692. + expr_list_for_each_sym(prop->expr, e, sym) {
  1693. + if (def == cnt++) {
  1694. + sym->def[S_DEF_USER].tri = yes;
  1695. + csym->def[S_DEF_USER].val = sym;
  1696. + }
  1697. + else {
  1698. + sym->def[S_DEF_USER].tri = no;
  1699. + }
  1700. + sym->flags |= SYMBOL_DEF_USER;
  1701. + /* clear VALID to get value calculated */
  1702. + sym->flags &= ~SYMBOL_VALID;
  1703. + }
  1704. + csym->flags |= SYMBOL_DEF_USER;
  1705. + /* clear VALID to get value calculated */
  1706. + csym->flags &= ~(SYMBOL_VALID);
  1707. +
  1708. + return true;
  1709. +}
  1710. +
  1711. +void set_all_choice_values(struct symbol *csym)
  1712. {
  1713. - struct symbol *sym, *csym;
  1714. struct property *prop;
  1715. + struct symbol *sym;
  1716. struct expr *e;
  1717. - int i, cnt, def;
  1718. +
  1719. + prop = sym_get_choice_prop(csym);
  1720. +
  1721. + /*
  1722. + * Set all non-assinged choice values to no
  1723. + */
  1724. + expr_list_for_each_sym(prop->expr, e, sym) {
  1725. + if (!sym_has_value(sym))
  1726. + sym->def[S_DEF_USER].tri = no;
  1727. + }
  1728. + csym->flags |= SYMBOL_DEF_USER;
  1729. + /* clear VALID to get value calculated */
  1730. + csym->flags &= ~(SYMBOL_VALID | SYMBOL_NEED_SET_CHOICE_VALUES);
  1731. +}
  1732. +
  1733. +bool conf_set_all_new_symbols(enum conf_def_mode mode)
  1734. +{
  1735. + struct symbol *sym, *csym;
  1736. + int i, cnt, pby, pty, ptm; /* pby: probability of boolean = y
  1737. + * pty: probability of tristate = y
  1738. + * ptm: probability of tristate = m
  1739. + */
  1740. +
  1741. + pby = 50; pty = ptm = 33; /* can't go as the default in switch-case
  1742. + * below, otherwise gcc whines about
  1743. + * -Wmaybe-uninitialized */
  1744. + if (mode == def_random) {
  1745. + int n, p[3];
  1746. + char *env = getenv("KCONFIG_PROBABILITY");
  1747. + n = 0;
  1748. + while( env && *env ) {
  1749. + char *endp;
  1750. + int tmp = strtol( env, &endp, 10 );
  1751. + if( tmp >= 0 && tmp <= 100 ) {
  1752. + p[n++] = tmp;
  1753. + } else {
  1754. + errno = ERANGE;
  1755. + perror( "KCONFIG_PROBABILITY" );
  1756. + exit( 1 );
  1757. + }
  1758. + env = (*endp == ':') ? endp+1 : endp;
  1759. + if( n >=3 ) {
  1760. + break;
  1761. + }
  1762. + }
  1763. + switch( n ) {
  1764. + case 1:
  1765. + pby = p[0]; ptm = pby/2; pty = pby-ptm;
  1766. + break;
  1767. + case 2:
  1768. + pty = p[0]; ptm = p[1]; pby = pty + ptm;
  1769. + break;
  1770. + case 3:
  1771. + pby = p[0]; pty = p[1]; ptm = p[2];
  1772. + break;
  1773. + }
  1774. +
  1775. + if( pty+ptm > 100 ) {
  1776. + errno = ERANGE;
  1777. + perror( "KCONFIG_PROBABILITY" );
  1778. + exit( 1 );
  1779. + }
  1780. + }
  1781. + bool has_changed = false;
  1782. for_all_symbols(i, sym) {
  1783. - if (sym_has_value(sym))
  1784. + if (sym_has_value(sym) || (sym->flags & SYMBOL_VALID))
  1785. continue;
  1786. switch (sym_get_type(sym)) {
  1787. case S_BOOLEAN:
  1788. case S_TRISTATE:
  1789. + has_changed = true;
  1790. switch (mode) {
  1791. case def_yes:
  1792. sym->def[S_DEF_USER].tri = yes;
  1793. @@ -846,7 +1193,15 @@
  1794. sym->def[S_DEF_USER].tri = no;
  1795. break;
  1796. case def_random:
  1797. - sym->def[S_DEF_USER].tri = (tristate)(rand() % 3);
  1798. + sym->def[S_DEF_USER].tri = no;
  1799. + cnt = rand() % 100;
  1800. + if (sym->type == S_TRISTATE) {
  1801. + if (cnt < pty)
  1802. + sym->def[S_DEF_USER].tri = yes;
  1803. + else if (cnt < (pty+ptm))
  1804. + sym->def[S_DEF_USER].tri = mod;
  1805. + } else if (cnt < pby)
  1806. + sym->def[S_DEF_USER].tri = yes;
  1807. break;
  1808. default:
  1809. continue;
  1810. @@ -862,51 +1217,35 @@
  1811. sym_clear_all_valid();
  1812. - if (mode != def_random)
  1813. - return;
  1814. /*
  1815. * We have different type of choice blocks.
  1816. - * If curr.tri equal to mod then we can select several
  1817. + * If curr.tri equals to mod then we can select several
  1818. * choice symbols in one block.
  1819. * In this case we do nothing.
  1820. - * If curr.tri equal yes then only one symbol can be
  1821. + * If curr.tri equals yes then only one symbol can be
  1822. * selected in a choice block and we set it to yes,
  1823. * and the rest to no.
  1824. */
  1825. + if (mode != def_random) {
  1826. + for_all_symbols(i, csym) {
  1827. + if ((sym_is_choice(csym) && !sym_has_value(csym)) ||
  1828. + sym_is_choice_value(csym))
  1829. + csym->flags |= SYMBOL_NEED_SET_CHOICE_VALUES;
  1830. + }
  1831. + }
  1832. +
  1833. for_all_symbols(i, csym) {
  1834. if (sym_has_value(csym) || !sym_is_choice(csym))
  1835. continue;
  1836. sym_calc_value(csym);
  1837. -
  1838. - if (csym->curr.tri != yes)
  1839. - continue;
  1840. -
  1841. - prop = sym_get_choice_prop(csym);
  1842. -
  1843. - /* count entries in choice block */
  1844. - cnt = 0;
  1845. - expr_list_for_each_sym(prop->expr, e, sym)
  1846. - cnt++;
  1847. -
  1848. - /*
  1849. - * find a random value and set it to yes,
  1850. - * set the rest to no so we have only one set
  1851. - */
  1852. - def = (rand() % cnt);
  1853. -
  1854. - cnt = 0;
  1855. - expr_list_for_each_sym(prop->expr, e, sym) {
  1856. - if (def == cnt++) {
  1857. - sym->def[S_DEF_USER].tri = yes;
  1858. - csym->def[S_DEF_USER].val = sym;
  1859. - }
  1860. - else {
  1861. - sym->def[S_DEF_USER].tri = no;
  1862. - }
  1863. + if (mode == def_random)
  1864. + has_changed = randomize_choice_values(csym);
  1865. + else {
  1866. + set_all_choice_values(csym);
  1867. + has_changed = true;
  1868. }
  1869. - csym->flags |= SYMBOL_DEF_USER;
  1870. - /* clear VALID to get value calculated */
  1871. - csym->flags &= ~(SYMBOL_VALID);
  1872. }
  1873. +
  1874. + return has_changed;
  1875. }
  1876. diff -Nur uClibc-0.9.33.2/extra/config/expr.c uClibc-git/extra/config/expr.c
  1877. --- uClibc-0.9.33.2/extra/config/expr.c 2012-05-15 09:20:09.000000000 +0200
  1878. +++ uClibc-git/extra/config/expr.c 2014-06-02 17:40:33.726710391 +0200
  1879. @@ -7,15 +7,13 @@
  1880. #include <stdlib.h>
  1881. #include <string.h>
  1882. -#define LKC_DIRECT_LINK
  1883. #include "lkc.h"
  1884. #define DEBUG_EXPR 0
  1885. struct expr *expr_alloc_symbol(struct symbol *sym)
  1886. {
  1887. - struct expr *e = malloc(sizeof(*e));
  1888. - memset(e, 0, sizeof(*e));
  1889. + struct expr *e = xcalloc(1, sizeof(*e));
  1890. e->type = E_SYMBOL;
  1891. e->left.sym = sym;
  1892. return e;
  1893. @@ -23,8 +21,7 @@
  1894. struct expr *expr_alloc_one(enum expr_type type, struct expr *ce)
  1895. {
  1896. - struct expr *e = malloc(sizeof(*e));
  1897. - memset(e, 0, sizeof(*e));
  1898. + struct expr *e = xcalloc(1, sizeof(*e));
  1899. e->type = type;
  1900. e->left.expr = ce;
  1901. return e;
  1902. @@ -32,8 +29,7 @@
  1903. struct expr *expr_alloc_two(enum expr_type type, struct expr *e1, struct expr *e2)
  1904. {
  1905. - struct expr *e = malloc(sizeof(*e));
  1906. - memset(e, 0, sizeof(*e));
  1907. + struct expr *e = xcalloc(1, sizeof(*e));
  1908. e->type = type;
  1909. e->left.expr = e1;
  1910. e->right.expr = e2;
  1911. @@ -42,8 +38,7 @@
  1912. struct expr *expr_alloc_comp(enum expr_type type, struct symbol *s1, struct symbol *s2)
  1913. {
  1914. - struct expr *e = malloc(sizeof(*e));
  1915. - memset(e, 0, sizeof(*e));
  1916. + struct expr *e = xcalloc(1, sizeof(*e));
  1917. e->type = type;
  1918. e->left.sym = s1;
  1919. e->right.sym = s2;
  1920. @@ -64,14 +59,14 @@
  1921. return e2 ? expr_alloc_two(E_OR, e1, e2) : e1;
  1922. }
  1923. -struct expr *expr_copy(struct expr *org)
  1924. +struct expr *expr_copy(const struct expr *org)
  1925. {
  1926. struct expr *e;
  1927. if (!org)
  1928. return NULL;
  1929. - e = malloc(sizeof(*org));
  1930. + e = xmalloc(sizeof(*org));
  1931. memcpy(e, org, sizeof(*org));
  1932. switch (org->type) {
  1933. case E_SYMBOL:
  1934. @@ -348,7 +343,7 @@
  1935. /*
  1936. * e1 || e2 -> ?
  1937. */
  1938. -struct expr *expr_join_or(struct expr *e1, struct expr *e2)
  1939. +static struct expr *expr_join_or(struct expr *e1, struct expr *e2)
  1940. {
  1941. struct expr *tmp;
  1942. struct symbol *sym1, *sym2;
  1943. @@ -412,7 +407,7 @@
  1944. return NULL;
  1945. }
  1946. -struct expr *expr_join_and(struct expr *e1, struct expr *e2)
  1947. +static struct expr *expr_join_and(struct expr *e1, struct expr *e2)
  1948. {
  1949. struct expr *tmp;
  1950. struct symbol *sym1, *sym2;
  1951. @@ -1013,6 +1008,48 @@
  1952. #endif
  1953. }
  1954. +static inline struct expr *
  1955. +expr_get_leftmost_symbol(const struct expr *e)
  1956. +{
  1957. +
  1958. + if (e == NULL)
  1959. + return NULL;
  1960. +
  1961. + while (e->type != E_SYMBOL)
  1962. + e = e->left.expr;
  1963. +
  1964. + return expr_copy(e);
  1965. +}
  1966. +
  1967. +/*
  1968. + * Given expression `e1' and `e2', returns the leaf of the longest
  1969. + * sub-expression of `e1' not containing 'e2.
  1970. + */
  1971. +struct expr *expr_simplify_unmet_dep(struct expr *e1, struct expr *e2)
  1972. +{
  1973. + struct expr *ret;
  1974. +
  1975. + switch (e1->type) {
  1976. + case E_OR:
  1977. + return expr_alloc_and(
  1978. + expr_simplify_unmet_dep(e1->left.expr, e2),
  1979. + expr_simplify_unmet_dep(e1->right.expr, e2));
  1980. + case E_AND: {
  1981. + struct expr *e;
  1982. + e = expr_alloc_and(expr_copy(e1), expr_copy(e2));
  1983. + e = expr_eliminate_dups(e);
  1984. + ret = (!expr_eq(e, e1)) ? e1 : NULL;
  1985. + expr_free(e);
  1986. + break;
  1987. + }
  1988. + default:
  1989. + ret = e1;
  1990. + break;
  1991. + }
  1992. +
  1993. + return expr_get_leftmost_symbol(ret);
  1994. +}
  1995. +
  1996. void expr_print(struct expr *e, void (*fn)(void *, struct symbol *, const char *), void *data, int prevtoken)
  1997. {
  1998. if (!e) {
  1999. @@ -1087,7 +1124,7 @@
  2000. static void expr_print_file_helper(void *data, struct symbol *sym, const char *str)
  2001. {
  2002. - fwrite(str, strlen(str), 1, data);
  2003. + xfwrite(str, strlen(str), 1, data);
  2004. }
  2005. void expr_fprint(struct expr *e, FILE *out)
  2006. @@ -1097,7 +1134,32 @@
  2007. static void expr_print_gstr_helper(void *data, struct symbol *sym, const char *str)
  2008. {
  2009. - str_append((struct gstr*)data, str);
  2010. + struct gstr *gs = (struct gstr*)data;
  2011. + const char *sym_str = NULL;
  2012. +
  2013. + if (sym)
  2014. + sym_str = sym_get_string_value(sym);
  2015. +
  2016. + if (gs->max_width) {
  2017. + unsigned extra_length = strlen(str);
  2018. + const char *last_cr = strrchr(gs->s, '\n');
  2019. + unsigned last_line_length;
  2020. +
  2021. + if (sym_str)
  2022. + extra_length += 4 + strlen(sym_str);
  2023. +
  2024. + if (!last_cr)
  2025. + last_cr = gs->s;
  2026. +
  2027. + last_line_length = strlen(gs->s) - (last_cr - gs->s);
  2028. +
  2029. + if ((last_line_length + extra_length) > gs->max_width)
  2030. + str_append(gs, "\\\n");
  2031. + }
  2032. +
  2033. + str_append(gs, str);
  2034. + if (sym && sym->type != S_UNKNOWN)
  2035. + str_printf(gs, " [=%s]", sym_str);
  2036. }
  2037. void expr_gstr_print(struct expr *e, struct gstr *gs)
  2038. diff -Nur uClibc-0.9.33.2/extra/config/expr.h uClibc-git/extra/config/expr.h
  2039. --- uClibc-0.9.33.2/extra/config/expr.h 2012-05-15 09:20:09.000000000 +0200
  2040. +++ uClibc-git/extra/config/expr.h 2014-06-02 17:40:33.726710391 +0200
  2041. @@ -10,7 +10,9 @@
  2042. extern "C" {
  2043. #endif
  2044. +#include <assert.h>
  2045. #include <stdio.h>
  2046. +#include "list.h"
  2047. #ifndef __cplusplus
  2048. #include <stdbool.h>
  2049. #endif
  2050. @@ -18,14 +20,10 @@
  2051. struct file {
  2052. struct file *next;
  2053. struct file *parent;
  2054. - char *name;
  2055. + const char *name;
  2056. int lineno;
  2057. - int flags;
  2058. };
  2059. -#define FILE_BUSY 0x0001
  2060. -#define FILE_SCANNED 0x0002
  2061. -
  2062. typedef enum tristate {
  2063. no, mod, yes
  2064. } tristate;
  2065. @@ -83,10 +81,11 @@
  2066. tristate visible;
  2067. int flags;
  2068. struct property *prop;
  2069. + struct expr_value dir_dep;
  2070. struct expr_value rev_dep;
  2071. };
  2072. -#define for_all_symbols(i, sym) for (i = 0; i < 257; i++) for (sym = symbol_hash[i]; sym; sym = sym->next) if (sym->type != S_OTHER)
  2073. +#define for_all_symbols(i, sym) for (i = 0; i < SYMBOL_HASHSIZE; i++) for (sym = symbol_hash[i]; sym; sym = sym->next) if (sym->type != S_OTHER)
  2074. #define SYMBOL_CONST 0x0001 /* symbol is const */
  2075. #define SYMBOL_CHECK 0x0008 /* used during dependency checking */
  2076. @@ -107,9 +106,11 @@
  2077. #define SYMBOL_DEF3 0x40000 /* symbol.def[S_DEF_3] is valid */
  2078. #define SYMBOL_DEF4 0x80000 /* symbol.def[S_DEF_4] is valid */
  2079. +/* choice values need to be set before calculating this symbol value */
  2080. +#define SYMBOL_NEED_SET_CHOICE_VALUES 0x100000
  2081. +
  2082. #define SYMBOL_MAXLENGTH 256
  2083. -#define SYMBOL_HASHSIZE 257
  2084. -#define SYMBOL_HASHMASK 0xff
  2085. +#define SYMBOL_HASHSIZE 9973
  2086. /* A property represent the config options that can be associated
  2087. * with a config "symbol".
  2088. @@ -132,6 +133,7 @@
  2089. P_SELECT, /* select BAR */
  2090. P_RANGE, /* range 7..100 (for a symbol) */
  2091. P_ENV, /* value from environment variable */
  2092. + P_SYMBOL, /* where a symbol is defined */
  2093. };
  2094. struct property {
  2095. @@ -163,6 +165,7 @@
  2096. struct menu *list;
  2097. struct symbol *sym;
  2098. struct property *prompt;
  2099. + struct expr *visibility;
  2100. struct expr *dep;
  2101. unsigned int flags;
  2102. char *help;
  2103. @@ -174,7 +177,14 @@
  2104. #define MENU_CHANGED 0x0001
  2105. #define MENU_ROOT 0x0002
  2106. -#ifndef SWIG
  2107. +struct jump_key {
  2108. + struct list_head entries;
  2109. + size_t offset;
  2110. + struct menu *target;
  2111. + int index;
  2112. +};
  2113. +
  2114. +#define JUMP_NB 9
  2115. extern struct file *file_list;
  2116. extern struct file *current_file;
  2117. @@ -190,7 +200,7 @@
  2118. struct expr *expr_alloc_comp(enum expr_type type, struct symbol *s1, struct symbol *s2);
  2119. struct expr *expr_alloc_and(struct expr *e1, struct expr *e2);
  2120. struct expr *expr_alloc_or(struct expr *e1, struct expr *e2);
  2121. -struct expr *expr_copy(struct expr *org);
  2122. +struct expr *expr_copy(const struct expr *org);
  2123. void expr_free(struct expr *e);
  2124. int expr_eq(struct expr *e1, struct expr *e2);
  2125. void expr_eliminate_eq(struct expr **ep1, struct expr **ep2);
  2126. @@ -205,6 +215,7 @@
  2127. struct expr *expr_extract_eq_or(struct expr **ep1, struct expr **ep2);
  2128. void expr_extract_eq(enum expr_type type, struct expr **ep, struct expr **ep1, struct expr **ep2);
  2129. struct expr *expr_trans_compare(struct expr *e, enum expr_type type, struct symbol *sym);
  2130. +struct expr *expr_simplify_unmet_dep(struct expr *e1, struct expr *e2);
  2131. void expr_fprint(struct expr *e, FILE *out);
  2132. struct gstr; /* forward */
  2133. @@ -219,7 +230,6 @@
  2134. {
  2135. return e && (e->type == E_SYMBOL && e->left.sym == &symbol_no);
  2136. }
  2137. -#endif
  2138. #ifdef __cplusplus
  2139. }
  2140. diff -Nur uClibc-0.9.33.2/extra/config/gconf.c uClibc-git/extra/config/gconf.c
  2141. --- uClibc-0.9.33.2/extra/config/gconf.c 2012-05-15 09:20:09.000000000 +0200
  2142. +++ uClibc-git/extra/config/gconf.c 2014-06-02 17:40:33.726710391 +0200
  2143. @@ -10,6 +10,7 @@
  2144. # include <config.h>
  2145. #endif
  2146. +#include <stdlib.h>
  2147. #include "lkc.h"
  2148. #include "images.c"
  2149. @@ -22,7 +23,6 @@
  2150. #include <string.h>
  2151. #include <unistd.h>
  2152. #include <time.h>
  2153. -#include <stdlib.h>
  2154. //#define DEBUG
  2155. @@ -30,13 +30,16 @@
  2156. SINGLE_VIEW, SPLIT_VIEW, FULL_VIEW
  2157. };
  2158. +enum {
  2159. + OPT_NORMAL, OPT_ALL, OPT_PROMPT
  2160. +};
  2161. +
  2162. static gint view_mode = FULL_VIEW;
  2163. static gboolean show_name = TRUE;
  2164. static gboolean show_range = TRUE;
  2165. static gboolean show_value = TRUE;
  2166. -static gboolean show_all = FALSE;
  2167. -static gboolean show_debug = FALSE;
  2168. static gboolean resizeable = FALSE;
  2169. +static int opt_mode = OPT_NORMAL;
  2170. GtkWidget *main_wnd = NULL;
  2171. GtkWidget *tree1_w = NULL; // left frame
  2172. @@ -76,36 +79,7 @@
  2173. /* Helping/Debugging Functions */
  2174. -
  2175. -const char *dbg_print_stype(int val)
  2176. -{
  2177. - static char buf[256];
  2178. -
  2179. - bzero(buf, 256);
  2180. -
  2181. - if (val == S_UNKNOWN)
  2182. - strcpy(buf, "unknown");
  2183. - if (val == S_BOOLEAN)
  2184. - strcpy(buf, "boolean");
  2185. - if (val == S_TRISTATE)
  2186. - strcpy(buf, "tristate");
  2187. - if (val == S_INT)
  2188. - strcpy(buf, "int");
  2189. - if (val == S_HEX)
  2190. - strcpy(buf, "hex");
  2191. - if (val == S_STRING)
  2192. - strcpy(buf, "string");
  2193. - if (val == S_OTHER)
  2194. - strcpy(buf, "other");
  2195. -
  2196. -#ifdef DEBUG
  2197. - printf("%s", buf);
  2198. -#endif
  2199. -
  2200. - return buf;
  2201. -}
  2202. -
  2203. -const char *dbg_print_flags(int val)
  2204. +const char *dbg_sym_flags(int val)
  2205. {
  2206. static char buf[256];
  2207. @@ -131,40 +105,10 @@
  2208. strcat(buf, "auto/");
  2209. buf[strlen(buf) - 1] = '\0';
  2210. -#ifdef DEBUG
  2211. - printf("%s", buf);
  2212. -#endif
  2213. return buf;
  2214. }
  2215. -const char *dbg_print_ptype(int val)
  2216. -{
  2217. - static char buf[256];
  2218. -
  2219. - bzero(buf, 256);
  2220. -
  2221. - if (val == P_UNKNOWN)
  2222. - strcpy(buf, "unknown");
  2223. - if (val == P_PROMPT)
  2224. - strcpy(buf, "prompt");
  2225. - if (val == P_COMMENT)
  2226. - strcpy(buf, "comment");
  2227. - if (val == P_MENU)
  2228. - strcpy(buf, "menu");
  2229. - if (val == P_DEFAULT)
  2230. - strcpy(buf, "default");
  2231. - if (val == P_CHOICE)
  2232. - strcpy(buf, "choice");
  2233. -
  2234. -#ifdef DEBUG
  2235. - printf("%s", buf);
  2236. -#endif
  2237. -
  2238. - return buf;
  2239. -}
  2240. -
  2241. -
  2242. void replace_button_icon(GladeXML * xml, GdkDrawable * window,
  2243. GtkStyle * style, gchar * btn_name, gchar ** xpm)
  2244. {
  2245. @@ -189,7 +133,6 @@
  2246. GladeXML *xml;
  2247. GtkWidget *widget;
  2248. GtkTextBuffer *txtbuf;
  2249. - char title[256];
  2250. GtkStyle *style;
  2251. xml = glade_xml_new(glade_file, "window1", NULL);
  2252. @@ -266,9 +209,7 @@
  2253. /*"style", PANGO_STYLE_OBLIQUE, */
  2254. NULL);
  2255. - sprintf(title, _("uClibc v%s Configuration"),
  2256. - getenv("VERSION"));
  2257. - gtk_window_set_title(GTK_WINDOW(main_wnd), title);
  2258. + gtk_window_set_title(GTK_WINDOW(main_wnd), rootmenu.prompt->text);
  2259. gtk_widget_show(main_wnd);
  2260. }
  2261. @@ -312,7 +253,7 @@
  2262. gtk_tree_view_set_model(view, model1);
  2263. gtk_tree_view_set_headers_visible(view, TRUE);
  2264. - gtk_tree_view_set_rules_hint(view, FALSE);
  2265. + gtk_tree_view_set_rules_hint(view, TRUE);
  2266. column = gtk_tree_view_column_new();
  2267. gtk_tree_view_append_column(view, column);
  2268. @@ -344,8 +285,6 @@
  2269. static void renderer_edited(GtkCellRendererText * cell,
  2270. const gchar * path_string,
  2271. const gchar * new_text, gpointer user_data);
  2272. -static void renderer_toggled(GtkCellRendererToggle * cellrenderertoggle,
  2273. - gchar * arg1, gpointer user_data);
  2274. void init_right_tree(void)
  2275. {
  2276. @@ -357,7 +296,7 @@
  2277. gtk_tree_view_set_model(view, model2);
  2278. gtk_tree_view_set_headers_visible(view, TRUE);
  2279. - gtk_tree_view_set_rules_hint(view, FALSE);
  2280. + gtk_tree_view_set_rules_hint(view, TRUE);
  2281. column = gtk_tree_view_column_new();
  2282. gtk_tree_view_append_column(view, column);
  2283. @@ -379,8 +318,6 @@
  2284. "inconsistent", COL_BTNINC,
  2285. "visible", COL_BTNVIS,
  2286. "radio", COL_BTNRAD, NULL);
  2287. - /*g_signal_connect(G_OBJECT(renderer), "toggled",
  2288. - G_CALLBACK(renderer_toggled), NULL); */
  2289. renderer = gtk_cell_renderer_text_new();
  2290. gtk_tree_view_column_pack_start(GTK_TREE_VIEW_COLUMN(column),
  2291. renderer, FALSE);
  2292. @@ -456,19 +393,9 @@
  2293. GtkTextBuffer *buffer;
  2294. GtkTextIter start, end;
  2295. const char *prompt = _(menu_get_prompt(menu));
  2296. - gchar *name;
  2297. - const char *help;
  2298. -
  2299. - help = menu_get_help(menu);
  2300. -
  2301. - /* Gettextize if the help text not empty */
  2302. - if ((help != 0) && (help[0] != 0))
  2303. - help = _(help);
  2304. + struct gstr help = str_new();
  2305. - if (menu->sym && menu->sym->name)
  2306. - name = g_strdup_printf(menu->sym->name);
  2307. - else
  2308. - name = g_strdup("");
  2309. + menu_get_ext_help(menu, &help);
  2310. buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_w));
  2311. gtk_text_buffer_get_bounds(buffer, &start, &end);
  2312. @@ -478,14 +405,11 @@
  2313. gtk_text_buffer_get_end_iter(buffer, &end);
  2314. gtk_text_buffer_insert_with_tags(buffer, &end, prompt, -1, tag1,
  2315. NULL);
  2316. - gtk_text_buffer_insert_at_cursor(buffer, " ", 1);
  2317. - gtk_text_buffer_get_end_iter(buffer, &end);
  2318. - gtk_text_buffer_insert_with_tags(buffer, &end, name, -1, tag1,
  2319. - NULL);
  2320. gtk_text_buffer_insert_at_cursor(buffer, "\n\n", 2);
  2321. gtk_text_buffer_get_end_iter(buffer, &end);
  2322. - gtk_text_buffer_insert_with_tags(buffer, &end, help, -1, tag2,
  2323. + gtk_text_buffer_insert_with_tags(buffer, &end, str_get(&help), -1, tag2,
  2324. NULL);
  2325. + str_free(&help);
  2326. }
  2327. @@ -710,20 +634,29 @@
  2328. void
  2329. -on_show_all_options1_activate(GtkMenuItem * menuitem, gpointer user_data)
  2330. +on_set_option_mode1_activate(GtkMenuItem *menuitem, gpointer user_data)
  2331. {
  2332. - show_all = GTK_CHECK_MENU_ITEM(menuitem)->active;
  2333. + opt_mode = OPT_NORMAL;
  2334. + gtk_tree_store_clear(tree2);
  2335. + display_tree(&rootmenu); /* instead of update_tree to speed-up */
  2336. +}
  2337. +
  2338. +void
  2339. +on_set_option_mode2_activate(GtkMenuItem *menuitem, gpointer user_data)
  2340. +{
  2341. + opt_mode = OPT_ALL;
  2342. gtk_tree_store_clear(tree2);
  2343. - display_tree(&rootmenu); // instead of update_tree to speed-up
  2344. + display_tree(&rootmenu); /* instead of update_tree to speed-up */
  2345. }
  2346. void
  2347. -on_show_debug_info1_activate(GtkMenuItem * menuitem, gpointer user_data)
  2348. +on_set_option_mode3_activate(GtkMenuItem *menuitem, gpointer user_data)
  2349. {
  2350. - show_debug = GTK_CHECK_MENU_ITEM(menuitem)->active;
  2351. - update_tree(&rootmenu, NULL);
  2352. + opt_mode = OPT_PROMPT;
  2353. + gtk_tree_store_clear(tree2);
  2354. + display_tree(&rootmenu); /* instead of update_tree to speed-up */
  2355. }
  2356. @@ -732,7 +665,6 @@
  2357. GtkWidget *dialog;
  2358. const gchar *intro_text = _(
  2359. "Welcome to gkc, the GTK+ graphical configuration tool\n"
  2360. - "for uClibc.\n"
  2361. "For each option, a blank box indicates the feature is disabled, a\n"
  2362. "check indicates it is enabled, and a dot indicates that it is to\n"
  2363. "be compiled as a module. Clicking on the box will cycle through the three states.\n"
  2364. @@ -751,7 +683,7 @@
  2365. dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
  2366. GTK_DIALOG_DESTROY_WITH_PARENT,
  2367. GTK_MESSAGE_INFO,
  2368. - GTK_BUTTONS_CLOSE, intro_text);
  2369. + GTK_BUTTONS_CLOSE, "%s", intro_text);
  2370. g_signal_connect_swapped(GTK_OBJECT(dialog), "response",
  2371. G_CALLBACK(gtk_widget_destroy),
  2372. GTK_OBJECT(dialog));
  2373. @@ -769,7 +701,7 @@
  2374. dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
  2375. GTK_DIALOG_DESTROY_WITH_PARENT,
  2376. GTK_MESSAGE_INFO,
  2377. - GTK_BUTTONS_CLOSE, about_text);
  2378. + GTK_BUTTONS_CLOSE, "%s", about_text);
  2379. g_signal_connect_swapped(GTK_OBJECT(dialog), "response",
  2380. G_CALLBACK(gtk_widget_destroy),
  2381. GTK_OBJECT(dialog));
  2382. @@ -788,7 +720,7 @@
  2383. dialog = gtk_message_dialog_new(GTK_WINDOW(main_wnd),
  2384. GTK_DIALOG_DESTROY_WITH_PARENT,
  2385. GTK_MESSAGE_INFO,
  2386. - GTK_BUTTONS_CLOSE, license_text);
  2387. + GTK_BUTTONS_CLOSE, "%s", license_text);
  2388. g_signal_connect_swapped(GTK_OBJECT(dialog), "response",
  2389. G_CALLBACK(gtk_widget_destroy),
  2390. GTK_OBJECT(dialog));
  2391. @@ -820,7 +752,6 @@
  2392. void on_single_clicked(GtkButton * button, gpointer user_data)
  2393. {
  2394. view_mode = SINGLE_VIEW;
  2395. - gtk_paned_set_position(GTK_PANED(hpaned), 0);
  2396. gtk_widget_hide(tree1_w);
  2397. current = &rootmenu;
  2398. display_tree_part();
  2399. @@ -846,7 +777,6 @@
  2400. void on_full_clicked(GtkButton * button, gpointer user_data)
  2401. {
  2402. view_mode = FULL_VIEW;
  2403. - gtk_paned_set_position(GTK_PANED(hpaned), 0);
  2404. gtk_widget_hide(tree1_w);
  2405. if (tree2)
  2406. gtk_tree_store_clear(tree2);
  2407. @@ -900,7 +830,7 @@
  2408. static void change_sym_value(struct menu *menu, gint col)
  2409. {
  2410. struct symbol *sym = menu->sym;
  2411. - tristate oldval, newval;
  2412. + tristate newval;
  2413. if (!sym)
  2414. return;
  2415. @@ -917,7 +847,6 @@
  2416. switch (sym_get_type(sym)) {
  2417. case S_BOOLEAN:
  2418. case S_TRISTATE:
  2419. - oldval = sym_get_tristate_value(sym);
  2420. if (!sym_tristate_within_range(sym, newval))
  2421. newval = yes;
  2422. sym_set_tristate_value(sym, newval);
  2423. @@ -954,35 +883,6 @@
  2424. display_tree_part(); //fixme: keep exp/coll
  2425. }
  2426. -static void renderer_toggled(GtkCellRendererToggle * cell,
  2427. - gchar * path_string, gpointer user_data)
  2428. -{
  2429. - GtkTreePath *path, *sel_path = NULL;
  2430. - GtkTreeIter iter, sel_iter;
  2431. - GtkTreeSelection *sel;
  2432. - struct menu *menu;
  2433. -
  2434. - path = gtk_tree_path_new_from_string(path_string);
  2435. - if (!gtk_tree_model_get_iter(model2, &iter, path))
  2436. - return;
  2437. -
  2438. - sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree2_w));
  2439. - if (gtk_tree_selection_get_selected(sel, NULL, &sel_iter))
  2440. - sel_path = gtk_tree_model_get_path(model2, &sel_iter);
  2441. - if (!sel_path)
  2442. - goto out1;
  2443. - if (gtk_tree_path_compare(path, sel_path))
  2444. - goto out2;
  2445. -
  2446. - gtk_tree_model_get(model2, &iter, COL_MENU, &menu, -1);
  2447. - toggle_sym_value(menu);
  2448. -
  2449. - out2:
  2450. - gtk_tree_path_free(sel_path);
  2451. - out1:
  2452. - gtk_tree_path_free(path);
  2453. -}
  2454. -
  2455. static gint column2index(GtkTreeViewColumn * column)
  2456. {
  2457. gint i;
  2458. @@ -1174,9 +1074,12 @@
  2459. row[COL_OPTION] =
  2460. g_strdup_printf("%s %s", _(menu_get_prompt(menu)),
  2461. - sym && sym_has_value(sym) ? "(NEW)" : "");
  2462. + sym && !sym_has_value(sym) ? "(NEW)" : "");
  2463. - if (show_all && !menu_is_visible(menu))
  2464. + if (opt_mode == OPT_ALL && !menu_is_visible(menu))
  2465. + row[COL_COLOR] = g_strdup("DarkGray");
  2466. + else if (opt_mode == OPT_PROMPT &&
  2467. + menu_has_prompt(menu) && !menu_is_visible(menu))
  2468. row[COL_COLOR] = g_strdup("DarkGray");
  2469. else
  2470. row[COL_COLOR] = g_strdup("Black");
  2471. @@ -1235,6 +1138,7 @@
  2472. row[COL_BTNVIS] = GINT_TO_POINTER(TRUE);
  2473. if (sym_is_choice(sym))
  2474. break;
  2475. + /* fall through */
  2476. case S_TRISTATE:
  2477. val = sym_get_tristate_value(sym);
  2478. switch (val) {
  2479. @@ -1373,7 +1277,6 @@
  2480. gboolean valid;
  2481. GtkTreeIter *sibling;
  2482. struct symbol *sym;
  2483. - struct property *prop;
  2484. struct menu *menu1, *menu2;
  2485. if (src == &rootmenu)
  2486. @@ -1382,7 +1285,6 @@
  2487. valid = gtk_tree_model_iter_children(model2, child2, dst);
  2488. for (child1 = src->list; child1; child1 = child1->next) {
  2489. - prop = child1->prompt;
  2490. sym = child1->sym;
  2491. reparse:
  2492. @@ -1399,16 +1301,20 @@
  2493. menu2 ? menu_get_prompt(menu2) : "nil");
  2494. #endif
  2495. - if (!menu_is_visible(child1) && !show_all) { // remove node
  2496. + if ((opt_mode == OPT_NORMAL && !menu_is_visible(child1)) ||
  2497. + (opt_mode == OPT_PROMPT && !menu_has_prompt(child1)) ||
  2498. + (opt_mode == OPT_ALL && !menu_get_prompt(child1))) {
  2499. +
  2500. + /* remove node */
  2501. if (gtktree_iter_find_node(dst, menu1) != NULL) {
  2502. memcpy(&tmp, child2, sizeof(GtkTreeIter));
  2503. valid = gtk_tree_model_iter_next(model2,
  2504. child2);
  2505. gtk_tree_store_remove(tree2, &tmp);
  2506. if (!valid)
  2507. - return; // next parent
  2508. + return; /* next parent */
  2509. else
  2510. - goto reparse; // next child
  2511. + goto reparse; /* next child */
  2512. } else
  2513. continue;
  2514. }
  2515. @@ -1477,17 +1383,19 @@
  2516. && (tree == tree2))
  2517. continue;
  2518. - if (menu_is_visible(child) || show_all)
  2519. + if ((opt_mode == OPT_NORMAL && menu_is_visible(child)) ||
  2520. + (opt_mode == OPT_PROMPT && menu_has_prompt(child)) ||
  2521. + (opt_mode == OPT_ALL && menu_get_prompt(child)))
  2522. place_node(child, fill_row(child));
  2523. #ifdef DEBUG
  2524. printf("%*c%s: ", indent, ' ', menu_get_prompt(child));
  2525. printf("%s", child->flags & MENU_ROOT ? "rootmenu | " : "");
  2526. - dbg_print_ptype(ptype);
  2527. + printf("%s", prop_get_type_name(ptype));
  2528. printf(" | ");
  2529. if (sym) {
  2530. - dbg_print_stype(sym->type);
  2531. + printf("%s", sym_type_name(sym->type));
  2532. printf(" | ");
  2533. - dbg_print_flags(sym->flags);
  2534. + printf("%s", dbg_sym_flags(sym->flags));
  2535. printf("\n");
  2536. } else
  2537. printf("\n");
  2538. @@ -1499,6 +1407,12 @@
  2539. if (((menu != &rootmenu) && !(menu->flags & MENU_ROOT))
  2540. || (view_mode == FULL_VIEW)
  2541. || (view_mode == SPLIT_VIEW))*/
  2542. +
  2543. + /* Change paned position if the view is not in 'split mode' */
  2544. + if (view_mode == SINGLE_VIEW || view_mode == FULL_VIEW) {
  2545. + gtk_paned_set_position(GTK_PANED(hpaned), 0);
  2546. + }
  2547. +
  2548. if (((view_mode == SINGLE_VIEW) && (menu->flags & MENU_ROOT))
  2549. || (view_mode == FULL_VIEW)
  2550. || (view_mode == SPLIT_VIEW)) {
  2551. @@ -1557,10 +1471,6 @@
  2552. char *env;
  2553. gchar *glade_file;
  2554. -#ifndef LKC_DIRECT_LINK
  2555. - kconfig_load();
  2556. -#endif
  2557. -
  2558. bindtextdomain(PACKAGE, LOCALEDIR);
  2559. bind_textdomain_codeset(PACKAGE, "UTF-8");
  2560. textdomain(PACKAGE);
  2561. @@ -1582,12 +1492,6 @@
  2562. else
  2563. glade_file = g_strconcat(g_get_current_dir(), "/", av[0], ".glade", NULL);
  2564. - /* Load the interface and connect signals */
  2565. - init_main_window(glade_file);
  2566. - init_tree_model();
  2567. - init_left_tree();
  2568. - init_right_tree();
  2569. -
  2570. /* Conf stuffs */
  2571. if (ac > 1 && av[1][0] == '-') {
  2572. switch (av[1][1]) {
  2573. @@ -1607,6 +1511,12 @@
  2574. fixup_rootmenu(&rootmenu);
  2575. conf_read(NULL);
  2576. + /* Load the interface and connect signals */
  2577. + init_main_window(glade_file);
  2578. + init_tree_model();
  2579. + init_left_tree();
  2580. + init_right_tree();
  2581. +
  2582. switch (view_mode) {
  2583. case SINGLE_VIEW:
  2584. display_tree_part();
  2585. diff -Nur uClibc-0.9.33.2/extra/config/gconf.glade uClibc-git/extra/config/gconf.glade
  2586. --- uClibc-0.9.33.2/extra/config/gconf.glade 2012-05-15 09:20:09.000000000 +0200
  2587. +++ uClibc-git/extra/config/gconf.glade 2014-06-02 17:40:33.726710391 +0200
  2588. @@ -1,11 +1,10 @@
  2589. <?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
  2590. -<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd">
  2591. <glade-interface>
  2592. <widget class="GtkWindow" id="window1">
  2593. <property name="visible">True</property>
  2594. - <property name="title" translatable="yes">Gtk uClibc Configurator</property>
  2595. + <property name="title" translatable="yes">Gtk uCLibc Configurator</property>
  2596. <property name="type">GTK_WINDOW_TOPLEVEL</property>
  2597. <property name="window_position">GTK_WIN_POS_NONE</property>
  2598. <property name="modal">False</property>
  2599. @@ -190,26 +189,40 @@
  2600. </child>
  2601. <child>
  2602. - <widget class="GtkCheckMenuItem" id="show_all_options1">
  2603. + <widget class="GtkRadioMenuItem" id="set_option_mode1">
  2604. + <property name="visible">True</property>
  2605. + <property name="tooltip" translatable="yes">Show normal options</property>
  2606. + <property name="label" translatable="yes">Show normal options</property>
  2607. + <property name="use_underline">True</property>
  2608. + <property name="active">True</property>
  2609. + <signal name="activate" handler="on_set_option_mode1_activate"/>
  2610. + </widget>
  2611. + </child>
  2612. +
  2613. + <child>
  2614. + <widget class="GtkRadioMenuItem" id="set_option_mode2">
  2615. <property name="visible">True</property>
  2616. <property name="tooltip" translatable="yes">Show all options</property>
  2617. <property name="label" translatable="yes">Show all _options</property>
  2618. <property name="use_underline">True</property>
  2619. <property name="active">False</property>
  2620. - <signal name="activate" handler="on_show_all_options1_activate"/>
  2621. + <property name="group">set_option_mode1</property>
  2622. + <signal name="activate" handler="on_set_option_mode2_activate"/>
  2623. </widget>
  2624. </child>
  2625. <child>
  2626. - <widget class="GtkCheckMenuItem" id="show_debug_info1">
  2627. + <widget class="GtkRadioMenuItem" id="set_option_mode3">
  2628. <property name="visible">True</property>
  2629. - <property name="tooltip" translatable="yes">Show masked options</property>
  2630. - <property name="label" translatable="yes">Show _debug info</property>
  2631. + <property name="tooltip" translatable="yes">Show all options with prompts</property>
  2632. + <property name="label" translatable="yes">Show all prompt options</property>
  2633. <property name="use_underline">True</property>
  2634. <property name="active">False</property>
  2635. - <signal name="activate" handler="on_show_debug_info1_activate"/>
  2636. + <property name="group">set_option_mode1</property>
  2637. + <signal name="activate" handler="on_set_option_mode3_activate"/>
  2638. </widget>
  2639. </child>
  2640. +
  2641. </widget>
  2642. </child>
  2643. </widget>
  2644. @@ -547,7 +560,7 @@
  2645. <property name="headers_visible">True</property>
  2646. <property name="rules_hint">False</property>
  2647. <property name="reorderable">False</property>
  2648. - <property name="enable_search">True</property>
  2649. + <property name="enable_search">False</property>
  2650. <signal name="cursor_changed" handler="on_treeview2_cursor_changed" last_modification_time="Sun, 12 Jan 2003 15:58:22 GMT"/>
  2651. <signal name="button_press_event" handler="on_treeview1_button_press_event" last_modification_time="Sun, 12 Jan 2003 16:03:52 GMT"/>
  2652. <signal name="key_press_event" handler="on_treeview2_key_press_event" last_modification_time="Sun, 12 Jan 2003 16:11:44 GMT"/>
  2653. @@ -582,7 +595,7 @@
  2654. <property name="headers_visible">True</property>
  2655. <property name="rules_hint">False</property>
  2656. <property name="reorderable">False</property>
  2657. - <property name="enable_search">True</property>
  2658. + <property name="enable_search">False</property>
  2659. <signal name="cursor_changed" handler="on_treeview2_cursor_changed" last_modification_time="Sun, 12 Jan 2003 15:57:55 GMT"/>
  2660. <signal name="button_press_event" handler="on_treeview2_button_press_event" last_modification_time="Sun, 12 Jan 2003 15:57:58 GMT"/>
  2661. <signal name="key_press_event" handler="on_treeview2_key_press_event" last_modification_time="Sun, 12 Jan 2003 15:58:01 GMT"/>
  2662. diff -Nur uClibc-0.9.33.2/extra/config/.gitignore uClibc-git/extra/config/.gitignore
  2663. --- uClibc-0.9.33.2/extra/config/.gitignore 2012-05-15 09:20:09.000000000 +0200
  2664. +++ uClibc-git/extra/config/.gitignore 2014-06-02 17:40:33.722710369 +0200
  2665. @@ -2,18 +2,21 @@
  2666. # Generated files
  2667. #
  2668. config*
  2669. -lex.*.c
  2670. +*.lex.c
  2671. *.tab.c
  2672. *.tab.h
  2673. zconf.hash.c
  2674. *.moc
  2675. -lkc_defs.h
  2676. +gconf.glade.h
  2677. +*.pot
  2678. +*.mo
  2679. #
  2680. # configuration programs
  2681. #
  2682. conf
  2683. mconf
  2684. +nconf
  2685. qconf
  2686. gconf
  2687. kxgettext
  2688. diff -Nur uClibc-0.9.33.2/extra/config/kconfig-language.txt uClibc-git/extra/config/kconfig-language.txt
  2689. --- uClibc-0.9.33.2/extra/config/kconfig-language.txt 2012-05-15 09:20:09.000000000 +0200
  2690. +++ uClibc-git/extra/config/kconfig-language.txt 2014-06-02 17:40:33.726710391 +0200
  2691. @@ -112,7 +112,13 @@
  2692. (no prompts anywhere) and for symbols with no dependencies.
  2693. That will limit the usefulness but on the other hand avoid
  2694. the illegal configurations all over.
  2695. - kconfig should one day warn about such things.
  2696. +
  2697. +- limiting menu display: "visible if" <expr>
  2698. + This attribute is only applicable to menu blocks, if the condition is
  2699. + false, the menu block is not displayed to the user (the symbols
  2700. + contained there can still be selected by other symbols, though). It is
  2701. + similar to a conditional "prompt" attribute for individual menu
  2702. + entries. Default value of "visible" is true.
  2703. - numerical ranges: "range" <symbol> <symbol> ["if" <expr>]
  2704. This allows to limit the range of possible input values for int
  2705. @@ -181,7 +187,7 @@
  2706. (7) Returns the result of max(/expr/, /expr/).
  2707. An expression can have a value of 'n', 'm' or 'y' (or 0, 1, 2
  2708. -respectively for calculations). A menu entry becomes visible when it's
  2709. +respectively for calculations). A menu entry becomes visible when its
  2710. expression evaluates to 'm' or 'y'.
  2711. There are two types of symbols: constant and non-constant symbols.
  2712. @@ -268,7 +274,7 @@
  2713. choices:
  2714. - "choice"
  2715. + "choice" [symbol]
  2716. <choice options>
  2717. <choice block>
  2718. "endchoice"
  2719. @@ -282,6 +288,10 @@
  2720. can be compiled as modules.
  2721. A choice accepts another option "optional", which allows to set the
  2722. choice to 'n' and no entry needs to be selected.
  2723. +If no [symbol] is associated with a choice, then you can not have multiple
  2724. +definitions of that choice. If a [symbol] is associated to the choice,
  2725. +then you may define the same choice (ie. with the same entries) in another
  2726. +place.
  2727. comment:
  2728. @@ -300,7 +310,8 @@
  2729. "endmenu"
  2730. This defines a menu block, see "Menu structure" above for more
  2731. -information. The only possible options are dependencies.
  2732. +information. The only possible options are dependencies and "visible"
  2733. +attributes.
  2734. if:
  2735. @@ -322,7 +333,8 @@
  2736. "mainmenu" <prompt>
  2737. This sets the config program's title bar if the config program chooses
  2738. -to use it.
  2739. +to use it. It should be placed at the top of the configuration, before any
  2740. +other statement.
  2741. Kconfig hints
  2742. @@ -376,4 +388,3 @@
  2743. depends on BAR && m
  2744. limits FOO to module (=m) or disabled (=n).
  2745. -
  2746. diff -Nur uClibc-0.9.33.2/extra/config/kconfig_load.c uClibc-git/extra/config/kconfig_load.c
  2747. --- uClibc-0.9.33.2/extra/config/kconfig_load.c 2012-05-15 09:20:09.000000000 +0200
  2748. +++ uClibc-git/extra/config/kconfig_load.c 1970-01-01 01:00:00.000000000 +0100
  2749. @@ -1,35 +0,0 @@
  2750. -#include <dlfcn.h>
  2751. -#include <stdio.h>
  2752. -#include <stdlib.h>
  2753. -
  2754. -#include "lkc.h"
  2755. -
  2756. -#define P(name,type,arg) type (*name ## _p) arg
  2757. -#include "lkc_proto.h"
  2758. -#undef P
  2759. -
  2760. -void kconfig_load(void)
  2761. -{
  2762. - void *handle;
  2763. - char *error;
  2764. -
  2765. - handle = dlopen("./libkconfig.so", RTLD_LAZY);
  2766. - if (!handle) {
  2767. - handle = dlopen("./scripts/kconfig/libkconfig.so", RTLD_LAZY);
  2768. - if (!handle) {
  2769. - fprintf(stderr, "%s\n", dlerror());
  2770. - exit(1);
  2771. - }
  2772. - }
  2773. -
  2774. -#define P(name,type,arg) \
  2775. -{ \
  2776. - name ## _p = dlsym(handle, #name); \
  2777. - if ((error = dlerror())) { \
  2778. - fprintf(stderr, "%s\n", error); \
  2779. - exit(1); \
  2780. - } \
  2781. -}
  2782. -#include "lkc_proto.h"
  2783. -#undef P
  2784. -}
  2785. Binärdateien uClibc-0.9.33.2/extra/config/kconfig-to-uclibc.patch.gz und uClibc-git/extra/config/kconfig-to-uclibc.patch.gz sind verschieden.
  2786. Binärdateien uClibc-0.9.33.2/extra/config/kconfig-to-uclibc.tar.gz und uClibc-git/extra/config/kconfig-to-uclibc.tar.gz sind verschieden.
  2787. diff -Nur uClibc-0.9.33.2/extra/config/kxgettext.c uClibc-git/extra/config/kxgettext.c
  2788. --- uClibc-0.9.33.2/extra/config/kxgettext.c 2012-05-15 09:20:09.000000000 +0200
  2789. +++ uClibc-git/extra/config/kxgettext.c 2014-06-02 17:40:33.726710391 +0200
  2790. @@ -7,7 +7,6 @@
  2791. #include <stdlib.h>
  2792. #include <string.h>
  2793. -#define LKC_DIRECT_LINK
  2794. #include "lkc.h"
  2795. static char *escape(const char* text, char *bf, int len)
  2796. @@ -43,6 +42,10 @@
  2797. ++text;
  2798. goto next;
  2799. }
  2800. + else if (*text == '\\') {
  2801. + *bfp++ = '\\';
  2802. + len--;
  2803. + }
  2804. *bfp++ = *text++;
  2805. next:
  2806. --len;
  2807. @@ -59,11 +62,11 @@
  2808. struct file_line {
  2809. struct file_line *next;
  2810. - char* file;
  2811. - int lineno;
  2812. + const char *file;
  2813. + int lineno;
  2814. };
  2815. -static struct file_line *file_line__new(char *file, int lineno)
  2816. +static struct file_line *file_line__new(const char *file, int lineno)
  2817. {
  2818. struct file_line *self = malloc(sizeof(*self));
  2819. @@ -86,7 +89,8 @@
  2820. static struct message *message__list;
  2821. -static struct message *message__new(const char *msg, char *option, char *file, int lineno)
  2822. +static struct message *message__new(const char *msg, char *option,
  2823. + const char *file, int lineno)
  2824. {
  2825. struct message *self = malloc(sizeof(*self));
  2826. @@ -126,7 +130,8 @@
  2827. return m;
  2828. }
  2829. -static int message__add_file_line(struct message *self, char *file, int lineno)
  2830. +static int message__add_file_line(struct message *self, const char *file,
  2831. + int lineno)
  2832. {
  2833. int rc = -1;
  2834. struct file_line *fl = file_line__new(file, lineno);
  2835. @@ -141,7 +146,8 @@
  2836. return rc;
  2837. }
  2838. -static int message__add(const char *msg, char *option, char *file, int lineno)
  2839. +static int message__add(const char *msg, char *option, const char *file,
  2840. + int lineno)
  2841. {
  2842. int rc = 0;
  2843. char bf[16384];
  2844. @@ -162,7 +168,7 @@
  2845. return rc;
  2846. }
  2847. -void menu_build_message_list(struct menu *menu)
  2848. +static void menu_build_message_list(struct menu *menu)
  2849. {
  2850. struct menu *child;
  2851. @@ -207,7 +213,7 @@
  2852. "msgstr \"\"\n", self->msg);
  2853. }
  2854. -void menu__xgettext(void)
  2855. +static void menu__xgettext(void)
  2856. {
  2857. struct message *m = message__list;
  2858. diff -Nur uClibc-0.9.33.2/extra/config/lex.zconf.c_shipped uClibc-git/extra/config/lex.zconf.c_shipped
  2859. --- uClibc-0.9.33.2/extra/config/lex.zconf.c_shipped 2012-05-15 09:20:09.000000000 +0200
  2860. +++ uClibc-git/extra/config/lex.zconf.c_shipped 1970-01-01 01:00:00.000000000 +0100
  2861. @@ -1,2416 +0,0 @@
  2862. -
  2863. -#line 3 "scripts/kconfig/lex.zconf.c"
  2864. -
  2865. -#define YY_INT_ALIGNED short int
  2866. -
  2867. -/* A lexical scanner generated by flex */
  2868. -
  2869. -#define yy_create_buffer zconf_create_buffer
  2870. -#define yy_delete_buffer zconf_delete_buffer
  2871. -#define yy_flex_debug zconf_flex_debug
  2872. -#define yy_init_buffer zconf_init_buffer
  2873. -#define yy_flush_buffer zconf_flush_buffer
  2874. -#define yy_load_buffer_state zconf_load_buffer_state
  2875. -#define yy_switch_to_buffer zconf_switch_to_buffer
  2876. -#define yyin zconfin
  2877. -#define yyleng zconfleng
  2878. -#define yylex zconflex
  2879. -#define yylineno zconflineno
  2880. -#define yyout zconfout
  2881. -#define yyrestart zconfrestart
  2882. -#define yytext zconftext
  2883. -#define yywrap zconfwrap
  2884. -#define yyalloc zconfalloc
  2885. -#define yyrealloc zconfrealloc
  2886. -#define yyfree zconffree
  2887. -
  2888. -#define FLEX_SCANNER
  2889. -#define YY_FLEX_MAJOR_VERSION 2
  2890. -#define YY_FLEX_MINOR_VERSION 5
  2891. -#define YY_FLEX_SUBMINOR_VERSION 35
  2892. -#if YY_FLEX_SUBMINOR_VERSION > 0
  2893. -#define FLEX_BETA
  2894. -#endif
  2895. -
  2896. -/* First, we deal with platform-specific or compiler-specific issues. */
  2897. -
  2898. -/* begin standard C headers. */
  2899. -#include <stdio.h>
  2900. -#include <string.h>
  2901. -#include <errno.h>
  2902. -#include <stdlib.h>
  2903. -
  2904. -/* end standard C headers. */
  2905. -
  2906. -/* flex integer type definitions */
  2907. -
  2908. -#ifndef FLEXINT_H
  2909. -#define FLEXINT_H
  2910. -
  2911. -/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
  2912. -
  2913. -#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
  2914. -
  2915. -/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
  2916. - * if you want the limit (max/min) macros for int types.
  2917. - */
  2918. -#ifndef __STDC_LIMIT_MACROS
  2919. -#define __STDC_LIMIT_MACROS 1
  2920. -#endif
  2921. -
  2922. -#include <inttypes.h>
  2923. -typedef int8_t flex_int8_t;
  2924. -typedef uint8_t flex_uint8_t;
  2925. -typedef int16_t flex_int16_t;
  2926. -typedef uint16_t flex_uint16_t;
  2927. -typedef int32_t flex_int32_t;
  2928. -typedef uint32_t flex_uint32_t;
  2929. -#else
  2930. -typedef signed char flex_int8_t;
  2931. -typedef short int flex_int16_t;
  2932. -typedef int flex_int32_t;
  2933. -typedef unsigned char flex_uint8_t;
  2934. -typedef unsigned short int flex_uint16_t;
  2935. -typedef unsigned int flex_uint32_t;
  2936. -
  2937. -/* Limits of integral types. */
  2938. -#ifndef INT8_MIN
  2939. -#define INT8_MIN (-128)
  2940. -#endif
  2941. -#ifndef INT16_MIN
  2942. -#define INT16_MIN (-32767-1)
  2943. -#endif
  2944. -#ifndef INT32_MIN
  2945. -#define INT32_MIN (-2147483647-1)
  2946. -#endif
  2947. -#ifndef INT8_MAX
  2948. -#define INT8_MAX (127)
  2949. -#endif
  2950. -#ifndef INT16_MAX
  2951. -#define INT16_MAX (32767)
  2952. -#endif
  2953. -#ifndef INT32_MAX
  2954. -#define INT32_MAX (2147483647)
  2955. -#endif
  2956. -#ifndef UINT8_MAX
  2957. -#define UINT8_MAX (255U)
  2958. -#endif
  2959. -#ifndef UINT16_MAX
  2960. -#define UINT16_MAX (65535U)
  2961. -#endif
  2962. -#ifndef UINT32_MAX
  2963. -#define UINT32_MAX (4294967295U)
  2964. -#endif
  2965. -
  2966. -#endif /* ! C99 */
  2967. -
  2968. -#endif /* ! FLEXINT_H */
  2969. -
  2970. -#ifdef __cplusplus
  2971. -
  2972. -/* The "const" storage-class-modifier is valid. */
  2973. -#define YY_USE_CONST
  2974. -
  2975. -#else /* ! __cplusplus */
  2976. -
  2977. -/* C99 requires __STDC__ to be defined as 1. */
  2978. -#if defined (__STDC__)
  2979. -
  2980. -#define YY_USE_CONST
  2981. -
  2982. -#endif /* defined (__STDC__) */
  2983. -#endif /* ! __cplusplus */
  2984. -
  2985. -#ifdef YY_USE_CONST
  2986. -#define yyconst const
  2987. -#else
  2988. -#define yyconst
  2989. -#endif
  2990. -
  2991. -/* Returned upon end-of-file. */
  2992. -#define YY_NULL 0
  2993. -
  2994. -/* Promotes a possibly negative, possibly signed char to an unsigned
  2995. - * integer for use as an array index. If the signed char is negative,
  2996. - * we want to instead treat it as an 8-bit unsigned char, hence the
  2997. - * double cast.
  2998. - */
  2999. -#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
  3000. -
  3001. -/* Enter a start condition. This macro really ought to take a parameter,
  3002. - * but we do it the disgusting crufty way forced on us by the ()-less
  3003. - * definition of BEGIN.
  3004. - */
  3005. -#define BEGIN (yy_start) = 1 + 2 *
  3006. -
  3007. -/* Translate the current start state into a value that can be later handed
  3008. - * to BEGIN to return to the state. The YYSTATE alias is for lex
  3009. - * compatibility.
  3010. - */
  3011. -#define YY_START (((yy_start) - 1) / 2)
  3012. -#define YYSTATE YY_START
  3013. -
  3014. -/* Action number for EOF rule of a given start state. */
  3015. -#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  3016. -
  3017. -/* Special action meaning "start processing a new file". */
  3018. -#define YY_NEW_FILE zconfrestart(zconfin )
  3019. -
  3020. -#define YY_END_OF_BUFFER_CHAR 0
  3021. -
  3022. -/* Size of default input buffer. */
  3023. -#ifndef YY_BUF_SIZE
  3024. -#define YY_BUF_SIZE 16384
  3025. -#endif
  3026. -
  3027. -/* The state buf must be large enough to hold one state per character in the main buffer.
  3028. - */
  3029. -#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
  3030. -
  3031. -#ifndef YY_TYPEDEF_YY_BUFFER_STATE
  3032. -#define YY_TYPEDEF_YY_BUFFER_STATE
  3033. -typedef struct yy_buffer_state *YY_BUFFER_STATE;
  3034. -#endif
  3035. -
  3036. -extern int zconfleng;
  3037. -
  3038. -extern FILE *zconfin, *zconfout;
  3039. -
  3040. -#define EOB_ACT_CONTINUE_SCAN 0
  3041. -#define EOB_ACT_END_OF_FILE 1
  3042. -#define EOB_ACT_LAST_MATCH 2
  3043. -
  3044. - #define YY_LESS_LINENO(n)
  3045. -
  3046. -/* Return all but the first "n" matched characters back to the input stream. */
  3047. -#define yyless(n) \
  3048. - do \
  3049. - { \
  3050. - /* Undo effects of setting up zconftext. */ \
  3051. - int yyless_macro_arg = (n); \
  3052. - YY_LESS_LINENO(yyless_macro_arg);\
  3053. - *yy_cp = (yy_hold_char); \
  3054. - YY_RESTORE_YY_MORE_OFFSET \
  3055. - (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
  3056. - YY_DO_BEFORE_ACTION; /* set up zconftext again */ \
  3057. - } \
  3058. - while ( 0 )
  3059. -
  3060. -#define unput(c) yyunput( c, (yytext_ptr) )
  3061. -
  3062. -#ifndef YY_TYPEDEF_YY_SIZE_T
  3063. -#define YY_TYPEDEF_YY_SIZE_T
  3064. -typedef size_t yy_size_t;
  3065. -#endif
  3066. -
  3067. -#ifndef YY_STRUCT_YY_BUFFER_STATE
  3068. -#define YY_STRUCT_YY_BUFFER_STATE
  3069. -struct yy_buffer_state
  3070. - {
  3071. - FILE *yy_input_file;
  3072. -
  3073. - char *yy_ch_buf; /* input buffer */
  3074. - char *yy_buf_pos; /* current position in input buffer */
  3075. -
  3076. - /* Size of input buffer in bytes, not including room for EOB
  3077. - * characters.
  3078. - */
  3079. - yy_size_t yy_buf_size;
  3080. -
  3081. - /* Number of characters read into yy_ch_buf, not including EOB
  3082. - * characters.
  3083. - */
  3084. - int yy_n_chars;
  3085. -
  3086. - /* Whether we "own" the buffer - i.e., we know we created it,
  3087. - * and can realloc() it to grow it, and should free() it to
  3088. - * delete it.
  3089. - */
  3090. - int yy_is_our_buffer;
  3091. -
  3092. - /* Whether this is an "interactive" input source; if so, and
  3093. - * if we're using stdio for input, then we want to use getc()
  3094. - * instead of fread(), to make sure we stop fetching input after
  3095. - * each newline.
  3096. - */
  3097. - int yy_is_interactive;
  3098. -
  3099. - /* Whether we're considered to be at the beginning of a line.
  3100. - * If so, '^' rules will be active on the next match, otherwise
  3101. - * not.
  3102. - */
  3103. - int yy_at_bol;
  3104. -
  3105. - int yy_bs_lineno; /**< The line count. */
  3106. - int yy_bs_column; /**< The column count. */
  3107. -
  3108. - /* Whether to try to fill the input buffer when we reach the
  3109. - * end of it.
  3110. - */
  3111. - int yy_fill_buffer;
  3112. -
  3113. - int yy_buffer_status;
  3114. -
  3115. -#define YY_BUFFER_NEW 0
  3116. -#define YY_BUFFER_NORMAL 1
  3117. - /* When an EOF's been seen but there's still some text to process
  3118. - * then we mark the buffer as YY_EOF_PENDING, to indicate that we
  3119. - * shouldn't try reading from the input source any more. We might
  3120. - * still have a bunch of tokens to match, though, because of
  3121. - * possible backing-up.
  3122. - *
  3123. - * When we actually see the EOF, we change the status to "new"
  3124. - * (via zconfrestart()), so that the user can continue scanning by
  3125. - * just pointing zconfin at a new input file.
  3126. - */
  3127. -#define YY_BUFFER_EOF_PENDING 2
  3128. -
  3129. - };
  3130. -#endif /* !YY_STRUCT_YY_BUFFER_STATE */
  3131. -
  3132. -/* Stack of input buffers. */
  3133. -static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
  3134. -static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
  3135. -static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
  3136. -
  3137. -/* We provide macros for accessing buffer states in case in the
  3138. - * future we want to put the buffer states in a more general
  3139. - * "scanner state".
  3140. - *
  3141. - * Returns the top of the stack, or NULL.
  3142. - */
  3143. -#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  3144. - ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  3145. - : NULL)
  3146. -
  3147. -/* Same as previous macro, but useful when we know that the buffer stack is not
  3148. - * NULL or when we need an lvalue. For internal use only.
  3149. - */
  3150. -#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  3151. -
  3152. -/* yy_hold_char holds the character lost when zconftext is formed. */
  3153. -static char yy_hold_char;
  3154. -static int yy_n_chars; /* number of characters read into yy_ch_buf */
  3155. -int zconfleng;
  3156. -
  3157. -/* Points to current character in buffer. */
  3158. -static char *yy_c_buf_p = (char *) 0;
  3159. -static int yy_init = 0; /* whether we need to initialize */
  3160. -static int yy_start = 0; /* start state number */
  3161. -
  3162. -/* Flag which is used to allow zconfwrap()'s to do buffer switches
  3163. - * instead of setting up a fresh zconfin. A bit of a hack ...
  3164. - */
  3165. -static int yy_did_buffer_switch_on_eof;
  3166. -
  3167. -void zconfrestart (FILE *input_file );
  3168. -void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer );
  3169. -YY_BUFFER_STATE zconf_create_buffer (FILE *file,int size );
  3170. -void zconf_delete_buffer (YY_BUFFER_STATE b );
  3171. -void zconf_flush_buffer (YY_BUFFER_STATE b );
  3172. -void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer );
  3173. -void zconfpop_buffer_state (void );
  3174. -
  3175. -static void zconfensure_buffer_stack (void );
  3176. -static void zconf_load_buffer_state (void );
  3177. -static void zconf_init_buffer (YY_BUFFER_STATE b,FILE *file );
  3178. -
  3179. -#define YY_FLUSH_BUFFER zconf_flush_buffer(YY_CURRENT_BUFFER )
  3180. -
  3181. -YY_BUFFER_STATE zconf_scan_buffer (char *base,yy_size_t size );
  3182. -YY_BUFFER_STATE zconf_scan_string (yyconst char *yy_str );
  3183. -YY_BUFFER_STATE zconf_scan_bytes (yyconst char *bytes,int len );
  3184. -
  3185. -void *zconfalloc (yy_size_t );
  3186. -void *zconfrealloc (void *,yy_size_t );
  3187. -void zconffree (void * );
  3188. -
  3189. -#define yy_new_buffer zconf_create_buffer
  3190. -
  3191. -#define yy_set_interactive(is_interactive) \
  3192. - { \
  3193. - if ( ! YY_CURRENT_BUFFER ){ \
  3194. - zconfensure_buffer_stack (); \
  3195. - YY_CURRENT_BUFFER_LVALUE = \
  3196. - zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
  3197. - } \
  3198. - YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
  3199. - }
  3200. -
  3201. -#define yy_set_bol(at_bol) \
  3202. - { \
  3203. - if ( ! YY_CURRENT_BUFFER ){\
  3204. - zconfensure_buffer_stack (); \
  3205. - YY_CURRENT_BUFFER_LVALUE = \
  3206. - zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
  3207. - } \
  3208. - YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
  3209. - }
  3210. -
  3211. -#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
  3212. -
  3213. -/* Begin user sect3 */
  3214. -
  3215. -#define zconfwrap(n) 1
  3216. -#define YY_SKIP_YYWRAP
  3217. -
  3218. -typedef unsigned char YY_CHAR;
  3219. -
  3220. -FILE *zconfin = (FILE *) 0, *zconfout = (FILE *) 0;
  3221. -
  3222. -typedef int yy_state_type;
  3223. -
  3224. -extern int zconflineno;
  3225. -
  3226. -int zconflineno = 1;
  3227. -
  3228. -extern char *zconftext;
  3229. -#define yytext_ptr zconftext
  3230. -static yyconst flex_int16_t yy_nxt[][17] =
  3231. - {
  3232. - {
  3233. - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3234. - 0, 0, 0, 0, 0, 0, 0
  3235. - },
  3236. -
  3237. - {
  3238. - 11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
  3239. - 12, 12, 12, 12, 12, 12, 12
  3240. - },
  3241. -
  3242. - {
  3243. - 11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
  3244. - 12, 12, 12, 12, 12, 12, 12
  3245. - },
  3246. -
  3247. - {
  3248. - 11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
  3249. - 16, 16, 16, 18, 16, 16, 16
  3250. - },
  3251. -
  3252. - {
  3253. - 11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
  3254. - 16, 16, 16, 18, 16, 16, 16
  3255. -
  3256. - },
  3257. -
  3258. - {
  3259. - 11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
  3260. - 19, 19, 19, 19, 19, 19, 19
  3261. - },
  3262. -
  3263. - {
  3264. - 11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
  3265. - 19, 19, 19, 19, 19, 19, 19
  3266. - },
  3267. -
  3268. - {
  3269. - 11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
  3270. - 22, 22, 22, 22, 22, 25, 22
  3271. - },
  3272. -
  3273. - {
  3274. - 11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
  3275. - 22, 22, 22, 22, 22, 25, 22
  3276. - },
  3277. -
  3278. - {
  3279. - 11, 26, 26, 27, 28, 29, 30, 31, 29, 32,
  3280. - 33, 34, 35, 35, 36, 37, 38
  3281. -
  3282. - },
  3283. -
  3284. - {
  3285. - 11, 26, 26, 27, 28, 29, 30, 31, 29, 32,
  3286. - 33, 34, 35, 35, 36, 37, 38
  3287. - },
  3288. -
  3289. - {
  3290. - -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
  3291. - -11, -11, -11, -11, -11, -11, -11
  3292. - },
  3293. -
  3294. - {
  3295. - 11, -12, -12, -12, -12, -12, -12, -12, -12, -12,
  3296. - -12, -12, -12, -12, -12, -12, -12
  3297. - },
  3298. -
  3299. - {
  3300. - 11, -13, 39, 40, -13, -13, 41, -13, -13, -13,
  3301. - -13, -13, -13, -13, -13, -13, -13
  3302. - },
  3303. -
  3304. - {
  3305. - 11, -14, -14, -14, -14, -14, -14, -14, -14, -14,
  3306. - -14, -14, -14, -14, -14, -14, -14
  3307. -
  3308. - },
  3309. -
  3310. - {
  3311. - 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
  3312. - 42, 42, 42, 42, 42, 42, 42
  3313. - },
  3314. -
  3315. - {
  3316. - 11, -16, -16, -16, -16, -16, -16, -16, -16, -16,
  3317. - -16, -16, -16, -16, -16, -16, -16
  3318. - },
  3319. -
  3320. - {
  3321. - 11, -17, -17, -17, -17, -17, -17, -17, -17, -17,
  3322. - -17, -17, -17, -17, -17, -17, -17
  3323. - },
  3324. -
  3325. - {
  3326. - 11, -18, -18, -18, -18, -18, -18, -18, -18, -18,
  3327. - -18, -18, -18, 44, -18, -18, -18
  3328. - },
  3329. -
  3330. - {
  3331. - 11, 45, 45, -19, 45, 45, 45, 45, 45, 45,
  3332. - 45, 45, 45, 45, 45, 45, 45
  3333. -
  3334. - },
  3335. -
  3336. - {
  3337. - 11, -20, 46, 47, -20, -20, -20, -20, -20, -20,
  3338. - -20, -20, -20, -20, -20, -20, -20
  3339. - },
  3340. -
  3341. - {
  3342. - 11, 48, -21, -21, 48, 48, 48, 48, 48, 48,
  3343. - 48, 48, 48, 48, 48, 48, 48
  3344. - },
  3345. -
  3346. - {
  3347. - 11, 49, 49, 50, 49, -22, 49, 49, -22, 49,
  3348. - 49, 49, 49, 49, 49, -22, 49
  3349. - },
  3350. -
  3351. - {
  3352. - 11, -23, -23, -23, -23, -23, -23, -23, -23, -23,
  3353. - -23, -23, -23, -23, -23, -23, -23
  3354. - },
  3355. -
  3356. - {
  3357. - 11, -24, -24, -24, -24, -24, -24, -24, -24, -24,
  3358. - -24, -24, -24, -24, -24, -24, -24
  3359. -
  3360. - },
  3361. -
  3362. - {
  3363. - 11, 51, 51, 52, 51, 51, 51, 51, 51, 51,
  3364. - 51, 51, 51, 51, 51, 51, 51
  3365. - },
  3366. -
  3367. - {
  3368. - 11, -26, -26, -26, -26, -26, -26, -26, -26, -26,
  3369. - -26, -26, -26, -26, -26, -26, -26
  3370. - },
  3371. -
  3372. - {
  3373. - 11, -27, -27, -27, -27, -27, -27, -27, -27, -27,
  3374. - -27, -27, -27, -27, -27, -27, -27
  3375. - },
  3376. -
  3377. - {
  3378. - 11, -28, -28, -28, -28, -28, -28, -28, -28, -28,
  3379. - -28, -28, -28, -28, 53, -28, -28
  3380. - },
  3381. -
  3382. - {
  3383. - 11, -29, -29, -29, -29, -29, -29, -29, -29, -29,
  3384. - -29, -29, -29, -29, -29, -29, -29
  3385. -
  3386. - },
  3387. -
  3388. - {
  3389. - 11, 54, 54, -30, 54, 54, 54, 54, 54, 54,
  3390. - 54, 54, 54, 54, 54, 54, 54
  3391. - },
  3392. -
  3393. - {
  3394. - 11, -31, -31, -31, -31, -31, -31, 55, -31, -31,
  3395. - -31, -31, -31, -31, -31, -31, -31
  3396. - },
  3397. -
  3398. - {
  3399. - 11, -32, -32, -32, -32, -32, -32, -32, -32, -32,
  3400. - -32, -32, -32, -32, -32, -32, -32
  3401. - },
  3402. -
  3403. - {
  3404. - 11, -33, -33, -33, -33, -33, -33, -33, -33, -33,
  3405. - -33, -33, -33, -33, -33, -33, -33
  3406. - },
  3407. -
  3408. - {
  3409. - 11, -34, -34, -34, -34, -34, -34, -34, -34, -34,
  3410. - -34, 56, 57, 57, -34, -34, -34
  3411. -
  3412. - },
  3413. -
  3414. - {
  3415. - 11, -35, -35, -35, -35, -35, -35, -35, -35, -35,
  3416. - -35, 57, 57, 57, -35, -35, -35
  3417. - },
  3418. -
  3419. - {
  3420. - 11, -36, -36, -36, -36, -36, -36, -36, -36, -36,
  3421. - -36, -36, -36, -36, -36, -36, -36
  3422. - },
  3423. -
  3424. - {
  3425. - 11, -37, -37, 58, -37, -37, -37, -37, -37, -37,
  3426. - -37, -37, -37, -37, -37, -37, -37
  3427. - },
  3428. -
  3429. - {
  3430. - 11, -38, -38, -38, -38, -38, -38, -38, -38, -38,
  3431. - -38, -38, -38, -38, -38, -38, 59
  3432. - },
  3433. -
  3434. - {
  3435. - 11, -39, 39, 40, -39, -39, 41, -39, -39, -39,
  3436. - -39, -39, -39, -39, -39, -39, -39
  3437. -
  3438. - },
  3439. -
  3440. - {
  3441. - 11, -40, -40, -40, -40, -40, -40, -40, -40, -40,
  3442. - -40, -40, -40, -40, -40, -40, -40
  3443. - },
  3444. -
  3445. - {
  3446. - 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
  3447. - 42, 42, 42, 42, 42, 42, 42
  3448. - },
  3449. -
  3450. - {
  3451. - 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
  3452. - 42, 42, 42, 42, 42, 42, 42
  3453. - },
  3454. -
  3455. - {
  3456. - 11, -43, -43, -43, -43, -43, -43, -43, -43, -43,
  3457. - -43, -43, -43, -43, -43, -43, -43
  3458. - },
  3459. -
  3460. - {
  3461. - 11, -44, -44, -44, -44, -44, -44, -44, -44, -44,
  3462. - -44, -44, -44, 44, -44, -44, -44
  3463. -
  3464. - },
  3465. -
  3466. - {
  3467. - 11, 45, 45, -45, 45, 45, 45, 45, 45, 45,
  3468. - 45, 45, 45, 45, 45, 45, 45
  3469. - },
  3470. -
  3471. - {
  3472. - 11, -46, 46, 47, -46, -46, -46, -46, -46, -46,
  3473. - -46, -46, -46, -46, -46, -46, -46
  3474. - },
  3475. -
  3476. - {
  3477. - 11, 48, -47, -47, 48, 48, 48, 48, 48, 48,
  3478. - 48, 48, 48, 48, 48, 48, 48
  3479. - },
  3480. -
  3481. - {
  3482. - 11, -48, -48, -48, -48, -48, -48, -48, -48, -48,
  3483. - -48, -48, -48, -48, -48, -48, -48
  3484. - },
  3485. -
  3486. - {
  3487. - 11, 49, 49, 50, 49, -49, 49, 49, -49, 49,
  3488. - 49, 49, 49, 49, 49, -49, 49
  3489. -
  3490. - },
  3491. -
  3492. - {
  3493. - 11, -50, -50, -50, -50, -50, -50, -50, -50, -50,
  3494. - -50, -50, -50, -50, -50, -50, -50
  3495. - },
  3496. -
  3497. - {
  3498. - 11, -51, -51, 52, -51, -51, -51, -51, -51, -51,
  3499. - -51, -51, -51, -51, -51, -51, -51
  3500. - },
  3501. -
  3502. - {
  3503. - 11, -52, -52, -52, -52, -52, -52, -52, -52, -52,
  3504. - -52, -52, -52, -52, -52, -52, -52
  3505. - },
  3506. -
  3507. - {
  3508. - 11, -53, -53, -53, -53, -53, -53, -53, -53, -53,
  3509. - -53, -53, -53, -53, -53, -53, -53
  3510. - },
  3511. -
  3512. - {
  3513. - 11, 54, 54, -54, 54, 54, 54, 54, 54, 54,
  3514. - 54, 54, 54, 54, 54, 54, 54
  3515. -
  3516. - },
  3517. -
  3518. - {
  3519. - 11, -55, -55, -55, -55, -55, -55, -55, -55, -55,
  3520. - -55, -55, -55, -55, -55, -55, -55
  3521. - },
  3522. -
  3523. - {
  3524. - 11, -56, -56, -56, -56, -56, -56, -56, -56, -56,
  3525. - -56, 60, 57, 57, -56, -56, -56
  3526. - },
  3527. -
  3528. - {
  3529. - 11, -57, -57, -57, -57, -57, -57, -57, -57, -57,
  3530. - -57, 57, 57, 57, -57, -57, -57
  3531. - },
  3532. -
  3533. - {
  3534. - 11, -58, -58, -58, -58, -58, -58, -58, -58, -58,
  3535. - -58, -58, -58, -58, -58, -58, -58
  3536. - },
  3537. -
  3538. - {
  3539. - 11, -59, -59, -59, -59, -59, -59, -59, -59, -59,
  3540. - -59, -59, -59, -59, -59, -59, -59
  3541. -
  3542. - },
  3543. -
  3544. - {
  3545. - 11, -60, -60, -60, -60, -60, -60, -60, -60, -60,
  3546. - -60, 57, 57, 57, -60, -60, -60
  3547. - },
  3548. -
  3549. - } ;
  3550. -
  3551. -static yy_state_type yy_get_previous_state (void );
  3552. -static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
  3553. -static int yy_get_next_buffer (void );
  3554. -static void yy_fatal_error (yyconst char msg[] );
  3555. -
  3556. -/* Done after the current pattern has been matched and before the
  3557. - * corresponding action - sets up zconftext.
  3558. - */
  3559. -#define YY_DO_BEFORE_ACTION \
  3560. - (yytext_ptr) = yy_bp; \
  3561. - zconfleng = (size_t) (yy_cp - yy_bp); \
  3562. - (yy_hold_char) = *yy_cp; \
  3563. - *yy_cp = '\0'; \
  3564. - (yy_c_buf_p) = yy_cp;
  3565. -
  3566. -#define YY_NUM_RULES 33
  3567. -#define YY_END_OF_BUFFER 34
  3568. -/* This struct is not used in this scanner,
  3569. - but its presence is necessary. */
  3570. -struct yy_trans_info
  3571. - {
  3572. - flex_int32_t yy_verify;
  3573. - flex_int32_t yy_nxt;
  3574. - };
  3575. -static yyconst flex_int16_t yy_accept[61] =
  3576. - { 0,
  3577. - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  3578. - 34, 5, 4, 2, 3, 7, 8, 6, 32, 29,
  3579. - 31, 24, 28, 27, 26, 22, 17, 13, 16, 20,
  3580. - 22, 11, 12, 19, 19, 14, 22, 22, 4, 2,
  3581. - 3, 3, 1, 6, 32, 29, 31, 30, 24, 23,
  3582. - 26, 25, 15, 20, 9, 19, 19, 21, 10, 18
  3583. - } ;
  3584. -
  3585. -static yyconst flex_int32_t yy_ec[256] =
  3586. - { 0,
  3587. - 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
  3588. - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3589. - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3590. - 1, 2, 4, 5, 6, 1, 1, 7, 8, 9,
  3591. - 10, 1, 1, 1, 11, 12, 12, 13, 13, 13,
  3592. - 13, 13, 13, 13, 13, 13, 13, 1, 1, 1,
  3593. - 14, 1, 1, 1, 13, 13, 13, 13, 13, 13,
  3594. - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
  3595. - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
  3596. - 1, 15, 1, 1, 13, 1, 13, 13, 13, 13,
  3597. -
  3598. - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
  3599. - 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
  3600. - 13, 13, 1, 16, 1, 1, 1, 1, 1, 1,
  3601. - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3602. - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3603. - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3604. - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3605. - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3606. - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3607. - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3608. -
  3609. - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3610. - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3611. - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3612. - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3613. - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  3614. - 1, 1, 1, 1, 1
  3615. - } ;
  3616. -
  3617. -extern int zconf_flex_debug;
  3618. -int zconf_flex_debug = 0;
  3619. -
  3620. -/* The intent behind this definition is that it'll catch
  3621. - * any uses of REJECT which flex missed.
  3622. - */
  3623. -#define REJECT reject_used_but_not_detected
  3624. -#define yymore() yymore_used_but_not_detected
  3625. -#define YY_MORE_ADJ 0
  3626. -#define YY_RESTORE_YY_MORE_OFFSET
  3627. -char *zconftext;
  3628. -#define YY_NO_INPUT 1
  3629. -
  3630. -/*
  3631. - * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
  3632. - * Released under the terms of the GNU GPL v2.0.
  3633. - */
  3634. -
  3635. -#include <limits.h>
  3636. -#include <stdio.h>
  3637. -#include <stdlib.h>
  3638. -#include <string.h>
  3639. -#include <unistd.h>
  3640. -
  3641. -#define LKC_DIRECT_LINK
  3642. -#include "lkc.h"
  3643. -
  3644. -#define START_STRSIZE 16
  3645. -
  3646. -static struct {
  3647. - struct file *file;
  3648. - int lineno;
  3649. -} current_pos;
  3650. -
  3651. -static char *text;
  3652. -static int text_size, text_asize;
  3653. -
  3654. -struct buffer {
  3655. - struct buffer *parent;
  3656. - YY_BUFFER_STATE state;
  3657. -};
  3658. -
  3659. -struct buffer *current_buf;
  3660. -
  3661. -static int last_ts, first_ts;
  3662. -
  3663. -static void zconf_endhelp(void);
  3664. -static void zconf_endfile(void);
  3665. -
  3666. -void new_string(void)
  3667. -{
  3668. - text = malloc(START_STRSIZE);
  3669. - text_asize = START_STRSIZE;
  3670. - text_size = 0;
  3671. - *text = 0;
  3672. -}
  3673. -
  3674. -void append_string(const char *str, int size)
  3675. -{
  3676. - int new_size = text_size + size + 1;
  3677. - if (new_size > text_asize) {
  3678. - new_size += START_STRSIZE - 1;
  3679. - new_size &= -START_STRSIZE;
  3680. - text = realloc(text, new_size);
  3681. - text_asize = new_size;
  3682. - }
  3683. - memcpy(text + text_size, str, size);
  3684. - text_size += size;
  3685. - text[text_size] = 0;
  3686. -}
  3687. -
  3688. -void alloc_string(const char *str, int size)
  3689. -{
  3690. - text = malloc(size + 1);
  3691. - memcpy(text, str, size);
  3692. - text[size] = 0;
  3693. -}
  3694. -
  3695. -#define INITIAL 0
  3696. -#define COMMAND 1
  3697. -#define HELP 2
  3698. -#define STRING 3
  3699. -#define PARAM 4
  3700. -
  3701. -#ifndef YY_NO_UNISTD_H
  3702. -/* Special case for "unistd.h", since it is non-ANSI. We include it way
  3703. - * down here because we want the user's section 1 to have been scanned first.
  3704. - * The user has a chance to override it with an option.
  3705. - */
  3706. -#include <unistd.h>
  3707. -#endif
  3708. -
  3709. -#ifndef YY_EXTRA_TYPE
  3710. -#define YY_EXTRA_TYPE void *
  3711. -#endif
  3712. -
  3713. -static int yy_init_globals (void );
  3714. -
  3715. -/* Accessor methods to globals.
  3716. - These are made visible to non-reentrant scanners for convenience. */
  3717. -
  3718. -int zconflex_destroy (void );
  3719. -
  3720. -int zconfget_debug (void );
  3721. -
  3722. -void zconfset_debug (int debug_flag );
  3723. -
  3724. -YY_EXTRA_TYPE zconfget_extra (void );
  3725. -
  3726. -void zconfset_extra (YY_EXTRA_TYPE user_defined );
  3727. -
  3728. -FILE *zconfget_in (void );
  3729. -
  3730. -void zconfset_in (FILE * in_str );
  3731. -
  3732. -FILE *zconfget_out (void );
  3733. -
  3734. -void zconfset_out (FILE * out_str );
  3735. -
  3736. -int zconfget_leng (void );
  3737. -
  3738. -char *zconfget_text (void );
  3739. -
  3740. -int zconfget_lineno (void );
  3741. -
  3742. -void zconfset_lineno (int line_number );
  3743. -
  3744. -/* Macros after this point can all be overridden by user definitions in
  3745. - * section 1.
  3746. - */
  3747. -
  3748. -#ifndef YY_SKIP_YYWRAP
  3749. -#ifdef __cplusplus
  3750. -extern "C" int zconfwrap (void );
  3751. -#else
  3752. -extern int zconfwrap (void );
  3753. -#endif
  3754. -#endif
  3755. -
  3756. - static void yyunput (int c,char *buf_ptr );
  3757. -
  3758. -#ifndef yytext_ptr
  3759. -static void yy_flex_strncpy (char *,yyconst char *,int );
  3760. -#endif
  3761. -
  3762. -#ifdef YY_NEED_STRLEN
  3763. -static int yy_flex_strlen (yyconst char * );
  3764. -#endif
  3765. -
  3766. -#ifndef YY_NO_INPUT
  3767. -
  3768. -#ifdef __cplusplus
  3769. -static int yyinput (void );
  3770. -#else
  3771. -static int input (void );
  3772. -#endif
  3773. -
  3774. -#endif
  3775. -
  3776. -/* Amount of stuff to slurp up with each read. */
  3777. -#ifndef YY_READ_BUF_SIZE
  3778. -#define YY_READ_BUF_SIZE 8192
  3779. -#endif
  3780. -
  3781. -/* Copy whatever the last rule matched to the standard output. */
  3782. -#ifndef ECHO
  3783. -/* This used to be an fputs(), but since the string might contain NUL's,
  3784. - * we now use fwrite().
  3785. - */
  3786. -#define ECHO fwrite( zconftext, zconfleng, 1, zconfout )
  3787. -#endif
  3788. -
  3789. -/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
  3790. - * is returned in "result".
  3791. - */
  3792. -#ifndef YY_INPUT
  3793. -#define YY_INPUT(buf,result,max_size) \
  3794. - errno=0; \
  3795. - while ( (result = read( fileno(zconfin), (char *) buf, max_size )) < 0 ) \
  3796. - { \
  3797. - if( errno != EINTR) \
  3798. - { \
  3799. - YY_FATAL_ERROR( "input in flex scanner failed" ); \
  3800. - break; \
  3801. - } \
  3802. - errno=0; \
  3803. - clearerr(zconfin); \
  3804. - }\
  3805. -\
  3806. -
  3807. -#endif
  3808. -
  3809. -/* No semi-colon after return; correct usage is to write "yyterminate();" -
  3810. - * we don't want an extra ';' after the "return" because that will cause
  3811. - * some compilers to complain about unreachable statements.
  3812. - */
  3813. -#ifndef yyterminate
  3814. -#define yyterminate() return YY_NULL
  3815. -#endif
  3816. -
  3817. -/* Number of entries by which start-condition stack grows. */
  3818. -#ifndef YY_START_STACK_INCR
  3819. -#define YY_START_STACK_INCR 25
  3820. -#endif
  3821. -
  3822. -/* Report a fatal error. */
  3823. -#ifndef YY_FATAL_ERROR
  3824. -#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  3825. -#endif
  3826. -
  3827. -/* end tables serialization structures and prototypes */
  3828. -
  3829. -/* Default declaration of generated scanner - a define so the user can
  3830. - * easily add parameters.
  3831. - */
  3832. -#ifndef YY_DECL
  3833. -#define YY_DECL_IS_OURS 1
  3834. -
  3835. -extern int zconflex (void);
  3836. -
  3837. -#define YY_DECL int zconflex (void)
  3838. -#endif /* !YY_DECL */
  3839. -
  3840. -/* Code executed at the beginning of each rule, after zconftext and zconfleng
  3841. - * have been set up.
  3842. - */
  3843. -#ifndef YY_USER_ACTION
  3844. -#define YY_USER_ACTION
  3845. -#endif
  3846. -
  3847. -/* Code executed at the end of each rule. */
  3848. -#ifndef YY_BREAK
  3849. -#define YY_BREAK break;
  3850. -#endif
  3851. -
  3852. -#define YY_RULE_SETUP \
  3853. - YY_USER_ACTION
  3854. -
  3855. -/** The main scanner function which does all the work.
  3856. - */
  3857. -YY_DECL
  3858. -{
  3859. - register yy_state_type yy_current_state;
  3860. - register char *yy_cp, *yy_bp;
  3861. - register int yy_act;
  3862. -
  3863. - int str = 0;
  3864. - int ts, i;
  3865. -
  3866. - if ( !(yy_init) )
  3867. - {
  3868. - (yy_init) = 1;
  3869. -
  3870. -#ifdef YY_USER_INIT
  3871. - YY_USER_INIT;
  3872. -#endif
  3873. -
  3874. - if ( ! (yy_start) )
  3875. - (yy_start) = 1; /* first start state */
  3876. -
  3877. - if ( ! zconfin )
  3878. - zconfin = stdin;
  3879. -
  3880. - if ( ! zconfout )
  3881. - zconfout = stdout;
  3882. -
  3883. - if ( ! YY_CURRENT_BUFFER ) {
  3884. - zconfensure_buffer_stack ();
  3885. - YY_CURRENT_BUFFER_LVALUE =
  3886. - zconf_create_buffer(zconfin,YY_BUF_SIZE );
  3887. - }
  3888. -
  3889. - zconf_load_buffer_state( );
  3890. - }
  3891. -
  3892. - while ( 1 ) /* loops until end-of-file is reached */
  3893. - {
  3894. - yy_cp = (yy_c_buf_p);
  3895. -
  3896. - /* Support of zconftext. */
  3897. - *yy_cp = (yy_hold_char);
  3898. -
  3899. - /* yy_bp points to the position in yy_ch_buf of the start of
  3900. - * the current run.
  3901. - */
  3902. - yy_bp = yy_cp;
  3903. -
  3904. - yy_current_state = (yy_start);
  3905. -yy_match:
  3906. - while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)] ]) > 0 )
  3907. - ++yy_cp;
  3908. -
  3909. - yy_current_state = -yy_current_state;
  3910. -
  3911. -yy_find_action:
  3912. - yy_act = yy_accept[yy_current_state];
  3913. -
  3914. - YY_DO_BEFORE_ACTION;
  3915. -
  3916. -do_action: /* This label is used only to access EOF actions. */
  3917. -
  3918. - switch ( yy_act )
  3919. - { /* beginning of action switch */
  3920. -case 1:
  3921. -/* rule 1 can match eol */
  3922. -case 2:
  3923. -/* rule 2 can match eol */
  3924. -YY_RULE_SETUP
  3925. -{
  3926. - current_file->lineno++;
  3927. - return T_EOL;
  3928. -}
  3929. - YY_BREAK
  3930. -case 3:
  3931. -YY_RULE_SETUP
  3932. -
  3933. - YY_BREAK
  3934. -case 4:
  3935. -YY_RULE_SETUP
  3936. -{
  3937. - BEGIN(COMMAND);
  3938. -}
  3939. - YY_BREAK
  3940. -case 5:
  3941. -YY_RULE_SETUP
  3942. -{
  3943. - unput(zconftext[0]);
  3944. - BEGIN(COMMAND);
  3945. -}
  3946. - YY_BREAK
  3947. -
  3948. -case 6:
  3949. -YY_RULE_SETUP
  3950. -{
  3951. - struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
  3952. - BEGIN(PARAM);
  3953. - current_pos.file = current_file;
  3954. - current_pos.lineno = current_file->lineno;
  3955. - if (id && id->flags & TF_COMMAND) {
  3956. - zconflval.id = id;
  3957. - return id->token;
  3958. - }
  3959. - alloc_string(zconftext, zconfleng);
  3960. - zconflval.string = text;
  3961. - return T_WORD;
  3962. - }
  3963. - YY_BREAK
  3964. -case 7:
  3965. -YY_RULE_SETUP
  3966. -
  3967. - YY_BREAK
  3968. -case 8:
  3969. -/* rule 8 can match eol */
  3970. -YY_RULE_SETUP
  3971. -{
  3972. - BEGIN(INITIAL);
  3973. - current_file->lineno++;
  3974. - return T_EOL;
  3975. - }
  3976. - YY_BREAK
  3977. -
  3978. -case 9:
  3979. -YY_RULE_SETUP
  3980. -return T_AND;
  3981. - YY_BREAK
  3982. -case 10:
  3983. -YY_RULE_SETUP
  3984. -return T_OR;
  3985. - YY_BREAK
  3986. -case 11:
  3987. -YY_RULE_SETUP
  3988. -return T_OPEN_PAREN;
  3989. - YY_BREAK
  3990. -case 12:
  3991. -YY_RULE_SETUP
  3992. -return T_CLOSE_PAREN;
  3993. - YY_BREAK
  3994. -case 13:
  3995. -YY_RULE_SETUP
  3996. -return T_NOT;
  3997. - YY_BREAK
  3998. -case 14:
  3999. -YY_RULE_SETUP
  4000. -return T_EQUAL;
  4001. - YY_BREAK
  4002. -case 15:
  4003. -YY_RULE_SETUP
  4004. -return T_UNEQUAL;
  4005. - YY_BREAK
  4006. -case 16:
  4007. -YY_RULE_SETUP
  4008. -{
  4009. - str = zconftext[0];
  4010. - new_string();
  4011. - BEGIN(STRING);
  4012. - }
  4013. - YY_BREAK
  4014. -case 17:
  4015. -/* rule 17 can match eol */
  4016. -YY_RULE_SETUP
  4017. -BEGIN(INITIAL); current_file->lineno++; return T_EOL;
  4018. - YY_BREAK
  4019. -case 18:
  4020. -YY_RULE_SETUP
  4021. -/* ignore */
  4022. - YY_BREAK
  4023. -case 19:
  4024. -YY_RULE_SETUP
  4025. -{
  4026. - struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
  4027. - if (id && id->flags & TF_PARAM) {
  4028. - zconflval.id = id;
  4029. - return id->token;
  4030. - }
  4031. - alloc_string(zconftext, zconfleng);
  4032. - zconflval.string = text;
  4033. - return T_WORD;
  4034. - }
  4035. - YY_BREAK
  4036. -case 20:
  4037. -YY_RULE_SETUP
  4038. -/* comment */
  4039. - YY_BREAK
  4040. -case 21:
  4041. -/* rule 21 can match eol */
  4042. -YY_RULE_SETUP
  4043. -current_file->lineno++;
  4044. - YY_BREAK
  4045. -case 22:
  4046. -YY_RULE_SETUP
  4047. -
  4048. - YY_BREAK
  4049. -case YY_STATE_EOF(PARAM):
  4050. -{
  4051. - BEGIN(INITIAL);
  4052. - }
  4053. - YY_BREAK
  4054. -
  4055. -case 23:
  4056. -/* rule 23 can match eol */
  4057. -*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
  4058. -(yy_c_buf_p) = yy_cp -= 1;
  4059. -YY_DO_BEFORE_ACTION; /* set up zconftext again */
  4060. -YY_RULE_SETUP
  4061. -{
  4062. - append_string(zconftext, zconfleng);
  4063. - zconflval.string = text;
  4064. - return T_WORD_QUOTE;
  4065. - }
  4066. - YY_BREAK
  4067. -case 24:
  4068. -YY_RULE_SETUP
  4069. -{
  4070. - append_string(zconftext, zconfleng);
  4071. - }
  4072. - YY_BREAK
  4073. -case 25:
  4074. -/* rule 25 can match eol */
  4075. -*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
  4076. -(yy_c_buf_p) = yy_cp -= 1;
  4077. -YY_DO_BEFORE_ACTION; /* set up zconftext again */
  4078. -YY_RULE_SETUP
  4079. -{
  4080. - append_string(zconftext + 1, zconfleng - 1);
  4081. - zconflval.string = text;
  4082. - return T_WORD_QUOTE;
  4083. - }
  4084. - YY_BREAK
  4085. -case 26:
  4086. -YY_RULE_SETUP
  4087. -{
  4088. - append_string(zconftext + 1, zconfleng - 1);
  4089. - }
  4090. - YY_BREAK
  4091. -case 27:
  4092. -YY_RULE_SETUP
  4093. -{
  4094. - if (str == zconftext[0]) {
  4095. - BEGIN(PARAM);
  4096. - zconflval.string = text;
  4097. - return T_WORD_QUOTE;
  4098. - } else
  4099. - append_string(zconftext, 1);
  4100. - }
  4101. - YY_BREAK
  4102. -case 28:
  4103. -/* rule 28 can match eol */
  4104. -YY_RULE_SETUP
  4105. -{
  4106. - printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
  4107. - current_file->lineno++;
  4108. - BEGIN(INITIAL);
  4109. - return T_EOL;
  4110. - }
  4111. - YY_BREAK
  4112. -case YY_STATE_EOF(STRING):
  4113. -{
  4114. - BEGIN(INITIAL);
  4115. - }
  4116. - YY_BREAK
  4117. -
  4118. -case 29:
  4119. -YY_RULE_SETUP
  4120. -{
  4121. - ts = 0;
  4122. - for (i = 0; i < zconfleng; i++) {
  4123. - if (zconftext[i] == '\t')
  4124. - ts = (ts & ~7) + 8;
  4125. - else
  4126. - ts++;
  4127. - }
  4128. - last_ts = ts;
  4129. - if (first_ts) {
  4130. - if (ts < first_ts) {
  4131. - zconf_endhelp();
  4132. - return T_HELPTEXT;
  4133. - }
  4134. - ts -= first_ts;
  4135. - while (ts > 8) {
  4136. - append_string(" ", 8);
  4137. - ts -= 8;
  4138. - }
  4139. - append_string(" ", ts);
  4140. - }
  4141. - }
  4142. - YY_BREAK
  4143. -case 30:
  4144. -/* rule 30 can match eol */
  4145. -*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
  4146. -(yy_c_buf_p) = yy_cp -= 1;
  4147. -YY_DO_BEFORE_ACTION; /* set up zconftext again */
  4148. -YY_RULE_SETUP
  4149. -{
  4150. - current_file->lineno++;
  4151. - zconf_endhelp();
  4152. - return T_HELPTEXT;
  4153. - }
  4154. - YY_BREAK
  4155. -case 31:
  4156. -/* rule 31 can match eol */
  4157. -YY_RULE_SETUP
  4158. -{
  4159. - current_file->lineno++;
  4160. - append_string("\n", 1);
  4161. - }
  4162. - YY_BREAK
  4163. -case 32:
  4164. -YY_RULE_SETUP
  4165. -{
  4166. - while (zconfleng) {
  4167. - if ((zconftext[zconfleng-1] != ' ') && (zconftext[zconfleng-1] != '\t'))
  4168. - break;
  4169. - zconfleng--;
  4170. - }
  4171. - append_string(zconftext, zconfleng);
  4172. - if (!first_ts)
  4173. - first_ts = last_ts;
  4174. - }
  4175. - YY_BREAK
  4176. -case YY_STATE_EOF(HELP):
  4177. -{
  4178. - zconf_endhelp();
  4179. - return T_HELPTEXT;
  4180. - }
  4181. - YY_BREAK
  4182. -
  4183. -case YY_STATE_EOF(INITIAL):
  4184. -case YY_STATE_EOF(COMMAND):
  4185. -{
  4186. - if (current_file) {
  4187. - zconf_endfile();
  4188. - return T_EOL;
  4189. - }
  4190. - fclose(zconfin);
  4191. - yyterminate();
  4192. -}
  4193. - YY_BREAK
  4194. -case 33:
  4195. -YY_RULE_SETUP
  4196. -YY_FATAL_ERROR( "flex scanner jammed" );
  4197. - YY_BREAK
  4198. -
  4199. - case YY_END_OF_BUFFER:
  4200. - {
  4201. - /* Amount of text matched not including the EOB char. */
  4202. - int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
  4203. -
  4204. - /* Undo the effects of YY_DO_BEFORE_ACTION. */
  4205. - *yy_cp = (yy_hold_char);
  4206. - YY_RESTORE_YY_MORE_OFFSET
  4207. -
  4208. - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
  4209. - {
  4210. - /* We're scanning a new file or input source. It's
  4211. - * possible that this happened because the user
  4212. - * just pointed zconfin at a new source and called
  4213. - * zconflex(). If so, then we have to assure
  4214. - * consistency between YY_CURRENT_BUFFER and our
  4215. - * globals. Here is the right place to do so, because
  4216. - * this is the first action (other than possibly a
  4217. - * back-up) that will match for the new input source.
  4218. - */
  4219. - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
  4220. - YY_CURRENT_BUFFER_LVALUE->yy_input_file = zconfin;
  4221. - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
  4222. - }
  4223. -
  4224. - /* Note that here we test for yy_c_buf_p "<=" to the position
  4225. - * of the first EOB in the buffer, since yy_c_buf_p will
  4226. - * already have been incremented past the NUL character
  4227. - * (since all states make transitions on EOB to the
  4228. - * end-of-buffer state). Contrast this with the test
  4229. - * in input().
  4230. - */
  4231. - if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
  4232. - { /* This was really a NUL. */
  4233. - yy_state_type yy_next_state;
  4234. -
  4235. - (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
  4236. -
  4237. - yy_current_state = yy_get_previous_state( );
  4238. -
  4239. - /* Okay, we're now positioned to make the NUL
  4240. - * transition. We couldn't have
  4241. - * yy_get_previous_state() go ahead and do it
  4242. - * for us because it doesn't know how to deal
  4243. - * with the possibility of jamming (and we don't
  4244. - * want to build jamming into it because then it
  4245. - * will run more slowly).
  4246. - */
  4247. -
  4248. - yy_next_state = yy_try_NUL_trans( yy_current_state );
  4249. -
  4250. - yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  4251. -
  4252. - if ( yy_next_state )
  4253. - {
  4254. - /* Consume the NUL. */
  4255. - yy_cp = ++(yy_c_buf_p);
  4256. - yy_current_state = yy_next_state;
  4257. - goto yy_match;
  4258. - }
  4259. -
  4260. - else
  4261. - {
  4262. - yy_cp = (yy_c_buf_p);
  4263. - goto yy_find_action;
  4264. - }
  4265. - }
  4266. -
  4267. - else switch ( yy_get_next_buffer( ) )
  4268. - {
  4269. - case EOB_ACT_END_OF_FILE:
  4270. - {
  4271. - (yy_did_buffer_switch_on_eof) = 0;
  4272. -
  4273. - if ( zconfwrap( ) )
  4274. - {
  4275. - /* Note: because we've taken care in
  4276. - * yy_get_next_buffer() to have set up
  4277. - * zconftext, we can now set up
  4278. - * yy_c_buf_p so that if some total
  4279. - * hoser (like flex itself) wants to
  4280. - * call the scanner after we return the
  4281. - * YY_NULL, it'll still work - another
  4282. - * YY_NULL will get returned.
  4283. - */
  4284. - (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
  4285. -
  4286. - yy_act = YY_STATE_EOF(YY_START);
  4287. - goto do_action;
  4288. - }
  4289. -
  4290. - else
  4291. - {
  4292. - if ( ! (yy_did_buffer_switch_on_eof) )
  4293. - YY_NEW_FILE;
  4294. - }
  4295. - break;
  4296. - }
  4297. -
  4298. - case EOB_ACT_CONTINUE_SCAN:
  4299. - (yy_c_buf_p) =
  4300. - (yytext_ptr) + yy_amount_of_matched_text;
  4301. -
  4302. - yy_current_state = yy_get_previous_state( );
  4303. -
  4304. - yy_cp = (yy_c_buf_p);
  4305. - yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  4306. - goto yy_match;
  4307. -
  4308. - case EOB_ACT_LAST_MATCH:
  4309. - (yy_c_buf_p) =
  4310. - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
  4311. -
  4312. - yy_current_state = yy_get_previous_state( );
  4313. -
  4314. - yy_cp = (yy_c_buf_p);
  4315. - yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  4316. - goto yy_find_action;
  4317. - }
  4318. - break;
  4319. - }
  4320. -
  4321. - default:
  4322. - YY_FATAL_ERROR(
  4323. - "fatal flex scanner internal error--no action found" );
  4324. - } /* end of action switch */
  4325. - } /* end of scanning one token */
  4326. -} /* end of zconflex */
  4327. -
  4328. -/* yy_get_next_buffer - try to read in a new buffer
  4329. - *
  4330. - * Returns a code representing an action:
  4331. - * EOB_ACT_LAST_MATCH -
  4332. - * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  4333. - * EOB_ACT_END_OF_FILE - end of file
  4334. - */
  4335. -static int yy_get_next_buffer (void)
  4336. -{
  4337. - register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
  4338. - register char *source = (yytext_ptr);
  4339. - register int number_to_move, i;
  4340. - int ret_val;
  4341. -
  4342. - if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
  4343. - YY_FATAL_ERROR(
  4344. - "fatal flex scanner internal error--end of buffer missed" );
  4345. -
  4346. - if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
  4347. - { /* Don't try to fill the buffer, so this is an EOF. */
  4348. - if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
  4349. - {
  4350. - /* We matched a single character, the EOB, so
  4351. - * treat this as a final EOF.
  4352. - */
  4353. - return EOB_ACT_END_OF_FILE;
  4354. - }
  4355. -
  4356. - else
  4357. - {
  4358. - /* We matched some text prior to the EOB, first
  4359. - * process it.
  4360. - */
  4361. - return EOB_ACT_LAST_MATCH;
  4362. - }
  4363. - }
  4364. -
  4365. - /* Try to read more data. */
  4366. -
  4367. - /* First move last chars to start of buffer. */
  4368. - number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
  4369. -
  4370. - for ( i = 0; i < number_to_move; ++i )
  4371. - *(dest++) = *(source++);
  4372. -
  4373. - if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  4374. - /* don't do the read, it's not guaranteed to return an EOF,
  4375. - * just force an EOF
  4376. - */
  4377. - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
  4378. -
  4379. - else
  4380. - {
  4381. - int num_to_read =
  4382. - YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
  4383. -
  4384. - while ( num_to_read <= 0 )
  4385. - { /* Not enough room in the buffer - grow it. */
  4386. -
  4387. - /* just a shorter name for the current buffer */
  4388. - YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
  4389. -
  4390. - int yy_c_buf_p_offset =
  4391. - (int) ((yy_c_buf_p) - b->yy_ch_buf);
  4392. -
  4393. - if ( b->yy_is_our_buffer )
  4394. - {
  4395. - int new_size = b->yy_buf_size * 2;
  4396. -
  4397. - if ( new_size <= 0 )
  4398. - b->yy_buf_size += b->yy_buf_size / 8;
  4399. - else
  4400. - b->yy_buf_size *= 2;
  4401. -
  4402. - b->yy_ch_buf = (char *)
  4403. - /* Include room in for 2 EOB chars. */
  4404. - zconfrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
  4405. - }
  4406. - else
  4407. - /* Can't grow it, we don't own it. */
  4408. - b->yy_ch_buf = 0;
  4409. -
  4410. - if ( ! b->yy_ch_buf )
  4411. - YY_FATAL_ERROR(
  4412. - "fatal error - scanner input buffer overflow" );
  4413. -
  4414. - (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
  4415. -
  4416. - num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
  4417. - number_to_move - 1;
  4418. -
  4419. - }
  4420. -
  4421. - if ( num_to_read > YY_READ_BUF_SIZE )
  4422. - num_to_read = YY_READ_BUF_SIZE;
  4423. -
  4424. - /* Read in more data. */
  4425. - YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
  4426. - (yy_n_chars), (size_t) num_to_read );
  4427. -
  4428. - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
  4429. - }
  4430. -
  4431. - if ( (yy_n_chars) == 0 )
  4432. - {
  4433. - if ( number_to_move == YY_MORE_ADJ )
  4434. - {
  4435. - ret_val = EOB_ACT_END_OF_FILE;
  4436. - zconfrestart(zconfin );
  4437. - }
  4438. -
  4439. - else
  4440. - {
  4441. - ret_val = EOB_ACT_LAST_MATCH;
  4442. - YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
  4443. - YY_BUFFER_EOF_PENDING;
  4444. - }
  4445. - }
  4446. -
  4447. - else
  4448. - ret_val = EOB_ACT_CONTINUE_SCAN;
  4449. -
  4450. - if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
  4451. - /* Extend the array by 50%, plus the number we really need. */
  4452. - yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
  4453. - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) zconfrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
  4454. - if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
  4455. - YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
  4456. - }
  4457. -
  4458. - (yy_n_chars) += number_to_move;
  4459. - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
  4460. - YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
  4461. -
  4462. - (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
  4463. -
  4464. - return ret_val;
  4465. -}
  4466. -
  4467. -/* yy_get_previous_state - get the state just before the EOB char was reached */
  4468. -
  4469. - static yy_state_type yy_get_previous_state (void)
  4470. -{
  4471. - register yy_state_type yy_current_state;
  4472. - register char *yy_cp;
  4473. -
  4474. - yy_current_state = (yy_start);
  4475. -
  4476. - for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
  4477. - {
  4478. - yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
  4479. - }
  4480. -
  4481. - return yy_current_state;
  4482. -}
  4483. -
  4484. -/* yy_try_NUL_trans - try to make a transition on the NUL character
  4485. - *
  4486. - * synopsis
  4487. - * next_state = yy_try_NUL_trans( current_state );
  4488. - */
  4489. - static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
  4490. -{
  4491. - register int yy_is_jam;
  4492. -
  4493. - yy_current_state = yy_nxt[yy_current_state][1];
  4494. - yy_is_jam = (yy_current_state <= 0);
  4495. -
  4496. - return yy_is_jam ? 0 : yy_current_state;
  4497. -}
  4498. -
  4499. - static void yyunput (int c, register char * yy_bp )
  4500. -{
  4501. - register char *yy_cp;
  4502. -
  4503. - yy_cp = (yy_c_buf_p);
  4504. -
  4505. - /* undo effects of setting up zconftext */
  4506. - *yy_cp = (yy_hold_char);
  4507. -
  4508. - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
  4509. - { /* need to shift things up to make room */
  4510. - /* +2 for EOB chars. */
  4511. - register int number_to_move = (yy_n_chars) + 2;
  4512. - register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
  4513. - YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
  4514. - register char *source =
  4515. - &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
  4516. -
  4517. - while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
  4518. - *--dest = *--source;
  4519. -
  4520. - yy_cp += (int) (dest - source);
  4521. - yy_bp += (int) (dest - source);
  4522. - YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
  4523. - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
  4524. -
  4525. - if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
  4526. - YY_FATAL_ERROR( "flex scanner push-back overflow" );
  4527. - }
  4528. -
  4529. - *--yy_cp = (char) c;
  4530. -
  4531. - (yytext_ptr) = yy_bp;
  4532. - (yy_hold_char) = *yy_cp;
  4533. - (yy_c_buf_p) = yy_cp;
  4534. -}
  4535. -
  4536. -#ifndef YY_NO_INPUT
  4537. -#ifdef __cplusplus
  4538. - static int yyinput (void)
  4539. -#else
  4540. - static int input (void)
  4541. -#endif
  4542. -
  4543. -{
  4544. - int c;
  4545. -
  4546. - *(yy_c_buf_p) = (yy_hold_char);
  4547. -
  4548. - if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
  4549. - {
  4550. - /* yy_c_buf_p now points to the character we want to return.
  4551. - * If this occurs *before* the EOB characters, then it's a
  4552. - * valid NUL; if not, then we've hit the end of the buffer.
  4553. - */
  4554. - if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
  4555. - /* This was really a NUL. */
  4556. - *(yy_c_buf_p) = '\0';
  4557. -
  4558. - else
  4559. - { /* need more input */
  4560. - int offset = (yy_c_buf_p) - (yytext_ptr);
  4561. - ++(yy_c_buf_p);
  4562. -
  4563. - switch ( yy_get_next_buffer( ) )
  4564. - {
  4565. - case EOB_ACT_LAST_MATCH:
  4566. - /* This happens because yy_g_n_b()
  4567. - * sees that we've accumulated a
  4568. - * token and flags that we need to
  4569. - * try matching the token before
  4570. - * proceeding. But for input(),
  4571. - * there's no matching to consider.
  4572. - * So convert the EOB_ACT_LAST_MATCH
  4573. - * to EOB_ACT_END_OF_FILE.
  4574. - */
  4575. -
  4576. - /* Reset buffer status. */
  4577. - zconfrestart(zconfin );
  4578. -
  4579. - /*FALLTHROUGH*/
  4580. -
  4581. - case EOB_ACT_END_OF_FILE:
  4582. - {
  4583. - if ( zconfwrap( ) )
  4584. - return EOF;
  4585. -
  4586. - if ( ! (yy_did_buffer_switch_on_eof) )
  4587. - YY_NEW_FILE;
  4588. -#ifdef __cplusplus
  4589. - return yyinput();
  4590. -#else
  4591. - return input();
  4592. -#endif
  4593. - }
  4594. -
  4595. - case EOB_ACT_CONTINUE_SCAN:
  4596. - (yy_c_buf_p) = (yytext_ptr) + offset;
  4597. - break;
  4598. - }
  4599. - }
  4600. - }
  4601. -
  4602. - c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
  4603. - *(yy_c_buf_p) = '\0'; /* preserve zconftext */
  4604. - (yy_hold_char) = *++(yy_c_buf_p);
  4605. -
  4606. - return c;
  4607. -}
  4608. -#endif /* ifndef YY_NO_INPUT */
  4609. -
  4610. -/** Immediately switch to a different input stream.
  4611. - * @param input_file A readable stream.
  4612. - *
  4613. - * @note This function does not reset the start condition to @c INITIAL .
  4614. - */
  4615. - void zconfrestart (FILE * input_file )
  4616. -{
  4617. -
  4618. - if ( ! YY_CURRENT_BUFFER ){
  4619. - zconfensure_buffer_stack ();
  4620. - YY_CURRENT_BUFFER_LVALUE =
  4621. - zconf_create_buffer(zconfin,YY_BUF_SIZE );
  4622. - }
  4623. -
  4624. - zconf_init_buffer(YY_CURRENT_BUFFER,input_file );
  4625. - zconf_load_buffer_state( );
  4626. -}
  4627. -
  4628. -/** Switch to a different input buffer.
  4629. - * @param new_buffer The new input buffer.
  4630. - *
  4631. - */
  4632. - void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer )
  4633. -{
  4634. -
  4635. - /* TODO. We should be able to replace this entire function body
  4636. - * with
  4637. - * zconfpop_buffer_state();
  4638. - * zconfpush_buffer_state(new_buffer);
  4639. - */
  4640. - zconfensure_buffer_stack ();
  4641. - if ( YY_CURRENT_BUFFER == new_buffer )
  4642. - return;
  4643. -
  4644. - if ( YY_CURRENT_BUFFER )
  4645. - {
  4646. - /* Flush out information for old buffer. */
  4647. - *(yy_c_buf_p) = (yy_hold_char);
  4648. - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
  4649. - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
  4650. - }
  4651. -
  4652. - YY_CURRENT_BUFFER_LVALUE = new_buffer;
  4653. - zconf_load_buffer_state( );
  4654. -
  4655. - /* We don't actually know whether we did this switch during
  4656. - * EOF (zconfwrap()) processing, but the only time this flag
  4657. - * is looked at is after zconfwrap() is called, so it's safe
  4658. - * to go ahead and always set it.
  4659. - */
  4660. - (yy_did_buffer_switch_on_eof) = 1;
  4661. -}
  4662. -
  4663. -static void zconf_load_buffer_state (void)
  4664. -{
  4665. - (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
  4666. - (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
  4667. - zconfin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
  4668. - (yy_hold_char) = *(yy_c_buf_p);
  4669. -}
  4670. -
  4671. -/** Allocate and initialize an input buffer state.
  4672. - * @param file A readable stream.
  4673. - * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
  4674. - *
  4675. - * @return the allocated buffer state.
  4676. - */
  4677. - YY_BUFFER_STATE zconf_create_buffer (FILE * file, int size )
  4678. -{
  4679. - YY_BUFFER_STATE b;
  4680. -
  4681. - b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) );
  4682. - if ( ! b )
  4683. - YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
  4684. -
  4685. - b->yy_buf_size = size;
  4686. -
  4687. - /* yy_ch_buf has to be 2 characters longer than the size given because
  4688. - * we need to put in 2 end-of-buffer characters.
  4689. - */
  4690. - b->yy_ch_buf = (char *) zconfalloc(b->yy_buf_size + 2 );
  4691. - if ( ! b->yy_ch_buf )
  4692. - YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
  4693. -
  4694. - b->yy_is_our_buffer = 1;
  4695. -
  4696. - zconf_init_buffer(b,file );
  4697. -
  4698. - return b;
  4699. -}
  4700. -
  4701. -/** Destroy the buffer.
  4702. - * @param b a buffer created with zconf_create_buffer()
  4703. - *
  4704. - */
  4705. - void zconf_delete_buffer (YY_BUFFER_STATE b )
  4706. -{
  4707. -
  4708. - if ( ! b )
  4709. - return;
  4710. -
  4711. - if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
  4712. - YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
  4713. -
  4714. - if ( b->yy_is_our_buffer )
  4715. - zconffree((void *) b->yy_ch_buf );
  4716. -
  4717. - zconffree((void *) b );
  4718. -}
  4719. -
  4720. -/* Initializes or reinitializes a buffer.
  4721. - * This function is sometimes called more than once on the same buffer,
  4722. - * such as during a zconfrestart() or at EOF.
  4723. - */
  4724. - static void zconf_init_buffer (YY_BUFFER_STATE b, FILE * file )
  4725. -
  4726. -{
  4727. - int oerrno = errno;
  4728. -
  4729. - zconf_flush_buffer(b );
  4730. -
  4731. - b->yy_input_file = file;
  4732. - b->yy_fill_buffer = 1;
  4733. -
  4734. - /* If b is the current buffer, then zconf_init_buffer was _probably_
  4735. - * called from zconfrestart() or through yy_get_next_buffer.
  4736. - * In that case, we don't want to reset the lineno or column.
  4737. - */
  4738. - if (b != YY_CURRENT_BUFFER){
  4739. - b->yy_bs_lineno = 1;
  4740. - b->yy_bs_column = 0;
  4741. - }
  4742. -
  4743. - b->yy_is_interactive = 0;
  4744. -
  4745. - errno = oerrno;
  4746. -}
  4747. -
  4748. -/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
  4749. - * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
  4750. - *
  4751. - */
  4752. - void zconf_flush_buffer (YY_BUFFER_STATE b )
  4753. -{
  4754. - if ( ! b )
  4755. - return;
  4756. -
  4757. - b->yy_n_chars = 0;
  4758. -
  4759. - /* We always need two end-of-buffer characters. The first causes
  4760. - * a transition to the end-of-buffer state. The second causes
  4761. - * a jam in that state.
  4762. - */
  4763. - b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
  4764. - b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  4765. -
  4766. - b->yy_buf_pos = &b->yy_ch_buf[0];
  4767. -
  4768. - b->yy_at_bol = 1;
  4769. - b->yy_buffer_status = YY_BUFFER_NEW;
  4770. -
  4771. - if ( b == YY_CURRENT_BUFFER )
  4772. - zconf_load_buffer_state( );
  4773. -}
  4774. -
  4775. -/** Pushes the new state onto the stack. The new state becomes
  4776. - * the current state. This function will allocate the stack
  4777. - * if necessary.
  4778. - * @param new_buffer The new state.
  4779. - *
  4780. - */
  4781. -void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer )
  4782. -{
  4783. - if (new_buffer == NULL)
  4784. - return;
  4785. -
  4786. - zconfensure_buffer_stack();
  4787. -
  4788. - /* This block is copied from zconf_switch_to_buffer. */
  4789. - if ( YY_CURRENT_BUFFER )
  4790. - {
  4791. - /* Flush out information for old buffer. */
  4792. - *(yy_c_buf_p) = (yy_hold_char);
  4793. - YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
  4794. - YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
  4795. - }
  4796. -
  4797. - /* Only push if top exists. Otherwise, replace top. */
  4798. - if (YY_CURRENT_BUFFER)
  4799. - (yy_buffer_stack_top)++;
  4800. - YY_CURRENT_BUFFER_LVALUE = new_buffer;
  4801. -
  4802. - /* copied from zconf_switch_to_buffer. */
  4803. - zconf_load_buffer_state( );
  4804. - (yy_did_buffer_switch_on_eof) = 1;
  4805. -}
  4806. -
  4807. -/** Removes and deletes the top of the stack, if present.
  4808. - * The next element becomes the new top.
  4809. - *
  4810. - */
  4811. -void zconfpop_buffer_state (void)
  4812. -{
  4813. - if (!YY_CURRENT_BUFFER)
  4814. - return;
  4815. -
  4816. - zconf_delete_buffer(YY_CURRENT_BUFFER );
  4817. - YY_CURRENT_BUFFER_LVALUE = NULL;
  4818. - if ((yy_buffer_stack_top) > 0)
  4819. - --(yy_buffer_stack_top);
  4820. -
  4821. - if (YY_CURRENT_BUFFER) {
  4822. - zconf_load_buffer_state( );
  4823. - (yy_did_buffer_switch_on_eof) = 1;
  4824. - }
  4825. -}
  4826. -
  4827. -/* Allocates the stack if it does not exist.
  4828. - * Guarantees space for at least one push.
  4829. - */
  4830. -static void zconfensure_buffer_stack (void)
  4831. -{
  4832. - int num_to_alloc;
  4833. -
  4834. - if (!(yy_buffer_stack)) {
  4835. -
  4836. - /* First allocation is just for 2 elements, since we don't know if this
  4837. - * scanner will even need a stack. We use 2 instead of 1 to avoid an
  4838. - * immediate realloc on the next call.
  4839. - */
  4840. - num_to_alloc = 1;
  4841. - (yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc
  4842. - (num_to_alloc * sizeof(struct yy_buffer_state*)
  4843. - );
  4844. - if ( ! (yy_buffer_stack) )
  4845. - YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
  4846. -
  4847. - memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
  4848. -
  4849. - (yy_buffer_stack_max) = num_to_alloc;
  4850. - (yy_buffer_stack_top) = 0;
  4851. - return;
  4852. - }
  4853. -
  4854. - if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
  4855. -
  4856. - /* Increase the buffer to prepare for a possible push. */
  4857. - int grow_size = 8 /* arbitrary grow size */;
  4858. -
  4859. - num_to_alloc = (yy_buffer_stack_max) + grow_size;
  4860. - (yy_buffer_stack) = (struct yy_buffer_state**)zconfrealloc
  4861. - ((yy_buffer_stack),
  4862. - num_to_alloc * sizeof(struct yy_buffer_state*)
  4863. - );
  4864. - if ( ! (yy_buffer_stack) )
  4865. - YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
  4866. -
  4867. - /* zero only the new slots.*/
  4868. - memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
  4869. - (yy_buffer_stack_max) = num_to_alloc;
  4870. - }
  4871. -}
  4872. -
  4873. -/** Setup the input buffer state to scan directly from a user-specified character buffer.
  4874. - * @param base the character buffer
  4875. - * @param size the size in bytes of the character buffer
  4876. - *
  4877. - * @return the newly allocated buffer state object.
  4878. - */
  4879. -YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size )
  4880. -{
  4881. - YY_BUFFER_STATE b;
  4882. -
  4883. - if ( size < 2 ||
  4884. - base[size-2] != YY_END_OF_BUFFER_CHAR ||
  4885. - base[size-1] != YY_END_OF_BUFFER_CHAR )
  4886. - /* They forgot to leave room for the EOB's. */
  4887. - return 0;
  4888. -
  4889. - b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) );
  4890. - if ( ! b )
  4891. - YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_buffer()" );
  4892. -
  4893. - b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
  4894. - b->yy_buf_pos = b->yy_ch_buf = base;
  4895. - b->yy_is_our_buffer = 0;
  4896. - b->yy_input_file = 0;
  4897. - b->yy_n_chars = b->yy_buf_size;
  4898. - b->yy_is_interactive = 0;
  4899. - b->yy_at_bol = 1;
  4900. - b->yy_fill_buffer = 0;
  4901. - b->yy_buffer_status = YY_BUFFER_NEW;
  4902. -
  4903. - zconf_switch_to_buffer(b );
  4904. -
  4905. - return b;
  4906. -}
  4907. -
  4908. -/** Setup the input buffer state to scan a string. The next call to zconflex() will
  4909. - * scan from a @e copy of @a str.
  4910. - * @param yystr a NUL-terminated string to scan
  4911. - *
  4912. - * @return the newly allocated buffer state object.
  4913. - * @note If you want to scan bytes that may contain NUL values, then use
  4914. - * zconf_scan_bytes() instead.
  4915. - */
  4916. -YY_BUFFER_STATE zconf_scan_string (yyconst char * yystr )
  4917. -{
  4918. -
  4919. - return zconf_scan_bytes(yystr,strlen(yystr) );
  4920. -}
  4921. -
  4922. -/** Setup the input buffer state to scan the given bytes. The next call to zconflex() will
  4923. - * scan from a @e copy of @a bytes.
  4924. - * @param bytes the byte buffer to scan
  4925. - * @param len the number of bytes in the buffer pointed to by @a bytes.
  4926. - *
  4927. - * @return the newly allocated buffer state object.
  4928. - */
  4929. -YY_BUFFER_STATE zconf_scan_bytes (yyconst char * yybytes, int _yybytes_len )
  4930. -{
  4931. - YY_BUFFER_STATE b;
  4932. - char *buf;
  4933. - yy_size_t n;
  4934. - int i;
  4935. -
  4936. - /* Get memory for full buffer, including space for trailing EOB's. */
  4937. - n = _yybytes_len + 2;
  4938. - buf = (char *) zconfalloc(n );
  4939. - if ( ! buf )
  4940. - YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_bytes()" );
  4941. -
  4942. - for ( i = 0; i < _yybytes_len; ++i )
  4943. - buf[i] = yybytes[i];
  4944. -
  4945. - buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
  4946. -
  4947. - b = zconf_scan_buffer(buf,n );
  4948. - if ( ! b )
  4949. - YY_FATAL_ERROR( "bad buffer in zconf_scan_bytes()" );
  4950. -
  4951. - /* It's okay to grow etc. this buffer, and we should throw it
  4952. - * away when we're done.
  4953. - */
  4954. - b->yy_is_our_buffer = 1;
  4955. -
  4956. - return b;
  4957. -}
  4958. -
  4959. -#ifndef YY_EXIT_FAILURE
  4960. -#define YY_EXIT_FAILURE 2
  4961. -#endif
  4962. -
  4963. -static void yy_fatal_error (yyconst char* msg )
  4964. -{
  4965. - (void) fprintf( stderr, "%s\n", msg );
  4966. - exit( YY_EXIT_FAILURE );
  4967. -}
  4968. -
  4969. -/* Redefine yyless() so it works in section 3 code. */
  4970. -
  4971. -#undef yyless
  4972. -#define yyless(n) \
  4973. - do \
  4974. - { \
  4975. - /* Undo effects of setting up zconftext. */ \
  4976. - int yyless_macro_arg = (n); \
  4977. - YY_LESS_LINENO(yyless_macro_arg);\
  4978. - zconftext[zconfleng] = (yy_hold_char); \
  4979. - (yy_c_buf_p) = zconftext + yyless_macro_arg; \
  4980. - (yy_hold_char) = *(yy_c_buf_p); \
  4981. - *(yy_c_buf_p) = '\0'; \
  4982. - zconfleng = yyless_macro_arg; \
  4983. - } \
  4984. - while ( 0 )
  4985. -
  4986. -/* Accessor methods (get/set functions) to struct members. */
  4987. -
  4988. -/** Get the current line number.
  4989. - *
  4990. - */
  4991. -int zconfget_lineno (void)
  4992. -{
  4993. -
  4994. - return zconflineno;
  4995. -}
  4996. -
  4997. -/** Get the input stream.
  4998. - *
  4999. - */
  5000. -FILE *zconfget_in (void)
  5001. -{
  5002. - return zconfin;
  5003. -}
  5004. -
  5005. -/** Get the output stream.
  5006. - *
  5007. - */
  5008. -FILE *zconfget_out (void)
  5009. -{
  5010. - return zconfout;
  5011. -}
  5012. -
  5013. -/** Get the length of the current token.
  5014. - *
  5015. - */
  5016. -int zconfget_leng (void)
  5017. -{
  5018. - return zconfleng;
  5019. -}
  5020. -
  5021. -/** Get the current token.
  5022. - *
  5023. - */
  5024. -
  5025. -char *zconfget_text (void)
  5026. -{
  5027. - return zconftext;
  5028. -}
  5029. -
  5030. -/** Set the current line number.
  5031. - * @param line_number
  5032. - *
  5033. - */
  5034. -void zconfset_lineno (int line_number )
  5035. -{
  5036. -
  5037. - zconflineno = line_number;
  5038. -}
  5039. -
  5040. -/** Set the input stream. This does not discard the current
  5041. - * input buffer.
  5042. - * @param in_str A readable stream.
  5043. - *
  5044. - * @see zconf_switch_to_buffer
  5045. - */
  5046. -void zconfset_in (FILE * in_str )
  5047. -{
  5048. - zconfin = in_str ;
  5049. -}
  5050. -
  5051. -void zconfset_out (FILE * out_str )
  5052. -{
  5053. - zconfout = out_str ;
  5054. -}
  5055. -
  5056. -int zconfget_debug (void)
  5057. -{
  5058. - return zconf_flex_debug;
  5059. -}
  5060. -
  5061. -void zconfset_debug (int bdebug )
  5062. -{
  5063. - zconf_flex_debug = bdebug ;
  5064. -}
  5065. -
  5066. -static int yy_init_globals (void)
  5067. -{
  5068. - /* Initialization is the same as for the non-reentrant scanner.
  5069. - * This function is called from zconflex_destroy(), so don't allocate here.
  5070. - */
  5071. -
  5072. - (yy_buffer_stack) = 0;
  5073. - (yy_buffer_stack_top) = 0;
  5074. - (yy_buffer_stack_max) = 0;
  5075. - (yy_c_buf_p) = (char *) 0;
  5076. - (yy_init) = 0;
  5077. - (yy_start) = 0;
  5078. -
  5079. -/* Defined in main.c */
  5080. -#ifdef YY_STDINIT
  5081. - zconfin = stdin;
  5082. - zconfout = stdout;
  5083. -#else
  5084. - zconfin = (FILE *) 0;
  5085. - zconfout = (FILE *) 0;
  5086. -#endif
  5087. -
  5088. - /* For future reference: Set errno on error, since we are called by
  5089. - * zconflex_init()
  5090. - */
  5091. - return 0;
  5092. -}
  5093. -
  5094. -/* zconflex_destroy is for both reentrant and non-reentrant scanners. */
  5095. -int zconflex_destroy (void)
  5096. -{
  5097. -
  5098. - /* Pop the buffer stack, destroying each element. */
  5099. - while(YY_CURRENT_BUFFER){
  5100. - zconf_delete_buffer(YY_CURRENT_BUFFER );
  5101. - YY_CURRENT_BUFFER_LVALUE = NULL;
  5102. - zconfpop_buffer_state();
  5103. - }
  5104. -
  5105. - /* Destroy the stack itself. */
  5106. - zconffree((yy_buffer_stack) );
  5107. - (yy_buffer_stack) = NULL;
  5108. -
  5109. - /* Reset the globals. This is important in a non-reentrant scanner so the next time
  5110. - * zconflex() is called, initialization will occur. */
  5111. - yy_init_globals( );
  5112. -
  5113. - return 0;
  5114. -}
  5115. -
  5116. -/*
  5117. - * Internal utility routines.
  5118. - */
  5119. -
  5120. -#ifndef yytext_ptr
  5121. -static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
  5122. -{
  5123. - register int i;
  5124. - for ( i = 0; i < n; ++i )
  5125. - s1[i] = s2[i];
  5126. -}
  5127. -#endif
  5128. -
  5129. -#ifdef YY_NEED_STRLEN
  5130. -static int yy_flex_strlen (yyconst char * s )
  5131. -{
  5132. - register int n;
  5133. - for ( n = 0; s[n]; ++n )
  5134. - ;
  5135. -
  5136. - return n;
  5137. -}
  5138. -#endif
  5139. -
  5140. -void *zconfalloc (yy_size_t size )
  5141. -{
  5142. - return (void *) malloc( size );
  5143. -}
  5144. -
  5145. -void *zconfrealloc (void * ptr, yy_size_t size )
  5146. -{
  5147. - /* The cast to (char *) in the following accommodates both
  5148. - * implementations that use char* generic pointers, and those
  5149. - * that use void* generic pointers. It works with the latter
  5150. - * because both ANSI C and C++ allow castless assignment from
  5151. - * any pointer type to void*, and deal with argument conversions
  5152. - * as though doing an assignment.
  5153. - */
  5154. - return (void *) realloc( (char *) ptr, size );
  5155. -}
  5156. -
  5157. -void zconffree (void * ptr )
  5158. -{
  5159. - free( (char *) ptr ); /* see zconfrealloc() for (char *) cast */
  5160. -}
  5161. -
  5162. -#define YYTABLES_NAME "yytables"
  5163. -
  5164. -void zconf_starthelp(void)
  5165. -{
  5166. - new_string();
  5167. - last_ts = first_ts = 0;
  5168. - BEGIN(HELP);
  5169. -}
  5170. -
  5171. -static void zconf_endhelp(void)
  5172. -{
  5173. - zconflval.string = text;
  5174. - BEGIN(INITIAL);
  5175. -}
  5176. -
  5177. -/*
  5178. - * Try to open specified file with following names:
  5179. - * ./name
  5180. - * $(srctree)/name
  5181. - * The latter is used when srctree is separate from objtree
  5182. - * when compiling the kernel.
  5183. - * Return NULL if file is not found.
  5184. - */
  5185. -FILE *zconf_fopen(const char *name)
  5186. -{
  5187. - char *env, fullname[PATH_MAX+1];
  5188. - FILE *f;
  5189. -
  5190. - f = fopen(name, "r");
  5191. - if (!f && name != NULL && name[0] != '/') {
  5192. - env = getenv(SRCTREE);
  5193. - if (env) {
  5194. - sprintf(fullname, "%s/%s", env, name);
  5195. - f = fopen(fullname, "r");
  5196. - }
  5197. - }
  5198. - return f;
  5199. -}
  5200. -
  5201. -void zconf_initscan(const char *name)
  5202. -{
  5203. - zconfin = zconf_fopen(name);
  5204. - if (!zconfin) {
  5205. - printf("can't find file %s\n", name);
  5206. - exit(1);
  5207. - }
  5208. -
  5209. - current_buf = malloc(sizeof(*current_buf));
  5210. - memset(current_buf, 0, sizeof(*current_buf));
  5211. -
  5212. - current_file = file_lookup(name);
  5213. - current_file->lineno = 1;
  5214. - current_file->flags = FILE_BUSY;
  5215. -}
  5216. -
  5217. -void zconf_nextfile(const char *name)
  5218. -{
  5219. - struct file *file = file_lookup(name);
  5220. - struct buffer *buf = malloc(sizeof(*buf));
  5221. - memset(buf, 0, sizeof(*buf));
  5222. -
  5223. - current_buf->state = YY_CURRENT_BUFFER;
  5224. - zconfin = zconf_fopen(name);
  5225. - if (!zconfin) {
  5226. - printf("%s:%d: can't open file \"%s\"\n", zconf_curname(), zconf_lineno(), name);
  5227. - exit(1);
  5228. - }
  5229. - zconf_switch_to_buffer(zconf_create_buffer(zconfin,YY_BUF_SIZE));
  5230. - buf->parent = current_buf;
  5231. - current_buf = buf;
  5232. -
  5233. - if (file->flags & FILE_BUSY) {
  5234. - printf("%s:%d: do not source '%s' from itself\n",
  5235. - zconf_curname(), zconf_lineno(), name);
  5236. - exit(1);
  5237. - }
  5238. - if (file->flags & FILE_SCANNED) {
  5239. - printf("%s:%d: file '%s' is already sourced from '%s'\n",
  5240. - zconf_curname(), zconf_lineno(), name,
  5241. - file->parent->name);
  5242. - exit(1);
  5243. - }
  5244. - file->flags |= FILE_BUSY;
  5245. - file->lineno = 1;
  5246. - file->parent = current_file;
  5247. - current_file = file;
  5248. -}
  5249. -
  5250. -static void zconf_endfile(void)
  5251. -{
  5252. - struct buffer *parent;
  5253. -
  5254. - current_file->flags |= FILE_SCANNED;
  5255. - current_file->flags &= ~FILE_BUSY;
  5256. - current_file = current_file->parent;
  5257. -
  5258. - parent = current_buf->parent;
  5259. - if (parent) {
  5260. - fclose(zconfin);
  5261. - zconf_delete_buffer(YY_CURRENT_BUFFER);
  5262. - zconf_switch_to_buffer(parent->state);
  5263. - }
  5264. - free(current_buf);
  5265. - current_buf = parent;
  5266. -}
  5267. -
  5268. -int zconf_lineno(void)
  5269. -{
  5270. - return current_pos.lineno;
  5271. -}
  5272. -
  5273. -char *zconf_curname(void)
  5274. -{
  5275. - return current_pos.file ? current_pos.file->name : "<none>";
  5276. -}
  5277. -
  5278. diff -Nur uClibc-0.9.33.2/extra/config/list.h uClibc-git/extra/config/list.h
  5279. --- uClibc-0.9.33.2/extra/config/list.h 1970-01-01 01:00:00.000000000 +0100
  5280. +++ uClibc-git/extra/config/list.h 2014-06-02 17:40:33.726710391 +0200
  5281. @@ -0,0 +1,131 @@
  5282. +#ifndef LIST_H
  5283. +#define LIST_H
  5284. +
  5285. +/*
  5286. + * Copied from include/linux/...
  5287. + */
  5288. +
  5289. +#undef offsetof
  5290. +#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
  5291. +
  5292. +/**
  5293. + * container_of - cast a member of a structure out to the containing structure
  5294. + * @ptr: the pointer to the member.
  5295. + * @type: the type of the container struct this is embedded in.
  5296. + * @member: the name of the member within the struct.
  5297. + *
  5298. + */
  5299. +#define container_of(ptr, type, member) ({ \
  5300. + const typeof( ((type *)0)->member ) *__mptr = (ptr); \
  5301. + (type *)( (char *)__mptr - offsetof(type,member) );})
  5302. +
  5303. +
  5304. +struct list_head {
  5305. + struct list_head *next, *prev;
  5306. +};
  5307. +
  5308. +
  5309. +#define LIST_HEAD_INIT(name) { &(name), &(name) }
  5310. +
  5311. +#define LIST_HEAD(name) \
  5312. + struct list_head name = LIST_HEAD_INIT(name)
  5313. +
  5314. +/**
  5315. + * list_entry - get the struct for this entry
  5316. + * @ptr: the &struct list_head pointer.
  5317. + * @type: the type of the struct this is embedded in.
  5318. + * @member: the name of the list_struct within the struct.
  5319. + */
  5320. +#define list_entry(ptr, type, member) \
  5321. + container_of(ptr, type, member)
  5322. +
  5323. +/**
  5324. + * list_for_each_entry - iterate over list of given type
  5325. + * @pos: the type * to use as a loop cursor.
  5326. + * @head: the head for your list.
  5327. + * @member: the name of the list_struct within the struct.
  5328. + */
  5329. +#define list_for_each_entry(pos, head, member) \
  5330. + for (pos = list_entry((head)->next, typeof(*pos), member); \
  5331. + &pos->member != (head); \
  5332. + pos = list_entry(pos->member.next, typeof(*pos), member))
  5333. +
  5334. +/**
  5335. + * list_for_each_entry_safe - iterate over list of given type safe against removal of list entry
  5336. + * @pos: the type * to use as a loop cursor.
  5337. + * @n: another type * to use as temporary storage
  5338. + * @head: the head for your list.
  5339. + * @member: the name of the list_struct within the struct.
  5340. + */
  5341. +#define list_for_each_entry_safe(pos, n, head, member) \
  5342. + for (pos = list_entry((head)->next, typeof(*pos), member), \
  5343. + n = list_entry(pos->member.next, typeof(*pos), member); \
  5344. + &pos->member != (head); \
  5345. + pos = n, n = list_entry(n->member.next, typeof(*n), member))
  5346. +
  5347. +/**
  5348. + * list_empty - tests whether a list is empty
  5349. + * @head: the list to test.
  5350. + */
  5351. +static inline int list_empty(const struct list_head *head)
  5352. +{
  5353. + return head->next == head;
  5354. +}
  5355. +
  5356. +/*
  5357. + * Insert a new entry between two known consecutive entries.
  5358. + *
  5359. + * This is only for internal list manipulation where we know
  5360. + * the prev/next entries already!
  5361. + */
  5362. +static inline void __list_add(struct list_head *_new,
  5363. + struct list_head *prev,
  5364. + struct list_head *next)
  5365. +{
  5366. + next->prev = _new;
  5367. + _new->next = next;
  5368. + _new->prev = prev;
  5369. + prev->next = _new;
  5370. +}
  5371. +
  5372. +/**
  5373. + * list_add_tail - add a new entry
  5374. + * @new: new entry to be added
  5375. + * @head: list head to add it before
  5376. + *
  5377. + * Insert a new entry before the specified head.
  5378. + * This is useful for implementing queues.
  5379. + */
  5380. +static inline void list_add_tail(struct list_head *_new, struct list_head *head)
  5381. +{
  5382. + __list_add(_new, head->prev, head);
  5383. +}
  5384. +
  5385. +/*
  5386. + * Delete a list entry by making the prev/next entries
  5387. + * point to each other.
  5388. + *
  5389. + * This is only for internal list manipulation where we know
  5390. + * the prev/next entries already!
  5391. + */
  5392. +static inline void __list_del(struct list_head *prev, struct list_head *next)
  5393. +{
  5394. + next->prev = prev;
  5395. + prev->next = next;
  5396. +}
  5397. +
  5398. +#define LIST_POISON1 ((void *) 0x00100100)
  5399. +#define LIST_POISON2 ((void *) 0x00200200)
  5400. +/**
  5401. + * list_del - deletes entry from list.
  5402. + * @entry: the element to delete from the list.
  5403. + * Note: list_empty() on entry does not return true after this, the entry is
  5404. + * in an undefined state.
  5405. + */
  5406. +static inline void list_del(struct list_head *entry)
  5407. +{
  5408. + __list_del(entry->prev, entry->next);
  5409. + entry->next = (struct list_head*)LIST_POISON1;
  5410. + entry->prev = (struct list_head*)LIST_POISON2;
  5411. +}
  5412. +#endif
  5413. diff -Nur uClibc-0.9.33.2/extra/config/lkc.h uClibc-git/extra/config/lkc.h
  5414. --- uClibc-0.9.33.2/extra/config/lkc.h 2012-05-15 09:20:09.000000000 +0200
  5415. +++ uClibc-git/extra/config/lkc.h 2014-06-02 17:40:33.726710391 +0200
  5416. @@ -14,29 +14,37 @@
  5417. static inline const char *gettext(const char *txt) { return txt; }
  5418. static inline void textdomain(const char *domainname) {}
  5419. static inline void bindtextdomain(const char *name, const char *dir) {}
  5420. +static inline char *bind_textdomain_codeset(const char *dn, char *c) { return c; }
  5421. #endif
  5422. #ifdef __cplusplus
  5423. extern "C" {
  5424. #endif
  5425. -#ifdef LKC_DIRECT_LINK
  5426. #define P(name,type,arg) extern type name arg
  5427. -#else
  5428. -#include "lkc_defs.h"
  5429. -#define P(name,type,arg) extern type (*name ## _p) arg
  5430. -#endif
  5431. #include "lkc_proto.h"
  5432. #undef P
  5433. #define SRCTREE "srctree"
  5434. +#ifndef PACKAGE
  5435. #define PACKAGE "linux"
  5436. +#endif
  5437. +
  5438. #define LOCALEDIR "/usr/share/locale"
  5439. #define _(text) gettext(text)
  5440. #define N_(text) (text)
  5441. +#ifndef CONFIG_
  5442. +#define CONFIG_ "CONFIG_"
  5443. +#endif
  5444. +static inline const char *CONFIG_prefix(void)
  5445. +{
  5446. + return getenv( "CONFIG_" ) ?: CONFIG_;
  5447. +}
  5448. +#undef CONFIG_
  5449. +#define CONFIG_ CONFIG_prefix()
  5450. #define TF_COMMAND 0x0001
  5451. #define TF_PARAM 0x0002
  5452. @@ -61,35 +69,49 @@
  5453. enum symbol_type stype;
  5454. };
  5455. +extern int zconfdebug;
  5456. +
  5457. int zconfparse(void);
  5458. void zconfdump(FILE *out);
  5459. -
  5460. -extern int zconfdebug;
  5461. void zconf_starthelp(void);
  5462. FILE *zconf_fopen(const char *name);
  5463. void zconf_initscan(const char *name);
  5464. void zconf_nextfile(const char *name);
  5465. int zconf_lineno(void);
  5466. -char *zconf_curname(void);
  5467. +const char *zconf_curname(void);
  5468. /* confdata.c */
  5469. const char *conf_get_configname(void);
  5470. +const char *conf_get_autoconfig_name(void);
  5471. char *conf_get_default_confname(void);
  5472. void sym_set_change_count(int count);
  5473. void sym_add_change_count(int count);
  5474. -void conf_set_all_new_symbols(enum conf_def_mode mode);
  5475. +bool conf_set_all_new_symbols(enum conf_def_mode mode);
  5476. +void set_all_choice_values(struct symbol *csym);
  5477. +
  5478. +struct conf_printer {
  5479. + void (*print_symbol)(FILE *, struct symbol *, const char *, void *);
  5480. + void (*print_comment)(FILE *, const char *, void *);
  5481. +};
  5482. -/* kconfig_load.c */
  5483. -void kconfig_load(void);
  5484. +/* confdata.c and expr.c */
  5485. +static inline void xfwrite(const void *str, size_t len, size_t count, FILE *out)
  5486. +{
  5487. + assert(len != 0);
  5488. +
  5489. + if (fwrite(str, len, count, out) != count)
  5490. + fprintf(stderr, "Error in writing or end of file.\n");
  5491. +}
  5492. /* menu.c */
  5493. -void menu_init(void);
  5494. +void _menu_init(void);
  5495. void menu_warn(struct menu *menu, const char *fmt, ...);
  5496. struct menu *menu_add_menu(void);
  5497. void menu_end_menu(void);
  5498. void menu_add_entry(struct symbol *sym);
  5499. void menu_end_entry(void);
  5500. void menu_add_dep(struct expr *dep);
  5501. +void menu_add_visibility(struct expr *dep);
  5502. struct property *menu_add_prop(enum prop_type type, char *prompt, struct expr *expr, struct expr *dep);
  5503. struct property *menu_add_prompt(enum prop_type type, char *prompt, struct expr *dep);
  5504. void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
  5505. @@ -101,10 +123,19 @@
  5506. /* util.c */
  5507. struct file *file_lookup(const char *name);
  5508. int file_write_dep(const char *name);
  5509. +void *xmalloc(size_t size);
  5510. +void *xcalloc(size_t nmemb, size_t size);
  5511. +char *dir_name(char *path);
  5512. +char *base_name(char *path);
  5513. struct gstr {
  5514. size_t len;
  5515. char *s;
  5516. + /*
  5517. + * when max_width is not zero long lines in string s (if any) get
  5518. + * wrapped not to exceed the max_width value
  5519. + */
  5520. + int max_width;
  5521. };
  5522. struct gstr str_new(void);
  5523. struct gstr str_assign(const char *s);
  5524. @@ -120,6 +151,8 @@
  5525. void sym_clear_all_valid(void);
  5526. void sym_set_all_changed(void);
  5527. void sym_set_changed(struct symbol *sym);
  5528. +struct symbol *sym_choice_default(struct symbol *sym);
  5529. +const char *sym_get_string_default(struct symbol *sym);
  5530. struct symbol *sym_check_deps(struct symbol *sym);
  5531. struct property *prop_alloc(enum prop_type type, struct symbol *sym);
  5532. struct symbol *prop_get_symbol(struct property *prop);
  5533. diff -Nur uClibc-0.9.33.2/extra/config/lkc_proto.h uClibc-git/extra/config/lkc_proto.h
  5534. --- uClibc-0.9.33.2/extra/config/lkc_proto.h 2012-05-15 09:20:09.000000000 +0200
  5535. +++ uClibc-git/extra/config/lkc_proto.h 2014-06-02 17:40:33.726710391 +0200
  5536. @@ -1,28 +1,40 @@
  5537. +#include <stdarg.h>
  5538. /* confdata.c */
  5539. P(conf_parse,void,(const char *name));
  5540. P(conf_read,int,(const char *name));
  5541. P(conf_read_simple,int,(const char *name, int));
  5542. +P(conf_write_defconfig,int,(const char *name));
  5543. P(conf_write,int,(const char *name));
  5544. P(conf_write_autoconf,int,(void));
  5545. P(conf_get_changed,bool,(void));
  5546. P(conf_set_changed_callback, void,(void (*fn)(void)));
  5547. +P(conf_set_message_callback, void,(void (*fn)(const char *fmt, va_list ap)));
  5548. /* menu.c */
  5549. P(rootmenu,struct menu,);
  5550. -P(menu_is_visible,bool,(struct menu *menu));
  5551. +P(menu_is_empty, bool, (struct menu *menu));
  5552. +P(menu_is_visible, bool, (struct menu *menu));
  5553. +P(menu_has_prompt, bool, (struct menu *menu));
  5554. P(menu_get_prompt,const char *,(struct menu *menu));
  5555. P(menu_get_root_menu,struct menu *,(struct menu *menu));
  5556. P(menu_get_parent_menu,struct menu *,(struct menu *menu));
  5557. P(menu_has_help,bool,(struct menu *menu));
  5558. P(menu_get_help,const char *,(struct menu *menu));
  5559. +P(get_symbol_str, void, (struct gstr *r, struct symbol *sym, struct list_head
  5560. + *head));
  5561. +P(get_relations_str, struct gstr, (struct symbol **sym_arr, struct list_head
  5562. + *head));
  5563. +P(menu_get_ext_help,void,(struct menu *menu, struct gstr *help));
  5564. /* symbol.c */
  5565. P(symbol_hash,struct symbol *,[SYMBOL_HASHSIZE]);
  5566. P(sym_lookup,struct symbol *,(const char *name, int flags));
  5567. P(sym_find,struct symbol *,(const char *name));
  5568. +P(sym_expand_string_value,const char *,(const char *in));
  5569. +P(sym_escape_string_value, const char *,(const char *in));
  5570. P(sym_re_search,struct symbol **,(const char *pattern));
  5571. P(sym_type_name,const char *,(enum symbol_type type));
  5572. P(sym_calc_value,void,(struct symbol *sym));
  5573. diff -Nur uClibc-0.9.33.2/extra/config/lxdialog/checklist.c uClibc-git/extra/config/lxdialog/checklist.c
  5574. --- uClibc-0.9.33.2/extra/config/lxdialog/checklist.c 2012-05-15 09:20:09.000000000 +0200
  5575. +++ uClibc-git/extra/config/lxdialog/checklist.c 2014-06-02 17:40:33.746710502 +0200
  5576. @@ -31,6 +31,10 @@
  5577. static void print_item(WINDOW * win, int choice, int selected)
  5578. {
  5579. int i;
  5580. + char *list_item = malloc(list_width + 1);
  5581. +
  5582. + strncpy(list_item, item_str(), list_width - item_x);
  5583. + list_item[list_width - item_x] = '\0';
  5584. /* Clear 'residue' of last item */
  5585. wattrset(win, dlg.menubox.atr);
  5586. @@ -41,16 +45,18 @@
  5587. wmove(win, choice, check_x);
  5588. wattrset(win, selected ? dlg.check_selected.atr
  5589. : dlg.check.atr);
  5590. - wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' ');
  5591. + if (!item_is_tag(':'))
  5592. + wprintw(win, "(%c)", item_is_tag('X') ? 'X' : ' ');
  5593. wattrset(win, selected ? dlg.tag_selected.atr : dlg.tag.atr);
  5594. - mvwaddch(win, choice, item_x, item_str()[0]);
  5595. + mvwaddch(win, choice, item_x, list_item[0]);
  5596. wattrset(win, selected ? dlg.item_selected.atr : dlg.item.atr);
  5597. - waddstr(win, (char *)item_str() + 1);
  5598. + waddstr(win, list_item + 1);
  5599. if (selected) {
  5600. wmove(win, choice, check_x + 1);
  5601. wrefresh(win);
  5602. }
  5603. + free(list_item);
  5604. }
  5605. /*
  5606. @@ -126,16 +132,16 @@
  5607. }
  5608. do_resize:
  5609. - if (getmaxy(stdscr) < (height + 6))
  5610. + if (getmaxy(stdscr) < (height + CHECKLIST_HEIGTH_MIN))
  5611. return -ERRDISPLAYTOOSMALL;
  5612. - if (getmaxx(stdscr) < (width + 6))
  5613. + if (getmaxx(stdscr) < (width + CHECKLIST_WIDTH_MIN))
  5614. return -ERRDISPLAYTOOSMALL;
  5615. max_choice = MIN(list_height, item_count());
  5616. /* center dialog box on screen */
  5617. - x = (COLS - width) / 2;
  5618. - y = (LINES - height) / 2;
  5619. + x = (getmaxx(stdscr) - width) / 2;
  5620. + y = (getmaxy(stdscr) - height) / 2;
  5621. draw_shadow(stdscr, y, x, height, width);
  5622. @@ -174,6 +180,7 @@
  5623. check_x = 0;
  5624. item_foreach()
  5625. check_x = MAX(check_x, strlen(item_str()) + 4);
  5626. + check_x = MIN(check_x, list_width);
  5627. check_x = (list_width - check_x) / 2;
  5628. item_x = check_x + 4;
  5629. diff -Nur uClibc-0.9.33.2/extra/config/lxdialog/check-lxdialog.sh uClibc-git/extra/config/lxdialog/check-lxdialog.sh
  5630. --- uClibc-0.9.33.2/extra/config/lxdialog/check-lxdialog.sh 2012-05-15 09:20:09.000000000 +0200
  5631. +++ uClibc-git/extra/config/lxdialog/check-lxdialog.sh 2014-06-02 17:40:33.726710391 +0200
  5632. @@ -4,7 +4,9 @@
  5633. # What library to link
  5634. ldflags()
  5635. {
  5636. - for ext in so a dylib ; do
  5637. + pkg-config --libs ncursesw 2>/dev/null && exit
  5638. + pkg-config --libs ncurses 2>/dev/null && exit
  5639. + for ext in so a dll.a dylib ; do
  5640. for lib in ncursesw ncurses curses ; do
  5641. $cc -print-file-name=lib${lib}.${ext} | grep -q /
  5642. if [ $? -eq 0 ]; then
  5643. @@ -19,14 +21,13 @@
  5644. # Where is ncurses.h?
  5645. ccflags()
  5646. {
  5647. - if [ -f /usr/include/ncursesw/ncurses.h ]; then
  5648. - echo '-I/usr/include/ncursesw -DCURSES_LOC="<ncurses.h>"'
  5649. - elif [ -f /usr/include/ncursesw/curses.h ]; then
  5650. - echo '-I/usr/include/ncursesw -DCURSES_LOC="<ncursesw/curses.h>"'
  5651. + if [ -f /usr/include/ncursesw/curses.h ]; then
  5652. + echo '-I/usr/include/ncursesw -DCURSES_LOC="<curses.h>"'
  5653. + echo ' -DNCURSES_WIDECHAR=1'
  5654. elif [ -f /usr/include/ncurses/ncurses.h ]; then
  5655. echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>"'
  5656. elif [ -f /usr/include/ncurses/curses.h ]; then
  5657. - echo '-I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>"'
  5658. + echo '-I/usr/include/ncurses -DCURSES_LOC="<curses.h>"'
  5659. elif [ -f /usr/include/ncurses.h ]; then
  5660. echo '-DCURSES_LOC="<ncurses.h>"'
  5661. else
  5662. @@ -40,7 +41,7 @@
  5663. # Check if we can link to ncurses
  5664. check() {
  5665. - $cc -xc - -o $tmp 2>/dev/null <<'EOF'
  5666. + $cc -x c - -o $tmp 2>/dev/null <<'EOF'
  5667. #include CURSES_LOC
  5668. main() {}
  5669. EOF
  5670. diff -Nur uClibc-0.9.33.2/extra/config/lxdialog/dialog.h uClibc-git/extra/config/lxdialog/dialog.h
  5671. --- uClibc-0.9.33.2/extra/config/lxdialog/dialog.h 2012-05-15 09:20:09.000000000 +0200
  5672. +++ uClibc-git/extra/config/lxdialog/dialog.h 2014-06-02 17:40:33.746710502 +0200
  5673. @@ -106,8 +106,14 @@
  5674. int hl; /* highlight this item */
  5675. };
  5676. +struct subtitle_list {
  5677. + struct subtitle_list *next;
  5678. + const char *text;
  5679. +};
  5680. +
  5681. struct dialog_info {
  5682. const char *backtitle;
  5683. + struct subtitle_list *subtitles;
  5684. struct dialog_color screen;
  5685. struct dialog_color shadow;
  5686. struct dialog_color dialog;
  5687. @@ -144,6 +150,7 @@
  5688. */
  5689. extern struct dialog_info dlg;
  5690. extern char dialog_input_result[];
  5691. +extern int saved_x, saved_y; /* Needed in signal handler in mconf.c */
  5692. /*
  5693. * Function prototypes
  5694. @@ -193,8 +200,23 @@
  5695. int on_key_esc(WINDOW *win);
  5696. int on_key_resize(void);
  5697. +/* minimum (re)size values */
  5698. +#define CHECKLIST_HEIGTH_MIN 6 /* For dialog_checklist() */
  5699. +#define CHECKLIST_WIDTH_MIN 6
  5700. +#define INPUTBOX_HEIGTH_MIN 2 /* For dialog_inputbox() */
  5701. +#define INPUTBOX_WIDTH_MIN 2
  5702. +#define MENUBOX_HEIGTH_MIN 15 /* For dialog_menu() */
  5703. +#define MENUBOX_WIDTH_MIN 65
  5704. +#define TEXTBOX_HEIGTH_MIN 8 /* For dialog_textbox() */
  5705. +#define TEXTBOX_WIDTH_MIN 8
  5706. +#define YESNO_HEIGTH_MIN 4 /* For dialog_yesno() */
  5707. +#define YESNO_WIDTH_MIN 4
  5708. +#define WINDOW_HEIGTH_MIN 19 /* For init_dialog() */
  5709. +#define WINDOW_WIDTH_MIN 80
  5710. +
  5711. int init_dialog(const char *backtitle);
  5712. void set_dialog_backtitle(const char *backtitle);
  5713. +void set_dialog_subtitles(struct subtitle_list *subtitles);
  5714. void end_dialog(int x, int y);
  5715. void attr_clear(WINDOW * win, int height, int width, chtype attr);
  5716. void dialog_clear(void);
  5717. @@ -209,12 +231,17 @@
  5718. int dialog_yesno(const char *title, const char *prompt, int height, int width);
  5719. int dialog_msgbox(const char *title, const char *prompt, int height,
  5720. int width, int pause);
  5721. -int dialog_textbox(const char *title, const char *file, int height, int width);
  5722. +
  5723. +
  5724. +typedef void (*update_text_fn)(char *buf, size_t start, size_t end, void
  5725. + *_data);
  5726. +int dialog_textbox(const char *title, char *tbuf, int initial_height,
  5727. + int initial_width, int *keys, int *_vscroll, int *_hscroll,
  5728. + update_text_fn update_text, void *data);
  5729. int dialog_menu(const char *title, const char *prompt,
  5730. const void *selected, int *s_scroll);
  5731. int dialog_checklist(const char *title, const char *prompt, int height,
  5732. int width, int list_height);
  5733. -extern char dialog_input_result[];
  5734. int dialog_inputbox(const char *title, const char *prompt, int height,
  5735. int width, const char *init);
  5736. diff -Nur uClibc-0.9.33.2/extra/config/lxdialog/inputbox.c uClibc-git/extra/config/lxdialog/inputbox.c
  5737. --- uClibc-0.9.33.2/extra/config/lxdialog/inputbox.c 2012-05-15 09:20:09.000000000 +0200
  5738. +++ uClibc-git/extra/config/lxdialog/inputbox.c 2014-06-02 17:40:33.746710502 +0200
  5739. @@ -45,7 +45,8 @@
  5740. const char *init)
  5741. {
  5742. int i, x, y, box_y, box_x, box_width;
  5743. - int input_x = 0, scroll = 0, key = 0, button = -1;
  5744. + int input_x = 0, key = 0, button = -1;
  5745. + int show_x, len, pos;
  5746. char *instr = dialog_input_result;
  5747. WINDOW *dialog;
  5748. @@ -55,14 +56,14 @@
  5749. strcpy(instr, init);
  5750. do_resize:
  5751. - if (getmaxy(stdscr) <= (height - 2))
  5752. + if (getmaxy(stdscr) <= (height - INPUTBOX_HEIGTH_MIN))
  5753. return -ERRDISPLAYTOOSMALL;
  5754. - if (getmaxx(stdscr) <= (width - 2))
  5755. + if (getmaxx(stdscr) <= (width - INPUTBOX_WIDTH_MIN))
  5756. return -ERRDISPLAYTOOSMALL;
  5757. /* center dialog box on screen */
  5758. - x = (COLS - width) / 2;
  5759. - y = (LINES - height) / 2;
  5760. + x = (getmaxx(stdscr) - width) / 2;
  5761. + y = (getmaxy(stdscr) - height) / 2;
  5762. draw_shadow(stdscr, y, x, height, width);
  5763. @@ -97,14 +98,17 @@
  5764. wmove(dialog, box_y, box_x);
  5765. wattrset(dialog, dlg.inputbox.atr);
  5766. - input_x = strlen(instr);
  5767. + len = strlen(instr);
  5768. + pos = len;
  5769. - if (input_x >= box_width) {
  5770. - scroll = input_x - box_width + 1;
  5771. + if (len >= box_width) {
  5772. + show_x = len - box_width + 1;
  5773. input_x = box_width - 1;
  5774. for (i = 0; i < box_width - 1; i++)
  5775. - waddch(dialog, instr[scroll + i]);
  5776. + waddch(dialog, instr[show_x + i]);
  5777. } else {
  5778. + show_x = 0;
  5779. + input_x = len;
  5780. waddstr(dialog, instr);
  5781. }
  5782. @@ -121,45 +125,104 @@
  5783. case KEY_UP:
  5784. case KEY_DOWN:
  5785. break;
  5786. - case KEY_LEFT:
  5787. - continue;
  5788. - case KEY_RIGHT:
  5789. - continue;
  5790. case KEY_BACKSPACE:
  5791. case 127:
  5792. - if (input_x || scroll) {
  5793. + if (pos) {
  5794. wattrset(dialog, dlg.inputbox.atr);
  5795. - if (!input_x) {
  5796. - scroll = scroll < box_width - 1 ? 0 : scroll - (box_width - 1);
  5797. - wmove(dialog, box_y, box_x);
  5798. - for (i = 0; i < box_width; i++)
  5799. - waddch(dialog,
  5800. - instr[scroll + input_x + i] ?
  5801. - instr[scroll + input_x + i] : ' ');
  5802. - input_x = strlen(instr) - scroll;
  5803. + if (input_x == 0) {
  5804. + show_x--;
  5805. } else
  5806. input_x--;
  5807. - instr[scroll + input_x] = '\0';
  5808. - mvwaddch(dialog, box_y, input_x + box_x, ' ');
  5809. +
  5810. + if (pos < len) {
  5811. + for (i = pos - 1; i < len; i++) {
  5812. + instr[i] = instr[i+1];
  5813. + }
  5814. + }
  5815. +
  5816. + pos--;
  5817. + len--;
  5818. + instr[len] = '\0';
  5819. + wmove(dialog, box_y, box_x);
  5820. + for (i = 0; i < box_width; i++) {
  5821. + if (!instr[show_x + i]) {
  5822. + waddch(dialog, ' ');
  5823. + break;
  5824. + }
  5825. + waddch(dialog, instr[show_x + i]);
  5826. + }
  5827. wmove(dialog, box_y, input_x + box_x);
  5828. wrefresh(dialog);
  5829. }
  5830. continue;
  5831. + case KEY_LEFT:
  5832. + if (pos > 0) {
  5833. + if (input_x > 0) {
  5834. + wmove(dialog, box_y, --input_x + box_x);
  5835. + } else if (input_x == 0) {
  5836. + show_x--;
  5837. + wmove(dialog, box_y, box_x);
  5838. + for (i = 0; i < box_width; i++) {
  5839. + if (!instr[show_x + i]) {
  5840. + waddch(dialog, ' ');
  5841. + break;
  5842. + }
  5843. + waddch(dialog, instr[show_x + i]);
  5844. + }
  5845. + wmove(dialog, box_y, box_x);
  5846. + }
  5847. + pos--;
  5848. + }
  5849. + continue;
  5850. + case KEY_RIGHT:
  5851. + if (pos < len) {
  5852. + if (input_x < box_width - 1) {
  5853. + wmove(dialog, box_y, ++input_x + box_x);
  5854. + } else if (input_x == box_width - 1) {
  5855. + show_x++;
  5856. + wmove(dialog, box_y, box_x);
  5857. + for (i = 0; i < box_width; i++) {
  5858. + if (!instr[show_x + i]) {
  5859. + waddch(dialog, ' ');
  5860. + break;
  5861. + }
  5862. + waddch(dialog, instr[show_x + i]);
  5863. + }
  5864. + wmove(dialog, box_y, input_x + box_x);
  5865. + }
  5866. + pos++;
  5867. + }
  5868. + continue;
  5869. default:
  5870. if (key < 0x100 && isprint(key)) {
  5871. - if (scroll + input_x < MAX_LEN) {
  5872. + if (len < MAX_LEN) {
  5873. wattrset(dialog, dlg.inputbox.atr);
  5874. - instr[scroll + input_x] = key;
  5875. - instr[scroll + input_x + 1] = '\0';
  5876. + if (pos < len) {
  5877. + for (i = len; i > pos; i--)
  5878. + instr[i] = instr[i-1];
  5879. + instr[pos] = key;
  5880. + } else {
  5881. + instr[len] = key;
  5882. + }
  5883. + pos++;
  5884. + len++;
  5885. + instr[len] = '\0';
  5886. +
  5887. if (input_x == box_width - 1) {
  5888. - scroll++;
  5889. - wmove(dialog, box_y, box_x);
  5890. - for (i = 0; i < box_width - 1; i++)
  5891. - waddch(dialog, instr [scroll + i]);
  5892. + show_x++;
  5893. } else {
  5894. - wmove(dialog, box_y, input_x++ + box_x);
  5895. - waddch(dialog, key);
  5896. + input_x++;
  5897. + }
  5898. +
  5899. + wmove(dialog, box_y, box_x);
  5900. + for (i = 0; i < box_width; i++) {
  5901. + if (!instr[show_x + i]) {
  5902. + waddch(dialog, ' ');
  5903. + break;
  5904. + }
  5905. + waddch(dialog, instr[show_x + i]);
  5906. }
  5907. + wmove(dialog, box_y, input_x + box_x);
  5908. wrefresh(dialog);
  5909. } else
  5910. flash(); /* Alarm user about overflow */
  5911. @@ -180,7 +243,7 @@
  5912. case KEY_LEFT:
  5913. switch (button) {
  5914. case -1:
  5915. - button = 1; /* Indicates "Cancel" button is selected */
  5916. + button = 1; /* Indicates "Help" button is selected */
  5917. print_buttons(dialog, height, width, 1);
  5918. break;
  5919. case 0:
  5920. @@ -204,7 +267,7 @@
  5921. print_buttons(dialog, height, width, 0);
  5922. break;
  5923. case 0:
  5924. - button = 1; /* Indicates "Cancel" button is selected */
  5925. + button = 1; /* Indicates "Help" button is selected */
  5926. print_buttons(dialog, height, width, 1);
  5927. break;
  5928. case 1:
  5929. diff -Nur uClibc-0.9.33.2/extra/config/lxdialog/menubox.c uClibc-git/extra/config/lxdialog/menubox.c
  5930. --- uClibc-0.9.33.2/extra/config/lxdialog/menubox.c 2012-05-15 09:20:09.000000000 +0200
  5931. +++ uClibc-git/extra/config/lxdialog/menubox.c 2014-06-02 17:40:33.746710502 +0200
  5932. @@ -154,12 +154,14 @@
  5933. */
  5934. static void print_buttons(WINDOW * win, int height, int width, int selected)
  5935. {
  5936. - int x = width / 2 - 16;
  5937. + int x = width / 2 - 28;
  5938. int y = height - 2;
  5939. print_button(win, gettext("Select"), y, x, selected == 0);
  5940. print_button(win, gettext(" Exit "), y, x + 12, selected == 1);
  5941. print_button(win, gettext(" Help "), y, x + 24, selected == 2);
  5942. + print_button(win, gettext(" Save "), y, x + 36, selected == 3);
  5943. + print_button(win, gettext(" Load "), y, x + 48, selected == 4);
  5944. wmove(win, y, x + 1 + 12 * selected);
  5945. wrefresh(win);
  5946. @@ -191,7 +193,7 @@
  5947. do_resize:
  5948. height = getmaxy(stdscr);
  5949. width = getmaxx(stdscr);
  5950. - if (height < 15 || width < 65)
  5951. + if (height < MENUBOX_HEIGTH_MIN || width < MENUBOX_WIDTH_MIN)
  5952. return -ERRDISPLAYTOOSMALL;
  5953. height -= 4;
  5954. @@ -201,8 +203,8 @@
  5955. max_choice = MIN(menu_height, item_count());
  5956. /* center dialog box on screen */
  5957. - x = (COLS - width) / 2;
  5958. - y = (LINES - height) / 2;
  5959. + x = (getmaxx(stdscr) - width) / 2;
  5960. + y = (getmaxy(stdscr) - height) / 2;
  5961. draw_shadow(stdscr, y, x, height, width);
  5962. @@ -301,10 +303,11 @@
  5963. }
  5964. }
  5965. - if (i < max_choice ||
  5966. - key == KEY_UP || key == KEY_DOWN ||
  5967. - key == '-' || key == '+' ||
  5968. - key == KEY_PPAGE || key == KEY_NPAGE) {
  5969. + if (item_count() != 0 &&
  5970. + (i < max_choice ||
  5971. + key == KEY_UP || key == KEY_DOWN ||
  5972. + key == '-' || key == '+' ||
  5973. + key == KEY_PPAGE || key == KEY_NPAGE)) {
  5974. /* Remove highligt of current item */
  5975. print_item(scroll + choice, choice, FALSE);
  5976. @@ -372,7 +375,7 @@
  5977. case TAB:
  5978. case KEY_RIGHT:
  5979. button = ((key == KEY_LEFT ? --button : ++button) < 0)
  5980. - ? 2 : (button > 2 ? 0 : button);
  5981. + ? 4 : (button > 4 ? 0 : button);
  5982. print_buttons(dialog, height, width, button);
  5983. wrefresh(menu);
  5984. @@ -383,6 +386,10 @@
  5985. case 'n':
  5986. case 'm':
  5987. case '/':
  5988. + case 'h':
  5989. + case '?':
  5990. + case 'z':
  5991. + case '\n':
  5992. /* save scroll info */
  5993. *s_scroll = scroll;
  5994. delwin(menu);
  5995. @@ -390,30 +397,26 @@
  5996. item_set(scroll + choice);
  5997. item_set_selected(1);
  5998. switch (key) {
  5999. + case 'h':
  6000. + case '?':
  6001. + return 2;
  6002. case 's':
  6003. - return 3;
  6004. case 'y':
  6005. - return 3;
  6006. + return 5;
  6007. case 'n':
  6008. - return 4;
  6009. + return 6;
  6010. case 'm':
  6011. - return 5;
  6012. + return 7;
  6013. case ' ':
  6014. - return 6;
  6015. + return 8;
  6016. case '/':
  6017. - return 7;
  6018. + return 9;
  6019. + case 'z':
  6020. + return 10;
  6021. + case '\n':
  6022. + return button;
  6023. }
  6024. return 0;
  6025. - case 'h':
  6026. - case '?':
  6027. - button = 2;
  6028. - case '\n':
  6029. - *s_scroll = scroll;
  6030. - delwin(menu);
  6031. - delwin(dialog);
  6032. - item_set(scroll + choice);
  6033. - item_set_selected(1);
  6034. - return button;
  6035. case 'e':
  6036. case 'x':
  6037. key = KEY_ESC;
  6038. diff -Nur uClibc-0.9.33.2/extra/config/lxdialog/textbox.c uClibc-git/extra/config/lxdialog/textbox.c
  6039. --- uClibc-0.9.33.2/extra/config/lxdialog/textbox.c 2012-05-15 09:20:09.000000000 +0200
  6040. +++ uClibc-git/extra/config/lxdialog/textbox.c 2014-06-02 17:40:33.746710502 +0200
  6041. @@ -22,23 +22,25 @@
  6042. #include "dialog.h"
  6043. static void back_lines(int n);
  6044. -static void print_page(WINDOW * win, int height, int width);
  6045. -static void print_line(WINDOW * win, int row, int width);
  6046. +static void print_page(WINDOW *win, int height, int width, update_text_fn
  6047. + update_text, void *data);
  6048. +static void print_line(WINDOW *win, int row, int width);
  6049. static char *get_line(void);
  6050. static void print_position(WINDOW * win);
  6051. static int hscroll;
  6052. static int begin_reached, end_reached, page_length;
  6053. -static const char *buf;
  6054. -static const char *page;
  6055. +static char *buf;
  6056. +static char *page;
  6057. /*
  6058. * refresh window content
  6059. */
  6060. static void refresh_text_box(WINDOW *dialog, WINDOW *box, int boxh, int boxw,
  6061. - int cur_y, int cur_x)
  6062. + int cur_y, int cur_x, update_text_fn update_text,
  6063. + void *data)
  6064. {
  6065. - print_page(box, boxh, boxw);
  6066. + print_page(box, boxh, boxw, update_text, data);
  6067. print_position(dialog);
  6068. wmove(dialog, cur_y, cur_x); /* Restore cursor position */
  6069. wrefresh(dialog);
  6070. @@ -47,14 +49,18 @@
  6071. /*
  6072. * Display text from a file in a dialog box.
  6073. + *
  6074. + * keys is a null-terminated array
  6075. + * update_text() may not add or remove any '\n' or '\0' in tbuf
  6076. */
  6077. -int dialog_textbox(const char *title, const char *tbuf,
  6078. - int initial_height, int initial_width)
  6079. +int dialog_textbox(const char *title, char *tbuf, int initial_height,
  6080. + int initial_width, int *keys, int *_vscroll, int *_hscroll,
  6081. + update_text_fn update_text, void *data)
  6082. {
  6083. int i, x, y, cur_x, cur_y, key = 0;
  6084. int height, width, boxh, boxw;
  6085. - int passed_end;
  6086. WINDOW *dialog, *box;
  6087. + bool done = false;
  6088. begin_reached = 1;
  6089. end_reached = 0;
  6090. @@ -63,9 +69,18 @@
  6091. buf = tbuf;
  6092. page = buf; /* page is pointer to start of page to be displayed */
  6093. + if (_vscroll && *_vscroll) {
  6094. + begin_reached = 0;
  6095. +
  6096. + for (i = 0; i < *_vscroll; i++)
  6097. + get_line();
  6098. + }
  6099. + if (_hscroll)
  6100. + hscroll = *_hscroll;
  6101. +
  6102. do_resize:
  6103. getmaxyx(stdscr, height, width);
  6104. - if (height < 8 || width < 8)
  6105. + if (height < TEXTBOX_HEIGTH_MIN || width < TEXTBOX_WIDTH_MIN)
  6106. return -ERRDISPLAYTOOSMALL;
  6107. if (initial_height != 0)
  6108. height = initial_height;
  6109. @@ -83,8 +98,8 @@
  6110. width = 0;
  6111. /* center dialog box on screen */
  6112. - x = (COLS - width) / 2;
  6113. - y = (LINES - height) / 2;
  6114. + x = (getmaxx(stdscr) - width) / 2;
  6115. + y = (getmaxy(stdscr) - height) / 2;
  6116. draw_shadow(stdscr, y, x, height, width);
  6117. @@ -120,25 +135,28 @@
  6118. /* Print first page of text */
  6119. attr_clear(box, boxh, boxw, dlg.dialog.atr);
  6120. - refresh_text_box(dialog, box, boxh, boxw, cur_y, cur_x);
  6121. + refresh_text_box(dialog, box, boxh, boxw, cur_y, cur_x, update_text,
  6122. + data);
  6123. - while ((key != KEY_ESC) && (key != '\n')) {
  6124. + while (!done) {
  6125. key = wgetch(dialog);
  6126. switch (key) {
  6127. case 'E': /* Exit */
  6128. case 'e':
  6129. case 'X':
  6130. case 'x':
  6131. - delwin(box);
  6132. - delwin(dialog);
  6133. - return 0;
  6134. + case 'q':
  6135. + case '\n':
  6136. + done = true;
  6137. + break;
  6138. case 'g': /* First page */
  6139. case KEY_HOME:
  6140. if (!begin_reached) {
  6141. begin_reached = 1;
  6142. page = buf;
  6143. refresh_text_box(dialog, box, boxh, boxw,
  6144. - cur_y, cur_x);
  6145. + cur_y, cur_x, update_text,
  6146. + data);
  6147. }
  6148. break;
  6149. case 'G': /* Last page */
  6150. @@ -148,78 +166,48 @@
  6151. /* point to last char in buf */
  6152. page = buf + strlen(buf);
  6153. back_lines(boxh);
  6154. - refresh_text_box(dialog, box, boxh, boxw,
  6155. - cur_y, cur_x);
  6156. + refresh_text_box(dialog, box, boxh, boxw, cur_y,
  6157. + cur_x, update_text, data);
  6158. break;
  6159. case 'K': /* Previous line */
  6160. case 'k':
  6161. case KEY_UP:
  6162. - if (!begin_reached) {
  6163. - back_lines(page_length + 1);
  6164. -
  6165. - /* We don't call print_page() here but use
  6166. - * scrolling to ensure faster screen update.
  6167. - * However, 'end_reached' and 'page_length'
  6168. - * should still be updated, and 'page' should
  6169. - * point to start of next page. This is done
  6170. - * by calling get_line() in the following
  6171. - * 'for' loop. */
  6172. - scrollok(box, TRUE);
  6173. - wscrl(box, -1); /* Scroll box region down one line */
  6174. - scrollok(box, FALSE);
  6175. - page_length = 0;
  6176. - passed_end = 0;
  6177. - for (i = 0; i < boxh; i++) {
  6178. - if (!i) {
  6179. - /* print first line of page */
  6180. - print_line(box, 0, boxw);
  6181. - wnoutrefresh(box);
  6182. - } else
  6183. - /* Called to update 'end_reached' and 'page' */
  6184. - get_line();
  6185. - if (!passed_end)
  6186. - page_length++;
  6187. - if (end_reached && !passed_end)
  6188. - passed_end = 1;
  6189. - }
  6190. + if (begin_reached)
  6191. + break;
  6192. - print_position(dialog);
  6193. - wmove(dialog, cur_y, cur_x); /* Restore cursor position */
  6194. - wrefresh(dialog);
  6195. - }
  6196. + back_lines(page_length + 1);
  6197. + refresh_text_box(dialog, box, boxh, boxw, cur_y,
  6198. + cur_x, update_text, data);
  6199. break;
  6200. case 'B': /* Previous page */
  6201. case 'b':
  6202. + case 'u':
  6203. case KEY_PPAGE:
  6204. if (begin_reached)
  6205. break;
  6206. back_lines(page_length + boxh);
  6207. - refresh_text_box(dialog, box, boxh, boxw,
  6208. - cur_y, cur_x);
  6209. + refresh_text_box(dialog, box, boxh, boxw, cur_y,
  6210. + cur_x, update_text, data);
  6211. break;
  6212. case 'J': /* Next line */
  6213. case 'j':
  6214. case KEY_DOWN:
  6215. - if (!end_reached) {
  6216. - begin_reached = 0;
  6217. - scrollok(box, TRUE);
  6218. - scroll(box); /* Scroll box region up one line */
  6219. - scrollok(box, FALSE);
  6220. - print_line(box, boxh - 1, boxw);
  6221. - wnoutrefresh(box);
  6222. - print_position(dialog);
  6223. - wmove(dialog, cur_y, cur_x); /* Restore cursor position */
  6224. - wrefresh(dialog);
  6225. - }
  6226. + if (end_reached)
  6227. + break;
  6228. +
  6229. + back_lines(page_length - 1);
  6230. + refresh_text_box(dialog, box, boxh, boxw, cur_y,
  6231. + cur_x, update_text, data);
  6232. break;
  6233. case KEY_NPAGE: /* Next page */
  6234. case ' ':
  6235. + case 'd':
  6236. if (end_reached)
  6237. break;
  6238. begin_reached = 0;
  6239. - refresh_text_box(dialog, box, boxh, boxw,
  6240. - cur_y, cur_x);
  6241. + refresh_text_box(dialog, box, boxh, boxw, cur_y,
  6242. + cur_x, update_text, data);
  6243. break;
  6244. case '0': /* Beginning of line */
  6245. case 'H': /* Scroll left */
  6246. @@ -234,8 +222,8 @@
  6247. hscroll--;
  6248. /* Reprint current page to scroll horizontally */
  6249. back_lines(page_length);
  6250. - refresh_text_box(dialog, box, boxh, boxw,
  6251. - cur_y, cur_x);
  6252. + refresh_text_box(dialog, box, boxh, boxw, cur_y,
  6253. + cur_x, update_text, data);
  6254. break;
  6255. case 'L': /* Scroll right */
  6256. case 'l':
  6257. @@ -245,11 +233,12 @@
  6258. hscroll++;
  6259. /* Reprint current page to scroll horizontally */
  6260. back_lines(page_length);
  6261. - refresh_text_box(dialog, box, boxh, boxw,
  6262. - cur_y, cur_x);
  6263. + refresh_text_box(dialog, box, boxh, boxw, cur_y,
  6264. + cur_x, update_text, data);
  6265. break;
  6266. case KEY_ESC:
  6267. - key = on_key_esc(dialog);
  6268. + if (on_key_esc(dialog) == KEY_ESC)
  6269. + done = true;
  6270. break;
  6271. case KEY_RESIZE:
  6272. back_lines(height);
  6273. @@ -257,11 +246,31 @@
  6274. delwin(dialog);
  6275. on_key_resize();
  6276. goto do_resize;
  6277. + default:
  6278. + for (i = 0; keys[i]; i++) {
  6279. + if (key == keys[i]) {
  6280. + done = true;
  6281. + break;
  6282. + }
  6283. + }
  6284. }
  6285. }
  6286. delwin(box);
  6287. delwin(dialog);
  6288. - return key; /* ESC pressed */
  6289. + if (_vscroll) {
  6290. + const char *s;
  6291. +
  6292. + s = buf;
  6293. + *_vscroll = 0;
  6294. + back_lines(page_length);
  6295. + while (s < page && (s = strchr(s, '\n'))) {
  6296. + (*_vscroll)++;
  6297. + s++;
  6298. + }
  6299. + }
  6300. + if (_hscroll)
  6301. + *_hscroll = hscroll;
  6302. + return key;
  6303. }
  6304. /*
  6305. @@ -298,12 +307,23 @@
  6306. }
  6307. /*
  6308. - * Print a new page of text. Called by dialog_textbox().
  6309. + * Print a new page of text.
  6310. */
  6311. -static void print_page(WINDOW * win, int height, int width)
  6312. +static void print_page(WINDOW *win, int height, int width, update_text_fn
  6313. + update_text, void *data)
  6314. {
  6315. int i, passed_end = 0;
  6316. + if (update_text) {
  6317. + char *end;
  6318. +
  6319. + for (i = 0; i < height; i++)
  6320. + get_line();
  6321. + end = page;
  6322. + back_lines(height);
  6323. + update_text(buf, page - buf, end - buf, data);
  6324. + }
  6325. +
  6326. page_length = 0;
  6327. for (i = 0; i < height; i++) {
  6328. print_line(win, i, width);
  6329. @@ -316,11 +336,10 @@
  6330. }
  6331. /*
  6332. - * Print a new line of text. Called by dialog_textbox() and print_page().
  6333. + * Print a new line of text.
  6334. */
  6335. static void print_line(WINDOW * win, int row, int width)
  6336. {
  6337. - int y, x;
  6338. char *line;
  6339. line = get_line();
  6340. @@ -329,10 +348,10 @@
  6341. waddch(win, ' ');
  6342. waddnstr(win, line, MIN(strlen(line), width - 2));
  6343. - getyx(win, y, x);
  6344. /* Clear 'residue' of previous line */
  6345. #if OLD_NCURSES
  6346. {
  6347. + int x = getcurx(win);
  6348. int i;
  6349. for (i = 0; i < width - x; i++)
  6350. waddch(win, ' ');
  6351. @@ -355,10 +374,8 @@
  6352. end_reached = 0;
  6353. while (*page != '\n') {
  6354. if (*page == '\0') {
  6355. - if (!end_reached) {
  6356. - end_reached = 1;
  6357. - break;
  6358. - }
  6359. + end_reached = 1;
  6360. + break;
  6361. } else if (i < MAX_LEN)
  6362. line[i++] = *(page++);
  6363. else {
  6364. @@ -371,7 +388,7 @@
  6365. if (i <= MAX_LEN)
  6366. line[i] = '\0';
  6367. if (!end_reached)
  6368. - page++; /* move pass '\n' */
  6369. + page++; /* move past '\n' */
  6370. return line;
  6371. }
  6372. diff -Nur uClibc-0.9.33.2/extra/config/lxdialog/util.c uClibc-git/extra/config/lxdialog/util.c
  6373. --- uClibc-0.9.33.2/extra/config/lxdialog/util.c 2012-05-15 09:20:09.000000000 +0200
  6374. +++ uClibc-git/extra/config/lxdialog/util.c 2014-06-02 17:40:33.746710502 +0200
  6375. @@ -19,8 +19,13 @@
  6376. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  6377. */
  6378. +#include <stdarg.h>
  6379. +
  6380. #include "dialog.h"
  6381. +/* Needed in signal handler in mconf.c */
  6382. +int saved_x, saved_y;
  6383. +
  6384. struct dialog_info dlg;
  6385. static void set_mono_theme(void)
  6386. @@ -249,15 +254,56 @@
  6387. void dialog_clear(void)
  6388. {
  6389. - attr_clear(stdscr, LINES, COLS, dlg.screen.atr);
  6390. + int lines, columns;
  6391. +
  6392. + lines = getmaxy(stdscr);
  6393. + columns = getmaxx(stdscr);
  6394. +
  6395. + attr_clear(stdscr, lines, columns, dlg.screen.atr);
  6396. /* Display background title if it exists ... - SLH */
  6397. if (dlg.backtitle != NULL) {
  6398. - int i;
  6399. + int i, len = 0, skip = 0;
  6400. + struct subtitle_list *pos;
  6401. wattrset(stdscr, dlg.screen.atr);
  6402. mvwaddstr(stdscr, 0, 1, (char *)dlg.backtitle);
  6403. +
  6404. + for (pos = dlg.subtitles; pos != NULL; pos = pos->next) {
  6405. + /* 3 is for the arrow and spaces */
  6406. + len += strlen(pos->text) + 3;
  6407. + }
  6408. +
  6409. wmove(stdscr, 1, 1);
  6410. - for (i = 1; i < COLS - 1; i++)
  6411. + if (len > columns - 2) {
  6412. + const char *ellipsis = "[...] ";
  6413. + waddstr(stdscr, ellipsis);
  6414. + skip = len - (columns - 2 - strlen(ellipsis));
  6415. + }
  6416. +
  6417. + for (pos = dlg.subtitles; pos != NULL; pos = pos->next) {
  6418. + if (skip == 0)
  6419. + waddch(stdscr, ACS_RARROW);
  6420. + else
  6421. + skip--;
  6422. +
  6423. + if (skip == 0)
  6424. + waddch(stdscr, ' ');
  6425. + else
  6426. + skip--;
  6427. +
  6428. + if (skip < strlen(pos->text)) {
  6429. + waddstr(stdscr, pos->text + skip);
  6430. + skip = 0;
  6431. + } else
  6432. + skip -= strlen(pos->text);
  6433. +
  6434. + if (skip == 0)
  6435. + waddch(stdscr, ' ');
  6436. + else
  6437. + skip--;
  6438. + }
  6439. +
  6440. + for (i = len + 1; i < columns - 1; i++)
  6441. waddch(stdscr, ACS_HLINE);
  6442. }
  6443. wnoutrefresh(stdscr);
  6444. @@ -271,8 +317,12 @@
  6445. int height, width;
  6446. initscr(); /* Init curses */
  6447. +
  6448. + /* Get current cursor position for signal handler in mconf.c */
  6449. + getyx(stdscr, saved_y, saved_x);
  6450. +
  6451. getmaxyx(stdscr, height, width);
  6452. - if (height < 19 || width < 80) {
  6453. + if (height < WINDOW_HEIGTH_MIN || width < WINDOW_WIDTH_MIN) {
  6454. endwin();
  6455. return -ERRDISPLAYTOOSMALL;
  6456. }
  6457. @@ -293,6 +343,11 @@
  6458. dlg.backtitle = backtitle;
  6459. }
  6460. +void set_dialog_subtitles(struct subtitle_list *subtitles)
  6461. +{
  6462. + dlg.subtitles = subtitles;
  6463. +}
  6464. +
  6465. /*
  6466. * End using dialog functions.
  6467. */
  6468. @@ -321,27 +376,19 @@
  6469. /*
  6470. * Print a string of text in a window, automatically wrap around to the
  6471. * next line if the string is too long to fit on one line. Newline
  6472. - * characters '\n' are replaced by spaces. We start on a new line
  6473. + * characters '\n' are propperly processed. We start on a new line
  6474. * if there is no room for at least 4 nonblanks following a double-space.
  6475. */
  6476. void print_autowrap(WINDOW * win, const char *prompt, int width, int y, int x)
  6477. {
  6478. int newl, cur_x, cur_y;
  6479. - int i, prompt_len, room, wlen;
  6480. - char tempstr[MAX_LEN + 1], *word, *sp, *sp2;
  6481. + int prompt_len, room, wlen;
  6482. + char tempstr[MAX_LEN + 1], *word, *sp, *sp2, *newline_separator = 0;
  6483. strcpy(tempstr, prompt);
  6484. prompt_len = strlen(tempstr);
  6485. - /*
  6486. - * Remove newlines
  6487. - */
  6488. - for (i = 0; i < prompt_len; i++) {
  6489. - if (tempstr[i] == '\n')
  6490. - tempstr[i] = ' ';
  6491. - }
  6492. -
  6493. if (prompt_len <= width - x * 2) { /* If prompt is short */
  6494. wmove(win, y, (width - prompt_len) / 2);
  6495. waddstr(win, tempstr);
  6496. @@ -351,7 +398,10 @@
  6497. newl = 1;
  6498. word = tempstr;
  6499. while (word && *word) {
  6500. - sp = strchr(word, ' ');
  6501. + sp = strpbrk(word, "\n ");
  6502. + if (sp && *sp == '\n')
  6503. + newline_separator = sp;
  6504. +
  6505. if (sp)
  6506. *sp++ = 0;
  6507. @@ -363,7 +413,7 @@
  6508. if (wlen > room ||
  6509. (newl && wlen < 4 && sp
  6510. && wlen + 1 + strlen(sp) > room
  6511. - && (!(sp2 = strchr(sp, ' '))
  6512. + && (!(sp2 = strpbrk(sp, "\n "))
  6513. || wlen + 1 + (sp2 - sp) > room))) {
  6514. cur_y++;
  6515. cur_x = x;
  6516. @@ -371,7 +421,15 @@
  6517. wmove(win, cur_y, cur_x);
  6518. waddstr(win, word);
  6519. getyx(win, cur_y, cur_x);
  6520. - cur_x++;
  6521. +
  6522. + /* Move to the next line if the word separator was a newline */
  6523. + if (newline_separator) {
  6524. + cur_y++;
  6525. + cur_x = x;
  6526. + newline_separator = 0;
  6527. + } else
  6528. + cur_x++;
  6529. +
  6530. if (sp && *sp == ' ') {
  6531. cur_x++; /* double space */
  6532. while (*++sp == ' ') ;
  6533. diff -Nur uClibc-0.9.33.2/extra/config/lxdialog/yesno.c uClibc-git/extra/config/lxdialog/yesno.c
  6534. --- uClibc-0.9.33.2/extra/config/lxdialog/yesno.c 2012-05-15 09:20:09.000000000 +0200
  6535. +++ uClibc-git/extra/config/lxdialog/yesno.c 2014-06-02 17:40:33.746710502 +0200
  6536. @@ -45,14 +45,14 @@
  6537. WINDOW *dialog;
  6538. do_resize:
  6539. - if (getmaxy(stdscr) < (height + 4))
  6540. + if (getmaxy(stdscr) < (height + YESNO_HEIGTH_MIN))
  6541. return -ERRDISPLAYTOOSMALL;
  6542. - if (getmaxx(stdscr) < (width + 4))
  6543. + if (getmaxx(stdscr) < (width + YESNO_WIDTH_MIN))
  6544. return -ERRDISPLAYTOOSMALL;
  6545. /* center dialog box on screen */
  6546. - x = (COLS - width) / 2;
  6547. - y = (LINES - height) / 2;
  6548. + x = (getmaxx(stdscr) - width) / 2;
  6549. + y = (getmaxy(stdscr) - height) / 2;
  6550. draw_shadow(stdscr, y, x, height, width);
  6551. diff -Nur uClibc-0.9.33.2/extra/config/Makefile uClibc-git/extra/config/Makefile
  6552. --- uClibc-0.9.33.2/extra/config/Makefile 2012-05-15 09:20:09.000000000 +0200
  6553. +++ uClibc-git/extra/config/Makefile 2014-06-02 17:40:33.722710369 +0200
  6554. @@ -1,16 +1,17 @@
  6555. top_srcdir ?= ../../
  6556. -include $(top_srcdir)Rules.mak
  6557. -include $(top_srcdir)Makerules
  6558. -
  6559. -# ugh
  6560. -top_srcdir:=$(shell cd $(top_srcdir) && pwd)/
  6561. ifdef O
  6562. top_builddir ?= ../../
  6563. else
  6564. top_builddir = ../../
  6565. endif
  6566. -srctree := $(top_srcdir)
  6567. +
  6568. +include $(top_srcdir)Rules.mak
  6569. +include $(top_srcdir)Makerules
  6570. +
  6571. +# ugh
  6572. +top_srcdir:=$(shell cd $(top_srcdir) && pwd)/
  6573. +
  6574. src := extra/config
  6575. obj := $(top_builddir)$(src)
  6576. @@ -18,29 +19,23 @@
  6577. generated := $(addprefix $(obj)/,$(generated:.c=.o))
  6578. include $(top_srcdir)extra/config/Makefile.kconfig
  6579. -PHONY += $(always)
  6580. -chk-lxdialog := $(top_srcdir)$(src)/lxdialog/check-lxdialog.sh
  6581. -check-lxdialog := cd $(obj) && $(CONFIG_SHELL) $(chk-lxdialog)
  6582. -HOST_EXTRACFLAGS = $(shell $(CONFIG_SHELL) -c '$(check-lxdialog) -ccflags')
  6583. -HOST_LOADLIBES = $(shell $(CONFIG_SHELL) -c '$(check-lxdialog) -ldflags $(HOSTCC)')
  6584. -HOST_EXTRACFLAGS += -DLOCALE
  6585. -HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) -c '$(srctree)/$(src)/check.sh $(HOSTCC) $(HOSTCFLAGS)')
  6586. +HOST_EXTRACFLAGS += -DCONFIG_='""'
  6587. # do not create temporary object in the readonly srctree
  6588. -$(obj)/dochecklxdialog:
  6589. - $(Q)cd $(obj) && $(CONFIG_SHELL) $(chk-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOST_LOADLIBES)
  6590. -HOSTCFLAGS_lex.zconf.o := -I$(top_srcdir)$(src)
  6591. +$(obj)/dochecklxdialog: CONFIG_SHELL:=cd $(obj) && $(CONFIG_SHELL)
  6592. +HOSTCFLAGS_zconf.lex.o := -I$(top_srcdir)$(src)
  6593. HOSTCFLAGS_zconf.tab.o := -I$(top_srcdir)$(src)
  6594. conf-objs := $(addprefix $(obj)/,$(conf-objs))
  6595. mconf-objs := $(addprefix $(obj)/,$(mconf-objs))
  6596. +nconf-objs := $(addprefix $(obj)/,$(nconf-objs))
  6597. kxgettext-objs := $(addprefix $(obj)/,$(kxgettext-objs))
  6598. ifeq ($(findstring mconf,$(MAKECMDGOALS)),mconf)
  6599. hostprogs-y += mconf
  6600. endif
  6601. -
  6602. -#BUILD_CFLAGS-config = -W -Wall -pedantic
  6603. -#BUILD_CFLAGS-lxdialog = -W -Wall -pedantic
  6604. +ifeq ($(findstring nconf,$(MAKECMDGOALS)),nconf)
  6605. +hostprogs-y += nconf
  6606. +endif
  6607. __hostprogs := $(sort $(hostprogs-y) $(hostprogs-m))
  6608. host-csingle:= $(foreach m,$(__hostprogs),$(if $($(m)-objs),,$(m)))
  6609. @@ -48,16 +43,18 @@
  6610. $(if $($(m)-cxxobjs),,$(if $($(m)-objs),$(m))))
  6611. host-cobjs := $(sort $(foreach m,$(__hostprogs),$($(m)-objs)))
  6612. -conf mconf kxgettext: %: $(obj)/%
  6613. -$(obj)/conf $(obj)/mconf $(obj)/kxgettext: BUILD_LDFLAGS=$(HOST_LOADLIBES)
  6614. +conf mconf nconf kxgettext: %: $(obj)/%
  6615. +$(obj)/conf $(obj)/mconf $(obj)/nconf $(obj)/kxgettext: BUILD_LDFLAGS=$(HOSTLOADLIBES_$(@F))
  6616. $(obj)/conf: $(conf-objs)
  6617. $(hcompile.u)
  6618. $(obj)/mconf: $(mconf-objs)
  6619. $(hcompile.u)
  6620. +$(obj)/nconf: $(nconf-objs)
  6621. + $(hcompile.u)
  6622. $(obj)/kxgettext: $(kxgettext-objs)
  6623. $(hcompile.u)
  6624. -$(host-csingle) $(host-cmulti) $(host-cobjs): BUILD_CFLAGS=$(HOST_EXTRACFLAGS) \
  6625. +$(host-csingle) $(host-cmulti) $(host-cobjs): BUILD_CFLAGS+=$(HOST_EXTRACFLAGS) \
  6626. $(HOSTCFLAGS) $(HOSTCFLAGS_$(@F))
  6627. host-cobjs.nogen := $(filter-out $(generated),$(host-cobjs))
  6628. @@ -68,19 +65,18 @@
  6629. $(host-cobjs.generated): $(obj)/%.o: $(obj)/%.c
  6630. $(hcompile.o)
  6631. -ifndef LKC_GENPARSER
  6632. +# we use the pre-generated always
  6633. $(obj)/%:: $(top_srcdir)$(src)/%_shipped
  6634. @$(disp_gen)
  6635. $(Q)cat $< > $@
  6636. -endif
  6637. +
  6638. CLEAN_extra/config menuconfig_clean:
  6639. $(do_rm) $(clean-files) $(lxdialog) conf $(wildcard *.o)
  6640. -distclean: clean
  6641. - $(do_rm) $(lxdialog) $(conf-objs) $(mconf-objs) \
  6642. +distclean: CLEAN_extra/config
  6643. + $(Q)$(RM) -r $(lxdialog) $(conf-objs) $(mconf-objs) $(nconf-objs) \
  6644. $(kxgettext-objs) \
  6645. $(hostprogs-y) $(qconf-cxxobjs) $(qconf-objs) $(gconf-objs) \
  6646. - .depend
  6647. - $(do_rm) -r $(top_builddir)include/config
  6648. + .depend \
  6649. + $(top_builddir)include/config $(top_builddir)include/generated
  6650. -FORCE:
  6651. -.PHONY: FORCE clean distclean $(always)
  6652. +.PHONY: clean distclean $(PHONY)
  6653. diff -Nur uClibc-0.9.33.2/extra/config/Makefile.kconfig uClibc-git/extra/config/Makefile.kconfig
  6654. --- uClibc-0.9.33.2/extra/config/Makefile.kconfig 2012-05-15 09:20:09.000000000 +0200
  6655. +++ uClibc-git/extra/config/Makefile.kconfig 2014-06-02 17:40:33.722710369 +0200
  6656. @@ -2,14 +2,18 @@
  6657. # Kernel configuration targets
  6658. # These targets are used from top-level makefile
  6659. -PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config
  6660. +PHONY += oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config \
  6661. + localmodconfig localyesconfig
  6662. ifdef KBUILD_KCONFIG
  6663. Kconfig := $(KBUILD_KCONFIG)
  6664. else
  6665. -Kconfig := arch/$(SRCARCH)/Kconfig
  6666. +Kconfig := Kconfig
  6667. endif
  6668. +# We need this, in case the user has it in its environment
  6669. +unexport CONFIG_
  6670. +
  6671. xconfig: $(obj)/qconf
  6672. $< $(Kconfig)
  6673. @@ -20,91 +24,121 @@
  6674. $< $(Kconfig)
  6675. config: $(obj)/conf
  6676. + $< --oldaskconfig $(Kconfig)
  6677. +
  6678. +nconfig: $(obj)/nconf
  6679. $< $(Kconfig)
  6680. oldconfig: $(obj)/conf
  6681. - $< -o $(Kconfig)
  6682. + $< --$@ $(Kconfig)
  6683. silentoldconfig: $(obj)/conf
  6684. - $< -s $(Kconfig)
  6685. + $(Q)mkdir -p include/generated
  6686. + $< --$@ $(Kconfig)
  6687. +
  6688. +localyesconfig localmodconfig: $(obj)/streamline_config.pl $(obj)/conf
  6689. + $(Q)mkdir -p include/generated
  6690. + $(Q)perl $< --$@ $(srctree) $(Kconfig) > .tmp.config
  6691. + $(Q)if [ -f .config ]; then \
  6692. + cmp -s .tmp.config .config || \
  6693. + (mv -f .config .config.old.1; \
  6694. + mv -f .tmp.config .config; \
  6695. + $(obj)/conf --silentoldconfig $(Kconfig); \
  6696. + mv -f .config.old.1 .config.old) \
  6697. + else \
  6698. + mv -f .tmp.config .config; \
  6699. + $(obj)/conf --silentoldconfig $(Kconfig); \
  6700. + fi
  6701. + $(Q)rm -f .tmp.config
  6702. # Create new linux.pot file
  6703. # Adjust charset to UTF-8 in .po file to accept UTF-8 in Kconfig files
  6704. -# The symlink is used to repair a deficiency in arch/um
  6705. update-po-config: $(obj)/kxgettext $(obj)/gconf.glade.h
  6706. - $(Q)echo " GEN config"
  6707. - $(Q)xgettext --default-domain=linux \
  6708. - --add-comments --keyword=_ --keyword=N_ \
  6709. - --from-code=UTF-8 \
  6710. - --files-from=scripts/kconfig/POTFILES.in \
  6711. + $(Q)echo " GEN config.pot"
  6712. + $(Q)xgettext --default-domain=linux \
  6713. + --add-comments --keyword=_ --keyword=N_ \
  6714. + --from-code=UTF-8 \
  6715. + --files-from=$(srctree)/scripts/kconfig/POTFILES.in \
  6716. + --directory=$(srctree) --directory=$(objtree) \
  6717. --output $(obj)/config.pot
  6718. $(Q)sed -i s/CHARSET/UTF-8/ $(obj)/config.pot
  6719. - $(Q)ln -fs Kconfig.i386 arch/um/Kconfig.arch
  6720. - $(Q)(for i in `ls arch/*/Kconfig`; \
  6721. + $(Q)(for i in `ls $(srctree)/arch/*/Kconfig \
  6722. + $(srctree)/arch/*/um/Kconfig`; \
  6723. do \
  6724. - echo " GEN $$i"; \
  6725. + echo " GEN $$i"; \
  6726. $(obj)/kxgettext $$i \
  6727. >> $(obj)/config.pot; \
  6728. done )
  6729. + $(Q)echo " GEN linux.pot"
  6730. $(Q)msguniq --sort-by-file --to-code=UTF-8 $(obj)/config.pot \
  6731. --output $(obj)/linux.pot
  6732. - $(Q)rm -f arch/um/Kconfig.arch
  6733. $(Q)rm -f $(obj)/config.pot
  6734. -PHONY += randconfig allyesconfig allnoconfig allmodconfig defconfig
  6735. +PHONY += allnoconfig allyesconfig allmodconfig alldefconfig randconfig
  6736. -randconfig: $(obj)/conf
  6737. - $< -r $(Kconfig)
  6738. +allnoconfig allyesconfig allmodconfig alldefconfig randconfig: $(obj)/conf
  6739. + $< --$@ $(Kconfig)
  6740. -allyesconfig: $(obj)/conf
  6741. - $< -y $(Kconfig)
  6742. +PHONY += listnewconfig olddefconfig oldnoconfig savedefconfig defconfig
  6743. -allnoconfig: $(obj)/conf
  6744. - $< -n $(Kconfig)
  6745. +listnewconfig olddefconfig: $(obj)/conf
  6746. + $< --$@ $(Kconfig)
  6747. -allmodconfig: $(obj)/conf
  6748. - $< -m $(Kconfig)
  6749. +# oldnoconfig is an alias of olddefconfig, because people already are dependent
  6750. +# on its behavior(sets new symbols to their default value but not 'n') with the
  6751. +# counter-intuitive name.
  6752. +oldnoconfig: $(obj)/conf
  6753. + $< --olddefconfig $(Kconfig)
  6754. +
  6755. +savedefconfig: $(obj)/conf
  6756. + $< --$@=defconfig $(Kconfig)
  6757. defconfig: $(obj)/conf
  6758. ifeq ($(KBUILD_DEFCONFIG),)
  6759. - $< -d $(Kconfig)
  6760. + $< --defconfig $(Kconfig)
  6761. else
  6762. @echo "*** Default configuration is based on '$(KBUILD_DEFCONFIG)'"
  6763. - $(Q)$< -D arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
  6764. + $(Q)$< --defconfig=arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG) $(Kconfig)
  6765. endif
  6766. %_defconfig: $(obj)/conf
  6767. - $(Q)$< -D arch/$(SRCARCH)/configs/$@ $(Kconfig)
  6768. + $(Q)$< --defconfig=arch/$(SRCARCH)/configs/$@ $(Kconfig)
  6769. # Help text used by make help
  6770. help:
  6771. @echo ' config - Update current config utilising a line-oriented program'
  6772. + @echo ' nconfig - Update current config utilising a ncurses menu based program'
  6773. @echo ' menuconfig - Update current config utilising a menu based program'
  6774. @echo ' xconfig - Update current config utilising a QT based front-end'
  6775. @echo ' gconfig - Update current config utilising a GTK based front-end'
  6776. @echo ' oldconfig - Update current config utilising a provided .config as base'
  6777. - @echo ' silentoldconfig - Same as oldconfig, but quietly'
  6778. - @echo ' randconfig - New config with random answer to all options'
  6779. - @echo ' defconfig - New config with default answer to all options'
  6780. - @echo ' allmodconfig - New config selecting modules when possible'
  6781. - @echo ' allyesconfig - New config where all options are accepted with yes'
  6782. + @echo ' localmodconfig - Update current config disabling modules not loaded'
  6783. + @echo ' localyesconfig - Update current config converting local mods to core'
  6784. + @echo ' silentoldconfig - Same as oldconfig, but quietly, additionally update deps'
  6785. + @echo ' defconfig - New config with default from ARCH supplied defconfig'
  6786. + @echo ' savedefconfig - Save current config as ./defconfig (minimal config)'
  6787. @echo ' allnoconfig - New config where all options are answered with no'
  6788. + @echo ' allyesconfig - New config where all options are accepted with yes'
  6789. + @echo ' allmodconfig - New config selecting modules when possible'
  6790. + @echo ' alldefconfig - New config with all symbols set to default'
  6791. + @echo ' randconfig - New config with random answer to all options'
  6792. + @echo ' listnewconfig - List new options'
  6793. + @echo ' olddefconfig - Same as silentoldconfig but sets new symbols to their default value'
  6794. # lxdialog stuff
  6795. check-lxdialog := $(srctree)/$(src)/lxdialog/check-lxdialog.sh
  6796. # Use recursively expanded variables so we do not call gcc unless
  6797. # we really need to do so. (Do not call gcc as part of make mrproper)
  6798. -HOST_EXTRACFLAGS = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags)
  6799. -HOST_LOADLIBES = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
  6800. -
  6801. -HOST_EXTRACFLAGS += -DLOCALE
  6802. -
  6803. +HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(check-lxdialog) -ccflags) \
  6804. + -DLOCALE
  6805. # ===========================================================================
  6806. # Shared Makefile for the various kconfig executables:
  6807. # conf: Used for defconfig, oldconfig and related targets
  6808. -# mconf: Used for the mconfig target.
  6809. +# nconf: Used for the nconfig target.
  6810. +# Utilizes ncurses
  6811. +# mconf: Used for the menuconfig target
  6812. # Utilizes the lxdialog package
  6813. # qconf: Used for the xconfig target
  6814. # Based on QT which needs to be installed to compile it
  6815. @@ -116,15 +150,27 @@
  6816. lxdialog += lxdialog/textbox.o lxdialog/yesno.o lxdialog/menubox.o
  6817. conf-objs := conf.o zconf.tab.o
  6818. -mconf-objs := mconf.o zconf.tab.o $(lxdialog)
  6819. +mconf-objs := mconf.o zconf.tab.o $(lxdialog)
  6820. +nconf-objs := nconf.o zconf.tab.o nconf.gui.o
  6821. kxgettext-objs := kxgettext.o zconf.tab.o
  6822. +qconf-cxxobjs := qconf.o
  6823. +qconf-objs := zconf.tab.o
  6824. +gconf-objs := gconf.o zconf.tab.o
  6825. +
  6826. +hostprogs-y := conf
  6827. -hostprogs-y := conf qconf gconf kxgettext
  6828. +ifeq ($(MAKECMDGOALS),nconfig)
  6829. + hostprogs-y += nconf
  6830. +endif
  6831. ifeq ($(MAKECMDGOALS),menuconfig)
  6832. hostprogs-y += mconf
  6833. endif
  6834. +ifeq ($(MAKECMDGOALS),update-po-config)
  6835. + hostprogs-y += kxgettext
  6836. +endif
  6837. +
  6838. ifeq ($(MAKECMDGOALS),xconfig)
  6839. qconf-target := 1
  6840. endif
  6841. @@ -134,24 +180,23 @@
  6842. ifeq ($(qconf-target),1)
  6843. -qconf-cxxobjs := qconf.o
  6844. -qconf-objs := kconfig_load.o zconf.tab.o
  6845. + hostprogs-y += qconf
  6846. endif
  6847. ifeq ($(gconf-target),1)
  6848. -gconf-objs := gconf.o kconfig_load.o zconf.tab.o
  6849. + hostprogs-y += gconf
  6850. endif
  6851. -clean-files := lkc_defs.h qconf.moc .tmp_qtcheck \
  6852. - .tmp_gtkcheck zconf.tab.c lex.zconf.c zconf.hash.c gconf.glade.h
  6853. -clean-files += mconf qconf gconf
  6854. +clean-files := qconf.moc .tmp_qtcheck .tmp_gtkcheck
  6855. +clean-files += zconf.tab.c zconf.lex.c zconf.hash.c gconf.glade.h
  6856. +clean-files += mconf qconf gconf nconf
  6857. clean-files += config.pot linux.pot
  6858. # Check that we have the required ncurses stuff installed for lxdialog (menuconfig)
  6859. PHONY += $(obj)/dochecklxdialog
  6860. $(addprefix $(obj)/,$(lxdialog)): $(obj)/dochecklxdialog
  6861. -#$(obj)/dochecklxdialog:
  6862. -# $(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOST_LOADLIBES)
  6863. +$(obj)/dochecklxdialog:
  6864. + $(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOSTLOADLIBES_mconf)
  6865. always := dochecklxdialog
  6866. @@ -159,16 +204,24 @@
  6867. HOST_EXTRACFLAGS += $(shell $(CONFIG_SHELL) $(srctree)/$(src)/check.sh $(HOSTCC) $(HOSTCFLAGS))
  6868. # generated files seem to need this to find local include files
  6869. -HOSTCFLAGS_lex.zconf.o := -I$(src)
  6870. +HOSTCFLAGS_zconf.lex.o := -I$(src)
  6871. HOSTCFLAGS_zconf.tab.o := -I$(src)
  6872. -HOSTLOADLIBES_qconf = $(KC_QT_LIBS) -ldl
  6873. -HOSTCXXFLAGS_qconf.o = $(KC_QT_CFLAGS) -D LKC_DIRECT_LINK
  6874. +LEX_PREFIX_zconf := zconf
  6875. +YACC_PREFIX_zconf := zconf
  6876. +
  6877. +HOSTLOADLIBES_qconf = $(KC_QT_LIBS)
  6878. +HOSTCXXFLAGS_qconf.o = $(KC_QT_CFLAGS)
  6879. HOSTLOADLIBES_gconf = `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0`
  6880. HOSTCFLAGS_gconf.o = `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
  6881. - -D LKC_DIRECT_LINK
  6882. + -Wno-missing-prototypes
  6883. +HOSTLOADLIBES_mconf = $(shell $(CONFIG_SHELL) $(check-lxdialog) -ldflags $(HOSTCC))
  6884. +
  6885. +HOSTLOADLIBES_nconf = $(shell \
  6886. + pkg-config --libs menu panel ncurses 2>/dev/null \
  6887. + || echo "-lmenu -lpanel -lncurses" )
  6888. $(obj)/qconf.o: $(obj)/.tmp_qtcheck
  6889. ifeq ($(qconf-target),1)
  6890. @@ -178,40 +231,48 @@
  6891. # QT needs some extra effort...
  6892. $(obj)/.tmp_qtcheck:
  6893. @set -e; echo " CHECK qt"; dir=""; pkg=""; \
  6894. - pkg-config --exists qt 2> /dev/null && pkg=qt; \
  6895. - pkg-config --exists qt-mt 2> /dev/null && pkg=qt-mt; \
  6896. - if [ -n "$$pkg" ]; then \
  6897. - cflags="\$$(shell pkg-config $$pkg --cflags)"; \
  6898. - libs="\$$(shell pkg-config $$pkg --libs)"; \
  6899. - moc="\$$(shell pkg-config $$pkg --variable=prefix)/bin/moc"; \
  6900. - dir="$$(pkg-config $$pkg --variable=prefix)"; \
  6901. + if ! pkg-config --exists QtCore 2> /dev/null; then \
  6902. + echo "* Unable to find the QT4 tool qmake. Trying to use QT3"; \
  6903. + pkg-config --exists qt 2> /dev/null && pkg=qt; \
  6904. + pkg-config --exists qt-mt 2> /dev/null && pkg=qt-mt; \
  6905. + if [ -n "$$pkg" ]; then \
  6906. + cflags="\$$(shell pkg-config $$pkg --cflags)"; \
  6907. + libs="\$$(shell pkg-config $$pkg --libs)"; \
  6908. + moc="\$$(shell pkg-config $$pkg --variable=prefix)/bin/moc"; \
  6909. + dir="$$(pkg-config $$pkg --variable=prefix)"; \
  6910. + else \
  6911. + for d in $$QTDIR /usr/share/qt* /usr/lib/qt*; do \
  6912. + if [ -f $$d/include/qconfig.h ]; then dir=$$d; break; fi; \
  6913. + done; \
  6914. + if [ -z "$$dir" ]; then \
  6915. + echo >&2 "*"; \
  6916. + echo >&2 "* Unable to find any QT installation. Please make sure that"; \
  6917. + echo >&2 "* the QT4 or QT3 development package is correctly installed and"; \
  6918. + echo >&2 "* either qmake can be found or install pkg-config or set"; \
  6919. + echo >&2 "* the QTDIR environment variable to the correct location."; \
  6920. + echo >&2 "*"; \
  6921. + false; \
  6922. + fi; \
  6923. + libpath=$$dir/lib; lib=qt; osdir=""; \
  6924. + $(HOSTCXX) -print-multi-os-directory > /dev/null 2>&1 && \
  6925. + osdir=x$$($(HOSTCXX) -print-multi-os-directory); \
  6926. + test -d $$libpath/$$osdir && libpath=$$libpath/$$osdir; \
  6927. + test -f $$libpath/libqt-mt.so && lib=qt-mt; \
  6928. + cflags="-I$$dir/include"; \
  6929. + libs="-L$$libpath -Wl,-rpath,$$libpath -l$$lib"; \
  6930. + moc="$$dir/bin/moc"; \
  6931. + fi; \
  6932. + if [ ! -x $$dir/bin/moc -a -x /usr/bin/moc ]; then \
  6933. + echo "*"; \
  6934. + echo "* Unable to find $$dir/bin/moc, using /usr/bin/moc instead."; \
  6935. + echo "*"; \
  6936. + moc="/usr/bin/moc"; \
  6937. + fi; \
  6938. else \
  6939. - for d in $$QTDIR /usr/share/qt* /usr/lib/qt*; do \
  6940. - if [ -f $$d/include/qconfig.h ]; then dir=$$d; break; fi; \
  6941. - done; \
  6942. - if [ -z "$$dir" ]; then \
  6943. - echo "*"; \
  6944. - echo "* Unable to find the QT3 installation. Please make sure that"; \
  6945. - echo "* the QT3 development package is correctly installed and"; \
  6946. - echo "* either install pkg-config or set the QTDIR environment"; \
  6947. - echo "* variable to the correct location."; \
  6948. - echo "*"; \
  6949. - false; \
  6950. - fi; \
  6951. - libpath=$$dir/lib; lib=qt; osdir=""; \
  6952. - $(HOSTCXX) -print-multi-os-directory > /dev/null 2>&1 && \
  6953. - osdir=x$$($(HOSTCXX) -print-multi-os-directory); \
  6954. - test -d $$libpath/$$osdir && libpath=$$libpath/$$osdir; \
  6955. - test -f $$libpath/libqt-mt.so && lib=qt-mt; \
  6956. - cflags="-I$$dir/include"; \
  6957. - libs="-L$$libpath -Wl,-rpath,$$libpath -l$$lib"; \
  6958. - moc="$$dir/bin/moc"; \
  6959. - fi; \
  6960. - if [ ! -x $$dir/bin/moc -a -x /usr/bin/moc ]; then \
  6961. - echo "*"; \
  6962. - echo "* Unable to find $$dir/bin/moc, using /usr/bin/moc instead."; \
  6963. - echo "*"; \
  6964. - moc="/usr/bin/moc"; \
  6965. + cflags="\$$(shell pkg-config QtCore QtGui Qt3Support --cflags)"; \
  6966. + libs="\$$(shell pkg-config QtCore QtGui Qt3Support --libs)"; \
  6967. + moc="\$$(shell pkg-config QtCore --variable=moc_location)"; \
  6968. + [ -n "$$moc" ] || moc="\$$(shell pkg-config QtCore --variable=prefix)/bin/moc"; \
  6969. fi; \
  6970. echo "KC_QT_CFLAGS=$$cflags" > $@; \
  6971. echo "KC_QT_LIBS=$$libs" >> $@; \
  6972. @@ -229,61 +290,33 @@
  6973. if `pkg-config --atleast-version=2.0.0 gtk+-2.0`; then \
  6974. touch $@; \
  6975. else \
  6976. - echo "*"; \
  6977. - echo "* GTK+ is present but version >= 2.0.0 is required."; \
  6978. - echo "*"; \
  6979. + echo >&2 "*"; \
  6980. + echo >&2 "* GTK+ is present but version >= 2.0.0 is required."; \
  6981. + echo >&2 "*"; \
  6982. false; \
  6983. fi \
  6984. else \
  6985. - echo "*"; \
  6986. - echo "* Unable to find the GTK+ installation. Please make sure that"; \
  6987. - echo "* the GTK+ 2.0 development package is correctly installed..."; \
  6988. - echo "* You need gtk+-2.0, glib-2.0 and libglade-2.0."; \
  6989. - echo "*"; \
  6990. + echo >&2 "*"; \
  6991. + echo >&2 "* Unable to find the GTK+ installation. Please make sure that"; \
  6992. + echo >&2 "* the GTK+ 2.0 development package is correctly installed..."; \
  6993. + echo >&2 "* You need gtk+-2.0, glib-2.0 and libglade-2.0."; \
  6994. + echo >&2 "*"; \
  6995. false; \
  6996. fi
  6997. endif
  6998. -$(obj)/zconf.tab.o: $(obj)/lex.zconf.c $(obj)/zconf.hash.c
  6999. -
  7000. -$(obj)/kconfig_load.o: $(obj)/lkc_defs.h
  7001. +$(obj)/zconf.tab.o: $(obj)/zconf.lex.c $(obj)/zconf.hash.c
  7002. -$(obj)/qconf.o: $(obj)/qconf.moc $(obj)/lkc_defs.h
  7003. +$(obj)/qconf.o: $(obj)/qconf.moc
  7004. -$(obj)/gconf.o: $(obj)/lkc_defs.h
  7005. +quiet_cmd_moc = MOC $@
  7006. + cmd_moc = $(KC_QT_MOC) -i $< -o $@
  7007. -$(obj)/%.moc: $(src)/%.h
  7008. - $(KC_QT_MOC) -i $< -o $@
  7009. -
  7010. -$(obj)/lkc_defs.h: $(src)/lkc_proto.h
  7011. - sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/'
  7012. +$(obj)/%.moc: $(src)/%.h $(obj)/.tmp_qtcheck
  7013. + $(call cmd,moc)
  7014. # Extract gconf menu items for I18N support
  7015. $(obj)/gconf.glade.h: $(obj)/gconf.glade
  7016. - intltool-extract --type=gettext/glade $(obj)/gconf.glade
  7017. -
  7018. -###
  7019. -# The following requires flex/bison/gperf
  7020. -# By default we use the _shipped versions, uncomment the following line if
  7021. -# you are modifying the flex/bison src.
  7022. -# LKC_GENPARSER := 1
  7023. -
  7024. -ifdef LKC_GENPARSER
  7025. -
  7026. -$(obj)/zconf.tab.c: $(src)/zconf.y
  7027. -$(obj)/lex.zconf.c: $(src)/zconf.l
  7028. -$(obj)/zconf.hash.c: $(src)/zconf.gperf
  7029. -
  7030. -%.tab.c: %.y
  7031. - bison -l -b $* -p $(notdir $*) $<
  7032. - cp $@ $@_shipped
  7033. -
  7034. -lex.%.c: %.l
  7035. - flex -L -P$(notdir $*) -o$@ $<
  7036. - cp $@ $@_shipped
  7037. -
  7038. -%.hash.c: %.gperf
  7039. - gperf < $< > $@
  7040. - cp $@ $@_shipped
  7041. + $(Q)intltool-extract --type=gettext/glade --srcdir=$(srctree) \
  7042. + $(obj)/gconf.glade
  7043. -endif
  7044. diff -Nur uClibc-0.9.33.2/extra/config/mconf.c uClibc-git/extra/config/mconf.c
  7045. --- uClibc-0.9.33.2/extra/config/mconf.c 2012-05-15 09:20:09.000000000 +0200
  7046. +++ uClibc-git/extra/config/mconf.c 2014-06-02 17:40:33.746710502 +0200
  7047. @@ -15,20 +15,19 @@
  7048. #include <stdarg.h>
  7049. #include <stdlib.h>
  7050. #include <string.h>
  7051. +#include <signal.h>
  7052. #include <unistd.h>
  7053. #include <locale.h>
  7054. -#define LKC_DIRECT_LINK
  7055. #include "lkc.h"
  7056. #include "lxdialog/dialog.h"
  7057. static const char mconf_readme[] = N_(
  7058. "Overview\n"
  7059. "--------\n"
  7060. -"Some features may be built directly into uClibc. Some features\n"
  7061. -"may be completely removed altogether. There are also certain\n"
  7062. -"parameters which are not really features, but must be\n"
  7063. -"entered in as decimal or hexadecimal numbers or possibly text.\n"
  7064. +"This interface let you select features and parameters for the build.\n"
  7065. +"Features can either be built-in, modularized, or ignored. Parameters\n"
  7066. +"must be entered in as decimal or hexadecimal numbers or text.\n"
  7067. "\n"
  7068. "Menu items beginning with following braces represent features that\n"
  7069. " [ ] can be built in or removed\n"
  7070. @@ -49,7 +48,7 @@
  7071. "----------\n"
  7072. "o Use the Up/Down arrow keys (cursor keys) to highlight the item\n"
  7073. " you wish to change or submenu wish to select and press <Enter>.\n"
  7074. -" Submenus are designated by \"--->\".\n"
  7075. +" Submenus are designated by \"--->\", empty ones by \"----\".\n"
  7076. "\n"
  7077. " Shortcut: Press the option's highlighted letter (hotkey).\n"
  7078. " Pressing a hotkey more than once will sequence\n"
  7079. @@ -66,13 +65,15 @@
  7080. " there is a delayed response which you may find annoying.\n"
  7081. "\n"
  7082. " Also, the <TAB> and cursor keys will cycle between <Select>,\n"
  7083. -" <Exit> and <Help>\n"
  7084. +" <Exit> and <Help>.\n"
  7085. "\n"
  7086. "o To get help with an item, use the cursor keys to highlight <Help>\n"
  7087. -" and Press <ENTER>.\n"
  7088. +" and press <ENTER>.\n"
  7089. "\n"
  7090. " Shortcut: Press <H> or <?>.\n"
  7091. "\n"
  7092. +"o To toggle the display of hidden options, press <Z>.\n"
  7093. +"\n"
  7094. "\n"
  7095. "Radiolists (Choice lists)\n"
  7096. "-----------\n"
  7097. @@ -104,10 +105,10 @@
  7098. "Text Box (Help Window)\n"
  7099. "--------\n"
  7100. "o Use the cursor keys to scroll up/down/left/right. The VI editor\n"
  7101. -" keys h,j,k,l function here as do <SPACE BAR> and <B> for those\n"
  7102. -" who are familiar with less and lynx.\n"
  7103. +" keys h,j,k,l function here as do <u>, <d>, <SPACE BAR> and <B> for \n"
  7104. +" those who are familiar with less and lynx.\n"
  7105. "\n"
  7106. -"o Press <E>, <X>, <Enter> or <Esc><Esc> to exit.\n"
  7107. +"o Press <E>, <X>, <q>, <Enter> or <Esc><Esc> to exit.\n"
  7108. "\n"
  7109. "\n"
  7110. "Alternate Configuration Files\n"
  7111. @@ -147,9 +148,9 @@
  7112. "\n"
  7113. "Optional personality available\n"
  7114. "------------------------------\n"
  7115. -"If you prefer to have all of the options listed in a single\n"
  7116. -"menu, rather than the default multimenu hierarchy, run the menuconfig\n"
  7117. -"with MENUCONFIG_MODE environment variable set to single_menu. Example:\n"
  7118. +"If you prefer to have all of the options listed in a single menu, rather\n"
  7119. +"than the default multimenu hierarchy, run the menuconfig with\n"
  7120. +"MENUCONFIG_MODE environment variable set to single_menu. Example:\n"
  7121. "\n"
  7122. "make MENUCONFIG_MODE=single_menu menuconfig\n"
  7123. "\n"
  7124. @@ -175,11 +176,11 @@
  7125. "\n"),
  7126. menu_instructions[] = N_(
  7127. "Arrow keys navigate the menu. "
  7128. - "<Enter> selects submenus --->. "
  7129. + "<Enter> selects submenus ---> (or empty submenus ----). "
  7130. "Highlighted letters are hotkeys. "
  7131. - "Pressing <Y> selectes a feature, while <N> will exclude a feature. "
  7132. + "Pressing <Y> includes, <N> excludes, <M> modularizes features. "
  7133. "Press <Esc><Esc> to exit, <?> for Help, </> for Search. "
  7134. - "Legend: [*] feature is selected [ ] feature is excluded"),
  7135. + "Legend: [*] built-in [ ] excluded <M> module < > module capable"),
  7136. radiolist_instructions[] = N_(
  7137. "Use the arrow keys to navigate this window or "
  7138. "press the hotkey of the item you wish to select "
  7139. @@ -198,8 +199,6 @@
  7140. setmod_text[] = N_(
  7141. "This feature depends on another which has been configured as a module.\n"
  7142. "As a result, this feature will be built as a module."),
  7143. -nohelp_text[] = N_(
  7144. - "There is no help available for this option.\n"),
  7145. load_config_text[] = N_(
  7146. "Enter the name of the configuration file you wish to load. "
  7147. "Accept the name shown to restore the configuration you "
  7148. @@ -210,18 +209,18 @@
  7149. "configurations available on a single machine.\n"
  7150. "\n"
  7151. "If you have saved a previous configuration in a file other than the\n"
  7152. - "default, entering the name of the file here will allow you\n"
  7153. - "to modify that configuration.\n"
  7154. + "default one, entering its name here will allow you to modify that\n"
  7155. + "configuration.\n"
  7156. "\n"
  7157. "If you are uncertain, then you have probably never used alternate\n"
  7158. - "configuration files. You should therefor leave this blank to abort.\n"),
  7159. + "configuration files. You should therefore leave this blank to abort.\n"),
  7160. save_config_text[] = N_(
  7161. "Enter a filename to which this configuration should be saved "
  7162. "as an alternate. Leave blank to abort."),
  7163. save_config_help[] = N_(
  7164. "\n"
  7165. - "For various reasons, one may wish to keep different\n"
  7166. - "configurations available on a single machine.\n"
  7167. + "For various reasons, one may wish to keep different configurations\n"
  7168. + "available on a single machine.\n"
  7169. "\n"
  7170. "Entering a file name here will allow you to later retrieve, modify\n"
  7171. "and use the current configuration as an alternate to whatever\n"
  7172. @@ -231,32 +230,39 @@
  7173. "leave this blank.\n"),
  7174. search_help[] = N_(
  7175. "\n"
  7176. - "Search for CONFIG_ symbols and display their relations.\n"
  7177. + "Search for symbols and display their relations.\n"
  7178. "Regular expressions are allowed.\n"
  7179. "Example: search for \"^FOO\"\n"
  7180. "Result:\n"
  7181. "-----------------------------------------------------------------\n"
  7182. "Symbol: FOO [=m]\n"
  7183. + "Type : tristate\n"
  7184. "Prompt: Foo bus is used to drive the bar HW\n"
  7185. - "Defined at drivers/pci/Kconfig:47\n"
  7186. - "Depends on: X86_LOCAL_APIC && X86_IO_APIC || IA64\n"
  7187. - "Location:\n"
  7188. - " -> Bus options (PCI, PCMCIA, EISA, MCA, ISA)\n"
  7189. - " -> PCI support (PCI [=y])\n"
  7190. - " -> PCI access mode (<choice> [=y])\n"
  7191. - "Selects: LIBCRC32\n"
  7192. - "Selected by: BAR\n"
  7193. + " Defined at drivers/pci/Kconfig:47\n"
  7194. + " Depends on: X86_LOCAL_APIC && X86_IO_APIC || IA64\n"
  7195. + " Location:\n"
  7196. + " -> Bus options (PCI, PCMCIA, EISA, ISA)\n"
  7197. + " -> PCI support (PCI [=y])\n"
  7198. + "(1) -> PCI access mode (<choice> [=y])\n"
  7199. + " Selects: LIBCRC32\n"
  7200. + " Selected by: BAR\n"
  7201. "-----------------------------------------------------------------\n"
  7202. + "o The line 'Type:' shows the type of the configuration option for\n"
  7203. + " this symbol (boolean, tristate, string, ...)\n"
  7204. "o The line 'Prompt:' shows the text used in the menu structure for\n"
  7205. - " this CONFIG_ symbol\n"
  7206. + " this symbol\n"
  7207. "o The 'Defined at' line tell at what file / line number the symbol\n"
  7208. " is defined\n"
  7209. "o The 'Depends on:' line tell what symbols needs to be defined for\n"
  7210. " this symbol to be visible in the menu (selectable)\n"
  7211. "o The 'Location:' lines tell where in the menu structure this symbol\n"
  7212. " is located\n"
  7213. - " A location followed by a [=y] indicate that this is a selectable\n"
  7214. - " menu item - and current value is displayed inside brackets.\n"
  7215. + " A location followed by a [=y] indicates that this is a\n"
  7216. + " selectable menu item - and the current value is displayed inside\n"
  7217. + " brackets.\n"
  7218. + " Press the key in the (#) prefix to jump directly to that\n"
  7219. + " location. You will be returned to the current search results\n"
  7220. + " after exiting this new menu.\n"
  7221. "o The 'Selects:' line tell what symbol will be automatically\n"
  7222. " selected if this symbol is selected (y or m)\n"
  7223. "o The 'Selected by' line tell what symbol has selected this symbol\n"
  7224. @@ -264,131 +270,144 @@
  7225. "Only relevant lines are shown.\n"
  7226. "\n\n"
  7227. "Search examples:\n"
  7228. - "Examples: USB => find all CONFIG_ symbols containing USB\n"
  7229. - " ^USB => find all CONFIG_ symbols starting with USB\n"
  7230. - " USB$ => find all CONFIG_ symbols ending with USB\n"
  7231. + "Examples: USB => find all symbols containing USB\n"
  7232. + " ^USB => find all symbols starting with USB\n"
  7233. + " USB$ => find all symbols ending with USB\n"
  7234. "\n");
  7235. static int indent;
  7236. static struct menu *current_menu;
  7237. static int child_count;
  7238. static int single_menu_mode;
  7239. +static int show_all_options;
  7240. +static int save_and_exit;
  7241. -static void conf(struct menu *menu);
  7242. +static void conf(struct menu *menu, struct menu *active_menu);
  7243. static void conf_choice(struct menu *menu);
  7244. static void conf_string(struct menu *menu);
  7245. static void conf_load(void);
  7246. static void conf_save(void);
  7247. +static int show_textbox_ext(const char *title, char *text, int r, int c,
  7248. + int *keys, int *vscroll, int *hscroll,
  7249. + update_text_fn update_text, void *data);
  7250. static void show_textbox(const char *title, const char *text, int r, int c);
  7251. static void show_helptext(const char *title, const char *text);
  7252. static void show_help(struct menu *menu);
  7253. -static void get_prompt_str(struct gstr *r, struct property *prop)
  7254. +static char filename[PATH_MAX+1];
  7255. +static void set_config_filename(const char *config_filename)
  7256. {
  7257. - int i, j;
  7258. - struct menu *submenu[8], *menu;
  7259. + static char menu_backtitle[PATH_MAX+128];
  7260. + int size;
  7261. - str_printf(r, _("Prompt: %s\n"), _(prop->text));
  7262. - str_printf(r, _(" Defined at %s:%d\n"), prop->menu->file->name,
  7263. - prop->menu->lineno);
  7264. - if (!expr_is_yes(prop->visible.expr)) {
  7265. - str_append(r, _(" Depends on: "));
  7266. - expr_gstr_print(prop->visible.expr, r);
  7267. - str_append(r, "\n");
  7268. - }
  7269. - menu = prop->menu->parent;
  7270. - for (i = 0; menu != &rootmenu && i < 8; menu = menu->parent)
  7271. - submenu[i++] = menu;
  7272. - if (i > 0) {
  7273. - str_printf(r, _(" Location:\n"));
  7274. - for (j = 4; --i >= 0; j += 2) {
  7275. - menu = submenu[i];
  7276. - str_printf(r, "%*c-> %s", j, ' ', _(menu_get_prompt(menu)));
  7277. - if (menu->sym) {
  7278. - str_printf(r, " (%s [=%s])", menu->sym->name ?
  7279. - menu->sym->name : _("<choice>"),
  7280. - sym_get_string_value(menu->sym));
  7281. - }
  7282. - str_append(r, "\n");
  7283. - }
  7284. - }
  7285. + size = snprintf(menu_backtitle, sizeof(menu_backtitle),
  7286. + "%s - %s", config_filename, rootmenu.prompt->text);
  7287. + if (size >= sizeof(menu_backtitle))
  7288. + menu_backtitle[sizeof(menu_backtitle)-1] = '\0';
  7289. + set_dialog_backtitle(menu_backtitle);
  7290. +
  7291. + size = snprintf(filename, sizeof(filename), "%s", config_filename);
  7292. + if (size >= sizeof(filename))
  7293. + filename[sizeof(filename)-1] = '\0';
  7294. }
  7295. -static void get_symbol_str(struct gstr *r, struct symbol *sym)
  7296. +struct subtitle_part {
  7297. + struct list_head entries;
  7298. + const char *text;
  7299. +};
  7300. +static LIST_HEAD(trail);
  7301. +
  7302. +static struct subtitle_list *subtitles;
  7303. +static void set_subtitle(void)
  7304. {
  7305. - bool hit;
  7306. - struct property *prop;
  7307. + struct subtitle_part *sp;
  7308. + struct subtitle_list *pos, *tmp;
  7309. - if (sym && sym->name)
  7310. - str_printf(r, "Symbol: %s [=%s]\n", sym->name,
  7311. - sym_get_string_value(sym));
  7312. - for_all_prompts(sym, prop)
  7313. - get_prompt_str(r, prop);
  7314. - hit = false;
  7315. - for_all_properties(sym, prop, P_SELECT) {
  7316. - if (!hit) {
  7317. - str_append(r, " Selects: ");
  7318. - hit = true;
  7319. - } else
  7320. - str_printf(r, " && ");
  7321. - expr_gstr_print(prop->expr, r);
  7322. + for (pos = subtitles; pos != NULL; pos = tmp) {
  7323. + tmp = pos->next;
  7324. + free(pos);
  7325. }
  7326. - if (hit)
  7327. - str_append(r, "\n");
  7328. - if (sym->rev_dep.expr) {
  7329. - str_append(r, _(" Selected by: "));
  7330. - expr_gstr_print(sym->rev_dep.expr, r);
  7331. - str_append(r, "\n");
  7332. +
  7333. + subtitles = NULL;
  7334. + list_for_each_entry(sp, &trail, entries) {
  7335. + if (sp->text) {
  7336. + if (pos) {
  7337. + pos->next = xcalloc(sizeof(*pos), 1);
  7338. + pos = pos->next;
  7339. + } else {
  7340. + subtitles = pos = xcalloc(sizeof(*pos), 1);
  7341. + }
  7342. + pos->text = sp->text;
  7343. + }
  7344. }
  7345. - str_append(r, "\n\n");
  7346. +
  7347. + set_dialog_subtitles(subtitles);
  7348. }
  7349. -static struct gstr get_relations_str(struct symbol **sym_arr)
  7350. +static void reset_subtitle(void)
  7351. {
  7352. - struct symbol *sym;
  7353. - struct gstr res = str_new();
  7354. - int i;
  7355. + struct subtitle_list *pos, *tmp;
  7356. - for (i = 0; sym_arr && (sym = sym_arr[i]); i++)
  7357. - get_symbol_str(&res, sym);
  7358. - if (!i)
  7359. - str_append(&res, _("No matches found.\n"));
  7360. - return res;
  7361. + for (pos = subtitles; pos != NULL; pos = tmp) {
  7362. + tmp = pos->next;
  7363. + free(pos);
  7364. + }
  7365. + subtitles = NULL;
  7366. + set_dialog_subtitles(subtitles);
  7367. }
  7368. -static char filename[PATH_MAX+1];
  7369. -static void set_config_filename(const char *config_filename)
  7370. -{
  7371. - static char menu_backtitle[PATH_MAX+128];
  7372. - int size;
  7373. - struct symbol *sym;
  7374. +struct search_data {
  7375. + struct list_head *head;
  7376. + struct menu **targets;
  7377. + int *keys;
  7378. +};
  7379. - sym = sym_lookup("VERSION", 0);
  7380. - sym_calc_value(sym);
  7381. - size = snprintf(menu_backtitle, sizeof(menu_backtitle),
  7382. - _("%s - uClibc v%s Configuration"),
  7383. - config_filename, sym_get_string_value(sym));
  7384. - if (size >= sizeof(menu_backtitle))
  7385. - menu_backtitle[sizeof(menu_backtitle)-1] = '\0';
  7386. - set_dialog_backtitle(menu_backtitle);
  7387. +static void update_text(char *buf, size_t start, size_t end, void *_data)
  7388. +{
  7389. + struct search_data *data = _data;
  7390. + struct jump_key *pos;
  7391. + int k = 0;
  7392. +
  7393. + list_for_each_entry(pos, data->head, entries) {
  7394. + if (pos->offset >= start && pos->offset < end) {
  7395. + char header[4];
  7396. +
  7397. + if (k < JUMP_NB) {
  7398. + int key = '0' + (pos->index % JUMP_NB) + 1;
  7399. +
  7400. + sprintf(header, "(%c)", key);
  7401. + data->keys[k] = key;
  7402. + data->targets[k] = pos->target;
  7403. + k++;
  7404. + } else {
  7405. + sprintf(header, " ");
  7406. + }
  7407. - size = snprintf(filename, sizeof(filename), "%s", config_filename);
  7408. - if (size >= sizeof(filename))
  7409. - filename[sizeof(filename)-1] = '\0';
  7410. + memcpy(buf + pos->offset, header, sizeof(header) - 1);
  7411. + }
  7412. + }
  7413. + data->keys[k] = 0;
  7414. }
  7415. -
  7416. static void search_conf(void)
  7417. {
  7418. struct symbol **sym_arr;
  7419. struct gstr res;
  7420. + struct gstr title;
  7421. char *dialog_input;
  7422. - int dres;
  7423. + int dres, vscroll = 0, hscroll = 0;
  7424. + bool again;
  7425. + struct gstr sttext;
  7426. + struct subtitle_part stpart;
  7427. +
  7428. + title = str_new();
  7429. + str_printf( &title, _("Enter %s (sub)string or regexp to search for "
  7430. + "(with or without \"%s\")"), CONFIG_, CONFIG_);
  7431. +
  7432. again:
  7433. dialog_clear();
  7434. dres = dialog_inputbox(_("Search Configuration Parameter"),
  7435. - _("Enter CONFIG_ (sub)string to search for "
  7436. - "(with or without \"CONFIG\")"),
  7437. + str_get(&title),
  7438. 10, 75, "");
  7439. switch (dres) {
  7440. case 0:
  7441. @@ -397,19 +416,52 @@
  7442. show_helptext(_("Search Configuration"), search_help);
  7443. goto again;
  7444. default:
  7445. + str_free(&title);
  7446. return;
  7447. }
  7448. - /* strip CONFIG_ if necessary */
  7449. + /* strip the prefix if necessary */
  7450. dialog_input = dialog_input_result;
  7451. - if (strncasecmp(dialog_input_result, "CONFIG_", 7) == 0)
  7452. - dialog_input += 7;
  7453. + if (strncasecmp(dialog_input_result, CONFIG_, strlen(CONFIG_)) == 0)
  7454. + dialog_input += strlen(CONFIG_);
  7455. +
  7456. + sttext = str_new();
  7457. + str_printf(&sttext, "Search (%s)", dialog_input_result);
  7458. + stpart.text = str_get(&sttext);
  7459. + list_add_tail(&stpart.entries, &trail);
  7460. sym_arr = sym_re_search(dialog_input);
  7461. - res = get_relations_str(sym_arr);
  7462. + do {
  7463. + LIST_HEAD(head);
  7464. + struct menu *targets[JUMP_NB];
  7465. + int keys[JUMP_NB + 1], i;
  7466. + struct search_data data = {
  7467. + .head = &head,
  7468. + .targets = targets,
  7469. + .keys = keys,
  7470. + };
  7471. + struct jump_key *pos, *tmp;
  7472. +
  7473. + res = get_relations_str(sym_arr, &head);
  7474. + set_subtitle();
  7475. + dres = show_textbox_ext(_("Search Results"), (char *)
  7476. + str_get(&res), 0, 0, keys, &vscroll,
  7477. + &hscroll, &update_text, (void *)
  7478. + &data);
  7479. + again = false;
  7480. + for (i = 0; i < JUMP_NB && keys[i]; i++)
  7481. + if (dres == keys[i]) {
  7482. + conf(targets[i]->parent, targets[i]);
  7483. + again = true;
  7484. + }
  7485. + str_free(&res);
  7486. + list_for_each_entry_safe(pos, tmp, &head, entries)
  7487. + free(pos);
  7488. + } while (again);
  7489. free(sym_arr);
  7490. - show_textbox(_("Search Results"), str_get(&res), 0, 0);
  7491. - str_free(&res);
  7492. + str_free(&title);
  7493. + list_del(trail.prev);
  7494. + str_free(&sttext);
  7495. }
  7496. static void build_conf(struct menu *menu)
  7497. @@ -420,8 +472,16 @@
  7498. int type, tmp, doint = 2;
  7499. tristate val;
  7500. char ch;
  7501. + bool visible;
  7502. - if (!menu_is_visible(menu))
  7503. + /*
  7504. + * note: menu_is_visible() has side effect that it will
  7505. + * recalc the value of the symbol.
  7506. + */
  7507. + visible = menu_is_visible(menu);
  7508. + if (show_all_options && !menu_has_prompt(menu))
  7509. + return;
  7510. + else if (!show_all_options && !visible)
  7511. return;
  7512. sym = menu->sym;
  7513. @@ -438,8 +498,9 @@
  7514. menu->data ? "-->" : "++>",
  7515. indent + 1, ' ', prompt);
  7516. } else
  7517. - item_make(" %*c%s --->", indent + 1, ' ', prompt);
  7518. -
  7519. + item_make(" %*c%s %s",
  7520. + indent + 1, ' ', prompt,
  7521. + menu_is_empty(menu) ? "----" : "--->");
  7522. item_set_tag('m');
  7523. item_set_data(menu);
  7524. if (single_menu_mode && menu->data)
  7525. @@ -570,7 +631,7 @@
  7526. (sym_has_value(sym) || !sym_is_changable(sym)) ?
  7527. "" : _(" (NEW)"));
  7528. if (menu->prompt->type == P_MENU) {
  7529. - item_add_str(" --->");
  7530. + item_add_str(" %s", menu_is_empty(menu) ? "----" : "--->");
  7531. return;
  7532. }
  7533. }
  7534. @@ -582,40 +643,40 @@
  7535. indent -= doint;
  7536. }
  7537. -static void conf(struct menu *menu)
  7538. +static void conf(struct menu *menu, struct menu *active_menu)
  7539. {
  7540. struct menu *submenu;
  7541. const char *prompt = menu_get_prompt(menu);
  7542. + struct subtitle_part stpart;
  7543. struct symbol *sym;
  7544. - struct menu *active_menu = NULL;
  7545. int res;
  7546. int s_scroll = 0;
  7547. + if (menu != &rootmenu)
  7548. + stpart.text = menu_get_prompt(menu);
  7549. + else
  7550. + stpart.text = NULL;
  7551. + list_add_tail(&stpart.entries, &trail);
  7552. +
  7553. while (1) {
  7554. item_reset();
  7555. current_menu = menu;
  7556. build_conf(menu);
  7557. if (!child_count)
  7558. break;
  7559. - if (menu == &rootmenu) {
  7560. - item_make("--- ");
  7561. - item_set_tag(':');
  7562. - item_make(_(" Load an Alternate Configuration File"));
  7563. - item_set_tag('L');
  7564. - item_make(_(" Save an Alternate Configuration File"));
  7565. - item_set_tag('S');
  7566. - }
  7567. + set_subtitle();
  7568. dialog_clear();
  7569. res = dialog_menu(prompt ? _(prompt) : _("Main Menu"),
  7570. _(menu_instructions),
  7571. active_menu, &s_scroll);
  7572. if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL)
  7573. break;
  7574. - if (!item_activate_selected())
  7575. - continue;
  7576. - if (!item_tag())
  7577. - continue;
  7578. -
  7579. + if (item_count() != 0) {
  7580. + if (!item_activate_selected())
  7581. + continue;
  7582. + if (!item_tag())
  7583. + continue;
  7584. + }
  7585. submenu = item_data();
  7586. active_menu = item_data();
  7587. if (submenu)
  7588. @@ -630,32 +691,36 @@
  7589. if (single_menu_mode)
  7590. submenu->data = (void *) (long) !submenu->data;
  7591. else
  7592. - conf(submenu);
  7593. + conf(submenu, NULL);
  7594. break;
  7595. case 't':
  7596. if (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes)
  7597. conf_choice(submenu);
  7598. else if (submenu->prompt->type == P_MENU)
  7599. - conf(submenu);
  7600. + conf(submenu, NULL);
  7601. break;
  7602. case 's':
  7603. conf_string(submenu);
  7604. break;
  7605. - case 'L':
  7606. - conf_load();
  7607. - break;
  7608. - case 'S':
  7609. - conf_save();
  7610. - break;
  7611. }
  7612. break;
  7613. case 2:
  7614. if (sym)
  7615. show_help(submenu);
  7616. - else
  7617. + else {
  7618. + reset_subtitle();
  7619. show_helptext(_("README"), _(mconf_readme));
  7620. + }
  7621. break;
  7622. case 3:
  7623. + reset_subtitle();
  7624. + conf_save();
  7625. + break;
  7626. + case 4:
  7627. + reset_subtitle();
  7628. + conf_load();
  7629. + break;
  7630. + case 5:
  7631. if (item_is_tag('t')) {
  7632. if (sym_set_tristate_value(sym, yes))
  7633. break;
  7634. @@ -663,31 +728,45 @@
  7635. show_textbox(NULL, setmod_text, 6, 74);
  7636. }
  7637. break;
  7638. - case 4:
  7639. + case 6:
  7640. if (item_is_tag('t'))
  7641. sym_set_tristate_value(sym, no);
  7642. break;
  7643. - case 5:
  7644. + case 7:
  7645. if (item_is_tag('t'))
  7646. sym_set_tristate_value(sym, mod);
  7647. break;
  7648. - case 6:
  7649. + case 8:
  7650. if (item_is_tag('t'))
  7651. sym_toggle_tristate_value(sym);
  7652. else if (item_is_tag('m'))
  7653. - conf(submenu);
  7654. + conf(submenu, NULL);
  7655. break;
  7656. - case 7:
  7657. + case 9:
  7658. search_conf();
  7659. break;
  7660. + case 10:
  7661. + show_all_options = !show_all_options;
  7662. + break;
  7663. }
  7664. }
  7665. +
  7666. + list_del(trail.prev);
  7667. }
  7668. -static void show_textbox(const char *title, const char *text, int r, int c)
  7669. +static int show_textbox_ext(const char *title, char *text, int r, int c, int
  7670. + *keys, int *vscroll, int *hscroll, update_text_fn
  7671. + update_text, void *data)
  7672. {
  7673. dialog_clear();
  7674. - dialog_textbox(title, text, r, c);
  7675. + return dialog_textbox(title, text, r, c, keys, vscroll, hscroll,
  7676. + update_text, data);
  7677. +}
  7678. +
  7679. +static void show_textbox(const char *title, const char *text, int r, int c)
  7680. +{
  7681. + show_textbox_ext(title, (char *) text, r, c, (int []) {0}, NULL, NULL,
  7682. + NULL, NULL);
  7683. }
  7684. static void show_helptext(const char *title, const char *text)
  7685. @@ -695,25 +774,24 @@
  7686. show_textbox(title, text, 0, 0);
  7687. }
  7688. +static void conf_message_callback(const char *fmt, va_list ap)
  7689. +{
  7690. + char buf[PATH_MAX+1];
  7691. +
  7692. + vsnprintf(buf, sizeof(buf), fmt, ap);
  7693. + if (save_and_exit)
  7694. + printf("%s", buf);
  7695. + else
  7696. + show_textbox(NULL, buf, 6, 60);
  7697. +}
  7698. +
  7699. static void show_help(struct menu *menu)
  7700. {
  7701. struct gstr help = str_new();
  7702. - struct symbol *sym = menu->sym;
  7703. - if (menu_has_help(menu))
  7704. - {
  7705. - if (sym->name) {
  7706. - str_printf(&help, "%s:\n\n", sym->name);
  7707. - }
  7708. - str_append(&help, _(menu_get_help(menu)));
  7709. - str_append(&help, "\n");
  7710. - } else if (menu_has_help(sym->prop->menu->parent)) {
  7711. - str_append(&help, _(menu_get_help(sym->prop->menu->parent)));
  7712. - str_append(&help, "\n");
  7713. - } else {
  7714. - str_append(&help, nohelp_text);
  7715. - }
  7716. - get_symbol_str(&help, sym);
  7717. + help.max_width = getmaxx(stdscr) - 10;
  7718. + menu_get_ext_help(menu, &help);
  7719. +
  7720. show_helptext(_(menu_get_prompt(menu)), str_get(&help));
  7721. str_free(&help);
  7722. }
  7723. @@ -734,7 +812,12 @@
  7724. for (child = menu->list; child; child = child->next) {
  7725. if (!menu_is_visible(child))
  7726. continue;
  7727. - item_make("%s", _(menu_get_prompt(child)));
  7728. + if (child->sym)
  7729. + item_make("%s", _(menu_get_prompt(child)));
  7730. + else {
  7731. + item_make("*** %s ***", _(menu_get_prompt(child)));
  7732. + item_set_tag(':');
  7733. + }
  7734. item_set_data(child);
  7735. if (child->sym == active)
  7736. item_set_selected(1);
  7737. @@ -744,12 +827,17 @@
  7738. dialog_clear();
  7739. res = dialog_checklist(prompt ? _(prompt) : _("Main Menu"),
  7740. _(radiolist_instructions),
  7741. - 15, 70, 6);
  7742. + MENUBOX_HEIGTH_MIN,
  7743. + MENUBOX_WIDTH_MIN,
  7744. + CHECKLIST_HEIGTH_MIN);
  7745. selected = item_activate_selected();
  7746. switch (res) {
  7747. case 0:
  7748. if (selected) {
  7749. child = item_data();
  7750. + if (!child->sym)
  7751. + break;
  7752. +
  7753. sym_set_tristate_value(child->sym, yes);
  7754. }
  7755. return;
  7756. @@ -863,9 +951,58 @@
  7757. }
  7758. }
  7759. +static int handle_exit(void)
  7760. +{
  7761. + int res;
  7762. +
  7763. + save_and_exit = 1;
  7764. + reset_subtitle();
  7765. + dialog_clear();
  7766. + if (conf_get_changed())
  7767. + res = dialog_yesno(NULL,
  7768. + _("Do you wish to save your new configuration?\n"
  7769. + "(Press <ESC><ESC> to continue configuration.)"),
  7770. + 6, 60);
  7771. + else
  7772. + res = -1;
  7773. +
  7774. + end_dialog(saved_x, saved_y);
  7775. +
  7776. + switch (res) {
  7777. + case 0:
  7778. + if (conf_write(filename)) {
  7779. + fprintf(stderr, _("\n\n"
  7780. + "Error while writing of the configuration.\n"
  7781. + "Your configuration changes were NOT saved."
  7782. + "\n\n"));
  7783. + return 1;
  7784. + }
  7785. + /* fall through */
  7786. + case -1:
  7787. + printf(_("\n\n"
  7788. + "*** End of the configuration.\n"
  7789. + "*** Execute 'make' to start the build or try 'make help'."
  7790. + "\n\n"));
  7791. + res = 0;
  7792. + break;
  7793. + default:
  7794. + fprintf(stderr, _("\n\n"
  7795. + "Your configuration changes were NOT saved."
  7796. + "\n\n"));
  7797. + if (res != KEY_ESC)
  7798. + res = 0;
  7799. + }
  7800. +
  7801. + return res;
  7802. +}
  7803. +
  7804. +static void sig_handler(int signo)
  7805. +{
  7806. + exit(handle_exit());
  7807. +}
  7808. +
  7809. int main(int ac, char **av)
  7810. {
  7811. - int saved_x, saved_y;
  7812. char *mode;
  7813. int res;
  7814. @@ -873,6 +1010,8 @@
  7815. bindtextdomain(PACKAGE, LOCALEDIR);
  7816. textdomain(PACKAGE);
  7817. + signal(SIGINT, sig_handler);
  7818. +
  7819. conf_parse(av[1]);
  7820. conf_read(NULL);
  7821. @@ -882,7 +1021,6 @@
  7822. single_menu_mode = 1;
  7823. }
  7824. - getyx(stdscr, saved_y, saved_x);
  7825. if (init_dialog(NULL)) {
  7826. fprintf(stderr, N_("Your display is too small to run Menuconfig!\n"));
  7827. fprintf(stderr, N_("It must be at least 19 lines by 80 columns.\n"));
  7828. @@ -890,41 +1028,12 @@
  7829. }
  7830. set_config_filename(conf_get_configname());
  7831. + conf_set_message_callback(conf_message_callback);
  7832. do {
  7833. - conf(&rootmenu);
  7834. - dialog_clear();
  7835. - if (conf_get_changed())
  7836. - res = dialog_yesno(NULL,
  7837. - _("Do you wish to save your "
  7838. - "new configuration?\n"
  7839. - "<ESC><ESC> to continue."),
  7840. - 6, 60);
  7841. - else
  7842. - res = -1;
  7843. + conf(&rootmenu, NULL);
  7844. + res = handle_exit();
  7845. } while (res == KEY_ESC);
  7846. - end_dialog(saved_x, saved_y);
  7847. -
  7848. - switch (res) {
  7849. - case 0:
  7850. - if (conf_write(filename)) {
  7851. - fprintf(stderr, _("\n\n"
  7852. - "Error during writing of the configuration.\n"
  7853. - "Your configuration changes were NOT saved."
  7854. - "\n\n"));
  7855. - return 1;
  7856. - }
  7857. - case -1:
  7858. - printf(_("\n\n"
  7859. - "*** End of configuration.\n"
  7860. - "*** Execute 'make' to build or try 'make help'."
  7861. - "\n\n"));
  7862. - break;
  7863. - default:
  7864. - fprintf(stderr, _("\n\n"
  7865. - "Your configuration changes were NOT saved."
  7866. - "\n\n"));
  7867. - }
  7868. - return conf_write_autoconf();
  7869. + return res;
  7870. }
  7871. diff -Nur uClibc-0.9.33.2/extra/config/menu.c uClibc-git/extra/config/menu.c
  7872. --- uClibc-0.9.33.2/extra/config/menu.c 2012-05-15 09:20:09.000000000 +0200
  7873. +++ uClibc-git/extra/config/menu.c 2014-06-02 17:40:33.746710502 +0200
  7874. @@ -3,12 +3,15 @@
  7875. * Released under the terms of the GNU GPL v2.0.
  7876. */
  7877. +#include <ctype.h>
  7878. +#include <stdarg.h>
  7879. #include <stdlib.h>
  7880. #include <string.h>
  7881. -#define LKC_DIRECT_LINK
  7882. #include "lkc.h"
  7883. +static const char nohelp_text[] = "There is no help available for this option.";
  7884. +
  7885. struct menu rootmenu;
  7886. static struct menu **last_entry_ptr;
  7887. @@ -35,7 +38,7 @@
  7888. va_end(ap);
  7889. }
  7890. -void menu_init(void)
  7891. +void _menu_init(void)
  7892. {
  7893. current_entry = current_menu = &rootmenu;
  7894. last_entry_ptr = &rootmenu.list;
  7895. @@ -45,7 +48,7 @@
  7896. {
  7897. struct menu *menu;
  7898. - menu = malloc(sizeof(*menu));
  7899. + menu = xmalloc(sizeof(*menu));
  7900. memset(menu, 0, sizeof(*menu));
  7901. menu->sym = sym;
  7902. menu->parent = current_menu;
  7903. @@ -55,6 +58,8 @@
  7904. *last_entry_ptr = menu;
  7905. last_entry_ptr = &menu->next;
  7906. current_entry = menu;
  7907. + if (sym)
  7908. + menu_add_symbol(P_SYMBOL, sym, NULL);
  7909. }
  7910. void menu_end_entry(void)
  7911. @@ -74,7 +79,7 @@
  7912. current_menu = current_menu->parent;
  7913. }
  7914. -struct expr *menu_check_dep(struct expr *e)
  7915. +static struct expr *menu_check_dep(struct expr *e)
  7916. {
  7917. if (!e)
  7918. return e;
  7919. @@ -133,8 +138,35 @@
  7920. while (isspace(*prompt))
  7921. prompt++;
  7922. }
  7923. - if (current_entry->prompt)
  7924. + if (current_entry->prompt && current_entry != &rootmenu)
  7925. prop_warn(prop, "prompt redefined");
  7926. +
  7927. + /* Apply all upper menus' visibilities to actual prompts. */
  7928. + if(type == P_PROMPT) {
  7929. + struct menu *menu = current_entry;
  7930. +
  7931. + while ((menu = menu->parent) != NULL) {
  7932. + struct expr *dup_expr;
  7933. +
  7934. + if (!menu->visibility)
  7935. + continue;
  7936. + /*
  7937. + * Do not add a reference to the
  7938. + * menu's visibility expression but
  7939. + * use a copy of it. Otherwise the
  7940. + * expression reduction functions
  7941. + * will modify expressions that have
  7942. + * multiple references which can
  7943. + * cause unwanted side effects.
  7944. + */
  7945. + dup_expr = expr_copy(menu->visibility);
  7946. +
  7947. + prop->visible.expr
  7948. + = expr_alloc_and(prop->visible.expr,
  7949. + dup_expr);
  7950. + }
  7951. + }
  7952. +
  7953. current_entry->prompt = prop;
  7954. }
  7955. prop->text = prompt;
  7956. @@ -147,6 +179,12 @@
  7957. return menu_add_prop(type, prompt, NULL, dep);
  7958. }
  7959. +void menu_add_visibility(struct expr *expr)
  7960. +{
  7961. + current_entry->visibility = expr_alloc_and(current_entry->visibility,
  7962. + expr);
  7963. +}
  7964. +
  7965. void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep)
  7966. {
  7967. menu_add_prop(type, NULL, expr, dep);
  7968. @@ -178,13 +216,13 @@
  7969. }
  7970. }
  7971. -static int menu_range_valid_sym(struct symbol *sym, struct symbol *sym2)
  7972. +static int menu_validate_number(struct symbol *sym, struct symbol *sym2)
  7973. {
  7974. return sym2->type == S_INT || sym2->type == S_HEX ||
  7975. (sym2->type == S_UNKNOWN && sym_string_valid(sym, sym2->name));
  7976. }
  7977. -void sym_check_prop(struct symbol *sym)
  7978. +static void sym_check_prop(struct symbol *sym)
  7979. {
  7980. struct property *prop;
  7981. struct symbol *sym2;
  7982. @@ -194,8 +232,17 @@
  7983. if ((sym->type == S_STRING || sym->type == S_INT || sym->type == S_HEX) &&
  7984. prop->expr->type != E_SYMBOL)
  7985. prop_warn(prop,
  7986. - "default for config symbol '%'"
  7987. + "default for config symbol '%s'"
  7988. " must be a single symbol", sym->name);
  7989. + if (prop->expr->type != E_SYMBOL)
  7990. + break;
  7991. + sym2 = prop_get_symbol(prop);
  7992. + if (sym->type == S_HEX || sym->type == S_INT) {
  7993. + if (!menu_validate_number(sym, sym2))
  7994. + prop_warn(prop,
  7995. + "'%s': number is invalid",
  7996. + sym->name);
  7997. + }
  7998. break;
  7999. case P_SELECT:
  8000. sym2 = prop_get_symbol(prop);
  8001. @@ -215,8 +262,8 @@
  8002. if (sym->type != S_INT && sym->type != S_HEX)
  8003. prop_warn(prop, "range is only allowed "
  8004. "for int or hex symbols");
  8005. - if (!menu_range_valid_sym(sym, prop->expr->left.sym) ||
  8006. - !menu_range_valid_sym(sym, prop->expr->right.sym))
  8007. + if (!menu_validate_number(sym, prop->expr->left.sym) ||
  8008. + !menu_validate_number(sym, prop->expr->right.sym))
  8009. prop_warn(prop, "range is invalid");
  8010. break;
  8011. default:
  8012. @@ -315,6 +362,8 @@
  8013. parent->next = last_menu->next;
  8014. last_menu->next = NULL;
  8015. }
  8016. +
  8017. + sym->dir_dep.expr = expr_alloc_or(sym->dir_dep.expr, parent->dep);
  8018. }
  8019. for (menu = parent->list; menu; menu = menu->next) {
  8020. if (sym && sym_is_choice(sym) &&
  8021. @@ -387,6 +436,29 @@
  8022. }
  8023. }
  8024. +bool menu_has_prompt(struct menu *menu)
  8025. +{
  8026. + if (!menu->prompt)
  8027. + return false;
  8028. + return true;
  8029. +}
  8030. +
  8031. +/*
  8032. + * Determine if a menu is empty.
  8033. + * A menu is considered empty if it contains no or only
  8034. + * invisible entries.
  8035. + */
  8036. +bool menu_is_empty(struct menu *menu)
  8037. +{
  8038. + struct menu *child;
  8039. +
  8040. + for (child = menu->list; child; child = child->next) {
  8041. + if (menu_is_visible(child))
  8042. + return(false);
  8043. + }
  8044. + return(true);
  8045. +}
  8046. +
  8047. bool menu_is_visible(struct menu *menu)
  8048. {
  8049. struct menu *child;
  8050. @@ -395,6 +467,12 @@
  8051. if (!menu->prompt)
  8052. return false;
  8053. +
  8054. + if (menu->visibility) {
  8055. + if (expr_calc_value(menu->visibility) == no)
  8056. + return no;
  8057. + }
  8058. +
  8059. sym = menu->sym;
  8060. if (sym) {
  8061. sym_calc_value(sym);
  8062. @@ -404,12 +482,18 @@
  8063. if (visible != no)
  8064. return true;
  8065. +
  8066. if (!sym || sym_get_tristate_value(menu->sym) == no)
  8067. return false;
  8068. - for (child = menu->list; child; child = child->next)
  8069. - if (menu_is_visible(child))
  8070. + for (child = menu->list; child; child = child->next) {
  8071. + if (menu_is_visible(child)) {
  8072. + if (sym)
  8073. + sym->flags |= SYMBOL_DEF_USER;
  8074. return true;
  8075. + }
  8076. + }
  8077. +
  8078. return false;
  8079. }
  8080. @@ -451,3 +535,156 @@
  8081. else
  8082. return "";
  8083. }
  8084. +
  8085. +static void get_prompt_str(struct gstr *r, struct property *prop,
  8086. + struct list_head *head)
  8087. +{
  8088. + int i, j;
  8089. + struct menu *submenu[8], *menu, *location = NULL;
  8090. + struct jump_key *jump;
  8091. +
  8092. + str_printf(r, _("Prompt: %s\n"), _(prop->text));
  8093. + menu = prop->menu->parent;
  8094. + for (i = 0; menu != &rootmenu && i < 8; menu = menu->parent) {
  8095. + bool accessible = menu_is_visible(menu);
  8096. +
  8097. + submenu[i++] = menu;
  8098. + if (location == NULL && accessible)
  8099. + location = menu;
  8100. + }
  8101. + if (head && location) {
  8102. + jump = xmalloc(sizeof(struct jump_key));
  8103. +
  8104. + if (menu_is_visible(prop->menu)) {
  8105. + /*
  8106. + * There is not enough room to put the hint at the
  8107. + * beginning of the "Prompt" line. Put the hint on the
  8108. + * last "Location" line even when it would belong on
  8109. + * the former.
  8110. + */
  8111. + jump->target = prop->menu;
  8112. + } else
  8113. + jump->target = location;
  8114. +
  8115. + if (list_empty(head))
  8116. + jump->index = 0;
  8117. + else
  8118. + jump->index = list_entry(head->prev, struct jump_key,
  8119. + entries)->index + 1;
  8120. +
  8121. + list_add_tail(&jump->entries, head);
  8122. + }
  8123. +
  8124. + if (i > 0) {
  8125. + str_printf(r, _(" Location:\n"));
  8126. + for (j = 4; --i >= 0; j += 2) {
  8127. + menu = submenu[i];
  8128. + if (head && location && menu == location)
  8129. + jump->offset = r->len - 1;
  8130. + str_printf(r, "%*c-> %s", j, ' ',
  8131. + _(menu_get_prompt(menu)));
  8132. + if (menu->sym) {
  8133. + str_printf(r, " (%s [=%s])", menu->sym->name ?
  8134. + menu->sym->name : _("<choice>"),
  8135. + sym_get_string_value(menu->sym));
  8136. + }
  8137. + str_append(r, "\n");
  8138. + }
  8139. + }
  8140. +}
  8141. +
  8142. +/*
  8143. + * get peoperty of type P_SYMBOL
  8144. + */
  8145. +static struct property *get_symbol_prop(struct symbol *sym)
  8146. +{
  8147. + struct property *prop = NULL;
  8148. +
  8149. + for_all_properties(sym, prop, P_SYMBOL)
  8150. + break;
  8151. + return prop;
  8152. +}
  8153. +
  8154. +/*
  8155. + * head is optional and may be NULL
  8156. + */
  8157. +void get_symbol_str(struct gstr *r, struct symbol *sym,
  8158. + struct list_head *head)
  8159. +{
  8160. + bool hit;
  8161. + struct property *prop;
  8162. +
  8163. + if (sym && sym->name) {
  8164. + str_printf(r, "Symbol: %s [=%s]\n", sym->name,
  8165. + sym_get_string_value(sym));
  8166. + str_printf(r, "Type : %s\n", sym_type_name(sym->type));
  8167. + if (sym->type == S_INT || sym->type == S_HEX) {
  8168. + prop = sym_get_range_prop(sym);
  8169. + if (prop) {
  8170. + str_printf(r, "Range : ");
  8171. + expr_gstr_print(prop->expr, r);
  8172. + str_append(r, "\n");
  8173. + }
  8174. + }
  8175. + }
  8176. + for_all_prompts(sym, prop)
  8177. + get_prompt_str(r, prop, head);
  8178. +
  8179. + prop = get_symbol_prop(sym);
  8180. + if (prop) {
  8181. + str_printf(r, _(" Defined at %s:%d\n"), prop->menu->file->name,
  8182. + prop->menu->lineno);
  8183. + if (!expr_is_yes(prop->visible.expr)) {
  8184. + str_append(r, _(" Depends on: "));
  8185. + expr_gstr_print(prop->visible.expr, r);
  8186. + str_append(r, "\n");
  8187. + }
  8188. + }
  8189. +
  8190. + hit = false;
  8191. + for_all_properties(sym, prop, P_SELECT) {
  8192. + if (!hit) {
  8193. + str_append(r, " Selects: ");
  8194. + hit = true;
  8195. + } else
  8196. + str_printf(r, " && ");
  8197. + expr_gstr_print(prop->expr, r);
  8198. + }
  8199. + if (hit)
  8200. + str_append(r, "\n");
  8201. + if (sym->rev_dep.expr) {
  8202. + str_append(r, _(" Selected by: "));
  8203. + expr_gstr_print(sym->rev_dep.expr, r);
  8204. + str_append(r, "\n");
  8205. + }
  8206. + str_append(r, "\n\n");
  8207. +}
  8208. +
  8209. +struct gstr get_relations_str(struct symbol **sym_arr, struct list_head *head)
  8210. +{
  8211. + struct symbol *sym;
  8212. + struct gstr res = str_new();
  8213. + int i;
  8214. +
  8215. + for (i = 0; sym_arr && (sym = sym_arr[i]); i++)
  8216. + get_symbol_str(&res, sym, head);
  8217. + if (!i)
  8218. + str_append(&res, _("No matches found.\n"));
  8219. + return res;
  8220. +}
  8221. +
  8222. +
  8223. +void menu_get_ext_help(struct menu *menu, struct gstr *help)
  8224. +{
  8225. + struct symbol *sym = menu->sym;
  8226. + const char *help_text = nohelp_text;
  8227. +
  8228. + if (menu_has_help(menu)) {
  8229. + if (sym->name)
  8230. + str_printf(help, "%s%s:\n\n", CONFIG_, sym->name);
  8231. + help_text = menu_get_help(menu);
  8232. + }
  8233. + str_printf(help, "%s\n", _(help_text));
  8234. + if (sym)
  8235. + get_symbol_str(help, sym, NULL);
  8236. +}
  8237. diff -Nur uClibc-0.9.33.2/extra/config/merge_config.sh uClibc-git/extra/config/merge_config.sh
  8238. --- uClibc-0.9.33.2/extra/config/merge_config.sh 1970-01-01 01:00:00.000000000 +0100
  8239. +++ uClibc-git/extra/config/merge_config.sh 2014-06-02 17:40:33.746710502 +0200
  8240. @@ -0,0 +1,150 @@
  8241. +#!/bin/sh
  8242. +# merge_config.sh - Takes a list of config fragment values, and merges
  8243. +# them one by one. Provides warnings on overridden values, and specified
  8244. +# values that did not make it to the resulting .config file (due to missed
  8245. +# dependencies or config symbol removal).
  8246. +#
  8247. +# Portions reused from kconf_check and generate_cfg:
  8248. +# http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-tools/tree/tools/kconf_check
  8249. +# http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-tools/tree/tools/generate_cfg
  8250. +#
  8251. +# Copyright (c) 2009-2010 Wind River Systems, Inc.
  8252. +# Copyright 2011 Linaro
  8253. +#
  8254. +# This program is free software; you can redistribute it and/or modify
  8255. +# it under the terms of the GNU General Public License version 2 as
  8256. +# published by the Free Software Foundation.
  8257. +#
  8258. +# This program is distributed in the hope that it will be useful,
  8259. +# but WITHOUT ANY WARRANTY; without even the implied warranty of
  8260. +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  8261. +# See the GNU General Public License for more details.
  8262. +
  8263. +clean_up() {
  8264. + rm -f $TMP_FILE
  8265. + exit
  8266. +}
  8267. +trap clean_up HUP INT TERM
  8268. +
  8269. +usage() {
  8270. + echo "Usage: $0 [OPTIONS] [CONFIG [...]]"
  8271. + echo " -h display this help text"
  8272. + echo " -m only merge the fragments, do not execute the make command"
  8273. + echo " -n use allnoconfig instead of alldefconfig"
  8274. + echo " -r list redundant entries when merging fragments"
  8275. + echo " -O dir to put generated output files"
  8276. +}
  8277. +
  8278. +MAKE=true
  8279. +ALLTARGET=alldefconfig
  8280. +WARNREDUN=false
  8281. +OUTPUT=.
  8282. +
  8283. +while true; do
  8284. + case $1 in
  8285. + "-n")
  8286. + ALLTARGET=allnoconfig
  8287. + shift
  8288. + continue
  8289. + ;;
  8290. + "-m")
  8291. + MAKE=false
  8292. + shift
  8293. + continue
  8294. + ;;
  8295. + "-h")
  8296. + usage
  8297. + exit
  8298. + ;;
  8299. + "-r")
  8300. + WARNREDUN=true
  8301. + shift
  8302. + continue
  8303. + ;;
  8304. + "-O")
  8305. + if [ -d $2 ];then
  8306. + OUTPUT=$(echo $2 | sed 's/\/*$//')
  8307. + else
  8308. + echo "output directory $2 does not exist" 1>&2
  8309. + exit 1
  8310. + fi
  8311. + shift 2
  8312. + continue
  8313. + ;;
  8314. + *)
  8315. + break
  8316. + ;;
  8317. + esac
  8318. +done
  8319. +
  8320. +INITFILE=$1
  8321. +shift;
  8322. +
  8323. +MERGE_LIST=$*
  8324. +SED_CONFIG_EXP="s/^\(# \)\{0,1\}\(CONFIG_[a-zA-Z0-9_]*\)[= ].*/\2/p"
  8325. +TMP_FILE=$(mktemp ./.tmp.config.XXXXXXXXXX)
  8326. +
  8327. +echo "Using $INITFILE as base"
  8328. +cat $INITFILE > $TMP_FILE
  8329. +
  8330. +# Merge files, printing warnings on overrided values
  8331. +for MERGE_FILE in $MERGE_LIST ; do
  8332. + echo "Merging $MERGE_FILE"
  8333. + CFG_LIST=$(sed -n "$SED_CONFIG_EXP" $MERGE_FILE)
  8334. +
  8335. + for CFG in $CFG_LIST ; do
  8336. + grep -q -w $CFG $TMP_FILE
  8337. + if [ $? -eq 0 ] ; then
  8338. + PREV_VAL=$(grep -w $CFG $TMP_FILE)
  8339. + NEW_VAL=$(grep -w $CFG $MERGE_FILE)
  8340. + if [ "x$PREV_VAL" != "x$NEW_VAL" ] ; then
  8341. + echo Value of $CFG is redefined by fragment $MERGE_FILE:
  8342. + echo Previous value: $PREV_VAL
  8343. + echo New value: $NEW_VAL
  8344. + echo
  8345. + elif [ "$WARNREDUN" = "true" ]; then
  8346. + echo Value of $CFG is redundant by fragment $MERGE_FILE:
  8347. + fi
  8348. + sed -i "/$CFG[ =]/d" $TMP_FILE
  8349. + fi
  8350. + done
  8351. + cat $MERGE_FILE >> $TMP_FILE
  8352. +done
  8353. +
  8354. +if [ "$MAKE" = "false" ]; then
  8355. + cp $TMP_FILE $OUTPUT/.config
  8356. + echo "#"
  8357. + echo "# merged configuration written to $OUTPUT/.config (needs make)"
  8358. + echo "#"
  8359. + clean_up
  8360. + exit
  8361. +fi
  8362. +
  8363. +# If we have an output dir, setup the O= argument, otherwise leave
  8364. +# it blank, since O=. will create an unnecessary ./source softlink
  8365. +OUTPUT_ARG=""
  8366. +if [ "$OUTPUT" != "." ] ; then
  8367. + OUTPUT_ARG="O=$OUTPUT"
  8368. +fi
  8369. +
  8370. +
  8371. +# Use the merged file as the starting point for:
  8372. +# alldefconfig: Fills in any missing symbols with Kconfig default
  8373. +# allnoconfig: Fills in any missing symbols with # CONFIG_* is not set
  8374. +make KCONFIG_ALLCONFIG=$TMP_FILE $OUTPUT_ARG $ALLTARGET
  8375. +
  8376. +
  8377. +# Check all specified config values took (might have missed-dependency issues)
  8378. +for CFG in $(sed -n "$SED_CONFIG_EXP" $TMP_FILE); do
  8379. +
  8380. + REQUESTED_VAL=$(grep -w -e "$CFG" $TMP_FILE)
  8381. + ACTUAL_VAL=$(grep -w -e "$CFG" $OUTPUT/.config)
  8382. + if [ "x$REQUESTED_VAL" != "x$ACTUAL_VAL" ] ; then
  8383. + echo "Value requested for $CFG not in final .config"
  8384. + echo "Requested value: $REQUESTED_VAL"
  8385. + echo "Actual value: $ACTUAL_VAL"
  8386. + echo ""
  8387. + fi
  8388. +done
  8389. +
  8390. +clean_up
  8391. diff -Nur uClibc-0.9.33.2/extra/config/nconf.c uClibc-git/extra/config/nconf.c
  8392. --- uClibc-0.9.33.2/extra/config/nconf.c 1970-01-01 01:00:00.000000000 +0100
  8393. +++ uClibc-git/extra/config/nconf.c 2014-06-02 17:40:33.746710502 +0200
  8394. @@ -0,0 +1,1557 @@
  8395. +/*
  8396. + * Copyright (C) 2008 Nir Tzachar <nir.tzachar@gmail.com?
  8397. + * Released under the terms of the GNU GPL v2.0.
  8398. + *
  8399. + * Derived from menuconfig.
  8400. + *
  8401. + */
  8402. +#define _GNU_SOURCE
  8403. +#include <string.h>
  8404. +#include <stdlib.h>
  8405. +
  8406. +#include "lkc.h"
  8407. +#include "nconf.h"
  8408. +#include <ctype.h>
  8409. +
  8410. +static const char nconf_global_help[] = N_(
  8411. +"Help windows\n"
  8412. +"------------\n"
  8413. +"o Global help: Unless in a data entry window, pressing <F1> will give \n"
  8414. +" you the global help window, which you are just reading.\n"
  8415. +"\n"
  8416. +"o A short version of the global help is available by pressing <F3>.\n"
  8417. +"\n"
  8418. +"o Local help: To get help related to the current menu entry, use any\n"
  8419. +" of <?> <h>, or if in a data entry window then press <F1>.\n"
  8420. +"\n"
  8421. +"\n"
  8422. +"Menu entries\n"
  8423. +"------------\n"
  8424. +"This interface lets you select features and parameters for the \n"
  8425. +"build. Features can either be built-in, modularized, or removed.\n"
  8426. +"Parameters must be entered as text or decimal or hexadecimal numbers.\n"
  8427. +"\n"
  8428. +"Menu entries beginning with following braces represent features that\n"
  8429. +" [ ] can be built in or removed\n"
  8430. +" < > can be built in, modularized or removed\n"
  8431. +" { } can be built in or modularized, are selected by another feature\n"
  8432. +" - - are selected by another feature\n"
  8433. +" XXX cannot be selected. Symbol Info <F2> tells you why.\n"
  8434. +"*, M or whitespace inside braces means to build in, build as a module\n"
  8435. +"or to exclude the feature respectively.\n"
  8436. +"\n"
  8437. +"To change any of these features, highlight it with the movement keys\n"
  8438. +"listed below and press <y> to build it in, <m> to make it a module or\n"
  8439. +"<n> to remove it. You may press the <Space> key to cycle through the\n"
  8440. +"available options.\n"
  8441. +"\n"
  8442. +"A trailing \"--->\" designates a submenu, a trailing \"----\" an\n"
  8443. +"empty submenu.\n"
  8444. +"\n"
  8445. +"Menu navigation keys\n"
  8446. +"----------------------------------------------------------------------\n"
  8447. +"Linewise up <Up>\n"
  8448. +"Linewise down <Down>\n"
  8449. +"Pagewise up <Page Up>\n"
  8450. +"Pagewise down <Page Down>\n"
  8451. +"First entry <Home>\n"
  8452. +"Last entry <End>\n"
  8453. +"Enter a submenu <Right> <Enter>\n"
  8454. +"Go back to parent menu <Left> <Esc> <F5>\n"
  8455. +"Close a help window <Enter> <Esc> <F5>\n"
  8456. +"Close entry window, apply <Enter>\n"
  8457. +"Close entry window, forget <Esc> <F5>\n"
  8458. +"Start incremental, case-insensitive search for STRING in menu entries,\n"
  8459. +" no regex support, STRING is displayed in upper left corner\n"
  8460. +" </>STRING\n"
  8461. +" Remove last character <Backspace>\n"
  8462. +" Jump to next hit <Down>\n"
  8463. +" Jump to previous hit <Up>\n"
  8464. +"Exit menu search mode </> <Esc>\n"
  8465. +"Search for configuration variables with or without leading CONFIG_\n"
  8466. +" <F8>RegExpr<Enter>\n"
  8467. +"Verbose search help <F8><F1>\n"
  8468. +"----------------------------------------------------------------------\n"
  8469. +"\n"
  8470. +"Unless in a data entry window, key <1> may be used instead of <F1>,\n"
  8471. +"<2> instead of <F2>, etc.\n"
  8472. +"\n"
  8473. +"\n"
  8474. +"Radiolist (Choice list)\n"
  8475. +"-----------------------\n"
  8476. +"Use the movement keys listed above to select the option you wish to set\n"
  8477. +"and press <Space>.\n"
  8478. +"\n"
  8479. +"\n"
  8480. +"Data entry\n"
  8481. +"----------\n"
  8482. +"Enter the requested information and press <Enter>. Hexadecimal values\n"
  8483. +"may be entered without the \"0x\" prefix.\n"
  8484. +"\n"
  8485. +"\n"
  8486. +"Text Box (Help Window)\n"
  8487. +"----------------------\n"
  8488. +"Use movement keys as listed in table above.\n"
  8489. +"\n"
  8490. +"Press any of <Enter> <Esc> <q> <F5> <F9> to exit.\n"
  8491. +"\n"
  8492. +"\n"
  8493. +"Alternate configuration files\n"
  8494. +"-----------------------------\n"
  8495. +"nconfig supports switching between different configurations.\n"
  8496. +"Press <F6> to save your current configuration. Press <F7> and enter\n"
  8497. +"a file name to load a previously saved configuration.\n"
  8498. +"\n"
  8499. +"\n"
  8500. +"Terminal configuration\n"
  8501. +"----------------------\n"
  8502. +"If you use nconfig in a xterm window, make sure your TERM environment\n"
  8503. +"variable specifies a terminal configuration which supports at least\n"
  8504. +"16 colors. Otherwise nconfig will look rather bad.\n"
  8505. +"\n"
  8506. +"If the \"stty size\" command reports the current terminalsize correctly,\n"
  8507. +"nconfig will adapt to sizes larger than the traditional 80x25 \"standard\"\n"
  8508. +"and display longer menus properly.\n"
  8509. +"\n"
  8510. +"\n"
  8511. +"Single menu mode\n"
  8512. +"----------------\n"
  8513. +"If you prefer to have all of the menu entries listed in a single menu,\n"
  8514. +"rather than the default multimenu hierarchy, run nconfig with\n"
  8515. +"NCONFIG_MODE environment variable set to single_menu. Example:\n"
  8516. +"\n"
  8517. +"make NCONFIG_MODE=single_menu nconfig\n"
  8518. +"\n"
  8519. +"<Enter> will then unfold the appropriate category, or fold it if it\n"
  8520. +"is already unfolded. Folded menu entries will be designated by a\n"
  8521. +"leading \"++>\" and unfolded entries by a leading \"-->\".\n"
  8522. +"\n"
  8523. +"Note that this mode can eventually be a little more CPU expensive than\n"
  8524. +"the default mode, especially with a larger number of unfolded submenus.\n"
  8525. +"\n"),
  8526. +menu_no_f_instructions[] = N_(
  8527. +"Legend: [*] built-in [ ] excluded <M> module < > module capable.\n"
  8528. +"Submenus are designated by a trailing \"--->\", empty ones by \"----\".\n"
  8529. +"\n"
  8530. +"Use the following keys to navigate the menus:\n"
  8531. +"Move up or down with <Up> and <Down>.\n"
  8532. +"Enter a submenu with <Enter> or <Right>.\n"
  8533. +"Exit a submenu to its parent menu with <Esc> or <Left>.\n"
  8534. +"Pressing <y> includes, <n> excludes, <m> modularizes features.\n"
  8535. +"Pressing <Space> cycles through the available options.\n"
  8536. +"To search for menu entries press </>.\n"
  8537. +"<Esc> always leaves the current window.\n"
  8538. +"\n"
  8539. +"You do not have function keys support.\n"
  8540. +"Press <1> instead of <F1>, <2> instead of <F2>, etc.\n"
  8541. +"For verbose global help use key <1>.\n"
  8542. +"For help related to the current menu entry press <?> or <h>.\n"),
  8543. +menu_instructions[] = N_(
  8544. +"Legend: [*] built-in [ ] excluded <M> module < > module capable.\n"
  8545. +"Submenus are designated by a trailing \"--->\", empty ones by \"----\".\n"
  8546. +"\n"
  8547. +"Use the following keys to navigate the menus:\n"
  8548. +"Move up or down with <Up> or <Down>.\n"
  8549. +"Enter a submenu with <Enter> or <Right>.\n"
  8550. +"Exit a submenu to its parent menu with <Esc> or <Left>.\n"
  8551. +"Pressing <y> includes, <n> excludes, <m> modularizes features.\n"
  8552. +"Pressing <Space> cycles through the available options.\n"
  8553. +"To search for menu entries press </>.\n"
  8554. +"<Esc> always leaves the current window.\n"
  8555. +"\n"
  8556. +"Pressing <1> may be used instead of <F1>, <2> instead of <F2>, etc.\n"
  8557. +"For verbose global help press <F1>.\n"
  8558. +"For help related to the current menu entry press <?> or <h>.\n"),
  8559. +radiolist_instructions[] = N_(
  8560. +"Press <Up>, <Down>, <Home> or <End> to navigate a radiolist, select\n"
  8561. +"with <Space>.\n"
  8562. +"For help related to the current entry press <?> or <h>.\n"
  8563. +"For global help press <F1>.\n"),
  8564. +inputbox_instructions_int[] = N_(
  8565. +"Please enter a decimal value.\n"
  8566. +"Fractions will not be accepted.\n"
  8567. +"Press <Enter> to apply, <Esc> to cancel."),
  8568. +inputbox_instructions_hex[] = N_(
  8569. +"Please enter a hexadecimal value.\n"
  8570. +"Press <Enter> to apply, <Esc> to cancel."),
  8571. +inputbox_instructions_string[] = N_(
  8572. +"Please enter a string value.\n"
  8573. +"Press <Enter> to apply, <Esc> to cancel."),
  8574. +setmod_text[] = N_(
  8575. +"This feature depends on another feature which has been configured as a\n"
  8576. +"module. As a result, the current feature will be built as a module too."),
  8577. +load_config_text[] = N_(
  8578. +"Enter the name of the configuration file you wish to load.\n"
  8579. +"Accept the name shown to restore the configuration you last\n"
  8580. +"retrieved. Leave empty to abort."),
  8581. +load_config_help[] = N_(
  8582. +"For various reasons, one may wish to keep several different\n"
  8583. +"configurations available on a single machine.\n"
  8584. +"\n"
  8585. +"If you have saved a previous configuration in a file other than the\n"
  8586. +"default one, entering its name here will allow you to load and modify\n"
  8587. +"that configuration.\n"
  8588. +"\n"
  8589. +"Leave empty to abort.\n"),
  8590. +save_config_text[] = N_(
  8591. +"Enter a filename to which this configuration should be saved\n"
  8592. +"as an alternate. Leave empty to abort."),
  8593. +save_config_help[] = N_(
  8594. +"For various reasons, one may wish to keep several different\n"
  8595. +"configurations available on a single machine.\n"
  8596. +"\n"
  8597. +"Entering a file name here will allow you to later retrieve, modify\n"
  8598. +"and use the current configuration as an alternate to whatever\n"
  8599. +"configuration options you have selected at that time.\n"
  8600. +"\n"
  8601. +"Leave empty to abort.\n"),
  8602. +search_help[] = N_(
  8603. +"Search for symbols (configuration variable names CONFIG_*) and display\n"
  8604. +"their relations. Regular expressions are supported.\n"
  8605. +"Example: Search for \"^FOO\".\n"
  8606. +"Result:\n"
  8607. +"-----------------------------------------------------------------\n"
  8608. +"Symbol: FOO [ = m]\n"
  8609. +"Prompt: Foo bus is used to drive the bar HW\n"
  8610. +"Defined at drivers/pci/Kconfig:47\n"
  8611. +"Depends on: X86_LOCAL_APIC && X86_IO_APIC || IA64\n"
  8612. +"Location:\n"
  8613. +" -> Bus options (PCI, PCMCIA, EISA, ISA)\n"
  8614. +" -> PCI support (PCI [ = y])\n"
  8615. +" -> PCI access mode (<choice> [ = y])\n"
  8616. +"Selects: LIBCRC32\n"
  8617. +"Selected by: BAR\n"
  8618. +"-----------------------------------------------------------------\n"
  8619. +"o The line 'Prompt:' shows the text displayed for this symbol in\n"
  8620. +" the menu hierarchy.\n"
  8621. +"o The 'Defined at' line tells at what file / line number the symbol is\n"
  8622. +" defined.\n"
  8623. +"o The 'Depends on:' line lists symbols that need to be defined for\n"
  8624. +" this symbol to be visible and selectable in the menu.\n"
  8625. +"o The 'Location:' lines tell, where in the menu structure this symbol\n"
  8626. +" is located. A location followed by a [ = y] indicates that this is\n"
  8627. +" a selectable menu item, and the current value is displayed inside\n"
  8628. +" brackets.\n"
  8629. +"o The 'Selects:' line tells, what symbol will be automatically selected\n"
  8630. +" if this symbol is selected (y or m).\n"
  8631. +"o The 'Selected by' line tells what symbol has selected this symbol.\n"
  8632. +"\n"
  8633. +"Only relevant lines are shown.\n"
  8634. +"\n\n"
  8635. +"Search examples:\n"
  8636. +"USB => find all symbols containing USB\n"
  8637. +"^USB => find all symbols starting with USB\n"
  8638. +"USB$ => find all symbols ending with USB\n"
  8639. +"\n");
  8640. +
  8641. +struct mitem {
  8642. + char str[256];
  8643. + char tag;
  8644. + void *usrptr;
  8645. + int is_visible;
  8646. +};
  8647. +
  8648. +#define MAX_MENU_ITEMS 4096
  8649. +static int show_all_items;
  8650. +static int indent;
  8651. +static struct menu *current_menu;
  8652. +static int child_count;
  8653. +static int single_menu_mode;
  8654. +/* the window in which all information appears */
  8655. +static WINDOW *main_window;
  8656. +/* the largest size of the menu window */
  8657. +static int mwin_max_lines;
  8658. +static int mwin_max_cols;
  8659. +/* the window in which we show option buttons */
  8660. +static MENU *curses_menu;
  8661. +static ITEM *curses_menu_items[MAX_MENU_ITEMS];
  8662. +static struct mitem k_menu_items[MAX_MENU_ITEMS];
  8663. +static int items_num;
  8664. +static int global_exit;
  8665. +/* the currently selected button */
  8666. +const char *current_instructions = menu_instructions;
  8667. +
  8668. +static char *dialog_input_result;
  8669. +static int dialog_input_result_len;
  8670. +
  8671. +static void conf(struct menu *menu);
  8672. +static void conf_choice(struct menu *menu);
  8673. +static void conf_string(struct menu *menu);
  8674. +static void conf_load(void);
  8675. +static void conf_save(void);
  8676. +static void show_help(struct menu *menu);
  8677. +static int do_exit(void);
  8678. +static void setup_windows(void);
  8679. +static void search_conf(void);
  8680. +
  8681. +typedef void (*function_key_handler_t)(int *key, struct menu *menu);
  8682. +static void handle_f1(int *key, struct menu *current_item);
  8683. +static void handle_f2(int *key, struct menu *current_item);
  8684. +static void handle_f3(int *key, struct menu *current_item);
  8685. +static void handle_f4(int *key, struct menu *current_item);
  8686. +static void handle_f5(int *key, struct menu *current_item);
  8687. +static void handle_f6(int *key, struct menu *current_item);
  8688. +static void handle_f7(int *key, struct menu *current_item);
  8689. +static void handle_f8(int *key, struct menu *current_item);
  8690. +static void handle_f9(int *key, struct menu *current_item);
  8691. +
  8692. +struct function_keys {
  8693. + const char *key_str;
  8694. + const char *func;
  8695. + function_key key;
  8696. + function_key_handler_t handler;
  8697. +};
  8698. +
  8699. +static const int function_keys_num = 9;
  8700. +struct function_keys function_keys[] = {
  8701. + {
  8702. + .key_str = "F1",
  8703. + .func = "Help",
  8704. + .key = F_HELP,
  8705. + .handler = handle_f1,
  8706. + },
  8707. + {
  8708. + .key_str = "F2",
  8709. + .func = "SymInfo",
  8710. + .key = F_SYMBOL,
  8711. + .handler = handle_f2,
  8712. + },
  8713. + {
  8714. + .key_str = "F3",
  8715. + .func = "Help 2",
  8716. + .key = F_INSTS,
  8717. + .handler = handle_f3,
  8718. + },
  8719. + {
  8720. + .key_str = "F4",
  8721. + .func = "ShowAll",
  8722. + .key = F_CONF,
  8723. + .handler = handle_f4,
  8724. + },
  8725. + {
  8726. + .key_str = "F5",
  8727. + .func = "Back",
  8728. + .key = F_BACK,
  8729. + .handler = handle_f5,
  8730. + },
  8731. + {
  8732. + .key_str = "F6",
  8733. + .func = "Save",
  8734. + .key = F_SAVE,
  8735. + .handler = handle_f6,
  8736. + },
  8737. + {
  8738. + .key_str = "F7",
  8739. + .func = "Load",
  8740. + .key = F_LOAD,
  8741. + .handler = handle_f7,
  8742. + },
  8743. + {
  8744. + .key_str = "F8",
  8745. + .func = "SymSearch",
  8746. + .key = F_SEARCH,
  8747. + .handler = handle_f8,
  8748. + },
  8749. + {
  8750. + .key_str = "F9",
  8751. + .func = "Exit",
  8752. + .key = F_EXIT,
  8753. + .handler = handle_f9,
  8754. + },
  8755. +};
  8756. +
  8757. +static void print_function_line(void)
  8758. +{
  8759. + int i;
  8760. + int offset = 1;
  8761. + const int skip = 1;
  8762. + int lines = getmaxy(stdscr);
  8763. +
  8764. + for (i = 0; i < function_keys_num; i++) {
  8765. + (void) wattrset(main_window, attributes[FUNCTION_HIGHLIGHT]);
  8766. + mvwprintw(main_window, lines-3, offset,
  8767. + "%s",
  8768. + function_keys[i].key_str);
  8769. + (void) wattrset(main_window, attributes[FUNCTION_TEXT]);
  8770. + offset += strlen(function_keys[i].key_str);
  8771. + mvwprintw(main_window, lines-3,
  8772. + offset, "%s",
  8773. + function_keys[i].func);
  8774. + offset += strlen(function_keys[i].func) + skip;
  8775. + }
  8776. + (void) wattrset(main_window, attributes[NORMAL]);
  8777. +}
  8778. +
  8779. +/* help */
  8780. +static void handle_f1(int *key, struct menu *current_item)
  8781. +{
  8782. + show_scroll_win(main_window,
  8783. + _("Global help"), _(nconf_global_help));
  8784. + return;
  8785. +}
  8786. +
  8787. +/* symbole help */
  8788. +static void handle_f2(int *key, struct menu *current_item)
  8789. +{
  8790. + show_help(current_item);
  8791. + return;
  8792. +}
  8793. +
  8794. +/* instructions */
  8795. +static void handle_f3(int *key, struct menu *current_item)
  8796. +{
  8797. + show_scroll_win(main_window,
  8798. + _("Short help"),
  8799. + _(current_instructions));
  8800. + return;
  8801. +}
  8802. +
  8803. +/* config */
  8804. +static void handle_f4(int *key, struct menu *current_item)
  8805. +{
  8806. + int res = btn_dialog(main_window,
  8807. + _("Show all symbols?"),
  8808. + 2,
  8809. + " <Show All> ",
  8810. + "<Don't show all>");
  8811. + if (res == 0)
  8812. + show_all_items = 1;
  8813. + else if (res == 1)
  8814. + show_all_items = 0;
  8815. +
  8816. + return;
  8817. +}
  8818. +
  8819. +/* back */
  8820. +static void handle_f5(int *key, struct menu *current_item)
  8821. +{
  8822. + *key = KEY_LEFT;
  8823. + return;
  8824. +}
  8825. +
  8826. +/* save */
  8827. +static void handle_f6(int *key, struct menu *current_item)
  8828. +{
  8829. + conf_save();
  8830. + return;
  8831. +}
  8832. +
  8833. +/* load */
  8834. +static void handle_f7(int *key, struct menu *current_item)
  8835. +{
  8836. + conf_load();
  8837. + return;
  8838. +}
  8839. +
  8840. +/* search */
  8841. +static void handle_f8(int *key, struct menu *current_item)
  8842. +{
  8843. + search_conf();
  8844. + return;
  8845. +}
  8846. +
  8847. +/* exit */
  8848. +static void handle_f9(int *key, struct menu *current_item)
  8849. +{
  8850. + do_exit();
  8851. + return;
  8852. +}
  8853. +
  8854. +/* return != 0 to indicate the key was handles */
  8855. +static int process_special_keys(int *key, struct menu *menu)
  8856. +{
  8857. + int i;
  8858. +
  8859. + if (*key == KEY_RESIZE) {
  8860. + setup_windows();
  8861. + return 1;
  8862. + }
  8863. +
  8864. + for (i = 0; i < function_keys_num; i++) {
  8865. + if (*key == KEY_F(function_keys[i].key) ||
  8866. + *key == '0' + function_keys[i].key){
  8867. + function_keys[i].handler(key, menu);
  8868. + return 1;
  8869. + }
  8870. + }
  8871. +
  8872. + return 0;
  8873. +}
  8874. +
  8875. +static void clean_items(void)
  8876. +{
  8877. + int i;
  8878. + for (i = 0; curses_menu_items[i]; i++)
  8879. + free_item(curses_menu_items[i]);
  8880. + bzero(curses_menu_items, sizeof(curses_menu_items));
  8881. + bzero(k_menu_items, sizeof(k_menu_items));
  8882. + items_num = 0;
  8883. +}
  8884. +
  8885. +typedef enum {MATCH_TINKER_PATTERN_UP, MATCH_TINKER_PATTERN_DOWN,
  8886. + FIND_NEXT_MATCH_DOWN, FIND_NEXT_MATCH_UP} match_f;
  8887. +
  8888. +/* return the index of the matched item, or -1 if no such item exists */
  8889. +static int get_mext_match(const char *match_str, match_f flag)
  8890. +{
  8891. + int match_start = item_index(current_item(curses_menu));
  8892. + int index;
  8893. +
  8894. + if (flag == FIND_NEXT_MATCH_DOWN)
  8895. + ++match_start;
  8896. + else if (flag == FIND_NEXT_MATCH_UP)
  8897. + --match_start;
  8898. +
  8899. + index = match_start;
  8900. + index = (index + items_num) % items_num;
  8901. + while (true) {
  8902. + char *str = k_menu_items[index].str;
  8903. + if (strcasestr(str, match_str) != 0)
  8904. + return index;
  8905. + if (flag == FIND_NEXT_MATCH_UP ||
  8906. + flag == MATCH_TINKER_PATTERN_UP)
  8907. + --index;
  8908. + else
  8909. + ++index;
  8910. + index = (index + items_num) % items_num;
  8911. + if (index == match_start)
  8912. + return -1;
  8913. + }
  8914. +}
  8915. +
  8916. +/* Make a new item. */
  8917. +static void item_make(struct menu *menu, char tag, const char *fmt, ...)
  8918. +{
  8919. + va_list ap;
  8920. +
  8921. + if (items_num > MAX_MENU_ITEMS-1)
  8922. + return;
  8923. +
  8924. + bzero(&k_menu_items[items_num], sizeof(k_menu_items[0]));
  8925. + k_menu_items[items_num].tag = tag;
  8926. + k_menu_items[items_num].usrptr = menu;
  8927. + if (menu != NULL)
  8928. + k_menu_items[items_num].is_visible =
  8929. + menu_is_visible(menu);
  8930. + else
  8931. + k_menu_items[items_num].is_visible = 1;
  8932. +
  8933. + va_start(ap, fmt);
  8934. + vsnprintf(k_menu_items[items_num].str,
  8935. + sizeof(k_menu_items[items_num].str),
  8936. + fmt, ap);
  8937. + va_end(ap);
  8938. +
  8939. + if (!k_menu_items[items_num].is_visible)
  8940. + memcpy(k_menu_items[items_num].str, "XXX", 3);
  8941. +
  8942. + curses_menu_items[items_num] = new_item(
  8943. + k_menu_items[items_num].str,
  8944. + k_menu_items[items_num].str);
  8945. + set_item_userptr(curses_menu_items[items_num],
  8946. + &k_menu_items[items_num]);
  8947. + /*
  8948. + if (!k_menu_items[items_num].is_visible)
  8949. + item_opts_off(curses_menu_items[items_num], O_SELECTABLE);
  8950. + */
  8951. +
  8952. + items_num++;
  8953. + curses_menu_items[items_num] = NULL;
  8954. +}
  8955. +
  8956. +/* very hackish. adds a string to the last item added */
  8957. +static void item_add_str(const char *fmt, ...)
  8958. +{
  8959. + va_list ap;
  8960. + int index = items_num-1;
  8961. + char new_str[256];
  8962. + char tmp_str[256];
  8963. +
  8964. + if (index < 0)
  8965. + return;
  8966. +
  8967. + va_start(ap, fmt);
  8968. + vsnprintf(new_str, sizeof(new_str), fmt, ap);
  8969. + va_end(ap);
  8970. + snprintf(tmp_str, sizeof(tmp_str), "%s%s",
  8971. + k_menu_items[index].str, new_str);
  8972. + strncpy(k_menu_items[index].str,
  8973. + tmp_str,
  8974. + sizeof(k_menu_items[index].str));
  8975. +
  8976. + free_item(curses_menu_items[index]);
  8977. + curses_menu_items[index] = new_item(
  8978. + k_menu_items[index].str,
  8979. + k_menu_items[index].str);
  8980. + set_item_userptr(curses_menu_items[index],
  8981. + &k_menu_items[index]);
  8982. +}
  8983. +
  8984. +/* get the tag of the currently selected item */
  8985. +static char item_tag(void)
  8986. +{
  8987. + ITEM *cur;
  8988. + struct mitem *mcur;
  8989. +
  8990. + cur = current_item(curses_menu);
  8991. + if (cur == NULL)
  8992. + return 0;
  8993. + mcur = (struct mitem *) item_userptr(cur);
  8994. + return mcur->tag;
  8995. +}
  8996. +
  8997. +static int curses_item_index(void)
  8998. +{
  8999. + return item_index(current_item(curses_menu));
  9000. +}
  9001. +
  9002. +static void *item_data(void)
  9003. +{
  9004. + ITEM *cur;
  9005. + struct mitem *mcur;
  9006. +
  9007. + cur = current_item(curses_menu);
  9008. + if (!cur)
  9009. + return NULL;
  9010. + mcur = (struct mitem *) item_userptr(cur);
  9011. + return mcur->usrptr;
  9012. +
  9013. +}
  9014. +
  9015. +static int item_is_tag(char tag)
  9016. +{
  9017. + return item_tag() == tag;
  9018. +}
  9019. +
  9020. +static char filename[PATH_MAX+1];
  9021. +static char menu_backtitle[PATH_MAX+128];
  9022. +static const char *set_config_filename(const char *config_filename)
  9023. +{
  9024. + int size;
  9025. +
  9026. + size = snprintf(menu_backtitle, sizeof(menu_backtitle),
  9027. + "%s - %s", config_filename, rootmenu.prompt->text);
  9028. + if (size >= sizeof(menu_backtitle))
  9029. + menu_backtitle[sizeof(menu_backtitle)-1] = '\0';
  9030. +
  9031. + size = snprintf(filename, sizeof(filename), "%s", config_filename);
  9032. + if (size >= sizeof(filename))
  9033. + filename[sizeof(filename)-1] = '\0';
  9034. + return menu_backtitle;
  9035. +}
  9036. +
  9037. +/* return = 0 means we are successful.
  9038. + * -1 means go on doing what you were doing
  9039. + */
  9040. +static int do_exit(void)
  9041. +{
  9042. + int res;
  9043. + if (!conf_get_changed()) {
  9044. + global_exit = 1;
  9045. + return 0;
  9046. + }
  9047. + res = btn_dialog(main_window,
  9048. + _("Do you wish to save your new configuration?\n"
  9049. + "<ESC> to cancel and resume nconfig."),
  9050. + 2,
  9051. + " <save> ",
  9052. + "<don't save>");
  9053. + if (res == KEY_EXIT) {
  9054. + global_exit = 0;
  9055. + return -1;
  9056. + }
  9057. +
  9058. + /* if we got here, the user really wants to exit */
  9059. + switch (res) {
  9060. + case 0:
  9061. + res = conf_write(filename);
  9062. + if (res)
  9063. + btn_dialog(
  9064. + main_window,
  9065. + _("Error during writing of configuration.\n"
  9066. + "Your configuration changes were NOT saved."),
  9067. + 1,
  9068. + "<OK>");
  9069. + break;
  9070. + default:
  9071. + btn_dialog(
  9072. + main_window,
  9073. + _("Your configuration changes were NOT saved."),
  9074. + 1,
  9075. + "<OK>");
  9076. + break;
  9077. + }
  9078. + global_exit = 1;
  9079. + return 0;
  9080. +}
  9081. +
  9082. +
  9083. +static void search_conf(void)
  9084. +{
  9085. + struct symbol **sym_arr;
  9086. + struct gstr res;
  9087. + struct gstr title;
  9088. + char *dialog_input;
  9089. + int dres;
  9090. +
  9091. + title = str_new();
  9092. + str_printf( &title, _("Enter %s (sub)string or regexp to search for "
  9093. + "(with or without \"%s\")"), CONFIG_, CONFIG_);
  9094. +
  9095. +again:
  9096. + dres = dialog_inputbox(main_window,
  9097. + _("Search Configuration Parameter"),
  9098. + str_get(&title),
  9099. + "", &dialog_input_result, &dialog_input_result_len);
  9100. + switch (dres) {
  9101. + case 0:
  9102. + break;
  9103. + case 1:
  9104. + show_scroll_win(main_window,
  9105. + _("Search Configuration"), search_help);
  9106. + goto again;
  9107. + default:
  9108. + str_free(&title);
  9109. + return;
  9110. + }
  9111. +
  9112. + /* strip the prefix if necessary */
  9113. + dialog_input = dialog_input_result;
  9114. + if (strncasecmp(dialog_input_result, CONFIG_, strlen(CONFIG_)) == 0)
  9115. + dialog_input += strlen(CONFIG_);
  9116. +
  9117. + sym_arr = sym_re_search(dialog_input);
  9118. + res = get_relations_str(sym_arr, NULL);
  9119. + free(sym_arr);
  9120. + show_scroll_win(main_window,
  9121. + _("Search Results"), str_get(&res));
  9122. + str_free(&res);
  9123. + str_free(&title);
  9124. +}
  9125. +
  9126. +
  9127. +static void build_conf(struct menu *menu)
  9128. +{
  9129. + struct symbol *sym;
  9130. + struct property *prop;
  9131. + struct menu *child;
  9132. + int type, tmp, doint = 2;
  9133. + tristate val;
  9134. + char ch;
  9135. +
  9136. + if (!menu || (!show_all_items && !menu_is_visible(menu)))
  9137. + return;
  9138. +
  9139. + sym = menu->sym;
  9140. + prop = menu->prompt;
  9141. + if (!sym) {
  9142. + if (prop && menu != current_menu) {
  9143. + const char *prompt = menu_get_prompt(menu);
  9144. + enum prop_type ptype;
  9145. + ptype = menu->prompt ? menu->prompt->type : P_UNKNOWN;
  9146. + switch (ptype) {
  9147. + case P_MENU:
  9148. + child_count++;
  9149. + prompt = _(prompt);
  9150. + if (single_menu_mode) {
  9151. + item_make(menu, 'm',
  9152. + "%s%*c%s",
  9153. + menu->data ? "-->" : "++>",
  9154. + indent + 1, ' ', prompt);
  9155. + } else
  9156. + item_make(menu, 'm',
  9157. + " %*c%s %s",
  9158. + indent + 1, ' ', prompt,
  9159. + menu_is_empty(menu) ? "----" : "--->");
  9160. +
  9161. + if (single_menu_mode && menu->data)
  9162. + goto conf_childs;
  9163. + return;
  9164. + case P_COMMENT:
  9165. + if (prompt) {
  9166. + child_count++;
  9167. + item_make(menu, ':',
  9168. + " %*c*** %s ***",
  9169. + indent + 1, ' ',
  9170. + _(prompt));
  9171. + }
  9172. + break;
  9173. + default:
  9174. + if (prompt) {
  9175. + child_count++;
  9176. + item_make(menu, ':', "---%*c%s",
  9177. + indent + 1, ' ',
  9178. + _(prompt));
  9179. + }
  9180. + }
  9181. + } else
  9182. + doint = 0;
  9183. + goto conf_childs;
  9184. + }
  9185. +
  9186. + type = sym_get_type(sym);
  9187. + if (sym_is_choice(sym)) {
  9188. + struct symbol *def_sym = sym_get_choice_value(sym);
  9189. + struct menu *def_menu = NULL;
  9190. +
  9191. + child_count++;
  9192. + for (child = menu->list; child; child = child->next) {
  9193. + if (menu_is_visible(child) && child->sym == def_sym)
  9194. + def_menu = child;
  9195. + }
  9196. +
  9197. + val = sym_get_tristate_value(sym);
  9198. + if (sym_is_changable(sym)) {
  9199. + switch (type) {
  9200. + case S_BOOLEAN:
  9201. + item_make(menu, 't', "[%c]",
  9202. + val == no ? ' ' : '*');
  9203. + break;
  9204. + case S_TRISTATE:
  9205. + switch (val) {
  9206. + case yes:
  9207. + ch = '*';
  9208. + break;
  9209. + case mod:
  9210. + ch = 'M';
  9211. + break;
  9212. + default:
  9213. + ch = ' ';
  9214. + break;
  9215. + }
  9216. + item_make(menu, 't', "<%c>", ch);
  9217. + break;
  9218. + }
  9219. + } else {
  9220. + item_make(menu, def_menu ? 't' : ':', " ");
  9221. + }
  9222. +
  9223. + item_add_str("%*c%s", indent + 1,
  9224. + ' ', _(menu_get_prompt(menu)));
  9225. + if (val == yes) {
  9226. + if (def_menu) {
  9227. + item_add_str(" (%s)",
  9228. + _(menu_get_prompt(def_menu)));
  9229. + item_add_str(" --->");
  9230. + if (def_menu->list) {
  9231. + indent += 2;
  9232. + build_conf(def_menu);
  9233. + indent -= 2;
  9234. + }
  9235. + }
  9236. + return;
  9237. + }
  9238. + } else {
  9239. + if (menu == current_menu) {
  9240. + item_make(menu, ':',
  9241. + "---%*c%s", indent + 1,
  9242. + ' ', _(menu_get_prompt(menu)));
  9243. + goto conf_childs;
  9244. + }
  9245. + child_count++;
  9246. + val = sym_get_tristate_value(sym);
  9247. + if (sym_is_choice_value(sym) && val == yes) {
  9248. + item_make(menu, ':', " ");
  9249. + } else {
  9250. + switch (type) {
  9251. + case S_BOOLEAN:
  9252. + if (sym_is_changable(sym))
  9253. + item_make(menu, 't', "[%c]",
  9254. + val == no ? ' ' : '*');
  9255. + else
  9256. + item_make(menu, 't', "-%c-",
  9257. + val == no ? ' ' : '*');
  9258. + break;
  9259. + case S_TRISTATE:
  9260. + switch (val) {
  9261. + case yes:
  9262. + ch = '*';
  9263. + break;
  9264. + case mod:
  9265. + ch = 'M';
  9266. + break;
  9267. + default:
  9268. + ch = ' ';
  9269. + break;
  9270. + }
  9271. + if (sym_is_changable(sym)) {
  9272. + if (sym->rev_dep.tri == mod)
  9273. + item_make(menu,
  9274. + 't', "{%c}", ch);
  9275. + else
  9276. + item_make(menu,
  9277. + 't', "<%c>", ch);
  9278. + } else
  9279. + item_make(menu, 't', "-%c-", ch);
  9280. + break;
  9281. + default:
  9282. + tmp = 2 + strlen(sym_get_string_value(sym));
  9283. + item_make(menu, 's', " (%s)",
  9284. + sym_get_string_value(sym));
  9285. + tmp = indent - tmp + 4;
  9286. + if (tmp < 0)
  9287. + tmp = 0;
  9288. + item_add_str("%*c%s%s", tmp, ' ',
  9289. + _(menu_get_prompt(menu)),
  9290. + (sym_has_value(sym) ||
  9291. + !sym_is_changable(sym)) ? "" :
  9292. + _(" (NEW)"));
  9293. + goto conf_childs;
  9294. + }
  9295. + }
  9296. + item_add_str("%*c%s%s", indent + 1, ' ',
  9297. + _(menu_get_prompt(menu)),
  9298. + (sym_has_value(sym) || !sym_is_changable(sym)) ?
  9299. + "" : _(" (NEW)"));
  9300. + if (menu->prompt && menu->prompt->type == P_MENU) {
  9301. + item_add_str(" %s", menu_is_empty(menu) ? "----" : "--->");
  9302. + return;
  9303. + }
  9304. + }
  9305. +
  9306. +conf_childs:
  9307. + indent += doint;
  9308. + for (child = menu->list; child; child = child->next)
  9309. + build_conf(child);
  9310. + indent -= doint;
  9311. +}
  9312. +
  9313. +static void reset_menu(void)
  9314. +{
  9315. + unpost_menu(curses_menu);
  9316. + clean_items();
  9317. +}
  9318. +
  9319. +/* adjust the menu to show this item.
  9320. + * prefer not to scroll the menu if possible*/
  9321. +static void center_item(int selected_index, int *last_top_row)
  9322. +{
  9323. + int toprow;
  9324. +
  9325. + set_top_row(curses_menu, *last_top_row);
  9326. + toprow = top_row(curses_menu);
  9327. + if (selected_index < toprow ||
  9328. + selected_index >= toprow+mwin_max_lines) {
  9329. + toprow = max(selected_index-mwin_max_lines/2, 0);
  9330. + if (toprow >= item_count(curses_menu)-mwin_max_lines)
  9331. + toprow = item_count(curses_menu)-mwin_max_lines;
  9332. + set_top_row(curses_menu, toprow);
  9333. + }
  9334. + set_current_item(curses_menu,
  9335. + curses_menu_items[selected_index]);
  9336. + *last_top_row = toprow;
  9337. + post_menu(curses_menu);
  9338. + refresh_all_windows(main_window);
  9339. +}
  9340. +
  9341. +/* this function assumes reset_menu has been called before */
  9342. +static void show_menu(const char *prompt, const char *instructions,
  9343. + int selected_index, int *last_top_row)
  9344. +{
  9345. + int maxx, maxy;
  9346. + WINDOW *menu_window;
  9347. +
  9348. + current_instructions = instructions;
  9349. +
  9350. + clear();
  9351. + (void) wattrset(main_window, attributes[NORMAL]);
  9352. + print_in_middle(stdscr, 1, 0, getmaxx(stdscr),
  9353. + menu_backtitle,
  9354. + attributes[MAIN_HEADING]);
  9355. +
  9356. + (void) wattrset(main_window, attributes[MAIN_MENU_BOX]);
  9357. + box(main_window, 0, 0);
  9358. + (void) wattrset(main_window, attributes[MAIN_MENU_HEADING]);
  9359. + mvwprintw(main_window, 0, 3, " %s ", prompt);
  9360. + (void) wattrset(main_window, attributes[NORMAL]);
  9361. +
  9362. + set_menu_items(curses_menu, curses_menu_items);
  9363. +
  9364. + /* position the menu at the middle of the screen */
  9365. + scale_menu(curses_menu, &maxy, &maxx);
  9366. + maxx = min(maxx, mwin_max_cols-2);
  9367. + maxy = mwin_max_lines;
  9368. + menu_window = derwin(main_window,
  9369. + maxy,
  9370. + maxx,
  9371. + 2,
  9372. + (mwin_max_cols-maxx)/2);
  9373. + keypad(menu_window, TRUE);
  9374. + set_menu_win(curses_menu, menu_window);
  9375. + set_menu_sub(curses_menu, menu_window);
  9376. +
  9377. + /* must reassert this after changing items, otherwise returns to a
  9378. + * default of 16
  9379. + */
  9380. + set_menu_format(curses_menu, maxy, 1);
  9381. + center_item(selected_index, last_top_row);
  9382. + set_menu_format(curses_menu, maxy, 1);
  9383. +
  9384. + print_function_line();
  9385. +
  9386. + /* Post the menu */
  9387. + post_menu(curses_menu);
  9388. + refresh_all_windows(main_window);
  9389. +}
  9390. +
  9391. +static void adj_match_dir(match_f *match_direction)
  9392. +{
  9393. + if (*match_direction == FIND_NEXT_MATCH_DOWN)
  9394. + *match_direction =
  9395. + MATCH_TINKER_PATTERN_DOWN;
  9396. + else if (*match_direction == FIND_NEXT_MATCH_UP)
  9397. + *match_direction =
  9398. + MATCH_TINKER_PATTERN_UP;
  9399. + /* else, do no change.. */
  9400. +}
  9401. +
  9402. +struct match_state
  9403. +{
  9404. + int in_search;
  9405. + match_f match_direction;
  9406. + char pattern[256];
  9407. +};
  9408. +
  9409. +/* Return 0 means I have handled the key. In such a case, ans should hold the
  9410. + * item to center, or -1 otherwise.
  9411. + * Else return -1 .
  9412. + */
  9413. +static int do_match(int key, struct match_state *state, int *ans)
  9414. +{
  9415. + char c = (char) key;
  9416. + int terminate_search = 0;
  9417. + *ans = -1;
  9418. + if (key == '/' || (state->in_search && key == 27)) {
  9419. + move(0, 0);
  9420. + refresh();
  9421. + clrtoeol();
  9422. + state->in_search = 1-state->in_search;
  9423. + bzero(state->pattern, sizeof(state->pattern));
  9424. + state->match_direction = MATCH_TINKER_PATTERN_DOWN;
  9425. + return 0;
  9426. + } else if (!state->in_search)
  9427. + return 1;
  9428. +
  9429. + if (isalnum(c) || isgraph(c) || c == ' ') {
  9430. + state->pattern[strlen(state->pattern)] = c;
  9431. + state->pattern[strlen(state->pattern)] = '\0';
  9432. + adj_match_dir(&state->match_direction);
  9433. + *ans = get_mext_match(state->pattern,
  9434. + state->match_direction);
  9435. + } else if (key == KEY_DOWN) {
  9436. + state->match_direction = FIND_NEXT_MATCH_DOWN;
  9437. + *ans = get_mext_match(state->pattern,
  9438. + state->match_direction);
  9439. + } else if (key == KEY_UP) {
  9440. + state->match_direction = FIND_NEXT_MATCH_UP;
  9441. + *ans = get_mext_match(state->pattern,
  9442. + state->match_direction);
  9443. + } else if (key == KEY_BACKSPACE || key == 127) {
  9444. + state->pattern[strlen(state->pattern)-1] = '\0';
  9445. + adj_match_dir(&state->match_direction);
  9446. + } else
  9447. + terminate_search = 1;
  9448. +
  9449. + if (terminate_search) {
  9450. + state->in_search = 0;
  9451. + bzero(state->pattern, sizeof(state->pattern));
  9452. + move(0, 0);
  9453. + refresh();
  9454. + clrtoeol();
  9455. + return -1;
  9456. + }
  9457. + return 0;
  9458. +}
  9459. +
  9460. +static void conf(struct menu *menu)
  9461. +{
  9462. + struct menu *submenu = 0;
  9463. + const char *prompt = menu_get_prompt(menu);
  9464. + struct symbol *sym;
  9465. + int res;
  9466. + int current_index = 0;
  9467. + int last_top_row = 0;
  9468. + struct match_state match_state = {
  9469. + .in_search = 0,
  9470. + .match_direction = MATCH_TINKER_PATTERN_DOWN,
  9471. + .pattern = "",
  9472. + };
  9473. +
  9474. + while (!global_exit) {
  9475. + reset_menu();
  9476. + current_menu = menu;
  9477. + build_conf(menu);
  9478. + if (!child_count)
  9479. + break;
  9480. +
  9481. + show_menu(prompt ? _(prompt) : _("Main Menu"),
  9482. + _(menu_instructions),
  9483. + current_index, &last_top_row);
  9484. + keypad((menu_win(curses_menu)), TRUE);
  9485. + while (!global_exit) {
  9486. + if (match_state.in_search) {
  9487. + mvprintw(0, 0,
  9488. + "searching: %s", match_state.pattern);
  9489. + clrtoeol();
  9490. + }
  9491. + refresh_all_windows(main_window);
  9492. + res = wgetch(menu_win(curses_menu));
  9493. + if (!res)
  9494. + break;
  9495. + if (do_match(res, &match_state, &current_index) == 0) {
  9496. + if (current_index != -1)
  9497. + center_item(current_index,
  9498. + &last_top_row);
  9499. + continue;
  9500. + }
  9501. + if (process_special_keys(&res,
  9502. + (struct menu *) item_data()))
  9503. + break;
  9504. + switch (res) {
  9505. + case KEY_DOWN:
  9506. + menu_driver(curses_menu, REQ_DOWN_ITEM);
  9507. + break;
  9508. + case KEY_UP:
  9509. + menu_driver(curses_menu, REQ_UP_ITEM);
  9510. + break;
  9511. + case KEY_NPAGE:
  9512. + menu_driver(curses_menu, REQ_SCR_DPAGE);
  9513. + break;
  9514. + case KEY_PPAGE:
  9515. + menu_driver(curses_menu, REQ_SCR_UPAGE);
  9516. + break;
  9517. + case KEY_HOME:
  9518. + menu_driver(curses_menu, REQ_FIRST_ITEM);
  9519. + break;
  9520. + case KEY_END:
  9521. + menu_driver(curses_menu, REQ_LAST_ITEM);
  9522. + break;
  9523. + case 'h':
  9524. + case '?':
  9525. + show_help((struct menu *) item_data());
  9526. + break;
  9527. + }
  9528. + if (res == 10 || res == 27 ||
  9529. + res == 32 || res == 'n' || res == 'y' ||
  9530. + res == KEY_LEFT || res == KEY_RIGHT ||
  9531. + res == 'm')
  9532. + break;
  9533. + refresh_all_windows(main_window);
  9534. + }
  9535. +
  9536. + refresh_all_windows(main_window);
  9537. + /* if ESC or left*/
  9538. + if (res == 27 || (menu != &rootmenu && res == KEY_LEFT))
  9539. + break;
  9540. +
  9541. + /* remember location in the menu */
  9542. + last_top_row = top_row(curses_menu);
  9543. + current_index = curses_item_index();
  9544. +
  9545. + if (!item_tag())
  9546. + continue;
  9547. +
  9548. + submenu = (struct menu *) item_data();
  9549. + if (!submenu || !menu_is_visible(submenu))
  9550. + continue;
  9551. + sym = submenu->sym;
  9552. +
  9553. + switch (res) {
  9554. + case ' ':
  9555. + if (item_is_tag('t'))
  9556. + sym_toggle_tristate_value(sym);
  9557. + else if (item_is_tag('m'))
  9558. + conf(submenu);
  9559. + break;
  9560. + case KEY_RIGHT:
  9561. + case 10: /* ENTER WAS PRESSED */
  9562. + switch (item_tag()) {
  9563. + case 'm':
  9564. + if (single_menu_mode)
  9565. + submenu->data =
  9566. + (void *) (long) !submenu->data;
  9567. + else
  9568. + conf(submenu);
  9569. + break;
  9570. + case 't':
  9571. + if (sym_is_choice(sym) &&
  9572. + sym_get_tristate_value(sym) == yes)
  9573. + conf_choice(submenu);
  9574. + else if (submenu->prompt &&
  9575. + submenu->prompt->type == P_MENU)
  9576. + conf(submenu);
  9577. + else if (res == 10)
  9578. + sym_toggle_tristate_value(sym);
  9579. + break;
  9580. + case 's':
  9581. + conf_string(submenu);
  9582. + break;
  9583. + }
  9584. + break;
  9585. + case 'y':
  9586. + if (item_is_tag('t')) {
  9587. + if (sym_set_tristate_value(sym, yes))
  9588. + break;
  9589. + if (sym_set_tristate_value(sym, mod))
  9590. + btn_dialog(main_window, setmod_text, 0);
  9591. + }
  9592. + break;
  9593. + case 'n':
  9594. + if (item_is_tag('t'))
  9595. + sym_set_tristate_value(sym, no);
  9596. + break;
  9597. + case 'm':
  9598. + if (item_is_tag('t'))
  9599. + sym_set_tristate_value(sym, mod);
  9600. + break;
  9601. + }
  9602. + }
  9603. +}
  9604. +
  9605. +static void conf_message_callback(const char *fmt, va_list ap)
  9606. +{
  9607. + char buf[1024];
  9608. +
  9609. + vsnprintf(buf, sizeof(buf), fmt, ap);
  9610. + btn_dialog(main_window, buf, 1, "<OK>");
  9611. +}
  9612. +
  9613. +static void show_help(struct menu *menu)
  9614. +{
  9615. + struct gstr help;
  9616. +
  9617. + if (!menu)
  9618. + return;
  9619. +
  9620. + help = str_new();
  9621. + menu_get_ext_help(menu, &help);
  9622. + show_scroll_win(main_window, _(menu_get_prompt(menu)), str_get(&help));
  9623. + str_free(&help);
  9624. +}
  9625. +
  9626. +static void conf_choice(struct menu *menu)
  9627. +{
  9628. + const char *prompt = _(menu_get_prompt(menu));
  9629. + struct menu *child = 0;
  9630. + struct symbol *active;
  9631. + int selected_index = 0;
  9632. + int last_top_row = 0;
  9633. + int res, i = 0;
  9634. + struct match_state match_state = {
  9635. + .in_search = 0,
  9636. + .match_direction = MATCH_TINKER_PATTERN_DOWN,
  9637. + .pattern = "",
  9638. + };
  9639. +
  9640. + active = sym_get_choice_value(menu->sym);
  9641. + /* this is mostly duplicated from the conf() function. */
  9642. + while (!global_exit) {
  9643. + reset_menu();
  9644. +
  9645. + for (i = 0, child = menu->list; child; child = child->next) {
  9646. + if (!show_all_items && !menu_is_visible(child))
  9647. + continue;
  9648. +
  9649. + if (child->sym == sym_get_choice_value(menu->sym))
  9650. + item_make(child, ':', "<X> %s",
  9651. + _(menu_get_prompt(child)));
  9652. + else if (child->sym)
  9653. + item_make(child, ':', " %s",
  9654. + _(menu_get_prompt(child)));
  9655. + else
  9656. + item_make(child, ':', "*** %s ***",
  9657. + _(menu_get_prompt(child)));
  9658. +
  9659. + if (child->sym == active){
  9660. + last_top_row = top_row(curses_menu);
  9661. + selected_index = i;
  9662. + }
  9663. + i++;
  9664. + }
  9665. + show_menu(prompt ? _(prompt) : _("Choice Menu"),
  9666. + _(radiolist_instructions),
  9667. + selected_index,
  9668. + &last_top_row);
  9669. + while (!global_exit) {
  9670. + if (match_state.in_search) {
  9671. + mvprintw(0, 0, "searching: %s",
  9672. + match_state.pattern);
  9673. + clrtoeol();
  9674. + }
  9675. + refresh_all_windows(main_window);
  9676. + res = wgetch(menu_win(curses_menu));
  9677. + if (!res)
  9678. + break;
  9679. + if (do_match(res, &match_state, &selected_index) == 0) {
  9680. + if (selected_index != -1)
  9681. + center_item(selected_index,
  9682. + &last_top_row);
  9683. + continue;
  9684. + }
  9685. + if (process_special_keys(
  9686. + &res,
  9687. + (struct menu *) item_data()))
  9688. + break;
  9689. + switch (res) {
  9690. + case KEY_DOWN:
  9691. + menu_driver(curses_menu, REQ_DOWN_ITEM);
  9692. + break;
  9693. + case KEY_UP:
  9694. + menu_driver(curses_menu, REQ_UP_ITEM);
  9695. + break;
  9696. + case KEY_NPAGE:
  9697. + menu_driver(curses_menu, REQ_SCR_DPAGE);
  9698. + break;
  9699. + case KEY_PPAGE:
  9700. + menu_driver(curses_menu, REQ_SCR_UPAGE);
  9701. + break;
  9702. + case KEY_HOME:
  9703. + menu_driver(curses_menu, REQ_FIRST_ITEM);
  9704. + break;
  9705. + case KEY_END:
  9706. + menu_driver(curses_menu, REQ_LAST_ITEM);
  9707. + break;
  9708. + case 'h':
  9709. + case '?':
  9710. + show_help((struct menu *) item_data());
  9711. + break;
  9712. + }
  9713. + if (res == 10 || res == 27 || res == ' ' ||
  9714. + res == KEY_LEFT){
  9715. + break;
  9716. + }
  9717. + refresh_all_windows(main_window);
  9718. + }
  9719. + /* if ESC or left */
  9720. + if (res == 27 || res == KEY_LEFT)
  9721. + break;
  9722. +
  9723. + child = item_data();
  9724. + if (!child || !menu_is_visible(child) || !child->sym)
  9725. + continue;
  9726. + switch (res) {
  9727. + case ' ':
  9728. + case 10:
  9729. + case KEY_RIGHT:
  9730. + sym_set_tristate_value(child->sym, yes);
  9731. + return;
  9732. + case 'h':
  9733. + case '?':
  9734. + show_help(child);
  9735. + active = child->sym;
  9736. + break;
  9737. + case KEY_EXIT:
  9738. + return;
  9739. + }
  9740. + }
  9741. +}
  9742. +
  9743. +static void conf_string(struct menu *menu)
  9744. +{
  9745. + const char *prompt = menu_get_prompt(menu);
  9746. +
  9747. + while (1) {
  9748. + int res;
  9749. + const char *heading;
  9750. +
  9751. + switch (sym_get_type(menu->sym)) {
  9752. + case S_INT:
  9753. + heading = _(inputbox_instructions_int);
  9754. + break;
  9755. + case S_HEX:
  9756. + heading = _(inputbox_instructions_hex);
  9757. + break;
  9758. + case S_STRING:
  9759. + heading = _(inputbox_instructions_string);
  9760. + break;
  9761. + default:
  9762. + heading = _("Internal nconf error!");
  9763. + }
  9764. + res = dialog_inputbox(main_window,
  9765. + prompt ? _(prompt) : _("Main Menu"),
  9766. + heading,
  9767. + sym_get_string_value(menu->sym),
  9768. + &dialog_input_result,
  9769. + &dialog_input_result_len);
  9770. + switch (res) {
  9771. + case 0:
  9772. + if (sym_set_string_value(menu->sym,
  9773. + dialog_input_result))
  9774. + return;
  9775. + btn_dialog(main_window,
  9776. + _("You have made an invalid entry."), 0);
  9777. + break;
  9778. + case 1:
  9779. + show_help(menu);
  9780. + break;
  9781. + case KEY_EXIT:
  9782. + return;
  9783. + }
  9784. + }
  9785. +}
  9786. +
  9787. +static void conf_load(void)
  9788. +{
  9789. + while (1) {
  9790. + int res;
  9791. + res = dialog_inputbox(main_window,
  9792. + NULL, load_config_text,
  9793. + filename,
  9794. + &dialog_input_result,
  9795. + &dialog_input_result_len);
  9796. + switch (res) {
  9797. + case 0:
  9798. + if (!dialog_input_result[0])
  9799. + return;
  9800. + if (!conf_read(dialog_input_result)) {
  9801. + set_config_filename(dialog_input_result);
  9802. + sym_set_change_count(1);
  9803. + return;
  9804. + }
  9805. + btn_dialog(main_window, _("File does not exist!"), 0);
  9806. + break;
  9807. + case 1:
  9808. + show_scroll_win(main_window,
  9809. + _("Load Alternate Configuration"),
  9810. + load_config_help);
  9811. + break;
  9812. + case KEY_EXIT:
  9813. + return;
  9814. + }
  9815. + }
  9816. +}
  9817. +
  9818. +static void conf_save(void)
  9819. +{
  9820. + while (1) {
  9821. + int res;
  9822. + res = dialog_inputbox(main_window,
  9823. + NULL, save_config_text,
  9824. + filename,
  9825. + &dialog_input_result,
  9826. + &dialog_input_result_len);
  9827. + switch (res) {
  9828. + case 0:
  9829. + if (!dialog_input_result[0])
  9830. + return;
  9831. + res = conf_write(dialog_input_result);
  9832. + if (!res) {
  9833. + set_config_filename(dialog_input_result);
  9834. + return;
  9835. + }
  9836. + btn_dialog(main_window, _("Can't create file! "
  9837. + "Probably a nonexistent directory."),
  9838. + 1, "<OK>");
  9839. + break;
  9840. + case 1:
  9841. + show_scroll_win(main_window,
  9842. + _("Save Alternate Configuration"),
  9843. + save_config_help);
  9844. + break;
  9845. + case KEY_EXIT:
  9846. + return;
  9847. + }
  9848. + }
  9849. +}
  9850. +
  9851. +void setup_windows(void)
  9852. +{
  9853. + int lines, columns;
  9854. +
  9855. + getmaxyx(stdscr, lines, columns);
  9856. +
  9857. + if (main_window != NULL)
  9858. + delwin(main_window);
  9859. +
  9860. + /* set up the menu and menu window */
  9861. + main_window = newwin(lines-2, columns-2, 2, 1);
  9862. + keypad(main_window, TRUE);
  9863. + mwin_max_lines = lines-7;
  9864. + mwin_max_cols = columns-6;
  9865. +
  9866. + /* panels order is from bottom to top */
  9867. + new_panel(main_window);
  9868. +}
  9869. +
  9870. +int main(int ac, char **av)
  9871. +{
  9872. + int lines, columns;
  9873. + char *mode;
  9874. +
  9875. + setlocale(LC_ALL, "");
  9876. + bindtextdomain(PACKAGE, LOCALEDIR);
  9877. + textdomain(PACKAGE);
  9878. +
  9879. + conf_parse(av[1]);
  9880. + conf_read(NULL);
  9881. +
  9882. + mode = getenv("NCONFIG_MODE");
  9883. + if (mode) {
  9884. + if (!strcasecmp(mode, "single_menu"))
  9885. + single_menu_mode = 1;
  9886. + }
  9887. +
  9888. + /* Initialize curses */
  9889. + initscr();
  9890. + /* set color theme */
  9891. + set_colors();
  9892. +
  9893. + cbreak();
  9894. + noecho();
  9895. + keypad(stdscr, TRUE);
  9896. + curs_set(0);
  9897. +
  9898. + getmaxyx(stdscr, lines, columns);
  9899. + if (columns < 75 || lines < 20) {
  9900. + endwin();
  9901. + printf("Your terminal should have at "
  9902. + "least 20 lines and 75 columns\n");
  9903. + return 1;
  9904. + }
  9905. +
  9906. + notimeout(stdscr, FALSE);
  9907. +#if NCURSES_REENTRANT
  9908. + set_escdelay(1);
  9909. +#else
  9910. + ESCDELAY = 1;
  9911. +#endif
  9912. +
  9913. + /* set btns menu */
  9914. + curses_menu = new_menu(curses_menu_items);
  9915. + menu_opts_off(curses_menu, O_SHOWDESC);
  9916. + menu_opts_on(curses_menu, O_SHOWMATCH);
  9917. + menu_opts_on(curses_menu, O_ONEVALUE);
  9918. + menu_opts_on(curses_menu, O_NONCYCLIC);
  9919. + menu_opts_on(curses_menu, O_IGNORECASE);
  9920. + set_menu_mark(curses_menu, " ");
  9921. + set_menu_fore(curses_menu, attributes[MAIN_MENU_FORE]);
  9922. + set_menu_back(curses_menu, attributes[MAIN_MENU_BACK]);
  9923. + set_menu_grey(curses_menu, attributes[MAIN_MENU_GREY]);
  9924. +
  9925. + set_config_filename(conf_get_configname());
  9926. + setup_windows();
  9927. +
  9928. + /* check for KEY_FUNC(1) */
  9929. + if (has_key(KEY_F(1)) == FALSE) {
  9930. + show_scroll_win(main_window,
  9931. + _("Instructions"),
  9932. + _(menu_no_f_instructions));
  9933. + }
  9934. +
  9935. + conf_set_message_callback(conf_message_callback);
  9936. + /* do the work */
  9937. + while (!global_exit) {
  9938. + conf(&rootmenu);
  9939. + if (!global_exit && do_exit() == 0)
  9940. + break;
  9941. + }
  9942. + /* ok, we are done */
  9943. + unpost_menu(curses_menu);
  9944. + free_menu(curses_menu);
  9945. + delwin(main_window);
  9946. + clear();
  9947. + refresh();
  9948. + endwin();
  9949. + return 0;
  9950. +}
  9951. +
  9952. diff -Nur uClibc-0.9.33.2/extra/config/nconf.gui.c uClibc-git/extra/config/nconf.gui.c
  9953. --- uClibc-0.9.33.2/extra/config/nconf.gui.c 1970-01-01 01:00:00.000000000 +0100
  9954. +++ uClibc-git/extra/config/nconf.gui.c 2014-06-02 17:40:33.746710502 +0200
  9955. @@ -0,0 +1,656 @@
  9956. +/*
  9957. + * Copyright (C) 2008 Nir Tzachar <nir.tzachar@gmail.com?
  9958. + * Released under the terms of the GNU GPL v2.0.
  9959. + *
  9960. + * Derived from menuconfig.
  9961. + *
  9962. + */
  9963. +#include "nconf.h"
  9964. +
  9965. +/* a list of all the different widgets we use */
  9966. +attributes_t attributes[ATTR_MAX+1] = {0};
  9967. +
  9968. +/* available colors:
  9969. + COLOR_BLACK 0
  9970. + COLOR_RED 1
  9971. + COLOR_GREEN 2
  9972. + COLOR_YELLOW 3
  9973. + COLOR_BLUE 4
  9974. + COLOR_MAGENTA 5
  9975. + COLOR_CYAN 6
  9976. + COLOR_WHITE 7
  9977. + */
  9978. +static void set_normal_colors(void)
  9979. +{
  9980. + init_pair(NORMAL, -1, -1);
  9981. + init_pair(MAIN_HEADING, COLOR_MAGENTA, -1);
  9982. +
  9983. + /* FORE is for the selected item */
  9984. + init_pair(MAIN_MENU_FORE, -1, -1);
  9985. + /* BACK for all the rest */
  9986. + init_pair(MAIN_MENU_BACK, -1, -1);
  9987. + init_pair(MAIN_MENU_GREY, -1, -1);
  9988. + init_pair(MAIN_MENU_HEADING, COLOR_GREEN, -1);
  9989. + init_pair(MAIN_MENU_BOX, COLOR_YELLOW, -1);
  9990. +
  9991. + init_pair(SCROLLWIN_TEXT, -1, -1);
  9992. + init_pair(SCROLLWIN_HEADING, COLOR_GREEN, -1);
  9993. + init_pair(SCROLLWIN_BOX, COLOR_YELLOW, -1);
  9994. +
  9995. + init_pair(DIALOG_TEXT, -1, -1);
  9996. + init_pair(DIALOG_BOX, COLOR_YELLOW, -1);
  9997. + init_pair(DIALOG_MENU_BACK, COLOR_YELLOW, -1);
  9998. + init_pair(DIALOG_MENU_FORE, COLOR_RED, -1);
  9999. +
  10000. + init_pair(INPUT_BOX, COLOR_YELLOW, -1);
  10001. + init_pair(INPUT_HEADING, COLOR_GREEN, -1);
  10002. + init_pair(INPUT_TEXT, -1, -1);
  10003. + init_pair(INPUT_FIELD, -1, -1);
  10004. +
  10005. + init_pair(FUNCTION_HIGHLIGHT, -1, -1);
  10006. + init_pair(FUNCTION_TEXT, COLOR_YELLOW, -1);
  10007. +}
  10008. +
  10009. +/* available attributes:
  10010. + A_NORMAL Normal display (no highlight)
  10011. + A_STANDOUT Best highlighting mode of the terminal.
  10012. + A_UNDERLINE Underlining
  10013. + A_REVERSE Reverse video
  10014. + A_BLINK Blinking
  10015. + A_DIM Half bright
  10016. + A_BOLD Extra bright or bold
  10017. + A_PROTECT Protected mode
  10018. + A_INVIS Invisible or blank mode
  10019. + A_ALTCHARSET Alternate character set
  10020. + A_CHARTEXT Bit-mask to extract a character
  10021. + COLOR_PAIR(n) Color-pair number n
  10022. + */
  10023. +static void normal_color_theme(void)
  10024. +{
  10025. + /* automatically add color... */
  10026. +#define mkattr(name, attr) do { \
  10027. +attributes[name] = attr | COLOR_PAIR(name); } while (0)
  10028. + mkattr(NORMAL, NORMAL);
  10029. + mkattr(MAIN_HEADING, A_BOLD | A_UNDERLINE);
  10030. +
  10031. + mkattr(MAIN_MENU_FORE, A_REVERSE);
  10032. + mkattr(MAIN_MENU_BACK, A_NORMAL);
  10033. + mkattr(MAIN_MENU_GREY, A_NORMAL);
  10034. + mkattr(MAIN_MENU_HEADING, A_BOLD);
  10035. + mkattr(MAIN_MENU_BOX, A_NORMAL);
  10036. +
  10037. + mkattr(SCROLLWIN_TEXT, A_NORMAL);
  10038. + mkattr(SCROLLWIN_HEADING, A_BOLD);
  10039. + mkattr(SCROLLWIN_BOX, A_BOLD);
  10040. +
  10041. + mkattr(DIALOG_TEXT, A_BOLD);
  10042. + mkattr(DIALOG_BOX, A_BOLD);
  10043. + mkattr(DIALOG_MENU_FORE, A_STANDOUT);
  10044. + mkattr(DIALOG_MENU_BACK, A_NORMAL);
  10045. +
  10046. + mkattr(INPUT_BOX, A_NORMAL);
  10047. + mkattr(INPUT_HEADING, A_BOLD);
  10048. + mkattr(INPUT_TEXT, A_NORMAL);
  10049. + mkattr(INPUT_FIELD, A_UNDERLINE);
  10050. +
  10051. + mkattr(FUNCTION_HIGHLIGHT, A_BOLD);
  10052. + mkattr(FUNCTION_TEXT, A_REVERSE);
  10053. +}
  10054. +
  10055. +static void no_colors_theme(void)
  10056. +{
  10057. + /* automatically add highlight, no color */
  10058. +#define mkattrn(name, attr) { attributes[name] = attr; }
  10059. +
  10060. + mkattrn(NORMAL, NORMAL);
  10061. + mkattrn(MAIN_HEADING, A_BOLD | A_UNDERLINE);
  10062. +
  10063. + mkattrn(MAIN_MENU_FORE, A_STANDOUT);
  10064. + mkattrn(MAIN_MENU_BACK, A_NORMAL);
  10065. + mkattrn(MAIN_MENU_GREY, A_NORMAL);
  10066. + mkattrn(MAIN_MENU_HEADING, A_BOLD);
  10067. + mkattrn(MAIN_MENU_BOX, A_NORMAL);
  10068. +
  10069. + mkattrn(SCROLLWIN_TEXT, A_NORMAL);
  10070. + mkattrn(SCROLLWIN_HEADING, A_BOLD);
  10071. + mkattrn(SCROLLWIN_BOX, A_BOLD);
  10072. +
  10073. + mkattrn(DIALOG_TEXT, A_NORMAL);
  10074. + mkattrn(DIALOG_BOX, A_BOLD);
  10075. + mkattrn(DIALOG_MENU_FORE, A_STANDOUT);
  10076. + mkattrn(DIALOG_MENU_BACK, A_NORMAL);
  10077. +
  10078. + mkattrn(INPUT_BOX, A_BOLD);
  10079. + mkattrn(INPUT_HEADING, A_BOLD);
  10080. + mkattrn(INPUT_TEXT, A_NORMAL);
  10081. + mkattrn(INPUT_FIELD, A_UNDERLINE);
  10082. +
  10083. + mkattrn(FUNCTION_HIGHLIGHT, A_BOLD);
  10084. + mkattrn(FUNCTION_TEXT, A_REVERSE);
  10085. +}
  10086. +
  10087. +void set_colors()
  10088. +{
  10089. + start_color();
  10090. + use_default_colors();
  10091. + set_normal_colors();
  10092. + if (has_colors()) {
  10093. + normal_color_theme();
  10094. + } else {
  10095. + /* give defaults */
  10096. + no_colors_theme();
  10097. + }
  10098. +}
  10099. +
  10100. +
  10101. +/* this changes the windows attributes !!! */
  10102. +void print_in_middle(WINDOW *win,
  10103. + int starty,
  10104. + int startx,
  10105. + int width,
  10106. + const char *string,
  10107. + chtype color)
  10108. +{ int length, x, y;
  10109. + float temp;
  10110. +
  10111. +
  10112. + if (win == NULL)
  10113. + win = stdscr;
  10114. + getyx(win, y, x);
  10115. + if (startx != 0)
  10116. + x = startx;
  10117. + if (starty != 0)
  10118. + y = starty;
  10119. + if (width == 0)
  10120. + width = 80;
  10121. +
  10122. + length = strlen(string);
  10123. + temp = (width - length) / 2;
  10124. + x = startx + (int)temp;
  10125. + (void) wattrset(win, color);
  10126. + mvwprintw(win, y, x, "%s", string);
  10127. + refresh();
  10128. +}
  10129. +
  10130. +int get_line_no(const char *text)
  10131. +{
  10132. + int i;
  10133. + int total = 1;
  10134. +
  10135. + if (!text)
  10136. + return 0;
  10137. +
  10138. + for (i = 0; text[i] != '\0'; i++)
  10139. + if (text[i] == '\n')
  10140. + total++;
  10141. + return total;
  10142. +}
  10143. +
  10144. +const char *get_line(const char *text, int line_no)
  10145. +{
  10146. + int i;
  10147. + int lines = 0;
  10148. +
  10149. + if (!text)
  10150. + return 0;
  10151. +
  10152. + for (i = 0; text[i] != '\0' && lines < line_no; i++)
  10153. + if (text[i] == '\n')
  10154. + lines++;
  10155. + return text+i;
  10156. +}
  10157. +
  10158. +int get_line_length(const char *line)
  10159. +{
  10160. + int res = 0;
  10161. + while (*line != '\0' && *line != '\n') {
  10162. + line++;
  10163. + res++;
  10164. + }
  10165. + return res;
  10166. +}
  10167. +
  10168. +/* print all lines to the window. */
  10169. +void fill_window(WINDOW *win, const char *text)
  10170. +{
  10171. + int x, y;
  10172. + int total_lines = get_line_no(text);
  10173. + int i;
  10174. +
  10175. + getmaxyx(win, y, x);
  10176. + /* do not go over end of line */
  10177. + total_lines = min(total_lines, y);
  10178. + for (i = 0; i < total_lines; i++) {
  10179. + char tmp[x+10];
  10180. + const char *line = get_line(text, i);
  10181. + int len = get_line_length(line);
  10182. + strncpy(tmp, line, min(len, x));
  10183. + tmp[len] = '\0';
  10184. + mvwprintw(win, i, 0, "%s", tmp);
  10185. + }
  10186. +}
  10187. +
  10188. +/* get the message, and buttons.
  10189. + * each button must be a char*
  10190. + * return the selected button
  10191. + *
  10192. + * this dialog is used for 2 different things:
  10193. + * 1) show a text box, no buttons.
  10194. + * 2) show a dialog, with horizontal buttons
  10195. + */
  10196. +int btn_dialog(WINDOW *main_window, const char *msg, int btn_num, ...)
  10197. +{
  10198. + va_list ap;
  10199. + char *btn;
  10200. + int btns_width = 0;
  10201. + int msg_lines = 0;
  10202. + int msg_width = 0;
  10203. + int total_width;
  10204. + int win_rows = 0;
  10205. + WINDOW *win;
  10206. + WINDOW *msg_win;
  10207. + WINDOW *menu_win;
  10208. + MENU *menu;
  10209. + ITEM *btns[btn_num+1];
  10210. + int i, x, y;
  10211. + int res = -1;
  10212. +
  10213. +
  10214. + va_start(ap, btn_num);
  10215. + for (i = 0; i < btn_num; i++) {
  10216. + btn = va_arg(ap, char *);
  10217. + btns[i] = new_item(btn, "");
  10218. + btns_width += strlen(btn)+1;
  10219. + }
  10220. + va_end(ap);
  10221. + btns[btn_num] = NULL;
  10222. +
  10223. + /* find the widest line of msg: */
  10224. + msg_lines = get_line_no(msg);
  10225. + for (i = 0; i < msg_lines; i++) {
  10226. + const char *line = get_line(msg, i);
  10227. + int len = get_line_length(line);
  10228. + if (msg_width < len)
  10229. + msg_width = len;
  10230. + }
  10231. +
  10232. + total_width = max(msg_width, btns_width);
  10233. + /* place dialog in middle of screen */
  10234. + y = (getmaxy(stdscr)-(msg_lines+4))/2;
  10235. + x = (getmaxx(stdscr)-(total_width+4))/2;
  10236. +
  10237. +
  10238. + /* create the windows */
  10239. + if (btn_num > 0)
  10240. + win_rows = msg_lines+4;
  10241. + else
  10242. + win_rows = msg_lines+2;
  10243. +
  10244. + win = newwin(win_rows, total_width+4, y, x);
  10245. + keypad(win, TRUE);
  10246. + menu_win = derwin(win, 1, btns_width, win_rows-2,
  10247. + 1+(total_width+2-btns_width)/2);
  10248. + menu = new_menu(btns);
  10249. + msg_win = derwin(win, win_rows-2, msg_width, 1,
  10250. + 1+(total_width+2-msg_width)/2);
  10251. +
  10252. + set_menu_fore(menu, attributes[DIALOG_MENU_FORE]);
  10253. + set_menu_back(menu, attributes[DIALOG_MENU_BACK]);
  10254. +
  10255. + (void) wattrset(win, attributes[DIALOG_BOX]);
  10256. + box(win, 0, 0);
  10257. +
  10258. + /* print message */
  10259. + (void) wattrset(msg_win, attributes[DIALOG_TEXT]);
  10260. + fill_window(msg_win, msg);
  10261. +
  10262. + set_menu_win(menu, win);
  10263. + set_menu_sub(menu, menu_win);
  10264. + set_menu_format(menu, 1, btn_num);
  10265. + menu_opts_off(menu, O_SHOWDESC);
  10266. + menu_opts_off(menu, O_SHOWMATCH);
  10267. + menu_opts_on(menu, O_ONEVALUE);
  10268. + menu_opts_on(menu, O_NONCYCLIC);
  10269. + set_menu_mark(menu, "");
  10270. + post_menu(menu);
  10271. +
  10272. +
  10273. + touchwin(win);
  10274. + refresh_all_windows(main_window);
  10275. + while ((res = wgetch(win))) {
  10276. + switch (res) {
  10277. + case KEY_LEFT:
  10278. + menu_driver(menu, REQ_LEFT_ITEM);
  10279. + break;
  10280. + case KEY_RIGHT:
  10281. + menu_driver(menu, REQ_RIGHT_ITEM);
  10282. + break;
  10283. + case 10: /* ENTER */
  10284. + case 27: /* ESCAPE */
  10285. + case ' ':
  10286. + case KEY_F(F_BACK):
  10287. + case KEY_F(F_EXIT):
  10288. + break;
  10289. + }
  10290. + touchwin(win);
  10291. + refresh_all_windows(main_window);
  10292. +
  10293. + if (res == 10 || res == ' ') {
  10294. + res = item_index(current_item(menu));
  10295. + break;
  10296. + } else if (res == 27 || res == KEY_F(F_BACK) ||
  10297. + res == KEY_F(F_EXIT)) {
  10298. + res = KEY_EXIT;
  10299. + break;
  10300. + }
  10301. + }
  10302. +
  10303. + unpost_menu(menu);
  10304. + free_menu(menu);
  10305. + for (i = 0; i < btn_num; i++)
  10306. + free_item(btns[i]);
  10307. +
  10308. + delwin(win);
  10309. + return res;
  10310. +}
  10311. +
  10312. +int dialog_inputbox(WINDOW *main_window,
  10313. + const char *title, const char *prompt,
  10314. + const char *init, char **resultp, int *result_len)
  10315. +{
  10316. + int prompt_lines = 0;
  10317. + int prompt_width = 0;
  10318. + WINDOW *win;
  10319. + WINDOW *prompt_win;
  10320. + WINDOW *form_win;
  10321. + PANEL *panel;
  10322. + int i, x, y;
  10323. + int res = -1;
  10324. + int cursor_position = strlen(init);
  10325. + int cursor_form_win;
  10326. + char *result = *resultp;
  10327. +
  10328. + if (strlen(init)+1 > *result_len) {
  10329. + *result_len = strlen(init)+1;
  10330. + *resultp = result = realloc(result, *result_len);
  10331. + }
  10332. +
  10333. + /* find the widest line of msg: */
  10334. + prompt_lines = get_line_no(prompt);
  10335. + for (i = 0; i < prompt_lines; i++) {
  10336. + const char *line = get_line(prompt, i);
  10337. + int len = get_line_length(line);
  10338. + prompt_width = max(prompt_width, len);
  10339. + }
  10340. +
  10341. + if (title)
  10342. + prompt_width = max(prompt_width, strlen(title));
  10343. +
  10344. + /* place dialog in middle of screen */
  10345. + y = (getmaxy(stdscr)-(prompt_lines+4))/2;
  10346. + x = (getmaxx(stdscr)-(prompt_width+4))/2;
  10347. +
  10348. + strncpy(result, init, *result_len);
  10349. +
  10350. + /* create the windows */
  10351. + win = newwin(prompt_lines+6, prompt_width+7, y, x);
  10352. + prompt_win = derwin(win, prompt_lines+1, prompt_width, 2, 2);
  10353. + form_win = derwin(win, 1, prompt_width, prompt_lines+3, 2);
  10354. + keypad(form_win, TRUE);
  10355. +
  10356. + (void) wattrset(form_win, attributes[INPUT_FIELD]);
  10357. +
  10358. + (void) wattrset(win, attributes[INPUT_BOX]);
  10359. + box(win, 0, 0);
  10360. + (void) wattrset(win, attributes[INPUT_HEADING]);
  10361. + if (title)
  10362. + mvwprintw(win, 0, 3, "%s", title);
  10363. +
  10364. + /* print message */
  10365. + (void) wattrset(prompt_win, attributes[INPUT_TEXT]);
  10366. + fill_window(prompt_win, prompt);
  10367. +
  10368. + mvwprintw(form_win, 0, 0, "%*s", prompt_width, " ");
  10369. + cursor_form_win = min(cursor_position, prompt_width-1);
  10370. + mvwprintw(form_win, 0, 0, "%s",
  10371. + result + cursor_position-cursor_form_win);
  10372. +
  10373. + /* create panels */
  10374. + panel = new_panel(win);
  10375. +
  10376. + /* show the cursor */
  10377. + curs_set(1);
  10378. +
  10379. + touchwin(win);
  10380. + refresh_all_windows(main_window);
  10381. + while ((res = wgetch(form_win))) {
  10382. + int len = strlen(result);
  10383. + switch (res) {
  10384. + case 10: /* ENTER */
  10385. + case 27: /* ESCAPE */
  10386. + case KEY_F(F_HELP):
  10387. + case KEY_F(F_EXIT):
  10388. + case KEY_F(F_BACK):
  10389. + break;
  10390. + case 127:
  10391. + case KEY_BACKSPACE:
  10392. + if (cursor_position > 0) {
  10393. + memmove(&result[cursor_position-1],
  10394. + &result[cursor_position],
  10395. + len-cursor_position+1);
  10396. + cursor_position--;
  10397. + cursor_form_win--;
  10398. + len--;
  10399. + }
  10400. + break;
  10401. + case KEY_DC:
  10402. + if (cursor_position >= 0 && cursor_position < len) {
  10403. + memmove(&result[cursor_position],
  10404. + &result[cursor_position+1],
  10405. + len-cursor_position+1);
  10406. + len--;
  10407. + }
  10408. + break;
  10409. + case KEY_UP:
  10410. + case KEY_RIGHT:
  10411. + if (cursor_position < len) {
  10412. + cursor_position++;
  10413. + cursor_form_win++;
  10414. + }
  10415. + break;
  10416. + case KEY_DOWN:
  10417. + case KEY_LEFT:
  10418. + if (cursor_position > 0) {
  10419. + cursor_position--;
  10420. + cursor_form_win--;
  10421. + }
  10422. + break;
  10423. + case KEY_HOME:
  10424. + cursor_position = 0;
  10425. + cursor_form_win = 0;
  10426. + break;
  10427. + case KEY_END:
  10428. + cursor_position = len;
  10429. + cursor_form_win = min(cursor_position, prompt_width-1);
  10430. + break;
  10431. + default:
  10432. + if ((isgraph(res) || isspace(res))) {
  10433. + /* one for new char, one for '\0' */
  10434. + if (len+2 > *result_len) {
  10435. + *result_len = len+2;
  10436. + *resultp = result = realloc(result,
  10437. + *result_len);
  10438. + }
  10439. + /* insert the char at the proper position */
  10440. + memmove(&result[cursor_position+1],
  10441. + &result[cursor_position],
  10442. + len-cursor_position+1);
  10443. + result[cursor_position] = res;
  10444. + cursor_position++;
  10445. + cursor_form_win++;
  10446. + len++;
  10447. + } else {
  10448. + mvprintw(0, 0, "unknown key: %d\n", res);
  10449. + }
  10450. + break;
  10451. + }
  10452. + if (cursor_form_win < 0)
  10453. + cursor_form_win = 0;
  10454. + else if (cursor_form_win > prompt_width-1)
  10455. + cursor_form_win = prompt_width-1;
  10456. +
  10457. + wmove(form_win, 0, 0);
  10458. + wclrtoeol(form_win);
  10459. + mvwprintw(form_win, 0, 0, "%*s", prompt_width, " ");
  10460. + mvwprintw(form_win, 0, 0, "%s",
  10461. + result + cursor_position-cursor_form_win);
  10462. + wmove(form_win, 0, cursor_form_win);
  10463. + touchwin(win);
  10464. + refresh_all_windows(main_window);
  10465. +
  10466. + if (res == 10) {
  10467. + res = 0;
  10468. + break;
  10469. + } else if (res == 27 || res == KEY_F(F_BACK) ||
  10470. + res == KEY_F(F_EXIT)) {
  10471. + res = KEY_EXIT;
  10472. + break;
  10473. + } else if (res == KEY_F(F_HELP)) {
  10474. + res = 1;
  10475. + break;
  10476. + }
  10477. + }
  10478. +
  10479. + /* hide the cursor */
  10480. + curs_set(0);
  10481. + del_panel(panel);
  10482. + delwin(prompt_win);
  10483. + delwin(form_win);
  10484. + delwin(win);
  10485. + return res;
  10486. +}
  10487. +
  10488. +/* refresh all windows in the correct order */
  10489. +void refresh_all_windows(WINDOW *main_window)
  10490. +{
  10491. + update_panels();
  10492. + touchwin(main_window);
  10493. + refresh();
  10494. +}
  10495. +
  10496. +/* layman's scrollable window... */
  10497. +void show_scroll_win(WINDOW *main_window,
  10498. + const char *title,
  10499. + const char *text)
  10500. +{
  10501. + int res;
  10502. + int total_lines = get_line_no(text);
  10503. + int x, y, lines, columns;
  10504. + int start_x = 0, start_y = 0;
  10505. + int text_lines = 0, text_cols = 0;
  10506. + int total_cols = 0;
  10507. + int win_cols = 0;
  10508. + int win_lines = 0;
  10509. + int i = 0;
  10510. + WINDOW *win;
  10511. + WINDOW *pad;
  10512. + PANEL *panel;
  10513. +
  10514. + getmaxyx(stdscr, lines, columns);
  10515. +
  10516. + /* find the widest line of msg: */
  10517. + total_lines = get_line_no(text);
  10518. + for (i = 0; i < total_lines; i++) {
  10519. + const char *line = get_line(text, i);
  10520. + int len = get_line_length(line);
  10521. + total_cols = max(total_cols, len+2);
  10522. + }
  10523. +
  10524. + /* create the pad */
  10525. + pad = newpad(total_lines+10, total_cols+10);
  10526. + (void) wattrset(pad, attributes[SCROLLWIN_TEXT]);
  10527. + fill_window(pad, text);
  10528. +
  10529. + win_lines = min(total_lines+4, lines-2);
  10530. + win_cols = min(total_cols+2, columns-2);
  10531. + text_lines = max(win_lines-4, 0);
  10532. + text_cols = max(win_cols-2, 0);
  10533. +
  10534. + /* place window in middle of screen */
  10535. + y = (lines-win_lines)/2;
  10536. + x = (columns-win_cols)/2;
  10537. +
  10538. + win = newwin(win_lines, win_cols, y, x);
  10539. + keypad(win, TRUE);
  10540. + /* show the help in the help window, and show the help panel */
  10541. + (void) wattrset(win, attributes[SCROLLWIN_BOX]);
  10542. + box(win, 0, 0);
  10543. + (void) wattrset(win, attributes[SCROLLWIN_HEADING]);
  10544. + mvwprintw(win, 0, 3, " %s ", title);
  10545. + panel = new_panel(win);
  10546. +
  10547. + /* handle scrolling */
  10548. + do {
  10549. +
  10550. + copywin(pad, win, start_y, start_x, 2, 2, text_lines,
  10551. + text_cols, 0);
  10552. + print_in_middle(win,
  10553. + text_lines+2,
  10554. + 0,
  10555. + text_cols,
  10556. + "<OK>",
  10557. + attributes[DIALOG_MENU_FORE]);
  10558. + wrefresh(win);
  10559. +
  10560. + res = wgetch(win);
  10561. + switch (res) {
  10562. + case KEY_NPAGE:
  10563. + case ' ':
  10564. + case 'd':
  10565. + start_y += text_lines-2;
  10566. + break;
  10567. + case KEY_PPAGE:
  10568. + case 'u':
  10569. + start_y -= text_lines+2;
  10570. + break;
  10571. + case KEY_HOME:
  10572. + start_y = 0;
  10573. + break;
  10574. + case KEY_END:
  10575. + start_y = total_lines-text_lines;
  10576. + break;
  10577. + case KEY_DOWN:
  10578. + case 'j':
  10579. + start_y++;
  10580. + break;
  10581. + case KEY_UP:
  10582. + case 'k':
  10583. + start_y--;
  10584. + break;
  10585. + case KEY_LEFT:
  10586. + case 'h':
  10587. + start_x--;
  10588. + break;
  10589. + case KEY_RIGHT:
  10590. + case 'l':
  10591. + start_x++;
  10592. + break;
  10593. + }
  10594. + if (res == 10 || res == 27 || res == 'q' ||
  10595. + res == KEY_F(F_HELP) || res == KEY_F(F_BACK) ||
  10596. + res == KEY_F(F_EXIT))
  10597. + break;
  10598. + if (start_y < 0)
  10599. + start_y = 0;
  10600. + if (start_y >= total_lines-text_lines)
  10601. + start_y = total_lines-text_lines;
  10602. + if (start_x < 0)
  10603. + start_x = 0;
  10604. + if (start_x >= total_cols-text_cols)
  10605. + start_x = total_cols-text_cols;
  10606. + } while (res);
  10607. +
  10608. + del_panel(panel);
  10609. + delwin(win);
  10610. + refresh_all_windows(main_window);
  10611. +}
  10612. diff -Nur uClibc-0.9.33.2/extra/config/nconf.h uClibc-git/extra/config/nconf.h
  10613. --- uClibc-0.9.33.2/extra/config/nconf.h 1970-01-01 01:00:00.000000000 +0100
  10614. +++ uClibc-git/extra/config/nconf.h 2014-06-02 17:40:33.746710502 +0200
  10615. @@ -0,0 +1,96 @@
  10616. +/*
  10617. + * Copyright (C) 2008 Nir Tzachar <nir.tzachar@gmail.com?
  10618. + * Released under the terms of the GNU GPL v2.0.
  10619. + *
  10620. + * Derived from menuconfig.
  10621. + *
  10622. + */
  10623. +
  10624. +#include <ctype.h>
  10625. +#include <errno.h>
  10626. +#include <fcntl.h>
  10627. +#include <limits.h>
  10628. +#include <stdarg.h>
  10629. +#include <stdlib.h>
  10630. +#include <string.h>
  10631. +#include <unistd.h>
  10632. +#include <locale.h>
  10633. +#include <curses.h>
  10634. +#include <menu.h>
  10635. +#include <panel.h>
  10636. +#include <form.h>
  10637. +
  10638. +#include <stdio.h>
  10639. +#include <time.h>
  10640. +#include <sys/time.h>
  10641. +
  10642. +#include "ncurses.h"
  10643. +
  10644. +#define max(a, b) ({\
  10645. + typeof(a) _a = a;\
  10646. + typeof(b) _b = b;\
  10647. + _a > _b ? _a : _b; })
  10648. +
  10649. +#define min(a, b) ({\
  10650. + typeof(a) _a = a;\
  10651. + typeof(b) _b = b;\
  10652. + _a < _b ? _a : _b; })
  10653. +
  10654. +typedef enum {
  10655. + NORMAL = 1,
  10656. + MAIN_HEADING,
  10657. + MAIN_MENU_BOX,
  10658. + MAIN_MENU_FORE,
  10659. + MAIN_MENU_BACK,
  10660. + MAIN_MENU_GREY,
  10661. + MAIN_MENU_HEADING,
  10662. + SCROLLWIN_TEXT,
  10663. + SCROLLWIN_HEADING,
  10664. + SCROLLWIN_BOX,
  10665. + DIALOG_TEXT,
  10666. + DIALOG_MENU_FORE,
  10667. + DIALOG_MENU_BACK,
  10668. + DIALOG_BOX,
  10669. + INPUT_BOX,
  10670. + INPUT_HEADING,
  10671. + INPUT_TEXT,
  10672. + INPUT_FIELD,
  10673. + FUNCTION_TEXT,
  10674. + FUNCTION_HIGHLIGHT,
  10675. + ATTR_MAX
  10676. +} attributes_t;
  10677. +extern attributes_t attributes[];
  10678. +
  10679. +typedef enum {
  10680. + F_HELP = 1,
  10681. + F_SYMBOL = 2,
  10682. + F_INSTS = 3,
  10683. + F_CONF = 4,
  10684. + F_BACK = 5,
  10685. + F_SAVE = 6,
  10686. + F_LOAD = 7,
  10687. + F_SEARCH = 8,
  10688. + F_EXIT = 9,
  10689. +} function_key;
  10690. +
  10691. +void set_colors(void);
  10692. +
  10693. +/* this changes the windows attributes !!! */
  10694. +void print_in_middle(WINDOW *win,
  10695. + int starty,
  10696. + int startx,
  10697. + int width,
  10698. + const char *string,
  10699. + chtype color);
  10700. +int get_line_length(const char *line);
  10701. +int get_line_no(const char *text);
  10702. +const char *get_line(const char *text, int line_no);
  10703. +void fill_window(WINDOW *win, const char *text);
  10704. +int btn_dialog(WINDOW *main_window, const char *msg, int btn_num, ...);
  10705. +int dialog_inputbox(WINDOW *main_window,
  10706. + const char *title, const char *prompt,
  10707. + const char *init, char **resultp, int *result_len);
  10708. +void refresh_all_windows(WINDOW *main_window);
  10709. +void show_scroll_win(WINDOW *main_window,
  10710. + const char *title,
  10711. + const char *text);
  10712. diff -Nur uClibc-0.9.33.2/extra/config/qconf.cc uClibc-git/extra/config/qconf.cc
  10713. --- uClibc-0.9.33.2/extra/config/qconf.cc 2012-05-15 09:20:09.000000000 +0200
  10714. +++ uClibc-git/extra/config/qconf.cc 2014-06-02 17:40:33.746710502 +0200
  10715. @@ -3,24 +3,43 @@
  10716. * Released under the terms of the GNU GPL v2.0.
  10717. */
  10718. -#include <qapplication.h>
  10719. +#include <qglobal.h>
  10720. +
  10721. +#if QT_VERSION < 0x040000
  10722. +#include <stddef.h>
  10723. #include <qmainwindow.h>
  10724. +#include <qvbox.h>
  10725. +#include <qvaluelist.h>
  10726. +#include <qtextbrowser.h>
  10727. +#include <qaction.h>
  10728. +#include <qheader.h>
  10729. +#include <qfiledialog.h>
  10730. +#include <qdragobject.h>
  10731. +#include <qpopupmenu.h>
  10732. +#else
  10733. +#include <q3mainwindow.h>
  10734. +#include <q3vbox.h>
  10735. +#include <q3valuelist.h>
  10736. +#include <q3textbrowser.h>
  10737. +#include <q3action.h>
  10738. +#include <q3header.h>
  10739. +#include <q3filedialog.h>
  10740. +#include <q3dragobject.h>
  10741. +#include <q3popupmenu.h>
  10742. +#endif
  10743. +
  10744. +#include <qapplication.h>
  10745. +#include <qdesktopwidget.h>
  10746. #include <qtoolbar.h>
  10747. #include <qlayout.h>
  10748. -#include <qvbox.h>
  10749. #include <qsplitter.h>
  10750. -#include <qlistview.h>
  10751. -#include <qtextbrowser.h>
  10752. #include <qlineedit.h>
  10753. #include <qlabel.h>
  10754. #include <qpushbutton.h>
  10755. #include <qmenubar.h>
  10756. #include <qmessagebox.h>
  10757. -#include <qaction.h>
  10758. -#include <qheader.h>
  10759. -#include <qfiledialog.h>
  10760. -#include <qdragobject.h>
  10761. #include <qregexp.h>
  10762. +#include <qevent.h>
  10763. #include <stdlib.h>
  10764. @@ -38,7 +57,7 @@
  10765. static QApplication *configApp;
  10766. static ConfigSettings *configSettings;
  10767. -QAction *ConfigMainWindow::saveAction;
  10768. +Q3Action *ConfigMainWindow::saveAction;
  10769. static inline QString qgettext(const char* str)
  10770. {
  10771. @@ -53,15 +72,14 @@
  10772. /**
  10773. * Reads a list of integer values from the application settings.
  10774. */
  10775. -QValueList<int> ConfigSettings::readSizes(const QString& key, bool *ok)
  10776. +Q3ValueList<int> ConfigSettings::readSizes(const QString& key, bool *ok)
  10777. {
  10778. - QValueList<int> result;
  10779. + Q3ValueList<int> result;
  10780. QStringList entryList = readListEntry(key, ok);
  10781. - if (ok) {
  10782. - QStringList::Iterator it;
  10783. - for (it = entryList.begin(); it != entryList.end(); ++it)
  10784. - result.push_back((*it).toInt());
  10785. - }
  10786. + QStringList::Iterator it;
  10787. +
  10788. + for (it = entryList.begin(); it != entryList.end(); ++it)
  10789. + result.push_back((*it).toInt());
  10790. return result;
  10791. }
  10792. @@ -69,10 +87,10 @@
  10793. /**
  10794. * Writes a list of integer values to the application settings.
  10795. */
  10796. -bool ConfigSettings::writeSizes(const QString& key, const QValueList<int>& value)
  10797. +bool ConfigSettings::writeSizes(const QString& key, const Q3ValueList<int>& value)
  10798. {
  10799. QStringList stringList;
  10800. - QValueList<int>::ConstIterator it;
  10801. + Q3ValueList<int>::ConstIterator it;
  10802. for (it = value.begin(); it != value.end(); ++it)
  10803. stringList.push_back(QString::number(*it));
  10804. @@ -80,7 +98,6 @@
  10805. }
  10806. -#if QT_VERSION >= 300
  10807. /*
  10808. * set the new data
  10809. * TODO check the value
  10810. @@ -91,7 +108,6 @@
  10811. sym_set_string_value(menu->sym, text(dataColIdx).latin1());
  10812. listView()->updateList(this);
  10813. }
  10814. -#endif
  10815. /*
  10816. * update the displayed of a menu entry
  10817. @@ -148,7 +164,7 @@
  10818. case S_TRISTATE:
  10819. char ch;
  10820. - if (!sym_is_changable(sym) && !list->showAll) {
  10821. + if (!sym_is_changable(sym) && list->optMode == normalOpt) {
  10822. setPixmap(promptColIdx, 0);
  10823. setText(noColIdx, QString::null);
  10824. setText(modColIdx, QString::null);
  10825. @@ -195,11 +211,9 @@
  10826. data = sym_get_string_value(sym);
  10827. -#if QT_VERSION >= 300
  10828. int i = list->mapIdx(dataColIdx);
  10829. if (i >= 0)
  10830. setRenameEnabled(i, TRUE);
  10831. -#endif
  10832. setText(dataColIdx, data);
  10833. if (type == S_STRING)
  10834. prompt = QString("%1: %2").arg(prompt).arg(data);
  10835. @@ -297,10 +311,10 @@
  10836. void ConfigLineEdit::keyPressEvent(QKeyEvent* e)
  10837. {
  10838. switch (e->key()) {
  10839. - case Key_Escape:
  10840. + case Qt::Key_Escape:
  10841. break;
  10842. - case Key_Return:
  10843. - case Key_Enter:
  10844. + case Qt::Key_Return:
  10845. + case Qt::Key_Enter:
  10846. sym_set_string_value(item->menu->sym, text().latin1());
  10847. parent()->updateList(item);
  10848. break;
  10849. @@ -319,7 +333,7 @@
  10850. symbolYesPix(xpm_symbol_yes), symbolModPix(xpm_symbol_mod), symbolNoPix(xpm_symbol_no),
  10851. choiceYesPix(xpm_choice_yes), choiceNoPix(xpm_choice_no),
  10852. menuPix(xpm_menu), menuInvPix(xpm_menu_inv), menuBackPix(xpm_menuback), voidPix(xpm_void),
  10853. - showAll(false), showName(false), showRange(false), showData(false),
  10854. + showName(false), showRange(false), showData(false), optMode(normalOpt),
  10855. rootEntry(0), headerPopup(0)
  10856. {
  10857. int i;
  10858. @@ -336,10 +350,10 @@
  10859. if (name) {
  10860. configSettings->beginGroup(name);
  10861. - showAll = configSettings->readBoolEntry("/showAll", false);
  10862. showName = configSettings->readBoolEntry("/showName", false);
  10863. showRange = configSettings->readBoolEntry("/showRange", false);
  10864. showData = configSettings->readBoolEntry("/showData", false);
  10865. + optMode = (enum optionMode)configSettings->readNumEntry("/optionMode", false);
  10866. configSettings->endGroup();
  10867. connect(configApp, SIGNAL(aboutToQuit()), SLOT(saveSettings()));
  10868. }
  10869. @@ -351,6 +365,17 @@
  10870. reinit();
  10871. }
  10872. +bool ConfigList::menuSkip(struct menu *menu)
  10873. +{
  10874. + if (optMode == normalOpt && menu_is_visible(menu))
  10875. + return false;
  10876. + if (optMode == promptOpt && menu_has_prompt(menu))
  10877. + return false;
  10878. + if (optMode == allOpt)
  10879. + return false;
  10880. + return true;
  10881. +}
  10882. +
  10883. void ConfigList::reinit(void)
  10884. {
  10885. removeColumn(dataColIdx);
  10886. @@ -379,7 +404,7 @@
  10887. configSettings->writeEntry("/showName", showName);
  10888. configSettings->writeEntry("/showRange", showRange);
  10889. configSettings->writeEntry("/showData", showData);
  10890. - configSettings->writeEntry("/showAll", showAll);
  10891. + configSettings->writeEntry("/optionMode", (int)optMode);
  10892. configSettings->endGroup();
  10893. }
  10894. }
  10895. @@ -421,7 +446,7 @@
  10896. if (!rootEntry) {
  10897. if (mode != listMode)
  10898. goto update;
  10899. - QListViewItemIterator it(this);
  10900. + Q3ListViewItemIterator it(this);
  10901. ConfigItem* item;
  10902. for (; it.current(); ++it) {
  10903. @@ -516,11 +541,9 @@
  10904. case S_INT:
  10905. case S_HEX:
  10906. case S_STRING:
  10907. -#if QT_VERSION >= 300
  10908. if (colMap[dataColIdx] >= 0)
  10909. item->startRename(colMap[dataColIdx]);
  10910. else
  10911. -#endif
  10912. parent()->lineEdit->show(item);
  10913. break;
  10914. }
  10915. @@ -552,7 +575,7 @@
  10916. return;
  10917. setRootMenu(menu_get_parent_menu(rootEntry->parent));
  10918. - QListViewItemIterator it(this);
  10919. + Q3ListViewItemIterator it(this);
  10920. for (; (item = (ConfigItem*)it.current()); it++) {
  10921. if (item->menu == oldroot) {
  10922. setCurrentItem(item);
  10923. @@ -605,7 +628,7 @@
  10924. }
  10925. visible = menu_is_visible(child);
  10926. - if (showAll || visible) {
  10927. + if (!menuSkip(child)) {
  10928. if (!child->sym && !child->list && !child->prompt)
  10929. continue;
  10930. if (!item || item->menu != child)
  10931. @@ -634,12 +657,12 @@
  10932. void ConfigList::keyPressEvent(QKeyEvent* ev)
  10933. {
  10934. - QListViewItem* i = currentItem();
  10935. + Q3ListViewItem* i = currentItem();
  10936. ConfigItem* item;
  10937. struct menu *menu;
  10938. enum prop_type type;
  10939. - if (ev->key() == Key_Escape && mode != fullMode && mode != listMode) {
  10940. + if (ev->key() == Qt::Key_Escape && mode != fullMode && mode != listMode) {
  10941. emit parentSelected();
  10942. ev->accept();
  10943. return;
  10944. @@ -652,8 +675,8 @@
  10945. item = (ConfigItem*)i;
  10946. switch (ev->key()) {
  10947. - case Key_Return:
  10948. - case Key_Enter:
  10949. + case Qt::Key_Return:
  10950. + case Qt::Key_Enter:
  10951. if (item->goParent) {
  10952. emit parentSelected();
  10953. break;
  10954. @@ -667,16 +690,16 @@
  10955. emit menuSelected(menu);
  10956. break;
  10957. }
  10958. - case Key_Space:
  10959. + case Qt::Key_Space:
  10960. changeValue(item);
  10961. break;
  10962. - case Key_N:
  10963. + case Qt::Key_N:
  10964. setValue(item, no);
  10965. break;
  10966. - case Key_M:
  10967. + case Qt::Key_M:
  10968. setValue(item, mod);
  10969. break;
  10970. - case Key_Y:
  10971. + case Qt::Key_Y:
  10972. setValue(item, yes);
  10973. break;
  10974. default:
  10975. @@ -800,10 +823,10 @@
  10976. {
  10977. if (e->y() <= header()->geometry().bottom()) {
  10978. if (!headerPopup) {
  10979. - QAction *action;
  10980. + Q3Action *action;
  10981. - headerPopup = new QPopupMenu(this);
  10982. - action = new QAction(NULL, _("Show Name"), 0, this);
  10983. + headerPopup = new Q3PopupMenu(this);
  10984. + action = new Q3Action(NULL, _("Show Name"), 0, this);
  10985. action->setToggleAction(TRUE);
  10986. connect(action, SIGNAL(toggled(bool)),
  10987. parent(), SLOT(setShowName(bool)));
  10988. @@ -811,7 +834,7 @@
  10989. action, SLOT(setOn(bool)));
  10990. action->setOn(showName);
  10991. action->addTo(headerPopup);
  10992. - action = new QAction(NULL, _("Show Range"), 0, this);
  10993. + action = new Q3Action(NULL, _("Show Range"), 0, this);
  10994. action->setToggleAction(TRUE);
  10995. connect(action, SIGNAL(toggled(bool)),
  10996. parent(), SLOT(setShowRange(bool)));
  10997. @@ -819,7 +842,7 @@
  10998. action, SLOT(setOn(bool)));
  10999. action->setOn(showRange);
  11000. action->addTo(headerPopup);
  11001. - action = new QAction(NULL, _("Show Data"), 0, this);
  11002. + action = new Q3Action(NULL, _("Show Data"), 0, this);
  11003. action->setToggleAction(TRUE);
  11004. connect(action, SIGNAL(toggled(bool)),
  11005. parent(), SLOT(setShowData(bool)));
  11006. @@ -834,7 +857,10 @@
  11007. e->ignore();
  11008. }
  11009. -ConfigView* ConfigView::viewList;
  11010. +ConfigView*ConfigView::viewList;
  11011. +QAction *ConfigView::showNormalAction;
  11012. +QAction *ConfigView::showAllAction;
  11013. +QAction *ConfigView::showPromptAction;
  11014. ConfigView::ConfigView(QWidget* parent, const char *name)
  11015. : Parent(parent, name)
  11016. @@ -859,13 +885,16 @@
  11017. }
  11018. }
  11019. -void ConfigView::setShowAll(bool b)
  11020. +void ConfigView::setOptionMode(QAction *act)
  11021. {
  11022. - if (list->showAll != b) {
  11023. - list->showAll = b;
  11024. - list->updateListAll();
  11025. - emit showAllChanged(b);
  11026. - }
  11027. + if (act == showNormalAction)
  11028. + list->optMode = normalOpt;
  11029. + else if (act == showAllAction)
  11030. + list->optMode = allOpt;
  11031. + else
  11032. + list->optMode = promptOpt;
  11033. +
  11034. + list->updateListAll();
  11035. }
  11036. void ConfigView::setShowName(bool b)
  11037. @@ -897,7 +926,7 @@
  11038. void ConfigList::setAllOpen(bool open)
  11039. {
  11040. - QListViewItemIterator it(this);
  11041. + Q3ListViewItemIterator it(this);
  11042. for (; it.current(); it++)
  11043. it.current()->setOpen(open);
  11044. @@ -920,7 +949,7 @@
  11045. }
  11046. ConfigInfoView::ConfigInfoView(QWidget* parent, const char *name)
  11047. - : Parent(parent, name), menu(0), sym(0)
  11048. + : Parent(parent, name), sym(0), _menu(0)
  11049. {
  11050. if (name) {
  11051. configSettings->beginGroup(name);
  11052. @@ -943,7 +972,7 @@
  11053. {
  11054. if (_showDebug != b) {
  11055. _showDebug = b;
  11056. - if (menu)
  11057. + if (_menu)
  11058. menuInfo();
  11059. else if (sym)
  11060. symbolInfo();
  11061. @@ -953,44 +982,16 @@
  11062. void ConfigInfoView::setInfo(struct menu *m)
  11063. {
  11064. - if (menu == m)
  11065. + if (_menu == m)
  11066. return;
  11067. - menu = m;
  11068. + _menu = m;
  11069. sym = NULL;
  11070. - if (!menu)
  11071. + if (!_menu)
  11072. clear();
  11073. else
  11074. menuInfo();
  11075. }
  11076. -void ConfigInfoView::setSource(const QString& name)
  11077. -{
  11078. - const char *p = name.latin1();
  11079. -
  11080. - menu = NULL;
  11081. - sym = NULL;
  11082. -
  11083. - switch (p[0]) {
  11084. - case 'm':
  11085. - struct menu *m;
  11086. -
  11087. - if (sscanf(p, "m%p", &m) == 1 && menu != m) {
  11088. - menu = m;
  11089. - menuInfo();
  11090. - emit menuSelected(menu);
  11091. - }
  11092. - break;
  11093. - case 's':
  11094. - struct symbol *s;
  11095. -
  11096. - if (sscanf(p, "s%p", &s) == 1 && sym != s) {
  11097. - sym = s;
  11098. - symbolInfo();
  11099. - }
  11100. - break;
  11101. - }
  11102. -}
  11103. -
  11104. void ConfigInfoView::symbolInfo(void)
  11105. {
  11106. QString str;
  11107. @@ -1012,11 +1013,11 @@
  11108. struct symbol* sym;
  11109. QString head, debug, help;
  11110. - sym = menu->sym;
  11111. + sym = _menu->sym;
  11112. if (sym) {
  11113. - if (menu->prompt) {
  11114. + if (_menu->prompt) {
  11115. head += "<big><b>";
  11116. - head += print_filter(_(menu->prompt->text));
  11117. + head += print_filter(_(_menu->prompt->text));
  11118. head += "</b></big>";
  11119. if (sym->name) {
  11120. head += " (";
  11121. @@ -1041,26 +1042,24 @@
  11122. if (showDebug())
  11123. debug = debug_info(sym);
  11124. - help = menu_get_help(menu);
  11125. - /* Gettextize if the help text not empty */
  11126. - if (help.isEmpty())
  11127. - help = print_filter(menu_get_help(menu));
  11128. - else
  11129. - help = print_filter(_(menu_get_help(menu)));
  11130. - } else if (menu->prompt) {
  11131. + struct gstr help_gstr = str_new();
  11132. + menu_get_ext_help(_menu, &help_gstr);
  11133. + help = print_filter(str_get(&help_gstr));
  11134. + str_free(&help_gstr);
  11135. + } else if (_menu->prompt) {
  11136. head += "<big><b>";
  11137. - head += print_filter(_(menu->prompt->text));
  11138. + head += print_filter(_(_menu->prompt->text));
  11139. head += "</b></big><br><br>";
  11140. if (showDebug()) {
  11141. - if (menu->prompt->visible.expr) {
  11142. + if (_menu->prompt->visible.expr) {
  11143. debug += "&nbsp;&nbsp;dep: ";
  11144. - expr_print(menu->prompt->visible.expr, expr_print_help, &debug, E_NONE);
  11145. + expr_print(_menu->prompt->visible.expr, expr_print_help, &debug, E_NONE);
  11146. debug += "<br><br>";
  11147. }
  11148. }
  11149. }
  11150. if (showDebug())
  11151. - debug += QString().sprintf("defined at %s:%d<br><br>", menu->file->name, menu->lineno);
  11152. + debug += QString().sprintf("defined at %s:%d<br><br>", _menu->file->name, _menu->lineno);
  11153. setText(head + debug + help);
  11154. }
  11155. @@ -1163,10 +1162,10 @@
  11156. *text += str2;
  11157. }
  11158. -QPopupMenu* ConfigInfoView::createPopupMenu(const QPoint& pos)
  11159. +Q3PopupMenu* ConfigInfoView::createPopupMenu(const QPoint& pos)
  11160. {
  11161. - QPopupMenu* popup = Parent::createPopupMenu(pos);
  11162. - QAction* action = new QAction(NULL, _("Show Debug Info"), 0, popup);
  11163. + Q3PopupMenu* popup = Parent::createPopupMenu(pos);
  11164. + Q3Action* action = new Q3Action(NULL, _("Show Debug Info"), 0, popup);
  11165. action->setToggleAction(TRUE);
  11166. connect(action, SIGNAL(toggled(bool)), SLOT(setShowDebug(bool)));
  11167. connect(this, SIGNAL(showDebugChanged(bool)), action, SLOT(setOn(bool)));
  11168. @@ -1199,7 +1198,7 @@
  11169. layout1->addLayout(layout2);
  11170. split = new QSplitter(this);
  11171. - split->setOrientation(QSplitter::Vertical);
  11172. + split->setOrientation(Qt::Vertical);
  11173. list = new ConfigView(split, name);
  11174. list->list->mode = listMode;
  11175. info = new ConfigInfoView(split, name);
  11176. @@ -1223,7 +1222,7 @@
  11177. y = configSettings->readNumEntry("/window y", 0, &ok);
  11178. if (ok)
  11179. move(x, y);
  11180. - QValueList<int> sizes = configSettings->readSizes("/split", &ok);
  11181. + Q3ValueList<int> sizes = configSettings->readSizes("/split", &ok);
  11182. if (ok)
  11183. split->setSizes(sizes);
  11184. configSettings->endGroup();
  11185. @@ -1275,9 +1274,15 @@
  11186. int x, y, width, height;
  11187. char title[256];
  11188. - QWidget *d = configApp->desktop();
  11189. - snprintf(title, sizeof(title), _("uClibc v%s Configuration"),
  11190. - getenv("VERSION"));
  11191. + QDesktopWidget *d = configApp->desktop();
  11192. + snprintf(title, sizeof(title), "%s%s",
  11193. + rootmenu.prompt->text,
  11194. +#if QT_VERSION < 0x040000
  11195. + " (Qt3)"
  11196. +#else
  11197. + ""
  11198. +#endif
  11199. + );
  11200. setCaption(title);
  11201. width = configSettings->readNumEntry("/window width", d->width() - 64);
  11202. @@ -1290,14 +1295,14 @@
  11203. move(x, y);
  11204. split1 = new QSplitter(this);
  11205. - split1->setOrientation(QSplitter::Horizontal);
  11206. + split1->setOrientation(Qt::Horizontal);
  11207. setCentralWidget(split1);
  11208. menuView = new ConfigView(split1, "menu");
  11209. menuList = menuView->list;
  11210. split2 = new QSplitter(split1);
  11211. - split2->setOrientation(QSplitter::Vertical);
  11212. + split2->setOrientation(Qt::Vertical);
  11213. // create config tree
  11214. configView = new ConfigView(split2, "config");
  11215. @@ -1310,60 +1315,79 @@
  11216. configList->setFocus();
  11217. menu = menuBar();
  11218. - toolBar = new QToolBar("Tools", this);
  11219. + toolBar = new Q3ToolBar("Tools", this);
  11220. - backAction = new QAction("Back", QPixmap(xpm_back), _("Back"), 0, this);
  11221. + backAction = new Q3Action("Back", QPixmap(xpm_back), _("Back"), 0, this);
  11222. connect(backAction, SIGNAL(activated()), SLOT(goBack()));
  11223. backAction->setEnabled(FALSE);
  11224. - QAction *quitAction = new QAction("Quit", _("&Quit"), CTRL+Key_Q, this);
  11225. + Q3Action *quitAction = new Q3Action("Quit", _("&Quit"), Qt::CTRL + Qt::Key_Q, this);
  11226. connect(quitAction, SIGNAL(activated()), SLOT(close()));
  11227. - QAction *loadAction = new QAction("Load", QPixmap(xpm_load), _("&Load"), CTRL+Key_L, this);
  11228. + Q3Action *loadAction = new Q3Action("Load", QPixmap(xpm_load), _("&Load"), Qt::CTRL + Qt::Key_L, this);
  11229. connect(loadAction, SIGNAL(activated()), SLOT(loadConfig()));
  11230. - saveAction = new QAction("Save", QPixmap(xpm_save), _("&Save"), CTRL+Key_S, this);
  11231. + saveAction = new Q3Action("Save", QPixmap(xpm_save), _("&Save"), Qt::CTRL + Qt::Key_S, this);
  11232. connect(saveAction, SIGNAL(activated()), SLOT(saveConfig()));
  11233. conf_set_changed_callback(conf_changed);
  11234. // Set saveAction's initial state
  11235. conf_changed();
  11236. - QAction *saveAsAction = new QAction("Save As...", _("Save &As..."), 0, this);
  11237. + Q3Action *saveAsAction = new Q3Action("Save As...", _("Save &As..."), 0, this);
  11238. connect(saveAsAction, SIGNAL(activated()), SLOT(saveConfigAs()));
  11239. - QAction *searchAction = new QAction("Find", _("&Find"), CTRL+Key_F, this);
  11240. + Q3Action *searchAction = new Q3Action("Find", _("&Find"), Qt::CTRL + Qt::Key_F, this);
  11241. connect(searchAction, SIGNAL(activated()), SLOT(searchConfig()));
  11242. - QAction *singleViewAction = new QAction("Single View", QPixmap(xpm_single_view), _("Single View"), 0, this);
  11243. + Q3Action *singleViewAction = new Q3Action("Single View", QPixmap(xpm_single_view), _("Single View"), 0, this);
  11244. connect(singleViewAction, SIGNAL(activated()), SLOT(showSingleView()));
  11245. - QAction *splitViewAction = new QAction("Split View", QPixmap(xpm_split_view), _("Split View"), 0, this);
  11246. + Q3Action *splitViewAction = new Q3Action("Split View", QPixmap(xpm_split_view), _("Split View"), 0, this);
  11247. connect(splitViewAction, SIGNAL(activated()), SLOT(showSplitView()));
  11248. - QAction *fullViewAction = new QAction("Full View", QPixmap(xpm_tree_view), _("Full View"), 0, this);
  11249. + Q3Action *fullViewAction = new Q3Action("Full View", QPixmap(xpm_tree_view), _("Full View"), 0, this);
  11250. connect(fullViewAction, SIGNAL(activated()), SLOT(showFullView()));
  11251. - QAction *showNameAction = new QAction(NULL, _("Show Name"), 0, this);
  11252. + Q3Action *showNameAction = new Q3Action(NULL, _("Show Name"), 0, this);
  11253. showNameAction->setToggleAction(TRUE);
  11254. connect(showNameAction, SIGNAL(toggled(bool)), configView, SLOT(setShowName(bool)));
  11255. connect(configView, SIGNAL(showNameChanged(bool)), showNameAction, SLOT(setOn(bool)));
  11256. showNameAction->setOn(configView->showName());
  11257. - QAction *showRangeAction = new QAction(NULL, _("Show Range"), 0, this);
  11258. + Q3Action *showRangeAction = new Q3Action(NULL, _("Show Range"), 0, this);
  11259. showRangeAction->setToggleAction(TRUE);
  11260. connect(showRangeAction, SIGNAL(toggled(bool)), configView, SLOT(setShowRange(bool)));
  11261. connect(configView, SIGNAL(showRangeChanged(bool)), showRangeAction, SLOT(setOn(bool)));
  11262. showRangeAction->setOn(configList->showRange);
  11263. - QAction *showDataAction = new QAction(NULL, _("Show Data"), 0, this);
  11264. + Q3Action *showDataAction = new Q3Action(NULL, _("Show Data"), 0, this);
  11265. showDataAction->setToggleAction(TRUE);
  11266. connect(showDataAction, SIGNAL(toggled(bool)), configView, SLOT(setShowData(bool)));
  11267. connect(configView, SIGNAL(showDataChanged(bool)), showDataAction, SLOT(setOn(bool)));
  11268. showDataAction->setOn(configList->showData);
  11269. - QAction *showAllAction = new QAction(NULL, _("Show All Options"), 0, this);
  11270. - showAllAction->setToggleAction(TRUE);
  11271. - connect(showAllAction, SIGNAL(toggled(bool)), configView, SLOT(setShowAll(bool)));
  11272. - connect(showAllAction, SIGNAL(toggled(bool)), menuView, SLOT(setShowAll(bool)));
  11273. - showAllAction->setOn(configList->showAll);
  11274. - QAction *showDebugAction = new QAction(NULL, _("Show Debug Info"), 0, this);
  11275. +
  11276. + QActionGroup *optGroup = new QActionGroup(this);
  11277. + optGroup->setExclusive(TRUE);
  11278. + connect(optGroup, SIGNAL(selected(QAction *)), configView,
  11279. + SLOT(setOptionMode(QAction *)));
  11280. + connect(optGroup, SIGNAL(selected(QAction *)), menuView,
  11281. + SLOT(setOptionMode(QAction *)));
  11282. +
  11283. +#if QT_VERSION >= 0x040000
  11284. + configView->showNormalAction = new QAction(_("Show Normal Options"), optGroup);
  11285. + configView->showAllAction = new QAction(_("Show All Options"), optGroup);
  11286. + configView->showPromptAction = new QAction(_("Show Prompt Options"), optGroup);
  11287. +#else
  11288. + configView->showNormalAction = new QAction(_("Show Normal Options"), 0, optGroup);
  11289. + configView->showAllAction = new QAction(_("Show All Options"), 0, optGroup);
  11290. + configView->showPromptAction = new QAction(_("Show Prompt Options"), 0, optGroup);
  11291. +#endif
  11292. + configView->showNormalAction->setToggleAction(TRUE);
  11293. + configView->showNormalAction->setOn(configList->optMode == normalOpt);
  11294. + configView->showAllAction->setToggleAction(TRUE);
  11295. + configView->showAllAction->setOn(configList->optMode == allOpt);
  11296. + configView->showPromptAction->setToggleAction(TRUE);
  11297. + configView->showPromptAction->setOn(configList->optMode == promptOpt);
  11298. +
  11299. + Q3Action *showDebugAction = new Q3Action(NULL, _("Show Debug Info"), 0, this);
  11300. showDebugAction->setToggleAction(TRUE);
  11301. connect(showDebugAction, SIGNAL(toggled(bool)), helpText, SLOT(setShowDebug(bool)));
  11302. connect(helpText, SIGNAL(showDebugChanged(bool)), showDebugAction, SLOT(setOn(bool)));
  11303. showDebugAction->setOn(helpText->showDebug());
  11304. - QAction *showIntroAction = new QAction(NULL, _("Introduction"), 0, this);
  11305. + Q3Action *showIntroAction = new Q3Action(NULL, _("Introduction"), 0, this);
  11306. connect(showIntroAction, SIGNAL(activated()), SLOT(showIntro()));
  11307. - QAction *showAboutAction = new QAction(NULL, _("About"), 0, this);
  11308. + Q3Action *showAboutAction = new Q3Action(NULL, _("About"), 0, this);
  11309. connect(showAboutAction, SIGNAL(activated()), SLOT(showAbout()));
  11310. // init tool bar
  11311. @@ -1377,7 +1401,7 @@
  11312. fullViewAction->addTo(toolBar);
  11313. // create config menu
  11314. - QPopupMenu* config = new QPopupMenu(this);
  11315. + Q3PopupMenu* config = new Q3PopupMenu(this);
  11316. menu->insertItem(_("&File"), config);
  11317. loadAction->addTo(config);
  11318. saveAction->addTo(config);
  11319. @@ -1386,22 +1410,22 @@
  11320. quitAction->addTo(config);
  11321. // create edit menu
  11322. - QPopupMenu* editMenu = new QPopupMenu(this);
  11323. + Q3PopupMenu* editMenu = new Q3PopupMenu(this);
  11324. menu->insertItem(_("&Edit"), editMenu);
  11325. searchAction->addTo(editMenu);
  11326. // create options menu
  11327. - QPopupMenu* optionMenu = new QPopupMenu(this);
  11328. + Q3PopupMenu* optionMenu = new Q3PopupMenu(this);
  11329. menu->insertItem(_("&Option"), optionMenu);
  11330. showNameAction->addTo(optionMenu);
  11331. showRangeAction->addTo(optionMenu);
  11332. showDataAction->addTo(optionMenu);
  11333. optionMenu->insertSeparator();
  11334. - showAllAction->addTo(optionMenu);
  11335. - showDebugAction->addTo(optionMenu);
  11336. + optGroup->addTo(optionMenu);
  11337. + optionMenu->insertSeparator();
  11338. // create help menu
  11339. - QPopupMenu* helpMenu = new QPopupMenu(this);
  11340. + Q3PopupMenu* helpMenu = new Q3PopupMenu(this);
  11341. menu->insertSeparator();
  11342. menu->insertItem(_("&Help"), helpMenu);
  11343. showIntroAction->addTo(helpMenu);
  11344. @@ -1436,7 +1460,7 @@
  11345. showSplitView();
  11346. // UI setup done, restore splitter positions
  11347. - QValueList<int> sizes = configSettings->readSizes("/split1", &ok);
  11348. + Q3ValueList<int> sizes = configSettings->readSizes("/split1", &ok);
  11349. if (ok)
  11350. split1->setSizes(sizes);
  11351. @@ -1447,7 +1471,7 @@
  11352. void ConfigMainWindow::loadConfig(void)
  11353. {
  11354. - QString s = QFileDialog::getOpenFileName(".config", NULL, this);
  11355. + QString s = Q3FileDialog::getOpenFileName(conf_get_configname(), NULL, this);
  11356. if (s.isNull())
  11357. return;
  11358. if (conf_read(QFile::encodeName(s)))
  11359. @@ -1455,19 +1479,21 @@
  11360. ConfigView::updateListAll();
  11361. }
  11362. -void ConfigMainWindow::saveConfig(void)
  11363. +bool ConfigMainWindow::saveConfig(void)
  11364. {
  11365. - if (conf_write(NULL))
  11366. + if (conf_write(NULL)) {
  11367. QMessageBox::information(this, "qconf", _("Unable to save configuration!"));
  11368. + return false;
  11369. + }
  11370. + return true;
  11371. }
  11372. void ConfigMainWindow::saveConfigAs(void)
  11373. {
  11374. - QString s = QFileDialog::getSaveFileName(".config", NULL, this);
  11375. + QString s = Q3FileDialog::getSaveFileName(conf_get_configname(), NULL, this);
  11376. if (s.isNull())
  11377. return;
  11378. - if (conf_write(QFile::encodeName(s)))
  11379. - QMessageBox::information(this, "qconf", _("Unable to save configuration!"));
  11380. + saveConfig();
  11381. }
  11382. void ConfigMainWindow::searchConfig(void)
  11383. @@ -1492,7 +1518,7 @@
  11384. ConfigList* list = NULL;
  11385. ConfigItem* item;
  11386. - if (!menu_is_visible(menu) && !configView->showAll())
  11387. + if (configList->menuSkip(menu))
  11388. return;
  11389. switch (configList->mode) {
  11390. @@ -1524,6 +1550,8 @@
  11391. case fullMode:
  11392. list = configList;
  11393. break;
  11394. + default:
  11395. + break;
  11396. }
  11397. if (list) {
  11398. @@ -1618,7 +1646,11 @@
  11399. mb.setButtonText(QMessageBox::Cancel, _("Cancel Exit"));
  11400. switch (mb.exec()) {
  11401. case QMessageBox::Yes:
  11402. - conf_write(NULL);
  11403. + if (saveConfig())
  11404. + e->accept();
  11405. + else
  11406. + e->ignore();
  11407. + break;
  11408. case QMessageBox::No:
  11409. e->accept();
  11410. break;
  11411. @@ -1630,7 +1662,7 @@
  11412. void ConfigMainWindow::showIntro(void)
  11413. {
  11414. - static const QString str = _("Welcome to the qconf graphical configuration tool for uClibc.\n\n"
  11415. + static const QString str = _("Welcome to the qconf graphical configuration tool.\n\n"
  11416. "For each option, a blank box indicates the feature is disabled, a check\n"
  11417. "indicates it is enabled, and a dot indicates that it is to be compiled\n"
  11418. "as a module. Clicking on the box will cycle through the three states.\n\n"
  11419. @@ -1648,7 +1680,7 @@
  11420. void ConfigMainWindow::showAbout(void)
  11421. {
  11422. static const QString str = _("qconf is Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>.\n\n"
  11423. - "Bug reports and feature request can also be entered at https://bugs.uClibc.org/\n");
  11424. + "Bug reports and feature request can also be entered at http://bugs.uClibc.org/\n");
  11425. QMessageBox::information(this, "qconf", str);
  11426. }
  11427. @@ -1673,6 +1705,9 @@
  11428. case fullMode :
  11429. entry = "full";
  11430. break;
  11431. +
  11432. + default:
  11433. + break;
  11434. }
  11435. configSettings->writeEntry("/listMode", entry);
  11436. @@ -1718,10 +1753,6 @@
  11437. bindtextdomain(PACKAGE, LOCALEDIR);
  11438. textdomain(PACKAGE);
  11439. -#ifndef LKC_DIRECT_LINK
  11440. - kconfig_load();
  11441. -#endif
  11442. -
  11443. progname = av[0];
  11444. configApp = new QApplication(ac, av);
  11445. if (ac > 1 && av[1][0] == '-') {
  11446. diff -Nur uClibc-0.9.33.2/extra/config/qconf.h uClibc-git/extra/config/qconf.h
  11447. --- uClibc-0.9.33.2/extra/config/qconf.h 2012-05-15 09:20:09.000000000 +0200
  11448. +++ uClibc-git/extra/config/qconf.h 2014-06-02 17:40:33.746710502 +0200
  11449. @@ -3,26 +3,25 @@
  11450. * Released under the terms of the GNU GPL v2.0.
  11451. */
  11452. +#if QT_VERSION < 0x040000
  11453. #include <qlistview.h>
  11454. -#if QT_VERSION >= 300
  11455. -#include <qsettings.h>
  11456. #else
  11457. -class QSettings {
  11458. -public:
  11459. - void beginGroup(const QString& group) { }
  11460. - void endGroup(void) { }
  11461. - bool readBoolEntry(const QString& key, bool def = FALSE, bool* ok = 0) const
  11462. - { if (ok) *ok = FALSE; return def; }
  11463. - int readNumEntry(const QString& key, int def = 0, bool* ok = 0) const
  11464. - { if (ok) *ok = FALSE; return def; }
  11465. - QString readEntry(const QString& key, const QString& def = QString::null, bool* ok = 0) const
  11466. - { if (ok) *ok = FALSE; return def; }
  11467. - QStringList readListEntry(const QString& key, bool* ok = 0) const
  11468. - { if (ok) *ok = FALSE; return QStringList(); }
  11469. - template <class t>
  11470. - bool writeEntry(const QString& key, t value)
  11471. - { return TRUE; }
  11472. -};
  11473. +#include <q3listview.h>
  11474. +#endif
  11475. +#include <qsettings.h>
  11476. +
  11477. +#if QT_VERSION < 0x040000
  11478. +#define Q3ValueList QValueList
  11479. +#define Q3PopupMenu QPopupMenu
  11480. +#define Q3ListView QListView
  11481. +#define Q3ListViewItem QListViewItem
  11482. +#define Q3VBox QVBox
  11483. +#define Q3TextBrowser QTextBrowser
  11484. +#define Q3MainWindow QMainWindow
  11485. +#define Q3Action QAction
  11486. +#define Q3ToolBar QToolBar
  11487. +#define Q3ListViewItemIterator QListViewItemIterator
  11488. +#define Q3FileDialog QFileDialog
  11489. #endif
  11490. class ConfigView;
  11491. @@ -31,11 +30,10 @@
  11492. class ConfigLineEdit;
  11493. class ConfigMainWindow;
  11494. -
  11495. class ConfigSettings : public QSettings {
  11496. public:
  11497. - QValueList<int> readSizes(const QString& key, bool *ok);
  11498. - bool writeSizes(const QString& key, const QValueList<int>& value);
  11499. + Q3ValueList<int> readSizes(const QString& key, bool *ok);
  11500. + bool writeSizes(const QString& key, const Q3ValueList<int>& value);
  11501. };
  11502. enum colIdx {
  11503. @@ -44,10 +42,13 @@
  11504. enum listMode {
  11505. singleMode, menuMode, symbolMode, fullMode, listMode
  11506. };
  11507. +enum optionMode {
  11508. + normalOpt = 0, allOpt, promptOpt
  11509. +};
  11510. -class ConfigList : public QListView {
  11511. +class ConfigList : public Q3ListView {
  11512. Q_OBJECT
  11513. - typedef class QListView Parent;
  11514. + typedef class Q3ListView Parent;
  11515. public:
  11516. ConfigList(ConfigView* p, const char *name = 0);
  11517. void reinit(void);
  11518. @@ -115,6 +116,8 @@
  11519. void setAllOpen(bool open);
  11520. void setParentMenu(void);
  11521. + bool menuSkip(struct menu *);
  11522. +
  11523. template <class P>
  11524. void updateMenuList(P*, struct menu*);
  11525. @@ -124,22 +127,23 @@
  11526. QPixmap choiceYesPix, choiceNoPix;
  11527. QPixmap menuPix, menuInvPix, menuBackPix, voidPix;
  11528. - bool showAll, showName, showRange, showData;
  11529. + bool showName, showRange, showData;
  11530. enum listMode mode;
  11531. + enum optionMode optMode;
  11532. struct menu *rootEntry;
  11533. QColorGroup disabledColorGroup;
  11534. QColorGroup inactivedColorGroup;
  11535. - QPopupMenu* headerPopup;
  11536. + Q3PopupMenu* headerPopup;
  11537. private:
  11538. int colMap[colNr];
  11539. int colRevMap[colNr];
  11540. };
  11541. -class ConfigItem : public QListViewItem {
  11542. - typedef class QListViewItem Parent;
  11543. +class ConfigItem : public Q3ListViewItem {
  11544. + typedef class Q3ListViewItem Parent;
  11545. public:
  11546. - ConfigItem(QListView *parent, ConfigItem *after, struct menu *m, bool v)
  11547. + ConfigItem(Q3ListView *parent, ConfigItem *after, struct menu *m, bool v)
  11548. : Parent(parent, after), menu(m), visible(v), goParent(false)
  11549. {
  11550. init();
  11551. @@ -149,16 +153,14 @@
  11552. {
  11553. init();
  11554. }
  11555. - ConfigItem(QListView *parent, ConfigItem *after, bool v)
  11556. + ConfigItem(Q3ListView *parent, ConfigItem *after, bool v)
  11557. : Parent(parent, after), menu(0), visible(v), goParent(true)
  11558. {
  11559. init();
  11560. }
  11561. ~ConfigItem(void);
  11562. void init(void);
  11563. -#if QT_VERSION >= 300
  11564. void okRename(int col);
  11565. -#endif
  11566. void updateMenu(void);
  11567. void testUpdateMenu(bool v);
  11568. ConfigList* listView() const
  11569. @@ -213,26 +215,24 @@
  11570. ConfigItem *item;
  11571. };
  11572. -class ConfigView : public QVBox {
  11573. +class ConfigView : public Q3VBox {
  11574. Q_OBJECT
  11575. - typedef class QVBox Parent;
  11576. + typedef class Q3VBox Parent;
  11577. public:
  11578. ConfigView(QWidget* parent, const char *name = 0);
  11579. ~ConfigView(void);
  11580. static void updateList(ConfigItem* item);
  11581. static void updateListAll(void);
  11582. - bool showAll(void) const { return list->showAll; }
  11583. bool showName(void) const { return list->showName; }
  11584. bool showRange(void) const { return list->showRange; }
  11585. bool showData(void) const { return list->showData; }
  11586. public slots:
  11587. - void setShowAll(bool);
  11588. void setShowName(bool);
  11589. void setShowRange(bool);
  11590. void setShowData(bool);
  11591. + void setOptionMode(QAction *);
  11592. signals:
  11593. - void showAllChanged(bool);
  11594. void showNameChanged(bool);
  11595. void showRangeChanged(bool);
  11596. void showDataChanged(bool);
  11597. @@ -242,11 +242,15 @@
  11598. static ConfigView* viewList;
  11599. ConfigView* nextView;
  11600. +
  11601. + static QAction *showNormalAction;
  11602. + static QAction *showAllAction;
  11603. + static QAction *showPromptAction;
  11604. };
  11605. -class ConfigInfoView : public QTextBrowser {
  11606. +class ConfigInfoView : public Q3TextBrowser {
  11607. Q_OBJECT
  11608. - typedef class QTextBrowser Parent;
  11609. + typedef class Q3TextBrowser Parent;
  11610. public:
  11611. ConfigInfoView(QWidget* parent, const char *name = 0);
  11612. bool showDebug(void) const { return _showDebug; }
  11613. @@ -254,7 +258,6 @@
  11614. public slots:
  11615. void setInfo(struct menu *menu);
  11616. void saveSettings(void);
  11617. - void setSource(const QString& name);
  11618. void setShowDebug(bool);
  11619. signals:
  11620. @@ -267,11 +270,11 @@
  11621. QString debug_info(struct symbol *sym);
  11622. static QString print_filter(const QString &str);
  11623. static void expr_print_help(void *data, struct symbol *sym, const char *str);
  11624. - QPopupMenu* createPopupMenu(const QPoint& pos);
  11625. + Q3PopupMenu* createPopupMenu(const QPoint& pos);
  11626. void contentsContextMenuEvent(QContextMenuEvent *e);
  11627. struct symbol *sym;
  11628. - struct menu *menu;
  11629. + struct menu *_menu;
  11630. bool _showDebug;
  11631. };
  11632. @@ -295,10 +298,10 @@
  11633. struct symbol **result;
  11634. };
  11635. -class ConfigMainWindow : public QMainWindow {
  11636. +class ConfigMainWindow : public Q3MainWindow {
  11637. Q_OBJECT
  11638. - static QAction *saveAction;
  11639. + static Q3Action *saveAction;
  11640. static void conf_changed(void);
  11641. public:
  11642. ConfigMainWindow(void);
  11643. @@ -308,7 +311,7 @@
  11644. void listFocusChanged(void);
  11645. void goBack(void);
  11646. void loadConfig(void);
  11647. - void saveConfig(void);
  11648. + bool saveConfig(void);
  11649. void saveConfigAs(void);
  11650. void searchConfig(void);
  11651. void showSingleView(void);
  11652. @@ -327,8 +330,8 @@
  11653. ConfigView *configView;
  11654. ConfigList *configList;
  11655. ConfigInfoView *helpText;
  11656. - QToolBar *toolBar;
  11657. - QAction *backAction;
  11658. + Q3ToolBar *toolBar;
  11659. + Q3Action *backAction;
  11660. QSplitter* split1;
  11661. QSplitter* split2;
  11662. };
  11663. diff -Nur uClibc-0.9.33.2/extra/config/README.uClibc uClibc-git/extra/config/README.uClibc
  11664. --- uClibc-0.9.33.2/extra/config/README.uClibc 2012-05-15 09:20:09.000000000 +0200
  11665. +++ uClibc-git/extra/config/README.uClibc 2014-06-02 17:40:33.722710369 +0200
  11666. @@ -5,7 +5,7 @@
  11667. cd extra/config.new
  11668. cp /usr/src/linux/Documentation/kbuild/kconfig-language.txt .
  11669. mv Makefile Makefile.kconfig
  11670. - zcat ../config/kconfig-to-uclibc.patch.gz | patch -p1
  11671. + tar -O -xzf ../config/kconfig-to-uclibc.tar.gz | patch -p3
  11672. cp ../config/README.uClibc .
  11673. cp ../config/Makefile .
  11674. cd ..
  11675. diff -Nur uClibc-0.9.33.2/extra/config/streamline_config.pl uClibc-git/extra/config/streamline_config.pl
  11676. --- uClibc-0.9.33.2/extra/config/streamline_config.pl 1970-01-01 01:00:00.000000000 +0100
  11677. +++ uClibc-git/extra/config/streamline_config.pl 2014-06-02 17:40:33.746710502 +0200
  11678. @@ -0,0 +1,640 @@
  11679. +#!/usr/bin/perl -w
  11680. +#
  11681. +# Copyright 2005-2009 - Steven Rostedt
  11682. +# Licensed under the terms of the GNU GPL License version 2
  11683. +#
  11684. +# It's simple enough to figure out how this works.
  11685. +# If not, then you can ask me at stripconfig@goodmis.org
  11686. +#
  11687. +# What it does?
  11688. +#
  11689. +# If you have installed a Linux kernel from a distribution
  11690. +# that turns on way too many modules than you need, and
  11691. +# you only want the modules you use, then this program
  11692. +# is perfect for you.
  11693. +#
  11694. +# It gives you the ability to turn off all the modules that are
  11695. +# not loaded on your system.
  11696. +#
  11697. +# Howto:
  11698. +#
  11699. +# 1. Boot up the kernel that you want to stream line the config on.
  11700. +# 2. Change directory to the directory holding the source of the
  11701. +# kernel that you just booted.
  11702. +# 3. Copy the configuraton file to this directory as .config
  11703. +# 4. Have all your devices that you need modules for connected and
  11704. +# operational (make sure that their corresponding modules are loaded)
  11705. +# 5. Run this script redirecting the output to some other file
  11706. +# like config_strip.
  11707. +# 6. Back up your old config (if you want too).
  11708. +# 7. copy the config_strip file to .config
  11709. +# 8. Run "make oldconfig"
  11710. +#
  11711. +# Now your kernel is ready to be built with only the modules that
  11712. +# are loaded.
  11713. +#
  11714. +# Here's what I did with my Debian distribution.
  11715. +#
  11716. +# cd /usr/src/linux-2.6.10
  11717. +# cp /boot/config-2.6.10-1-686-smp .config
  11718. +# ~/bin/streamline_config > config_strip
  11719. +# mv .config config_sav
  11720. +# mv config_strip .config
  11721. +# make oldconfig
  11722. +#
  11723. +use strict;
  11724. +use Getopt::Long;
  11725. +
  11726. +# set the environment variable LOCALMODCONFIG_DEBUG to get
  11727. +# debug output.
  11728. +my $debugprint = 0;
  11729. +$debugprint = 1 if (defined($ENV{LOCALMODCONFIG_DEBUG}));
  11730. +
  11731. +sub dprint {
  11732. + return if (!$debugprint);
  11733. + print STDERR @_;
  11734. +}
  11735. +
  11736. +my $config = ".config";
  11737. +
  11738. +my $uname = `uname -r`;
  11739. +chomp $uname;
  11740. +
  11741. +my @searchconfigs = (
  11742. + {
  11743. + "file" => ".config",
  11744. + "exec" => "cat",
  11745. + },
  11746. + {
  11747. + "file" => "/proc/config.gz",
  11748. + "exec" => "zcat",
  11749. + },
  11750. + {
  11751. + "file" => "/boot/config-$uname",
  11752. + "exec" => "cat",
  11753. + },
  11754. + {
  11755. + "file" => "/boot/vmlinuz-$uname",
  11756. + "exec" => "scripts/extract-ikconfig",
  11757. + "test" => "scripts/extract-ikconfig",
  11758. + },
  11759. + {
  11760. + "file" => "vmlinux",
  11761. + "exec" => "scripts/extract-ikconfig",
  11762. + "test" => "scripts/extract-ikconfig",
  11763. + },
  11764. + {
  11765. + "file" => "/lib/modules/$uname/kernel/kernel/configs.ko",
  11766. + "exec" => "scripts/extract-ikconfig",
  11767. + "test" => "scripts/extract-ikconfig",
  11768. + },
  11769. + {
  11770. + "file" => "kernel/configs.ko",
  11771. + "exec" => "scripts/extract-ikconfig",
  11772. + "test" => "scripts/extract-ikconfig",
  11773. + },
  11774. + {
  11775. + "file" => "kernel/configs.o",
  11776. + "exec" => "scripts/extract-ikconfig",
  11777. + "test" => "scripts/extract-ikconfig",
  11778. + },
  11779. +);
  11780. +
  11781. +sub read_config {
  11782. + foreach my $conf (@searchconfigs) {
  11783. + my $file = $conf->{"file"};
  11784. +
  11785. + next if ( ! -f "$file");
  11786. +
  11787. + if (defined($conf->{"test"})) {
  11788. + `$conf->{"test"} $conf->{"file"} 2>/dev/null`;
  11789. + next if ($?);
  11790. + }
  11791. +
  11792. + my $exec = $conf->{"exec"};
  11793. +
  11794. + print STDERR "using config: '$file'\n";
  11795. +
  11796. + open(my $infile, '-|', "$exec $file") || die "Failed to run $exec $file";
  11797. + my @x = <$infile>;
  11798. + close $infile;
  11799. + return @x;
  11800. + }
  11801. + die "No config file found";
  11802. +}
  11803. +
  11804. +my @config_file = read_config;
  11805. +
  11806. +# Parse options
  11807. +my $localmodconfig = 0;
  11808. +my $localyesconfig = 0;
  11809. +
  11810. +GetOptions("localmodconfig" => \$localmodconfig,
  11811. + "localyesconfig" => \$localyesconfig);
  11812. +
  11813. +# Get the build source and top level Kconfig file (passed in)
  11814. +my $ksource = ($ARGV[0] ? $ARGV[0] : '.');
  11815. +my $kconfig = $ARGV[1];
  11816. +my $lsmod_file = $ENV{'LSMOD'};
  11817. +
  11818. +my @makefiles = `find $ksource -name Makefile 2>/dev/null`;
  11819. +chomp @makefiles;
  11820. +
  11821. +my %depends;
  11822. +my %selects;
  11823. +my %prompts;
  11824. +my %objects;
  11825. +my $var;
  11826. +my $iflevel = 0;
  11827. +my @ifdeps;
  11828. +
  11829. +# prevent recursion
  11830. +my %read_kconfigs;
  11831. +
  11832. +sub read_kconfig {
  11833. + my ($kconfig) = @_;
  11834. +
  11835. + my $state = "NONE";
  11836. + my $config;
  11837. +
  11838. + my $cont = 0;
  11839. + my $line;
  11840. +
  11841. + my $source = "$ksource/$kconfig";
  11842. + my $last_source = "";
  11843. +
  11844. + # Check for any environment variables used
  11845. + while ($source =~ /\$(\w+)/ && $last_source ne $source) {
  11846. + my $env = $1;
  11847. + $last_source = $source;
  11848. + $source =~ s/\$$env/$ENV{$env}/;
  11849. + }
  11850. +
  11851. + open(my $kinfile, '<', $source) || die "Can't open $kconfig";
  11852. + while (<$kinfile>) {
  11853. + chomp;
  11854. +
  11855. + # Make sure that lines ending with \ continue
  11856. + if ($cont) {
  11857. + $_ = $line . " " . $_;
  11858. + }
  11859. +
  11860. + if (s/\\$//) {
  11861. + $cont = 1;
  11862. + $line = $_;
  11863. + next;
  11864. + }
  11865. +
  11866. + $cont = 0;
  11867. +
  11868. + # collect any Kconfig sources
  11869. + if (/^source\s*"(.*)"/) {
  11870. + my $kconfig = $1;
  11871. + # prevent reading twice.
  11872. + if (!defined($read_kconfigs{$kconfig})) {
  11873. + $read_kconfigs{$kconfig} = 1;
  11874. + read_kconfig($kconfig);
  11875. + }
  11876. + next;
  11877. + }
  11878. +
  11879. + # configs found
  11880. + if (/^\s*(menu)?config\s+(\S+)\s*$/) {
  11881. + $state = "NEW";
  11882. + $config = $2;
  11883. +
  11884. + # Add depends for 'if' nesting
  11885. + for (my $i = 0; $i < $iflevel; $i++) {
  11886. + if ($i) {
  11887. + $depends{$config} .= " " . $ifdeps[$i];
  11888. + } else {
  11889. + $depends{$config} = $ifdeps[$i];
  11890. + }
  11891. + $state = "DEP";
  11892. + }
  11893. +
  11894. + # collect the depends for the config
  11895. + } elsif ($state eq "NEW" && /^\s*depends\s+on\s+(.*)$/) {
  11896. + $state = "DEP";
  11897. + $depends{$config} = $1;
  11898. + } elsif ($state eq "DEP" && /^\s*depends\s+on\s+(.*)$/) {
  11899. + $depends{$config} .= " " . $1;
  11900. +
  11901. + # Get the configs that select this config
  11902. + } elsif ($state ne "NONE" && /^\s*select\s+(\S+)/) {
  11903. + my $conf = $1;
  11904. + if (defined($selects{$conf})) {
  11905. + $selects{$conf} .= " " . $config;
  11906. + } else {
  11907. + $selects{$conf} = $config;
  11908. + }
  11909. +
  11910. + # configs without prompts must be selected
  11911. + } elsif ($state ne "NONE" && /^\s*tristate\s\S/) {
  11912. + # note if the config has a prompt
  11913. + $prompts{$config} = 1;
  11914. +
  11915. + # Check for if statements
  11916. + } elsif (/^if\s+(.*\S)\s*$/) {
  11917. + my $deps = $1;
  11918. + # remove beginning and ending non text
  11919. + $deps =~ s/^[^a-zA-Z0-9_]*//;
  11920. + $deps =~ s/[^a-zA-Z0-9_]*$//;
  11921. +
  11922. + my @deps = split /[^a-zA-Z0-9_]+/, $deps;
  11923. +
  11924. + $ifdeps[$iflevel++] = join ':', @deps;
  11925. +
  11926. + } elsif (/^endif/) {
  11927. +
  11928. + $iflevel-- if ($iflevel);
  11929. +
  11930. + # stop on "help"
  11931. + } elsif (/^\s*help\s*$/) {
  11932. + $state = "NONE";
  11933. + }
  11934. + }
  11935. + close($kinfile);
  11936. +}
  11937. +
  11938. +if ($kconfig) {
  11939. + read_kconfig($kconfig);
  11940. +}
  11941. +
  11942. +# Makefiles can use variables to define their dependencies
  11943. +sub convert_vars {
  11944. + my ($line, %vars) = @_;
  11945. +
  11946. + my $process = "";
  11947. +
  11948. + while ($line =~ s/^(.*?)(\$\((.*?)\))//) {
  11949. + my $start = $1;
  11950. + my $variable = $2;
  11951. + my $var = $3;
  11952. +
  11953. + if (defined($vars{$var})) {
  11954. + $process .= $start . $vars{$var};
  11955. + } else {
  11956. + $process .= $start . $variable;
  11957. + }
  11958. + }
  11959. +
  11960. + $process .= $line;
  11961. +
  11962. + return $process;
  11963. +}
  11964. +
  11965. +# Read all Makefiles to map the configs to the objects
  11966. +foreach my $makefile (@makefiles) {
  11967. +
  11968. + my $line = "";
  11969. + my %make_vars;
  11970. +
  11971. + open(my $infile, '<', $makefile) || die "Can't open $makefile";
  11972. + while (<$infile>) {
  11973. + # if this line ends with a backslash, continue
  11974. + chomp;
  11975. + if (/^(.*)\\$/) {
  11976. + $line .= $1;
  11977. + next;
  11978. + }
  11979. +
  11980. + $line .= $_;
  11981. + $_ = $line;
  11982. + $line = "";
  11983. +
  11984. + my $objs;
  11985. +
  11986. + # Convert variables in a line (could define configs)
  11987. + $_ = convert_vars($_, %make_vars);
  11988. +
  11989. + # collect objects after obj-$(CONFIG_FOO_BAR)
  11990. + if (/obj-\$\((CONFIG_[^\)]*)\)\s*[+:]?=\s*(.*)/) {
  11991. + $var = $1;
  11992. + $objs = $2;
  11993. +
  11994. + # check if variables are set
  11995. + } elsif (/^\s*(\S+)\s*[:]?=\s*(.*\S)/) {
  11996. + $make_vars{$1} = $2;
  11997. + }
  11998. + if (defined($objs)) {
  11999. + foreach my $obj (split /\s+/,$objs) {
  12000. + $obj =~ s/-/_/g;
  12001. + if ($obj =~ /(.*)\.o$/) {
  12002. + # Objects may be enabled by more than one config.
  12003. + # Store configs in an array.
  12004. + my @arr;
  12005. +
  12006. + if (defined($objects{$1})) {
  12007. + @arr = @{$objects{$1}};
  12008. + }
  12009. +
  12010. + $arr[$#arr+1] = $var;
  12011. +
  12012. + # The objects have a hash mapping to a reference
  12013. + # of an array of configs.
  12014. + $objects{$1} = \@arr;
  12015. + }
  12016. + }
  12017. + }
  12018. + }
  12019. + close($infile);
  12020. +}
  12021. +
  12022. +my %modules;
  12023. +my $linfile;
  12024. +
  12025. +if (defined($lsmod_file)) {
  12026. + if ( ! -f $lsmod_file) {
  12027. + if ( -f $ENV{'objtree'}."/".$lsmod_file) {
  12028. + $lsmod_file = $ENV{'objtree'}."/".$lsmod_file;
  12029. + } else {
  12030. + die "$lsmod_file not found";
  12031. + }
  12032. + }
  12033. +
  12034. + my $otype = ( -x $lsmod_file) ? '-|' : '<';
  12035. + open($linfile, $otype, $lsmod_file);
  12036. +
  12037. +} else {
  12038. +
  12039. + # see what modules are loaded on this system
  12040. + my $lsmod;
  12041. +
  12042. + foreach my $dir ( ("/sbin", "/bin", "/usr/sbin", "/usr/bin") ) {
  12043. + if ( -x "$dir/lsmod" ) {
  12044. + $lsmod = "$dir/lsmod";
  12045. + last;
  12046. + }
  12047. +}
  12048. + if (!defined($lsmod)) {
  12049. + # try just the path
  12050. + $lsmod = "lsmod";
  12051. + }
  12052. +
  12053. + open($linfile, '-|', $lsmod) || die "Can not call lsmod with $lsmod";
  12054. +}
  12055. +
  12056. +while (<$linfile>) {
  12057. + next if (/^Module/); # Skip the first line.
  12058. + if (/^(\S+)/) {
  12059. + $modules{$1} = 1;
  12060. + }
  12061. +}
  12062. +close ($linfile);
  12063. +
  12064. +# add to the configs hash all configs that are needed to enable
  12065. +# a loaded module. This is a direct obj-${CONFIG_FOO} += bar.o
  12066. +# where we know we need bar.o so we add FOO to the list.
  12067. +my %configs;
  12068. +foreach my $module (keys(%modules)) {
  12069. + if (defined($objects{$module})) {
  12070. + my @arr = @{$objects{$module}};
  12071. + foreach my $conf (@arr) {
  12072. + $configs{$conf} = $module;
  12073. + dprint "$conf added by direct ($module)\n";
  12074. + if ($debugprint) {
  12075. + my $c=$conf;
  12076. + $c =~ s/^CONFIG_//;
  12077. + if (defined($depends{$c})) {
  12078. + dprint " deps = $depends{$c}\n";
  12079. + } else {
  12080. + dprint " no deps\n";
  12081. + }
  12082. + }
  12083. + }
  12084. + } else {
  12085. + # Most likely, someone has a custom (binary?) module loaded.
  12086. + print STDERR "$module config not found!!\n";
  12087. + }
  12088. +}
  12089. +
  12090. +# Read the current config, and see what is enabled. We want to
  12091. +# ignore configs that we would not enable anyway.
  12092. +
  12093. +my %orig_configs;
  12094. +my $valid = "A-Za-z_0-9";
  12095. +
  12096. +foreach my $line (@config_file) {
  12097. + $_ = $line;
  12098. +
  12099. + if (/(CONFIG_[$valid]*)=(m|y)/) {
  12100. + $orig_configs{$1} = $2;
  12101. + }
  12102. +}
  12103. +
  12104. +my $repeat = 1;
  12105. +
  12106. +my $depconfig;
  12107. +
  12108. +#
  12109. +# Note, we do not care about operands (like: &&, ||, !) we want to add any
  12110. +# config that is in the depend list of another config. This script does
  12111. +# not enable configs that are not already enabled. If we come across a
  12112. +# config A that depends on !B, we can still add B to the list of depends
  12113. +# to keep on. If A was on in the original config, B would not have been
  12114. +# and B would not be turned on by this script.
  12115. +#
  12116. +sub parse_config_depends
  12117. +{
  12118. + my ($p) = @_;
  12119. +
  12120. + while ($p =~ /[$valid]/) {
  12121. +
  12122. + if ($p =~ /^[^$valid]*([$valid]+)/) {
  12123. + my $conf = "CONFIG_" . $1;
  12124. +
  12125. + $p =~ s/^[^$valid]*[$valid]+//;
  12126. +
  12127. + # We only need to process if the depend config is a module
  12128. + if (!defined($orig_configs{$conf}) || !$orig_configs{conf} eq "m") {
  12129. + next;
  12130. + }
  12131. +
  12132. + if (!defined($configs{$conf})) {
  12133. + # We must make sure that this config has its
  12134. + # dependencies met.
  12135. + $repeat = 1; # do again
  12136. + dprint "$conf selected by depend $depconfig\n";
  12137. + $configs{$conf} = 1;
  12138. + }
  12139. + } else {
  12140. + die "this should never happen";
  12141. + }
  12142. + }
  12143. +}
  12144. +
  12145. +# Select is treated a bit differently than depends. We call this
  12146. +# when a config has no prompt and requires another config to be
  12147. +# selected. We use to just select all configs that selected this
  12148. +# config, but found that that can balloon into enabling hundreds
  12149. +# of configs that we do not care about.
  12150. +#
  12151. +# The idea is we look at all the configs that select it. If one
  12152. +# is already in our list of configs to enable, then there's nothing
  12153. +# else to do. If there isn't, we pick the first config that was
  12154. +# enabled in the orignal config and use that.
  12155. +sub parse_config_selects
  12156. +{
  12157. + my ($config, $p) = @_;
  12158. +
  12159. + my $next_config;
  12160. +
  12161. + while ($p =~ /[$valid]/) {
  12162. +
  12163. + if ($p =~ /^[^$valid]*([$valid]+)/) {
  12164. + my $conf = "CONFIG_" . $1;
  12165. +
  12166. + $p =~ s/^[^$valid]*[$valid]+//;
  12167. +
  12168. + # Make sure that this config exists in the current .config file
  12169. + if (!defined($orig_configs{$conf})) {
  12170. + dprint "$conf not set for $config select\n";
  12171. + next;
  12172. + }
  12173. +
  12174. + # Check if something other than a module selects this config
  12175. + if (defined($orig_configs{$conf}) && $orig_configs{$conf} ne "m") {
  12176. + dprint "$conf (non module) selects config, we are good\n";
  12177. + # we are good with this
  12178. + return;
  12179. + }
  12180. + if (defined($configs{$conf})) {
  12181. + dprint "$conf selects $config so we are good\n";
  12182. + # A set config selects this config, we are good
  12183. + return;
  12184. + }
  12185. + # Set this config to be selected
  12186. + if (!defined($next_config)) {
  12187. + $next_config = $conf;
  12188. + }
  12189. + } else {
  12190. + die "this should never happen";
  12191. + }
  12192. + }
  12193. +
  12194. + # If no possible config selected this, then something happened.
  12195. + if (!defined($next_config)) {
  12196. + print STDERR "WARNING: $config is required, but nothing in the\n";
  12197. + print STDERR " current config selects it.\n";
  12198. + return;
  12199. + }
  12200. +
  12201. + # If we are here, then we found no config that is set and
  12202. + # selects this config. Repeat.
  12203. + $repeat = 1;
  12204. + # Make this config need to be selected
  12205. + $configs{$next_config} = 1;
  12206. + dprint "$next_config selected by select $config\n";
  12207. +}
  12208. +
  12209. +my %process_selects;
  12210. +
  12211. +# loop through all configs, select their dependencies.
  12212. +sub loop_depend {
  12213. + $repeat = 1;
  12214. +
  12215. + while ($repeat) {
  12216. + $repeat = 0;
  12217. +
  12218. + forloop:
  12219. + foreach my $config (keys %configs) {
  12220. +
  12221. + # If this config is not a module, we do not need to process it
  12222. + if (defined($orig_configs{$config}) && $orig_configs{$config} ne "m") {
  12223. + next forloop;
  12224. + }
  12225. +
  12226. + $config =~ s/^CONFIG_//;
  12227. + $depconfig = $config;
  12228. +
  12229. + if (defined($depends{$config})) {
  12230. + # This config has dependencies. Make sure they are also included
  12231. + parse_config_depends $depends{$config};
  12232. + }
  12233. +
  12234. + # If the config has no prompt, then we need to check if a config
  12235. + # that is enabled selected it. Or if we need to enable one.
  12236. + if (!defined($prompts{$config}) && defined($selects{$config})) {
  12237. + $process_selects{$config} = 1;
  12238. + }
  12239. + }
  12240. + }
  12241. +}
  12242. +
  12243. +sub loop_select {
  12244. +
  12245. + foreach my $config (keys %process_selects) {
  12246. + $config =~ s/^CONFIG_//;
  12247. +
  12248. + dprint "Process select $config\n";
  12249. +
  12250. + # config has no prompt and must be selected.
  12251. + parse_config_selects $config, $selects{$config};
  12252. + }
  12253. +}
  12254. +
  12255. +while ($repeat) {
  12256. + # Get the first set of configs and their dependencies.
  12257. + loop_depend;
  12258. +
  12259. + $repeat = 0;
  12260. +
  12261. + # Now we need to see if we have to check selects;
  12262. + loop_select;
  12263. +}
  12264. +
  12265. +my %setconfigs;
  12266. +
  12267. +# Finally, read the .config file and turn off any module enabled that
  12268. +# we could not find a reason to keep enabled.
  12269. +foreach my $line (@config_file) {
  12270. + $_ = $line;
  12271. +
  12272. + if (/CONFIG_IKCONFIG/) {
  12273. + if (/# CONFIG_IKCONFIG is not set/) {
  12274. + # enable IKCONFIG at least as a module
  12275. + print "CONFIG_IKCONFIG=m\n";
  12276. + # don't ask about PROC
  12277. + print "# CONFIG_IKCONFIG_PROC is not set\n";
  12278. + } else {
  12279. + print;
  12280. + }
  12281. + next;
  12282. + }
  12283. +
  12284. + if (/^(CONFIG.*)=(m|y)/) {
  12285. + if (defined($configs{$1})) {
  12286. + if ($localyesconfig) {
  12287. + $setconfigs{$1} = 'y';
  12288. + print "$1=y\n";
  12289. + next;
  12290. + } else {
  12291. + $setconfigs{$1} = $2;
  12292. + }
  12293. + } elsif ($2 eq "m") {
  12294. + print "# $1 is not set\n";
  12295. + next;
  12296. + }
  12297. + }
  12298. + print;
  12299. +}
  12300. +
  12301. +# Integrity check, make sure all modules that we want enabled do
  12302. +# indeed have their configs set.
  12303. +loop:
  12304. +foreach my $module (keys(%modules)) {
  12305. + if (defined($objects{$module})) {
  12306. + my @arr = @{$objects{$module}};
  12307. + foreach my $conf (@arr) {
  12308. + if (defined($setconfigs{$conf})) {
  12309. + next loop;
  12310. + }
  12311. + }
  12312. + print STDERR "module $module did not have configs";
  12313. + foreach my $conf (@arr) {
  12314. + print STDERR " " , $conf;
  12315. + }
  12316. + print STDERR "\n";
  12317. + }
  12318. +}
  12319. diff -Nur uClibc-0.9.33.2/extra/config/symbol.c uClibc-git/extra/config/symbol.c
  12320. --- uClibc-0.9.33.2/extra/config/symbol.c 2012-05-15 09:20:09.000000000 +0200
  12321. +++ uClibc-git/extra/config/symbol.c 2014-06-02 17:40:33.746710502 +0200
  12322. @@ -7,8 +7,8 @@
  12323. #include <stdlib.h>
  12324. #include <string.h>
  12325. #include <regex.h>
  12326. +#include <sys/utsname.h>
  12327. -#define LKC_DIRECT_LINK
  12328. #include "lkc.h"
  12329. struct symbol symbol_yes = {
  12330. @@ -35,7 +35,7 @@
  12331. struct expr *sym_env_list;
  12332. -void sym_add_default(struct symbol *sym, const char *def)
  12333. +static void sym_add_default(struct symbol *sym, const char *def)
  12334. {
  12335. struct property *prop = prop_alloc(P_DEFAULT, sym);
  12336. @@ -45,20 +45,19 @@
  12337. void sym_init(void)
  12338. {
  12339. struct symbol *sym;
  12340. - char *p;
  12341. + struct utsname uts;
  12342. static bool inited = false;
  12343. if (inited)
  12344. return;
  12345. inited = true;
  12346. - p = getenv("VERSION");
  12347. - if (p) {
  12348. - sym = sym_lookup("VERSION", 0);
  12349. - sym->type = S_STRING;
  12350. - sym->flags |= SYMBOL_AUTO;
  12351. - sym_add_default(sym, p);
  12352. - }
  12353. + uname(&uts);
  12354. +
  12355. + sym = sym_lookup("UNAME_RELEASE", 0);
  12356. + sym->type = S_STRING;
  12357. + sym->flags |= SYMBOL_AUTO;
  12358. + sym_add_default(sym, uts.release);
  12359. }
  12360. enum symbol_type sym_get_type(struct symbol *sym)
  12361. @@ -125,7 +124,7 @@
  12362. return NULL;
  12363. }
  12364. -struct property *sym_get_range_prop(struct symbol *sym)
  12365. +static struct property *sym_get_range_prop(struct symbol *sym)
  12366. {
  12367. struct property *prop;
  12368. @@ -137,7 +136,7 @@
  12369. return NULL;
  12370. }
  12371. -static int sym_get_range_val(struct symbol *sym, int base)
  12372. +static long sym_get_range_val(struct symbol *sym, int base)
  12373. {
  12374. sym_calc_value(sym);
  12375. switch (sym->type) {
  12376. @@ -156,7 +155,7 @@
  12377. static void sym_validate_range(struct symbol *sym)
  12378. {
  12379. struct property *prop;
  12380. - int base, val, val2;
  12381. + long base, val, val2;
  12382. char str[64];
  12383. switch (sym->type) {
  12384. @@ -180,9 +179,9 @@
  12385. return;
  12386. }
  12387. if (sym->type == S_INT)
  12388. - sprintf(str, "%d", val2);
  12389. + sprintf(str, "%ld", val2);
  12390. else
  12391. - sprintf(str, "0x%x", val2);
  12392. + sprintf(str, "0x%lx", val2);
  12393. sym->curr.val = strdup(str);
  12394. }
  12395. @@ -205,6 +204,16 @@
  12396. }
  12397. if (sym_is_choice_value(sym))
  12398. return;
  12399. + /* defaulting to "yes" if no explicit "depends on" are given */
  12400. + tri = yes;
  12401. + if (sym->dir_dep.expr)
  12402. + tri = expr_calc_value(sym->dir_dep.expr);
  12403. + if (tri == mod)
  12404. + tri = yes;
  12405. + if (sym->dir_dep.tri != tri) {
  12406. + sym->dir_dep.tri = tri;
  12407. + sym_set_changed(sym);
  12408. + }
  12409. tri = no;
  12410. if (sym->rev_dep.expr)
  12411. tri = expr_calc_value(sym->rev_dep.expr);
  12412. @@ -216,42 +225,68 @@
  12413. }
  12414. }
  12415. -static struct symbol *sym_calc_choice(struct symbol *sym)
  12416. +/*
  12417. + * Find the default symbol for a choice.
  12418. + * First try the default values for the choice symbol
  12419. + * Next locate the first visible choice value
  12420. + * Return NULL if none was found
  12421. + */
  12422. +struct symbol *sym_choice_default(struct symbol *sym)
  12423. {
  12424. struct symbol *def_sym;
  12425. struct property *prop;
  12426. struct expr *e;
  12427. - /* is the user choice visible? */
  12428. - def_sym = sym->def[S_DEF_USER].val;
  12429. - if (def_sym) {
  12430. - sym_calc_visibility(def_sym);
  12431. - if (def_sym->visible != no)
  12432. - return def_sym;
  12433. - }
  12434. -
  12435. /* any of the defaults visible? */
  12436. for_all_defaults(sym, prop) {
  12437. prop->visible.tri = expr_calc_value(prop->visible.expr);
  12438. if (prop->visible.tri == no)
  12439. continue;
  12440. def_sym = prop_get_symbol(prop);
  12441. - sym_calc_visibility(def_sym);
  12442. if (def_sym->visible != no)
  12443. return def_sym;
  12444. }
  12445. /* just get the first visible value */
  12446. prop = sym_get_choice_prop(sym);
  12447. + expr_list_for_each_sym(prop->expr, e, def_sym)
  12448. + if (def_sym->visible != no)
  12449. + return def_sym;
  12450. +
  12451. + /* failed to locate any defaults */
  12452. + return NULL;
  12453. +}
  12454. +
  12455. +static struct symbol *sym_calc_choice(struct symbol *sym)
  12456. +{
  12457. + struct symbol *def_sym;
  12458. + struct property *prop;
  12459. + struct expr *e;
  12460. + int flags;
  12461. +
  12462. + /* first calculate all choice values' visibilities */
  12463. + flags = sym->flags;
  12464. + prop = sym_get_choice_prop(sym);
  12465. expr_list_for_each_sym(prop->expr, e, def_sym) {
  12466. sym_calc_visibility(def_sym);
  12467. if (def_sym->visible != no)
  12468. - return def_sym;
  12469. + flags &= def_sym->flags;
  12470. }
  12471. - /* no choice? reset tristate value */
  12472. - sym->curr.tri = no;
  12473. - return NULL;
  12474. + sym->flags &= flags | ~SYMBOL_DEF_USER;
  12475. +
  12476. + /* is the user choice visible? */
  12477. + def_sym = sym->def[S_DEF_USER].val;
  12478. + if (def_sym && def_sym->visible != no)
  12479. + return def_sym;
  12480. +
  12481. + def_sym = sym_choice_default(sym);
  12482. +
  12483. + if (def_sym == NULL)
  12484. + /* no choice? reset tristate value */
  12485. + sym->curr.tri = no;
  12486. +
  12487. + return def_sym;
  12488. }
  12489. void sym_calc_value(struct symbol *sym)
  12490. @@ -265,6 +300,14 @@
  12491. if (sym->flags & SYMBOL_VALID)
  12492. return;
  12493. +
  12494. + if (sym_is_choice_value(sym) &&
  12495. + sym->flags & SYMBOL_NEED_SET_CHOICE_VALUES) {
  12496. + sym->flags &= ~SYMBOL_NEED_SET_CHOICE_VALUES;
  12497. + prop = sym_get_choice_prop(sym);
  12498. + sym_calc_value(prop_get_symbol(prop));
  12499. + }
  12500. +
  12501. sym->flags |= SYMBOL_VALID;
  12502. oldval = sym->curr;
  12503. @@ -321,6 +364,18 @@
  12504. }
  12505. }
  12506. calc_newval:
  12507. + if (sym->dir_dep.tri == no && sym->rev_dep.tri != no) {
  12508. + struct expr *e;
  12509. + e = expr_simplify_unmet_dep(sym->rev_dep.expr,
  12510. + sym->dir_dep.expr);
  12511. + fprintf(stderr, "warning: (");
  12512. + expr_fprint(e, stderr);
  12513. + fprintf(stderr, ") selects %s which has unmet direct dependencies (",
  12514. + sym->name);
  12515. + expr_fprint(sym->dir_dep.expr, stderr);
  12516. + fprintf(stderr, ")\n");
  12517. + expr_free(e);
  12518. + }
  12519. newval.tri = EXPR_OR(newval.tri, sym->rev_dep.tri);
  12520. }
  12521. if (newval.tri == mod && sym_get_type(sym) == S_BOOLEAN)
  12522. @@ -365,18 +420,22 @@
  12523. if (sym_is_choice(sym)) {
  12524. struct symbol *choice_sym;
  12525. - int flags = sym->flags & (SYMBOL_CHANGED | SYMBOL_WRITE);
  12526. prop = sym_get_choice_prop(sym);
  12527. expr_list_for_each_sym(prop->expr, e, choice_sym) {
  12528. - choice_sym->flags |= flags;
  12529. - if (flags & SYMBOL_CHANGED)
  12530. + if ((sym->flags & SYMBOL_WRITE) &&
  12531. + choice_sym->visible != no)
  12532. + choice_sym->flags |= SYMBOL_WRITE;
  12533. + if (sym->flags & SYMBOL_CHANGED)
  12534. sym_set_changed(choice_sym);
  12535. }
  12536. }
  12537. if (sym->flags & SYMBOL_AUTO)
  12538. sym->flags &= ~SYMBOL_WRITE;
  12539. +
  12540. + if (sym->flags & SYMBOL_NEED_SET_CHOICE_VALUES)
  12541. + set_all_choice_values(sym);
  12542. }
  12543. void sym_clear_all_valid(void)
  12544. @@ -535,7 +594,7 @@
  12545. bool sym_string_within_range(struct symbol *sym, const char *str)
  12546. {
  12547. struct property *prop;
  12548. - int val;
  12549. + long val;
  12550. switch (sym->type) {
  12551. case S_STRING:
  12552. @@ -608,11 +667,11 @@
  12553. size = strlen(newval) + 1;
  12554. if (sym->type == S_HEX && (newval[0] != '0' || (newval[1] != 'x' && newval[1] != 'X'))) {
  12555. size += 2;
  12556. - sym->def[S_DEF_USER].val = val = malloc(size);
  12557. + sym->def[S_DEF_USER].val = val = xmalloc(size);
  12558. *val++ = '0';
  12559. *val++ = 'x';
  12560. } else if (!oldval || strcmp(oldval, newval))
  12561. - sym->def[S_DEF_USER].val = val = malloc(size);
  12562. + sym->def[S_DEF_USER].val = val = xmalloc(size);
  12563. else
  12564. return true;
  12565. @@ -623,6 +682,80 @@
  12566. return true;
  12567. }
  12568. +/*
  12569. + * Find the default value associated to a symbol.
  12570. + * For tristate symbol handle the modules=n case
  12571. + * in which case "m" becomes "y".
  12572. + * If the symbol does not have any default then fallback
  12573. + * to the fixed default values.
  12574. + */
  12575. +const char *sym_get_string_default(struct symbol *sym)
  12576. +{
  12577. + struct property *prop;
  12578. + struct symbol *ds;
  12579. + const char *str;
  12580. + tristate val;
  12581. +
  12582. + sym_calc_visibility(sym);
  12583. + sym_calc_value(modules_sym);
  12584. + val = symbol_no.curr.tri;
  12585. + str = symbol_empty.curr.val;
  12586. +
  12587. + /* If symbol has a default value look it up */
  12588. + prop = sym_get_default_prop(sym);
  12589. + if (prop != NULL) {
  12590. + switch (sym->type) {
  12591. + case S_BOOLEAN:
  12592. + case S_TRISTATE:
  12593. + /* The visibility may limit the value from yes => mod */
  12594. + val = EXPR_AND(expr_calc_value(prop->expr), prop->visible.tri);
  12595. + break;
  12596. + default:
  12597. + /*
  12598. + * The following fails to handle the situation
  12599. + * where a default value is further limited by
  12600. + * the valid range.
  12601. + */
  12602. + ds = prop_get_symbol(prop);
  12603. + if (ds != NULL) {
  12604. + sym_calc_value(ds);
  12605. + str = (const char *)ds->curr.val;
  12606. + }
  12607. + }
  12608. + }
  12609. +
  12610. + /* Handle select statements */
  12611. + val = EXPR_OR(val, sym->rev_dep.tri);
  12612. +
  12613. + /* transpose mod to yes if modules are not enabled */
  12614. + if (val == mod)
  12615. + if (!sym_is_choice_value(sym) && modules_sym->curr.tri == no)
  12616. + val = yes;
  12617. +
  12618. + /* transpose mod to yes if type is bool */
  12619. + if (sym->type == S_BOOLEAN && val == mod)
  12620. + val = yes;
  12621. +
  12622. + switch (sym->type) {
  12623. + case S_BOOLEAN:
  12624. + case S_TRISTATE:
  12625. + switch (val) {
  12626. + case no: return "n";
  12627. + case mod: return "m";
  12628. + case yes: return "y";
  12629. + }
  12630. + case S_INT:
  12631. + case S_HEX:
  12632. + return str;
  12633. + case S_STRING:
  12634. + return str;
  12635. + case S_OTHER:
  12636. + case S_UNKNOWN:
  12637. + break;
  12638. + }
  12639. + return "";
  12640. +}
  12641. +
  12642. const char *sym_get_string_value(struct symbol *sym)
  12643. {
  12644. tristate val;
  12645. @@ -635,7 +768,8 @@
  12646. case no:
  12647. return "n";
  12648. case mod:
  12649. - return "m";
  12650. + sym_calc_value(modules_sym);
  12651. + return (modules_sym->curr.tri == no) ? "n" : "m";
  12652. case yes:
  12653. return "y";
  12654. }
  12655. @@ -651,12 +785,20 @@
  12656. return sym->visible > sym->rev_dep.tri;
  12657. }
  12658. +static unsigned strhash(const char *s)
  12659. +{
  12660. + /* fnv32 hash */
  12661. + unsigned hash = 2166136261U;
  12662. + for (; *s; s++)
  12663. + hash = (hash ^ *s) * 0x01000193;
  12664. + return hash;
  12665. +}
  12666. +
  12667. struct symbol *sym_lookup(const char *name, int flags)
  12668. {
  12669. struct symbol *symbol;
  12670. - const char *ptr;
  12671. char *new_name;
  12672. - int hash = 0;
  12673. + int hash;
  12674. if (name) {
  12675. if (name[0] && !name[1]) {
  12676. @@ -666,12 +808,11 @@
  12677. case 'n': return &symbol_no;
  12678. }
  12679. }
  12680. - for (ptr = name; *ptr; ptr++)
  12681. - hash += *ptr;
  12682. - hash &= 0xff;
  12683. + hash = strhash(name) % SYMBOL_HASHSIZE;
  12684. for (symbol = symbol_hash[hash]; symbol; symbol = symbol->next) {
  12685. - if (!strcmp(symbol->name, name) &&
  12686. + if (symbol->name &&
  12687. + !strcmp(symbol->name, name) &&
  12688. (flags ? symbol->flags & flags
  12689. : !(symbol->flags & (SYMBOL_CONST|SYMBOL_CHOICE))))
  12690. return symbol;
  12691. @@ -679,10 +820,10 @@
  12692. new_name = strdup(name);
  12693. } else {
  12694. new_name = NULL;
  12695. - hash = 256;
  12696. + hash = 0;
  12697. }
  12698. - symbol = malloc(sizeof(*symbol));
  12699. + symbol = xmalloc(sizeof(*symbol));
  12700. memset(symbol, 0, sizeof(*symbol));
  12701. symbol->name = new_name;
  12702. symbol->type = S_UNKNOWN;
  12703. @@ -697,7 +838,6 @@
  12704. struct symbol *sym_find(const char *name)
  12705. {
  12706. struct symbol *symbol = NULL;
  12707. - const char *ptr;
  12708. int hash = 0;
  12709. if (!name)
  12710. @@ -710,12 +850,11 @@
  12711. case 'n': return &symbol_no;
  12712. }
  12713. }
  12714. - for (ptr = name; *ptr; ptr++)
  12715. - hash += *ptr;
  12716. - hash &= 0xff;
  12717. + hash = strhash(name) % SYMBOL_HASHSIZE;
  12718. for (symbol = symbol_hash[hash]; symbol; symbol = symbol->next) {
  12719. - if (!strcmp(symbol->name, name) &&
  12720. + if (symbol->name &&
  12721. + !strcmp(symbol->name, name) &&
  12722. !(symbol->flags & SYMBOL_CONST))
  12723. break;
  12724. }
  12725. @@ -723,42 +862,301 @@
  12726. return symbol;
  12727. }
  12728. +/*
  12729. + * Expand symbol's names embedded in the string given in argument. Symbols'
  12730. + * name to be expanded shall be prefixed by a '$'. Unknown symbol expands to
  12731. + * the empty string.
  12732. + */
  12733. +const char *sym_expand_string_value(const char *in)
  12734. +{
  12735. + const char *src;
  12736. + char *res;
  12737. + size_t reslen;
  12738. +
  12739. + reslen = strlen(in) + 1;
  12740. + res = xmalloc(reslen);
  12741. + res[0] = '\0';
  12742. +
  12743. + while ((src = strchr(in, '$'))) {
  12744. + char *p, name[SYMBOL_MAXLENGTH];
  12745. + const char *symval = "";
  12746. + struct symbol *sym;
  12747. + size_t newlen;
  12748. +
  12749. + strncat(res, in, src - in);
  12750. + src++;
  12751. +
  12752. + p = name;
  12753. + while (isalnum(*src) || *src == '_')
  12754. + *p++ = *src++;
  12755. + *p = '\0';
  12756. +
  12757. + sym = sym_find(name);
  12758. + if (sym != NULL) {
  12759. + sym_calc_value(sym);
  12760. + symval = sym_get_string_value(sym);
  12761. + }
  12762. +
  12763. + newlen = strlen(res) + strlen(symval) + strlen(src) + 1;
  12764. + if (newlen > reslen) {
  12765. + reslen = newlen;
  12766. + res = realloc(res, reslen);
  12767. + }
  12768. +
  12769. + strcat(res, symval);
  12770. + in = src;
  12771. + }
  12772. + strcat(res, in);
  12773. +
  12774. + return res;
  12775. +}
  12776. +
  12777. +const char *sym_escape_string_value(const char *in)
  12778. +{
  12779. + const char *p;
  12780. + size_t reslen;
  12781. + char *res;
  12782. + size_t l;
  12783. +
  12784. + reslen = strlen(in) + strlen("\"\"") + 1;
  12785. +
  12786. + p = in;
  12787. + for (;;) {
  12788. + l = strcspn(p, "\"\\");
  12789. + p += l;
  12790. +
  12791. + if (p[0] == '\0')
  12792. + break;
  12793. +
  12794. + reslen++;
  12795. + p++;
  12796. + }
  12797. +
  12798. + res = xmalloc(reslen);
  12799. + res[0] = '\0';
  12800. +
  12801. + strcat(res, "\"");
  12802. +
  12803. + p = in;
  12804. + for (;;) {
  12805. + l = strcspn(p, "\"\\");
  12806. + strncat(res, p, l);
  12807. + p += l;
  12808. +
  12809. + if (p[0] == '\0')
  12810. + break;
  12811. +
  12812. + strcat(res, "\\");
  12813. + strncat(res, p++, 1);
  12814. + }
  12815. +
  12816. + strcat(res, "\"");
  12817. + return res;
  12818. +}
  12819. +
  12820. +struct sym_match {
  12821. + struct symbol *sym;
  12822. + off_t so, eo;
  12823. +};
  12824. +
  12825. +/* Compare matched symbols as thus:
  12826. + * - first, symbols that match exactly
  12827. + * - then, alphabetical sort
  12828. + */
  12829. +static int sym_rel_comp( const void *sym1, const void *sym2 )
  12830. +{
  12831. + struct sym_match *s1 = *(struct sym_match **)sym1;
  12832. + struct sym_match *s2 = *(struct sym_match **)sym2;
  12833. + int l1, l2;
  12834. +
  12835. + /* Exact match:
  12836. + * - if matched length on symbol s1 is the length of that symbol,
  12837. + * then this symbol should come first;
  12838. + * - if matched length on symbol s2 is the length of that symbol,
  12839. + * then this symbol should come first.
  12840. + * Note: since the search can be a regexp, both symbols may match
  12841. + * exactly; if this is the case, we can't decide which comes first,
  12842. + * and we fallback to sorting alphabetically.
  12843. + */
  12844. + l1 = s1->eo - s1->so;
  12845. + l2 = s2->eo - s2->so;
  12846. + if (l1 == strlen(s1->sym->name) && l2 != strlen(s2->sym->name))
  12847. + return -1;
  12848. + if (l1 != strlen(s1->sym->name) && l2 == strlen(s2->sym->name))
  12849. + return 1;
  12850. +
  12851. + /* As a fallback, sort symbols alphabetically */
  12852. + return strcmp(s1->sym->name, s2->sym->name);
  12853. +}
  12854. +
  12855. struct symbol **sym_re_search(const char *pattern)
  12856. {
  12857. struct symbol *sym, **sym_arr = NULL;
  12858. + struct sym_match **sym_match_arr = NULL;
  12859. int i, cnt, size;
  12860. regex_t re;
  12861. + regmatch_t match[1];
  12862. cnt = size = 0;
  12863. /* Skip if empty */
  12864. if (strlen(pattern) == 0)
  12865. return NULL;
  12866. - if (regcomp(&re, pattern, REG_EXTENDED|REG_NOSUB|REG_ICASE))
  12867. + if (regcomp(&re, pattern, REG_EXTENDED|REG_ICASE))
  12868. return NULL;
  12869. for_all_symbols(i, sym) {
  12870. + struct sym_match *tmp_sym_match;
  12871. if (sym->flags & SYMBOL_CONST || !sym->name)
  12872. continue;
  12873. - if (regexec(&re, sym->name, 0, NULL, 0))
  12874. + if (regexec(&re, sym->name, 1, match, 0))
  12875. continue;
  12876. if (cnt + 1 >= size) {
  12877. - void *tmp = sym_arr;
  12878. + void *tmp;
  12879. size += 16;
  12880. - sym_arr = realloc(sym_arr, size * sizeof(struct symbol *));
  12881. - if (!sym_arr) {
  12882. - free(tmp);
  12883. - return NULL;
  12884. + tmp = realloc(sym_match_arr, size * sizeof(struct sym_match *));
  12885. + if (!tmp) {
  12886. + goto sym_re_search_free;
  12887. }
  12888. + sym_match_arr = tmp;
  12889. }
  12890. - sym_arr[cnt++] = sym;
  12891. - }
  12892. - if (sym_arr)
  12893. + sym_calc_value(sym);
  12894. + tmp_sym_match = (struct sym_match*)malloc(sizeof(struct sym_match));
  12895. + if (!tmp_sym_match)
  12896. + goto sym_re_search_free;
  12897. + tmp_sym_match->sym = sym;
  12898. + /* As regexec return 0, we know we have a match, so
  12899. + * we can use match[0].rm_[se]o without further checks
  12900. + */
  12901. + tmp_sym_match->so = match[0].rm_so;
  12902. + tmp_sym_match->eo = match[0].rm_eo;
  12903. + sym_match_arr[cnt++] = tmp_sym_match;
  12904. + }
  12905. + if (sym_match_arr) {
  12906. + qsort(sym_match_arr, cnt, sizeof(struct sym_match*), sym_rel_comp);
  12907. + sym_arr = malloc((cnt+1) * sizeof(struct symbol));
  12908. + if (!sym_arr)
  12909. + goto sym_re_search_free;
  12910. + for (i = 0; i < cnt; i++)
  12911. + sym_arr[i] = sym_match_arr[i]->sym;
  12912. sym_arr[cnt] = NULL;
  12913. + }
  12914. +sym_re_search_free:
  12915. + if (sym_match_arr) {
  12916. + for (i = 0; i < cnt; i++)
  12917. + free(sym_match_arr[i]);
  12918. + free(sym_match_arr);
  12919. + }
  12920. regfree(&re);
  12921. return sym_arr;
  12922. }
  12923. +/*
  12924. + * When we check for recursive dependencies we use a stack to save
  12925. + * current state so we can print out relevant info to user.
  12926. + * The entries are located on the call stack so no need to free memory.
  12927. + * Note inser() remove() must always match to properly clear the stack.
  12928. + */
  12929. +static struct dep_stack {
  12930. + struct dep_stack *prev, *next;
  12931. + struct symbol *sym;
  12932. + struct property *prop;
  12933. + struct expr *expr;
  12934. +} *check_top;
  12935. +
  12936. +static void dep_stack_insert(struct dep_stack *stack, struct symbol *sym)
  12937. +{
  12938. + memset(stack, 0, sizeof(*stack));
  12939. + if (check_top)
  12940. + check_top->next = stack;
  12941. + stack->prev = check_top;
  12942. + stack->sym = sym;
  12943. + check_top = stack;
  12944. +}
  12945. +
  12946. +static void dep_stack_remove(void)
  12947. +{
  12948. + check_top = check_top->prev;
  12949. + if (check_top)
  12950. + check_top->next = NULL;
  12951. +}
  12952. +
  12953. +/*
  12954. + * Called when we have detected a recursive dependency.
  12955. + * check_top point to the top of the stact so we use
  12956. + * the ->prev pointer to locate the bottom of the stack.
  12957. + */
  12958. +static void sym_check_print_recursive(struct symbol *last_sym)
  12959. +{
  12960. + struct dep_stack *stack;
  12961. + struct symbol *sym, *next_sym;
  12962. + struct menu *menu = NULL;
  12963. + struct property *prop;
  12964. + struct dep_stack cv_stack;
  12965. +
  12966. + if (sym_is_choice_value(last_sym)) {
  12967. + dep_stack_insert(&cv_stack, last_sym);
  12968. + last_sym = prop_get_symbol(sym_get_choice_prop(last_sym));
  12969. + }
  12970. +
  12971. + for (stack = check_top; stack != NULL; stack = stack->prev)
  12972. + if (stack->sym == last_sym)
  12973. + break;
  12974. + if (!stack) {
  12975. + fprintf(stderr, "unexpected recursive dependency error\n");
  12976. + return;
  12977. + }
  12978. +
  12979. + for (; stack; stack = stack->next) {
  12980. + sym = stack->sym;
  12981. + next_sym = stack->next ? stack->next->sym : last_sym;
  12982. + prop = stack->prop;
  12983. + if (prop == NULL)
  12984. + prop = stack->sym->prop;
  12985. +
  12986. + /* for choice values find the menu entry (used below) */
  12987. + if (sym_is_choice(sym) || sym_is_choice_value(sym)) {
  12988. + for (prop = sym->prop; prop; prop = prop->next) {
  12989. + menu = prop->menu;
  12990. + if (prop->menu)
  12991. + break;
  12992. + }
  12993. + }
  12994. + if (stack->sym == last_sym)
  12995. + fprintf(stderr, "%s:%d:error: recursive dependency detected!\n",
  12996. + prop->file->name, prop->lineno);
  12997. + if (stack->expr) {
  12998. + fprintf(stderr, "%s:%d:\tsymbol %s %s value contains %s\n",
  12999. + prop->file->name, prop->lineno,
  13000. + sym->name ? sym->name : "<choice>",
  13001. + prop_get_type_name(prop->type),
  13002. + next_sym->name ? next_sym->name : "<choice>");
  13003. + } else if (stack->prop) {
  13004. + fprintf(stderr, "%s:%d:\tsymbol %s depends on %s\n",
  13005. + prop->file->name, prop->lineno,
  13006. + sym->name ? sym->name : "<choice>",
  13007. + next_sym->name ? next_sym->name : "<choice>");
  13008. + } else if (sym_is_choice(sym)) {
  13009. + fprintf(stderr, "%s:%d:\tchoice %s contains symbol %s\n",
  13010. + menu->file->name, menu->lineno,
  13011. + sym->name ? sym->name : "<choice>",
  13012. + next_sym->name ? next_sym->name : "<choice>");
  13013. + } else if (sym_is_choice_value(sym)) {
  13014. + fprintf(stderr, "%s:%d:\tsymbol %s is part of choice %s\n",
  13015. + menu->file->name, menu->lineno,
  13016. + sym->name ? sym->name : "<choice>",
  13017. + next_sym->name ? next_sym->name : "<choice>");
  13018. + } else {
  13019. + fprintf(stderr, "%s:%d:\tsymbol %s is selected by %s\n",
  13020. + prop->file->name, prop->lineno,
  13021. + sym->name ? sym->name : "<choice>",
  13022. + next_sym->name ? next_sym->name : "<choice>");
  13023. + }
  13024. + }
  13025. +
  13026. + if (check_top == &cv_stack)
  13027. + dep_stack_remove();
  13028. +}
  13029. static struct symbol *sym_check_expr_deps(struct expr *e)
  13030. {
  13031. @@ -795,24 +1193,33 @@
  13032. {
  13033. struct symbol *sym2;
  13034. struct property *prop;
  13035. + struct dep_stack stack;
  13036. +
  13037. + dep_stack_insert(&stack, sym);
  13038. sym2 = sym_check_expr_deps(sym->rev_dep.expr);
  13039. if (sym2)
  13040. - return sym2;
  13041. + goto out;
  13042. for (prop = sym->prop; prop; prop = prop->next) {
  13043. if (prop->type == P_CHOICE || prop->type == P_SELECT)
  13044. continue;
  13045. + stack.prop = prop;
  13046. sym2 = sym_check_expr_deps(prop->visible.expr);
  13047. if (sym2)
  13048. break;
  13049. if (prop->type != P_DEFAULT || sym_is_choice(sym))
  13050. continue;
  13051. + stack.expr = prop->expr;
  13052. sym2 = sym_check_expr_deps(prop->expr);
  13053. if (sym2)
  13054. break;
  13055. + stack.expr = NULL;
  13056. }
  13057. +out:
  13058. + dep_stack_remove();
  13059. +
  13060. return sym2;
  13061. }
  13062. @@ -821,6 +1228,9 @@
  13063. struct symbol *sym, *sym2;
  13064. struct property *prop;
  13065. struct expr *e;
  13066. + struct dep_stack stack;
  13067. +
  13068. + dep_stack_insert(&stack, choice);
  13069. prop = sym_get_choice_prop(choice);
  13070. expr_list_for_each_sym(prop->expr, e, sym)
  13071. @@ -834,10 +1244,8 @@
  13072. expr_list_for_each_sym(prop->expr, e, sym) {
  13073. sym2 = sym_check_sym_deps(sym);
  13074. - if (sym2) {
  13075. - fprintf(stderr, " -> %s", sym->name);
  13076. + if (sym2)
  13077. break;
  13078. - }
  13079. }
  13080. out:
  13081. expr_list_for_each_sym(prop->expr, e, sym)
  13082. @@ -847,6 +1255,8 @@
  13083. prop_get_symbol(sym_get_choice_prop(sym2)) == choice)
  13084. sym2 = choice;
  13085. + dep_stack_remove();
  13086. +
  13087. return sym2;
  13088. }
  13089. @@ -856,18 +1266,20 @@
  13090. struct property *prop;
  13091. if (sym->flags & SYMBOL_CHECK) {
  13092. - fprintf(stderr, "%s:%d:error: found recursive dependency: %s",
  13093. - sym->prop->file->name, sym->prop->lineno,
  13094. - sym->name ? sym->name : "<choice>");
  13095. + sym_check_print_recursive(sym);
  13096. return sym;
  13097. }
  13098. if (sym->flags & SYMBOL_CHECKED)
  13099. return NULL;
  13100. if (sym_is_choice_value(sym)) {
  13101. + struct dep_stack stack;
  13102. +
  13103. /* for choice groups start the check with main choice symbol */
  13104. + dep_stack_insert(&stack, sym);
  13105. prop = sym_get_choice_prop(sym);
  13106. sym2 = sym_check_deps(prop_get_symbol(prop));
  13107. + dep_stack_remove();
  13108. } else if (sym_is_choice(sym)) {
  13109. sym2 = sym_check_choice_deps(sym);
  13110. } else {
  13111. @@ -876,14 +1288,8 @@
  13112. sym->flags &= ~SYMBOL_CHECK;
  13113. }
  13114. - if (sym2) {
  13115. - fprintf(stderr, " -> %s", sym->name ? sym->name : "<choice>");
  13116. - if (sym2 == sym) {
  13117. - fprintf(stderr, "\n");
  13118. - zconfnerrs++;
  13119. - sym2 = NULL;
  13120. - }
  13121. - }
  13122. + if (sym2 && sym2 == sym)
  13123. + sym2 = NULL;
  13124. return sym2;
  13125. }
  13126. @@ -893,7 +1299,7 @@
  13127. struct property *prop;
  13128. struct property **propp;
  13129. - prop = malloc(sizeof(*prop));
  13130. + prop = xmalloc(sizeof(*prop));
  13131. memset(prop, 0, sizeof(*prop));
  13132. prop->type = type;
  13133. prop->sym = sym;
  13134. @@ -937,13 +1343,15 @@
  13135. return "select";
  13136. case P_RANGE:
  13137. return "range";
  13138. + case P_SYMBOL:
  13139. + return "symbol";
  13140. case P_UNKNOWN:
  13141. break;
  13142. }
  13143. return "unknown";
  13144. }
  13145. -void prop_add_env(const char *env)
  13146. +static void prop_add_env(const char *env)
  13147. {
  13148. struct symbol *sym, *sym2;
  13149. struct property *prop;
  13150. diff -Nur uClibc-0.9.33.2/extra/config/util.c uClibc-git/extra/config/util.c
  13151. --- uClibc-0.9.33.2/extra/config/util.c 2012-05-15 09:20:09.000000000 +0200
  13152. +++ uClibc-git/extra/config/util.c 2014-06-02 17:40:33.746710502 +0200
  13153. @@ -5,6 +5,8 @@
  13154. * Released under the terms of the GNU GPL v2.0.
  13155. */
  13156. +#include <stdarg.h>
  13157. +#include <stdlib.h>
  13158. #include <string.h>
  13159. #include "lkc.h"
  13160. @@ -12,15 +14,18 @@
  13161. struct file *file_lookup(const char *name)
  13162. {
  13163. struct file *file;
  13164. + const char *file_name = sym_expand_string_value(name);
  13165. for (file = file_list; file; file = file->next) {
  13166. - if (!strcmp(name, file->name))
  13167. + if (!strcmp(name, file->name)) {
  13168. + free((void *)file_name);
  13169. return file;
  13170. + }
  13171. }
  13172. - file = malloc(sizeof(*file));
  13173. + file = xmalloc(sizeof(*file));
  13174. memset(file, 0, sizeof(*file));
  13175. - file->name = strdup(name);
  13176. + file->name = file_name;
  13177. file->next = file_list;
  13178. file_list = file;
  13179. return file;
  13180. @@ -32,11 +37,15 @@
  13181. struct symbol *sym, *env_sym;
  13182. struct expr *e;
  13183. struct file *file;
  13184. + char tmpf[PATH_MAX+1];
  13185. FILE *out;
  13186. if (!name)
  13187. name = ".kconfig.d";
  13188. - out = fopen("..config.tmp", "w");
  13189. + strcpy(tmpf, name);
  13190. + dir_name(tmpf);
  13191. + strcat(tmpf, "..config.tmp");
  13192. + out = fopen(tmpf, "w");
  13193. if (!out)
  13194. return 1;
  13195. fprintf(out, "deps_config := \\\n");
  13196. @@ -46,8 +55,8 @@
  13197. else
  13198. fprintf(out, "\t%s\n", file->name);
  13199. }
  13200. - fprintf(out, "\ninclude/config/auto.conf: \\\n"
  13201. - "\t$(deps_config)\n\n");
  13202. + fprintf(out, "\n%s: \\\n"
  13203. + "\t$(deps_config)\n\n", conf_get_autoconfig_name());
  13204. expr_list_for_each_sym(sym_env_list, e, sym) {
  13205. struct property *prop;
  13206. @@ -61,23 +70,24 @@
  13207. if (!value)
  13208. value = "";
  13209. fprintf(out, "ifneq \"$(%s)\" \"%s\"\n", env_sym->name, value);
  13210. - fprintf(out, "include/config/auto.conf: FORCE\n");
  13211. + fprintf(out, "%s: FORCE\n", conf_get_autoconfig_name());
  13212. fprintf(out, "endif\n");
  13213. }
  13214. fprintf(out, "\n$(deps_config): ;\n");
  13215. fclose(out);
  13216. - rename("..config.tmp", name);
  13217. + rename(tmpf, name);
  13218. return 0;
  13219. }
  13220. -/* Allocate initial growable sting */
  13221. +/* Allocate initial growable string */
  13222. struct gstr str_new(void)
  13223. {
  13224. struct gstr gs;
  13225. - gs.s = malloc(sizeof(char) * 64);
  13226. + gs.s = xmalloc(sizeof(char) * 64);
  13227. gs.len = 64;
  13228. + gs.max_width = 0;
  13229. strcpy(gs.s, "\0");
  13230. return gs;
  13231. }
  13232. @@ -88,6 +98,7 @@
  13233. struct gstr gs;
  13234. gs.s = strdup(s);
  13235. gs.len = strlen(s) + 1;
  13236. + gs.max_width = 0;
  13237. return gs;
  13238. }
  13239. @@ -131,3 +142,40 @@
  13240. return gs->s;
  13241. }
  13242. +void *xmalloc(size_t size)
  13243. +{
  13244. + void *p = malloc(size);
  13245. + if (p)
  13246. + return p;
  13247. + fprintf(stderr, "Out of memory.\n");
  13248. + exit(1);
  13249. +}
  13250. +
  13251. +void *xcalloc(size_t nmemb, size_t size)
  13252. +{
  13253. + void *p = calloc(nmemb, size);
  13254. + if (p)
  13255. + return p;
  13256. + fprintf(stderr, "Out of memory.\n");
  13257. + exit(1);
  13258. +}
  13259. +
  13260. +/* basename, dirname - parse pathname components */
  13261. +char *dir_name(char *path)
  13262. +{
  13263. + char *slash = strrchr(path, '/');
  13264. + int size = 0;
  13265. + if (slash)
  13266. + size = slash - path + 1;
  13267. + path[size] = 0;
  13268. + return path;
  13269. +}
  13270. +char *base_name(char *path)
  13271. +{
  13272. + char *slash = strrchr(path, '/');
  13273. + if (slash)
  13274. + path += slash - path + 1;
  13275. + return path;
  13276. +
  13277. +}
  13278. +
  13279. diff -Nur uClibc-0.9.33.2/extra/config/zconf.gperf uClibc-git/extra/config/zconf.gperf
  13280. --- uClibc-0.9.33.2/extra/config/zconf.gperf 2012-05-15 09:20:09.000000000 +0200
  13281. +++ uClibc-git/extra/config/zconf.gperf 2014-06-02 17:40:33.746710502 +0200
  13282. @@ -9,6 +9,8 @@
  13283. struct kconf_id;
  13284. +static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
  13285. +
  13286. %%
  13287. mainmenu, T_MAINMENU, TF_COMMAND
  13288. menu, T_MENU, TF_COMMAND
  13289. @@ -36,6 +38,7 @@
  13290. string, T_TYPE, TF_COMMAND, S_STRING
  13291. select, T_SELECT, TF_COMMAND
  13292. range, T_RANGE, TF_COMMAND
  13293. +visible, T_VISIBLE, TF_COMMAND
  13294. option, T_OPTION, TF_COMMAND
  13295. on, T_ON, TF_PARAM
  13296. modules, T_OPT_MODULES, TF_OPTION
  13297. diff -Nur uClibc-0.9.33.2/extra/config/zconf.hash.c_shipped uClibc-git/extra/config/zconf.hash.c_shipped
  13298. --- uClibc-0.9.33.2/extra/config/zconf.hash.c_shipped 2012-05-15 09:20:09.000000000 +0200
  13299. +++ uClibc-git/extra/config/zconf.hash.c_shipped 2014-06-02 17:40:33.746710502 +0200
  13300. @@ -1,6 +1,5 @@
  13301. -/* ANSI-C code produced by gperf version 3.0.3 */
  13302. -/* Command-line: gperf */
  13303. -/* Computed positions: -k'1,3' */
  13304. +/* ANSI-C code produced by gperf version 3.0.4 */
  13305. +/* Command-line: gperf -t --output-file scripts/kconfig/zconf.hash.c_shipped -a -C -E -g -k '1,3,$' -p -t scripts/kconfig/zconf.gperf */
  13306. #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
  13307. && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
  13308. @@ -29,8 +28,11 @@
  13309. #error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf@gnu.org>."
  13310. #endif
  13311. +#line 10 "scripts/kconfig/zconf.gperf"
  13312. struct kconf_id;
  13313. -/* maximum key range = 47, duplicates = 0 */
  13314. +
  13315. +static const struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
  13316. +/* maximum key range = 71, duplicates = 0 */
  13317. #ifdef __GNUC__
  13318. __inline
  13319. @@ -42,34 +44,34 @@
  13320. static unsigned int
  13321. kconf_id_hash (register const char *str, register unsigned int len)
  13322. {
  13323. - static unsigned char asso_values[] =
  13324. + static const unsigned char asso_values[] =
  13325. {
  13326. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13327. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13328. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13329. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13330. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13331. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13332. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13333. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13334. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13335. - 49, 49, 49, 49, 49, 49, 49, 49, 11, 5,
  13336. - 0, 0, 5, 49, 5, 20, 49, 49, 5, 20,
  13337. - 5, 0, 30, 49, 0, 15, 0, 10, 0, 49,
  13338. - 25, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13339. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13340. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13341. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13342. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13343. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13344. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13345. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13346. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13347. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13348. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13349. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13350. - 49, 49, 49, 49, 49, 49, 49, 49, 49, 49,
  13351. - 49, 49, 49, 49, 49, 49
  13352. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13353. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13354. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13355. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13356. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13357. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13358. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13359. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13360. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13361. + 73, 73, 73, 73, 73, 73, 73, 73, 25, 25,
  13362. + 0, 0, 0, 5, 0, 0, 73, 73, 5, 0,
  13363. + 10, 5, 45, 73, 20, 20, 0, 15, 15, 73,
  13364. + 20, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13365. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13366. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13367. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13368. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13369. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13370. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13371. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13372. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13373. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13374. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13375. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13376. + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
  13377. + 73, 73, 73, 73, 73, 73
  13378. };
  13379. register int hval = len;
  13380. @@ -83,137 +85,183 @@
  13381. hval += asso_values[(unsigned char)str[0]];
  13382. break;
  13383. }
  13384. - return hval;
  13385. + return hval + asso_values[(unsigned char)str[len - 1]];
  13386. }
  13387. struct kconf_id_strings_t
  13388. {
  13389. - char kconf_id_strings_str2[sizeof("on")];
  13390. - char kconf_id_strings_str3[sizeof("env")];
  13391. + char kconf_id_strings_str2[sizeof("if")];
  13392. + char kconf_id_strings_str3[sizeof("int")];
  13393. char kconf_id_strings_str5[sizeof("endif")];
  13394. - char kconf_id_strings_str6[sizeof("option")];
  13395. - char kconf_id_strings_str7[sizeof("endmenu")];
  13396. - char kconf_id_strings_str8[sizeof("optional")];
  13397. + char kconf_id_strings_str7[sizeof("default")];
  13398. + char kconf_id_strings_str8[sizeof("tristate")];
  13399. char kconf_id_strings_str9[sizeof("endchoice")];
  13400. - char kconf_id_strings_str10[sizeof("range")];
  13401. - char kconf_id_strings_str11[sizeof("choice")];
  13402. - char kconf_id_strings_str12[sizeof("default")];
  13403. + char kconf_id_strings_str12[sizeof("def_tristate")];
  13404. char kconf_id_strings_str13[sizeof("def_bool")];
  13405. - char kconf_id_strings_str14[sizeof("help")];
  13406. - char kconf_id_strings_str15[sizeof("bool")];
  13407. - char kconf_id_strings_str16[sizeof("config")];
  13408. - char kconf_id_strings_str17[sizeof("def_tristate")];
  13409. - char kconf_id_strings_str18[sizeof("boolean")];
  13410. - char kconf_id_strings_str19[sizeof("defconfig_list")];
  13411. - char kconf_id_strings_str21[sizeof("string")];
  13412. - char kconf_id_strings_str22[sizeof("if")];
  13413. - char kconf_id_strings_str23[sizeof("int")];
  13414. - char kconf_id_strings_str26[sizeof("select")];
  13415. + char kconf_id_strings_str14[sizeof("defconfig_list")];
  13416. + char kconf_id_strings_str17[sizeof("on")];
  13417. + char kconf_id_strings_str18[sizeof("optional")];
  13418. + char kconf_id_strings_str21[sizeof("option")];
  13419. + char kconf_id_strings_str22[sizeof("endmenu")];
  13420. + char kconf_id_strings_str23[sizeof("mainmenu")];
  13421. + char kconf_id_strings_str25[sizeof("menuconfig")];
  13422. char kconf_id_strings_str27[sizeof("modules")];
  13423. - char kconf_id_strings_str28[sizeof("tristate")];
  13424. char kconf_id_strings_str29[sizeof("menu")];
  13425. - char kconf_id_strings_str31[sizeof("source")];
  13426. + char kconf_id_strings_str31[sizeof("select")];
  13427. char kconf_id_strings_str32[sizeof("comment")];
  13428. - char kconf_id_strings_str33[sizeof("hex")];
  13429. - char kconf_id_strings_str35[sizeof("menuconfig")];
  13430. - char kconf_id_strings_str36[sizeof("prompt")];
  13431. - char kconf_id_strings_str37[sizeof("depends")];
  13432. - char kconf_id_strings_str48[sizeof("mainmenu")];
  13433. + char kconf_id_strings_str33[sizeof("env")];
  13434. + char kconf_id_strings_str35[sizeof("range")];
  13435. + char kconf_id_strings_str36[sizeof("choice")];
  13436. + char kconf_id_strings_str39[sizeof("bool")];
  13437. + char kconf_id_strings_str41[sizeof("source")];
  13438. + char kconf_id_strings_str42[sizeof("visible")];
  13439. + char kconf_id_strings_str43[sizeof("hex")];
  13440. + char kconf_id_strings_str46[sizeof("config")];
  13441. + char kconf_id_strings_str47[sizeof("boolean")];
  13442. + char kconf_id_strings_str51[sizeof("string")];
  13443. + char kconf_id_strings_str54[sizeof("help")];
  13444. + char kconf_id_strings_str56[sizeof("prompt")];
  13445. + char kconf_id_strings_str72[sizeof("depends")];
  13446. };
  13447. -static struct kconf_id_strings_t kconf_id_strings_contents =
  13448. +static const struct kconf_id_strings_t kconf_id_strings_contents =
  13449. {
  13450. - "on",
  13451. - "env",
  13452. + "if",
  13453. + "int",
  13454. "endif",
  13455. + "default",
  13456. + "tristate",
  13457. + "endchoice",
  13458. + "def_tristate",
  13459. + "def_bool",
  13460. + "defconfig_list",
  13461. + "on",
  13462. + "optional",
  13463. "option",
  13464. "endmenu",
  13465. - "optional",
  13466. - "endchoice",
  13467. + "mainmenu",
  13468. + "menuconfig",
  13469. + "modules",
  13470. + "menu",
  13471. + "select",
  13472. + "comment",
  13473. + "env",
  13474. "range",
  13475. "choice",
  13476. - "default",
  13477. - "def_bool",
  13478. - "help",
  13479. "bool",
  13480. + "source",
  13481. + "visible",
  13482. + "hex",
  13483. "config",
  13484. - "def_tristate",
  13485. "boolean",
  13486. - "defconfig_list",
  13487. "string",
  13488. - "if",
  13489. - "int",
  13490. - "select",
  13491. - "modules",
  13492. - "tristate",
  13493. - "menu",
  13494. - "source",
  13495. - "comment",
  13496. - "hex",
  13497. - "menuconfig",
  13498. + "help",
  13499. "prompt",
  13500. - "depends",
  13501. - "mainmenu"
  13502. + "depends"
  13503. };
  13504. #define kconf_id_strings ((const char *) &kconf_id_strings_contents)
  13505. #ifdef __GNUC__
  13506. __inline
  13507. -#ifdef __GNUC_STDC_INLINE__
  13508. +#if defined __GNUC_STDC_INLINE__ || defined __GNUC_GNU_INLINE__
  13509. __attribute__ ((__gnu_inline__))
  13510. #endif
  13511. #endif
  13512. -struct kconf_id *
  13513. +const struct kconf_id *
  13514. kconf_id_lookup (register const char *str, register unsigned int len)
  13515. {
  13516. enum
  13517. {
  13518. - TOTAL_KEYWORDS = 31,
  13519. + TOTAL_KEYWORDS = 32,
  13520. MIN_WORD_LENGTH = 2,
  13521. MAX_WORD_LENGTH = 14,
  13522. MIN_HASH_VALUE = 2,
  13523. - MAX_HASH_VALUE = 48
  13524. + MAX_HASH_VALUE = 72
  13525. };
  13526. - static struct kconf_id wordlist[] =
  13527. + static const struct kconf_id wordlist[] =
  13528. {
  13529. {-1}, {-1},
  13530. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str2, T_ON, TF_PARAM},
  13531. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str3, T_OPT_ENV, TF_OPTION},
  13532. +#line 25 "scripts/kconfig/zconf.gperf"
  13533. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str2, T_IF, TF_COMMAND|TF_PARAM},
  13534. +#line 36 "scripts/kconfig/zconf.gperf"
  13535. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str3, T_TYPE, TF_COMMAND, S_INT},
  13536. {-1},
  13537. +#line 26 "scripts/kconfig/zconf.gperf"
  13538. {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str5, T_ENDIF, TF_COMMAND},
  13539. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str6, T_OPTION, TF_COMMAND},
  13540. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str7, T_ENDMENU, TF_COMMAND},
  13541. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str8, T_OPTIONAL, TF_COMMAND},
  13542. + {-1},
  13543. +#line 29 "scripts/kconfig/zconf.gperf"
  13544. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str7, T_DEFAULT, TF_COMMAND, S_UNKNOWN},
  13545. +#line 31 "scripts/kconfig/zconf.gperf"
  13546. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str8, T_TYPE, TF_COMMAND, S_TRISTATE},
  13547. +#line 20 "scripts/kconfig/zconf.gperf"
  13548. {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str9, T_ENDCHOICE, TF_COMMAND},
  13549. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str10, T_RANGE, TF_COMMAND},
  13550. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str11, T_CHOICE, TF_COMMAND},
  13551. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12, T_DEFAULT, TF_COMMAND, S_UNKNOWN},
  13552. + {-1}, {-1},
  13553. +#line 32 "scripts/kconfig/zconf.gperf"
  13554. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str12, T_DEFAULT, TF_COMMAND, S_TRISTATE},
  13555. +#line 35 "scripts/kconfig/zconf.gperf"
  13556. {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str13, T_DEFAULT, TF_COMMAND, S_BOOLEAN},
  13557. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14, T_HELP, TF_COMMAND},
  13558. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str15, T_TYPE, TF_COMMAND, S_BOOLEAN},
  13559. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str16, T_CONFIG, TF_COMMAND},
  13560. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17, T_DEFAULT, TF_COMMAND, S_TRISTATE},
  13561. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18, T_TYPE, TF_COMMAND, S_BOOLEAN},
  13562. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str19, T_OPT_DEFCONFIG_LIST,TF_OPTION},
  13563. - {-1},
  13564. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_TYPE, TF_COMMAND, S_STRING},
  13565. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22, T_IF, TF_COMMAND|TF_PARAM},
  13566. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23, T_TYPE, TF_COMMAND, S_INT},
  13567. +#line 45 "scripts/kconfig/zconf.gperf"
  13568. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str14, T_OPT_DEFCONFIG_LIST,TF_OPTION},
  13569. + {-1}, {-1},
  13570. +#line 43 "scripts/kconfig/zconf.gperf"
  13571. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str17, T_ON, TF_PARAM},
  13572. +#line 28 "scripts/kconfig/zconf.gperf"
  13573. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str18, T_OPTIONAL, TF_COMMAND},
  13574. {-1}, {-1},
  13575. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str26, T_SELECT, TF_COMMAND},
  13576. +#line 42 "scripts/kconfig/zconf.gperf"
  13577. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str21, T_OPTION, TF_COMMAND},
  13578. +#line 17 "scripts/kconfig/zconf.gperf"
  13579. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str22, T_ENDMENU, TF_COMMAND},
  13580. +#line 15 "scripts/kconfig/zconf.gperf"
  13581. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str23, T_MAINMENU, TF_COMMAND},
  13582. + {-1},
  13583. +#line 23 "scripts/kconfig/zconf.gperf"
  13584. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str25, T_MENUCONFIG, TF_COMMAND},
  13585. + {-1},
  13586. +#line 44 "scripts/kconfig/zconf.gperf"
  13587. {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str27, T_OPT_MODULES, TF_OPTION},
  13588. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str28, T_TYPE, TF_COMMAND, S_TRISTATE},
  13589. + {-1},
  13590. +#line 16 "scripts/kconfig/zconf.gperf"
  13591. {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str29, T_MENU, TF_COMMAND},
  13592. {-1},
  13593. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31, T_SOURCE, TF_COMMAND},
  13594. +#line 39 "scripts/kconfig/zconf.gperf"
  13595. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str31, T_SELECT, TF_COMMAND},
  13596. +#line 21 "scripts/kconfig/zconf.gperf"
  13597. {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str32, T_COMMENT, TF_COMMAND},
  13598. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33, T_TYPE, TF_COMMAND, S_HEX},
  13599. +#line 46 "scripts/kconfig/zconf.gperf"
  13600. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str33, T_OPT_ENV, TF_OPTION},
  13601. {-1},
  13602. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str35, T_MENUCONFIG, TF_COMMAND},
  13603. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36, T_PROMPT, TF_COMMAND},
  13604. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str37, T_DEPENDS, TF_COMMAND},
  13605. - {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
  13606. +#line 40 "scripts/kconfig/zconf.gperf"
  13607. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str35, T_RANGE, TF_COMMAND},
  13608. +#line 19 "scripts/kconfig/zconf.gperf"
  13609. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str36, T_CHOICE, TF_COMMAND},
  13610. + {-1}, {-1},
  13611. +#line 33 "scripts/kconfig/zconf.gperf"
  13612. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str39, T_TYPE, TF_COMMAND, S_BOOLEAN},
  13613. + {-1},
  13614. +#line 18 "scripts/kconfig/zconf.gperf"
  13615. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str41, T_SOURCE, TF_COMMAND},
  13616. +#line 41 "scripts/kconfig/zconf.gperf"
  13617. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str42, T_VISIBLE, TF_COMMAND},
  13618. +#line 37 "scripts/kconfig/zconf.gperf"
  13619. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str43, T_TYPE, TF_COMMAND, S_HEX},
  13620. + {-1}, {-1},
  13621. +#line 22 "scripts/kconfig/zconf.gperf"
  13622. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str46, T_CONFIG, TF_COMMAND},
  13623. +#line 34 "scripts/kconfig/zconf.gperf"
  13624. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str47, T_TYPE, TF_COMMAND, S_BOOLEAN},
  13625. + {-1}, {-1}, {-1},
  13626. +#line 38 "scripts/kconfig/zconf.gperf"
  13627. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str51, T_TYPE, TF_COMMAND, S_STRING},
  13628. + {-1}, {-1},
  13629. +#line 24 "scripts/kconfig/zconf.gperf"
  13630. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str54, T_HELP, TF_COMMAND},
  13631. {-1},
  13632. - {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str48, T_MAINMENU, TF_COMMAND}
  13633. +#line 30 "scripts/kconfig/zconf.gperf"
  13634. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str56, T_PROMPT, TF_COMMAND},
  13635. + {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
  13636. + {-1}, {-1}, {-1}, {-1}, {-1}, {-1},
  13637. +#line 27 "scripts/kconfig/zconf.gperf"
  13638. + {(int)(long)&((struct kconf_id_strings_t *)0)->kconf_id_strings_str72, T_DEPENDS, TF_COMMAND}
  13639. };
  13640. if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
  13641. @@ -234,4 +282,5 @@
  13642. }
  13643. return 0;
  13644. }
  13645. +#line 47 "scripts/kconfig/zconf.gperf"
  13646. diff -Nur uClibc-0.9.33.2/extra/config/zconf.l uClibc-git/extra/config/zconf.l
  13647. --- uClibc-0.9.33.2/extra/config/zconf.l 2012-05-15 09:20:09.000000000 +0200
  13648. +++ uClibc-git/extra/config/zconf.l 2014-06-02 17:40:33.746710502 +0200
  13649. @@ -1,5 +1,5 @@
  13650. -%option backup nostdinit noyywrap never-interactive full ecs
  13651. -%option 8bit backup nodefault perf-report perf-report
  13652. +%option nostdinit noyywrap never-interactive full ecs
  13653. +%option 8bit nodefault perf-report perf-report
  13654. %option noinput
  13655. %x COMMAND HELP STRING PARAM
  13656. %{
  13657. @@ -14,7 +14,6 @@
  13658. #include <string.h>
  13659. #include <unistd.h>
  13660. -#define LKC_DIRECT_LINK
  13661. #include "lkc.h"
  13662. #define START_STRSIZE 16
  13663. @@ -39,15 +38,15 @@
  13664. static void zconf_endhelp(void);
  13665. static void zconf_endfile(void);
  13666. -void new_string(void)
  13667. +static void new_string(void)
  13668. {
  13669. - text = malloc(START_STRSIZE);
  13670. + text = xmalloc(START_STRSIZE);
  13671. text_asize = START_STRSIZE;
  13672. text_size = 0;
  13673. *text = 0;
  13674. }
  13675. -void append_string(const char *str, int size)
  13676. +static void append_string(const char *str, int size)
  13677. {
  13678. int new_size = text_size + size + 1;
  13679. if (new_size > text_asize) {
  13680. @@ -61,9 +60,9 @@
  13681. text[text_size] = 0;
  13682. }
  13683. -void alloc_string(const char *str, int size)
  13684. +static void alloc_string(const char *str, int size)
  13685. {
  13686. - text = malloc(size + 1);
  13687. + text = xmalloc(size + 1);
  13688. memcpy(text, str, size);
  13689. text[size] = 0;
  13690. }
  13691. @@ -96,7 +95,7 @@
  13692. <COMMAND>{
  13693. {n}+ {
  13694. - struct kconf_id *id = kconf_id_lookup(yytext, yyleng);
  13695. + const struct kconf_id *id = kconf_id_lookup(yytext, yyleng);
  13696. BEGIN(PARAM);
  13697. current_pos.file = current_file;
  13698. current_pos.lineno = current_file->lineno;
  13699. @@ -132,7 +131,7 @@
  13700. \n BEGIN(INITIAL); current_file->lineno++; return T_EOL;
  13701. --- /* ignore */
  13702. ({n}|[-/.])+ {
  13703. - struct kconf_id *id = kconf_id_lookup(yytext, yyleng);
  13704. + const struct kconf_id *id = kconf_id_lookup(yytext, yyleng);
  13705. if (id && id->flags & TF_PARAM) {
  13706. zconflval.id = id;
  13707. return id->token;
  13708. @@ -289,42 +288,50 @@
  13709. exit(1);
  13710. }
  13711. - current_buf = malloc(sizeof(*current_buf));
  13712. + current_buf = xmalloc(sizeof(*current_buf));
  13713. memset(current_buf, 0, sizeof(*current_buf));
  13714. current_file = file_lookup(name);
  13715. current_file->lineno = 1;
  13716. - current_file->flags = FILE_BUSY;
  13717. }
  13718. void zconf_nextfile(const char *name)
  13719. {
  13720. + struct file *iter;
  13721. struct file *file = file_lookup(name);
  13722. - struct buffer *buf = malloc(sizeof(*buf));
  13723. + struct buffer *buf = xmalloc(sizeof(*buf));
  13724. memset(buf, 0, sizeof(*buf));
  13725. current_buf->state = YY_CURRENT_BUFFER;
  13726. - yyin = zconf_fopen(name);
  13727. + yyin = zconf_fopen(file->name);
  13728. if (!yyin) {
  13729. - printf("%s:%d: can't open file \"%s\"\n", zconf_curname(), zconf_lineno(), name);
  13730. + printf("%s:%d: can't open file \"%s\"\n",
  13731. + zconf_curname(), zconf_lineno(), file->name);
  13732. exit(1);
  13733. }
  13734. yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));
  13735. buf->parent = current_buf;
  13736. current_buf = buf;
  13737. - if (file->flags & FILE_BUSY) {
  13738. - printf("%s:%d: do not source '%s' from itself\n",
  13739. - zconf_curname(), zconf_lineno(), name);
  13740. - exit(1);
  13741. - }
  13742. - if (file->flags & FILE_SCANNED) {
  13743. - printf("%s:%d: file '%s' is already sourced from '%s'\n",
  13744. - zconf_curname(), zconf_lineno(), name,
  13745. - file->parent->name);
  13746. - exit(1);
  13747. + for (iter = current_file->parent; iter; iter = iter->parent ) {
  13748. + if (!strcmp(current_file->name,iter->name) ) {
  13749. + printf("%s:%d: recursive inclusion detected. "
  13750. + "Inclusion path:\n current file : '%s'\n",
  13751. + zconf_curname(), zconf_lineno(),
  13752. + zconf_curname());
  13753. + iter = current_file->parent;
  13754. + while (iter && \
  13755. + strcmp(iter->name,current_file->name)) {
  13756. + printf(" included from: '%s:%d'\n",
  13757. + iter->name, iter->lineno-1);
  13758. + iter = iter->parent;
  13759. + }
  13760. + if (iter)
  13761. + printf(" included from: '%s:%d'\n",
  13762. + iter->name, iter->lineno+1);
  13763. + exit(1);
  13764. + }
  13765. }
  13766. - file->flags |= FILE_BUSY;
  13767. file->lineno = 1;
  13768. file->parent = current_file;
  13769. current_file = file;
  13770. @@ -334,8 +341,6 @@
  13771. {
  13772. struct buffer *parent;
  13773. - current_file->flags |= FILE_SCANNED;
  13774. - current_file->flags &= ~FILE_BUSY;
  13775. current_file = current_file->parent;
  13776. parent = current_buf->parent;
  13777. @@ -353,7 +358,7 @@
  13778. return current_pos.lineno;
  13779. }
  13780. -char *zconf_curname(void)
  13781. +const char *zconf_curname(void)
  13782. {
  13783. return current_pos.file ? current_pos.file->name : "<none>";
  13784. }
  13785. diff -Nur uClibc-0.9.33.2/extra/config/zconf.lex.c_shipped uClibc-git/extra/config/zconf.lex.c_shipped
  13786. --- uClibc-0.9.33.2/extra/config/zconf.lex.c_shipped 1970-01-01 01:00:00.000000000 +0100
  13787. +++ uClibc-git/extra/config/zconf.lex.c_shipped 2014-06-02 17:40:33.746710502 +0200
  13788. @@ -0,0 +1,2420 @@
  13789. +
  13790. +#line 3 "scripts/kconfig/zconf.lex.c_shipped"
  13791. +
  13792. +#define YY_INT_ALIGNED short int
  13793. +
  13794. +/* A lexical scanner generated by flex */
  13795. +
  13796. +#define yy_create_buffer zconf_create_buffer
  13797. +#define yy_delete_buffer zconf_delete_buffer
  13798. +#define yy_flex_debug zconf_flex_debug
  13799. +#define yy_init_buffer zconf_init_buffer
  13800. +#define yy_flush_buffer zconf_flush_buffer
  13801. +#define yy_load_buffer_state zconf_load_buffer_state
  13802. +#define yy_switch_to_buffer zconf_switch_to_buffer
  13803. +#define yyin zconfin
  13804. +#define yyleng zconfleng
  13805. +#define yylex zconflex
  13806. +#define yylineno zconflineno
  13807. +#define yyout zconfout
  13808. +#define yyrestart zconfrestart
  13809. +#define yytext zconftext
  13810. +#define yywrap zconfwrap
  13811. +#define yyalloc zconfalloc
  13812. +#define yyrealloc zconfrealloc
  13813. +#define yyfree zconffree
  13814. +
  13815. +#define FLEX_SCANNER
  13816. +#define YY_FLEX_MAJOR_VERSION 2
  13817. +#define YY_FLEX_MINOR_VERSION 5
  13818. +#define YY_FLEX_SUBMINOR_VERSION 35
  13819. +#if YY_FLEX_SUBMINOR_VERSION > 0
  13820. +#define FLEX_BETA
  13821. +#endif
  13822. +
  13823. +/* First, we deal with platform-specific or compiler-specific issues. */
  13824. +
  13825. +/* begin standard C headers. */
  13826. +#include <stdio.h>
  13827. +#include <string.h>
  13828. +#include <errno.h>
  13829. +#include <stdlib.h>
  13830. +
  13831. +/* end standard C headers. */
  13832. +
  13833. +/* flex integer type definitions */
  13834. +
  13835. +#ifndef FLEXINT_H
  13836. +#define FLEXINT_H
  13837. +
  13838. +/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
  13839. +
  13840. +#if defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
  13841. +
  13842. +/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
  13843. + * if you want the limit (max/min) macros for int types.
  13844. + */
  13845. +#ifndef __STDC_LIMIT_MACROS
  13846. +#define __STDC_LIMIT_MACROS 1
  13847. +#endif
  13848. +
  13849. +#include <inttypes.h>
  13850. +typedef int8_t flex_int8_t;
  13851. +typedef uint8_t flex_uint8_t;
  13852. +typedef int16_t flex_int16_t;
  13853. +typedef uint16_t flex_uint16_t;
  13854. +typedef int32_t flex_int32_t;
  13855. +typedef uint32_t flex_uint32_t;
  13856. +#else
  13857. +typedef signed char flex_int8_t;
  13858. +typedef short int flex_int16_t;
  13859. +typedef int flex_int32_t;
  13860. +typedef unsigned char flex_uint8_t;
  13861. +typedef unsigned short int flex_uint16_t;
  13862. +typedef unsigned int flex_uint32_t;
  13863. +#endif /* ! C99 */
  13864. +
  13865. +/* Limits of integral types. */
  13866. +#ifndef INT8_MIN
  13867. +#define INT8_MIN (-128)
  13868. +#endif
  13869. +#ifndef INT16_MIN
  13870. +#define INT16_MIN (-32767-1)
  13871. +#endif
  13872. +#ifndef INT32_MIN
  13873. +#define INT32_MIN (-2147483647-1)
  13874. +#endif
  13875. +#ifndef INT8_MAX
  13876. +#define INT8_MAX (127)
  13877. +#endif
  13878. +#ifndef INT16_MAX
  13879. +#define INT16_MAX (32767)
  13880. +#endif
  13881. +#ifndef INT32_MAX
  13882. +#define INT32_MAX (2147483647)
  13883. +#endif
  13884. +#ifndef UINT8_MAX
  13885. +#define UINT8_MAX (255U)
  13886. +#endif
  13887. +#ifndef UINT16_MAX
  13888. +#define UINT16_MAX (65535U)
  13889. +#endif
  13890. +#ifndef UINT32_MAX
  13891. +#define UINT32_MAX (4294967295U)
  13892. +#endif
  13893. +
  13894. +#endif /* ! FLEXINT_H */
  13895. +
  13896. +#ifdef __cplusplus
  13897. +
  13898. +/* The "const" storage-class-modifier is valid. */
  13899. +#define YY_USE_CONST
  13900. +
  13901. +#else /* ! __cplusplus */
  13902. +
  13903. +/* C99 requires __STDC__ to be defined as 1. */
  13904. +#if defined (__STDC__)
  13905. +
  13906. +#define YY_USE_CONST
  13907. +
  13908. +#endif /* defined (__STDC__) */
  13909. +#endif /* ! __cplusplus */
  13910. +
  13911. +#ifdef YY_USE_CONST
  13912. +#define yyconst const
  13913. +#else
  13914. +#define yyconst
  13915. +#endif
  13916. +
  13917. +/* Returned upon end-of-file. */
  13918. +#define YY_NULL 0
  13919. +
  13920. +/* Promotes a possibly negative, possibly signed char to an unsigned
  13921. + * integer for use as an array index. If the signed char is negative,
  13922. + * we want to instead treat it as an 8-bit unsigned char, hence the
  13923. + * double cast.
  13924. + */
  13925. +#define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
  13926. +
  13927. +/* Enter a start condition. This macro really ought to take a parameter,
  13928. + * but we do it the disgusting crufty way forced on us by the ()-less
  13929. + * definition of BEGIN.
  13930. + */
  13931. +#define BEGIN (yy_start) = 1 + 2 *
  13932. +
  13933. +/* Translate the current start state into a value that can be later handed
  13934. + * to BEGIN to return to the state. The YYSTATE alias is for lex
  13935. + * compatibility.
  13936. + */
  13937. +#define YY_START (((yy_start) - 1) / 2)
  13938. +#define YYSTATE YY_START
  13939. +
  13940. +/* Action number for EOF rule of a given start state. */
  13941. +#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  13942. +
  13943. +/* Special action meaning "start processing a new file". */
  13944. +#define YY_NEW_FILE zconfrestart(zconfin )
  13945. +
  13946. +#define YY_END_OF_BUFFER_CHAR 0
  13947. +
  13948. +/* Size of default input buffer. */
  13949. +#ifndef YY_BUF_SIZE
  13950. +#define YY_BUF_SIZE 16384
  13951. +#endif
  13952. +
  13953. +/* The state buf must be large enough to hold one state per character in the main buffer.
  13954. + */
  13955. +#define YY_STATE_BUF_SIZE ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
  13956. +
  13957. +#ifndef YY_TYPEDEF_YY_BUFFER_STATE
  13958. +#define YY_TYPEDEF_YY_BUFFER_STATE
  13959. +typedef struct yy_buffer_state *YY_BUFFER_STATE;
  13960. +#endif
  13961. +
  13962. +extern int zconfleng;
  13963. +
  13964. +extern FILE *zconfin, *zconfout;
  13965. +
  13966. +#define EOB_ACT_CONTINUE_SCAN 0
  13967. +#define EOB_ACT_END_OF_FILE 1
  13968. +#define EOB_ACT_LAST_MATCH 2
  13969. +
  13970. + #define YY_LESS_LINENO(n)
  13971. +
  13972. +/* Return all but the first "n" matched characters back to the input stream. */
  13973. +#define yyless(n) \
  13974. + do \
  13975. + { \
  13976. + /* Undo effects of setting up zconftext. */ \
  13977. + int yyless_macro_arg = (n); \
  13978. + YY_LESS_LINENO(yyless_macro_arg);\
  13979. + *yy_cp = (yy_hold_char); \
  13980. + YY_RESTORE_YY_MORE_OFFSET \
  13981. + (yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
  13982. + YY_DO_BEFORE_ACTION; /* set up zconftext again */ \
  13983. + } \
  13984. + while ( 0 )
  13985. +
  13986. +#define unput(c) yyunput( c, (yytext_ptr) )
  13987. +
  13988. +#ifndef YY_TYPEDEF_YY_SIZE_T
  13989. +#define YY_TYPEDEF_YY_SIZE_T
  13990. +typedef size_t yy_size_t;
  13991. +#endif
  13992. +
  13993. +#ifndef YY_STRUCT_YY_BUFFER_STATE
  13994. +#define YY_STRUCT_YY_BUFFER_STATE
  13995. +struct yy_buffer_state
  13996. + {
  13997. + FILE *yy_input_file;
  13998. +
  13999. + char *yy_ch_buf; /* input buffer */
  14000. + char *yy_buf_pos; /* current position in input buffer */
  14001. +
  14002. + /* Size of input buffer in bytes, not including room for EOB
  14003. + * characters.
  14004. + */
  14005. + yy_size_t yy_buf_size;
  14006. +
  14007. + /* Number of characters read into yy_ch_buf, not including EOB
  14008. + * characters.
  14009. + */
  14010. + int yy_n_chars;
  14011. +
  14012. + /* Whether we "own" the buffer - i.e., we know we created it,
  14013. + * and can realloc() it to grow it, and should free() it to
  14014. + * delete it.
  14015. + */
  14016. + int yy_is_our_buffer;
  14017. +
  14018. + /* Whether this is an "interactive" input source; if so, and
  14019. + * if we're using stdio for input, then we want to use getc()
  14020. + * instead of fread(), to make sure we stop fetching input after
  14021. + * each newline.
  14022. + */
  14023. + int yy_is_interactive;
  14024. +
  14025. + /* Whether we're considered to be at the beginning of a line.
  14026. + * If so, '^' rules will be active on the next match, otherwise
  14027. + * not.
  14028. + */
  14029. + int yy_at_bol;
  14030. +
  14031. + int yy_bs_lineno; /**< The line count. */
  14032. + int yy_bs_column; /**< The column count. */
  14033. +
  14034. + /* Whether to try to fill the input buffer when we reach the
  14035. + * end of it.
  14036. + */
  14037. + int yy_fill_buffer;
  14038. +
  14039. + int yy_buffer_status;
  14040. +
  14041. +#define YY_BUFFER_NEW 0
  14042. +#define YY_BUFFER_NORMAL 1
  14043. + /* When an EOF's been seen but there's still some text to process
  14044. + * then we mark the buffer as YY_EOF_PENDING, to indicate that we
  14045. + * shouldn't try reading from the input source any more. We might
  14046. + * still have a bunch of tokens to match, though, because of
  14047. + * possible backing-up.
  14048. + *
  14049. + * When we actually see the EOF, we change the status to "new"
  14050. + * (via zconfrestart()), so that the user can continue scanning by
  14051. + * just pointing zconfin at a new input file.
  14052. + */
  14053. +#define YY_BUFFER_EOF_PENDING 2
  14054. +
  14055. + };
  14056. +#endif /* !YY_STRUCT_YY_BUFFER_STATE */
  14057. +
  14058. +/* Stack of input buffers. */
  14059. +static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
  14060. +static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
  14061. +static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
  14062. +
  14063. +/* We provide macros for accessing buffer states in case in the
  14064. + * future we want to put the buffer states in a more general
  14065. + * "scanner state".
  14066. + *
  14067. + * Returns the top of the stack, or NULL.
  14068. + */
  14069. +#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  14070. + ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  14071. + : NULL)
  14072. +
  14073. +/* Same as previous macro, but useful when we know that the buffer stack is not
  14074. + * NULL or when we need an lvalue. For internal use only.
  14075. + */
  14076. +#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  14077. +
  14078. +/* yy_hold_char holds the character lost when zconftext is formed. */
  14079. +static char yy_hold_char;
  14080. +static int yy_n_chars; /* number of characters read into yy_ch_buf */
  14081. +int zconfleng;
  14082. +
  14083. +/* Points to current character in buffer. */
  14084. +static char *yy_c_buf_p = (char *) 0;
  14085. +static int yy_init = 0; /* whether we need to initialize */
  14086. +static int yy_start = 0; /* start state number */
  14087. +
  14088. +/* Flag which is used to allow zconfwrap()'s to do buffer switches
  14089. + * instead of setting up a fresh zconfin. A bit of a hack ...
  14090. + */
  14091. +static int yy_did_buffer_switch_on_eof;
  14092. +
  14093. +void zconfrestart (FILE *input_file );
  14094. +void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer );
  14095. +YY_BUFFER_STATE zconf_create_buffer (FILE *file,int size );
  14096. +void zconf_delete_buffer (YY_BUFFER_STATE b );
  14097. +void zconf_flush_buffer (YY_BUFFER_STATE b );
  14098. +void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer );
  14099. +void zconfpop_buffer_state (void );
  14100. +
  14101. +static void zconfensure_buffer_stack (void );
  14102. +static void zconf_load_buffer_state (void );
  14103. +static void zconf_init_buffer (YY_BUFFER_STATE b,FILE *file );
  14104. +
  14105. +#define YY_FLUSH_BUFFER zconf_flush_buffer(YY_CURRENT_BUFFER )
  14106. +
  14107. +YY_BUFFER_STATE zconf_scan_buffer (char *base,yy_size_t size );
  14108. +YY_BUFFER_STATE zconf_scan_string (yyconst char *yy_str );
  14109. +YY_BUFFER_STATE zconf_scan_bytes (yyconst char *bytes,int len );
  14110. +
  14111. +void *zconfalloc (yy_size_t );
  14112. +void *zconfrealloc (void *,yy_size_t );
  14113. +void zconffree (void * );
  14114. +
  14115. +#define yy_new_buffer zconf_create_buffer
  14116. +
  14117. +#define yy_set_interactive(is_interactive) \
  14118. + { \
  14119. + if ( ! YY_CURRENT_BUFFER ){ \
  14120. + zconfensure_buffer_stack (); \
  14121. + YY_CURRENT_BUFFER_LVALUE = \
  14122. + zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
  14123. + } \
  14124. + YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
  14125. + }
  14126. +
  14127. +#define yy_set_bol(at_bol) \
  14128. + { \
  14129. + if ( ! YY_CURRENT_BUFFER ){\
  14130. + zconfensure_buffer_stack (); \
  14131. + YY_CURRENT_BUFFER_LVALUE = \
  14132. + zconf_create_buffer(zconfin,YY_BUF_SIZE ); \
  14133. + } \
  14134. + YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
  14135. + }
  14136. +
  14137. +#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
  14138. +
  14139. +/* Begin user sect3 */
  14140. +
  14141. +#define zconfwrap(n) 1
  14142. +#define YY_SKIP_YYWRAP
  14143. +
  14144. +typedef unsigned char YY_CHAR;
  14145. +
  14146. +FILE *zconfin = (FILE *) 0, *zconfout = (FILE *) 0;
  14147. +
  14148. +typedef int yy_state_type;
  14149. +
  14150. +extern int zconflineno;
  14151. +
  14152. +int zconflineno = 1;
  14153. +
  14154. +extern char *zconftext;
  14155. +#define yytext_ptr zconftext
  14156. +static yyconst flex_int16_t yy_nxt[][17] =
  14157. + {
  14158. + {
  14159. + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  14160. + 0, 0, 0, 0, 0, 0, 0
  14161. + },
  14162. +
  14163. + {
  14164. + 11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
  14165. + 12, 12, 12, 12, 12, 12, 12
  14166. + },
  14167. +
  14168. + {
  14169. + 11, 12, 13, 14, 12, 12, 15, 12, 12, 12,
  14170. + 12, 12, 12, 12, 12, 12, 12
  14171. + },
  14172. +
  14173. + {
  14174. + 11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
  14175. + 16, 16, 16, 18, 16, 16, 16
  14176. + },
  14177. +
  14178. + {
  14179. + 11, 16, 16, 17, 16, 16, 16, 16, 16, 16,
  14180. + 16, 16, 16, 18, 16, 16, 16
  14181. +
  14182. + },
  14183. +
  14184. + {
  14185. + 11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
  14186. + 19, 19, 19, 19, 19, 19, 19
  14187. + },
  14188. +
  14189. + {
  14190. + 11, 19, 20, 21, 19, 19, 19, 19, 19, 19,
  14191. + 19, 19, 19, 19, 19, 19, 19
  14192. + },
  14193. +
  14194. + {
  14195. + 11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
  14196. + 22, 22, 22, 22, 22, 25, 22
  14197. + },
  14198. +
  14199. + {
  14200. + 11, 22, 22, 23, 22, 24, 22, 22, 24, 22,
  14201. + 22, 22, 22, 22, 22, 25, 22
  14202. + },
  14203. +
  14204. + {
  14205. + 11, 26, 26, 27, 28, 29, 30, 31, 29, 32,
  14206. + 33, 34, 35, 35, 36, 37, 38
  14207. +
  14208. + },
  14209. +
  14210. + {
  14211. + 11, 26, 26, 27, 28, 29, 30, 31, 29, 32,
  14212. + 33, 34, 35, 35, 36, 37, 38
  14213. + },
  14214. +
  14215. + {
  14216. + -11, -11, -11, -11, -11, -11, -11, -11, -11, -11,
  14217. + -11, -11, -11, -11, -11, -11, -11
  14218. + },
  14219. +
  14220. + {
  14221. + 11, -12, -12, -12, -12, -12, -12, -12, -12, -12,
  14222. + -12, -12, -12, -12, -12, -12, -12
  14223. + },
  14224. +
  14225. + {
  14226. + 11, -13, 39, 40, -13, -13, 41, -13, -13, -13,
  14227. + -13, -13, -13, -13, -13, -13, -13
  14228. + },
  14229. +
  14230. + {
  14231. + 11, -14, -14, -14, -14, -14, -14, -14, -14, -14,
  14232. + -14, -14, -14, -14, -14, -14, -14
  14233. +
  14234. + },
  14235. +
  14236. + {
  14237. + 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
  14238. + 42, 42, 42, 42, 42, 42, 42
  14239. + },
  14240. +
  14241. + {
  14242. + 11, -16, -16, -16, -16, -16, -16, -16, -16, -16,
  14243. + -16, -16, -16, -16, -16, -16, -16
  14244. + },
  14245. +
  14246. + {
  14247. + 11, -17, -17, -17, -17, -17, -17, -17, -17, -17,
  14248. + -17, -17, -17, -17, -17, -17, -17
  14249. + },
  14250. +
  14251. + {
  14252. + 11, -18, -18, -18, -18, -18, -18, -18, -18, -18,
  14253. + -18, -18, -18, 44, -18, -18, -18
  14254. + },
  14255. +
  14256. + {
  14257. + 11, 45, 45, -19, 45, 45, 45, 45, 45, 45,
  14258. + 45, 45, 45, 45, 45, 45, 45
  14259. +
  14260. + },
  14261. +
  14262. + {
  14263. + 11, -20, 46, 47, -20, -20, -20, -20, -20, -20,
  14264. + -20, -20, -20, -20, -20, -20, -20
  14265. + },
  14266. +
  14267. + {
  14268. + 11, 48, -21, -21, 48, 48, 48, 48, 48, 48,
  14269. + 48, 48, 48, 48, 48, 48, 48
  14270. + },
  14271. +
  14272. + {
  14273. + 11, 49, 49, 50, 49, -22, 49, 49, -22, 49,
  14274. + 49, 49, 49, 49, 49, -22, 49
  14275. + },
  14276. +
  14277. + {
  14278. + 11, -23, -23, -23, -23, -23, -23, -23, -23, -23,
  14279. + -23, -23, -23, -23, -23, -23, -23
  14280. + },
  14281. +
  14282. + {
  14283. + 11, -24, -24, -24, -24, -24, -24, -24, -24, -24,
  14284. + -24, -24, -24, -24, -24, -24, -24
  14285. +
  14286. + },
  14287. +
  14288. + {
  14289. + 11, 51, 51, 52, 51, 51, 51, 51, 51, 51,
  14290. + 51, 51, 51, 51, 51, 51, 51
  14291. + },
  14292. +
  14293. + {
  14294. + 11, -26, -26, -26, -26, -26, -26, -26, -26, -26,
  14295. + -26, -26, -26, -26, -26, -26, -26
  14296. + },
  14297. +
  14298. + {
  14299. + 11, -27, -27, -27, -27, -27, -27, -27, -27, -27,
  14300. + -27, -27, -27, -27, -27, -27, -27
  14301. + },
  14302. +
  14303. + {
  14304. + 11, -28, -28, -28, -28, -28, -28, -28, -28, -28,
  14305. + -28, -28, -28, -28, 53, -28, -28
  14306. + },
  14307. +
  14308. + {
  14309. + 11, -29, -29, -29, -29, -29, -29, -29, -29, -29,
  14310. + -29, -29, -29, -29, -29, -29, -29
  14311. +
  14312. + },
  14313. +
  14314. + {
  14315. + 11, 54, 54, -30, 54, 54, 54, 54, 54, 54,
  14316. + 54, 54, 54, 54, 54, 54, 54
  14317. + },
  14318. +
  14319. + {
  14320. + 11, -31, -31, -31, -31, -31, -31, 55, -31, -31,
  14321. + -31, -31, -31, -31, -31, -31, -31
  14322. + },
  14323. +
  14324. + {
  14325. + 11, -32, -32, -32, -32, -32, -32, -32, -32, -32,
  14326. + -32, -32, -32, -32, -32, -32, -32
  14327. + },
  14328. +
  14329. + {
  14330. + 11, -33, -33, -33, -33, -33, -33, -33, -33, -33,
  14331. + -33, -33, -33, -33, -33, -33, -33
  14332. + },
  14333. +
  14334. + {
  14335. + 11, -34, -34, -34, -34, -34, -34, -34, -34, -34,
  14336. + -34, 56, 57, 57, -34, -34, -34
  14337. +
  14338. + },
  14339. +
  14340. + {
  14341. + 11, -35, -35, -35, -35, -35, -35, -35, -35, -35,
  14342. + -35, 57, 57, 57, -35, -35, -35
  14343. + },
  14344. +
  14345. + {
  14346. + 11, -36, -36, -36, -36, -36, -36, -36, -36, -36,
  14347. + -36, -36, -36, -36, -36, -36, -36
  14348. + },
  14349. +
  14350. + {
  14351. + 11, -37, -37, 58, -37, -37, -37, -37, -37, -37,
  14352. + -37, -37, -37, -37, -37, -37, -37
  14353. + },
  14354. +
  14355. + {
  14356. + 11, -38, -38, -38, -38, -38, -38, -38, -38, -38,
  14357. + -38, -38, -38, -38, -38, -38, 59
  14358. + },
  14359. +
  14360. + {
  14361. + 11, -39, 39, 40, -39, -39, 41, -39, -39, -39,
  14362. + -39, -39, -39, -39, -39, -39, -39
  14363. +
  14364. + },
  14365. +
  14366. + {
  14367. + 11, -40, -40, -40, -40, -40, -40, -40, -40, -40,
  14368. + -40, -40, -40, -40, -40, -40, -40
  14369. + },
  14370. +
  14371. + {
  14372. + 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
  14373. + 42, 42, 42, 42, 42, 42, 42
  14374. + },
  14375. +
  14376. + {
  14377. + 11, 42, 42, 43, 42, 42, 42, 42, 42, 42,
  14378. + 42, 42, 42, 42, 42, 42, 42
  14379. + },
  14380. +
  14381. + {
  14382. + 11, -43, -43, -43, -43, -43, -43, -43, -43, -43,
  14383. + -43, -43, -43, -43, -43, -43, -43
  14384. + },
  14385. +
  14386. + {
  14387. + 11, -44, -44, -44, -44, -44, -44, -44, -44, -44,
  14388. + -44, -44, -44, 44, -44, -44, -44
  14389. +
  14390. + },
  14391. +
  14392. + {
  14393. + 11, 45, 45, -45, 45, 45, 45, 45, 45, 45,
  14394. + 45, 45, 45, 45, 45, 45, 45
  14395. + },
  14396. +
  14397. + {
  14398. + 11, -46, 46, 47, -46, -46, -46, -46, -46, -46,
  14399. + -46, -46, -46, -46, -46, -46, -46
  14400. + },
  14401. +
  14402. + {
  14403. + 11, 48, -47, -47, 48, 48, 48, 48, 48, 48,
  14404. + 48, 48, 48, 48, 48, 48, 48
  14405. + },
  14406. +
  14407. + {
  14408. + 11, -48, -48, -48, -48, -48, -48, -48, -48, -48,
  14409. + -48, -48, -48, -48, -48, -48, -48
  14410. + },
  14411. +
  14412. + {
  14413. + 11, 49, 49, 50, 49, -49, 49, 49, -49, 49,
  14414. + 49, 49, 49, 49, 49, -49, 49
  14415. +
  14416. + },
  14417. +
  14418. + {
  14419. + 11, -50, -50, -50, -50, -50, -50, -50, -50, -50,
  14420. + -50, -50, -50, -50, -50, -50, -50
  14421. + },
  14422. +
  14423. + {
  14424. + 11, -51, -51, 52, -51, -51, -51, -51, -51, -51,
  14425. + -51, -51, -51, -51, -51, -51, -51
  14426. + },
  14427. +
  14428. + {
  14429. + 11, -52, -52, -52, -52, -52, -52, -52, -52, -52,
  14430. + -52, -52, -52, -52, -52, -52, -52
  14431. + },
  14432. +
  14433. + {
  14434. + 11, -53, -53, -53, -53, -53, -53, -53, -53, -53,
  14435. + -53, -53, -53, -53, -53, -53, -53
  14436. + },
  14437. +
  14438. + {
  14439. + 11, 54, 54, -54, 54, 54, 54, 54, 54, 54,
  14440. + 54, 54, 54, 54, 54, 54, 54
  14441. +
  14442. + },
  14443. +
  14444. + {
  14445. + 11, -55, -55, -55, -55, -55, -55, -55, -55, -55,
  14446. + -55, -55, -55, -55, -55, -55, -55
  14447. + },
  14448. +
  14449. + {
  14450. + 11, -56, -56, -56, -56, -56, -56, -56, -56, -56,
  14451. + -56, 60, 57, 57, -56, -56, -56
  14452. + },
  14453. +
  14454. + {
  14455. + 11, -57, -57, -57, -57, -57, -57, -57, -57, -57,
  14456. + -57, 57, 57, 57, -57, -57, -57
  14457. + },
  14458. +
  14459. + {
  14460. + 11, -58, -58, -58, -58, -58, -58, -58, -58, -58,
  14461. + -58, -58, -58, -58, -58, -58, -58
  14462. + },
  14463. +
  14464. + {
  14465. + 11, -59, -59, -59, -59, -59, -59, -59, -59, -59,
  14466. + -59, -59, -59, -59, -59, -59, -59
  14467. +
  14468. + },
  14469. +
  14470. + {
  14471. + 11, -60, -60, -60, -60, -60, -60, -60, -60, -60,
  14472. + -60, 57, 57, 57, -60, -60, -60
  14473. + },
  14474. +
  14475. + } ;
  14476. +
  14477. +static yy_state_type yy_get_previous_state (void );
  14478. +static yy_state_type yy_try_NUL_trans (yy_state_type current_state );
  14479. +static int yy_get_next_buffer (void );
  14480. +static void yy_fatal_error (yyconst char msg[] );
  14481. +
  14482. +/* Done after the current pattern has been matched and before the
  14483. + * corresponding action - sets up zconftext.
  14484. + */
  14485. +#define YY_DO_BEFORE_ACTION \
  14486. + (yytext_ptr) = yy_bp; \
  14487. + zconfleng = (size_t) (yy_cp - yy_bp); \
  14488. + (yy_hold_char) = *yy_cp; \
  14489. + *yy_cp = '\0'; \
  14490. + (yy_c_buf_p) = yy_cp;
  14491. +
  14492. +#define YY_NUM_RULES 33
  14493. +#define YY_END_OF_BUFFER 34
  14494. +/* This struct is not used in this scanner,
  14495. + but its presence is necessary. */
  14496. +struct yy_trans_info
  14497. + {
  14498. + flex_int32_t yy_verify;
  14499. + flex_int32_t yy_nxt;
  14500. + };
  14501. +static yyconst flex_int16_t yy_accept[61] =
  14502. + { 0,
  14503. + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  14504. + 34, 5, 4, 2, 3, 7, 8, 6, 32, 29,
  14505. + 31, 24, 28, 27, 26, 22, 17, 13, 16, 20,
  14506. + 22, 11, 12, 19, 19, 14, 22, 22, 4, 2,
  14507. + 3, 3, 1, 6, 32, 29, 31, 30, 24, 23,
  14508. + 26, 25, 15, 20, 9, 19, 19, 21, 10, 18
  14509. + } ;
  14510. +
  14511. +static yyconst flex_int32_t yy_ec[256] =
  14512. + { 0,
  14513. + 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
  14514. + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  14515. + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  14516. + 1, 2, 4, 5, 6, 1, 1, 7, 8, 9,
  14517. + 10, 1, 1, 1, 11, 12, 12, 13, 13, 13,
  14518. + 13, 13, 13, 13, 13, 13, 13, 1, 1, 1,
  14519. + 14, 1, 1, 1, 13, 13, 13, 13, 13, 13,
  14520. + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
  14521. + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
  14522. + 1, 15, 1, 1, 13, 1, 13, 13, 13, 13,
  14523. +
  14524. + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
  14525. + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13,
  14526. + 13, 13, 1, 16, 1, 1, 1, 1, 1, 1,
  14527. + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  14528. + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  14529. + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  14530. + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  14531. + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  14532. + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  14533. + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  14534. +
  14535. + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  14536. + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  14537. + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  14538. + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  14539. + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
  14540. + 1, 1, 1, 1, 1
  14541. + } ;
  14542. +
  14543. +extern int zconf_flex_debug;
  14544. +int zconf_flex_debug = 0;
  14545. +
  14546. +/* The intent behind this definition is that it'll catch
  14547. + * any uses of REJECT which flex missed.
  14548. + */
  14549. +#define REJECT reject_used_but_not_detected
  14550. +#define yymore() yymore_used_but_not_detected
  14551. +#define YY_MORE_ADJ 0
  14552. +#define YY_RESTORE_YY_MORE_OFFSET
  14553. +char *zconftext;
  14554. +#define YY_NO_INPUT 1
  14555. +
  14556. +/*
  14557. + * Copyright (C) 2002 Roman Zippel <zippel@linux-m68k.org>
  14558. + * Released under the terms of the GNU GPL v2.0.
  14559. + */
  14560. +
  14561. +#include <limits.h>
  14562. +#include <stdio.h>
  14563. +#include <stdlib.h>
  14564. +#include <string.h>
  14565. +#include <unistd.h>
  14566. +
  14567. +#include "lkc.h"
  14568. +
  14569. +#define START_STRSIZE 16
  14570. +
  14571. +static struct {
  14572. + struct file *file;
  14573. + int lineno;
  14574. +} current_pos;
  14575. +
  14576. +static char *text;
  14577. +static int text_size, text_asize;
  14578. +
  14579. +struct buffer {
  14580. + struct buffer *parent;
  14581. + YY_BUFFER_STATE state;
  14582. +};
  14583. +
  14584. +struct buffer *current_buf;
  14585. +
  14586. +static int last_ts, first_ts;
  14587. +
  14588. +static void zconf_endhelp(void);
  14589. +static void zconf_endfile(void);
  14590. +
  14591. +static void new_string(void)
  14592. +{
  14593. + text = xmalloc(START_STRSIZE);
  14594. + text_asize = START_STRSIZE;
  14595. + text_size = 0;
  14596. + *text = 0;
  14597. +}
  14598. +
  14599. +static void append_string(const char *str, int size)
  14600. +{
  14601. + int new_size = text_size + size + 1;
  14602. + if (new_size > text_asize) {
  14603. + new_size += START_STRSIZE - 1;
  14604. + new_size &= -START_STRSIZE;
  14605. + text = realloc(text, new_size);
  14606. + text_asize = new_size;
  14607. + }
  14608. + memcpy(text + text_size, str, size);
  14609. + text_size += size;
  14610. + text[text_size] = 0;
  14611. +}
  14612. +
  14613. +static void alloc_string(const char *str, int size)
  14614. +{
  14615. + text = xmalloc(size + 1);
  14616. + memcpy(text, str, size);
  14617. + text[size] = 0;
  14618. +}
  14619. +
  14620. +#define INITIAL 0
  14621. +#define COMMAND 1
  14622. +#define HELP 2
  14623. +#define STRING 3
  14624. +#define PARAM 4
  14625. +
  14626. +#ifndef YY_NO_UNISTD_H
  14627. +/* Special case for "unistd.h", since it is non-ANSI. We include it way
  14628. + * down here because we want the user's section 1 to have been scanned first.
  14629. + * The user has a chance to override it with an option.
  14630. + */
  14631. +#include <unistd.h>
  14632. +#endif
  14633. +
  14634. +#ifndef YY_EXTRA_TYPE
  14635. +#define YY_EXTRA_TYPE void *
  14636. +#endif
  14637. +
  14638. +static int yy_init_globals (void );
  14639. +
  14640. +/* Accessor methods to globals.
  14641. + These are made visible to non-reentrant scanners for convenience. */
  14642. +
  14643. +int zconflex_destroy (void );
  14644. +
  14645. +int zconfget_debug (void );
  14646. +
  14647. +void zconfset_debug (int debug_flag );
  14648. +
  14649. +YY_EXTRA_TYPE zconfget_extra (void );
  14650. +
  14651. +void zconfset_extra (YY_EXTRA_TYPE user_defined );
  14652. +
  14653. +FILE *zconfget_in (void );
  14654. +
  14655. +void zconfset_in (FILE * in_str );
  14656. +
  14657. +FILE *zconfget_out (void );
  14658. +
  14659. +void zconfset_out (FILE * out_str );
  14660. +
  14661. +int zconfget_leng (void );
  14662. +
  14663. +char *zconfget_text (void );
  14664. +
  14665. +int zconfget_lineno (void );
  14666. +
  14667. +void zconfset_lineno (int line_number );
  14668. +
  14669. +/* Macros after this point can all be overridden by user definitions in
  14670. + * section 1.
  14671. + */
  14672. +
  14673. +#ifndef YY_SKIP_YYWRAP
  14674. +#ifdef __cplusplus
  14675. +extern "C" int zconfwrap (void );
  14676. +#else
  14677. +extern int zconfwrap (void );
  14678. +#endif
  14679. +#endif
  14680. +
  14681. + static void yyunput (int c,char *buf_ptr );
  14682. +
  14683. +#ifndef yytext_ptr
  14684. +static void yy_flex_strncpy (char *,yyconst char *,int );
  14685. +#endif
  14686. +
  14687. +#ifdef YY_NEED_STRLEN
  14688. +static int yy_flex_strlen (yyconst char * );
  14689. +#endif
  14690. +
  14691. +#ifndef YY_NO_INPUT
  14692. +
  14693. +#ifdef __cplusplus
  14694. +static int yyinput (void );
  14695. +#else
  14696. +static int input (void );
  14697. +#endif
  14698. +
  14699. +#endif
  14700. +
  14701. +/* Amount of stuff to slurp up with each read. */
  14702. +#ifndef YY_READ_BUF_SIZE
  14703. +#define YY_READ_BUF_SIZE 8192
  14704. +#endif
  14705. +
  14706. +/* Copy whatever the last rule matched to the standard output. */
  14707. +#ifndef ECHO
  14708. +/* This used to be an fputs(), but since the string might contain NUL's,
  14709. + * we now use fwrite().
  14710. + */
  14711. +#define ECHO do { if (fwrite( zconftext, zconfleng, 1, zconfout )) {} } while (0)
  14712. +#endif
  14713. +
  14714. +/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
  14715. + * is returned in "result".
  14716. + */
  14717. +#ifndef YY_INPUT
  14718. +#define YY_INPUT(buf,result,max_size) \
  14719. + errno=0; \
  14720. + while ( (result = read( fileno(zconfin), (char *) buf, max_size )) < 0 ) \
  14721. + { \
  14722. + if( errno != EINTR) \
  14723. + { \
  14724. + YY_FATAL_ERROR( "input in flex scanner failed" ); \
  14725. + break; \
  14726. + } \
  14727. + errno=0; \
  14728. + clearerr(zconfin); \
  14729. + }\
  14730. +\
  14731. +
  14732. +#endif
  14733. +
  14734. +/* No semi-colon after return; correct usage is to write "yyterminate();" -
  14735. + * we don't want an extra ';' after the "return" because that will cause
  14736. + * some compilers to complain about unreachable statements.
  14737. + */
  14738. +#ifndef yyterminate
  14739. +#define yyterminate() return YY_NULL
  14740. +#endif
  14741. +
  14742. +/* Number of entries by which start-condition stack grows. */
  14743. +#ifndef YY_START_STACK_INCR
  14744. +#define YY_START_STACK_INCR 25
  14745. +#endif
  14746. +
  14747. +/* Report a fatal error. */
  14748. +#ifndef YY_FATAL_ERROR
  14749. +#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  14750. +#endif
  14751. +
  14752. +/* end tables serialization structures and prototypes */
  14753. +
  14754. +/* Default declaration of generated scanner - a define so the user can
  14755. + * easily add parameters.
  14756. + */
  14757. +#ifndef YY_DECL
  14758. +#define YY_DECL_IS_OURS 1
  14759. +
  14760. +extern int zconflex (void);
  14761. +
  14762. +#define YY_DECL int zconflex (void)
  14763. +#endif /* !YY_DECL */
  14764. +
  14765. +/* Code executed at the beginning of each rule, after zconftext and zconfleng
  14766. + * have been set up.
  14767. + */
  14768. +#ifndef YY_USER_ACTION
  14769. +#define YY_USER_ACTION
  14770. +#endif
  14771. +
  14772. +/* Code executed at the end of each rule. */
  14773. +#ifndef YY_BREAK
  14774. +#define YY_BREAK break;
  14775. +#endif
  14776. +
  14777. +#define YY_RULE_SETUP \
  14778. + YY_USER_ACTION
  14779. +
  14780. +/** The main scanner function which does all the work.
  14781. + */
  14782. +YY_DECL
  14783. +{
  14784. + register yy_state_type yy_current_state;
  14785. + register char *yy_cp, *yy_bp;
  14786. + register int yy_act;
  14787. +
  14788. + int str = 0;
  14789. + int ts, i;
  14790. +
  14791. + if ( !(yy_init) )
  14792. + {
  14793. + (yy_init) = 1;
  14794. +
  14795. +#ifdef YY_USER_INIT
  14796. + YY_USER_INIT;
  14797. +#endif
  14798. +
  14799. + if ( ! (yy_start) )
  14800. + (yy_start) = 1; /* first start state */
  14801. +
  14802. + if ( ! zconfin )
  14803. + zconfin = stdin;
  14804. +
  14805. + if ( ! zconfout )
  14806. + zconfout = stdout;
  14807. +
  14808. + if ( ! YY_CURRENT_BUFFER ) {
  14809. + zconfensure_buffer_stack ();
  14810. + YY_CURRENT_BUFFER_LVALUE =
  14811. + zconf_create_buffer(zconfin,YY_BUF_SIZE );
  14812. + }
  14813. +
  14814. + zconf_load_buffer_state( );
  14815. + }
  14816. +
  14817. + while ( 1 ) /* loops until end-of-file is reached */
  14818. + {
  14819. + yy_cp = (yy_c_buf_p);
  14820. +
  14821. + /* Support of zconftext. */
  14822. + *yy_cp = (yy_hold_char);
  14823. +
  14824. + /* yy_bp points to the position in yy_ch_buf of the start of
  14825. + * the current run.
  14826. + */
  14827. + yy_bp = yy_cp;
  14828. +
  14829. + yy_current_state = (yy_start);
  14830. +yy_match:
  14831. + while ( (yy_current_state = yy_nxt[yy_current_state][ yy_ec[YY_SC_TO_UI(*yy_cp)] ]) > 0 )
  14832. + ++yy_cp;
  14833. +
  14834. + yy_current_state = -yy_current_state;
  14835. +
  14836. +yy_find_action:
  14837. + yy_act = yy_accept[yy_current_state];
  14838. +
  14839. + YY_DO_BEFORE_ACTION;
  14840. +
  14841. +do_action: /* This label is used only to access EOF actions. */
  14842. +
  14843. + switch ( yy_act )
  14844. + { /* beginning of action switch */
  14845. +case 1:
  14846. +/* rule 1 can match eol */
  14847. +case 2:
  14848. +/* rule 2 can match eol */
  14849. +YY_RULE_SETUP
  14850. +{
  14851. + current_file->lineno++;
  14852. + return T_EOL;
  14853. +}
  14854. + YY_BREAK
  14855. +case 3:
  14856. +YY_RULE_SETUP
  14857. +
  14858. + YY_BREAK
  14859. +case 4:
  14860. +YY_RULE_SETUP
  14861. +{
  14862. + BEGIN(COMMAND);
  14863. +}
  14864. + YY_BREAK
  14865. +case 5:
  14866. +YY_RULE_SETUP
  14867. +{
  14868. + unput(zconftext[0]);
  14869. + BEGIN(COMMAND);
  14870. +}
  14871. + YY_BREAK
  14872. +
  14873. +case 6:
  14874. +YY_RULE_SETUP
  14875. +{
  14876. + const struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
  14877. + BEGIN(PARAM);
  14878. + current_pos.file = current_file;
  14879. + current_pos.lineno = current_file->lineno;
  14880. + if (id && id->flags & TF_COMMAND) {
  14881. + zconflval.id = id;
  14882. + return id->token;
  14883. + }
  14884. + alloc_string(zconftext, zconfleng);
  14885. + zconflval.string = text;
  14886. + return T_WORD;
  14887. + }
  14888. + YY_BREAK
  14889. +case 7:
  14890. +YY_RULE_SETUP
  14891. +
  14892. + YY_BREAK
  14893. +case 8:
  14894. +/* rule 8 can match eol */
  14895. +YY_RULE_SETUP
  14896. +{
  14897. + BEGIN(INITIAL);
  14898. + current_file->lineno++;
  14899. + return T_EOL;
  14900. + }
  14901. + YY_BREAK
  14902. +
  14903. +case 9:
  14904. +YY_RULE_SETUP
  14905. +return T_AND;
  14906. + YY_BREAK
  14907. +case 10:
  14908. +YY_RULE_SETUP
  14909. +return T_OR;
  14910. + YY_BREAK
  14911. +case 11:
  14912. +YY_RULE_SETUP
  14913. +return T_OPEN_PAREN;
  14914. + YY_BREAK
  14915. +case 12:
  14916. +YY_RULE_SETUP
  14917. +return T_CLOSE_PAREN;
  14918. + YY_BREAK
  14919. +case 13:
  14920. +YY_RULE_SETUP
  14921. +return T_NOT;
  14922. + YY_BREAK
  14923. +case 14:
  14924. +YY_RULE_SETUP
  14925. +return T_EQUAL;
  14926. + YY_BREAK
  14927. +case 15:
  14928. +YY_RULE_SETUP
  14929. +return T_UNEQUAL;
  14930. + YY_BREAK
  14931. +case 16:
  14932. +YY_RULE_SETUP
  14933. +{
  14934. + str = zconftext[0];
  14935. + new_string();
  14936. + BEGIN(STRING);
  14937. + }
  14938. + YY_BREAK
  14939. +case 17:
  14940. +/* rule 17 can match eol */
  14941. +YY_RULE_SETUP
  14942. +BEGIN(INITIAL); current_file->lineno++; return T_EOL;
  14943. + YY_BREAK
  14944. +case 18:
  14945. +YY_RULE_SETUP
  14946. +/* ignore */
  14947. + YY_BREAK
  14948. +case 19:
  14949. +YY_RULE_SETUP
  14950. +{
  14951. + const struct kconf_id *id = kconf_id_lookup(zconftext, zconfleng);
  14952. + if (id && id->flags & TF_PARAM) {
  14953. + zconflval.id = id;
  14954. + return id->token;
  14955. + }
  14956. + alloc_string(zconftext, zconfleng);
  14957. + zconflval.string = text;
  14958. + return T_WORD;
  14959. + }
  14960. + YY_BREAK
  14961. +case 20:
  14962. +YY_RULE_SETUP
  14963. +/* comment */
  14964. + YY_BREAK
  14965. +case 21:
  14966. +/* rule 21 can match eol */
  14967. +YY_RULE_SETUP
  14968. +current_file->lineno++;
  14969. + YY_BREAK
  14970. +case 22:
  14971. +YY_RULE_SETUP
  14972. +
  14973. + YY_BREAK
  14974. +case YY_STATE_EOF(PARAM):
  14975. +{
  14976. + BEGIN(INITIAL);
  14977. + }
  14978. + YY_BREAK
  14979. +
  14980. +case 23:
  14981. +/* rule 23 can match eol */
  14982. +*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
  14983. +(yy_c_buf_p) = yy_cp -= 1;
  14984. +YY_DO_BEFORE_ACTION; /* set up zconftext again */
  14985. +YY_RULE_SETUP
  14986. +{
  14987. + append_string(zconftext, zconfleng);
  14988. + zconflval.string = text;
  14989. + return T_WORD_QUOTE;
  14990. + }
  14991. + YY_BREAK
  14992. +case 24:
  14993. +YY_RULE_SETUP
  14994. +{
  14995. + append_string(zconftext, zconfleng);
  14996. + }
  14997. + YY_BREAK
  14998. +case 25:
  14999. +/* rule 25 can match eol */
  15000. +*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
  15001. +(yy_c_buf_p) = yy_cp -= 1;
  15002. +YY_DO_BEFORE_ACTION; /* set up zconftext again */
  15003. +YY_RULE_SETUP
  15004. +{
  15005. + append_string(zconftext + 1, zconfleng - 1);
  15006. + zconflval.string = text;
  15007. + return T_WORD_QUOTE;
  15008. + }
  15009. + YY_BREAK
  15010. +case 26:
  15011. +YY_RULE_SETUP
  15012. +{
  15013. + append_string(zconftext + 1, zconfleng - 1);
  15014. + }
  15015. + YY_BREAK
  15016. +case 27:
  15017. +YY_RULE_SETUP
  15018. +{
  15019. + if (str == zconftext[0]) {
  15020. + BEGIN(PARAM);
  15021. + zconflval.string = text;
  15022. + return T_WORD_QUOTE;
  15023. + } else
  15024. + append_string(zconftext, 1);
  15025. + }
  15026. + YY_BREAK
  15027. +case 28:
  15028. +/* rule 28 can match eol */
  15029. +YY_RULE_SETUP
  15030. +{
  15031. + printf("%s:%d:warning: multi-line strings not supported\n", zconf_curname(), zconf_lineno());
  15032. + current_file->lineno++;
  15033. + BEGIN(INITIAL);
  15034. + return T_EOL;
  15035. + }
  15036. + YY_BREAK
  15037. +case YY_STATE_EOF(STRING):
  15038. +{
  15039. + BEGIN(INITIAL);
  15040. + }
  15041. + YY_BREAK
  15042. +
  15043. +case 29:
  15044. +YY_RULE_SETUP
  15045. +{
  15046. + ts = 0;
  15047. + for (i = 0; i < zconfleng; i++) {
  15048. + if (zconftext[i] == '\t')
  15049. + ts = (ts & ~7) + 8;
  15050. + else
  15051. + ts++;
  15052. + }
  15053. + last_ts = ts;
  15054. + if (first_ts) {
  15055. + if (ts < first_ts) {
  15056. + zconf_endhelp();
  15057. + return T_HELPTEXT;
  15058. + }
  15059. + ts -= first_ts;
  15060. + while (ts > 8) {
  15061. + append_string(" ", 8);
  15062. + ts -= 8;
  15063. + }
  15064. + append_string(" ", ts);
  15065. + }
  15066. + }
  15067. + YY_BREAK
  15068. +case 30:
  15069. +/* rule 30 can match eol */
  15070. +*yy_cp = (yy_hold_char); /* undo effects of setting up zconftext */
  15071. +(yy_c_buf_p) = yy_cp -= 1;
  15072. +YY_DO_BEFORE_ACTION; /* set up zconftext again */
  15073. +YY_RULE_SETUP
  15074. +{
  15075. + current_file->lineno++;
  15076. + zconf_endhelp();
  15077. + return T_HELPTEXT;
  15078. + }
  15079. + YY_BREAK
  15080. +case 31:
  15081. +/* rule 31 can match eol */
  15082. +YY_RULE_SETUP
  15083. +{
  15084. + current_file->lineno++;
  15085. + append_string("\n", 1);
  15086. + }
  15087. + YY_BREAK
  15088. +case 32:
  15089. +YY_RULE_SETUP
  15090. +{
  15091. + while (zconfleng) {
  15092. + if ((zconftext[zconfleng-1] != ' ') && (zconftext[zconfleng-1] != '\t'))
  15093. + break;
  15094. + zconfleng--;
  15095. + }
  15096. + append_string(zconftext, zconfleng);
  15097. + if (!first_ts)
  15098. + first_ts = last_ts;
  15099. + }
  15100. + YY_BREAK
  15101. +case YY_STATE_EOF(HELP):
  15102. +{
  15103. + zconf_endhelp();
  15104. + return T_HELPTEXT;
  15105. + }
  15106. + YY_BREAK
  15107. +
  15108. +case YY_STATE_EOF(INITIAL):
  15109. +case YY_STATE_EOF(COMMAND):
  15110. +{
  15111. + if (current_file) {
  15112. + zconf_endfile();
  15113. + return T_EOL;
  15114. + }
  15115. + fclose(zconfin);
  15116. + yyterminate();
  15117. +}
  15118. + YY_BREAK
  15119. +case 33:
  15120. +YY_RULE_SETUP
  15121. +YY_FATAL_ERROR( "flex scanner jammed" );
  15122. + YY_BREAK
  15123. +
  15124. + case YY_END_OF_BUFFER:
  15125. + {
  15126. + /* Amount of text matched not including the EOB char. */
  15127. + int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
  15128. +
  15129. + /* Undo the effects of YY_DO_BEFORE_ACTION. */
  15130. + *yy_cp = (yy_hold_char);
  15131. + YY_RESTORE_YY_MORE_OFFSET
  15132. +
  15133. + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
  15134. + {
  15135. + /* We're scanning a new file or input source. It's
  15136. + * possible that this happened because the user
  15137. + * just pointed zconfin at a new source and called
  15138. + * zconflex(). If so, then we have to assure
  15139. + * consistency between YY_CURRENT_BUFFER and our
  15140. + * globals. Here is the right place to do so, because
  15141. + * this is the first action (other than possibly a
  15142. + * back-up) that will match for the new input source.
  15143. + */
  15144. + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
  15145. + YY_CURRENT_BUFFER_LVALUE->yy_input_file = zconfin;
  15146. + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
  15147. + }
  15148. +
  15149. + /* Note that here we test for yy_c_buf_p "<=" to the position
  15150. + * of the first EOB in the buffer, since yy_c_buf_p will
  15151. + * already have been incremented past the NUL character
  15152. + * (since all states make transitions on EOB to the
  15153. + * end-of-buffer state). Contrast this with the test
  15154. + * in input().
  15155. + */
  15156. + if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
  15157. + { /* This was really a NUL. */
  15158. + yy_state_type yy_next_state;
  15159. +
  15160. + (yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
  15161. +
  15162. + yy_current_state = yy_get_previous_state( );
  15163. +
  15164. + /* Okay, we're now positioned to make the NUL
  15165. + * transition. We couldn't have
  15166. + * yy_get_previous_state() go ahead and do it
  15167. + * for us because it doesn't know how to deal
  15168. + * with the possibility of jamming (and we don't
  15169. + * want to build jamming into it because then it
  15170. + * will run more slowly).
  15171. + */
  15172. +
  15173. + yy_next_state = yy_try_NUL_trans( yy_current_state );
  15174. +
  15175. + yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  15176. +
  15177. + if ( yy_next_state )
  15178. + {
  15179. + /* Consume the NUL. */
  15180. + yy_cp = ++(yy_c_buf_p);
  15181. + yy_current_state = yy_next_state;
  15182. + goto yy_match;
  15183. + }
  15184. +
  15185. + else
  15186. + {
  15187. + yy_cp = (yy_c_buf_p);
  15188. + goto yy_find_action;
  15189. + }
  15190. + }
  15191. +
  15192. + else switch ( yy_get_next_buffer( ) )
  15193. + {
  15194. + case EOB_ACT_END_OF_FILE:
  15195. + {
  15196. + (yy_did_buffer_switch_on_eof) = 0;
  15197. +
  15198. + if ( zconfwrap( ) )
  15199. + {
  15200. + /* Note: because we've taken care in
  15201. + * yy_get_next_buffer() to have set up
  15202. + * zconftext, we can now set up
  15203. + * yy_c_buf_p so that if some total
  15204. + * hoser (like flex itself) wants to
  15205. + * call the scanner after we return the
  15206. + * YY_NULL, it'll still work - another
  15207. + * YY_NULL will get returned.
  15208. + */
  15209. + (yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
  15210. +
  15211. + yy_act = YY_STATE_EOF(YY_START);
  15212. + goto do_action;
  15213. + }
  15214. +
  15215. + else
  15216. + {
  15217. + if ( ! (yy_did_buffer_switch_on_eof) )
  15218. + YY_NEW_FILE;
  15219. + }
  15220. + break;
  15221. + }
  15222. +
  15223. + case EOB_ACT_CONTINUE_SCAN:
  15224. + (yy_c_buf_p) =
  15225. + (yytext_ptr) + yy_amount_of_matched_text;
  15226. +
  15227. + yy_current_state = yy_get_previous_state( );
  15228. +
  15229. + yy_cp = (yy_c_buf_p);
  15230. + yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  15231. + goto yy_match;
  15232. +
  15233. + case EOB_ACT_LAST_MATCH:
  15234. + (yy_c_buf_p) =
  15235. + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
  15236. +
  15237. + yy_current_state = yy_get_previous_state( );
  15238. +
  15239. + yy_cp = (yy_c_buf_p);
  15240. + yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  15241. + goto yy_find_action;
  15242. + }
  15243. + break;
  15244. + }
  15245. +
  15246. + default:
  15247. + YY_FATAL_ERROR(
  15248. + "fatal flex scanner internal error--no action found" );
  15249. + } /* end of action switch */
  15250. + } /* end of scanning one token */
  15251. +} /* end of zconflex */
  15252. +
  15253. +/* yy_get_next_buffer - try to read in a new buffer
  15254. + *
  15255. + * Returns a code representing an action:
  15256. + * EOB_ACT_LAST_MATCH -
  15257. + * EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  15258. + * EOB_ACT_END_OF_FILE - end of file
  15259. + */
  15260. +static int yy_get_next_buffer (void)
  15261. +{
  15262. + register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
  15263. + register char *source = (yytext_ptr);
  15264. + register int number_to_move, i;
  15265. + int ret_val;
  15266. +
  15267. + if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
  15268. + YY_FATAL_ERROR(
  15269. + "fatal flex scanner internal error--end of buffer missed" );
  15270. +
  15271. + if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
  15272. + { /* Don't try to fill the buffer, so this is an EOF. */
  15273. + if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
  15274. + {
  15275. + /* We matched a single character, the EOB, so
  15276. + * treat this as a final EOF.
  15277. + */
  15278. + return EOB_ACT_END_OF_FILE;
  15279. + }
  15280. +
  15281. + else
  15282. + {
  15283. + /* We matched some text prior to the EOB, first
  15284. + * process it.
  15285. + */
  15286. + return EOB_ACT_LAST_MATCH;
  15287. + }
  15288. + }
  15289. +
  15290. + /* Try to read more data. */
  15291. +
  15292. + /* First move last chars to start of buffer. */
  15293. + number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
  15294. +
  15295. + for ( i = 0; i < number_to_move; ++i )
  15296. + *(dest++) = *(source++);
  15297. +
  15298. + if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  15299. + /* don't do the read, it's not guaranteed to return an EOF,
  15300. + * just force an EOF
  15301. + */
  15302. + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
  15303. +
  15304. + else
  15305. + {
  15306. + int num_to_read =
  15307. + YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
  15308. +
  15309. + while ( num_to_read <= 0 )
  15310. + { /* Not enough room in the buffer - grow it. */
  15311. +
  15312. + /* just a shorter name for the current buffer */
  15313. + YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
  15314. +
  15315. + int yy_c_buf_p_offset =
  15316. + (int) ((yy_c_buf_p) - b->yy_ch_buf);
  15317. +
  15318. + if ( b->yy_is_our_buffer )
  15319. + {
  15320. + int new_size = b->yy_buf_size * 2;
  15321. +
  15322. + if ( new_size <= 0 )
  15323. + b->yy_buf_size += b->yy_buf_size / 8;
  15324. + else
  15325. + b->yy_buf_size *= 2;
  15326. +
  15327. + b->yy_ch_buf = (char *)
  15328. + /* Include room in for 2 EOB chars. */
  15329. + zconfrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2 );
  15330. + }
  15331. + else
  15332. + /* Can't grow it, we don't own it. */
  15333. + b->yy_ch_buf = 0;
  15334. +
  15335. + if ( ! b->yy_ch_buf )
  15336. + YY_FATAL_ERROR(
  15337. + "fatal error - scanner input buffer overflow" );
  15338. +
  15339. + (yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
  15340. +
  15341. + num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
  15342. + number_to_move - 1;
  15343. +
  15344. + }
  15345. +
  15346. + if ( num_to_read > YY_READ_BUF_SIZE )
  15347. + num_to_read = YY_READ_BUF_SIZE;
  15348. +
  15349. + /* Read in more data. */
  15350. + YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
  15351. + (yy_n_chars), (size_t) num_to_read );
  15352. +
  15353. + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
  15354. + }
  15355. +
  15356. + if ( (yy_n_chars) == 0 )
  15357. + {
  15358. + if ( number_to_move == YY_MORE_ADJ )
  15359. + {
  15360. + ret_val = EOB_ACT_END_OF_FILE;
  15361. + zconfrestart(zconfin );
  15362. + }
  15363. +
  15364. + else
  15365. + {
  15366. + ret_val = EOB_ACT_LAST_MATCH;
  15367. + YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
  15368. + YY_BUFFER_EOF_PENDING;
  15369. + }
  15370. + }
  15371. +
  15372. + else
  15373. + ret_val = EOB_ACT_CONTINUE_SCAN;
  15374. +
  15375. + if ((yy_size_t) ((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
  15376. + /* Extend the array by 50%, plus the number we really need. */
  15377. + yy_size_t new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
  15378. + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) zconfrealloc((void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf,new_size );
  15379. + if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
  15380. + YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
  15381. + }
  15382. +
  15383. + (yy_n_chars) += number_to_move;
  15384. + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
  15385. + YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
  15386. +
  15387. + (yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
  15388. +
  15389. + return ret_val;
  15390. +}
  15391. +
  15392. +/* yy_get_previous_state - get the state just before the EOB char was reached */
  15393. +
  15394. + static yy_state_type yy_get_previous_state (void)
  15395. +{
  15396. + register yy_state_type yy_current_state;
  15397. + register char *yy_cp;
  15398. +
  15399. + yy_current_state = (yy_start);
  15400. +
  15401. + for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
  15402. + {
  15403. + yy_current_state = yy_nxt[yy_current_state][(*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1)];
  15404. + }
  15405. +
  15406. + return yy_current_state;
  15407. +}
  15408. +
  15409. +/* yy_try_NUL_trans - try to make a transition on the NUL character
  15410. + *
  15411. + * synopsis
  15412. + * next_state = yy_try_NUL_trans( current_state );
  15413. + */
  15414. + static yy_state_type yy_try_NUL_trans (yy_state_type yy_current_state )
  15415. +{
  15416. + register int yy_is_jam;
  15417. +
  15418. + yy_current_state = yy_nxt[yy_current_state][1];
  15419. + yy_is_jam = (yy_current_state <= 0);
  15420. +
  15421. + return yy_is_jam ? 0 : yy_current_state;
  15422. +}
  15423. +
  15424. + static void yyunput (int c, register char * yy_bp )
  15425. +{
  15426. + register char *yy_cp;
  15427. +
  15428. + yy_cp = (yy_c_buf_p);
  15429. +
  15430. + /* undo effects of setting up zconftext */
  15431. + *yy_cp = (yy_hold_char);
  15432. +
  15433. + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
  15434. + { /* need to shift things up to make room */
  15435. + /* +2 for EOB chars. */
  15436. + register int number_to_move = (yy_n_chars) + 2;
  15437. + register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
  15438. + YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
  15439. + register char *source =
  15440. + &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
  15441. +
  15442. + while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
  15443. + *--dest = *--source;
  15444. +
  15445. + yy_cp += (int) (dest - source);
  15446. + yy_bp += (int) (dest - source);
  15447. + YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
  15448. + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
  15449. +
  15450. + if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
  15451. + YY_FATAL_ERROR( "flex scanner push-back overflow" );
  15452. + }
  15453. +
  15454. + *--yy_cp = (char) c;
  15455. +
  15456. + (yytext_ptr) = yy_bp;
  15457. + (yy_hold_char) = *yy_cp;
  15458. + (yy_c_buf_p) = yy_cp;
  15459. +}
  15460. +
  15461. +#ifndef YY_NO_INPUT
  15462. +#ifdef __cplusplus
  15463. + static int yyinput (void)
  15464. +#else
  15465. + static int input (void)
  15466. +#endif
  15467. +
  15468. +{
  15469. + int c;
  15470. +
  15471. + *(yy_c_buf_p) = (yy_hold_char);
  15472. +
  15473. + if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
  15474. + {
  15475. + /* yy_c_buf_p now points to the character we want to return.
  15476. + * If this occurs *before* the EOB characters, then it's a
  15477. + * valid NUL; if not, then we've hit the end of the buffer.
  15478. + */
  15479. + if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
  15480. + /* This was really a NUL. */
  15481. + *(yy_c_buf_p) = '\0';
  15482. +
  15483. + else
  15484. + { /* need more input */
  15485. + int offset = (yy_c_buf_p) - (yytext_ptr);
  15486. + ++(yy_c_buf_p);
  15487. +
  15488. + switch ( yy_get_next_buffer( ) )
  15489. + {
  15490. + case EOB_ACT_LAST_MATCH:
  15491. + /* This happens because yy_g_n_b()
  15492. + * sees that we've accumulated a
  15493. + * token and flags that we need to
  15494. + * try matching the token before
  15495. + * proceeding. But for input(),
  15496. + * there's no matching to consider.
  15497. + * So convert the EOB_ACT_LAST_MATCH
  15498. + * to EOB_ACT_END_OF_FILE.
  15499. + */
  15500. +
  15501. + /* Reset buffer status. */
  15502. + zconfrestart(zconfin );
  15503. +
  15504. + /*FALLTHROUGH*/
  15505. +
  15506. + case EOB_ACT_END_OF_FILE:
  15507. + {
  15508. + if ( zconfwrap( ) )
  15509. + return EOF;
  15510. +
  15511. + if ( ! (yy_did_buffer_switch_on_eof) )
  15512. + YY_NEW_FILE;
  15513. +#ifdef __cplusplus
  15514. + return yyinput();
  15515. +#else
  15516. + return input();
  15517. +#endif
  15518. + }
  15519. +
  15520. + case EOB_ACT_CONTINUE_SCAN:
  15521. + (yy_c_buf_p) = (yytext_ptr) + offset;
  15522. + break;
  15523. + }
  15524. + }
  15525. + }
  15526. +
  15527. + c = *(unsigned char *) (yy_c_buf_p); /* cast for 8-bit char's */
  15528. + *(yy_c_buf_p) = '\0'; /* preserve zconftext */
  15529. + (yy_hold_char) = *++(yy_c_buf_p);
  15530. +
  15531. + return c;
  15532. +}
  15533. +#endif /* ifndef YY_NO_INPUT */
  15534. +
  15535. +/** Immediately switch to a different input stream.
  15536. + * @param input_file A readable stream.
  15537. + *
  15538. + * @note This function does not reset the start condition to @c INITIAL .
  15539. + */
  15540. + void zconfrestart (FILE * input_file )
  15541. +{
  15542. +
  15543. + if ( ! YY_CURRENT_BUFFER ){
  15544. + zconfensure_buffer_stack ();
  15545. + YY_CURRENT_BUFFER_LVALUE =
  15546. + zconf_create_buffer(zconfin,YY_BUF_SIZE );
  15547. + }
  15548. +
  15549. + zconf_init_buffer(YY_CURRENT_BUFFER,input_file );
  15550. + zconf_load_buffer_state( );
  15551. +}
  15552. +
  15553. +/** Switch to a different input buffer.
  15554. + * @param new_buffer The new input buffer.
  15555. + *
  15556. + */
  15557. + void zconf_switch_to_buffer (YY_BUFFER_STATE new_buffer )
  15558. +{
  15559. +
  15560. + /* TODO. We should be able to replace this entire function body
  15561. + * with
  15562. + * zconfpop_buffer_state();
  15563. + * zconfpush_buffer_state(new_buffer);
  15564. + */
  15565. + zconfensure_buffer_stack ();
  15566. + if ( YY_CURRENT_BUFFER == new_buffer )
  15567. + return;
  15568. +
  15569. + if ( YY_CURRENT_BUFFER )
  15570. + {
  15571. + /* Flush out information for old buffer. */
  15572. + *(yy_c_buf_p) = (yy_hold_char);
  15573. + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
  15574. + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
  15575. + }
  15576. +
  15577. + YY_CURRENT_BUFFER_LVALUE = new_buffer;
  15578. + zconf_load_buffer_state( );
  15579. +
  15580. + /* We don't actually know whether we did this switch during
  15581. + * EOF (zconfwrap()) processing, but the only time this flag
  15582. + * is looked at is after zconfwrap() is called, so it's safe
  15583. + * to go ahead and always set it.
  15584. + */
  15585. + (yy_did_buffer_switch_on_eof) = 1;
  15586. +}
  15587. +
  15588. +static void zconf_load_buffer_state (void)
  15589. +{
  15590. + (yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
  15591. + (yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
  15592. + zconfin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
  15593. + (yy_hold_char) = *(yy_c_buf_p);
  15594. +}
  15595. +
  15596. +/** Allocate and initialize an input buffer state.
  15597. + * @param file A readable stream.
  15598. + * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
  15599. + *
  15600. + * @return the allocated buffer state.
  15601. + */
  15602. + YY_BUFFER_STATE zconf_create_buffer (FILE * file, int size )
  15603. +{
  15604. + YY_BUFFER_STATE b;
  15605. +
  15606. + b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) );
  15607. + if ( ! b )
  15608. + YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
  15609. +
  15610. + b->yy_buf_size = size;
  15611. +
  15612. + /* yy_ch_buf has to be 2 characters longer than the size given because
  15613. + * we need to put in 2 end-of-buffer characters.
  15614. + */
  15615. + b->yy_ch_buf = (char *) zconfalloc(b->yy_buf_size + 2 );
  15616. + if ( ! b->yy_ch_buf )
  15617. + YY_FATAL_ERROR( "out of dynamic memory in zconf_create_buffer()" );
  15618. +
  15619. + b->yy_is_our_buffer = 1;
  15620. +
  15621. + zconf_init_buffer(b,file );
  15622. +
  15623. + return b;
  15624. +}
  15625. +
  15626. +/** Destroy the buffer.
  15627. + * @param b a buffer created with zconf_create_buffer()
  15628. + *
  15629. + */
  15630. + void zconf_delete_buffer (YY_BUFFER_STATE b )
  15631. +{
  15632. +
  15633. + if ( ! b )
  15634. + return;
  15635. +
  15636. + if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
  15637. + YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
  15638. +
  15639. + if ( b->yy_is_our_buffer )
  15640. + zconffree((void *) b->yy_ch_buf );
  15641. +
  15642. + zconffree((void *) b );
  15643. +}
  15644. +
  15645. +/* Initializes or reinitializes a buffer.
  15646. + * This function is sometimes called more than once on the same buffer,
  15647. + * such as during a zconfrestart() or at EOF.
  15648. + */
  15649. + static void zconf_init_buffer (YY_BUFFER_STATE b, FILE * file )
  15650. +
  15651. +{
  15652. + int oerrno = errno;
  15653. +
  15654. + zconf_flush_buffer(b );
  15655. +
  15656. + b->yy_input_file = file;
  15657. + b->yy_fill_buffer = 1;
  15658. +
  15659. + /* If b is the current buffer, then zconf_init_buffer was _probably_
  15660. + * called from zconfrestart() or through yy_get_next_buffer.
  15661. + * In that case, we don't want to reset the lineno or column.
  15662. + */
  15663. + if (b != YY_CURRENT_BUFFER){
  15664. + b->yy_bs_lineno = 1;
  15665. + b->yy_bs_column = 0;
  15666. + }
  15667. +
  15668. + b->yy_is_interactive = 0;
  15669. +
  15670. + errno = oerrno;
  15671. +}
  15672. +
  15673. +/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
  15674. + * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
  15675. + *
  15676. + */
  15677. + void zconf_flush_buffer (YY_BUFFER_STATE b )
  15678. +{
  15679. + if ( ! b )
  15680. + return;
  15681. +
  15682. + b->yy_n_chars = 0;
  15683. +
  15684. + /* We always need two end-of-buffer characters. The first causes
  15685. + * a transition to the end-of-buffer state. The second causes
  15686. + * a jam in that state.
  15687. + */
  15688. + b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
  15689. + b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  15690. +
  15691. + b->yy_buf_pos = &b->yy_ch_buf[0];
  15692. +
  15693. + b->yy_at_bol = 1;
  15694. + b->yy_buffer_status = YY_BUFFER_NEW;
  15695. +
  15696. + if ( b == YY_CURRENT_BUFFER )
  15697. + zconf_load_buffer_state( );
  15698. +}
  15699. +
  15700. +/** Pushes the new state onto the stack. The new state becomes
  15701. + * the current state. This function will allocate the stack
  15702. + * if necessary.
  15703. + * @param new_buffer The new state.
  15704. + *
  15705. + */
  15706. +void zconfpush_buffer_state (YY_BUFFER_STATE new_buffer )
  15707. +{
  15708. + if (new_buffer == NULL)
  15709. + return;
  15710. +
  15711. + zconfensure_buffer_stack();
  15712. +
  15713. + /* This block is copied from zconf_switch_to_buffer. */
  15714. + if ( YY_CURRENT_BUFFER )
  15715. + {
  15716. + /* Flush out information for old buffer. */
  15717. + *(yy_c_buf_p) = (yy_hold_char);
  15718. + YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
  15719. + YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
  15720. + }
  15721. +
  15722. + /* Only push if top exists. Otherwise, replace top. */
  15723. + if (YY_CURRENT_BUFFER)
  15724. + (yy_buffer_stack_top)++;
  15725. + YY_CURRENT_BUFFER_LVALUE = new_buffer;
  15726. +
  15727. + /* copied from zconf_switch_to_buffer. */
  15728. + zconf_load_buffer_state( );
  15729. + (yy_did_buffer_switch_on_eof) = 1;
  15730. +}
  15731. +
  15732. +/** Removes and deletes the top of the stack, if present.
  15733. + * The next element becomes the new top.
  15734. + *
  15735. + */
  15736. +void zconfpop_buffer_state (void)
  15737. +{
  15738. + if (!YY_CURRENT_BUFFER)
  15739. + return;
  15740. +
  15741. + zconf_delete_buffer(YY_CURRENT_BUFFER );
  15742. + YY_CURRENT_BUFFER_LVALUE = NULL;
  15743. + if ((yy_buffer_stack_top) > 0)
  15744. + --(yy_buffer_stack_top);
  15745. +
  15746. + if (YY_CURRENT_BUFFER) {
  15747. + zconf_load_buffer_state( );
  15748. + (yy_did_buffer_switch_on_eof) = 1;
  15749. + }
  15750. +}
  15751. +
  15752. +/* Allocates the stack if it does not exist.
  15753. + * Guarantees space for at least one push.
  15754. + */
  15755. +static void zconfensure_buffer_stack (void)
  15756. +{
  15757. + int num_to_alloc;
  15758. +
  15759. + if (!(yy_buffer_stack)) {
  15760. +
  15761. + /* First allocation is just for 2 elements, since we don't know if this
  15762. + * scanner will even need a stack. We use 2 instead of 1 to avoid an
  15763. + * immediate realloc on the next call.
  15764. + */
  15765. + num_to_alloc = 1;
  15766. + (yy_buffer_stack) = (struct yy_buffer_state**)zconfalloc
  15767. + (num_to_alloc * sizeof(struct yy_buffer_state*)
  15768. + );
  15769. + if ( ! (yy_buffer_stack) )
  15770. + YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
  15771. +
  15772. + memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
  15773. +
  15774. + (yy_buffer_stack_max) = num_to_alloc;
  15775. + (yy_buffer_stack_top) = 0;
  15776. + return;
  15777. + }
  15778. +
  15779. + if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
  15780. +
  15781. + /* Increase the buffer to prepare for a possible push. */
  15782. + int grow_size = 8 /* arbitrary grow size */;
  15783. +
  15784. + num_to_alloc = (yy_buffer_stack_max) + grow_size;
  15785. + (yy_buffer_stack) = (struct yy_buffer_state**)zconfrealloc
  15786. + ((yy_buffer_stack),
  15787. + num_to_alloc * sizeof(struct yy_buffer_state*)
  15788. + );
  15789. + if ( ! (yy_buffer_stack) )
  15790. + YY_FATAL_ERROR( "out of dynamic memory in zconfensure_buffer_stack()" );
  15791. +
  15792. + /* zero only the new slots.*/
  15793. + memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
  15794. + (yy_buffer_stack_max) = num_to_alloc;
  15795. + }
  15796. +}
  15797. +
  15798. +/** Setup the input buffer state to scan directly from a user-specified character buffer.
  15799. + * @param base the character buffer
  15800. + * @param size the size in bytes of the character buffer
  15801. + *
  15802. + * @return the newly allocated buffer state object.
  15803. + */
  15804. +YY_BUFFER_STATE zconf_scan_buffer (char * base, yy_size_t size )
  15805. +{
  15806. + YY_BUFFER_STATE b;
  15807. +
  15808. + if ( size < 2 ||
  15809. + base[size-2] != YY_END_OF_BUFFER_CHAR ||
  15810. + base[size-1] != YY_END_OF_BUFFER_CHAR )
  15811. + /* They forgot to leave room for the EOB's. */
  15812. + return 0;
  15813. +
  15814. + b = (YY_BUFFER_STATE) zconfalloc(sizeof( struct yy_buffer_state ) );
  15815. + if ( ! b )
  15816. + YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_buffer()" );
  15817. +
  15818. + b->yy_buf_size = size - 2; /* "- 2" to take care of EOB's */
  15819. + b->yy_buf_pos = b->yy_ch_buf = base;
  15820. + b->yy_is_our_buffer = 0;
  15821. + b->yy_input_file = 0;
  15822. + b->yy_n_chars = b->yy_buf_size;
  15823. + b->yy_is_interactive = 0;
  15824. + b->yy_at_bol = 1;
  15825. + b->yy_fill_buffer = 0;
  15826. + b->yy_buffer_status = YY_BUFFER_NEW;
  15827. +
  15828. + zconf_switch_to_buffer(b );
  15829. +
  15830. + return b;
  15831. +}
  15832. +
  15833. +/** Setup the input buffer state to scan a string. The next call to zconflex() will
  15834. + * scan from a @e copy of @a str.
  15835. + * @param yystr a NUL-terminated string to scan
  15836. + *
  15837. + * @return the newly allocated buffer state object.
  15838. + * @note If you want to scan bytes that may contain NUL values, then use
  15839. + * zconf_scan_bytes() instead.
  15840. + */
  15841. +YY_BUFFER_STATE zconf_scan_string (yyconst char * yystr )
  15842. +{
  15843. +
  15844. + return zconf_scan_bytes(yystr,strlen(yystr) );
  15845. +}
  15846. +
  15847. +/** Setup the input buffer state to scan the given bytes. The next call to zconflex() will
  15848. + * scan from a @e copy of @a bytes.
  15849. + * @param bytes the byte buffer to scan
  15850. + * @param len the number of bytes in the buffer pointed to by @a bytes.
  15851. + *
  15852. + * @return the newly allocated buffer state object.
  15853. + */
  15854. +YY_BUFFER_STATE zconf_scan_bytes (yyconst char * yybytes, int _yybytes_len )
  15855. +{
  15856. + YY_BUFFER_STATE b;
  15857. + char *buf;
  15858. + yy_size_t n;
  15859. + int i;
  15860. +
  15861. + /* Get memory for full buffer, including space for trailing EOB's. */
  15862. + n = _yybytes_len + 2;
  15863. + buf = (char *) zconfalloc(n );
  15864. + if ( ! buf )
  15865. + YY_FATAL_ERROR( "out of dynamic memory in zconf_scan_bytes()" );
  15866. +
  15867. + for ( i = 0; i < _yybytes_len; ++i )
  15868. + buf[i] = yybytes[i];
  15869. +
  15870. + buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
  15871. +
  15872. + b = zconf_scan_buffer(buf,n );
  15873. + if ( ! b )
  15874. + YY_FATAL_ERROR( "bad buffer in zconf_scan_bytes()" );
  15875. +
  15876. + /* It's okay to grow etc. this buffer, and we should throw it
  15877. + * away when we're done.
  15878. + */
  15879. + b->yy_is_our_buffer = 1;
  15880. +
  15881. + return b;
  15882. +}
  15883. +
  15884. +#ifndef YY_EXIT_FAILURE
  15885. +#define YY_EXIT_FAILURE 2
  15886. +#endif
  15887. +
  15888. +static void yy_fatal_error (yyconst char* msg )
  15889. +{
  15890. + (void) fprintf( stderr, "%s\n", msg );
  15891. + exit( YY_EXIT_FAILURE );
  15892. +}
  15893. +
  15894. +/* Redefine yyless() so it works in section 3 code. */
  15895. +
  15896. +#undef yyless
  15897. +#define yyless(n) \
  15898. + do \
  15899. + { \
  15900. + /* Undo effects of setting up zconftext. */ \
  15901. + int yyless_macro_arg = (n); \
  15902. + YY_LESS_LINENO(yyless_macro_arg);\
  15903. + zconftext[zconfleng] = (yy_hold_char); \
  15904. + (yy_c_buf_p) = zconftext + yyless_macro_arg; \
  15905. + (yy_hold_char) = *(yy_c_buf_p); \
  15906. + *(yy_c_buf_p) = '\0'; \
  15907. + zconfleng = yyless_macro_arg; \
  15908. + } \
  15909. + while ( 0 )
  15910. +
  15911. +/* Accessor methods (get/set functions) to struct members. */
  15912. +
  15913. +/** Get the current line number.
  15914. + *
  15915. + */
  15916. +int zconfget_lineno (void)
  15917. +{
  15918. +
  15919. + return zconflineno;
  15920. +}
  15921. +
  15922. +/** Get the input stream.
  15923. + *
  15924. + */
  15925. +FILE *zconfget_in (void)
  15926. +{
  15927. + return zconfin;
  15928. +}
  15929. +
  15930. +/** Get the output stream.
  15931. + *
  15932. + */
  15933. +FILE *zconfget_out (void)
  15934. +{
  15935. + return zconfout;
  15936. +}
  15937. +
  15938. +/** Get the length of the current token.
  15939. + *
  15940. + */
  15941. +int zconfget_leng (void)
  15942. +{
  15943. + return zconfleng;
  15944. +}
  15945. +
  15946. +/** Get the current token.
  15947. + *
  15948. + */
  15949. +
  15950. +char *zconfget_text (void)
  15951. +{
  15952. + return zconftext;
  15953. +}
  15954. +
  15955. +/** Set the current line number.
  15956. + * @param line_number
  15957. + *
  15958. + */
  15959. +void zconfset_lineno (int line_number )
  15960. +{
  15961. +
  15962. + zconflineno = line_number;
  15963. +}
  15964. +
  15965. +/** Set the input stream. This does not discard the current
  15966. + * input buffer.
  15967. + * @param in_str A readable stream.
  15968. + *
  15969. + * @see zconf_switch_to_buffer
  15970. + */
  15971. +void zconfset_in (FILE * in_str )
  15972. +{
  15973. + zconfin = in_str ;
  15974. +}
  15975. +
  15976. +void zconfset_out (FILE * out_str )
  15977. +{
  15978. + zconfout = out_str ;
  15979. +}
  15980. +
  15981. +int zconfget_debug (void)
  15982. +{
  15983. + return zconf_flex_debug;
  15984. +}
  15985. +
  15986. +void zconfset_debug (int bdebug )
  15987. +{
  15988. + zconf_flex_debug = bdebug ;
  15989. +}
  15990. +
  15991. +static int yy_init_globals (void)
  15992. +{
  15993. + /* Initialization is the same as for the non-reentrant scanner.
  15994. + * This function is called from zconflex_destroy(), so don't allocate here.
  15995. + */
  15996. +
  15997. + (yy_buffer_stack) = 0;
  15998. + (yy_buffer_stack_top) = 0;
  15999. + (yy_buffer_stack_max) = 0;
  16000. + (yy_c_buf_p) = (char *) 0;
  16001. + (yy_init) = 0;
  16002. + (yy_start) = 0;
  16003. +
  16004. +/* Defined in main.c */
  16005. +#ifdef YY_STDINIT
  16006. + zconfin = stdin;
  16007. + zconfout = stdout;
  16008. +#else
  16009. + zconfin = (FILE *) 0;
  16010. + zconfout = (FILE *) 0;
  16011. +#endif
  16012. +
  16013. + /* For future reference: Set errno on error, since we are called by
  16014. + * zconflex_init()
  16015. + */
  16016. + return 0;
  16017. +}
  16018. +
  16019. +/* zconflex_destroy is for both reentrant and non-reentrant scanners. */
  16020. +int zconflex_destroy (void)
  16021. +{
  16022. +
  16023. + /* Pop the buffer stack, destroying each element. */
  16024. + while(YY_CURRENT_BUFFER){
  16025. + zconf_delete_buffer(YY_CURRENT_BUFFER );
  16026. + YY_CURRENT_BUFFER_LVALUE = NULL;
  16027. + zconfpop_buffer_state();
  16028. + }
  16029. +
  16030. + /* Destroy the stack itself. */
  16031. + zconffree((yy_buffer_stack) );
  16032. + (yy_buffer_stack) = NULL;
  16033. +
  16034. + /* Reset the globals. This is important in a non-reentrant scanner so the next time
  16035. + * zconflex() is called, initialization will occur. */
  16036. + yy_init_globals( );
  16037. +
  16038. + return 0;
  16039. +}
  16040. +
  16041. +/*
  16042. + * Internal utility routines.
  16043. + */
  16044. +
  16045. +#ifndef yytext_ptr
  16046. +static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
  16047. +{
  16048. + register int i;
  16049. + for ( i = 0; i < n; ++i )
  16050. + s1[i] = s2[i];
  16051. +}
  16052. +#endif
  16053. +
  16054. +#ifdef YY_NEED_STRLEN
  16055. +static int yy_flex_strlen (yyconst char * s )
  16056. +{
  16057. + register int n;
  16058. + for ( n = 0; s[n]; ++n )
  16059. + ;
  16060. +
  16061. + return n;
  16062. +}
  16063. +#endif
  16064. +
  16065. +void *zconfalloc (yy_size_t size )
  16066. +{
  16067. + return (void *) malloc( size );
  16068. +}
  16069. +
  16070. +void *zconfrealloc (void * ptr, yy_size_t size )
  16071. +{
  16072. + /* The cast to (char *) in the following accommodates both
  16073. + * implementations that use char* generic pointers, and those
  16074. + * that use void* generic pointers. It works with the latter
  16075. + * because both ANSI C and C++ allow castless assignment from
  16076. + * any pointer type to void*, and deal with argument conversions
  16077. + * as though doing an assignment.
  16078. + */
  16079. + return (void *) realloc( (char *) ptr, size );
  16080. +}
  16081. +
  16082. +void zconffree (void * ptr )
  16083. +{
  16084. + free( (char *) ptr ); /* see zconfrealloc() for (char *) cast */
  16085. +}
  16086. +
  16087. +#define YYTABLES_NAME "yytables"
  16088. +
  16089. +void zconf_starthelp(void)
  16090. +{
  16091. + new_string();
  16092. + last_ts = first_ts = 0;
  16093. + BEGIN(HELP);
  16094. +}
  16095. +
  16096. +static void zconf_endhelp(void)
  16097. +{
  16098. + zconflval.string = text;
  16099. + BEGIN(INITIAL);
  16100. +}
  16101. +
  16102. +/*
  16103. + * Try to open specified file with following names:
  16104. + * ./name
  16105. + * $(srctree)/name
  16106. + * The latter is used when srctree is separate from objtree
  16107. + * when compiling the kernel.
  16108. + * Return NULL if file is not found.
  16109. + */
  16110. +FILE *zconf_fopen(const char *name)
  16111. +{
  16112. + char *env, fullname[PATH_MAX+1];
  16113. + FILE *f;
  16114. +
  16115. + f = fopen(name, "r");
  16116. + if (!f && name != NULL && name[0] != '/') {
  16117. + env = getenv(SRCTREE);
  16118. + if (env) {
  16119. + sprintf(fullname, "%s/%s", env, name);
  16120. + f = fopen(fullname, "r");
  16121. + }
  16122. + }
  16123. + return f;
  16124. +}
  16125. +
  16126. +void zconf_initscan(const char *name)
  16127. +{
  16128. + zconfin = zconf_fopen(name);
  16129. + if (!zconfin) {
  16130. + printf("can't find file %s\n", name);
  16131. + exit(1);
  16132. + }
  16133. +
  16134. + current_buf = xmalloc(sizeof(*current_buf));
  16135. + memset(current_buf, 0, sizeof(*current_buf));
  16136. +
  16137. + current_file = file_lookup(name);
  16138. + current_file->lineno = 1;
  16139. +}
  16140. +
  16141. +void zconf_nextfile(const char *name)
  16142. +{
  16143. + struct file *iter;
  16144. + struct file *file = file_lookup(name);
  16145. + struct buffer *buf = xmalloc(sizeof(*buf));
  16146. + memset(buf, 0, sizeof(*buf));
  16147. +
  16148. + current_buf->state = YY_CURRENT_BUFFER;
  16149. + zconfin = zconf_fopen(file->name);
  16150. + if (!zconfin) {
  16151. + printf("%s:%d: can't open file \"%s\"\n",
  16152. + zconf_curname(), zconf_lineno(), file->name);
  16153. + exit(1);
  16154. + }
  16155. + zconf_switch_to_buffer(zconf_create_buffer(zconfin,YY_BUF_SIZE));
  16156. + buf->parent = current_buf;
  16157. + current_buf = buf;
  16158. +
  16159. + for (iter = current_file->parent; iter; iter = iter->parent ) {
  16160. + if (!strcmp(current_file->name,iter->name) ) {
  16161. + printf("%s:%d: recursive inclusion detected. "
  16162. + "Inclusion path:\n current file : '%s'\n",
  16163. + zconf_curname(), zconf_lineno(),
  16164. + zconf_curname());
  16165. + iter = current_file->parent;
  16166. + while (iter && \
  16167. + strcmp(iter->name,current_file->name)) {
  16168. + printf(" included from: '%s:%d'\n",
  16169. + iter->name, iter->lineno-1);
  16170. + iter = iter->parent;
  16171. + }
  16172. + if (iter)
  16173. + printf(" included from: '%s:%d'\n",
  16174. + iter->name, iter->lineno+1);
  16175. + exit(1);
  16176. + }
  16177. + }
  16178. + file->lineno = 1;
  16179. + file->parent = current_file;
  16180. + current_file = file;
  16181. +}
  16182. +
  16183. +static void zconf_endfile(void)
  16184. +{
  16185. + struct buffer *parent;
  16186. +
  16187. + current_file = current_file->parent;
  16188. +
  16189. + parent = current_buf->parent;
  16190. + if (parent) {
  16191. + fclose(zconfin);
  16192. + zconf_delete_buffer(YY_CURRENT_BUFFER);
  16193. + zconf_switch_to_buffer(parent->state);
  16194. + }
  16195. + free(current_buf);
  16196. + current_buf = parent;
  16197. +}
  16198. +
  16199. +int zconf_lineno(void)
  16200. +{
  16201. + return current_pos.lineno;
  16202. +}
  16203. +
  16204. +const char *zconf_curname(void)
  16205. +{
  16206. + return current_pos.file ? current_pos.file->name : "<none>";
  16207. +}
  16208. +
  16209. diff -Nur uClibc-0.9.33.2/extra/config/zconf.tab.c_shipped uClibc-git/extra/config/zconf.tab.c_shipped
  16210. --- uClibc-0.9.33.2/extra/config/zconf.tab.c_shipped 2012-05-15 09:20:09.000000000 +0200
  16211. +++ uClibc-git/extra/config/zconf.tab.c_shipped 2014-06-02 17:40:33.750710524 +0200
  16212. @@ -1,24 +1,22 @@
  16213. -/* A Bison parser, made by GNU Bison 2.3. */
  16214. +/* A Bison parser, made by GNU Bison 2.4.3. */
  16215. /* Skeleton implementation for Bison's Yacc-like parsers in C
  16216. -
  16217. - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
  16218. - Free Software Foundation, Inc.
  16219. -
  16220. - This program is free software; you can redistribute it and/or modify
  16221. +
  16222. + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
  16223. + 2009, 2010 Free Software Foundation, Inc.
  16224. +
  16225. + This program is free software: you can redistribute it and/or modify
  16226. it under the terms of the GNU General Public License as published by
  16227. - the Free Software Foundation; either version 2, or (at your option)
  16228. - any later version.
  16229. -
  16230. + the Free Software Foundation, either version 3 of the License, or
  16231. + (at your option) any later version.
  16232. +
  16233. This program is distributed in the hope that it will be useful,
  16234. but WITHOUT ANY WARRANTY; without even the implied warranty of
  16235. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  16236. GNU General Public License for more details.
  16237. -
  16238. +
  16239. You should have received a copy of the GNU General Public License
  16240. - along with this program; if not, write to the Free Software
  16241. - Foundation, Inc., 51 Franklin Street, Fifth Floor,
  16242. - Boston, MA 02110-1301, USA. */
  16243. + along with this program. If not, see <http://www.gnu.org/licenses/>. */
  16244. /* As a special exception, you may create a larger work that contains
  16245. part or all of the Bison parser skeleton and distribute that work
  16246. @@ -29,7 +27,7 @@
  16247. special exception, which will cause the skeleton and the resulting
  16248. Bison output files to be licensed under the GNU General Public
  16249. License without this special exception.
  16250. -
  16251. +
  16252. This special exception was added by the Free Software Foundation in
  16253. version 2.2 of Bison. */
  16254. @@ -47,7 +45,7 @@
  16255. #define YYBISON 1
  16256. /* Bison version. */
  16257. -#define YYBISON_VERSION "2.3"
  16258. +#define YYBISON_VERSION "2.4.3"
  16259. /* Skeleton name. */
  16260. #define YYSKELETON_NAME "yacc.c"
  16261. @@ -55,94 +53,23 @@
  16262. /* Pure parsers. */
  16263. #define YYPURE 0
  16264. +/* Push parsers. */
  16265. +#define YYPUSH 0
  16266. +
  16267. +/* Pull parsers. */
  16268. +#define YYPULL 1
  16269. +
  16270. /* Using locations. */
  16271. #define YYLSP_NEEDED 0
  16272. /* Substitute the variable and function names. */
  16273. -#define yyparse zconfparse
  16274. -#define yylex zconflex
  16275. -#define yyerror zconferror
  16276. -#define yylval zconflval
  16277. -#define yychar zconfchar
  16278. -#define yydebug zconfdebug
  16279. -#define yynerrs zconfnerrs
  16280. -
  16281. -
  16282. -/* Tokens. */
  16283. -#ifndef YYTOKENTYPE
  16284. -# define YYTOKENTYPE
  16285. - /* Put the tokens into the symbol table, so that GDB and other debuggers
  16286. - know about them. */
  16287. - enum yytokentype {
  16288. - T_MAINMENU = 258,
  16289. - T_MENU = 259,
  16290. - T_ENDMENU = 260,
  16291. - T_SOURCE = 261,
  16292. - T_CHOICE = 262,
  16293. - T_ENDCHOICE = 263,
  16294. - T_COMMENT = 264,
  16295. - T_CONFIG = 265,
  16296. - T_MENUCONFIG = 266,
  16297. - T_HELP = 267,
  16298. - T_HELPTEXT = 268,
  16299. - T_IF = 269,
  16300. - T_ENDIF = 270,
  16301. - T_DEPENDS = 271,
  16302. - T_OPTIONAL = 272,
  16303. - T_PROMPT = 273,
  16304. - T_TYPE = 274,
  16305. - T_DEFAULT = 275,
  16306. - T_SELECT = 276,
  16307. - T_RANGE = 277,
  16308. - T_OPTION = 278,
  16309. - T_ON = 279,
  16310. - T_WORD = 280,
  16311. - T_WORD_QUOTE = 281,
  16312. - T_UNEQUAL = 282,
  16313. - T_CLOSE_PAREN = 283,
  16314. - T_OPEN_PAREN = 284,
  16315. - T_EOL = 285,
  16316. - T_OR = 286,
  16317. - T_AND = 287,
  16318. - T_EQUAL = 288,
  16319. - T_NOT = 289
  16320. - };
  16321. -#endif
  16322. -/* Tokens. */
  16323. -#define T_MAINMENU 258
  16324. -#define T_MENU 259
  16325. -#define T_ENDMENU 260
  16326. -#define T_SOURCE 261
  16327. -#define T_CHOICE 262
  16328. -#define T_ENDCHOICE 263
  16329. -#define T_COMMENT 264
  16330. -#define T_CONFIG 265
  16331. -#define T_MENUCONFIG 266
  16332. -#define T_HELP 267
  16333. -#define T_HELPTEXT 268
  16334. -#define T_IF 269
  16335. -#define T_ENDIF 270
  16336. -#define T_DEPENDS 271
  16337. -#define T_OPTIONAL 272
  16338. -#define T_PROMPT 273
  16339. -#define T_TYPE 274
  16340. -#define T_DEFAULT 275
  16341. -#define T_SELECT 276
  16342. -#define T_RANGE 277
  16343. -#define T_OPTION 278
  16344. -#define T_ON 279
  16345. -#define T_WORD 280
  16346. -#define T_WORD_QUOTE 281
  16347. -#define T_UNEQUAL 282
  16348. -#define T_CLOSE_PAREN 283
  16349. -#define T_OPEN_PAREN 284
  16350. -#define T_EOL 285
  16351. -#define T_OR 286
  16352. -#define T_AND 287
  16353. -#define T_EQUAL 288
  16354. -#define T_NOT 289
  16355. -
  16356. -
  16357. +#define yyparse zconfparse
  16358. +#define yylex zconflex
  16359. +#define yyerror zconferror
  16360. +#define yylval zconflval
  16361. +#define yychar zconfchar
  16362. +#define yydebug zconfdebug
  16363. +#define yynerrs zconfnerrs
  16364. /* Copy the first part of user declarations. */
  16365. @@ -160,11 +87,8 @@
  16366. #include <string.h>
  16367. #include <stdbool.h>
  16368. -#define LKC_DIRECT_LINK
  16369. #include "lkc.h"
  16370. -#include "zconf.hash.c"
  16371. -
  16372. #define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
  16373. #define PRINTD 0x0001
  16374. @@ -176,21 +100,18 @@
  16375. static void zconfprint(const char *err, ...);
  16376. static void zconf_error(const char *err, ...);
  16377. static void zconferror(const char *err);
  16378. -static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken);
  16379. +static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtoken);
  16380. -struct symbol *symbol_hash[257];
  16381. +struct symbol *symbol_hash[SYMBOL_HASHSIZE];
  16382. static struct menu *current_menu, *current_entry;
  16383. -#define YYDEBUG 0
  16384. -#if YYDEBUG
  16385. -#define YYERROR_VERBOSE
  16386. -#endif
  16387. +
  16388. /* Enabling traces. */
  16389. #ifndef YYDEBUG
  16390. -# define YYDEBUG 0
  16391. +# define YYDEBUG 1
  16392. #endif
  16393. /* Enabling verbose error messages. */
  16394. @@ -206,31 +127,78 @@
  16395. # define YYTOKEN_TABLE 0
  16396. #endif
  16397. +
  16398. +/* Tokens. */
  16399. +#ifndef YYTOKENTYPE
  16400. +# define YYTOKENTYPE
  16401. + /* Put the tokens into the symbol table, so that GDB and other debuggers
  16402. + know about them. */
  16403. + enum yytokentype {
  16404. + T_MAINMENU = 258,
  16405. + T_MENU = 259,
  16406. + T_ENDMENU = 260,
  16407. + T_SOURCE = 261,
  16408. + T_CHOICE = 262,
  16409. + T_ENDCHOICE = 263,
  16410. + T_COMMENT = 264,
  16411. + T_CONFIG = 265,
  16412. + T_MENUCONFIG = 266,
  16413. + T_HELP = 267,
  16414. + T_HELPTEXT = 268,
  16415. + T_IF = 269,
  16416. + T_ENDIF = 270,
  16417. + T_DEPENDS = 271,
  16418. + T_OPTIONAL = 272,
  16419. + T_PROMPT = 273,
  16420. + T_TYPE = 274,
  16421. + T_DEFAULT = 275,
  16422. + T_SELECT = 276,
  16423. + T_RANGE = 277,
  16424. + T_VISIBLE = 278,
  16425. + T_OPTION = 279,
  16426. + T_ON = 280,
  16427. + T_WORD = 281,
  16428. + T_WORD_QUOTE = 282,
  16429. + T_UNEQUAL = 283,
  16430. + T_CLOSE_PAREN = 284,
  16431. + T_OPEN_PAREN = 285,
  16432. + T_EOL = 286,
  16433. + T_OR = 287,
  16434. + T_AND = 288,
  16435. + T_EQUAL = 289,
  16436. + T_NOT = 290
  16437. + };
  16438. +#endif
  16439. +
  16440. +
  16441. +
  16442. #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
  16443. typedef union YYSTYPE
  16444. -
  16445. {
  16446. +
  16447. +
  16448. char *string;
  16449. struct file *file;
  16450. struct symbol *symbol;
  16451. struct expr *expr;
  16452. struct menu *menu;
  16453. - struct kconf_id *id;
  16454. -}
  16455. -/* Line 187 of yacc.c. */
  16456. + const struct kconf_id *id;
  16457. +
  16458. +
  16459. - YYSTYPE;
  16460. +} YYSTYPE;
  16461. +# define YYSTYPE_IS_TRIVIAL 1
  16462. # define yystype YYSTYPE /* obsolescent; will be withdrawn */
  16463. # define YYSTYPE_IS_DECLARED 1
  16464. -# define YYSTYPE_IS_TRIVIAL 1
  16465. #endif
  16466. -
  16467. /* Copy the second part of user declarations. */
  16468. -/* Line 216 of yacc.c. */
  16469. +/* Include zconf.hash.c here so it can see the token constants. */
  16470. +#include "zconf.hash.c"
  16471. +
  16472. #ifdef short
  16473. @@ -281,7 +249,7 @@
  16474. #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
  16475. #ifndef YY_
  16476. -# if YYENABLE_NLS
  16477. +# if defined YYENABLE_NLS && YYENABLE_NLS
  16478. # if ENABLE_NLS
  16479. # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
  16480. # define YY_(msgid) dgettext ("bison-runtime", msgid)
  16481. @@ -306,14 +274,14 @@
  16482. #if (defined __STDC__ || defined __C99__FUNC__ \
  16483. || defined __cplusplus || defined _MSC_VER)
  16484. static int
  16485. -YYID (int i)
  16486. +YYID (int yyi)
  16487. #else
  16488. static int
  16489. -YYID (i)
  16490. - int i;
  16491. +YYID (yyi)
  16492. + int yyi;
  16493. #endif
  16494. {
  16495. - return i;
  16496. + return yyi;
  16497. }
  16498. #endif
  16499. @@ -394,9 +362,9 @@
  16500. /* A type that is properly aligned for any stack member. */
  16501. union yyalloc
  16502. {
  16503. - yytype_int16 yyss;
  16504. - YYSTYPE yyvs;
  16505. - };
  16506. + yytype_int16 yyss_alloc;
  16507. + YYSTYPE yyvs_alloc;
  16508. +};
  16509. /* The size of the maximum gap between one aligned stack and the next. */
  16510. # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
  16511. @@ -430,12 +398,12 @@
  16512. elements in the stack, and YYPTR gives the new location of the
  16513. stack. Advance YYPTR to a properly aligned location for the next
  16514. stack. */
  16515. -# define YYSTACK_RELOCATE(Stack) \
  16516. +# define YYSTACK_RELOCATE(Stack_alloc, Stack) \
  16517. do \
  16518. { \
  16519. YYSIZE_T yynewbytes; \
  16520. - YYCOPY (&yyptr->Stack, Stack, yysize); \
  16521. - Stack = &yyptr->Stack; \
  16522. + YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
  16523. + Stack = &yyptr->Stack_alloc; \
  16524. yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
  16525. yyptr += yynewbytes / sizeof (*yyptr); \
  16526. } \
  16527. @@ -444,22 +412,22 @@
  16528. #endif
  16529. /* YYFINAL -- State number of the termination state. */
  16530. -#define YYFINAL 3
  16531. +#define YYFINAL 11
  16532. /* YYLAST -- Last index in YYTABLE. */
  16533. -#define YYLAST 259
  16534. +#define YYLAST 290
  16535. /* YYNTOKENS -- Number of terminals. */
  16536. -#define YYNTOKENS 35
  16537. +#define YYNTOKENS 36
  16538. /* YYNNTS -- Number of nonterminals. */
  16539. -#define YYNNTS 46
  16540. +#define YYNNTS 50
  16541. /* YYNRULES -- Number of rules. */
  16542. -#define YYNRULES 110
  16543. +#define YYNRULES 118
  16544. /* YYNRULES -- Number of states. */
  16545. -#define YYNSTATES 180
  16546. +#define YYNSTATES 191
  16547. /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
  16548. #define YYUNDEFTOK 2
  16549. -#define YYMAXUTOK 289
  16550. +#define YYMAXUTOK 290
  16551. #define YYTRANSLATE(YYX) \
  16552. ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
  16553. @@ -495,7 +463,8 @@
  16554. 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
  16555. 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
  16556. 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
  16557. - 25, 26, 27, 28, 29, 30, 31, 32, 33, 34
  16558. + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
  16559. + 35
  16560. };
  16561. #if YYDEBUG
  16562. @@ -503,73 +472,75 @@
  16563. YYRHS. */
  16564. static const yytype_uint16 yyprhs[] =
  16565. {
  16566. - 0, 0, 3, 5, 6, 9, 12, 15, 20, 23,
  16567. - 28, 33, 37, 39, 41, 43, 45, 47, 49, 51,
  16568. - 53, 55, 57, 59, 61, 63, 67, 70, 74, 77,
  16569. - 81, 84, 85, 88, 91, 94, 97, 100, 103, 107,
  16570. - 112, 117, 122, 128, 132, 133, 137, 138, 141, 145,
  16571. - 148, 150, 154, 155, 158, 161, 164, 167, 170, 175,
  16572. - 179, 182, 187, 188, 191, 195, 197, 201, 202, 205,
  16573. - 208, 211, 215, 218, 220, 224, 225, 228, 231, 234,
  16574. - 238, 242, 245, 248, 251, 252, 255, 258, 261, 266,
  16575. - 267, 270, 272, 274, 277, 280, 283, 285, 288, 289,
  16576. - 292, 294, 298, 302, 306, 309, 313, 317, 319, 321,
  16577. - 322
  16578. + 0, 0, 3, 6, 8, 11, 13, 14, 17, 20,
  16579. + 23, 26, 31, 36, 40, 42, 44, 46, 48, 50,
  16580. + 52, 54, 56, 58, 60, 62, 64, 66, 68, 72,
  16581. + 75, 79, 82, 86, 89, 90, 93, 96, 99, 102,
  16582. + 105, 108, 112, 117, 122, 127, 133, 137, 138, 142,
  16583. + 143, 146, 150, 153, 155, 159, 160, 163, 166, 169,
  16584. + 172, 175, 180, 184, 187, 192, 193, 196, 200, 202,
  16585. + 206, 207, 210, 213, 216, 220, 224, 228, 230, 234,
  16586. + 235, 238, 241, 244, 248, 252, 255, 258, 261, 262,
  16587. + 265, 268, 271, 276, 277, 280, 283, 286, 287, 290,
  16588. + 292, 294, 297, 300, 303, 305, 308, 309, 312, 314,
  16589. + 318, 322, 326, 329, 333, 337, 339, 341, 342
  16590. };
  16591. /* YYRHS -- A `-1'-separated list of the rules' RHS. */
  16592. static const yytype_int8 yyrhs[] =
  16593. {
  16594. - 36, 0, -1, 37, -1, -1, 37, 39, -1, 37,
  16595. - 53, -1, 37, 64, -1, 37, 3, 74, 76, -1,
  16596. - 37, 75, -1, 37, 25, 1, 30, -1, 37, 38,
  16597. - 1, 30, -1, 37, 1, 30, -1, 16, -1, 18,
  16598. - -1, 19, -1, 21, -1, 17, -1, 22, -1, 20,
  16599. - -1, 30, -1, 59, -1, 68, -1, 42, -1, 44,
  16600. - -1, 66, -1, 25, 1, 30, -1, 1, 30, -1,
  16601. - 10, 25, 30, -1, 41, 45, -1, 11, 25, 30,
  16602. - -1, 43, 45, -1, -1, 45, 46, -1, 45, 47,
  16603. - -1, 45, 72, -1, 45, 70, -1, 45, 40, -1,
  16604. - 45, 30, -1, 19, 73, 30, -1, 18, 74, 77,
  16605. - 30, -1, 20, 78, 77, 30, -1, 21, 25, 77,
  16606. - 30, -1, 22, 79, 79, 77, 30, -1, 23, 48,
  16607. - 30, -1, -1, 48, 25, 49, -1, -1, 33, 74,
  16608. - -1, 7, 80, 30, -1, 50, 54, -1, 75, -1,
  16609. - 51, 56, 52, -1, -1, 54, 55, -1, 54, 72,
  16610. - -1, 54, 70, -1, 54, 30, -1, 54, 40, -1,
  16611. - 18, 74, 77, 30, -1, 19, 73, 30, -1, 17,
  16612. - 30, -1, 20, 25, 77, 30, -1, -1, 56, 39,
  16613. - -1, 14, 78, 76, -1, 75, -1, 57, 60, 58,
  16614. - -1, -1, 60, 39, -1, 60, 64, -1, 60, 53,
  16615. - -1, 4, 74, 30, -1, 61, 71, -1, 75, -1,
  16616. - 62, 65, 63, -1, -1, 65, 39, -1, 65, 64,
  16617. - -1, 65, 53, -1, 6, 74, 30, -1, 9, 74,
  16618. - 30, -1, 67, 71, -1, 12, 30, -1, 69, 13,
  16619. - -1, -1, 71, 72, -1, 71, 30, -1, 71, 40,
  16620. - -1, 16, 24, 78, 30, -1, -1, 74, 77, -1,
  16621. - 25, -1, 26, -1, 5, 30, -1, 8, 30, -1,
  16622. - 15, 30, -1, 30, -1, 76, 30, -1, -1, 14,
  16623. - 78, -1, 79, -1, 79, 33, 79, -1, 79, 27,
  16624. - 79, -1, 29, 78, 28, -1, 34, 78, -1, 78,
  16625. - 31, 78, -1, 78, 32, 78, -1, 25, -1, 26,
  16626. - -1, -1, 25, -1
  16627. + 37, 0, -1, 81, 38, -1, 38, -1, 63, 39,
  16628. + -1, 39, -1, -1, 39, 41, -1, 39, 55, -1,
  16629. + 39, 67, -1, 39, 80, -1, 39, 26, 1, 31,
  16630. + -1, 39, 40, 1, 31, -1, 39, 1, 31, -1,
  16631. + 16, -1, 18, -1, 19, -1, 21, -1, 17, -1,
  16632. + 22, -1, 20, -1, 23, -1, 31, -1, 61, -1,
  16633. + 71, -1, 44, -1, 46, -1, 69, -1, 26, 1,
  16634. + 31, -1, 1, 31, -1, 10, 26, 31, -1, 43,
  16635. + 47, -1, 11, 26, 31, -1, 45, 47, -1, -1,
  16636. + 47, 48, -1, 47, 49, -1, 47, 75, -1, 47,
  16637. + 73, -1, 47, 42, -1, 47, 31, -1, 19, 78,
  16638. + 31, -1, 18, 79, 82, 31, -1, 20, 83, 82,
  16639. + 31, -1, 21, 26, 82, 31, -1, 22, 84, 84,
  16640. + 82, 31, -1, 24, 50, 31, -1, -1, 50, 26,
  16641. + 51, -1, -1, 34, 79, -1, 7, 85, 31, -1,
  16642. + 52, 56, -1, 80, -1, 53, 58, 54, -1, -1,
  16643. + 56, 57, -1, 56, 75, -1, 56, 73, -1, 56,
  16644. + 31, -1, 56, 42, -1, 18, 79, 82, 31, -1,
  16645. + 19, 78, 31, -1, 17, 31, -1, 20, 26, 82,
  16646. + 31, -1, -1, 58, 41, -1, 14, 83, 81, -1,
  16647. + 80, -1, 59, 62, 60, -1, -1, 62, 41, -1,
  16648. + 62, 67, -1, 62, 55, -1, 3, 79, 81, -1,
  16649. + 4, 79, 31, -1, 64, 76, 74, -1, 80, -1,
  16650. + 65, 68, 66, -1, -1, 68, 41, -1, 68, 67,
  16651. + -1, 68, 55, -1, 6, 79, 31, -1, 9, 79,
  16652. + 31, -1, 70, 74, -1, 12, 31, -1, 72, 13,
  16653. + -1, -1, 74, 75, -1, 74, 31, -1, 74, 42,
  16654. + -1, 16, 25, 83, 31, -1, -1, 76, 77, -1,
  16655. + 76, 31, -1, 23, 82, -1, -1, 79, 82, -1,
  16656. + 26, -1, 27, -1, 5, 31, -1, 8, 31, -1,
  16657. + 15, 31, -1, 31, -1, 81, 31, -1, -1, 14,
  16658. + 83, -1, 84, -1, 84, 34, 84, -1, 84, 28,
  16659. + 84, -1, 30, 83, 29, -1, 35, 83, -1, 83,
  16660. + 32, 83, -1, 83, 33, 83, -1, 26, -1, 27,
  16661. + -1, -1, 26, -1
  16662. };
  16663. /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
  16664. static const yytype_uint16 yyrline[] =
  16665. {
  16666. - 0, 104, 104, 106, 108, 109, 110, 111, 112, 113,
  16667. - 114, 118, 122, 122, 122, 122, 122, 122, 122, 126,
  16668. - 127, 128, 129, 130, 131, 135, 136, 142, 150, 156,
  16669. - 164, 174, 176, 177, 178, 179, 180, 181, 184, 192,
  16670. - 198, 208, 214, 220, 223, 225, 236, 237, 242, 251,
  16671. - 256, 264, 267, 269, 270, 271, 272, 273, 276, 282,
  16672. - 293, 299, 309, 311, 316, 324, 332, 335, 337, 338,
  16673. - 339, 344, 351, 356, 364, 367, 369, 370, 371, 374,
  16674. - 382, 389, 396, 402, 409, 411, 412, 413, 416, 424,
  16675. - 426, 431, 432, 435, 436, 437, 441, 442, 445, 446,
  16676. - 449, 450, 451, 452, 453, 454, 455, 458, 459, 462,
  16677. - 463
  16678. + 0, 104, 104, 104, 106, 106, 108, 110, 111, 112,
  16679. + 113, 114, 115, 119, 123, 123, 123, 123, 123, 123,
  16680. + 123, 123, 127, 128, 129, 130, 131, 132, 136, 137,
  16681. + 143, 151, 157, 165, 175, 177, 178, 179, 180, 181,
  16682. + 182, 185, 193, 199, 209, 215, 221, 224, 226, 237,
  16683. + 238, 243, 252, 257, 265, 268, 270, 271, 272, 273,
  16684. + 274, 277, 283, 294, 300, 310, 312, 317, 325, 333,
  16685. + 336, 338, 339, 340, 345, 352, 359, 364, 372, 375,
  16686. + 377, 378, 379, 382, 390, 397, 404, 410, 417, 419,
  16687. + 420, 421, 424, 432, 434, 435, 438, 445, 447, 452,
  16688. + 453, 456, 457, 458, 462, 463, 466, 467, 470, 471,
  16689. + 472, 473, 474, 475, 476, 479, 480, 483, 484
  16690. };
  16691. #endif
  16692. @@ -582,19 +553,19 @@
  16693. "T_SOURCE", "T_CHOICE", "T_ENDCHOICE", "T_COMMENT", "T_CONFIG",
  16694. "T_MENUCONFIG", "T_HELP", "T_HELPTEXT", "T_IF", "T_ENDIF", "T_DEPENDS",
  16695. "T_OPTIONAL", "T_PROMPT", "T_TYPE", "T_DEFAULT", "T_SELECT", "T_RANGE",
  16696. - "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL",
  16697. + "T_VISIBLE", "T_OPTION", "T_ON", "T_WORD", "T_WORD_QUOTE", "T_UNEQUAL",
  16698. "T_CLOSE_PAREN", "T_OPEN_PAREN", "T_EOL", "T_OR", "T_AND", "T_EQUAL",
  16699. - "T_NOT", "$accept", "input", "stmt_list", "option_name", "common_stmt",
  16700. - "option_error", "config_entry_start", "config_stmt",
  16701. + "T_NOT", "$accept", "input", "start", "stmt_list", "option_name",
  16702. + "common_stmt", "option_error", "config_entry_start", "config_stmt",
  16703. "menuconfig_entry_start", "menuconfig_stmt", "config_option_list",
  16704. "config_option", "symbol_option", "symbol_option_list",
  16705. "symbol_option_arg", "choice", "choice_entry", "choice_end",
  16706. "choice_stmt", "choice_option_list", "choice_option", "choice_block",
  16707. - "if_entry", "if_end", "if_stmt", "if_block", "menu", "menu_entry",
  16708. - "menu_end", "menu_stmt", "menu_block", "source_stmt", "comment",
  16709. - "comment_stmt", "help_start", "help", "depends_list", "depends",
  16710. - "prompt_stmt_opt", "prompt", "end", "nl", "if_expr", "expr", "symbol",
  16711. - "word_opt", 0
  16712. + "if_entry", "if_end", "if_stmt", "if_block", "mainmenu_stmt", "menu",
  16713. + "menu_entry", "menu_end", "menu_stmt", "menu_block", "source_stmt",
  16714. + "comment", "comment_stmt", "help_start", "help", "depends_list",
  16715. + "depends", "visibility_list", "visible", "prompt_stmt_opt", "prompt",
  16716. + "end", "nl", "if_expr", "expr", "symbol", "word_opt", 0
  16717. };
  16718. #endif
  16719. @@ -606,42 +577,42 @@
  16720. 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
  16721. 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
  16722. 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
  16723. - 285, 286, 287, 288, 289
  16724. + 285, 286, 287, 288, 289, 290
  16725. };
  16726. # endif
  16727. /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
  16728. static const yytype_uint8 yyr1[] =
  16729. {
  16730. - 0, 35, 36, 37, 37, 37, 37, 37, 37, 37,
  16731. - 37, 37, 38, 38, 38, 38, 38, 38, 38, 39,
  16732. - 39, 39, 39, 39, 39, 40, 40, 41, 42, 43,
  16733. - 44, 45, 45, 45, 45, 45, 45, 45, 46, 46,
  16734. - 46, 46, 46, 47, 48, 48, 49, 49, 50, 51,
  16735. - 52, 53, 54, 54, 54, 54, 54, 54, 55, 55,
  16736. - 55, 55, 56, 56, 57, 58, 59, 60, 60, 60,
  16737. - 60, 61, 62, 63, 64, 65, 65, 65, 65, 66,
  16738. - 67, 68, 69, 70, 71, 71, 71, 71, 72, 73,
  16739. - 73, 74, 74, 75, 75, 75, 76, 76, 77, 77,
  16740. - 78, 78, 78, 78, 78, 78, 78, 79, 79, 80,
  16741. - 80
  16742. + 0, 36, 37, 37, 38, 38, 39, 39, 39, 39,
  16743. + 39, 39, 39, 39, 40, 40, 40, 40, 40, 40,
  16744. + 40, 40, 41, 41, 41, 41, 41, 41, 42, 42,
  16745. + 43, 44, 45, 46, 47, 47, 47, 47, 47, 47,
  16746. + 47, 48, 48, 48, 48, 48, 49, 50, 50, 51,
  16747. + 51, 52, 53, 54, 55, 56, 56, 56, 56, 56,
  16748. + 56, 57, 57, 57, 57, 58, 58, 59, 60, 61,
  16749. + 62, 62, 62, 62, 63, 64, 65, 66, 67, 68,
  16750. + 68, 68, 68, 69, 70, 71, 72, 73, 74, 74,
  16751. + 74, 74, 75, 76, 76, 76, 77, 78, 78, 79,
  16752. + 79, 80, 80, 80, 81, 81, 82, 82, 83, 83,
  16753. + 83, 83, 83, 83, 83, 84, 84, 85, 85
  16754. };
  16755. /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
  16756. static const yytype_uint8 yyr2[] =
  16757. {
  16758. - 0, 2, 1, 0, 2, 2, 2, 4, 2, 4,
  16759. - 4, 3, 1, 1, 1, 1, 1, 1, 1, 1,
  16760. - 1, 1, 1, 1, 1, 3, 2, 3, 2, 3,
  16761. - 2, 0, 2, 2, 2, 2, 2, 2, 3, 4,
  16762. - 4, 4, 5, 3, 0, 3, 0, 2, 3, 2,
  16763. - 1, 3, 0, 2, 2, 2, 2, 2, 4, 3,
  16764. - 2, 4, 0, 2, 3, 1, 3, 0, 2, 2,
  16765. - 2, 3, 2, 1, 3, 0, 2, 2, 2, 3,
  16766. - 3, 2, 2, 2, 0, 2, 2, 2, 4, 0,
  16767. - 2, 1, 1, 2, 2, 2, 1, 2, 0, 2,
  16768. - 1, 3, 3, 3, 2, 3, 3, 1, 1, 0,
  16769. - 1
  16770. + 0, 2, 2, 1, 2, 1, 0, 2, 2, 2,
  16771. + 2, 4, 4, 3, 1, 1, 1, 1, 1, 1,
  16772. + 1, 1, 1, 1, 1, 1, 1, 1, 3, 2,
  16773. + 3, 2, 3, 2, 0, 2, 2, 2, 2, 2,
  16774. + 2, 3, 4, 4, 4, 5, 3, 0, 3, 0,
  16775. + 2, 3, 2, 1, 3, 0, 2, 2, 2, 2,
  16776. + 2, 4, 3, 2, 4, 0, 2, 3, 1, 3,
  16777. + 0, 2, 2, 2, 3, 3, 3, 1, 3, 0,
  16778. + 2, 2, 2, 3, 3, 2, 2, 2, 0, 2,
  16779. + 2, 2, 4, 0, 2, 2, 2, 0, 2, 1,
  16780. + 1, 2, 2, 2, 1, 2, 0, 2, 1, 3,
  16781. + 3, 3, 2, 3, 3, 1, 1, 0, 1
  16782. };
  16783. /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
  16784. @@ -649,158 +620,172 @@
  16785. means the default is an error. */
  16786. static const yytype_uint8 yydefact[] =
  16787. {
  16788. - 3, 0, 0, 1, 0, 0, 0, 0, 0, 109,
  16789. - 0, 0, 0, 0, 0, 0, 12, 16, 13, 14,
  16790. - 18, 15, 17, 0, 19, 0, 4, 31, 22, 31,
  16791. - 23, 52, 62, 5, 67, 20, 84, 75, 6, 24,
  16792. - 84, 21, 8, 11, 91, 92, 0, 0, 93, 0,
  16793. - 110, 0, 94, 0, 0, 0, 107, 108, 0, 0,
  16794. - 0, 100, 95, 0, 0, 0, 0, 0, 0, 0,
  16795. - 0, 0, 0, 96, 7, 71, 79, 48, 80, 27,
  16796. - 29, 0, 104, 0, 0, 64, 0, 0, 9, 10,
  16797. - 0, 0, 0, 0, 89, 0, 0, 0, 44, 0,
  16798. - 37, 36, 32, 33, 0, 35, 34, 0, 0, 89,
  16799. - 0, 56, 57, 53, 55, 54, 63, 51, 50, 68,
  16800. - 70, 66, 69, 65, 86, 87, 85, 76, 78, 74,
  16801. - 77, 73, 97, 103, 105, 106, 102, 101, 26, 82,
  16802. - 0, 98, 0, 98, 98, 98, 0, 0, 0, 83,
  16803. - 60, 98, 0, 98, 0, 0, 0, 38, 90, 0,
  16804. - 0, 98, 46, 43, 25, 0, 59, 0, 88, 99,
  16805. - 39, 40, 41, 0, 0, 45, 58, 61, 42, 47
  16806. + 6, 0, 104, 0, 3, 0, 6, 6, 99, 100,
  16807. + 0, 1, 0, 0, 0, 0, 117, 0, 0, 0,
  16808. + 0, 0, 0, 14, 18, 15, 16, 20, 17, 19,
  16809. + 21, 0, 22, 0, 7, 34, 25, 34, 26, 55,
  16810. + 65, 8, 70, 23, 93, 79, 9, 27, 88, 24,
  16811. + 10, 0, 105, 2, 74, 13, 0, 101, 0, 118,
  16812. + 0, 102, 0, 0, 0, 115, 116, 0, 0, 0,
  16813. + 108, 103, 0, 0, 0, 0, 0, 0, 0, 88,
  16814. + 0, 0, 75, 83, 51, 84, 30, 32, 0, 112,
  16815. + 0, 0, 67, 0, 0, 11, 12, 0, 0, 0,
  16816. + 0, 97, 0, 0, 0, 47, 0, 40, 39, 35,
  16817. + 36, 0, 38, 37, 0, 0, 97, 0, 59, 60,
  16818. + 56, 58, 57, 66, 54, 53, 71, 73, 69, 72,
  16819. + 68, 106, 95, 0, 94, 80, 82, 78, 81, 77,
  16820. + 90, 91, 89, 111, 113, 114, 110, 109, 29, 86,
  16821. + 0, 106, 0, 106, 106, 106, 0, 0, 0, 87,
  16822. + 63, 106, 0, 106, 0, 96, 0, 0, 41, 98,
  16823. + 0, 0, 106, 49, 46, 28, 0, 62, 0, 107,
  16824. + 92, 42, 43, 44, 0, 0, 48, 61, 64, 45,
  16825. + 50
  16826. };
  16827. /* YYDEFGOTO[NTERM-NUM]. */
  16828. static const yytype_int16 yydefgoto[] =
  16829. {
  16830. - -1, 1, 2, 25, 26, 101, 27, 28, 29, 30,
  16831. - 65, 102, 103, 147, 175, 31, 32, 117, 33, 67,
  16832. - 113, 68, 34, 121, 35, 69, 36, 37, 129, 38,
  16833. - 71, 39, 40, 41, 104, 105, 70, 106, 142, 143,
  16834. - 42, 74, 156, 60, 61, 51
  16835. + -1, 3, 4, 5, 33, 34, 108, 35, 36, 37,
  16836. + 38, 74, 109, 110, 157, 186, 39, 40, 124, 41,
  16837. + 76, 120, 77, 42, 128, 43, 78, 6, 44, 45,
  16838. + 137, 46, 80, 47, 48, 49, 111, 112, 81, 113,
  16839. + 79, 134, 152, 153, 50, 7, 165, 69, 70, 60
  16840. };
  16841. /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
  16842. STATE-NUM. */
  16843. -#define YYPACT_NINF -80
  16844. +#define YYPACT_NINF -90
  16845. static const yytype_int16 yypact[] =
  16846. {
  16847. - -80, 2, 132, -80, -13, -1, -1, -2, -1, 9,
  16848. - 33, -1, 27, 40, -3, 38, -80, -80, -80, -80,
  16849. - -80, -80, -80, 71, -80, 77, -80, -80, -80, -80,
  16850. - -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
  16851. - -80, -80, -80, -80, -80, -80, 57, 61, -80, 63,
  16852. - -80, 76, -80, 87, 101, 133, -80, -80, -3, -3,
  16853. - 195, -6, -80, 136, 149, 39, 104, 65, 150, 5,
  16854. - 194, 5, 167, -80, 176, -80, -80, -80, -80, -80,
  16855. - -80, 68, -80, -3, -3, 176, 72, 72, -80, -80,
  16856. - 177, 187, 78, -1, -1, -3, 196, 72, -80, 222,
  16857. - -80, -80, -80, -80, 221, -80, -80, 205, -1, -1,
  16858. - 211, -80, -80, -80, -80, -80, -80, -80, -80, -80,
  16859. - -80, -80, -80, -80, -80, -80, -80, -80, -80, -80,
  16860. - -80, -80, -80, -80, 206, -80, -80, -80, -80, -80,
  16861. - -3, 223, 209, 223, 197, 223, 72, 7, 210, -80,
  16862. - -80, 223, 212, 223, 201, -3, 213, -80, -80, 214,
  16863. - 215, 223, 208, -80, -80, 216, -80, 217, -80, 113,
  16864. - -80, -80, -80, 218, -1, -80, -80, -80, -80, -80
  16865. + 4, 42, -90, 96, -90, 111, -90, 15, -90, -90,
  16866. + 75, -90, 82, 42, 104, 42, 110, 107, 42, 115,
  16867. + 125, -4, 121, -90, -90, -90, -90, -90, -90, -90,
  16868. + -90, 162, -90, 163, -90, -90, -90, -90, -90, -90,
  16869. + -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
  16870. + -90, 139, -90, -90, 138, -90, 142, -90, 143, -90,
  16871. + 152, -90, 164, 167, 168, -90, -90, -4, -4, 77,
  16872. + -18, -90, 177, 185, 33, 71, 195, 247, 236, -2,
  16873. + 236, 171, -90, -90, -90, -90, -90, -90, 41, -90,
  16874. + -4, -4, 138, 97, 97, -90, -90, 186, 187, 194,
  16875. + 42, 42, -4, 196, 97, -90, 219, -90, -90, -90,
  16876. + -90, 210, -90, -90, 204, 42, 42, 199, -90, -90,
  16877. + -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
  16878. + -90, 222, -90, 223, -90, -90, -90, -90, -90, -90,
  16879. + -90, -90, -90, -90, 215, -90, -90, -90, -90, -90,
  16880. + -4, 222, 228, 222, -5, 222, 97, 35, 229, -90,
  16881. + -90, 222, 232, 222, -4, -90, 135, 233, -90, -90,
  16882. + 234, 235, 222, 240, -90, -90, 237, -90, 239, -13,
  16883. + -90, -90, -90, -90, 244, 42, -90, -90, -90, -90,
  16884. + -90
  16885. };
  16886. /* YYPGOTO[NTERM-NUM]. */
  16887. static const yytype_int16 yypgoto[] =
  16888. {
  16889. - -80, -80, -80, -80, 122, -34, -80, -80, -80, -80,
  16890. - 220, -80, -80, -80, -80, -80, -80, -80, 59, -80,
  16891. - -80, -80, -80, -80, -80, -80, -80, -80, -80, 125,
  16892. - -80, -80, -80, -80, -80, 183, 219, 22, 142, -5,
  16893. - 147, 192, 69, -54, -79, -80
  16894. + -90, -90, 269, 271, -90, 23, -70, -90, -90, -90,
  16895. + -90, 243, -90, -90, -90, -90, -90, -90, -90, -48,
  16896. + -90, -90, -90, -90, -90, -90, -90, -90, -90, -90,
  16897. + -90, -20, -90, -90, -90, -90, -90, 206, 205, -68,
  16898. + -90, -90, 169, -1, 27, -7, 118, -66, -89, -90
  16899. };
  16900. /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
  16901. positive, shift that token. If negative, reduce the rule which
  16902. number is the opposite. If zero, do what YYDEFACT says.
  16903. If YYTABLE_NINF, syntax error. */
  16904. -#define YYTABLE_NINF -82
  16905. +#define YYTABLE_NINF -86
  16906. static const yytype_int16 yytable[] =
  16907. {
  16908. - 46, 47, 3, 49, 81, 82, 53, 136, 137, 6,
  16909. - 7, 8, 9, 10, 11, 12, 13, 43, 146, 14,
  16910. - 15, 86, 56, 57, 44, 45, 58, 87, 48, 134,
  16911. - 135, 59, 162, 112, 50, 24, 125, 163, 125, -28,
  16912. - 90, 144, -28, -28, -28, -28, -28, -28, -28, -28,
  16913. - -28, 91, 54, -28, -28, 92, -28, 93, 94, 95,
  16914. - 96, 97, 98, 52, 99, 55, 90, 161, 62, 100,
  16915. - -49, -49, 63, -49, -49, -49, -49, 91, 64, -49,
  16916. - -49, 92, 107, 108, 109, 110, 154, 73, 141, 115,
  16917. - 99, 75, 126, 76, 126, 111, 133, 56, 57, 83,
  16918. - 84, 169, 140, 151, -30, 90, 77, -30, -30, -30,
  16919. - -30, -30, -30, -30, -30, -30, 91, 78, -30, -30,
  16920. - 92, -30, 93, 94, 95, 96, 97, 98, 120, 99,
  16921. - 128, 79, -2, 4, 100, 5, 6, 7, 8, 9,
  16922. - 10, 11, 12, 13, 83, 84, 14, 15, 16, 17,
  16923. - 18, 19, 20, 21, 22, 7, 8, 23, 10, 11,
  16924. - 12, 13, 24, 80, 14, 15, 88, -81, 90, 179,
  16925. - -81, -81, -81, -81, -81, -81, -81, -81, -81, 89,
  16926. - 24, -81, -81, 92, -81, -81, -81, -81, -81, -81,
  16927. - 116, 119, 99, 127, 122, 90, 130, 124, -72, -72,
  16928. - -72, -72, -72, -72, -72, -72, 132, 138, -72, -72,
  16929. - 92, 155, 158, 159, 160, 118, 123, 139, 131, 99,
  16930. - 165, 145, 167, 148, 124, 73, 83, 84, 83, 84,
  16931. - 173, 168, 83, 84, 149, 150, 153, 155, 84, 157,
  16932. - 164, 174, 166, 170, 171, 172, 176, 177, 178, 66,
  16933. - 114, 152, 85, 0, 0, 0, 0, 0, 0, 72
  16934. + 10, 88, 89, 54, 146, 147, 119, 1, 122, 164,
  16935. + 93, 141, 56, 142, 58, 156, 94, 62, 1, 90,
  16936. + 91, 131, 65, 66, 144, 145, 67, 90, 91, 132,
  16937. + 127, 68, 136, -31, 97, 2, 154, -31, -31, -31,
  16938. + -31, -31, -31, -31, -31, 98, 52, -31, -31, 99,
  16939. + -31, 100, 101, 102, 103, 104, -31, 105, 129, 106,
  16940. + 138, 173, 92, 141, 107, 142, 174, 172, 8, 9,
  16941. + 143, -33, 97, 90, 91, -33, -33, -33, -33, -33,
  16942. + -33, -33, -33, 98, 166, -33, -33, 99, -33, 100,
  16943. + 101, 102, 103, 104, -33, 105, 11, 106, 179, 151,
  16944. + 123, 126, 107, 135, 125, 130, 2, 139, 2, 90,
  16945. + 91, -5, 12, 55, 161, 13, 14, 15, 16, 17,
  16946. + 18, 19, 20, 65, 66, 21, 22, 23, 24, 25,
  16947. + 26, 27, 28, 29, 30, 57, 59, 31, 61, -4,
  16948. + 12, 63, 32, 13, 14, 15, 16, 17, 18, 19,
  16949. + 20, 64, 71, 21, 22, 23, 24, 25, 26, 27,
  16950. + 28, 29, 30, 72, 73, 31, 180, 90, 91, 52,
  16951. + 32, -85, 97, 82, 83, -85, -85, -85, -85, -85,
  16952. + -85, -85, -85, 84, 190, -85, -85, 99, -85, -85,
  16953. + -85, -85, -85, -85, -85, 85, 97, 106, 86, 87,
  16954. + -52, -52, 140, -52, -52, -52, -52, 98, 95, -52,
  16955. + -52, 99, 114, 115, 116, 117, 96, 148, 149, 150,
  16956. + 158, 106, 155, 159, 97, 163, 118, -76, -76, -76,
  16957. + -76, -76, -76, -76, -76, 160, 164, -76, -76, 99,
  16958. + 13, 14, 15, 16, 17, 18, 19, 20, 91, 106,
  16959. + 21, 22, 14, 15, 140, 17, 18, 19, 20, 168,
  16960. + 175, 21, 22, 177, 181, 182, 183, 32, 187, 167,
  16961. + 188, 169, 170, 171, 185, 189, 53, 51, 32, 176,
  16962. + 75, 178, 121, 0, 133, 162, 0, 0, 0, 0,
  16963. + 184
  16964. };
  16965. static const yytype_int16 yycheck[] =
  16966. {
  16967. - 5, 6, 0, 8, 58, 59, 11, 86, 87, 4,
  16968. - 5, 6, 7, 8, 9, 10, 11, 30, 97, 14,
  16969. - 15, 27, 25, 26, 25, 26, 29, 33, 30, 83,
  16970. - 84, 34, 25, 67, 25, 30, 70, 30, 72, 0,
  16971. - 1, 95, 3, 4, 5, 6, 7, 8, 9, 10,
  16972. - 11, 12, 25, 14, 15, 16, 17, 18, 19, 20,
  16973. - 21, 22, 23, 30, 25, 25, 1, 146, 30, 30,
  16974. - 5, 6, 1, 8, 9, 10, 11, 12, 1, 14,
  16975. - 15, 16, 17, 18, 19, 20, 140, 30, 93, 67,
  16976. - 25, 30, 70, 30, 72, 30, 28, 25, 26, 31,
  16977. - 32, 155, 24, 108, 0, 1, 30, 3, 4, 5,
  16978. - 6, 7, 8, 9, 10, 11, 12, 30, 14, 15,
  16979. - 16, 17, 18, 19, 20, 21, 22, 23, 69, 25,
  16980. - 71, 30, 0, 1, 30, 3, 4, 5, 6, 7,
  16981. - 8, 9, 10, 11, 31, 32, 14, 15, 16, 17,
  16982. - 18, 19, 20, 21, 22, 5, 6, 25, 8, 9,
  16983. - 10, 11, 30, 30, 14, 15, 30, 0, 1, 174,
  16984. - 3, 4, 5, 6, 7, 8, 9, 10, 11, 30,
  16985. - 30, 14, 15, 16, 17, 18, 19, 20, 21, 22,
  16986. - 68, 69, 25, 71, 69, 1, 71, 30, 4, 5,
  16987. - 6, 7, 8, 9, 10, 11, 30, 30, 14, 15,
  16988. - 16, 14, 143, 144, 145, 68, 69, 30, 71, 25,
  16989. - 151, 25, 153, 1, 30, 30, 31, 32, 31, 32,
  16990. - 161, 30, 31, 32, 13, 30, 25, 14, 32, 30,
  16991. - 30, 33, 30, 30, 30, 30, 30, 30, 30, 29,
  16992. - 67, 109, 60, -1, -1, -1, -1, -1, -1, 40
  16993. + 1, 67, 68, 10, 93, 94, 76, 3, 76, 14,
  16994. + 28, 81, 13, 81, 15, 104, 34, 18, 3, 32,
  16995. + 33, 23, 26, 27, 90, 91, 30, 32, 33, 31,
  16996. + 78, 35, 80, 0, 1, 31, 102, 4, 5, 6,
  16997. + 7, 8, 9, 10, 11, 12, 31, 14, 15, 16,
  16998. + 17, 18, 19, 20, 21, 22, 23, 24, 78, 26,
  16999. + 80, 26, 69, 133, 31, 133, 31, 156, 26, 27,
  17000. + 29, 0, 1, 32, 33, 4, 5, 6, 7, 8,
  17001. + 9, 10, 11, 12, 150, 14, 15, 16, 17, 18,
  17002. + 19, 20, 21, 22, 23, 24, 0, 26, 164, 100,
  17003. + 77, 78, 31, 80, 77, 78, 31, 80, 31, 32,
  17004. + 33, 0, 1, 31, 115, 4, 5, 6, 7, 8,
  17005. + 9, 10, 11, 26, 27, 14, 15, 16, 17, 18,
  17006. + 19, 20, 21, 22, 23, 31, 26, 26, 31, 0,
  17007. + 1, 26, 31, 4, 5, 6, 7, 8, 9, 10,
  17008. + 11, 26, 31, 14, 15, 16, 17, 18, 19, 20,
  17009. + 21, 22, 23, 1, 1, 26, 31, 32, 33, 31,
  17010. + 31, 0, 1, 31, 31, 4, 5, 6, 7, 8,
  17011. + 9, 10, 11, 31, 185, 14, 15, 16, 17, 18,
  17012. + 19, 20, 21, 22, 23, 31, 1, 26, 31, 31,
  17013. + 5, 6, 31, 8, 9, 10, 11, 12, 31, 14,
  17014. + 15, 16, 17, 18, 19, 20, 31, 31, 31, 25,
  17015. + 1, 26, 26, 13, 1, 26, 31, 4, 5, 6,
  17016. + 7, 8, 9, 10, 11, 31, 14, 14, 15, 16,
  17017. + 4, 5, 6, 7, 8, 9, 10, 11, 33, 26,
  17018. + 14, 15, 5, 6, 31, 8, 9, 10, 11, 31,
  17019. + 31, 14, 15, 31, 31, 31, 31, 31, 31, 151,
  17020. + 31, 153, 154, 155, 34, 31, 7, 6, 31, 161,
  17021. + 37, 163, 76, -1, 79, 116, -1, -1, -1, -1,
  17022. + 172
  17023. };
  17024. /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
  17025. symbol of state STATE-NUM. */
  17026. static const yytype_uint8 yystos[] =
  17027. {
  17028. - 0, 36, 37, 0, 1, 3, 4, 5, 6, 7,
  17029. - 8, 9, 10, 11, 14, 15, 16, 17, 18, 19,
  17030. - 20, 21, 22, 25, 30, 38, 39, 41, 42, 43,
  17031. - 44, 50, 51, 53, 57, 59, 61, 62, 64, 66,
  17032. - 67, 68, 75, 30, 25, 26, 74, 74, 30, 74,
  17033. - 25, 80, 30, 74, 25, 25, 25, 26, 29, 34,
  17034. - 78, 79, 30, 1, 1, 45, 45, 54, 56, 60,
  17035. - 71, 65, 71, 30, 76, 30, 30, 30, 30, 30,
  17036. - 30, 78, 78, 31, 32, 76, 27, 33, 30, 30,
  17037. - 1, 12, 16, 18, 19, 20, 21, 22, 23, 25,
  17038. - 30, 40, 46, 47, 69, 70, 72, 17, 18, 19,
  17039. - 20, 30, 40, 55, 70, 72, 39, 52, 75, 39,
  17040. - 53, 58, 64, 75, 30, 40, 72, 39, 53, 63,
  17041. - 64, 75, 30, 28, 78, 78, 79, 79, 30, 30,
  17042. - 24, 74, 73, 74, 78, 25, 79, 48, 1, 13,
  17043. - 30, 74, 73, 25, 78, 14, 77, 30, 77, 77,
  17044. - 77, 79, 25, 30, 30, 77, 30, 77, 30, 78,
  17045. - 30, 30, 30, 77, 33, 49, 30, 30, 30, 74
  17046. + 0, 3, 31, 37, 38, 39, 63, 81, 26, 27,
  17047. + 79, 0, 1, 4, 5, 6, 7, 8, 9, 10,
  17048. + 11, 14, 15, 16, 17, 18, 19, 20, 21, 22,
  17049. + 23, 26, 31, 40, 41, 43, 44, 45, 46, 52,
  17050. + 53, 55, 59, 61, 64, 65, 67, 69, 70, 71,
  17051. + 80, 39, 31, 38, 81, 31, 79, 31, 79, 26,
  17052. + 85, 31, 79, 26, 26, 26, 27, 30, 35, 83,
  17053. + 84, 31, 1, 1, 47, 47, 56, 58, 62, 76,
  17054. + 68, 74, 31, 31, 31, 31, 31, 31, 83, 83,
  17055. + 32, 33, 81, 28, 34, 31, 31, 1, 12, 16,
  17056. + 18, 19, 20, 21, 22, 24, 26, 31, 42, 48,
  17057. + 49, 72, 73, 75, 17, 18, 19, 20, 31, 42,
  17058. + 57, 73, 75, 41, 54, 80, 41, 55, 60, 67,
  17059. + 80, 23, 31, 74, 77, 41, 55, 66, 67, 80,
  17060. + 31, 42, 75, 29, 83, 83, 84, 84, 31, 31,
  17061. + 25, 79, 78, 79, 83, 26, 84, 50, 1, 13,
  17062. + 31, 79, 78, 26, 14, 82, 83, 82, 31, 82,
  17063. + 82, 82, 84, 26, 31, 31, 82, 31, 82, 83,
  17064. + 31, 31, 31, 31, 82, 34, 51, 31, 31, 31,
  17065. + 79
  17066. };
  17067. #define yyerrok (yyerrstatus = 0)
  17068. @@ -815,9 +800,18 @@
  17069. /* Like YYERROR except do call yyerror. This remains here temporarily
  17070. to ease the transition to the new meaning of YYERROR, for GCC.
  17071. - Once GCC version 2 has supplanted version 1, this can go. */
  17072. + Once GCC version 2 has supplanted version 1, this can go. However,
  17073. + YYFAIL appears to be in use. Nevertheless, it is formally deprecated
  17074. + in Bison 2.4.2's NEWS entry, where a plan to phase it out is
  17075. + discussed. */
  17076. #define YYFAIL goto yyerrlab
  17077. +#if defined YYFAIL
  17078. + /* This is here to suppress warnings from the GCC cpp's
  17079. + -Wunused-macros. Normally we don't worry about that warning, but
  17080. + some users do, and we want to make it easy for users to remove
  17081. + YYFAIL uses, which will produce warnings from Bison 2.5. */
  17082. +#endif
  17083. #define YYRECOVERING() (!!yyerrstatus)
  17084. @@ -874,7 +868,7 @@
  17085. we won't break user code: when these are the locations we know. */
  17086. #ifndef YY_LOCATION_PRINT
  17087. -# if YYLTYPE_IS_TRIVIAL
  17088. +# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
  17089. # define YY_LOCATION_PRINT(File, Loc) \
  17090. fprintf (File, "%d.%d-%d.%d", \
  17091. (Loc).first_line, (Loc).first_column, \
  17092. @@ -985,17 +979,20 @@
  17093. #if (defined __STDC__ || defined __C99__FUNC__ \
  17094. || defined __cplusplus || defined _MSC_VER)
  17095. static void
  17096. -yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
  17097. +yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
  17098. #else
  17099. static void
  17100. -yy_stack_print (bottom, top)
  17101. - yytype_int16 *bottom;
  17102. - yytype_int16 *top;
  17103. +yy_stack_print (yybottom, yytop)
  17104. + yytype_int16 *yybottom;
  17105. + yytype_int16 *yytop;
  17106. #endif
  17107. {
  17108. YYFPRINTF (stderr, "Stack now");
  17109. - for (; bottom <= top; ++bottom)
  17110. - YYFPRINTF (stderr, " %d", *bottom);
  17111. + for (; yybottom <= yytop; yybottom++)
  17112. + {
  17113. + int yybot = *yybottom;
  17114. + YYFPRINTF (stderr, " %d", yybot);
  17115. + }
  17116. YYFPRINTF (stderr, "\n");
  17117. }
  17118. @@ -1029,11 +1026,11 @@
  17119. /* The symbols being reduced. */
  17120. for (yyi = 0; yyi < yynrhs; yyi++)
  17121. {
  17122. - fprintf (stderr, " $%d = ", yyi + 1);
  17123. + YYFPRINTF (stderr, " $%d = ", yyi + 1);
  17124. yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
  17125. &(yyvsp[(yyi + 1) - (yynrhs)])
  17126. );
  17127. - fprintf (stderr, "\n");
  17128. + YYFPRINTF (stderr, "\n");
  17129. }
  17130. }
  17131. @@ -1308,7 +1305,7 @@
  17132. switch (yytype)
  17133. {
  17134. - case 51: /* "choice_entry" */
  17135. + case 53: /* "choice_entry" */
  17136. {
  17137. fprintf(stderr, "%s:%d: missing end statement for this entry\n",
  17138. @@ -1318,7 +1315,7 @@
  17139. };
  17140. break;
  17141. - case 57: /* "if_entry" */
  17142. + case 59: /* "if_entry" */
  17143. {
  17144. fprintf(stderr, "%s:%d: missing end statement for this entry\n",
  17145. @@ -1328,7 +1325,7 @@
  17146. };
  17147. break;
  17148. - case 62: /* "menu_entry" */
  17149. + case 65: /* "menu_entry" */
  17150. {
  17151. fprintf(stderr, "%s:%d: missing end statement for this entry\n",
  17152. @@ -1343,10 +1340,8 @@
  17153. break;
  17154. }
  17155. }
  17156. -
  17157. /* Prevent warnings from -Wmissing-prototypes. */
  17158. -
  17159. #ifdef YYPARSE_PARAM
  17160. #if defined __STDC__ || defined __cplusplus
  17161. int yyparse (void *YYPARSE_PARAM);
  17162. @@ -1362,11 +1357,10 @@
  17163. #endif /* ! YYPARSE_PARAM */
  17164. -
  17165. -/* The look-ahead symbol. */
  17166. +/* The lookahead symbol. */
  17167. int yychar;
  17168. -/* The semantic value of the look-ahead symbol. */
  17169. +/* The semantic value of the lookahead symbol. */
  17170. YYSTYPE yylval;
  17171. /* Number of syntax errors so far. */
  17172. @@ -1374,9 +1368,9 @@
  17173. -/*----------.
  17174. -| yyparse. |
  17175. -`----------*/
  17176. +/*-------------------------.
  17177. +| yyparse or yypush_parse. |
  17178. +`-------------------------*/
  17179. #ifdef YYPARSE_PARAM
  17180. #if (defined __STDC__ || defined __C99__FUNC__ \
  17181. @@ -1400,14 +1394,39 @@
  17182. #endif
  17183. #endif
  17184. {
  17185. -
  17186. - int yystate;
  17187. +
  17188. +
  17189. + int yystate;
  17190. + /* Number of tokens to shift before error messages enabled. */
  17191. + int yyerrstatus;
  17192. +
  17193. + /* The stacks and their tools:
  17194. + `yyss': related to states.
  17195. + `yyvs': related to semantic values.
  17196. +
  17197. + Refer to the stacks thru separate pointers, to allow yyoverflow
  17198. + to reallocate them elsewhere. */
  17199. +
  17200. + /* The state stack. */
  17201. + yytype_int16 yyssa[YYINITDEPTH];
  17202. + yytype_int16 *yyss;
  17203. + yytype_int16 *yyssp;
  17204. +
  17205. + /* The semantic value stack. */
  17206. + YYSTYPE yyvsa[YYINITDEPTH];
  17207. + YYSTYPE *yyvs;
  17208. + YYSTYPE *yyvsp;
  17209. +
  17210. + YYSIZE_T yystacksize;
  17211. +
  17212. int yyn;
  17213. int yyresult;
  17214. - /* Number of tokens to shift before error messages enabled. */
  17215. - int yyerrstatus;
  17216. - /* Look-ahead token as an internal (translated) token number. */
  17217. - int yytoken = 0;
  17218. + /* Lookahead token as an internal (translated) token number. */
  17219. + int yytoken;
  17220. + /* The variables used to return semantic value and location from the
  17221. + action routines. */
  17222. + YYSTYPE yyval;
  17223. +
  17224. #if YYERROR_VERBOSE
  17225. /* Buffer for error messages, and its allocated size. */
  17226. char yymsgbuf[128];
  17227. @@ -1415,51 +1434,28 @@
  17228. YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
  17229. #endif
  17230. - /* Three stacks and their tools:
  17231. - `yyss': related to states,
  17232. - `yyvs': related to semantic values,
  17233. - `yyls': related to locations.
  17234. -
  17235. - Refer to the stacks thru separate pointers, to allow yyoverflow
  17236. - to reallocate them elsewhere. */
  17237. -
  17238. - /* The state stack. */
  17239. - yytype_int16 yyssa[YYINITDEPTH];
  17240. - yytype_int16 *yyss = yyssa;
  17241. - yytype_int16 *yyssp;
  17242. -
  17243. - /* The semantic value stack. */
  17244. - YYSTYPE yyvsa[YYINITDEPTH];
  17245. - YYSTYPE *yyvs = yyvsa;
  17246. - YYSTYPE *yyvsp;
  17247. -
  17248. -
  17249. -
  17250. #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
  17251. - YYSIZE_T yystacksize = YYINITDEPTH;
  17252. -
  17253. - /* The variables used to return semantic value and location from the
  17254. - action routines. */
  17255. - YYSTYPE yyval;
  17256. -
  17257. -
  17258. /* The number of symbols on the RHS of the reduced rule.
  17259. Keep to zero when no symbol should be popped. */
  17260. int yylen = 0;
  17261. + yytoken = 0;
  17262. + yyss = yyssa;
  17263. + yyvs = yyvsa;
  17264. + yystacksize = YYINITDEPTH;
  17265. +
  17266. YYDPRINTF ((stderr, "Starting parse\n"));
  17267. yystate = 0;
  17268. yyerrstatus = 0;
  17269. yynerrs = 0;
  17270. - yychar = YYEMPTY; /* Cause a token to be read. */
  17271. + yychar = YYEMPTY; /* Cause a token to be read. */
  17272. /* Initialize stack pointers.
  17273. Waste one element of value and location stack
  17274. so that they stay on the same level as the state stack.
  17275. The wasted elements are never initialized. */
  17276. -
  17277. yyssp = yyss;
  17278. yyvsp = yyvs;
  17279. @@ -1489,7 +1485,6 @@
  17280. YYSTYPE *yyvs1 = yyvs;
  17281. yytype_int16 *yyss1 = yyss;
  17282. -
  17283. /* Each stack pointer address is followed by the size of the
  17284. data in use in that stack, in bytes. This used to be a
  17285. conditional around just the two extra args, but that might
  17286. @@ -1497,7 +1492,6 @@
  17287. yyoverflow (YY_("memory exhausted"),
  17288. &yyss1, yysize * sizeof (*yyssp),
  17289. &yyvs1, yysize * sizeof (*yyvsp),
  17290. -
  17291. &yystacksize);
  17292. yyss = yyss1;
  17293. @@ -1520,9 +1514,8 @@
  17294. (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
  17295. if (! yyptr)
  17296. goto yyexhaustedlab;
  17297. - YYSTACK_RELOCATE (yyss);
  17298. - YYSTACK_RELOCATE (yyvs);
  17299. -
  17300. + YYSTACK_RELOCATE (yyss_alloc, yyss);
  17301. + YYSTACK_RELOCATE (yyvs_alloc, yyvs);
  17302. # undef YYSTACK_RELOCATE
  17303. if (yyss1 != yyssa)
  17304. YYSTACK_FREE (yyss1);
  17305. @@ -1533,7 +1526,6 @@
  17306. yyssp = yyss + yysize - 1;
  17307. yyvsp = yyvs + yysize - 1;
  17308. -
  17309. YYDPRINTF ((stderr, "Stack size increased to %lu\n",
  17310. (unsigned long int) yystacksize));
  17311. @@ -1543,6 +1535,9 @@
  17312. YYDPRINTF ((stderr, "Entering state %d\n", yystate));
  17313. + if (yystate == YYFINAL)
  17314. + YYACCEPT;
  17315. +
  17316. goto yybackup;
  17317. /*-----------.
  17318. @@ -1551,16 +1546,16 @@
  17319. yybackup:
  17320. /* Do appropriate processing given the current state. Read a
  17321. - look-ahead token if we need one and don't already have one. */
  17322. + lookahead token if we need one and don't already have one. */
  17323. - /* First try to decide what to do without reference to look-ahead token. */
  17324. + /* First try to decide what to do without reference to lookahead token. */
  17325. yyn = yypact[yystate];
  17326. if (yyn == YYPACT_NINF)
  17327. goto yydefault;
  17328. - /* Not known => get a look-ahead token if don't already have one. */
  17329. + /* Not known => get a lookahead token if don't already have one. */
  17330. - /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
  17331. + /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
  17332. if (yychar == YYEMPTY)
  17333. {
  17334. YYDPRINTF ((stderr, "Reading a token: "));
  17335. @@ -1592,20 +1587,16 @@
  17336. goto yyreduce;
  17337. }
  17338. - if (yyn == YYFINAL)
  17339. - YYACCEPT;
  17340. -
  17341. /* Count tokens shifted since error; after three, turn off error
  17342. status. */
  17343. if (yyerrstatus)
  17344. yyerrstatus--;
  17345. - /* Shift the look-ahead token. */
  17346. + /* Shift the lookahead token. */
  17347. YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
  17348. - /* Discard the shifted token unless it is eof. */
  17349. - if (yychar != YYEOF)
  17350. - yychar = YYEMPTY;
  17351. + /* Discard the shifted token. */
  17352. + yychar = YYEMPTY;
  17353. yystate = yyn;
  17354. *++yyvsp = yylval;
  17355. @@ -1644,39 +1635,39 @@
  17356. YY_REDUCE_PRINT (yyn);
  17357. switch (yyn)
  17358. {
  17359. - case 8:
  17360. + case 10:
  17361. { zconf_error("unexpected end statement"); ;}
  17362. break;
  17363. - case 9:
  17364. + case 11:
  17365. { zconf_error("unknown statement \"%s\"", (yyvsp[(2) - (4)].string)); ;}
  17366. break;
  17367. - case 10:
  17368. + case 12:
  17369. {
  17370. zconf_error("unexpected option \"%s\"", kconf_id_strings + (yyvsp[(2) - (4)].id)->name);
  17371. ;}
  17372. break;
  17373. - case 11:
  17374. + case 13:
  17375. { zconf_error("invalid statement"); ;}
  17376. break;
  17377. - case 25:
  17378. + case 28:
  17379. { zconf_error("unknown option \"%s\"", (yyvsp[(1) - (3)].string)); ;}
  17380. break;
  17381. - case 26:
  17382. + case 29:
  17383. { zconf_error("invalid option"); ;}
  17384. break;
  17385. - case 27:
  17386. + case 30:
  17387. {
  17388. struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0);
  17389. @@ -1686,7 +1677,7 @@
  17390. ;}
  17391. break;
  17392. - case 28:
  17393. + case 31:
  17394. {
  17395. menu_end_entry();
  17396. @@ -1694,7 +1685,7 @@
  17397. ;}
  17398. break;
  17399. - case 29:
  17400. + case 32:
  17401. {
  17402. struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), 0);
  17403. @@ -1704,7 +1695,7 @@
  17404. ;}
  17405. break;
  17406. - case 30:
  17407. + case 33:
  17408. {
  17409. if (current_entry->prompt)
  17410. @@ -1716,7 +1707,7 @@
  17411. ;}
  17412. break;
  17413. - case 38:
  17414. + case 41:
  17415. {
  17416. menu_set_type((yyvsp[(1) - (3)].id)->stype);
  17417. @@ -1726,7 +1717,7 @@
  17418. ;}
  17419. break;
  17420. - case 39:
  17421. + case 42:
  17422. {
  17423. menu_add_prompt(P_PROMPT, (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].expr));
  17424. @@ -1734,7 +1725,7 @@
  17425. ;}
  17426. break;
  17427. - case 40:
  17428. + case 43:
  17429. {
  17430. menu_add_expr(P_DEFAULT, (yyvsp[(2) - (4)].expr), (yyvsp[(3) - (4)].expr));
  17431. @@ -1746,7 +1737,7 @@
  17432. ;}
  17433. break;
  17434. - case 41:
  17435. + case 44:
  17436. {
  17437. menu_add_symbol(P_SELECT, sym_lookup((yyvsp[(2) - (4)].string), 0), (yyvsp[(3) - (4)].expr));
  17438. @@ -1754,7 +1745,7 @@
  17439. ;}
  17440. break;
  17441. - case 42:
  17442. + case 45:
  17443. {
  17444. menu_add_expr(P_RANGE, expr_alloc_comp(E_RANGE,(yyvsp[(2) - (5)].symbol), (yyvsp[(3) - (5)].symbol)), (yyvsp[(4) - (5)].expr));
  17445. @@ -1762,10 +1753,10 @@
  17446. ;}
  17447. break;
  17448. - case 45:
  17449. + case 48:
  17450. {
  17451. - struct kconf_id *id = kconf_id_lookup((yyvsp[(2) - (3)].string), strlen((yyvsp[(2) - (3)].string)));
  17452. + const struct kconf_id *id = kconf_id_lookup((yyvsp[(2) - (3)].string), strlen((yyvsp[(2) - (3)].string)));
  17453. if (id && id->flags & TF_OPTION)
  17454. menu_add_option(id->token, (yyvsp[(3) - (3)].string));
  17455. else
  17456. @@ -1774,17 +1765,17 @@
  17457. ;}
  17458. break;
  17459. - case 46:
  17460. + case 49:
  17461. { (yyval.string) = NULL; ;}
  17462. break;
  17463. - case 47:
  17464. + case 50:
  17465. { (yyval.string) = (yyvsp[(2) - (2)].string); ;}
  17466. break;
  17467. - case 48:
  17468. + case 51:
  17469. {
  17470. struct symbol *sym = sym_lookup((yyvsp[(2) - (3)].string), SYMBOL_CHOICE);
  17471. @@ -1795,14 +1786,14 @@
  17472. ;}
  17473. break;
  17474. - case 49:
  17475. + case 52:
  17476. {
  17477. (yyval.menu) = menu_add_menu();
  17478. ;}
  17479. break;
  17480. - case 50:
  17481. + case 53:
  17482. {
  17483. if (zconf_endtoken((yyvsp[(1) - (1)].id), T_CHOICE, T_ENDCHOICE)) {
  17484. @@ -1812,7 +1803,7 @@
  17485. ;}
  17486. break;
  17487. - case 58:
  17488. + case 61:
  17489. {
  17490. menu_add_prompt(P_PROMPT, (yyvsp[(2) - (4)].string), (yyvsp[(3) - (4)].expr));
  17491. @@ -1820,7 +1811,7 @@
  17492. ;}
  17493. break;
  17494. - case 59:
  17495. + case 62:
  17496. {
  17497. if ((yyvsp[(1) - (3)].id)->stype == S_BOOLEAN || (yyvsp[(1) - (3)].id)->stype == S_TRISTATE) {
  17498. @@ -1833,7 +1824,7 @@
  17499. ;}
  17500. break;
  17501. - case 60:
  17502. + case 63:
  17503. {
  17504. current_entry->sym->flags |= SYMBOL_OPTIONAL;
  17505. @@ -1841,7 +1832,7 @@
  17506. ;}
  17507. break;
  17508. - case 61:
  17509. + case 64:
  17510. {
  17511. if ((yyvsp[(1) - (4)].id)->stype == S_UNKNOWN) {
  17512. @@ -1853,7 +1844,7 @@
  17513. ;}
  17514. break;
  17515. - case 64:
  17516. + case 67:
  17517. {
  17518. printd(DEBUG_PARSE, "%s:%d:if\n", zconf_curname(), zconf_lineno());
  17519. @@ -1863,7 +1854,7 @@
  17520. ;}
  17521. break;
  17522. - case 65:
  17523. + case 68:
  17524. {
  17525. if (zconf_endtoken((yyvsp[(1) - (1)].id), T_IF, T_ENDIF)) {
  17526. @@ -1873,7 +1864,14 @@
  17527. ;}
  17528. break;
  17529. - case 71:
  17530. + case 74:
  17531. +
  17532. + {
  17533. + menu_add_prompt(P_MENU, (yyvsp[(2) - (3)].string), NULL);
  17534. +;}
  17535. + break;
  17536. +
  17537. + case 75:
  17538. {
  17539. menu_add_entry(NULL);
  17540. @@ -1882,14 +1880,14 @@
  17541. ;}
  17542. break;
  17543. - case 72:
  17544. + case 76:
  17545. {
  17546. (yyval.menu) = menu_add_menu();
  17547. ;}
  17548. break;
  17549. - case 73:
  17550. + case 77:
  17551. {
  17552. if (zconf_endtoken((yyvsp[(1) - (1)].id), T_MENU, T_ENDMENU)) {
  17553. @@ -1899,7 +1897,7 @@
  17554. ;}
  17555. break;
  17556. - case 79:
  17557. + case 83:
  17558. {
  17559. printd(DEBUG_PARSE, "%s:%d:source %s\n", zconf_curname(), zconf_lineno(), (yyvsp[(2) - (3)].string));
  17560. @@ -1907,7 +1905,7 @@
  17561. ;}
  17562. break;
  17563. - case 80:
  17564. + case 84:
  17565. {
  17566. menu_add_entry(NULL);
  17567. @@ -1916,14 +1914,14 @@
  17568. ;}
  17569. break;
  17570. - case 81:
  17571. + case 85:
  17572. {
  17573. menu_end_entry();
  17574. ;}
  17575. break;
  17576. - case 82:
  17577. + case 86:
  17578. {
  17579. printd(DEBUG_PARSE, "%s:%d:help\n", zconf_curname(), zconf_lineno());
  17580. @@ -1931,14 +1929,14 @@
  17581. ;}
  17582. break;
  17583. - case 83:
  17584. + case 87:
  17585. {
  17586. current_entry->help = (yyvsp[(2) - (2)].string);
  17587. ;}
  17588. break;
  17589. - case 88:
  17590. + case 92:
  17591. {
  17592. menu_add_dep((yyvsp[(3) - (4)].expr));
  17593. @@ -1946,90 +1944,96 @@
  17594. ;}
  17595. break;
  17596. - case 90:
  17597. + case 96:
  17598. +
  17599. + {
  17600. + menu_add_visibility((yyvsp[(2) - (2)].expr));
  17601. +;}
  17602. + break;
  17603. +
  17604. + case 98:
  17605. {
  17606. menu_add_prompt(P_PROMPT, (yyvsp[(1) - (2)].string), (yyvsp[(2) - (2)].expr));
  17607. ;}
  17608. break;
  17609. - case 93:
  17610. + case 101:
  17611. { (yyval.id) = (yyvsp[(1) - (2)].id); ;}
  17612. break;
  17613. - case 94:
  17614. + case 102:
  17615. { (yyval.id) = (yyvsp[(1) - (2)].id); ;}
  17616. break;
  17617. - case 95:
  17618. + case 103:
  17619. { (yyval.id) = (yyvsp[(1) - (2)].id); ;}
  17620. break;
  17621. - case 98:
  17622. + case 106:
  17623. { (yyval.expr) = NULL; ;}
  17624. break;
  17625. - case 99:
  17626. + case 107:
  17627. { (yyval.expr) = (yyvsp[(2) - (2)].expr); ;}
  17628. break;
  17629. - case 100:
  17630. + case 108:
  17631. { (yyval.expr) = expr_alloc_symbol((yyvsp[(1) - (1)].symbol)); ;}
  17632. break;
  17633. - case 101:
  17634. + case 109:
  17635. { (yyval.expr) = expr_alloc_comp(E_EQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;}
  17636. break;
  17637. - case 102:
  17638. + case 110:
  17639. { (yyval.expr) = expr_alloc_comp(E_UNEQUAL, (yyvsp[(1) - (3)].symbol), (yyvsp[(3) - (3)].symbol)); ;}
  17640. break;
  17641. - case 103:
  17642. + case 111:
  17643. { (yyval.expr) = (yyvsp[(2) - (3)].expr); ;}
  17644. break;
  17645. - case 104:
  17646. + case 112:
  17647. { (yyval.expr) = expr_alloc_one(E_NOT, (yyvsp[(2) - (2)].expr)); ;}
  17648. break;
  17649. - case 105:
  17650. + case 113:
  17651. { (yyval.expr) = expr_alloc_two(E_OR, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
  17652. break;
  17653. - case 106:
  17654. + case 114:
  17655. { (yyval.expr) = expr_alloc_two(E_AND, (yyvsp[(1) - (3)].expr), (yyvsp[(3) - (3)].expr)); ;}
  17656. break;
  17657. - case 107:
  17658. + case 115:
  17659. { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), 0); free((yyvsp[(1) - (1)].string)); ;}
  17660. break;
  17661. - case 108:
  17662. + case 116:
  17663. { (yyval.symbol) = sym_lookup((yyvsp[(1) - (1)].string), SYMBOL_CONST); free((yyvsp[(1) - (1)].string)); ;}
  17664. break;
  17665. - case 109:
  17666. + case 117:
  17667. { (yyval.string) = NULL; ;}
  17668. break;
  17669. -/* Line 1267 of yacc.c. */
  17670. default: break;
  17671. }
  17672. @@ -2041,7 +2045,6 @@
  17673. *++yyvsp = yyval;
  17674. -
  17675. /* Now `shift' the result of the reduction. Determine what state
  17676. that goes to, based on the state we popped back to and the rule
  17677. number reduced by. */
  17678. @@ -2106,7 +2109,7 @@
  17679. if (yyerrstatus == 3)
  17680. {
  17681. - /* If just tried and failed to reuse look-ahead token after an
  17682. + /* If just tried and failed to reuse lookahead token after an
  17683. error, discard it. */
  17684. if (yychar <= YYEOF)
  17685. @@ -2123,7 +2126,7 @@
  17686. }
  17687. }
  17688. - /* Else will try to reuse look-ahead token after shifting the error
  17689. + /* Else will try to reuse lookahead token after shifting the error
  17690. token. */
  17691. goto yyerrlab1;
  17692. @@ -2180,9 +2183,6 @@
  17693. YY_STACK_PRINT (yyss, yyssp);
  17694. }
  17695. - if (yyn == YYFINAL)
  17696. - YYACCEPT;
  17697. -
  17698. *++yyvsp = yylval;
  17699. @@ -2207,7 +2207,7 @@
  17700. yyresult = 1;
  17701. goto yyreturn;
  17702. -#ifndef yyoverflow
  17703. +#if !defined(yyoverflow) || YYERROR_VERBOSE
  17704. /*-------------------------------------------------.
  17705. | yyexhaustedlab -- memory exhaustion comes here. |
  17706. `-------------------------------------------------*/
  17707. @@ -2218,7 +2218,7 @@
  17708. #endif
  17709. yyreturn:
  17710. - if (yychar != YYEOF && yychar != YYEMPTY)
  17711. + if (yychar != YYEMPTY)
  17712. yydestruct ("Cleanup: discarding lookahead",
  17713. yytoken, &yylval);
  17714. /* Do not reclaim the symbols of the rule which action triggered
  17715. @@ -2255,16 +2255,14 @@
  17716. zconf_initscan(name);
  17717. sym_init();
  17718. - menu_init();
  17719. + _menu_init();
  17720. modules_sym = sym_lookup(NULL, 0);
  17721. modules_sym->type = S_BOOLEAN;
  17722. modules_sym->flags |= SYMBOL_AUTO;
  17723. rootmenu.prompt = menu_add_prompt(P_MENU, "uClibc Configuration", NULL);
  17724. -#if YYDEBUG
  17725. if (getenv("ZCONF_DEBUG"))
  17726. zconfdebug = 1;
  17727. -#endif
  17728. zconfparse();
  17729. if (zconfnerrs)
  17730. exit(1);
  17731. @@ -2274,6 +2272,10 @@
  17732. prop = prop_alloc(P_DEFAULT, modules_sym);
  17733. prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
  17734. }
  17735. +
  17736. + rootmenu.prompt->text = _(rootmenu.prompt->text);
  17737. + rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text);
  17738. +
  17739. menu_finalize(&rootmenu);
  17740. for_all_symbols(i, sym) {
  17741. if (sym_check_deps(sym))
  17742. @@ -2284,7 +2286,7 @@
  17743. sym_set_change_count(1);
  17744. }
  17745. -const char *zconf_tokenname(int token)
  17746. +static const char *zconf_tokenname(int token)
  17747. {
  17748. switch (token) {
  17749. case T_MENU: return "menu";
  17750. @@ -2294,11 +2296,12 @@
  17751. case T_IF: return "if";
  17752. case T_ENDIF: return "endif";
  17753. case T_DEPENDS: return "depends";
  17754. + case T_VISIBLE: return "visible";
  17755. }
  17756. return "<token>";
  17757. }
  17758. -static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken)
  17759. +static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtoken)
  17760. {
  17761. if (id->token != endtoken) {
  17762. zconf_error("unexpected '%s' within %s block",
  17763. @@ -2343,12 +2346,10 @@
  17764. static void zconferror(const char *err)
  17765. {
  17766. -#if YYDEBUG
  17767. fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, err);
  17768. -#endif
  17769. }
  17770. -void print_quoted_string(FILE *out, const char *str)
  17771. +static void print_quoted_string(FILE *out, const char *str)
  17772. {
  17773. const char *p;
  17774. int len;
  17775. @@ -2365,15 +2366,15 @@
  17776. putc('"', out);
  17777. }
  17778. -void print_symbol(FILE *out, struct menu *menu)
  17779. +static void print_symbol(FILE *out, struct menu *menu)
  17780. {
  17781. struct symbol *sym = menu->sym;
  17782. struct property *prop;
  17783. if (sym_is_choice(sym))
  17784. - fprintf(out, "choice\n");
  17785. + fprintf(out, "\nchoice\n");
  17786. else
  17787. - fprintf(out, "config %s\n", sym->name);
  17788. + fprintf(out, "\nconfig %s\n", sym->name);
  17789. switch (sym->type) {
  17790. case S_BOOLEAN:
  17791. fputs(" boolean\n", out);
  17792. @@ -2419,6 +2420,21 @@
  17793. case P_CHOICE:
  17794. fputs(" #choice value\n", out);
  17795. break;
  17796. + case P_SELECT:
  17797. + fputs( " select ", out);
  17798. + expr_fprint(prop->expr, out);
  17799. + fputc('\n', out);
  17800. + break;
  17801. + case P_RANGE:
  17802. + fputs( " range ", out);
  17803. + expr_fprint(prop->expr, out);
  17804. + fputc('\n', out);
  17805. + break;
  17806. + case P_MENU:
  17807. + fputs( " menu ", out);
  17808. + print_quoted_string(out, prop->text);
  17809. + fputc('\n', out);
  17810. + break;
  17811. default:
  17812. fprintf(out, " unknown prop %d!\n", prop->type);
  17813. break;
  17814. @@ -2430,7 +2446,6 @@
  17815. menu->help[len] = 0;
  17816. fprintf(out, " help\n%s\n", menu->help);
  17817. }
  17818. - fputc('\n', out);
  17819. }
  17820. void zconfdump(FILE *out)
  17821. @@ -2463,7 +2478,6 @@
  17822. expr_fprint(prop->visible.expr, out);
  17823. fputc('\n', out);
  17824. }
  17825. - fputs("\n", out);
  17826. }
  17827. if (menu->list)
  17828. @@ -2481,7 +2495,7 @@
  17829. }
  17830. }
  17831. -#include "lex.zconf.c"
  17832. +#include "zconf.lex.c"
  17833. #include "util.c"
  17834. #include "confdata.c"
  17835. #include "expr.c"
  17836. diff -Nur uClibc-0.9.33.2/extra/config/zconf.y uClibc-git/extra/config/zconf.y
  17837. --- uClibc-0.9.33.2/extra/config/zconf.y 2012-05-15 09:20:09.000000000 +0200
  17838. +++ uClibc-git/extra/config/zconf.y 2014-06-02 17:40:33.750710524 +0200
  17839. @@ -11,11 +11,8 @@
  17840. #include <string.h>
  17841. #include <stdbool.h>
  17842. -#define LKC_DIRECT_LINK
  17843. #include "lkc.h"
  17844. -#include "zconf.hash.c"
  17845. -
  17846. #define printd(mask, fmt...) if (cdebug & (mask)) printf(fmt)
  17847. #define PRINTD 0x0001
  17848. @@ -27,18 +24,14 @@
  17849. static void zconfprint(const char *err, ...);
  17850. static void zconf_error(const char *err, ...);
  17851. static void zconferror(const char *err);
  17852. -static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken);
  17853. +static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtoken);
  17854. -struct symbol *symbol_hash[257];
  17855. +struct symbol *symbol_hash[SYMBOL_HASHSIZE];
  17856. static struct menu *current_menu, *current_entry;
  17857. -#define YYDEBUG 0
  17858. -#if YYDEBUG
  17859. -#define YYERROR_VERBOSE
  17860. -#endif
  17861. %}
  17862. -%expect 26
  17863. +%expect 30
  17864. %union
  17865. {
  17866. @@ -47,7 +40,7 @@
  17867. struct symbol *symbol;
  17868. struct expr *expr;
  17869. struct menu *menu;
  17870. - struct kconf_id *id;
  17871. + const struct kconf_id *id;
  17872. }
  17873. %token <id>T_MAINMENU
  17874. @@ -70,6 +63,7 @@
  17875. %token <id>T_DEFAULT
  17876. %token <id>T_SELECT
  17877. %token <id>T_RANGE
  17878. +%token <id>T_VISIBLE
  17879. %token <id>T_OPTION
  17880. %token <id>T_ON
  17881. %token <string> T_WORD
  17882. @@ -100,15 +94,21 @@
  17883. menu_end_menu();
  17884. } if_entry menu_entry choice_entry
  17885. +%{
  17886. +/* Include zconf.hash.c here so it can see the token constants. */
  17887. +#include "zconf.hash.c"
  17888. +%}
  17889. +
  17890. %%
  17891. -input: stmt_list;
  17892. +input: nl start | start;
  17893. +
  17894. +start: mainmenu_stmt stmt_list | stmt_list;
  17895. stmt_list:
  17896. /* empty */
  17897. | stmt_list common_stmt
  17898. | stmt_list choice_stmt
  17899. | stmt_list menu_stmt
  17900. - | stmt_list T_MAINMENU prompt nl
  17901. | stmt_list end { zconf_error("unexpected end statement"); }
  17902. | stmt_list T_WORD error T_EOL { zconf_error("unknown statement \"%s\"", $2); }
  17903. | stmt_list option_name error T_EOL
  17904. @@ -119,7 +119,7 @@
  17905. ;
  17906. option_name:
  17907. - T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT
  17908. + T_DEPENDS | T_PROMPT | T_TYPE | T_SELECT | T_OPTIONAL | T_RANGE | T_DEFAULT | T_VISIBLE
  17909. ;
  17910. common_stmt:
  17911. @@ -224,7 +224,7 @@
  17912. /* empty */
  17913. | symbol_option_list T_WORD symbol_option_arg
  17914. {
  17915. - struct kconf_id *id = kconf_id_lookup($2, strlen($2));
  17916. + const struct kconf_id *id = kconf_id_lookup($2, strlen($2));
  17917. if (id && id->flags & TF_OPTION)
  17918. menu_add_option(id->token, $3);
  17919. else
  17920. @@ -339,6 +339,13 @@
  17921. | if_block choice_stmt
  17922. ;
  17923. +/* mainmenu entry */
  17924. +
  17925. +mainmenu_stmt: T_MAINMENU prompt nl
  17926. +{
  17927. + menu_add_prompt(P_MENU, $2, NULL);
  17928. +};
  17929. +
  17930. /* menu entry */
  17931. menu: T_MENU prompt T_EOL
  17932. @@ -348,7 +355,7 @@
  17933. printd(DEBUG_PARSE, "%s:%d:menu\n", zconf_curname(), zconf_lineno());
  17934. };
  17935. -menu_entry: menu depends_list
  17936. +menu_entry: menu visibility_list depends_list
  17937. {
  17938. $$ = menu_add_menu();
  17939. };
  17940. @@ -419,6 +426,19 @@
  17941. printd(DEBUG_PARSE, "%s:%d:depends on\n", zconf_curname(), zconf_lineno());
  17942. };
  17943. +/* visibility option */
  17944. +
  17945. +visibility_list:
  17946. + /* empty */
  17947. + | visibility_list visible
  17948. + | visibility_list T_EOL
  17949. +;
  17950. +
  17951. +visible: T_VISIBLE if_expr
  17952. +{
  17953. + menu_add_visibility($2);
  17954. +};
  17955. +
  17956. /* prompt statement */
  17957. prompt_stmt_opt:
  17958. @@ -472,16 +492,14 @@
  17959. zconf_initscan(name);
  17960. sym_init();
  17961. - menu_init();
  17962. + _menu_init();
  17963. modules_sym = sym_lookup(NULL, 0);
  17964. modules_sym->type = S_BOOLEAN;
  17965. modules_sym->flags |= SYMBOL_AUTO;
  17966. rootmenu.prompt = menu_add_prompt(P_MENU, "uClibc Configuration", NULL);
  17967. -#if YYDEBUG
  17968. if (getenv("ZCONF_DEBUG"))
  17969. zconfdebug = 1;
  17970. -#endif
  17971. zconfparse();
  17972. if (zconfnerrs)
  17973. exit(1);
  17974. @@ -491,6 +509,10 @@
  17975. prop = prop_alloc(P_DEFAULT, modules_sym);
  17976. prop->expr = expr_alloc_symbol(sym_lookup("MODULES", 0));
  17977. }
  17978. +
  17979. + rootmenu.prompt->text = _(rootmenu.prompt->text);
  17980. + rootmenu.prompt->text = sym_expand_string_value(rootmenu.prompt->text);
  17981. +
  17982. menu_finalize(&rootmenu);
  17983. for_all_symbols(i, sym) {
  17984. if (sym_check_deps(sym))
  17985. @@ -501,7 +523,7 @@
  17986. sym_set_change_count(1);
  17987. }
  17988. -const char *zconf_tokenname(int token)
  17989. +static const char *zconf_tokenname(int token)
  17990. {
  17991. switch (token) {
  17992. case T_MENU: return "menu";
  17993. @@ -511,11 +533,12 @@
  17994. case T_IF: return "if";
  17995. case T_ENDIF: return "endif";
  17996. case T_DEPENDS: return "depends";
  17997. + case T_VISIBLE: return "visible";
  17998. }
  17999. return "<token>";
  18000. }
  18001. -static bool zconf_endtoken(struct kconf_id *id, int starttoken, int endtoken)
  18002. +static bool zconf_endtoken(const struct kconf_id *id, int starttoken, int endtoken)
  18003. {
  18004. if (id->token != endtoken) {
  18005. zconf_error("unexpected '%s' within %s block",
  18006. @@ -560,12 +583,10 @@
  18007. static void zconferror(const char *err)
  18008. {
  18009. -#if YYDEBUG
  18010. fprintf(stderr, "%s:%d: %s\n", zconf_curname(), zconf_lineno() + 1, err);
  18011. -#endif
  18012. }
  18013. -void print_quoted_string(FILE *out, const char *str)
  18014. +static void print_quoted_string(FILE *out, const char *str)
  18015. {
  18016. const char *p;
  18017. int len;
  18018. @@ -582,15 +603,15 @@
  18019. putc('"', out);
  18020. }
  18021. -void print_symbol(FILE *out, struct menu *menu)
  18022. +static void print_symbol(FILE *out, struct menu *menu)
  18023. {
  18024. struct symbol *sym = menu->sym;
  18025. struct property *prop;
  18026. if (sym_is_choice(sym))
  18027. - fprintf(out, "choice\n");
  18028. + fprintf(out, "\nchoice\n");
  18029. else
  18030. - fprintf(out, "config %s\n", sym->name);
  18031. + fprintf(out, "\nconfig %s\n", sym->name);
  18032. switch (sym->type) {
  18033. case S_BOOLEAN:
  18034. fputs(" boolean\n", out);
  18035. @@ -636,6 +657,21 @@
  18036. case P_CHOICE:
  18037. fputs(" #choice value\n", out);
  18038. break;
  18039. + case P_SELECT:
  18040. + fputs( " select ", out);
  18041. + expr_fprint(prop->expr, out);
  18042. + fputc('\n', out);
  18043. + break;
  18044. + case P_RANGE:
  18045. + fputs( " range ", out);
  18046. + expr_fprint(prop->expr, out);
  18047. + fputc('\n', out);
  18048. + break;
  18049. + case P_MENU:
  18050. + fputs( " menu ", out);
  18051. + print_quoted_string(out, prop->text);
  18052. + fputc('\n', out);
  18053. + break;
  18054. default:
  18055. fprintf(out, " unknown prop %d!\n", prop->type);
  18056. break;
  18057. @@ -647,7 +683,6 @@
  18058. menu->help[len] = 0;
  18059. fprintf(out, " help\n%s\n", menu->help);
  18060. }
  18061. - fputc('\n', out);
  18062. }
  18063. void zconfdump(FILE *out)
  18064. @@ -680,7 +715,6 @@
  18065. expr_fprint(prop->visible.expr, out);
  18066. fputc('\n', out);
  18067. }
  18068. - fputs("\n", out);
  18069. }
  18070. if (menu->list)
  18071. @@ -698,7 +732,7 @@
  18072. }
  18073. }
  18074. -#include "lex.zconf.c"
  18075. +#include "zconf.lex.c"
  18076. #include "util.c"
  18077. #include "confdata.c"
  18078. #include "expr.c"
  18079. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.alpha uClibc-git/extra/Configs/Config.alpha
  18080. --- uClibc-0.9.33.2/extra/Configs/Config.alpha 2012-05-15 09:20:09.000000000 +0200
  18081. +++ uClibc-git/extra/Configs/Config.alpha 2014-06-02 17:40:33.694710213 +0200
  18082. @@ -13,4 +13,5 @@
  18083. select ARCH_LITTLE_ENDIAN
  18084. select ARCH_HAS_MMU
  18085. select ARCH_HAS_NO_LDSO
  18086. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18087. select UCLIBC_HAS_LFS
  18088. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.arc uClibc-git/extra/Configs/Config.arc
  18089. --- uClibc-0.9.33.2/extra/Configs/Config.arc 1970-01-01 01:00:00.000000000 +0100
  18090. +++ uClibc-git/extra/Configs/Config.arc 2014-06-02 17:40:33.694710213 +0200
  18091. @@ -0,0 +1,23 @@
  18092. +#
  18093. +# For a description of the syntax of this configuration file,
  18094. +# see extra/config/Kconfig-language.txt
  18095. +#
  18096. +config TARGET_ARCH
  18097. + default "arc"
  18098. +
  18099. +config FORCE_OPTIONS_FOR_ARCH
  18100. + bool
  18101. + default y
  18102. + select ARCH_ANY_ENDIAN
  18103. +
  18104. +choice
  18105. + prompt "Target Processor Type"
  18106. + default CONFIG_ARC_CPU_700
  18107. +
  18108. +config CONFIG_ARC_CPU_700
  18109. + bool "ARC700"
  18110. + select ARCH_HAS_MMU
  18111. + help
  18112. + ARCompact ISA based ARC CPU
  18113. +
  18114. +endchoice
  18115. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.arm uClibc-git/extra/Configs/Config.arm
  18116. --- uClibc-0.9.33.2/extra/Configs/Config.arm 2012-05-15 09:20:09.000000000 +0200
  18117. +++ uClibc-git/extra/Configs/Config.arm 2014-06-02 17:40:33.694710213 +0200
  18118. @@ -11,6 +11,8 @@
  18119. bool
  18120. default y
  18121. select ARCH_ANY_ENDIAN
  18122. + select ARCH_HAS_UCONTEXT
  18123. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18124. config CONFIG_ARM_EABI
  18125. bool "Build for EABI"
  18126. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.avr32 uClibc-git/extra/Configs/Config.avr32
  18127. --- uClibc-0.9.33.2/extra/Configs/Config.avr32 2012-05-15 09:20:09.000000000 +0200
  18128. +++ uClibc-git/extra/Configs/Config.avr32 2014-06-02 17:40:33.694710213 +0200
  18129. @@ -11,6 +11,7 @@
  18130. bool
  18131. default y
  18132. select ARCH_BIG_ENDIAN
  18133. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18134. select FORCE_SHAREABLE_TEXT_SEGMENTS
  18135. choice
  18136. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.bfin uClibc-git/extra/Configs/Config.bfin
  18137. --- uClibc-0.9.33.2/extra/Configs/Config.bfin 2012-05-15 09:20:09.000000000 +0200
  18138. +++ uClibc-git/extra/Configs/Config.bfin 2014-06-02 17:40:33.694710213 +0200
  18139. @@ -12,3 +12,4 @@
  18140. default y
  18141. select ARCH_LITTLE_ENDIAN
  18142. select ARCH_HAS_NO_MMU
  18143. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18144. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.cris uClibc-git/extra/Configs/Config.cris
  18145. --- uClibc-0.9.33.2/extra/Configs/Config.cris 2012-05-15 09:20:09.000000000 +0200
  18146. +++ uClibc-git/extra/Configs/Config.cris 2014-06-02 17:40:33.694710213 +0200
  18147. @@ -11,6 +11,7 @@
  18148. bool
  18149. default y
  18150. select ARCH_LITTLE_ENDIAN
  18151. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18152. choice
  18153. prompt "Target Architecture Type"
  18154. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.e1 uClibc-git/extra/Configs/Config.e1
  18155. --- uClibc-0.9.33.2/extra/Configs/Config.e1 2012-05-15 09:20:09.000000000 +0200
  18156. +++ uClibc-git/extra/Configs/Config.e1 2014-06-02 17:40:33.694710213 +0200
  18157. @@ -13,3 +13,4 @@
  18158. select ARCH_BIG_ENDIAN
  18159. select ARCH_HAS_NO_MMU
  18160. select ARCH_HAS_NO_SHARED
  18161. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18162. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.frv uClibc-git/extra/Configs/Config.frv
  18163. --- uClibc-0.9.33.2/extra/Configs/Config.frv 2012-05-15 09:20:09.000000000 +0200
  18164. +++ uClibc-git/extra/Configs/Config.frv 2014-06-02 17:40:33.694710213 +0200
  18165. @@ -13,3 +13,4 @@
  18166. select ARCH_BIG_ENDIAN
  18167. select UCLIBC_HAS_FPU
  18168. select ARCH_HAS_NO_MMU
  18169. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18170. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.h8300 uClibc-git/extra/Configs/Config.h8300
  18171. --- uClibc-0.9.33.2/extra/Configs/Config.h8300 2012-05-15 09:20:09.000000000 +0200
  18172. +++ uClibc-git/extra/Configs/Config.h8300 2014-06-02 17:40:33.694710213 +0200
  18173. @@ -12,6 +12,7 @@
  18174. default y
  18175. select ARCH_ANY_ENDIAN
  18176. select ARCH_HAS_NO_MMU
  18177. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18178. choice
  18179. prompt "Target Processor"
  18180. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.hppa uClibc-git/extra/Configs/Config.hppa
  18181. --- uClibc-0.9.33.2/extra/Configs/Config.hppa 2012-05-15 09:20:09.000000000 +0200
  18182. +++ uClibc-git/extra/Configs/Config.hppa 2014-06-02 17:40:33.694710213 +0200
  18183. @@ -15,3 +15,4 @@
  18184. select HAS_NO_THREADS
  18185. select ARCH_HAS_NO_LDSO
  18186. select HAVE_NO_SSP
  18187. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18188. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.i386 uClibc-git/extra/Configs/Config.i386
  18189. --- uClibc-0.9.33.2/extra/Configs/Config.i386 2012-05-15 09:20:09.000000000 +0200
  18190. +++ uClibc-git/extra/Configs/Config.i386 2014-06-02 17:40:33.694710213 +0200
  18191. @@ -12,44 +12,17 @@
  18192. default y
  18193. select ARCH_LITTLE_ENDIAN
  18194. select ARCH_HAS_MMU
  18195. + select ARCH_HAS_UCONTEXT
  18196. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18197. choice
  18198. prompt "Target x86 Processor Family"
  18199. - default CONFIG_486
  18200. + default CONFIG_686
  18201. help
  18202. This is the processor type of your CPU. This information is used for
  18203. - optimizing purposes. To build a library that will run on all x86 CPU
  18204. - types (albeit not optimally fast), you can specify "386" here. If
  18205. - you pick anything other than "386", there is no guarantee that uClibc
  18206. - will even run on anything other than the selected processor type.
  18207. -
  18208. - Here are the settings recommended for greatest speed:
  18209. - - "Generic 386" select this if your compiler is already setup to
  18210. - optimize things properly.
  18211. - - "386" for the AMD/Cyrix/Intel 386DX/DXL/SL/SLC/SX, Cyrix/TI
  18212. - 486DLC/DLC2, UMC 486SX-S and NexGen Nx586. Only "386" kernels
  18213. - will run on a 386 class machine.
  18214. - - "486" for the AMD/Cyrix/IBM/Intel 486DX/DX2/DX4 or
  18215. - SL/SLC/SLC2/SLC3/SX/SX2 and UMC U5D or U5S.
  18216. - - "586" for Intel Pentium and other generic Pentium CPUs
  18217. - - "Pentium-MMX" for the Intel Pentium MMX.
  18218. - - "Pentium-Pro" for the Intel Pentium Pro/Celeron/Pentium II.
  18219. - - "Pentium-III" for the Intel Pentium III
  18220. - and Celerons based on the Coppermine core.
  18221. - - "Pentium-4" for the Intel Pentium 4.
  18222. - - "K6" for the AMD K6, K6-II and K6-III (aka K6-3D).
  18223. - - "Athlon" for the AMD K7 family (Athlon/Duron/Thunderbird).
  18224. - - "Elan" for the AMD Elan.
  18225. - - "Crusoe" for the Transmeta Crusoe series.
  18226. - - "Winchip-C6" for original IDT Winchip.
  18227. - - "Winchip-2/Winchip-2A/Winchip-3" for IDT Winchip CPUs
  18228. - - "CyrixIII/VIA C3" for VIA Cyrix III or VIA C3.
  18229. - - "VIA C3-2 Nehemiah" model 9 and above.
  18230. -
  18231. - If you don't know what to do, choose "386".
  18232. -
  18233. -config CONFIG_GENERIC_386
  18234. - bool "Generic 386"
  18235. + selecting different handcoded optimization functions. Nowadays, most
  18236. + people have an i686 CPU. If you don't, you most likely know what this
  18237. + means and can pick the right one for your processor.
  18238. config CONFIG_386
  18239. bool "386"
  18240. @@ -58,45 +31,9 @@
  18241. bool "486"
  18242. config CONFIG_586
  18243. - bool "Pentium/586/K5/5x86/6x86/6x86MX"
  18244. -
  18245. -config CONFIG_586MMX
  18246. - bool "Pentium-MMX"
  18247. + bool "586"
  18248. config CONFIG_686
  18249. - bool "Pentium-Pro"
  18250. -
  18251. -config CONFIG_PENTIUMII
  18252. - bool "Celeron/Pentium-II"
  18253. -
  18254. -config CONFIG_PENTIUMIII
  18255. - bool "Pentium-III/Celeron(Coppermine)/Pentium-III Xeon"
  18256. -
  18257. -config CONFIG_PENTIUM4
  18258. - bool "Pentium-4/Celeron(P4-based)/Xeon"
  18259. -
  18260. -config CONFIG_K6
  18261. - bool "K6/K6-II/K6-III"
  18262. -
  18263. -config CONFIG_K7
  18264. - bool "Athlon/Duron/K7"
  18265. -
  18266. -config CONFIG_ELAN
  18267. - bool "Elan"
  18268. -
  18269. -config CONFIG_CRUSOE
  18270. - bool "Crusoe"
  18271. -
  18272. -config CONFIG_WINCHIPC6
  18273. - bool "Winchip-C6"
  18274. -
  18275. -config CONFIG_WINCHIP2
  18276. - bool "Winchip-2/Winchip-2A/Winchip-3"
  18277. -
  18278. -config CONFIG_CYRIXIII
  18279. - bool "CyrixIII/VIA-C3"
  18280. -
  18281. -config CONFIG_NEHEMIAH
  18282. - bool "VIA C3-2 (Nehemiah)"
  18283. + bool "686"
  18284. endchoice
  18285. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.i960 uClibc-git/extra/Configs/Config.i960
  18286. --- uClibc-0.9.33.2/extra/Configs/Config.i960 2012-05-15 09:20:09.000000000 +0200
  18287. +++ uClibc-git/extra/Configs/Config.i960 2014-06-02 17:40:33.694710213 +0200
  18288. @@ -13,3 +13,4 @@
  18289. select ARCH_LITTLE_ENDIAN
  18290. select ARCH_HAS_NO_MMU
  18291. select HAS_NO_THREADS
  18292. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18293. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.ia64 uClibc-git/extra/Configs/Config.ia64
  18294. --- uClibc-0.9.33.2/extra/Configs/Config.ia64 2012-05-15 09:20:09.000000000 +0200
  18295. +++ uClibc-git/extra/Configs/Config.ia64 2014-06-02 17:40:33.694710213 +0200
  18296. @@ -13,3 +13,4 @@
  18297. select ARCH_LITTLE_ENDIAN
  18298. select ARCH_HAS_MMU
  18299. select ARCH_HAS_NO_LDSO
  18300. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18301. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.in uClibc-git/extra/Configs/Config.in
  18302. --- uClibc-0.9.33.2/extra/Configs/Config.in 2012-05-15 09:20:09.000000000 +0200
  18303. +++ uClibc-git/extra/Configs/Config.in 2014-06-02 17:40:33.694710213 +0200
  18304. @@ -3,15 +3,20 @@
  18305. # see extra/config/Kconfig-language.txt
  18306. #
  18307. -mainmenu "uClibc C Library Configuration"
  18308. +mainmenu "uClibc $VERSION C Library Configuration"
  18309. config DESIRED_TARGET_ARCH
  18310. string
  18311. option env="ARCH"
  18312. +config VERSION
  18313. + string
  18314. + option env="VERSION"
  18315. +
  18316. choice
  18317. prompt "Target Architecture"
  18318. default TARGET_alpha if DESIRED_TARGET_ARCH = "alpha"
  18319. + default TARGET_arc if DESIRED_TARGET_ARCH = "arc"
  18320. default TARGET_arm if DESIRED_TARGET_ARCH = "arm"
  18321. default TARGET_avr32 if DESIRED_TARGET_ARCH = "avr32"
  18322. default TARGET_bfin if DESIRED_TARGET_ARCH = "bfin"
  18323. @@ -24,6 +29,7 @@
  18324. default TARGET_i960 if DESIRED_TARGET_ARCH = "i960"
  18325. default TARGET_ia64 if DESIRED_TARGET_ARCH = "ia64"
  18326. default TARGET_m68k if DESIRED_TARGET_ARCH = "m68k"
  18327. + default TARGET_metag if DESIRED_TARGET_ARCH = "metag"
  18328. default TARGET_microblaze if DESIRED_TARGET_ARCH = "microblaze"
  18329. default TARGET_mips if DESIRED_TARGET_ARCH = "mips"
  18330. default TARGET_nios if DESIRED_TARGET_ARCH = "nios"
  18331. @@ -42,6 +48,9 @@
  18332. config TARGET_alpha
  18333. bool "alpha"
  18334. +config TARGET_arc
  18335. + bool "arc"
  18336. +
  18337. config TARGET_arm
  18338. bool "arm"
  18339. @@ -81,6 +90,9 @@
  18340. config TARGET_m68k
  18341. bool "m68k"
  18342. +config TARGET_metag
  18343. + bool "metag"
  18344. +
  18345. config TARGET_microblaze
  18346. bool "microblaze"
  18347. @@ -174,6 +186,10 @@
  18348. source "extra/Configs/Config.m68k"
  18349. endif
  18350. +if TARGET_metag
  18351. +source "extra/Configs/Config.metag"
  18352. +endif
  18353. +
  18354. if TARGET_nios
  18355. source "extra/Configs/Config.nios"
  18356. endif
  18357. @@ -226,15 +242,19 @@
  18358. source "extra/Configs/Config.c6x"
  18359. endif
  18360. +if TARGET_arc
  18361. +source "extra/Configs/Config.arc"
  18362. +endif
  18363. +
  18364. config TARGET_SUBARCH
  18365. string
  18366. default "e500" if CONFIG_E500
  18367. default "classic" if CONFIG_CLASSIC
  18368. default "sh4" if CONFIG_SH4
  18369. - default "" if CONFIG_GENERIC_386 || CONFIG_386
  18370. + default "" if CONFIG_386
  18371. default "i486" if CONFIG_486
  18372. - default "i586" if CONFIG_586 || CONFIG_586MMX
  18373. - default "i686" if TARGET_ARCH = "i386"
  18374. + default "i586" if CONFIG_586
  18375. + default "i686" if CONFIG_686
  18376. default ""
  18377. source "extra/Configs/Config.in.arch"
  18378. @@ -261,6 +281,9 @@
  18379. bool
  18380. select ARCH_HAS_NO_SHARED
  18381. +config ARCH_HAS_UCONTEXT
  18382. + bool
  18383. +
  18384. config HAVE_SHARED
  18385. bool "Enable shared libraries"
  18386. depends on !ARCH_HAS_NO_SHARED
  18387. @@ -395,6 +418,13 @@
  18388. Usage of RUNPATH tags is not too common, so disabling this feature
  18389. should be safe for most people.
  18390. +config LDSO_SAFE_RUNPATH
  18391. + bool "Allow only RUNPATH beginning with /"
  18392. + depends on LDSO_RUNPATH
  18393. + default y
  18394. + help
  18395. + Allow only absolute path in RPATH/RUNPATH.
  18396. +
  18397. config LDSO_SEARCH_INTERP_PATH
  18398. bool "Add ldso path to lib search path"
  18399. depends on HAVE_SHARED
  18400. @@ -423,7 +453,6 @@
  18401. config LDSO_NO_CLEANUP
  18402. bool "Disable automatic unloading of dynamically loaded shared objects"
  18403. depends on HAVE_SHARED
  18404. - default n
  18405. help
  18406. If you need complete allocation traces when debugging memory leaks
  18407. using Valgrind in a process that dynamically loads shared objects,
  18408. @@ -491,6 +520,7 @@
  18409. config LINUXTHREADS_NEW
  18410. bool "slightly newer version of linuxthreads"
  18411. + depends on ARCH_HAS_DEPRECATED_SYSCALLS
  18412. help
  18413. The new version has not been tested much, and lacks ports for arches
  18414. which glibc does not support (like bfin/frv/etc...), but is based on
  18415. @@ -501,6 +531,7 @@
  18416. bool "Native POSIX Threading (NPTL)"
  18417. select UCLIBC_HAS_TLS
  18418. select UCLIBC_HAS_STDIO_FUTEXES
  18419. + select UCLIBC_HAS_REALTIME
  18420. # i386 has no lowlevellock support (yet) as opposed to i486 onward
  18421. depends on !CONFIG_386
  18422. help
  18423. @@ -629,6 +660,15 @@
  18424. does not detect glibc style returning-a-valid-pointer-for-malloc(0)
  18425. behavior). Most people can safely answer N.
  18426. +config UCLIBC_HAS_OBSTACK
  18427. + bool "Obstack Support (gnu extension)"
  18428. + help
  18429. + When this option is enabled, uClibc will provide support for obstacks.
  18430. + An obstack is a structure in which memory can be dynamically allocated
  18431. + as a 'stack of objects'. Many programs need this GNU extention and
  18432. + you should say Y if you are using any. Otherwise, say N to save some
  18433. + space.
  18434. +
  18435. config UCLIBC_DYNAMIC_ATEXIT
  18436. bool "Dynamic atexit() Support"
  18437. default y
  18438. @@ -650,6 +690,16 @@
  18439. Enable this option if you want to update from 0.9.28 to git/0.9.29,
  18440. else you will be missing atexit() until you rebuild all apps.
  18441. +config UCLIBC_SUSV2_LEGACY
  18442. + bool "Enable SuSv2 LEGACY functions"
  18443. + help
  18444. + Enable this option if you want to have SuSv2 LEGACY functions
  18445. + Currently applies to:
  18446. +
  18447. + valloc
  18448. +
  18449. + WARNING! ABI incompatibility.
  18450. +
  18451. config UCLIBC_SUSV3_LEGACY
  18452. bool "Enable SuSv3 LEGACY functions"
  18453. #vfork,
  18454. @@ -670,6 +720,19 @@
  18455. WARNING! ABI incompatibility.
  18456. +config UCLIBC_HAS_CONTEXT_FUNCS
  18457. + bool "Use obsolescent context control functions"
  18458. + depends on UCLIBC_SUSV3_LEGACY && ARCH_HAS_UCONTEXT
  18459. + help
  18460. + Add into library the SuSv3 obsolescent functions used for context
  18461. + control. The setcontext family allows the implementation in C of
  18462. + advanced control flow patterns such as iterators, fibers, and
  18463. + coroutines. They may be viewed as an advanced version of
  18464. + setjmp/longjmp; whereas the latter allows only a single non-local jump
  18465. + up the stack, setcontext allows the creation of multiple cooperative
  18466. + threads of control, each with its own stack.
  18467. + These functions are: setcontext, getcontext, makecontext, swapcontext.
  18468. +
  18469. config UCLIBC_SUSV3_LEGACY_MACROS
  18470. bool "Enable SuSv3 LEGACY macros"
  18471. help
  18472. @@ -737,7 +800,6 @@
  18473. config UCLIBC_HAS___PROGNAME
  18474. bool "Support for __progname"
  18475. default y
  18476. - depends on UCLIBC_HAS_PROGRAM_INVOCATION_NAME
  18477. help
  18478. Some packages (like openssh) like to peek into internal libc
  18479. symbols to make their output a bit more user friendly.
  18480. @@ -1320,6 +1382,12 @@
  18481. In particular, the following functions will be added to the
  18482. library:
  18483. + ns_skiprr, ns_initparse, ns_parserr, ns_msg_getflag,
  18484. + res_mkquery, res_init, res_ninit, res_close, res_nclose
  18485. + res_query, res_search, res_querydomain,
  18486. + dn_expand, dn_comp,
  18487. + ns_name_uncompress, ns_name_ntop, ns_name_pton, ns_name_unpack,
  18488. + ns_name_pack, ns_name_compress, ns_name_skip, dn_skipname,
  18489. ns_get16, ns_get32, ns_put16, ns_put32
  18490. config UCLIBC_HAS_LIBRESOLV_STUB
  18491. @@ -1462,7 +1530,7 @@
  18492. config UCLIBC_PREGENERATED_LOCALE_DATA
  18493. bool "Use Pre-generated Locale Data"
  18494. - depends on UCLIBC_HAS_LOCALE
  18495. + depends on UCLIBC_HAS_LOCALE && !TARGET_metag
  18496. help
  18497. Use pre-built locale data.
  18498. @@ -1590,19 +1658,6 @@
  18499. Most people will answer 9.
  18500. -
  18501. -config UCLIBC_HAS_SCANF_GLIBC_A_FLAG
  18502. - bool "Support glibc's 'a' flag for scanf string conversions (not implemented)"
  18503. - help
  18504. - NOTE!!! Currently Not Implemented!!! Just A Place Holder!! NOTE!!!
  18505. - NOTE!!! Conflicts with an ANSI/ISO C99 scanf flag!! NOTE!!!
  18506. -
  18507. - Answer Y to enable support for glibc's 'a' flag for the scanf string
  18508. - conversions '%s', '%[', '%ls', '%l[', and '%S'. This is used to
  18509. - auto-allocate sufficient memory to hold the data retrieved.
  18510. -
  18511. - Most people will answer N.
  18512. -
  18513. choice
  18514. prompt "Stdio buffer size"
  18515. default UCLIBC_HAS_STDIO_BUFSIZ_4096
  18516. @@ -2093,6 +2148,16 @@
  18517. Most people will answer N.
  18518. +config ARC4RANDOM_USES_NODEV
  18519. + bool "Do not use /dev/urandom with arc4random()"
  18520. + depends on UCLIBC_HAS_ARC4RANDOM
  18521. + help
  18522. + Answer Y to use gettimeofday(2) and getpid(2) exclusively for
  18523. + arc4random(). This is not a bad idea for a diskless system, but
  18524. + it uses a lot of syscalls to stir each array element.
  18525. +
  18526. + Most people will answer N.
  18527. +
  18528. config HAVE_NO_SSP
  18529. bool
  18530. @@ -2145,8 +2210,8 @@
  18531. choice
  18532. prompt "Propolice protection blocking signal"
  18533. depends on UCLIBC_HAS_SSP
  18534. - default PROPOLICE_BLOCK_ABRT if ! DODEBUG
  18535. - default PROPOLICE_BLOCK_SEGV if DODEBUG
  18536. + depends on DODEBUG
  18537. + default PROPOLICE_BLOCK_SEGV
  18538. help
  18539. "abort" use SIGABRT to block offending programs.
  18540. This is the default implementation.
  18541. @@ -2340,6 +2405,7 @@
  18542. config UCLIBC_MALLOC_DEBUGGING
  18543. bool "Build malloc with debugging support"
  18544. depends on MALLOC || MALLOC_STANDARD
  18545. + select DOASSERTS
  18546. help
  18547. Answer Y here to compile extra debugging support code into malloc.
  18548. Malloc debugging output may then be enabled at runtime using the
  18549. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.in.arch uClibc-git/extra/Configs/Config.in.arch
  18550. --- uClibc-0.9.33.2/extra/Configs/Config.in.arch 2012-05-15 09:20:09.000000000 +0200
  18551. +++ uClibc-git/extra/Configs/Config.in.arch 2014-06-02 17:40:33.694710213 +0200
  18552. @@ -10,9 +10,6 @@
  18553. if !ARCH_USE_MMU
  18554. choice
  18555. prompt "Target File Format"
  18556. -config UCLIBC_FORMAT_ELF
  18557. - bool "ELF"
  18558. - depends on ARCH_USE_MMU
  18559. config UCLIBC_FORMAT_FDPIC_ELF
  18560. bool "FDPIC ELF"
  18561. depends on !ARCH_USE_MMU && (TARGET_bfin || TARGET_frv)
  18562. @@ -42,6 +39,14 @@
  18563. comment "Using ELF file format"
  18564. endif
  18565. +config ARCH_HAS_DEPRECATED_SYSCALLS
  18566. + bool
  18567. + help
  18568. + New architectures do not support deprecated system calls. However,
  18569. + these system calls are needed to build linuxthreads (old and new) so
  18570. + this symbol controls whether there is support for these threading libraries
  18571. + or not.
  18572. +
  18573. config UCLIBC_SHARED_FLAT_ID
  18574. int "Shared library ID"
  18575. default 1
  18576. @@ -152,7 +157,6 @@
  18577. config DO_C99_MATH
  18578. bool "Enable full C99 math library support"
  18579. depends on UCLIBC_HAS_FLOATS
  18580. - default n
  18581. help
  18582. If you want the uClibc math library to contain the full set C99
  18583. math library features, then answer Y. If you leave this set to
  18584. @@ -166,7 +170,6 @@
  18585. config DO_XSI_MATH
  18586. bool "Enable XSI math extensions to the ISO C standard (bessel)"
  18587. depends on UCLIBC_HAS_FLOATS
  18588. - default n
  18589. help
  18590. X/Open System Interfaces extensions to ISO C math functions
  18591. (differential equation functions):
  18592. @@ -177,7 +180,6 @@
  18593. config UCLIBC_HAS_FENV
  18594. bool "Enable C99 Floating-point environment"
  18595. depends on UCLIBC_HAS_FLOATS
  18596. - default n
  18597. help
  18598. If you want the uClibc math library to contain the C99 floating
  18599. point environment, rounding and exception handling functions then
  18600. @@ -198,7 +200,7 @@
  18601. config KERNEL_HEADERS
  18602. string "Linux kernel header location"
  18603. - default "/usr/include"
  18604. + default ""
  18605. help
  18606. The kernel source you use to compile with should be the same
  18607. as the Linux kernel you run your apps on. uClibc doesn't even
  18608. @@ -209,6 +211,8 @@
  18609. but then run on Linux 2.0.x, lchown will be compiled into uClibc,
  18610. but won't work at all. You have been warned.
  18611. + If you don't set this, we'll assume the toolchain can find them.
  18612. +
  18613. config UCLIBC_UCLINUX_BROKEN_MUNMAP
  18614. bool
  18615. depends on !ARCH_USE_MMU
  18616. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.m68k uClibc-git/extra/Configs/Config.m68k
  18617. --- uClibc-0.9.33.2/extra/Configs/Config.m68k 2012-05-15 09:20:09.000000000 +0200
  18618. +++ uClibc-git/extra/Configs/Config.m68k 2014-06-02 17:40:33.694710213 +0200
  18619. @@ -11,3 +11,4 @@
  18620. bool
  18621. default y
  18622. select ARCH_BIG_ENDIAN
  18623. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18624. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.metag uClibc-git/extra/Configs/Config.metag
  18625. --- uClibc-0.9.33.2/extra/Configs/Config.metag 1970-01-01 01:00:00.000000000 +0100
  18626. +++ uClibc-git/extra/Configs/Config.metag 2014-06-02 17:40:33.694710213 +0200
  18627. @@ -0,0 +1,32 @@
  18628. +#
  18629. +# For a description of the syntax of this configuration file,
  18630. +# see extra/config/Kconfig-language.txt
  18631. +#
  18632. +# Copyright (C) 2013, Imagination Technologies Ltd.
  18633. +#
  18634. +# Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  18635. +#
  18636. +
  18637. +config TARGET_ARCH
  18638. + default "metag"
  18639. +
  18640. +config FORCE_OPTIONS_FOR_ARCH
  18641. + bool
  18642. + default y
  18643. + select ARCH_LITTLE_ENDIAN
  18644. + select ARCH_HAS_MMU
  18645. +
  18646. +choice
  18647. + prompt "Target Processor Type"
  18648. + default CONFIG_META_2_1
  18649. + help
  18650. + This is the processor type of your CPU. This information is used for
  18651. + optimizing purposes.
  18652. +
  18653. +config CONFIG_META_1_2
  18654. + bool "Meta 1.2"
  18655. +
  18656. +config CONFIG_META_2_1
  18657. + bool "Meta 2.1"
  18658. +
  18659. +endchoice
  18660. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.microblaze uClibc-git/extra/Configs/Config.microblaze
  18661. --- uClibc-0.9.33.2/extra/Configs/Config.microblaze 2012-05-15 09:20:09.000000000 +0200
  18662. +++ uClibc-git/extra/Configs/Config.microblaze 2014-06-02 17:40:33.694710213 +0200
  18663. @@ -6,3 +6,8 @@
  18664. config TARGET_ARCH
  18665. string
  18666. default "microblaze"
  18667. +
  18668. +config FORCE_OPTIONS_FOR_ARCH
  18669. + bool
  18670. + default y
  18671. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18672. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.mips uClibc-git/extra/Configs/Config.mips
  18673. --- uClibc-0.9.33.2/extra/Configs/Config.mips 2012-05-15 09:20:09.000000000 +0200
  18674. +++ uClibc-git/extra/Configs/Config.mips 2014-06-02 17:40:33.694710213 +0200
  18675. @@ -11,6 +11,8 @@
  18676. bool
  18677. default y
  18678. select ARCH_ANY_ENDIAN
  18679. + select ARCH_HAS_UCONTEXT
  18680. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18681. choice
  18682. prompt "Target ABI"
  18683. @@ -70,4 +72,7 @@
  18684. config CONFIG_MIPS_ISA_MIPS64
  18685. bool "MIPS64"
  18686. +config CONFIG_MIPS_ISA_MIPS64R2
  18687. + bool "MIPS64r2"
  18688. +
  18689. endchoice
  18690. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.nios uClibc-git/extra/Configs/Config.nios
  18691. --- uClibc-0.9.33.2/extra/Configs/Config.nios 2012-05-15 09:20:09.000000000 +0200
  18692. +++ uClibc-git/extra/Configs/Config.nios 2014-06-02 17:40:33.694710213 +0200
  18693. @@ -13,4 +13,5 @@
  18694. select ARCH_LITTLE_ENDIAN
  18695. select ARCH_HAS_NO_MMU
  18696. select ARCH_HAS_NO_LDSO
  18697. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18698. select HAVE_NO_PIC
  18699. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.nios2 uClibc-git/extra/Configs/Config.nios2
  18700. --- uClibc-0.9.33.2/extra/Configs/Config.nios2 2012-05-15 09:20:09.000000000 +0200
  18701. +++ uClibc-git/extra/Configs/Config.nios2 2014-06-02 17:40:33.694710213 +0200
  18702. @@ -13,4 +13,5 @@
  18703. select ARCH_LITTLE_ENDIAN
  18704. select ARCH_HAS_NO_MMU
  18705. select ARCH_HAS_NO_LDSO
  18706. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18707. select HAVE_NO_PIC
  18708. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.powerpc uClibc-git/extra/Configs/Config.powerpc
  18709. --- uClibc-0.9.33.2/extra/Configs/Config.powerpc 2012-05-15 09:20:09.000000000 +0200
  18710. +++ uClibc-git/extra/Configs/Config.powerpc 2014-06-02 17:40:33.694710213 +0200
  18711. @@ -12,6 +12,7 @@
  18712. default y
  18713. select ARCH_BIG_ENDIAN
  18714. select ARCH_HAS_MMU
  18715. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18716. choice
  18717. prompt "Target Processor Type"
  18718. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.sh uClibc-git/extra/Configs/Config.sh
  18719. --- uClibc-0.9.33.2/extra/Configs/Config.sh 2012-05-15 09:20:09.000000000 +0200
  18720. +++ uClibc-git/extra/Configs/Config.sh 2014-06-02 17:40:33.694710213 +0200
  18721. @@ -11,6 +11,7 @@
  18722. bool
  18723. default y
  18724. select ARCH_ANY_ENDIAN
  18725. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18726. choice
  18727. prompt "Target Processor Type"
  18728. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.sh64 uClibc-git/extra/Configs/Config.sh64
  18729. --- uClibc-0.9.33.2/extra/Configs/Config.sh64 2012-05-15 09:20:09.000000000 +0200
  18730. +++ uClibc-git/extra/Configs/Config.sh64 2014-06-02 17:40:33.694710213 +0200
  18731. @@ -11,6 +11,7 @@
  18732. bool
  18733. default y
  18734. select ARCH_ANY_ENDIAN
  18735. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18736. choice
  18737. prompt "Target Processor Type"
  18738. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.sparc uClibc-git/extra/Configs/Config.sparc
  18739. --- uClibc-0.9.33.2/extra/Configs/Config.sparc 2012-05-15 09:20:09.000000000 +0200
  18740. +++ uClibc-git/extra/Configs/Config.sparc 2014-06-02 17:40:33.694710213 +0200
  18741. @@ -11,6 +11,7 @@
  18742. bool
  18743. default y
  18744. select ARCH_BIG_ENDIAN
  18745. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18746. choice
  18747. prompt "Target Processor Type"
  18748. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.v850 uClibc-git/extra/Configs/Config.v850
  18749. --- uClibc-0.9.33.2/extra/Configs/Config.v850 2012-05-15 09:20:09.000000000 +0200
  18750. +++ uClibc-git/extra/Configs/Config.v850 2014-06-02 17:40:33.694710213 +0200
  18751. @@ -12,4 +12,5 @@
  18752. default y
  18753. select ARCH_LITTLE_ENDIAN
  18754. select ARCH_HAS_NO_MMU
  18755. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18756. select HAVE_NO_PIC
  18757. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.vax uClibc-git/extra/Configs/Config.vax
  18758. --- uClibc-0.9.33.2/extra/Configs/Config.vax 2012-05-15 09:20:09.000000000 +0200
  18759. +++ uClibc-git/extra/Configs/Config.vax 2014-06-02 17:40:33.694710213 +0200
  18760. @@ -12,3 +12,4 @@
  18761. default y
  18762. select ARCH_LITTLE_ENDIAN
  18763. select ARCH_HAS_NO_LDSO
  18764. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18765. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.x86_64 uClibc-git/extra/Configs/Config.x86_64
  18766. --- uClibc-0.9.33.2/extra/Configs/Config.x86_64 2012-05-15 09:20:09.000000000 +0200
  18767. +++ uClibc-git/extra/Configs/Config.x86_64 2014-06-02 17:40:33.694710213 +0200
  18768. @@ -12,3 +12,5 @@
  18769. default y
  18770. select ARCH_LITTLE_ENDIAN
  18771. select ARCH_HAS_MMU
  18772. + select ARCH_HAS_UCONTEXT
  18773. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18774. diff -Nur uClibc-0.9.33.2/extra/Configs/Config.xtensa uClibc-git/extra/Configs/Config.xtensa
  18775. --- uClibc-0.9.33.2/extra/Configs/Config.xtensa 2012-05-15 09:20:09.000000000 +0200
  18776. +++ uClibc-git/extra/Configs/Config.xtensa 2014-06-02 17:40:33.694710213 +0200
  18777. @@ -6,3 +6,8 @@
  18778. config TARGET_ARCH
  18779. string
  18780. default "xtensa"
  18781. +
  18782. +config FORCE_OPTIONS_FOR_ARCH
  18783. + bool
  18784. + default y
  18785. + select ARCH_HAS_DEPRECATED_SYSCALLS
  18786. diff -Nur uClibc-0.9.33.2/extra/Configs/defconfigs/arc/defconfig uClibc-git/extra/Configs/defconfigs/arc/defconfig
  18787. --- uClibc-0.9.33.2/extra/Configs/defconfigs/arc/defconfig 1970-01-01 01:00:00.000000000 +0100
  18788. +++ uClibc-git/extra/Configs/defconfigs/arc/defconfig 2014-06-02 17:40:33.694710213 +0200
  18789. @@ -0,0 +1,28 @@
  18790. +ARCH_WANTS_LITTLE_ENDIAN=y
  18791. +# UCLIBC_HAS_FPU is not set
  18792. +DO_C99_MATH=y
  18793. +KERNEL_HEADERS="%KERNEL_HEADERS%"
  18794. +# DOPIC is not set
  18795. +# LDSO_CACHE_SUPPORT is not set
  18796. +LDSO_RUNPATH=y
  18797. +# LDSO_SAFE_RUNPATH is not set
  18798. +LINUXTHREADS_OLD=y
  18799. +PTHREADS_DEBUG_SUPPORT=y
  18800. +UCLIBC_SUSV2_LEGACY=y
  18801. +UCLIBC_SUSV3_LEGACY=y
  18802. +UCLIBC_SUSV4_LEGACY=y
  18803. +UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
  18804. +UCLIBC_SV4_DEPRECATED=y
  18805. +UCLIBC_HAS_RPC=y
  18806. +UCLIBC_HAS_FULL_RPC=y
  18807. +UCLIBC_HAS_RESOLVER_SUPPORT=y
  18808. +UCLIBC_HAS_LIBRESOLV_STUB=y
  18809. +UCLIBC_HAS_LOCALE=y
  18810. +UCLIBC_HAS_NFTW=y
  18811. +UCLIBC_HAS_FTW=y
  18812. +RUNTIME_PREFIX="%RUNTIME_PREFIX%"
  18813. +DEVEL_PREFIX="%DEVEL_PREFIX%"
  18814. +CROSS_COMPILER_PREFIX="arc-linux-uclibc-"
  18815. +# DOSTRIP is not set
  18816. +SUPPORT_LD_DEBUG=y
  18817. +UCLIBC_HAS_BACKTRACE=y
  18818. diff -Nur uClibc-0.9.33.2/extra/Configs/defconfigs/arc/tb10x_defconfig uClibc-git/extra/Configs/defconfigs/arc/tb10x_defconfig
  18819. --- uClibc-0.9.33.2/extra/Configs/defconfigs/arc/tb10x_defconfig 1970-01-01 01:00:00.000000000 +0100
  18820. +++ uClibc-git/extra/Configs/defconfigs/arc/tb10x_defconfig 2014-06-02 17:40:33.694710213 +0200
  18821. @@ -0,0 +1,37 @@
  18822. +ARCH_WANTS_LITTLE_ENDIAN=y
  18823. +# UCLIBC_HAS_FPU is not set
  18824. +DO_C99_MATH=y
  18825. +KERNEL_HEADERS="%KERNEL_HEADERS%"
  18826. +# DOPIC is not set
  18827. +# LDSO_CACHE_SUPPORT is not set
  18828. +LDSO_RUNPATH=y
  18829. +# LDSO_SAFE_RUNPATH is not set
  18830. +LINUXTHREADS_OLD=y
  18831. +PTHREADS_DEBUG_SUPPORT=y
  18832. +MALLOC_GLIBC_COMPAT=y
  18833. +UCLIBC_SUSV3_LEGACY=y
  18834. +UCLIBC_SUSV4_LEGACY=y
  18835. +UCLIBC_HAS_GETPT=y
  18836. +UCLIBC_HAS_LIBUTIL=y
  18837. +UCLIBC_HAS_OBSOLETE_BSD_SIGNAL=y
  18838. +UCLIBC_SV4_DEPRECATED=y
  18839. +UCLIBC_HAS_IPV6=y
  18840. +UCLIBC_HAS_RPC=y
  18841. +UCLIBC_HAS_FULL_RPC=y
  18842. +UCLIBC_HAS_REENTRANT_RPC=y
  18843. +UCLIBC_HAS_RESOLVER_SUPPORT=y
  18844. +UCLIBC_HAS_LIBRESOLV_STUB=y
  18845. +UCLIBC_HAS_LIBNSL_STUB=y
  18846. +UCLIBC_HAS_CTYPE_CHECKED=y
  18847. +UCLIBC_HAS_LOCALE=y
  18848. +UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE=y
  18849. +UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE=y
  18850. +UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y
  18851. +UCLIBC_HAS_PRINTF_M_SPEC=y
  18852. +UCLIBC_HAS_NFTW=y
  18853. +UCLIBC_HAS_FTW=y
  18854. +RUNTIME_PREFIX="%RUNTIME_PREFIX%"
  18855. +DEVEL_PREFIX="%DEVEL_PREFIX%"
  18856. +CROSS_COMPILER_PREFIX="arc-linux-uclibc-"
  18857. +# DOSTRIP is not set
  18858. +SUPPORT_LD_DEBUG=y
  18859. diff -Nur uClibc-0.9.33.2/extra/Configs/defconfigs/metag/defconfig uClibc-git/extra/Configs/defconfigs/metag/defconfig
  18860. --- uClibc-0.9.33.2/extra/Configs/defconfigs/metag/defconfig 1970-01-01 01:00:00.000000000 +0100
  18861. +++ uClibc-git/extra/Configs/defconfigs/metag/defconfig 2014-06-02 17:40:33.722710369 +0200
  18862. @@ -0,0 +1 @@
  18863. +TARGET_metag=y
  18864. diff -Nur uClibc-0.9.33.2/extra/locale/gen_wc8bit.c uClibc-git/extra/locale/gen_wc8bit.c
  18865. --- uClibc-0.9.33.2/extra/locale/gen_wc8bit.c 2012-05-15 09:20:09.000000000 +0200
  18866. +++ uClibc-git/extra/locale/gen_wc8bit.c 2014-06-02 17:40:33.822710922 +0200
  18867. @@ -182,7 +182,11 @@
  18868. printf("\tunsigned char idx8c2wc[%d];\n", C2WC_IDX_LEN);
  18869. printf("\tunsigned char idx8wc2c[%d];\n", II_LEN);
  18870. #endif
  18871. +#ifndef __metag__
  18872. printf("} __codeset_8_bit_t;\n\n");
  18873. +#else
  18874. + printf("} __attribute__((__packed__)) __codeset_8_bit_t;\n\n");
  18875. +#endif /* __metag__ */
  18876. printf("#ifdef WANT_DATA\n\n");
  18877. printf("static const __codeset_8_bit_t codeset_8_bit[%d] = {\n", argc-1);
  18878. diff -Nur uClibc-0.9.33.2/extra/locale/Makefile.in uClibc-git/extra/locale/Makefile.in
  18879. --- uClibc-0.9.33.2/extra/locale/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  18880. +++ uClibc-git/extra/locale/Makefile.in 2014-06-02 17:40:33.750710524 +0200
  18881. @@ -111,16 +111,10 @@
  18882. $(Q)echo "$(CURDIR)/$(locale_DIR)/charmaps/ISO-8859-1.pairs" >> $@
  18883. else
  18884. $(Q)set -e; \
  18885. - tmp=`mktemp $@.XXXXXX 2>/dev/null || true`; \
  18886. - [ -z "$$tmp" ] && tmp='$@.new'; \
  18887. find $(CURDIR)/$(locale_DIR)/charmaps/ -name '*.pairs' | \
  18888. - sort > $$tmp; \
  18889. - [ -s $$tmp ]; \
  18890. - if cmp $@ $$tmp >/dev/null 2>&1; then \
  18891. - $(RM) $$tmp; \
  18892. - else \
  18893. - mv -f $$tmp $@; \
  18894. - fi
  18895. + sort > $@.new; \
  18896. + [ -s $@.new ]; \
  18897. + cmp -s $@ $@.new && $(RM) $@.new || mv -f $@.new $@
  18898. endif
  18899. # the lines beginning w/ '#-' are mandatory
  18900. diff -Nur uClibc-0.9.33.2/extra/locale/programs/locale.c uClibc-git/extra/locale/programs/locale.c
  18901. --- uClibc-0.9.33.2/extra/locale/programs/locale.c 2012-05-15 09:20:09.000000000 +0200
  18902. +++ uClibc-git/extra/locale/programs/locale.c 2014-06-02 17:40:33.822710922 +0200
  18903. @@ -31,7 +31,7 @@
  18904. unsigned char lc_messages_row;
  18905. } locale_entry;
  18906. -/* Need to include this before locale.h and xlocale.h! */
  18907. +/* Need to include this before locale.h! */
  18908. #include <bits/uClibc_locale.h>
  18909. #undef CODESET_LIST
  18910. diff -Nur uClibc-0.9.33.2/extra/scripts/gen_bits_syscall_h.sh uClibc-git/extra/scripts/gen_bits_syscall_h.sh
  18911. --- uClibc-0.9.33.2/extra/scripts/gen_bits_syscall_h.sh 2012-05-15 09:20:09.000000000 +0200
  18912. +++ uClibc-git/extra/scripts/gen_bits_syscall_h.sh 2014-06-02 17:40:33.822710922 +0200
  18913. @@ -8,14 +8,18 @@
  18914. # June 27, 2001 Manuel Novoa III
  18915. #
  18916. -# This script expects top_builddir and CC (as used in the Makefiles) to be set
  18917. -# in the environment, and outputs the appropriate
  18918. -# $top_builddir/include/bits/sysnum.h # corresponding to
  18919. -# $top_builddir/include/asm/unistd.h to stdout.
  18920. +# This script expects CC (as used in the Makefiles) to be set
  18921. +# in the environment, and outputs the appropriate bits/sysnum.h #
  18922. +# corresponding to asm/unistd.h to stdout.
  18923. #
  18924. # Warning!!! This does _no_ error checking!!!
  18925. -INCLUDE_OPTS="-nostdinc -I${KERNEL_HEADERS}"
  18926. +if [ "${KERNEL_HEADERS:-/}" != "/" ] ; then
  18927. + INCLUDE_OPTS="-nostdinc -I${KERNEL_HEADERS}"
  18928. +else
  18929. + # Let the toolchain use its configure paths.
  18930. + INCLUDE_OPTS=
  18931. +fi
  18932. case $CC in
  18933. *icc*) CC_SYSNUM_ARGS="-dM" ;;
  18934. @@ -25,22 +29,31 @@
  18935. ( echo "#include <asm/unistd.h>";
  18936. echo "#include <asm/unistd.h>" |
  18937. $CC -E $CC_SYSNUM_ARGS $INCLUDE_OPTS - |
  18938. - sed -ne 's/^[ ]*#define[ ]*\(__ARM_NR_\|__NR_\)\([A-Za-z0-9_]*\).*/UCLIBC\1\2 \1\2/gp' \
  18939. - -e 's/^[ ]*#undef[ ]*\(__ARM_NR_\|__NR_\)\([A-Za-z0-9_]*\).*/UNDEFUCLIBC\1\2 \1\2/gp' # needed to strip out any kernel-internal defines
  18940. + sed -n -r \
  18941. + -e 's/^[ ]*#define[ ]*(__ARM_NR_|__NR_)([A-Za-z0-9_]*).*/UCLIBC\1\2 \1\2/gp' \
  18942. + -e 's/^[ ]*#undef[ ]*(__ARM_NR_|__NR_)([A-Za-z0-9_]*).*/UNDEFUCLIBC\1\2 \1\2/gp' # needed to strip out any kernel-internal defines
  18943. ) |
  18944. $CC -E $INCLUDE_OPTS - |
  18945. -( echo "/* WARNING!!! AUTO-GENERATED FILE!!! DO NOT EDIT!!! */" ;
  18946. - echo ;
  18947. - echo "#ifndef _BITS_SYSNUM_H" ;
  18948. - echo "#define _BITS_SYSNUM_H" ;
  18949. - echo ;
  18950. - echo "#ifndef _SYSCALL_H" ;
  18951. - echo "# error \"Never use <bits/sysnum.h> directly; include <sys/syscall.h> instead.\"" ;
  18952. - echo "#endif" ; echo ;
  18953. - sed -ne 's/^UCLIBC\(__ARM_NR_\|__NR_\)\([A-Za-z0-9_]*\) *\(.*\)/#undef \1\2\
  18954. +(
  18955. + cat <<-EOF
  18956. +/* WARNING!!! AUTO-GENERATED FILE!!! DO NOT EDIT!!! */
  18957. +/* See $0 for more information. */
  18958. +
  18959. +#ifndef _BITS_SYSNUM_H
  18960. +#define _BITS_SYSNUM_H
  18961. +
  18962. +#ifndef _SYSCALL_H
  18963. +# error "Never use <bits/sysnum.h> directly; include <sys/syscall.h> instead."
  18964. +#endif
  18965. +
  18966. +EOF
  18967. + sed -n -r -e 's/^UCLIBC(__ARM_NR_|__NR_)([A-Za-z0-9_]*) *(.*)/#undef \1\2\
  18968. #define \1\2 \3\
  18969. #define SYS_\2 \1\2/gp' \
  18970. - -e 's/^UNDEFUCLIBC\(__ARM_NR_\|__NR_\)\([A-Za-z0-9_]*\).*/#undef \1\2/gp'
  18971. - echo ;
  18972. - echo "#endif" ;
  18973. + -e 's/^UNDEFUCLIBC(__ARM_NR_|__NR_)([A-Za-z0-9_]*).*/#undef \1\2\
  18974. +#undef SYS_\2/gp'
  18975. + cat <<-EOF
  18976. +
  18977. +#endif
  18978. +EOF
  18979. )
  18980. diff -Nur uClibc-0.9.33.2/extra/scripts/getent uClibc-git/extra/scripts/getent
  18981. --- uClibc-0.9.33.2/extra/scripts/getent 2012-05-15 09:20:09.000000000 +0200
  18982. +++ uClibc-git/extra/scripts/getent 2014-06-02 17:40:33.822710922 +0200
  18983. @@ -1,5 +1,4 @@
  18984. #!/bin/sh
  18985. -# $Header: /var/cvs/uClibc/extra/scripts/getent,v 1.2 2005/02/02 14:18:01 solar Exp $
  18986. #
  18987. # Closely (not perfectly) emulate the behavior of glibc's getent utility
  18988. #
  18989. @@ -9,7 +8,8 @@
  18990. # case-insensitive matches not supported (ethers; others?)
  18991. # may return false-positives (hosts,protocols,rpc,services,ethers)
  18992. -export PATH="${PATH}:/bin:/usr/bin"
  18993. +[ -z "$PATH" ] && PATH="/bin:/usr/bin" || PATH="${PATH}:/bin:/usr/bin"
  18994. +export PATH
  18995. file="/etc/$1"
  18996. case $1 in
  18997. diff -Nur uClibc-0.9.33.2/extra/scripts/install_headers.sh uClibc-git/extra/scripts/install_headers.sh
  18998. --- uClibc-0.9.33.2/extra/scripts/install_headers.sh 2012-05-15 09:20:09.000000000 +0200
  18999. +++ uClibc-git/extra/scripts/install_headers.sh 2014-06-02 17:40:33.822710922 +0200
  19000. @@ -32,10 +32,9 @@
  19001. exit 1
  19002. fi
  19003. -
  19004. # Sanitize and copy uclibc headers
  19005. (
  19006. -# We must cd, or else we'll prepend "${srcdir}" to filenames!
  19007. +# We must cd, or else we will prepend "${srcdir}" to filenames!
  19008. cd "${srcdir}" || exit 1
  19009. find . ! -name '.' -a ! -path '*/.*' | sed -e 's/^\.\///' -e '/^config\//d' \
  19010. -e '/^config$/d'
  19011. @@ -51,18 +50,20 @@
  19012. # Do not install libc-XXXX.h files
  19013. continue
  19014. fi
  19015. - # NB: unifdef exits with 1 if output is not
  19016. - # exactly the same as input. That's ok.
  19017. # Do not abort the script if unifdef "fails"!
  19018. # NB2: careful with sed command arguments, they contain tab character
  19019. "$top_builddir/extra/scripts/unifdef" \
  19020. + -B \
  19021. + -t \
  19022. + -x 2 \
  19023. + -f "$top_builddir/include/generated/unifdef_config.h" \
  19024. -U_LIBC \
  19025. -U__UCLIBC_GEN_LOCALE \
  19026. -U__NO_CTYPE \
  19027. "${srcdir}/$filename" \
  19028. | sed -e '/^rtld_hidden_proto[ ]*([a-zA-Z0-9_]*)$/d' \
  19029. | sed -e '/^lib\(c\|m\|resolv\|dl\|intl\|rt\|nsl\|util\|crypt\|pthread\)_hidden_proto[ ]*([a-zA-Z0-9_]*)$/d' \
  19030. - >"${dstdir}/$filename"
  19031. + > "${dstdir}/$filename"
  19032. done
  19033. )
  19034. diff -Nur uClibc-0.9.33.2/extra/scripts/relinfo.pl uClibc-git/extra/scripts/relinfo.pl
  19035. --- uClibc-0.9.33.2/extra/scripts/relinfo.pl 2012-05-15 09:20:09.000000000 +0200
  19036. +++ uClibc-git/extra/scripts/relinfo.pl 2014-06-02 17:40:33.822710922 +0200
  19037. @@ -1,5 +1,5 @@
  19038. #! /usr/bin/perl
  19039. -eval "exec /usr/bin/perl -S $0 $*"
  19040. +eval "exec /usr/bin/env perl -w -S $0 $@"
  19041. if 0;
  19042. # Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Red Hat, Inc.
  19043. # Written by Ulrich Drepper <drepper@redhat.com>, 2000.
  19044. @@ -14,8 +14,7 @@
  19045. # GNU General Public License for more details.
  19046. #
  19047. # You should have received a copy of the GNU General Public License
  19048. -# along with this program; if not, write to the Free Software Foundation,
  19049. -# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  19050. +# along with this program; if not, see <http://www.gnu.org/licenses/>.
  19051. for ($cnt = 0; $cnt <= $#ARGV; ++$cnt) {
  19052. $relent = 0;
  19053. diff -Nur uClibc-0.9.33.2/extra/scripts/unifdef.c uClibc-git/extra/scripts/unifdef.c
  19054. --- uClibc-0.9.33.2/extra/scripts/unifdef.c 2012-05-15 09:20:09.000000000 +0200
  19055. +++ uClibc-git/extra/scripts/unifdef.c 2014-06-02 17:40:33.822710922 +0200
  19056. @@ -1,13 +1,5 @@
  19057. /*
  19058. - * Copyright (c) 2002 - 2005 Tony Finch <dot@dotat.at>. All rights reserved.
  19059. - *
  19060. - * This code is derived from software contributed to Berkeley by Dave Yost.
  19061. - * It was rewritten to support ANSI C by Tony Finch. The original version of
  19062. - * unifdef carried the following copyright notice. None of its code remains
  19063. - * in this version (though some of the names remain).
  19064. - *
  19065. - * Copyright (c) 1985, 1993
  19066. - * The Regents of the University of California. All rights reserved.
  19067. + * Copyright (c) 2002 - 2014 Tony Finch <dot@dotat.at>
  19068. *
  19069. * Redistribution and use in source and binary forms, with or without
  19070. * modification, are permitted provided that the following conditions
  19071. @@ -31,27 +23,15 @@
  19072. * SUCH DAMAGE.
  19073. */
  19074. -#include <sys/cdefs.h>
  19075. -
  19076. -#ifndef lint
  19077. -#if 0
  19078. -static const char copyright[] =
  19079. -"@(#) Copyright (c) 1985, 1993\n\
  19080. - The Regents of the University of California. All rights reserved.\n";
  19081. -#endif
  19082. -#ifdef __IDSTRING
  19083. -__IDSTRING(Berkeley, "@(#)unifdef.c 8.1 (Berkeley) 6/6/93");
  19084. -__IDSTRING(NetBSD, "$NetBSD: unifdef.c,v 1.8 2000/07/03 02:51:36 matt Exp $");
  19085. -__IDSTRING(dotat, "$dotat: things/unifdef.c,v 1.171 2005/03/08 12:38:48 fanf2 Exp $");
  19086. -#endif
  19087. -#endif /* not lint */
  19088. -#ifdef __FBSDID
  19089. -__FBSDID("$FreeBSD: /repoman/r/ncvs/src/usr.bin/unifdef/unifdef.c,v 1.20 2005/05/21 09:55:09 ru Exp $");
  19090. -#endif
  19091. -
  19092. /*
  19093. * unifdef - remove ifdef'ed lines
  19094. *
  19095. + * This code was derived from software contributed to Berkeley by Dave Yost.
  19096. + * It was rewritten to support ANSI C by Tony Finch. The original version
  19097. + * of unifdef carried the 4-clause BSD copyright licence. None of its code
  19098. + * remains in this version (though some of the names remain) so it now
  19099. + * carries a more liberal licence.
  19100. + *
  19101. * Wishlist:
  19102. * provide an option which will append the name of the
  19103. * appropriate symbol after #else's and #endif's
  19104. @@ -59,26 +39,17 @@
  19105. * #else's and #endif's to see that they match their
  19106. * corresponding #ifdef or #ifndef
  19107. *
  19108. - * The first two items above require better buffer handling, which would
  19109. - * also make it possible to handle all "dodgy" directives correctly.
  19110. + * These require better buffer handling, which would also make
  19111. + * it possible to handle all "dodgy" directives correctly.
  19112. */
  19113. -#include <errno.h>
  19114. -#include <ctype.h>
  19115. -#include <stdarg.h>
  19116. -#include <stdbool.h>
  19117. -#include <stdio.h>
  19118. -#include <stdlib.h>
  19119. -#include <string.h>
  19120. -#include <unistd.h>
  19121. -
  19122. -/* Avoid err.h since uClibc can disable these things */
  19123. -#define vwarnx(fmt, args) ({ fprintf(stderr, "unifdef: "); vfprintf(stderr, fmt, args); fprintf(stderr, "\n"); })
  19124. -#define warnx(fmt, args...) fprintf(stderr, "unifdef: " fmt "\n", ## args)
  19125. -#define errx(exit_code, fmt, args...) ({ warnx(fmt, ## args); exit(exit_code); })
  19126. -#define err(exit_code, fmt, args...) errx(exit_code, fmt ": %s", ## args, strerror(errno))
  19127. +#include "unifdef.h"
  19128. -size_t strlcpy(char *dst, const char *src, size_t siz);
  19129. +static const char copyright[] =
  19130. + #include "version.h"
  19131. + "@(#) $Author: Tony Finch (dot@dotat.at) $\n"
  19132. + "@(#) $URL: http://dotat.at/prog/unifdef $\n"
  19133. +;
  19134. /* types of input lines: */
  19135. typedef enum {
  19136. @@ -96,6 +67,7 @@
  19137. LT_DODGY_LAST = LT_DODGY + LT_ENDIF,
  19138. LT_PLAIN, /* ordinary line */
  19139. LT_EOF, /* end of file */
  19140. + LT_ERROR, /* unevaluable #if */
  19141. LT_COUNT
  19142. } Linetype;
  19143. @@ -106,9 +78,12 @@
  19144. "DODGY IF", "DODGY TRUE", "DODGY FALSE",
  19145. "DODGY ELIF", "DODGY ELTRUE", "DODGY ELFALSE",
  19146. "DODGY ELSE", "DODGY ENDIF",
  19147. - "PLAIN", "EOF"
  19148. + "PLAIN", "EOF", "ERROR"
  19149. };
  19150. +#define linetype_if2elif(lt) ((Linetype)(lt - LT_IF + LT_ELIF))
  19151. +#define linetype_2dodgy(lt) ((Linetype)(lt + LT_DODGY))
  19152. +
  19153. /* state of #if processing */
  19154. typedef enum {
  19155. IS_OUTSIDE,
  19156. @@ -162,7 +137,7 @@
  19157. */
  19158. #define MAXDEPTH 64 /* maximum #if nesting */
  19159. #define MAXLINE 4096 /* maximum length of line */
  19160. -#define MAXSYMS 4096 /* maximum number of symbols */
  19161. +#define MAXSYMS 16384 /* maximum number of symbols */
  19162. /*
  19163. * Sometimes when editing a keyword the replacement text is longer, so
  19164. @@ -174,13 +149,17 @@
  19165. * Globals.
  19166. */
  19167. +static bool compblank; /* -B: compress blank lines */
  19168. +static bool lnblank; /* -b: blank deleted lines */
  19169. static bool complement; /* -c: do the complement */
  19170. static bool debugging; /* -d: debugging reports */
  19171. +static bool inplace; /* -m: modify in place */
  19172. static bool iocccok; /* -e: fewer IOCCC errors */
  19173. +static bool strictlogic; /* -K: keep ambiguous #ifs */
  19174. static bool killconsts; /* -k: eval constant #ifs */
  19175. -static bool lnblank; /* -l: blank deleted lines */
  19176. static bool lnnum; /* -n: add #line directives */
  19177. static bool symlist; /* -s: output symbol list */
  19178. +static bool symdepth; /* -S: output symbol depth */
  19179. static bool text; /* -t: this is a text file */
  19180. static const char *symname[MAXSYMS]; /* symbol name */
  19181. @@ -191,10 +170,28 @@
  19182. static FILE *input; /* input file pointer */
  19183. static const char *filename; /* input file name */
  19184. static int linenum; /* current line number */
  19185. +static const char *linefile; /* file name for #line */
  19186. +static FILE *output; /* output file pointer */
  19187. +static const char *ofilename; /* output file name */
  19188. +static const char *backext; /* backup extension */
  19189. +static char *tempname; /* avoid splatting input */
  19190. static char tline[MAXLINE+EDITSLOP];/* input buffer plus space */
  19191. static char *keyword; /* used for editing #elif's */
  19192. +/*
  19193. + * When processing a file, the output's newline style will match the
  19194. + * input's, and unifdef correctly handles CRLF or LF endings whatever
  19195. + * the platform's native style. The stdio streams are opened in binary
  19196. + * mode to accommodate platforms whose native newline style is CRLF.
  19197. + * When the output isn't a processed input file (when it is error /
  19198. + * debug / diagnostic messages) then unifdef uses native line endings.
  19199. + */
  19200. +
  19201. +static const char *newline; /* input file format */
  19202. +static const char newline_unix[] = "\n";
  19203. +static const char newline_crlf[] = "\r\n";
  19204. +
  19205. static Comment_state incomment; /* comment parser state */
  19206. static Line_state linestate; /* #if line parser state */
  19207. static Ifstate ifstate[MAXDEPTH]; /* #if processor state */
  19208. @@ -202,31 +199,53 @@
  19209. static int stifline[MAXDEPTH]; /* start of current #if */
  19210. static int depth; /* current #if nesting */
  19211. static int delcount; /* count of deleted lines */
  19212. -static bool keepthis; /* don't delete constant #if */
  19213. +static unsigned blankcount; /* count of blank lines */
  19214. +static unsigned blankmax; /* maximum recent blankcount */
  19215. +static bool constexpr; /* constant #if expression */
  19216. +static bool zerosyms; /* to format symdepth output */
  19217. +static bool firstsym; /* ditto */
  19218. +static int exitmode; /* exit status mode */
  19219. static int exitstat; /* program exit status */
  19220. +static bool altered; /* was this file modified? */
  19221. -static void addsym(bool, bool, char *);
  19222. +static void addsym1(bool, bool, char *);
  19223. +static void addsym2(bool, const char *, const char *);
  19224. +static char *astrcat(const char *, const char *);
  19225. +static void cleantemp(void);
  19226. +static void closeio(void);
  19227. static void debug(const char *, ...);
  19228. +static void debugsym(const char *, int);
  19229. +static bool defundef(void);
  19230. +static void defundefile(const char *);
  19231. static void done(void);
  19232. static void error(const char *);
  19233. -static int findsym(const char *);
  19234. +static int findsym(const char **);
  19235. static void flushline(bool);
  19236. -static Linetype get_line(void);
  19237. +static void hashline(void);
  19238. +static void help(void);
  19239. static Linetype ifeval(const char **);
  19240. static void ignoreoff(void);
  19241. static void ignoreon(void);
  19242. +static void indirectsym(void);
  19243. static void keywordedit(const char *);
  19244. +static const char *matchsym(const char *, const char *);
  19245. static void nest(void);
  19246. +static Linetype parseline(void);
  19247. static void process(void);
  19248. +static void processinout(const char *, const char *);
  19249. +static const char *skipargs(const char *);
  19250. static const char *skipcomment(const char *);
  19251. +static const char *skiphash(void);
  19252. +static const char *skipline(const char *);
  19253. static const char *skipsym(const char *);
  19254. static void state(Ifstate);
  19255. -static int strlcmp(const char *, const char *, size_t);
  19256. static void unnest(void);
  19257. static void usage(void);
  19258. +static void version(void);
  19259. +static const char *xstrdup(const char *, const char *);
  19260. -#define endsym(c) (!isalpha((unsigned char)c) && !isdigit((unsigned char)c) && c != '_')
  19261. +#define endsym(c) (!isalnum((unsigned char)c) && c != '_')
  19262. /*
  19263. * The main program.
  19264. @@ -236,7 +255,7 @@
  19265. {
  19266. int opt;
  19267. - while ((opt = getopt(argc, argv, "i:D:U:I:cdeklnst")) != -1)
  19268. + while ((opt = getopt(argc, argv, "i:D:U:f:I:M:o:x:bBcdehKklmnsStV")) != -1)
  19269. switch (opt) {
  19270. case 'i': /* treat stuff controlled by these symbols as text */
  19271. /*
  19272. @@ -246,20 +265,26 @@
  19273. */
  19274. opt = *optarg++;
  19275. if (opt == 'D')
  19276. - addsym(true, true, optarg);
  19277. + addsym1(true, true, optarg);
  19278. else if (opt == 'U')
  19279. - addsym(true, false, optarg);
  19280. + addsym1(true, false, optarg);
  19281. else
  19282. usage();
  19283. break;
  19284. case 'D': /* define a symbol */
  19285. - addsym(false, true, optarg);
  19286. + addsym1(false, true, optarg);
  19287. break;
  19288. case 'U': /* undef a symbol */
  19289. - addsym(false, false, optarg);
  19290. + addsym1(false, false, optarg);
  19291. break;
  19292. - case 'I':
  19293. - /* no-op for compatibility with cpp */
  19294. + case 'I': /* no-op for compatibility with cpp */
  19295. + break;
  19296. + case 'b': /* blank deleted lines instead of omitting them */
  19297. + case 'l': /* backwards compatibility */
  19298. + lnblank = true;
  19299. + break;
  19300. + case 'B': /* compress blank lines around removed section */
  19301. + compblank = true;
  19302. break;
  19303. case 'c': /* treat -D as -U and vice versa */
  19304. complement = true;
  19305. @@ -270,50 +295,214 @@
  19306. case 'e': /* fewer errors from dodgy lines */
  19307. iocccok = true;
  19308. break;
  19309. + case 'f': /* definitions file */
  19310. + defundefile(optarg);
  19311. + break;
  19312. + case 'h':
  19313. + help();
  19314. + break;
  19315. + case 'K': /* keep ambiguous #ifs */
  19316. + strictlogic = true;
  19317. + break;
  19318. case 'k': /* process constant #ifs */
  19319. killconsts = true;
  19320. break;
  19321. - case 'l': /* blank deleted lines instead of omitting them */
  19322. - lnblank = true;
  19323. + case 'm': /* modify in place */
  19324. + inplace = true;
  19325. + break;
  19326. + case 'M': /* modify in place and keep backup */
  19327. + inplace = true;
  19328. + backext = optarg;
  19329. break;
  19330. case 'n': /* add #line directive after deleted lines */
  19331. lnnum = true;
  19332. break;
  19333. + case 'o': /* output to a file */
  19334. + ofilename = optarg;
  19335. + break;
  19336. case 's': /* only output list of symbols that control #ifs */
  19337. symlist = true;
  19338. break;
  19339. + case 'S': /* list symbols with their nesting depth */
  19340. + symlist = symdepth = true;
  19341. + break;
  19342. case 't': /* don't parse C comments */
  19343. text = true;
  19344. break;
  19345. + case 'V':
  19346. + version();
  19347. + break;
  19348. + case 'x':
  19349. + exitmode = atoi(optarg);
  19350. + if(exitmode < 0 || exitmode > 2)
  19351. + usage();
  19352. + break;
  19353. default:
  19354. usage();
  19355. }
  19356. argc -= optind;
  19357. argv += optind;
  19358. - if (argc > 1) {
  19359. - errx(2, "can only do one file");
  19360. - } else if (argc == 1 && strcmp(*argv, "-") != 0) {
  19361. - filename = *argv;
  19362. - input = fopen(filename, "r");
  19363. - if (input == NULL)
  19364. - err(2, "can't open %s", filename);
  19365. - } else {
  19366. + if (compblank && lnblank)
  19367. + errx(2, "-B and -b are mutually exclusive");
  19368. + if (symlist && (ofilename != NULL || inplace || argc > 1))
  19369. + errx(2, "-s only works with one input file");
  19370. + if (argc > 1 && ofilename != NULL)
  19371. + errx(2, "-o cannot be used with multiple input files");
  19372. + if (argc > 1 && !inplace)
  19373. + errx(2, "multiple input files require -m or -M");
  19374. + if (argc == 0)
  19375. + argc = 1;
  19376. + if (argc == 1 && !inplace && ofilename == NULL)
  19377. + ofilename = "-";
  19378. + indirectsym();
  19379. +
  19380. + atexit(cleantemp);
  19381. + if (ofilename != NULL)
  19382. + processinout(*argv, ofilename);
  19383. + else while (argc-- > 0) {
  19384. + processinout(*argv, *argv);
  19385. + argv++;
  19386. + }
  19387. + switch(exitmode) {
  19388. + case(0): exit(exitstat);
  19389. + case(1): exit(!exitstat);
  19390. + case(2): exit(0);
  19391. + default: abort(); /* bug */
  19392. + }
  19393. +}
  19394. +
  19395. +/*
  19396. + * File logistics.
  19397. + */
  19398. +static void
  19399. +processinout(const char *ifn, const char *ofn)
  19400. +{
  19401. + struct stat st;
  19402. +
  19403. + if (ifn == NULL || strcmp(ifn, "-") == 0) {
  19404. filename = "[stdin]";
  19405. - input = stdin;
  19406. + linefile = NULL;
  19407. + input = fbinmode(stdin);
  19408. + } else {
  19409. + filename = ifn;
  19410. + linefile = ifn;
  19411. + input = fopen(ifn, "rb");
  19412. + if (input == NULL)
  19413. + err(2, "can't open %s", ifn);
  19414. + }
  19415. + if (strcmp(ofn, "-") == 0) {
  19416. + output = fbinmode(stdout);
  19417. + process();
  19418. + return;
  19419. }
  19420. + if (stat(ofn, &st) < 0) {
  19421. + output = fopen(ofn, "wb");
  19422. + if (output == NULL)
  19423. + err(2, "can't create %s", ofn);
  19424. + process();
  19425. + return;
  19426. + }
  19427. +
  19428. + tempname = astrcat(ofn, ".XXXXXX");
  19429. + output = mktempmode(tempname, st.st_mode);
  19430. + if (output == NULL)
  19431. + err(2, "can't create %s", tempname);
  19432. +
  19433. process();
  19434. - debug("bug at line %d", __LINE__);
  19435. - abort(); /* bug */
  19436. +
  19437. + if (backext != NULL) {
  19438. + char *backname = astrcat(ofn, backext);
  19439. + if (rename(ofn, backname) < 0)
  19440. + err(2, "can't rename \"%s\" to \"%s\"", ofn, backname);
  19441. + free(backname);
  19442. + }
  19443. + /* leave file unmodified if unifdef made no changes */
  19444. + if (!altered && backext == NULL) {
  19445. + if (remove(tempname) < 0)
  19446. + warn("can't remove \"%s\"", tempname);
  19447. + } else if (replace(tempname, ofn) < 0)
  19448. + err(2, "can't rename \"%s\" to \"%s\"", tempname, ofn);
  19449. + free(tempname);
  19450. + tempname = NULL;
  19451. +}
  19452. +
  19453. +/*
  19454. + * For cleaning up if there is an error.
  19455. + */
  19456. +static void
  19457. +cleantemp(void)
  19458. +{
  19459. + if (tempname != NULL)
  19460. + remove(tempname);
  19461. +}
  19462. +
  19463. +/*
  19464. + * Self-identification functions.
  19465. + */
  19466. +
  19467. +static void
  19468. +version(void)
  19469. +{
  19470. + const char *c = copyright;
  19471. + for (;;) {
  19472. + while (*++c != '$')
  19473. + if (*c == '\0')
  19474. + exit(0);
  19475. + while (*++c != '$')
  19476. + putc(*c, stderr);
  19477. + putc('\n', stderr);
  19478. + }
  19479. +}
  19480. +
  19481. +static void
  19482. +synopsis(FILE *fp)
  19483. +{
  19484. + fprintf(fp,
  19485. + "usage: unifdef [-bBcdehKkmnsStV] [-x{012}] [-Mext] [-opath] \\\n"
  19486. + " [-[i]Dsym[=val]] [-[i]Usym] [-fpath] ... [file] ...\n");
  19487. }
  19488. static void
  19489. usage(void)
  19490. {
  19491. - fprintf(stderr, "usage: unifdef [-cdeklnst] [-Ipath]"
  19492. - " [-Dsym[=val]] [-Usym] [-iDsym[=val]] [-iUsym] ... [file]\n");
  19493. + synopsis(stderr);
  19494. exit(2);
  19495. }
  19496. +static void
  19497. +help(void)
  19498. +{
  19499. + synopsis(stdout);
  19500. + printf(
  19501. + " -Dsym=val define preprocessor symbol with given value\n"
  19502. + " -Dsym define preprocessor symbol with value 1\n"
  19503. + " -Usym preprocessor symbol is undefined\n"
  19504. + " -iDsym=val \\ ignore C strings and comments\n"
  19505. + " -iDsym ) in sections controlled by these\n"
  19506. + " -iUsym / preprocessor symbols\n"
  19507. + " -fpath file containing #define and #undef directives\n"
  19508. + " -b blank lines instead of deleting them\n"
  19509. + " -B compress blank lines around deleted section\n"
  19510. + " -c complement (invert) keep vs. delete\n"
  19511. + " -d debugging mode\n"
  19512. + " -e ignore multiline preprocessor directives\n"
  19513. + " -h print help\n"
  19514. + " -Ipath extra include file path (ignored)\n"
  19515. + " -K disable && and || short-circuiting\n"
  19516. + " -k process constant #if expressions\n"
  19517. + " -Mext modify in place and keep backups\n"
  19518. + " -m modify input files in place\n"
  19519. + " -n add #line directives to output\n"
  19520. + " -opath output file name\n"
  19521. + " -S list #if control symbols with nesting\n"
  19522. + " -s list #if control symbols\n"
  19523. + " -t ignore C strings and comments\n"
  19524. + " -V print version\n"
  19525. + " -x{012} exit status mode\n"
  19526. + );
  19527. + exit(0);
  19528. +}
  19529. +
  19530. /*
  19531. * A state transition function alters the global #if processing state
  19532. * in a particular way. The table below is indexed by the current
  19533. @@ -327,7 +516,8 @@
  19534. * When we have processed a group that starts off with a known-false
  19535. * #if/#elif sequence (which has therefore been deleted) followed by a
  19536. * #elif that we don't understand and therefore must keep, we edit the
  19537. - * latter into a #if to keep the nesting correct.
  19538. + * latter into a #if to keep the nesting correct. We use memcpy() to
  19539. + * overwrite the 4 byte token "elif" with "if " without a '\0' byte.
  19540. *
  19541. * When we find a true #elif in a group, the following block will
  19542. * always be kept and the rest of the sequence after the next #elif or
  19543. @@ -380,75 +570,66 @@
  19544. static void Idrop (void) { Fdrop(); ignoreon(); }
  19545. static void Itrue (void) { Ftrue(); ignoreon(); }
  19546. static void Ifalse(void) { Ffalse(); ignoreon(); }
  19547. -/* edit this line */
  19548. -static void Mpass (void) { strncpy(keyword, "if ", 4); Pelif(); }
  19549. -static void Mtrue (void) { keywordedit("else\n"); state(IS_TRUE_MIDDLE); }
  19550. -static void Melif (void) { keywordedit("endif\n"); state(IS_FALSE_TRAILER); }
  19551. -static void Melse (void) { keywordedit("endif\n"); state(IS_FALSE_ELSE); }
  19552. +/* modify this line */
  19553. +static void Mpass (void) { memcpy(keyword, "if ", 4); Pelif(); }
  19554. +static void Mtrue (void) { keywordedit("else"); state(IS_TRUE_MIDDLE); }
  19555. +static void Melif (void) { keywordedit("endif"); state(IS_FALSE_TRAILER); }
  19556. +static void Melse (void) { keywordedit("endif"); state(IS_FALSE_ELSE); }
  19557. static state_fn * const trans_table[IS_COUNT][LT_COUNT] = {
  19558. /* IS_OUTSIDE */
  19559. { Itrue, Ifalse,Fpass, Ftrue, Ffalse,Eelif, Eelif, Eelif, Eelse, Eendif,
  19560. Oiffy, Oiffy, Fpass, Oif, Oif, Eelif, Eelif, Eelif, Eelse, Eendif,
  19561. - print, done },
  19562. + print, done, abort },
  19563. /* IS_FALSE_PREFIX */
  19564. { Idrop, Idrop, Fdrop, Fdrop, Fdrop, Mpass, Strue, Sfalse,Selse, Dendif,
  19565. Idrop, Idrop, Fdrop, Fdrop, Fdrop, Mpass, Eioccc,Eioccc,Eioccc,Eioccc,
  19566. - drop, Eeof },
  19567. + drop, Eeof, abort },
  19568. /* IS_TRUE_PREFIX */
  19569. { Itrue, Ifalse,Fpass, Ftrue, Ffalse,Dfalse,Dfalse,Dfalse,Delse, Dendif,
  19570. Oiffy, Oiffy, Fpass, Oif, Oif, Eioccc,Eioccc,Eioccc,Eioccc,Eioccc,
  19571. - print, Eeof },
  19572. + print, Eeof, abort },
  19573. /* IS_PASS_MIDDLE */
  19574. { Itrue, Ifalse,Fpass, Ftrue, Ffalse,Pelif, Mtrue, Delif, Pelse, Pendif,
  19575. Oiffy, Oiffy, Fpass, Oif, Oif, Pelif, Oelif, Oelif, Pelse, Pendif,
  19576. - print, Eeof },
  19577. + print, Eeof, abort },
  19578. /* IS_FALSE_MIDDLE */
  19579. { Idrop, Idrop, Fdrop, Fdrop, Fdrop, Pelif, Mtrue, Delif, Pelse, Pendif,
  19580. Idrop, Idrop, Fdrop, Fdrop, Fdrop, Eioccc,Eioccc,Eioccc,Eioccc,Eioccc,
  19581. - drop, Eeof },
  19582. + drop, Eeof, abort },
  19583. /* IS_TRUE_MIDDLE */
  19584. { Itrue, Ifalse,Fpass, Ftrue, Ffalse,Melif, Melif, Melif, Melse, Pendif,
  19585. Oiffy, Oiffy, Fpass, Oif, Oif, Eioccc,Eioccc,Eioccc,Eioccc,Pendif,
  19586. - print, Eeof },
  19587. + print, Eeof, abort },
  19588. /* IS_PASS_ELSE */
  19589. { Itrue, Ifalse,Fpass, Ftrue, Ffalse,Eelif, Eelif, Eelif, Eelse, Pendif,
  19590. Oiffy, Oiffy, Fpass, Oif, Oif, Eelif, Eelif, Eelif, Eelse, Pendif,
  19591. - print, Eeof },
  19592. + print, Eeof, abort },
  19593. /* IS_FALSE_ELSE */
  19594. { Idrop, Idrop, Fdrop, Fdrop, Fdrop, Eelif, Eelif, Eelif, Eelse, Dendif,
  19595. Idrop, Idrop, Fdrop, Fdrop, Fdrop, Eelif, Eelif, Eelif, Eelse, Eioccc,
  19596. - drop, Eeof },
  19597. + drop, Eeof, abort },
  19598. /* IS_TRUE_ELSE */
  19599. { Itrue, Ifalse,Fpass, Ftrue, Ffalse,Eelif, Eelif, Eelif, Eelse, Dendif,
  19600. Oiffy, Oiffy, Fpass, Oif, Oif, Eelif, Eelif, Eelif, Eelse, Eioccc,
  19601. - print, Eeof },
  19602. + print, Eeof, abort },
  19603. /* IS_FALSE_TRAILER */
  19604. { Idrop, Idrop, Fdrop, Fdrop, Fdrop, Dfalse,Dfalse,Dfalse,Delse, Dendif,
  19605. Idrop, Idrop, Fdrop, Fdrop, Fdrop, Dfalse,Dfalse,Dfalse,Delse, Eioccc,
  19606. - drop, Eeof }
  19607. + drop, Eeof, abort }
  19608. /*TRUEI FALSEI IF TRUE FALSE ELIF ELTRUE ELFALSE ELSE ENDIF
  19609. TRUEI FALSEI IF TRUE FALSE ELIF ELTRUE ELFALSE ELSE ENDIF (DODGY)
  19610. - PLAIN EOF */
  19611. + PLAIN EOF ERROR */
  19612. };
  19613. /*
  19614. * State machine utility functions
  19615. */
  19616. static void
  19617. -done(void)
  19618. -{
  19619. - if (incomment)
  19620. - error("EOF in comment");
  19621. - exit(exitstat);
  19622. -}
  19623. -static void
  19624. ignoreoff(void)
  19625. {
  19626. - if (depth == 0) {
  19627. - debug("bug at line %d", __LINE__);
  19628. + if (depth == 0)
  19629. abort(); /* bug */
  19630. - }
  19631. ignoring[depth] = ignoring[depth-1];
  19632. }
  19633. static void
  19634. @@ -459,31 +640,26 @@
  19635. static void
  19636. keywordedit(const char *replacement)
  19637. {
  19638. - size_t size = tline + sizeof(tline) - keyword;
  19639. - char *dst = keyword;
  19640. - const char *src = replacement;
  19641. - if (size != 0) {
  19642. - while ((--size != 0) && (*src != '\0'))
  19643. - *dst++ = *src++;
  19644. - *dst = '\0';
  19645. - }
  19646. + snprintf(keyword, tline + sizeof(tline) - keyword,
  19647. + "%s%s", replacement, newline);
  19648. + altered = true;
  19649. print();
  19650. }
  19651. static void
  19652. nest(void)
  19653. {
  19654. - depth += 1;
  19655. - if (depth >= MAXDEPTH)
  19656. + if (depth > MAXDEPTH-1)
  19657. + abort(); /* bug */
  19658. + if (depth == MAXDEPTH-1)
  19659. error("Too many levels of nesting");
  19660. + depth += 1;
  19661. stifline[depth] = linenum;
  19662. }
  19663. static void
  19664. unnest(void)
  19665. {
  19666. - if (depth == 0) {
  19667. - debug("bug at line %d", __LINE__);
  19668. + if (depth == 0)
  19669. abort(); /* bug */
  19670. - }
  19671. depth -= 1;
  19672. }
  19673. static void
  19674. @@ -493,7 +669,20 @@
  19675. }
  19676. /*
  19677. + * The last state transition function. When this is called,
  19678. + * lineval == LT_EOF, so the process() loop will terminate.
  19679. + */
  19680. +static void
  19681. +done(void)
  19682. +{
  19683. + if (incomment)
  19684. + error("EOF in comment");
  19685. + closeio();
  19686. +}
  19687. +
  19688. +/*
  19689. * Write a line to the output or not, according to command line options.
  19690. + * If writing fails, closeio() will print the error and exit.
  19691. */
  19692. static void
  19693. flushline(bool keep)
  19694. @@ -501,16 +690,58 @@
  19695. if (symlist)
  19696. return;
  19697. if (keep ^ complement) {
  19698. - if (lnnum && delcount > 0)
  19699. - printf("#line %d\n", linenum);
  19700. - fputs(tline, stdout);
  19701. - delcount = 0;
  19702. + bool blankline = tline[strspn(tline, " \t\r\n")] == '\0';
  19703. + if (blankline && compblank && blankcount != blankmax) {
  19704. + delcount += 1;
  19705. + blankcount += 1;
  19706. + } else {
  19707. + if (lnnum && delcount > 0)
  19708. + hashline();
  19709. + if (fputs(tline, output) == EOF)
  19710. + closeio();
  19711. + delcount = 0;
  19712. + blankmax = blankcount = blankline ? blankcount + 1 : 0;
  19713. + }
  19714. } else {
  19715. - if (lnblank)
  19716. - putc('\n', stdout);
  19717. - exitstat = 1;
  19718. + if (lnblank && fputs(newline, output) == EOF)
  19719. + closeio();
  19720. + altered = true;
  19721. delcount += 1;
  19722. + blankcount = 0;
  19723. }
  19724. + if (debugging && fflush(output) == EOF)
  19725. + closeio();
  19726. +}
  19727. +
  19728. +/*
  19729. + * Format of #line directives depends on whether we know the input filename.
  19730. + */
  19731. +static void
  19732. +hashline(void)
  19733. +{
  19734. + int e;
  19735. +
  19736. + if (linefile == NULL)
  19737. + e = fprintf(output, "#line %d%s", linenum, newline);
  19738. + else
  19739. + e = fprintf(output, "#line %d \"%s\"%s",
  19740. + linenum, linefile, newline);
  19741. + if (e < 0)
  19742. + closeio();
  19743. +}
  19744. +
  19745. +/*
  19746. + * Flush the output and handle errors.
  19747. + */
  19748. +static void
  19749. +closeio(void)
  19750. +{
  19751. + /* Tidy up after findsym(). */
  19752. + if (symdepth && !zerosyms)
  19753. + printf("\n");
  19754. + if (output != NULL && (ferror(output) || fclose(output) == EOF))
  19755. + err(2, "%s: can't write to output", filename);
  19756. + fclose(input);
  19757. }
  19758. /*
  19759. @@ -519,16 +750,22 @@
  19760. static void
  19761. process(void)
  19762. {
  19763. - Linetype lineval;
  19764. -
  19765. - for (;;) {
  19766. - linenum++;
  19767. - lineval = get_line();
  19768. + Linetype lineval = LT_PLAIN;
  19769. + /* When compressing blank lines, act as if the file
  19770. + is preceded by a large number of blank lines. */
  19771. + blankmax = blankcount = 1000;
  19772. + zerosyms = true;
  19773. + newline = NULL;
  19774. + linenum = 0;
  19775. + altered = false;
  19776. + while (lineval != LT_EOF) {
  19777. + lineval = parseline();
  19778. trans_table[ifstate[depth]][lineval]();
  19779. - debug("process %s -> %s depth %d",
  19780. - linetype_name[lineval],
  19781. + debug("process line %d %s -> %s depth %d",
  19782. + linenum, linetype_name[lineval],
  19783. ifstate_name[ifstate[depth]], depth);
  19784. }
  19785. + exitstat |= altered;
  19786. }
  19787. /*
  19788. @@ -537,104 +774,131 @@
  19789. * help from skipcomment().
  19790. */
  19791. static Linetype
  19792. -get_line(void)
  19793. +parseline(void)
  19794. {
  19795. const char *cp;
  19796. int cursym;
  19797. - int kwlen;
  19798. Linetype retval;
  19799. Comment_state wascomment;
  19800. - if (fgets(tline, MAXLINE, input) == NULL)
  19801. - return (LT_EOF);
  19802. - retval = LT_PLAIN;
  19803. wascomment = incomment;
  19804. - cp = skipcomment(tline);
  19805. - if (linestate == LS_START) {
  19806. - if (*cp == '#') {
  19807. - linestate = LS_HASH;
  19808. - cp = skipcomment(cp + 1);
  19809. - } else if (*cp != '\0')
  19810. - linestate = LS_DIRTY;
  19811. + cp = skiphash();
  19812. + if (cp == NULL)
  19813. + return (LT_EOF);
  19814. + if (newline == NULL) {
  19815. + if (strrchr(tline, '\n') == strrchr(tline, '\r') + 1)
  19816. + newline = newline_crlf;
  19817. + else
  19818. + newline = newline_unix;
  19819. }
  19820. - if (!incomment && linestate == LS_HASH) {
  19821. - keyword = tline + (cp - tline);
  19822. - cp = skipsym(cp);
  19823. - kwlen = cp - keyword;
  19824. - /* no way can we deal with a continuation inside a keyword */
  19825. - if (strncmp(cp, "\\\n", 2) == 0)
  19826. - Eioccc();
  19827. - if (strlcmp("ifdef", keyword, kwlen) == 0 ||
  19828. - strlcmp("ifndef", keyword, kwlen) == 0) {
  19829. - cp = skipcomment(cp);
  19830. - if ((cursym = findsym(cp)) < 0)
  19831. - retval = LT_IF;
  19832. - else {
  19833. - retval = (keyword[2] == 'n')
  19834. - ? LT_FALSE : LT_TRUE;
  19835. - if (value[cursym] == NULL)
  19836. - retval = (retval == LT_TRUE)
  19837. - ? LT_FALSE : LT_TRUE;
  19838. - if (ignore[cursym])
  19839. - retval = (retval == LT_TRUE)
  19840. - ? LT_TRUEI : LT_FALSEI;
  19841. - }
  19842. - cp = skipsym(cp);
  19843. - } else if (strlcmp("if", keyword, kwlen) == 0)
  19844. - retval = ifeval(&cp);
  19845. - else if (strlcmp("elif", keyword, kwlen) == 0)
  19846. - retval = ifeval(&cp) - LT_IF + LT_ELIF;
  19847. - else if (strlcmp("else", keyword, kwlen) == 0)
  19848. - retval = LT_ELSE;
  19849. - else if (strlcmp("endif", keyword, kwlen) == 0)
  19850. - retval = LT_ENDIF;
  19851. + if (*cp == '\0') {
  19852. + retval = LT_PLAIN;
  19853. + goto done;
  19854. + }
  19855. + keyword = tline + (cp - tline);
  19856. + if ((cp = matchsym("ifdef", keyword)) != NULL ||
  19857. + (cp = matchsym("ifndef", keyword)) != NULL) {
  19858. + cp = skipcomment(cp);
  19859. + if ((cursym = findsym(&cp)) < 0)
  19860. + retval = LT_IF;
  19861. else {
  19862. - linestate = LS_DIRTY;
  19863. - retval = LT_PLAIN;
  19864. + retval = (keyword[2] == 'n')
  19865. + ? LT_FALSE : LT_TRUE;
  19866. + if (value[cursym] == NULL)
  19867. + retval = (retval == LT_TRUE)
  19868. + ? LT_FALSE : LT_TRUE;
  19869. + if (ignore[cursym])
  19870. + retval = (retval == LT_TRUE)
  19871. + ? LT_TRUEI : LT_FALSEI;
  19872. }
  19873. - cp = skipcomment(cp);
  19874. - if (*cp != '\0') {
  19875. + } else if ((cp = matchsym("if", keyword)) != NULL)
  19876. + retval = ifeval(&cp);
  19877. + else if ((cp = matchsym("elif", keyword)) != NULL)
  19878. + retval = linetype_if2elif(ifeval(&cp));
  19879. + else if ((cp = matchsym("else", keyword)) != NULL)
  19880. + retval = LT_ELSE;
  19881. + else if ((cp = matchsym("endif", keyword)) != NULL)
  19882. + retval = LT_ENDIF;
  19883. + else {
  19884. + cp = skipsym(keyword);
  19885. + /* no way can we deal with a continuation inside a keyword */
  19886. + if (strncmp(cp, "\\\r\n", 3) == 0 ||
  19887. + strncmp(cp, "\\\n", 2) == 0)
  19888. + Eioccc();
  19889. + cp = skipline(cp);
  19890. + retval = LT_PLAIN;
  19891. + goto done;
  19892. + }
  19893. + cp = skipcomment(cp);
  19894. + if (*cp != '\0') {
  19895. + cp = skipline(cp);
  19896. + if (retval == LT_TRUE || retval == LT_FALSE ||
  19897. + retval == LT_TRUEI || retval == LT_FALSEI)
  19898. + retval = LT_IF;
  19899. + if (retval == LT_ELTRUE || retval == LT_ELFALSE)
  19900. + retval = LT_ELIF;
  19901. + }
  19902. + /* the following can happen if the last line of the file lacks a
  19903. + newline or if there is too much whitespace in a directive */
  19904. + if (linestate == LS_HASH) {
  19905. + long len = cp - tline;
  19906. + if (fgets(tline + len, MAXLINE - len, input) == NULL) {
  19907. + if (ferror(input))
  19908. + err(2, "can't read %s", filename);
  19909. + /* append the missing newline at eof */
  19910. + strcpy(tline + len, newline);
  19911. + cp += strlen(newline);
  19912. + linestate = LS_START;
  19913. + } else {
  19914. linestate = LS_DIRTY;
  19915. - if (retval == LT_TRUE || retval == LT_FALSE ||
  19916. - retval == LT_TRUEI || retval == LT_FALSEI)
  19917. - retval = LT_IF;
  19918. - if (retval == LT_ELTRUE || retval == LT_ELFALSE)
  19919. - retval = LT_ELIF;
  19920. - }
  19921. - if (retval != LT_PLAIN && (wascomment || incomment)) {
  19922. - retval += LT_DODGY;
  19923. - if (incomment)
  19924. - linestate = LS_DIRTY;
  19925. }
  19926. - /* skipcomment should have changed the state */
  19927. -// Hmm hppens sometimes on valid files
  19928. -// if (linestate == LS_HASH) {
  19929. -// debug("bug at line %d", __LINE__);
  19930. -// abort(); /* bug */
  19931. -// }
  19932. - }
  19933. - if (linestate == LS_DIRTY) {
  19934. - while (*cp != '\0')
  19935. - cp = skipcomment(cp + 1);
  19936. }
  19937. - debug("parser %s comment %s line",
  19938. + if (retval != LT_PLAIN && (wascomment || linestate != LS_START)) {
  19939. + retval = linetype_2dodgy(retval);
  19940. + linestate = LS_DIRTY;
  19941. + }
  19942. +done:
  19943. + debug("parser line %d state %s comment %s line", linenum,
  19944. comment_name[incomment], linestate_name[linestate]);
  19945. return (retval);
  19946. }
  19947. /*
  19948. * These are the binary operators that are supported by the expression
  19949. - * evaluator. Note that if support for division is added then we also
  19950. - * need short-circuiting booleans because of divide-by-zero.
  19951. + * evaluator.
  19952. */
  19953. -static int op_lt(int a, int b) { return (a < b); }
  19954. -static int op_gt(int a, int b) { return (a > b); }
  19955. -static int op_le(int a, int b) { return (a <= b); }
  19956. -static int op_ge(int a, int b) { return (a >= b); }
  19957. -static int op_eq(int a, int b) { return (a == b); }
  19958. -static int op_ne(int a, int b) { return (a != b); }
  19959. -static int op_or(int a, int b) { return (a || b); }
  19960. -static int op_and(int a, int b) { return (a && b); }
  19961. +static Linetype op_strict(long *p, long v, Linetype at, Linetype bt) {
  19962. + if(at == LT_IF || bt == LT_IF) return (LT_IF);
  19963. + return (*p = v, v ? LT_TRUE : LT_FALSE);
  19964. +}
  19965. +static Linetype op_lt(long *p, Linetype at, long a, Linetype bt, long b) {
  19966. + return op_strict(p, a < b, at, bt);
  19967. +}
  19968. +static Linetype op_gt(long *p, Linetype at, long a, Linetype bt, long b) {
  19969. + return op_strict(p, a > b, at, bt);
  19970. +}
  19971. +static Linetype op_le(long *p, Linetype at, long a, Linetype bt, long b) {
  19972. + return op_strict(p, a <= b, at, bt);
  19973. +}
  19974. +static Linetype op_ge(long *p, Linetype at, long a, Linetype bt, long b) {
  19975. + return op_strict(p, a >= b, at, bt);
  19976. +}
  19977. +static Linetype op_eq(long *p, Linetype at, long a, Linetype bt, long b) {
  19978. + return op_strict(p, a == b, at, bt);
  19979. +}
  19980. +static Linetype op_ne(long *p, Linetype at, long a, Linetype bt, long b) {
  19981. + return op_strict(p, a != b, at, bt);
  19982. +}
  19983. +static Linetype op_or(long *p, Linetype at, long a, Linetype bt, long b) {
  19984. + if (!strictlogic && (at == LT_TRUE || bt == LT_TRUE))
  19985. + return (*p = 1, LT_TRUE);
  19986. + return op_strict(p, a || b, at, bt);
  19987. +}
  19988. +static Linetype op_and(long *p, Linetype at, long a, Linetype bt, long b) {
  19989. + if (!strictlogic && (at == LT_FALSE || bt == LT_FALSE))
  19990. + return (*p = 0, LT_FALSE);
  19991. + return op_strict(p, a && b, at, bt);
  19992. +}
  19993. /*
  19994. * An evaluation function takes three arguments, as follows: (1) a pointer to
  19995. @@ -643,12 +907,12 @@
  19996. * value of the expression; and (3) a pointer to a char* that points to the
  19997. * expression to be evaluated and that is updated to the end of the expression
  19998. * when evaluation is complete. The function returns LT_FALSE if the value of
  19999. - * the expression is zero, LT_TRUE if it is non-zero, or LT_IF if the
  20000. - * expression could not be evaluated.
  20001. + * the expression is zero, LT_TRUE if it is non-zero, LT_IF if the expression
  20002. + * depends on an unknown symbol, or LT_ERROR if there is a parse failure.
  20003. */
  20004. struct ops;
  20005. -typedef Linetype eval_fn(const struct ops *, int *, const char **);
  20006. +typedef Linetype eval_fn(const struct ops *, long *, const char **);
  20007. static eval_fn eval_table, eval_unary;
  20008. @@ -659,139 +923,139 @@
  20009. * element of the table. Innermost expressions have special non-table-driven
  20010. * handling.
  20011. */
  20012. -static const struct ops {
  20013. +struct op {
  20014. + const char *str;
  20015. + Linetype (*fn)(long *, Linetype, long, Linetype, long);
  20016. +};
  20017. +struct ops {
  20018. eval_fn *inner;
  20019. - struct op {
  20020. - const char *str;
  20021. - int short_circuit_val;
  20022. - int (*fn)(int, int);
  20023. - } op[5];
  20024. -} eval_ops[] = {
  20025. - { eval_table, { { "||", 1, op_or } } },
  20026. - { eval_table, { { "&&", 0, op_and } } },
  20027. - { eval_table, { { "==", -1, op_eq },
  20028. - { "!=", -1, op_ne } } },
  20029. - { eval_unary, { { "<=", -1, op_le },
  20030. - { ">=", -1, op_ge },
  20031. - { "<", -1, op_lt },
  20032. - { ">", -1, op_gt } } }
  20033. + struct op op[5];
  20034. +};
  20035. +static const struct ops eval_ops[] = {
  20036. + { eval_table, { { "||", op_or } } },
  20037. + { eval_table, { { "&&", op_and } } },
  20038. + { eval_table, { { "==", op_eq },
  20039. + { "!=", op_ne } } },
  20040. + { eval_unary, { { "<=", op_le },
  20041. + { ">=", op_ge },
  20042. + { "<", op_lt },
  20043. + { ">", op_gt } } }
  20044. };
  20045. +/* Current operator precedence level */
  20046. +static long prec(const struct ops *ops)
  20047. +{
  20048. + return (ops - eval_ops);
  20049. +}
  20050. +
  20051. /*
  20052. - * Function for evaluating the innermost parts of expressions, viz.
  20053. - * "!expr", "(expr)", "defined(symbol)", "defined symbol", "symbol", "number".
  20054. - * We reset the keepthis flag when we find a non-constant subexpression.
  20055. - */
  20056. -// TODO: we use LT_IF both as "I don't know whether it's false or true"
  20057. -// (example: "#if defined FOO") and when we see syntax error
  20058. -// (example: "#if (1 || 2" - no closing paren!), but this is wrong.
  20059. -// Binary && and || need to distinguish these cases in order to handle this:
  20060. -// "#if defined KNOWN_UNDEFINED && FOO" - discard
  20061. -// "#if defined KNOWN_UNDEFINED && (syntax_error_here" - do not discard!
  20062. + * Function for evaluating the innermost parts of expressions,
  20063. + * viz. !expr (expr) number defined(symbol) symbol
  20064. + * We reset the constexpr flag in the last two cases.
  20065. + */
  20066. static Linetype
  20067. -eval_unary(const struct ops *ops, int *valp, const char **cpp)
  20068. +eval_unary(const struct ops *ops, long *valp, const char **cpp)
  20069. {
  20070. const char *cp;
  20071. char *ep;
  20072. int sym;
  20073. + bool defparen;
  20074. + Linetype lt;
  20075. cp = skipcomment(*cpp);
  20076. if (*cp == '!') {
  20077. - debug("eval%d !", ops - eval_ops);
  20078. + debug("eval%d !", prec(ops));
  20079. cp++;
  20080. - if (eval_unary(ops, valp, &cp) == LT_IF) {
  20081. - *cpp = cp;
  20082. - return (LT_IF);
  20083. + lt = eval_unary(ops, valp, &cp);
  20084. + if (lt == LT_ERROR)
  20085. + return (LT_ERROR);
  20086. + if (lt != LT_IF) {
  20087. + *valp = !*valp;
  20088. + lt = *valp ? LT_TRUE : LT_FALSE;
  20089. }
  20090. - *valp = !*valp;
  20091. -
  20092. } else if (*cp == '(') {
  20093. - Linetype expr_res;
  20094. -
  20095. cp++;
  20096. - debug("eval%d (%s", ops - eval_ops, cp);
  20097. - expr_res = eval_table(eval_ops, valp, &cp);
  20098. + debug("eval%d (", prec(ops));
  20099. + lt = eval_table(eval_ops, valp, &cp);
  20100. + if (lt == LT_ERROR)
  20101. + return (LT_ERROR);
  20102. cp = skipcomment(cp);
  20103. - *cpp = cp;
  20104. if (*cp++ != ')')
  20105. - return (LT_IF);
  20106. - *cpp = cp;
  20107. - if (expr_res == LT_IF)
  20108. - return (LT_IF);
  20109. -
  20110. + return (LT_ERROR);
  20111. } else if (isdigit((unsigned char)*cp)) {
  20112. - debug("eval%d number", ops - eval_ops);
  20113. + debug("eval%d number", prec(ops));
  20114. *valp = strtol(cp, &ep, 0);
  20115. - cp = skipsym(cp);
  20116. -
  20117. - } else if (strncmp(cp, "defined", 7) == 0 && endsym(cp[7])) {
  20118. - bool parens;
  20119. -
  20120. + if (ep == cp)
  20121. + return (LT_ERROR);
  20122. + lt = *valp ? LT_TRUE : LT_FALSE;
  20123. + cp = ep;
  20124. + } else if (matchsym("defined", cp) != NULL) {
  20125. cp = skipcomment(cp+7);
  20126. - debug("eval%d defined '%s'", ops - eval_ops, cp);
  20127. - parens = (*cp == '(');
  20128. - if (parens)
  20129. + if (*cp == '(') {
  20130. cp = skipcomment(cp+1);
  20131. - sym = findsym(cp);
  20132. - cp = skipsym(cp);
  20133. + defparen = true;
  20134. + } else {
  20135. + defparen = false;
  20136. + }
  20137. + sym = findsym(&cp);
  20138. cp = skipcomment(cp);
  20139. - if (parens) {
  20140. - if (*cp != ')')
  20141. - return (LT_IF);
  20142. - cp = skipcomment(cp+1);
  20143. + if (defparen && *cp++ != ')') {
  20144. + debug("eval%d defined missing ')'", prec(ops));
  20145. + return (LT_ERROR);
  20146. }
  20147. - *cpp = cp;
  20148. if (sym < 0) {
  20149. - debug("sym not found, returning LT_IF");
  20150. - return (LT_IF);
  20151. + debug("eval%d defined unknown", prec(ops));
  20152. + lt = LT_IF;
  20153. + } else {
  20154. + debug("eval%d defined %s", prec(ops), symname[sym]);
  20155. + *valp = (value[sym] != NULL);
  20156. + lt = *valp ? LT_TRUE : LT_FALSE;
  20157. }
  20158. - *valp = (value[sym] != NULL);
  20159. - keepthis = false;
  20160. -
  20161. + constexpr = false;
  20162. } else if (!endsym(*cp)) {
  20163. - debug("eval%d symbol", ops - eval_ops);
  20164. - sym = findsym(cp);
  20165. - cp = skipsym(cp);
  20166. - *cpp = cp;
  20167. - if (sym < 0)
  20168. - return (LT_IF);
  20169. - if (value[sym] == NULL)
  20170. + debug("eval%d symbol", prec(ops));
  20171. + sym = findsym(&cp);
  20172. + if (sym < 0) {
  20173. + lt = LT_IF;
  20174. + cp = skipargs(cp);
  20175. + } else if (value[sym] == NULL) {
  20176. *valp = 0;
  20177. - else {
  20178. + lt = LT_FALSE;
  20179. + } else {
  20180. *valp = strtol(value[sym], &ep, 0);
  20181. if (*ep != '\0' || ep == value[sym])
  20182. - return (LT_IF);
  20183. + return (LT_ERROR);
  20184. + lt = *valp ? LT_TRUE : LT_FALSE;
  20185. + cp = skipargs(cp);
  20186. }
  20187. - keepthis = false;
  20188. -
  20189. + constexpr = false;
  20190. } else {
  20191. - debug("eval%d bad expr", ops - eval_ops);
  20192. - return (LT_IF);
  20193. + debug("eval%d bad expr", prec(ops));
  20194. + return (LT_ERROR);
  20195. }
  20196. *cpp = cp;
  20197. - debug("eval%d = %d", ops - eval_ops, *valp);
  20198. - return (*valp ? LT_TRUE : LT_FALSE);
  20199. + debug("eval%d = %d", prec(ops), *valp);
  20200. + return (lt);
  20201. }
  20202. /*
  20203. * Table-driven evaluation of binary operators.
  20204. */
  20205. static Linetype
  20206. -eval_table(const struct ops *ops, int *valp, const char **cpp)
  20207. +eval_table(const struct ops *ops, long *valp, const char **cpp)
  20208. {
  20209. - Linetype left_side;
  20210. const struct op *op;
  20211. const char *cp;
  20212. - int val;
  20213. + long val;
  20214. + Linetype lt, rt;
  20215. - debug("eval%d '%s'", ops - eval_ops, *cpp);
  20216. - left_side = ops->inner(ops+1, valp, cpp);
  20217. + debug("eval%d", prec(ops));
  20218. cp = *cpp;
  20219. -
  20220. + lt = ops->inner(ops+1, valp, &cp);
  20221. + if (lt == LT_ERROR)
  20222. + return (LT_ERROR);
  20223. for (;;) {
  20224. - Linetype right_side;
  20225. -
  20226. cp = skipcomment(cp);
  20227. for (op = ops->op; op->str != NULL; op++)
  20228. if (strncmp(cp, op->str, strlen(op->str)) == 0)
  20229. @@ -799,38 +1063,17 @@
  20230. if (op->str == NULL)
  20231. break;
  20232. cp += strlen(op->str);
  20233. - debug("eval%d '%s'", ops - eval_ops, op->str);
  20234. - right_side = ops->inner(ops+1, &val, &cp);
  20235. - *cpp = cp;
  20236. -
  20237. - /* If short_circuit_val is 0 or 1, we can ignore
  20238. - * right side if left size is known, and its value
  20239. - * (i.e., *valp) is 0 or !0, respectively */
  20240. - if (left_side != LT_IF && op->short_circuit_val == !!*valp) {
  20241. - debug("op->short_circuit_val:%d *valp:%d cp:'%s'",
  20242. - op->short_circuit_val, *valp, cp);
  20243. - *valp = !!*valp;
  20244. - break;
  20245. - }
  20246. - /* Same for the right side */
  20247. - if (right_side != LT_IF && op->short_circuit_val == !!val) {
  20248. - debug("op->short_circuit_val:%d val:%d cp:'%s'",
  20249. - op->short_circuit_val, val, cp);
  20250. - left_side = right_side;
  20251. - *valp = !!val;
  20252. - break;
  20253. - }
  20254. -
  20255. - if (left_side == LT_IF || right_side == LT_IF)
  20256. - return (LT_IF);
  20257. - *valp = op->fn(*valp, val);
  20258. - left_side = right_side;
  20259. + debug("eval%d %s", prec(ops), op->str);
  20260. + rt = ops->inner(ops+1, &val, &cp);
  20261. + if (rt == LT_ERROR)
  20262. + return (LT_ERROR);
  20263. + lt = op->fn(valp, lt, *valp, rt, val);
  20264. }
  20265. - debug("eval%d = %d LT_IF:%d", ops - eval_ops, *valp, (left_side == LT_IF));
  20266. - if (left_side == LT_IF)
  20267. - return (LT_IF);
  20268. - return (*valp ? LT_TRUE : LT_FALSE);
  20269. + *cpp = cp;
  20270. + debug("eval%d = %d", prec(ops), *valp);
  20271. + debug("eval%d lt = %s", prec(ops), linetype_name[lt]);
  20272. + return (lt);
  20273. }
  20274. /*
  20275. @@ -841,14 +1084,57 @@
  20276. static Linetype
  20277. ifeval(const char **cpp)
  20278. {
  20279. - int ret;
  20280. - int val;
  20281. + Linetype ret;
  20282. + long val = 0;
  20283. debug("eval %s", *cpp);
  20284. - keepthis = killconsts ? false : true;
  20285. + constexpr = killconsts ? false : true;
  20286. ret = eval_table(eval_ops, &val, cpp);
  20287. - debug("val:%d ret:%d keepthis:%d", val, ret, keepthis);
  20288. - return (keepthis ? LT_IF : ret);
  20289. + debug("eval = %d", val);
  20290. + return (constexpr ? LT_IF : ret == LT_ERROR ? LT_IF : ret);
  20291. +}
  20292. +
  20293. +/*
  20294. + * Read a line and examine its initial part to determine if it is a
  20295. + * preprocessor directive. Returns NULL on EOF, or a pointer to a
  20296. + * preprocessor directive name, or a pointer to the zero byte at the
  20297. + * end of the line.
  20298. + */
  20299. +static const char *
  20300. +skiphash(void)
  20301. +{
  20302. + const char *cp;
  20303. +
  20304. + linenum++;
  20305. + if (fgets(tline, MAXLINE, input) == NULL) {
  20306. + if (ferror(input))
  20307. + err(2, "can't read %s", filename);
  20308. + else
  20309. + return (NULL);
  20310. + }
  20311. + cp = skipcomment(tline);
  20312. + if (linestate == LS_START && *cp == '#') {
  20313. + linestate = LS_HASH;
  20314. + return (skipcomment(cp + 1));
  20315. + } else if (*cp == '\0') {
  20316. + return (cp);
  20317. + } else {
  20318. + return (skipline(cp));
  20319. + }
  20320. +}
  20321. +
  20322. +/*
  20323. + * Mark a line dirty and consume the rest of it, keeping track of the
  20324. + * lexical state.
  20325. + */
  20326. +static const char *
  20327. +skipline(const char *cp)
  20328. +{
  20329. + if (*cp != '\0')
  20330. + linestate = LS_DIRTY;
  20331. + while (*cp != '\0')
  20332. + cp = skipcomment(cp + 1);
  20333. + return (cp);
  20334. }
  20335. /*
  20336. @@ -869,11 +1155,16 @@
  20337. }
  20338. while (*cp != '\0')
  20339. /* don't reset to LS_START after a line continuation */
  20340. - if (strncmp(cp, "\\\n", 2) == 0)
  20341. + if (strncmp(cp, "\\\r\n", 3) == 0)
  20342. + cp += 3;
  20343. + else if (strncmp(cp, "\\\n", 2) == 0)
  20344. cp += 2;
  20345. else switch (incomment) {
  20346. case NO_COMMENT:
  20347. - if (strncmp(cp, "/\\\n", 3) == 0) {
  20348. + if (strncmp(cp, "/\\\r\n", 4) == 0) {
  20349. + incomment = STARTING_COMMENT;
  20350. + cp += 4;
  20351. + } else if (strncmp(cp, "/\\\n", 3) == 0) {
  20352. incomment = STARTING_COMMENT;
  20353. cp += 3;
  20354. } else if (strncmp(cp, "/*", 2) == 0) {
  20355. @@ -893,7 +1184,7 @@
  20356. } else if (strncmp(cp, "\n", 1) == 0) {
  20357. linestate = LS_START;
  20358. cp += 1;
  20359. - } else if (strchr(" \t", *cp) != NULL) {
  20360. + } else if (strchr(" \r\t", *cp) != NULL) {
  20361. cp += 1;
  20362. } else
  20363. return (cp);
  20364. @@ -925,7 +1216,10 @@
  20365. cp += 1;
  20366. continue;
  20367. case C_COMMENT:
  20368. - if (strncmp(cp, "*\\\n", 3) == 0) {
  20369. + if (strncmp(cp, "*\\\r\n", 4) == 0) {
  20370. + incomment = FINISHING_COMMENT;
  20371. + cp += 4;
  20372. + } else if (strncmp(cp, "*\\\n", 3) == 0) {
  20373. incomment = FINISHING_COMMENT;
  20374. cp += 3;
  20375. } else if (strncmp(cp, "*/", 2) == 0) {
  20376. @@ -954,13 +1248,37 @@
  20377. incomment = C_COMMENT;
  20378. continue;
  20379. default:
  20380. - debug("bug at line %d", __LINE__);
  20381. abort(); /* bug */
  20382. }
  20383. return (cp);
  20384. }
  20385. /*
  20386. + * Skip macro arguments.
  20387. + */
  20388. +static const char *
  20389. +skipargs(const char *cp)
  20390. +{
  20391. + const char *ocp = cp;
  20392. + int level = 0;
  20393. + cp = skipcomment(cp);
  20394. + if (*cp != '(')
  20395. + return (cp);
  20396. + do {
  20397. + if (*cp == '(')
  20398. + level++;
  20399. + if (*cp == ')')
  20400. + level--;
  20401. + cp = skipcomment(cp+1);
  20402. + } while (level != 0 && *cp != '\0');
  20403. + if (level == 0)
  20404. + return (cp);
  20405. + else
  20406. + /* Rewind and re-detect the syntax error later. */
  20407. + return (ocp);
  20408. +}
  20409. +
  20410. +/*
  20411. * Skip over an identifier.
  20412. */
  20413. static const char *
  20414. @@ -972,27 +1290,69 @@
  20415. }
  20416. /*
  20417. - * Look for the symbol in the symbol table. If is is found, we return
  20418. + * Skip whitespace and take a copy of any following identifier.
  20419. + */
  20420. +static const char *
  20421. +getsym(const char **cpp)
  20422. +{
  20423. + const char *cp = *cpp, *sym;
  20424. +
  20425. + cp = skipcomment(cp);
  20426. + cp = skipsym(sym = cp);
  20427. + if (cp == sym)
  20428. + return NULL;
  20429. + *cpp = cp;
  20430. + return (xstrdup(sym, cp));
  20431. +}
  20432. +
  20433. +/*
  20434. + * Check that s (a symbol) matches the start of t, and that the
  20435. + * following character in t is not a symbol character. Returns a
  20436. + * pointer to the following character in t if there is a match,
  20437. + * otherwise NULL.
  20438. + */
  20439. +static const char *
  20440. +matchsym(const char *s, const char *t)
  20441. +{
  20442. + while (*s != '\0' && *t != '\0')
  20443. + if (*s != *t)
  20444. + return (NULL);
  20445. + else
  20446. + ++s, ++t;
  20447. + if (*s == '\0' && endsym(*t))
  20448. + return(t);
  20449. + else
  20450. + return(NULL);
  20451. +}
  20452. +
  20453. +/*
  20454. + * Look for the symbol in the symbol table. If it is found, we return
  20455. * the symbol table index, else we return -1.
  20456. */
  20457. static int
  20458. -findsym(const char *str)
  20459. +findsym(const char **strp)
  20460. {
  20461. - const char *cp;
  20462. + const char *str;
  20463. int symind;
  20464. - cp = skipsym(str);
  20465. - if (cp == str)
  20466. - return (-1);
  20467. + str = *strp;
  20468. + *strp = skipsym(str);
  20469. if (symlist) {
  20470. - printf("%.*s\n", (int)(cp-str), str);
  20471. + if (*strp == str)
  20472. + return (-1);
  20473. + if (symdepth && firstsym)
  20474. + printf("%s%3d", zerosyms ? "" : "\n", depth);
  20475. + firstsym = zerosyms = false;
  20476. + printf("%s%.*s%s",
  20477. + symdepth ? " " : "",
  20478. + (int)(*strp-str), str,
  20479. + symdepth ? "" : "\n");
  20480. /* we don't care about the value of the symbol */
  20481. return (0);
  20482. }
  20483. for (symind = 0; symind < nsyms; ++symind) {
  20484. - if (strlcmp(symname[symind], str, cp-str) == 0) {
  20485. - debug("findsym %s %s", symname[symind],
  20486. - value[symind] ? value[symind] : "");
  20487. + if (matchsym(symname[symind], str) != NULL) {
  20488. + debugsym("findsym", symind);
  20489. return (symind);
  20490. }
  20491. }
  20492. @@ -1000,51 +1360,194 @@
  20493. }
  20494. /*
  20495. + * Resolve indirect symbol values to their final definitions.
  20496. + */
  20497. +static void
  20498. +indirectsym(void)
  20499. +{
  20500. + const char *cp;
  20501. + int changed, sym, ind;
  20502. +
  20503. + do {
  20504. + changed = 0;
  20505. + for (sym = 0; sym < nsyms; ++sym) {
  20506. + if (value[sym] == NULL)
  20507. + continue;
  20508. + cp = value[sym];
  20509. + ind = findsym(&cp);
  20510. + if (ind == -1 || ind == sym ||
  20511. + *cp != '\0' ||
  20512. + value[ind] == NULL ||
  20513. + value[ind] == value[sym])
  20514. + continue;
  20515. + debugsym("indir...", sym);
  20516. + value[sym] = value[ind];
  20517. + debugsym("...ectsym", sym);
  20518. + changed++;
  20519. + }
  20520. + } while (changed);
  20521. +}
  20522. +
  20523. +/*
  20524. + * Add a symbol to the symbol table, specified with the format sym=val
  20525. + */
  20526. +static void
  20527. +addsym1(bool ignorethis, bool definethis, char *symval)
  20528. +{
  20529. + const char *sym, *val;
  20530. +
  20531. + sym = symval;
  20532. + val = skipsym(sym);
  20533. + if (definethis && *val == '=') {
  20534. + symval[val - sym] = '\0';
  20535. + val = val + 1;
  20536. + } else if (*val == '\0') {
  20537. + val = definethis ? "1" : NULL;
  20538. + } else {
  20539. + usage();
  20540. + }
  20541. + addsym2(ignorethis, sym, val);
  20542. +}
  20543. +
  20544. +/*
  20545. * Add a symbol to the symbol table.
  20546. */
  20547. static void
  20548. -addsym(bool ignorethis, bool definethis, char *sym)
  20549. +addsym2(bool ignorethis, const char *sym, const char *val)
  20550. {
  20551. + const char *cp = sym;
  20552. int symind;
  20553. - char *val;
  20554. - symind = findsym(sym);
  20555. + symind = findsym(&cp);
  20556. if (symind < 0) {
  20557. if (nsyms >= MAXSYMS)
  20558. errx(2, "too many symbols");
  20559. symind = nsyms++;
  20560. }
  20561. - symname[symind] = sym;
  20562. ignore[symind] = ignorethis;
  20563. - val = sym + (skipsym(sym) - sym);
  20564. - if (definethis) {
  20565. - if (*val == '=') {
  20566. - value[symind] = val+1;
  20567. - *val = '\0';
  20568. - } else if (*val == '\0')
  20569. - value[symind] = "";
  20570. - else
  20571. - usage();
  20572. + symname[symind] = sym;
  20573. + value[symind] = val;
  20574. + debugsym("addsym", symind);
  20575. +}
  20576. +
  20577. +static void
  20578. +debugsym(const char *why, int symind)
  20579. +{
  20580. + debug("%s %s%c%s", why, symname[symind],
  20581. + value[symind] ? '=' : ' ',
  20582. + value[symind] ? value[symind] : "undef");
  20583. +}
  20584. +
  20585. +/*
  20586. + * Add symbols to the symbol table from a file containing
  20587. + * #define and #undef preprocessor directives.
  20588. + */
  20589. +static void
  20590. +defundefile(const char *fn)
  20591. +{
  20592. + filename = fn;
  20593. + input = fopen(fn, "rb");
  20594. + if (input == NULL)
  20595. + err(2, "can't open %s", fn);
  20596. + linenum = 0;
  20597. + while (defundef())
  20598. + ;
  20599. + if (ferror(input))
  20600. + err(2, "can't read %s", filename);
  20601. + else
  20602. + fclose(input);
  20603. + if (incomment)
  20604. + error("EOF in comment");
  20605. +}
  20606. +
  20607. +/*
  20608. + * Read and process one #define or #undef directive
  20609. + */
  20610. +static bool
  20611. +defundef(void)
  20612. +{
  20613. + const char *cp, *kw, *sym, *val, *end;
  20614. +
  20615. + cp = skiphash();
  20616. + if (cp == NULL)
  20617. + return (false);
  20618. + if (*cp == '\0')
  20619. + goto done;
  20620. + /* strip trailing whitespace, and do a fairly rough check to
  20621. + avoid unsupported multi-line preprocessor directives */
  20622. + end = cp + strlen(cp);
  20623. + while (end > tline && strchr(" \t\n\r", end[-1]) != NULL)
  20624. + --end;
  20625. + if (end > tline && end[-1] == '\\')
  20626. + Eioccc();
  20627. +
  20628. + kw = cp;
  20629. + if ((cp = matchsym("define", kw)) != NULL) {
  20630. + sym = getsym(&cp);
  20631. + if (sym == NULL)
  20632. + error("missing macro name in #define");
  20633. + if (*cp == '(') {
  20634. + val = "1";
  20635. + } else {
  20636. + cp = skipcomment(cp);
  20637. + val = (cp < end) ? xstrdup(cp, end) : "";
  20638. + }
  20639. + debug("#define");
  20640. + addsym2(false, sym, val);
  20641. + } else if ((cp = matchsym("undef", kw)) != NULL) {
  20642. + sym = getsym(&cp);
  20643. + if (sym == NULL)
  20644. + error("missing macro name in #undef");
  20645. + cp = skipcomment(cp);
  20646. + debug("#undef");
  20647. + addsym2(false, sym, NULL);
  20648. } else {
  20649. - if (*val != '\0')
  20650. - usage();
  20651. - value[symind] = NULL;
  20652. + error("unrecognized preprocessor directive");
  20653. }
  20654. + skipline(cp);
  20655. +done:
  20656. + debug("parser line %d state %s comment %s line", linenum,
  20657. + comment_name[incomment], linestate_name[linestate]);
  20658. + return (true);
  20659. }
  20660. /*
  20661. - * Compare s with n characters of t.
  20662. - * The same as strncmp() except that it checks that s[n] == '\0'.
  20663. + * Concatenate two strings into new memory, checking for failure.
  20664. */
  20665. -static int
  20666. -strlcmp(const char *s, const char *t, size_t n)
  20667. +static char *
  20668. +astrcat(const char *s1, const char *s2)
  20669. {
  20670. - while (n-- && *t != '\0')
  20671. - if (*s != *t)
  20672. - return ((unsigned char)*s - (unsigned char)*t);
  20673. - else
  20674. - ++s, ++t;
  20675. - return ((unsigned char)*s);
  20676. + char *s;
  20677. + int len;
  20678. + size_t size;
  20679. +
  20680. + len = snprintf(NULL, 0, "%s%s", s1, s2);
  20681. + if (len < 0)
  20682. + err(2, "snprintf");
  20683. + size = (size_t)len + 1;
  20684. + s = (char *)malloc(size);
  20685. + if (s == NULL)
  20686. + err(2, "malloc");
  20687. + snprintf(s, size, "%s%s", s1, s2);
  20688. + return (s);
  20689. +}
  20690. +
  20691. +/*
  20692. + * Duplicate a segment of a string, checking for failure.
  20693. + */
  20694. +static const char *
  20695. +xstrdup(const char *start, const char *end)
  20696. +{
  20697. + size_t n;
  20698. + char *s;
  20699. +
  20700. + if (end < start) abort(); /* bug */
  20701. + n = (size_t)(end - start) + 1;
  20702. + s = malloc(n);
  20703. + if (s == NULL)
  20704. + err(2, "malloc");
  20705. + snprintf(s, n, "%s", start);
  20706. + return (s);
  20707. }
  20708. /*
  20709. @@ -1070,5 +1573,6 @@
  20710. else
  20711. warnx("%s: %d: %s (#if line %d depth %d)",
  20712. filename, linenum, msg, stifline[depth], depth);
  20713. + closeio();
  20714. errx(2, "output may be truncated");
  20715. }
  20716. diff -Nur uClibc-0.9.33.2/extra/scripts/unifdef.h uClibc-git/extra/scripts/unifdef.h
  20717. --- uClibc-0.9.33.2/extra/scripts/unifdef.h 1970-01-01 01:00:00.000000000 +0100
  20718. +++ uClibc-git/extra/scripts/unifdef.h 2014-06-02 17:40:33.822710922 +0200
  20719. @@ -0,0 +1,57 @@
  20720. +/*
  20721. + * Copyright (c) 2012 - 2013 Tony Finch <dot@dotat.at>
  20722. + *
  20723. + * Redistribution and use in source and binary forms, with or without
  20724. + * modification, are permitted provided that the following conditions
  20725. + * are met:
  20726. + * 1. Redistributions of source code must retain the above copyright
  20727. + * notice, this list of conditions and the following disclaimer.
  20728. + * 2. Redistributions in binary form must reproduce the above copyright
  20729. + * notice, this list of conditions and the following disclaimer in the
  20730. + * documentation and/or other materials provided with the distribution.
  20731. + *
  20732. + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  20733. + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  20734. + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  20735. + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  20736. + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  20737. + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  20738. + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  20739. + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  20740. + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  20741. + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  20742. + * SUCH DAMAGE.
  20743. + */
  20744. +
  20745. +#include <sys/stat.h>
  20746. +
  20747. +#include <ctype.h>
  20748. +#include <errno.h>
  20749. +#include <stdarg.h>
  20750. +#include <stdbool.h>
  20751. +#include <stdio.h>
  20752. +#include <stdlib.h>
  20753. +#include <string.h>
  20754. +#include <unistd.h>
  20755. +
  20756. +/* Avoid err.h since this are non-standard BSD extensions */
  20757. +#define vwarnx(fmt, args) ({ fprintf(stderr, "unifdef: "); vfprintf(stderr, fmt, args); fprintf(stderr, "\n"); })
  20758. +#define warnx(fmt, args...) fprintf(stderr, "unifdef: " fmt "\n", ## args)
  20759. +#define warn(fmt, args...) warnx(fmt ": %s", ## args, strerror(errno))
  20760. +#define errx(exit_code, fmt, args...) ({ warnx(fmt, ## args); exit(exit_code); })
  20761. +#define err(exit_code, fmt, args...) errx(exit_code, fmt ": %s", ## args, strerror(errno))
  20762. +
  20763. +/* portability stubs */
  20764. +
  20765. +#define fbinmode(fp) (fp)
  20766. +
  20767. +#define replace(old,new) rename(old,new)
  20768. +
  20769. +static FILE *
  20770. +mktempmode(char *tmp, int mode)
  20771. +{
  20772. + int fd = mkstemp(tmp);
  20773. + if (fd < 0) return (NULL);
  20774. + fchmod(fd, mode & (S_IRWXU|S_IRWXG|S_IRWXO));
  20775. + return (fdopen(fd, "wb"));
  20776. +}
  20777. diff -Nur uClibc-0.9.33.2/extra/scripts/version.h uClibc-git/extra/scripts/version.h
  20778. --- uClibc-0.9.33.2/extra/scripts/version.h 1970-01-01 01:00:00.000000000 +0100
  20779. +++ uClibc-git/extra/scripts/version.h 2014-06-02 17:40:33.822710922 +0200
  20780. @@ -0,0 +1,2 @@
  20781. +"@(#) $Version: unifdef-2.10.4.1542ea4 $\n"
  20782. +"@(#) $Date: 2014-01-07 22:32:21 +0000 $\n"
  20783. diff -Nur uClibc-0.9.33.2/.gitignore uClibc-git/.gitignore
  20784. --- uClibc-0.9.33.2/.gitignore 2012-05-15 09:20:09.000000000 +0200
  20785. +++ uClibc-git/.gitignore 2014-06-02 17:40:33.666710058 +0200
  20786. @@ -25,6 +25,7 @@
  20787. .gdb_history
  20788. .gdbinit
  20789. core
  20790. +*.c.[0-9][0-9][0-9]t.*
  20791. #
  20792. # Backups / patches
  20793. diff -Nur uClibc-0.9.33.2/include/alloca.h uClibc-git/include/alloca.h
  20794. --- uClibc-0.9.33.2/include/alloca.h 2012-05-15 09:20:09.000000000 +0200
  20795. +++ uClibc-git/include/alloca.h 2014-06-02 17:40:33.826710944 +0200
  20796. @@ -12,9 +12,8 @@
  20797. Lesser General Public License for more details.
  20798. You should have received a copy of the GNU Lesser General Public
  20799. - License along with the GNU C Library; if not, write to the Free
  20800. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  20801. - 02111-1307 USA. */
  20802. + License along with the GNU C Library; if not, see
  20803. + <http://www.gnu.org/licenses/>. */
  20804. #ifndef _ALLOCA_H
  20805. #define _ALLOCA_H 1
  20806. diff -Nur uClibc-0.9.33.2/include/ar.h uClibc-git/include/ar.h
  20807. --- uClibc-0.9.33.2/include/ar.h 2012-05-15 09:20:09.000000000 +0200
  20808. +++ uClibc-git/include/ar.h 2014-06-02 17:40:33.826710944 +0200
  20809. @@ -13,9 +13,8 @@
  20810. Lesser General Public License for more details.
  20811. You should have received a copy of the GNU Lesser General Public
  20812. - License along with the GNU C Library; if not, write to the Free
  20813. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  20814. - 02111-1307 USA. */
  20815. + License along with the GNU C Library; if not, see
  20816. + <http://www.gnu.org/licenses/>. */
  20817. #ifndef _AR_H
  20818. #define _AR_H 1
  20819. diff -Nur uClibc-0.9.33.2/include/arpa/inet.h uClibc-git/include/arpa/inet.h
  20820. --- uClibc-0.9.33.2/include/arpa/inet.h 2012-05-15 09:20:09.000000000 +0200
  20821. +++ uClibc-git/include/arpa/inet.h 2014-06-02 17:40:33.826710944 +0200
  20822. @@ -12,9 +12,8 @@
  20823. Lesser General Public License for more details.
  20824. You should have received a copy of the GNU Lesser General Public
  20825. - License along with the GNU C Library; if not, write to the Free
  20826. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  20827. - 02111-1307 USA. */
  20828. + License along with the GNU C Library; if not, see
  20829. + <http://www.gnu.org/licenses/>. */
  20830. #ifndef _ARPA_INET_H
  20831. #define _ARPA_INET_H 1
  20832. @@ -32,7 +31,7 @@
  20833. /* Convert Internet host address from numbers-and-dots notation in CP
  20834. into binary data in network byte order. */
  20835. -extern in_addr_t inet_addr (__const char *__cp) __THROW;
  20836. +extern in_addr_t inet_addr (const char *__cp) __THROW;
  20837. libc_hidden_proto(inet_addr)
  20838. /* Return the local host address part of the Internet address in IN. */
  20839. @@ -50,7 +49,7 @@
  20840. /* Extract the network number in network byte order from the address
  20841. in numbers-and-dots natation starting at CP. */
  20842. -extern in_addr_t inet_network (__const char *__cp) __THROW;
  20843. +extern in_addr_t inet_network (const char *__cp) __THROW;
  20844. libc_hidden_proto(inet_network)
  20845. /* Convert Internet number in IN to ASCII representation. The return value
  20846. @@ -60,20 +59,19 @@
  20847. #ifdef __UCLIBC__
  20848. /* Recursion-safe flavor */
  20849. extern char *inet_ntoa_r (struct in_addr __in, char *__buf) __THROW;
  20850. -libc_hidden_proto(inet_ntoa_r)
  20851. #endif
  20852. /* Convert from presentation format of an Internet number in buffer
  20853. starting at CP to the binary network format and store result for
  20854. interface type AF in buffer starting at BUF. */
  20855. -extern int inet_pton (int __af, __const char *__restrict __cp,
  20856. +extern int inet_pton (int __af, const char *__restrict __cp,
  20857. void *__restrict __buf) __THROW;
  20858. libc_hidden_proto(inet_pton)
  20859. /* Convert a Internet address in binary network format for interface
  20860. type AF in buffer starting at CP to presentation form and place
  20861. result in buffer of length LEN astarting at BUF. */
  20862. -extern __const char *inet_ntop (int __af, __const void *__restrict __cp,
  20863. +extern const char *inet_ntop (int __af, const void *__restrict __cp,
  20864. char *__restrict __buf, socklen_t __len)
  20865. __THROW;
  20866. libc_hidden_proto(inet_ntop)
  20867. @@ -83,7 +81,7 @@
  20868. #ifdef __USE_MISC
  20869. /* Convert Internet host address from numbers-and-dots notation in CP
  20870. into binary data and store the result in the structure INP. */
  20871. -extern int inet_aton (__const char *__cp, struct in_addr *__inp) __THROW;
  20872. +extern int inet_aton (const char *__cp, struct in_addr *__inp) __THROW;
  20873. libc_hidden_proto(inet_aton)
  20874. #if 0
  20875. @@ -94,24 +92,24 @@
  20876. /* Convert network number for interface type AF in buffer starting at
  20877. CP to presentation format. The result will specifiy BITS bits of
  20878. the number. */
  20879. -extern char *inet_net_ntop (int __af, __const void *__cp, int __bits,
  20880. +extern char *inet_net_ntop (int __af, const void *__cp, int __bits,
  20881. char *__buf, size_t __len) __THROW;
  20882. /* Convert network number for interface type AF from presentation in
  20883. buffer starting at CP to network format and store result int
  20884. buffer starting at BUF of size LEN. */
  20885. -extern int inet_net_pton (int __af, __const char *__cp,
  20886. +extern int inet_net_pton (int __af, const char *__cp,
  20887. void *__buf, size_t __len) __THROW;
  20888. /* Convert ASCII representation in hexadecimal form of the Internet
  20889. address to binary form and place result in buffer of length LEN
  20890. starting at BUF. */
  20891. -extern unsigned int inet_nsap_addr (__const char *__cp,
  20892. +extern unsigned int inet_nsap_addr (const char *__cp,
  20893. unsigned char *__buf, int __len) __THROW;
  20894. /* Convert internet address in binary form in LEN bytes starting at CP
  20895. a presentation form and place result in BUF. */
  20896. -extern char *inet_nsap_ntoa (int __len, __const unsigned char *__cp,
  20897. +extern char *inet_nsap_ntoa (int __len, const unsigned char *__cp,
  20898. char *__buf) __THROW;
  20899. #endif
  20900. #endif
  20901. diff -Nur uClibc-0.9.33.2/include/assert.h uClibc-git/include/assert.h
  20902. --- uClibc-0.9.33.2/include/assert.h 2012-05-15 09:20:09.000000000 +0200
  20903. +++ uClibc-git/include/assert.h 2014-06-02 17:40:33.826710944 +0200
  20904. @@ -12,9 +12,8 @@
  20905. Lesser General Public License for more details.
  20906. You should have received a copy of the GNU Lesser General Public
  20907. - License along with the GNU C Library; if not, write to the Free
  20908. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  20909. - 02111-1307 USA. */
  20910. + License along with the GNU C Library; if not, see
  20911. + <http://www.gnu.org/licenses/>. */
  20912. /*
  20913. * ISO C99 Standard: 7.2 Diagnostics <assert.h>
  20914. @@ -72,7 +71,7 @@
  20915. # if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L
  20916. # define __ASSERT_FUNCTION __func__
  20917. # else
  20918. -# define __ASSERT_FUNCTION ((__const char *) 0)
  20919. +# define __ASSERT_FUNCTION ((const char *) 0)
  20920. # endif
  20921. # endif
  20922. diff -Nur uClibc-0.9.33.2/include/atomic.h uClibc-git/include/atomic.h
  20923. --- uClibc-0.9.33.2/include/atomic.h 2012-05-15 09:20:09.000000000 +0200
  20924. +++ uClibc-git/include/atomic.h 2014-06-02 17:40:33.826710944 +0200
  20925. @@ -14,9 +14,8 @@
  20926. Lesser General Public License for more details.
  20927. You should have received a copy of the GNU Lesser General Public
  20928. - License along with the GNU C Library; if not, write to the Free
  20929. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  20930. - 02111-1307 USA. */
  20931. + License along with the GNU C Library; if not, see
  20932. + <http://www.gnu.org/licenses/>. */
  20933. #ifndef _ATOMIC_H
  20934. #define _ATOMIC_H 1
  20935. diff -Nur uClibc-0.9.33.2/include/byteswap.h uClibc-git/include/byteswap.h
  20936. --- uClibc-0.9.33.2/include/byteswap.h 2012-05-15 09:20:09.000000000 +0200
  20937. +++ uClibc-git/include/byteswap.h 2014-06-02 17:40:33.826710944 +0200
  20938. @@ -12,9 +12,8 @@
  20939. Lesser General Public License for more details.
  20940. You should have received a copy of the GNU Lesser General Public
  20941. - License along with the GNU C Library; if not, write to the Free
  20942. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  20943. - 02111-1307 USA. */
  20944. + License along with the GNU C Library; if not, see
  20945. + <http://www.gnu.org/licenses/>. */
  20946. #ifndef _BYTESWAP_H
  20947. #define _BYTESWAP_H 1
  20948. diff -Nur uClibc-0.9.33.2/include/cancel.h uClibc-git/include/cancel.h
  20949. --- uClibc-0.9.33.2/include/cancel.h 1970-01-01 01:00:00.000000000 +0100
  20950. +++ uClibc-git/include/cancel.h 2014-06-02 17:40:33.826710944 +0200
  20951. @@ -0,0 +1,101 @@
  20952. +/* vi: set sw=4 ts=4: */
  20953. +/*
  20954. + * Copyright (C) 2000-2011 Erik Andersen <andersen@uclibc.org>
  20955. + *
  20956. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  20957. + */
  20958. +
  20959. +#ifndef _CANCEL_H
  20960. +#define _CANCEL_H
  20961. +
  20962. +/*
  20963. + * Usage of this header:
  20964. + * 1. define a static or hidden function __NC(NAME) - expands to __NAME_nocancel
  20965. + * 2. if it is hidden, add the prototype to the appropiate header where NAME has
  20966. + * it's prototype (guarded by _LIBC)
  20967. + * 3. add a CANCELLABLE_SYSCALL(...) line at the end, this will create the function
  20968. + * NAME (as weak) with enabled cancellation for NPTL (and later for new LT), for
  20969. + * LT_OLD it will also create a strong_alias to __libc_NAME to be used in libpthread
  20970. + * 4. if you need libc_hidden_(weak|def) line, use instead lt_libc_hidden, this will
  20971. + * take care of the correct type, weak or strong depending on the THREADS type
  20972. + * 5. If the implementation can't be done using CANCELLABLE_SYSCALL (like for fcntl)
  20973. + * you need to manually add lt_strong_alias() line too, to optionally create the
  20974. + * __libc_NAME alias
  20975. + * 6. if functions are needed to implement __NC(NAME), that themselves are cancellable,
  20976. + * decide how the cancellation should be solved, two variants are possible:
  20977. + * a. use the other function as __NC(FUNC), this way you access the non-cancellable
  20978. + * variant and provide by CANCELLABLE_SYSCALL(...) the dedicated cancellation for NAME.
  20979. + * be aware, that for this case __NC(FUNC) has to be hidden (not static)
  20980. + * b. use the other function with it's name (FUNC) and add LIBC_CANCEL_HANDLED(); at
  20981. + * the end of file with a comment telling us which function took care of the cancellation
  20982. + * Note: LIBC_CANCEL_HANDLED() is noop on uClibc, glibc uses it only for tests, we use
  20983. + * it only for "documentation".
  20984. + *
  20985. + * For now the use of this file is limited to libc, will expand later to support libpthread
  20986. + * and librt as well.
  20987. + */
  20988. +
  20989. +#include <features.h>
  20990. +
  20991. +#ifndef NOT_IN_libc
  20992. +
  20993. +#define __NC(name) _NC(name)
  20994. +#define _NC(name) __##name##_nocancel
  20995. +
  20996. +#define __NC_OLD(name) _NC_OLD(name)
  20997. +#define _NC_OLD(name) __libc_##name
  20998. +
  20999. +#define __NC_PROTO(name) extern __typeof(name) __NC(name) attribute_hidden;
  21000. +#define __NC_OLD_PROTO(name) extern __typeof(name) __NC_OLD(name);
  21001. +
  21002. +#if defined __UCLIBC_HAS_THREADS__ && !defined __LINUXTHREADS_OLD__
  21003. +# define __NEW_THREADS 1
  21004. +#else
  21005. +# define SINGLE_THREAD_P 1
  21006. +#endif
  21007. +
  21008. +#ifdef __NEW_THREADS
  21009. +# include <sysdep-cancel.h>
  21010. +
  21011. +# define CANCELLABLE_SYSCALL(res_type, name, param_list, params) \
  21012. +res_type weak_function name param_list \
  21013. +{ \
  21014. + if (SINGLE_THREAD_P) \
  21015. + return __NC(name) params; \
  21016. + int oldtype = LIBC_CANCEL_ASYNC(); \
  21017. + res_type result = __NC(name) params; \
  21018. + LIBC_CANCEL_RESET(oldtype); \
  21019. + return result; \
  21020. +}
  21021. +
  21022. +# define lt_strong_alias(name)
  21023. +# define lt_libc_hidden(name) libc_hidden_def(name)
  21024. +
  21025. +#elif defined __LINUXTHREADS_OLD__
  21026. +
  21027. +# define CANCELLABLE_SYSCALL(res_type, name, param_list, params) \
  21028. +weak_alias(__NC(name),name) \
  21029. +lt_strong_alias(name)
  21030. +
  21031. +# define lt_strong_alias(name) \
  21032. +__NC_OLD_PROTO(name) \
  21033. +strong_alias(name,__NC_OLD(name))
  21034. +# define lt_libc_hidden(name) libc_hidden_weak(name)
  21035. +
  21036. +#else
  21037. +
  21038. +# define CANCELLABLE_SYSCALL(res_type, name, param_list, params) \
  21039. +strong_alias(__NC(name),name)
  21040. +
  21041. +# define lt_strong_alias(name)
  21042. +# define lt_libc_hidden(name) libc_hidden_def(name)
  21043. +
  21044. +#endif
  21045. +
  21046. +/* disable it, useless, glibc uses it only for tests */
  21047. +# undef LIBC_CANCEL_HANDLED
  21048. +# define LIBC_CANCEL_HANDLED()
  21049. +
  21050. +#endif /* NOT_IN_libc */
  21051. +
  21052. +#endif
  21053. diff -Nur uClibc-0.9.33.2/include/complex.h uClibc-git/include/complex.h
  21054. --- uClibc-0.9.33.2/include/complex.h 2012-05-15 09:20:09.000000000 +0200
  21055. +++ uClibc-git/include/complex.h 2014-06-02 17:40:33.826710944 +0200
  21056. @@ -1,4 +1,4 @@
  21057. -/* Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc.
  21058. +/* Copyright (C) 1997, 1998, 1999, 2000, 2006 Free Software Foundation, Inc.
  21059. This file is part of the GNU C Library.
  21060. The GNU C Library is free software; you can redistribute it and/or
  21061. @@ -12,9 +12,8 @@
  21062. Lesser General Public License for more details.
  21063. You should have received a copy of the GNU Lesser General Public
  21064. - License along with the GNU C Library; if not, write to the Free
  21065. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21066. - 02111-1307 USA. */
  21067. + License along with the GNU C Library; if not, see
  21068. + <http://www.gnu.org/licenses/>. */
  21069. /*
  21070. * ISO C99: 7.3 Complex arithmetic <complex.h>
  21071. @@ -84,7 +83,8 @@
  21072. /* And the long double versions. It is non-critical to define them
  21073. here unconditionally since `long double' is required in ISO C99. */
  21074. -#if __STDC__ - 0 || __GNUC__ - 0 && defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
  21075. +#if (__STDC__ - 0 || __GNUC__ - 0) \
  21076. + && defined __UCLIBC_HAS_LONG_DOUBLE_MATH__
  21077. # ifndef _Mlong_double_
  21078. # define _Mlong_double_ long double
  21079. # endif
  21080. diff -Nur uClibc-0.9.33.2/include/cpio.h uClibc-git/include/cpio.h
  21081. --- uClibc-0.9.33.2/include/cpio.h 2012-05-15 09:20:09.000000000 +0200
  21082. +++ uClibc-git/include/cpio.h 2014-06-02 17:40:33.826710944 +0200
  21083. @@ -14,9 +14,8 @@
  21084. Lesser General Public License for more details.
  21085. You should have received a copy of the GNU Lesser General Public
  21086. - License along with the GNU C Library; if not, write to the Free
  21087. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21088. - 02111-1307 USA. */
  21089. + License along with the GNU C Library; if not, see
  21090. + <http://www.gnu.org/licenses/>. */
  21091. #ifndef _CPIO_H
  21092. #define _CPIO_H 1
  21093. diff -Nur uClibc-0.9.33.2/include/crypt.h uClibc-git/include/crypt.h
  21094. --- uClibc-0.9.33.2/include/crypt.h 2012-05-15 09:20:09.000000000 +0200
  21095. +++ uClibc-git/include/crypt.h 2014-06-02 17:40:33.826710944 +0200
  21096. @@ -12,10 +12,8 @@
  21097. * Lesser General Public License for more details.
  21098. *
  21099. * You should have received a copy of the GNU Lesser General Public
  21100. - * License along with the GNU C Library; if not, write to the Free
  21101. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21102. - * 02111-1307 USA.
  21103. - *
  21104. + * License along with the GNU C Library; see the file COPYING.LIB. If
  21105. + * not, see <http://www.gnu.org/licenses/>.
  21106. */
  21107. #ifndef _CRYPT_H
  21108. diff -Nur uClibc-0.9.33.2/include/ctype.h uClibc-git/include/ctype.h
  21109. --- uClibc-0.9.33.2/include/ctype.h 2012-05-15 09:20:09.000000000 +0200
  21110. +++ uClibc-git/include/ctype.h 2014-06-02 17:40:33.826710944 +0200
  21111. @@ -13,9 +13,8 @@
  21112. Lesser General Public License for more details.
  21113. You should have received a copy of the GNU Lesser General Public
  21114. - License along with the GNU C Library; if not, write to the Free
  21115. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21116. - 02111-1307 USA. */
  21117. + License along with the GNU C Library; if not, see
  21118. + <http://www.gnu.org/licenses/>. */
  21119. /*
  21120. * ISO C99 Standard 7.4: Character handling <ctype.h>
  21121. @@ -405,8 +404,8 @@
  21122. #endif /* __UCLIBC_HAS_CTYPE_TABLES__ */
  21123. -/* We define {__,}isascii for internal use only */
  21124. #if defined _LIBC && !defined __UCLIBC_SUSV4_LEGACY__
  21125. +/* We define {__,}isascii for internal use only */
  21126. # define __isascii(c) (((c) & ~0x7f) == 0)
  21127. # define isascii(c) __isascii (c)
  21128. #endif
  21129. diff -Nur uClibc-0.9.33.2/include/dirent.h uClibc-git/include/dirent.h
  21130. --- uClibc-0.9.33.2/include/dirent.h 2012-05-15 09:20:09.000000000 +0200
  21131. +++ uClibc-git/include/dirent.h 2014-06-02 17:40:33.826710944 +0200
  21132. @@ -1,4 +1,4 @@
  21133. -/* Copyright (C) 1991-2000, 2003-2005, 2009 Free Software Foundation, Inc.
  21134. +/* Copyright (C) 1991-2000,2003-2005,2009,2010 Free Software Foundation, Inc.
  21135. This file is part of the GNU C Library.
  21136. The GNU C Library is free software; you can redistribute it and/or
  21137. @@ -12,9 +12,8 @@
  21138. Lesser General Public License for more details.
  21139. You should have received a copy of the GNU Lesser General Public
  21140. - License along with the GNU C Library; if not, write to the Free
  21141. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21142. - 02111-1307 USA. */
  21143. + License along with the GNU C Library; if not, see
  21144. + <http://www.gnu.org/licenses/>. */
  21145. /*
  21146. * POSIX Standard: 5.1.2 Directory Operations <dirent.h>
  21147. @@ -132,7 +131,7 @@
  21148. This function is a possible cancellation point and therefore not
  21149. marked with __THROW. */
  21150. -extern DIR *opendir (__const char *__name) __nonnull ((1));
  21151. +extern DIR *opendir (const char *__name) __nonnull ((1));
  21152. libc_hidden_proto(opendir)
  21153. #ifdef __USE_XOPEN2K8
  21154. @@ -224,7 +223,7 @@
  21155. extern long int telldir (DIR *__dirp) __THROW __nonnull ((1));
  21156. #endif
  21157. -#if defined __USE_BSD || defined __USE_MISC || defined __XOPEN_2K8
  21158. +#if defined __USE_BSD || defined __USE_MISC || defined __USE_XOPEN2K8
  21159. /* Return the file descriptor used by DIRP. */
  21160. extern int dirfd (DIR *__dirp) __THROW __nonnull ((1));
  21161. @@ -256,20 +255,20 @@
  21162. sorted using qsort with CMP, and collected in a malloc'd array in
  21163. *NAMELIST. Returns the number of entries selected, or -1 on error. */
  21164. # ifndef __USE_FILE_OFFSET64
  21165. -extern int scandir (__const char *__restrict __dir,
  21166. +extern int scandir (const char *__restrict __dir,
  21167. struct dirent ***__restrict __namelist,
  21168. - int (*__selector) (__const struct dirent *),
  21169. - int (*__cmp) (__const struct dirent **,
  21170. - __const struct dirent **))
  21171. + int (*__selector) (const struct dirent *),
  21172. + int (*__cmp) (const struct dirent **,
  21173. + const struct dirent **))
  21174. __nonnull ((1, 2));
  21175. # else
  21176. # ifdef __REDIRECT
  21177. extern int __REDIRECT (scandir,
  21178. - (__const char *__restrict __dir,
  21179. + (const char *__restrict __dir,
  21180. struct dirent ***__restrict __namelist,
  21181. - int (*__selector) (__const struct dirent *),
  21182. - int (*__cmp) (__const struct dirent **,
  21183. - __const struct dirent **)),
  21184. + int (*__selector) (const struct dirent *),
  21185. + int (*__cmp) (const struct dirent **,
  21186. + const struct dirent **)),
  21187. scandir64) __nonnull ((1, 2));
  21188. # else
  21189. # define scandir scandir64
  21190. @@ -279,24 +278,24 @@
  21191. # if defined __USE_GNU && defined __USE_LARGEFILE64
  21192. /* This function is like `scandir' but it uses the 64bit dirent structure.
  21193. Please note that the CMP function must now work with struct dirent64 **. */
  21194. -extern int scandir64 (__const char *__restrict __dir,
  21195. +extern int scandir64 (const char *__restrict __dir,
  21196. struct dirent64 ***__restrict __namelist,
  21197. - int (*__selector) (__const struct dirent64 *),
  21198. - int (*__cmp) (__const struct dirent64 **,
  21199. - __const struct dirent64 **))
  21200. + int (*__selector) (const struct dirent64 *),
  21201. + int (*__cmp) (const struct dirent64 **,
  21202. + const struct dirent64 **))
  21203. __nonnull ((1, 2));
  21204. # endif
  21205. /* Function to compare two `struct dirent's alphabetically. */
  21206. # ifndef __USE_FILE_OFFSET64
  21207. -extern int alphasort (__const struct dirent **__e1,
  21208. - __const struct dirent **__e2)
  21209. +extern int alphasort (const struct dirent **__e1,
  21210. + const struct dirent **__e2)
  21211. __THROW __attribute_pure__ __nonnull ((1, 2));
  21212. # else
  21213. # ifdef __REDIRECT
  21214. extern int __REDIRECT_NTH (alphasort,
  21215. - (__const struct dirent **__e1,
  21216. - __const struct dirent **__e2),
  21217. + (const struct dirent **__e1,
  21218. + const struct dirent **__e2),
  21219. alphasort64) __attribute_pure__ __nonnull ((1, 2));
  21220. # else
  21221. # define alphasort alphasort64
  21222. @@ -304,14 +303,14 @@
  21223. # endif
  21224. # if defined __USE_GNU && defined __USE_LARGEFILE64
  21225. -extern int alphasort64 (__const struct dirent64 **__e1,
  21226. - __const struct dirent64 **__e2)
  21227. +extern int alphasort64 (const struct dirent64 **__e1,
  21228. + const struct dirent64 **__e2)
  21229. __THROW __attribute_pure__ __nonnull ((1, 2));
  21230. # endif
  21231. #endif /* Use BSD or misc or XPG7. */
  21232. -#if defined __USE_BSD || defined __USE_MISC
  21233. +#if 0 /* defined __USE_BSD || defined __USE_MISC */
  21234. /* Read directory entries from FD into BUF, reading at most NBYTES.
  21235. Reading starts at offset *BASEP, and *BASEP is updated with the new
  21236. position after reading. Returns the number of bytes read; zero when at
  21237. @@ -344,14 +343,14 @@
  21238. #ifdef __USE_GNU
  21239. /* Function to compare two `struct dirent's by name & version. */
  21240. # ifndef __USE_FILE_OFFSET64
  21241. -extern int versionsort (__const struct dirent **__e1,
  21242. - __const struct dirent **__e2)
  21243. +extern int versionsort (const struct dirent **__e1,
  21244. + const struct dirent **__e2)
  21245. __THROW __attribute_pure__ __nonnull ((1, 2));
  21246. # else
  21247. # ifdef __REDIRECT
  21248. extern int __REDIRECT_NTH (versionsort,
  21249. - (__const struct dirent **__e1,
  21250. - __const struct dirent **__e2),
  21251. + (const struct dirent **__e1,
  21252. + const struct dirent **__e2),
  21253. versionsort64)
  21254. __attribute_pure__ __nonnull ((1, 2));
  21255. # else
  21256. @@ -360,12 +359,19 @@
  21257. # endif
  21258. # ifdef __USE_LARGEFILE64
  21259. -extern int versionsort64 (__const struct dirent64 **__e1,
  21260. - __const struct dirent64 **__e2)
  21261. +extern int versionsort64 (const struct dirent64 **__e1,
  21262. + const struct dirent64 **__e2)
  21263. __THROW __attribute_pure__ __nonnull ((1, 2));
  21264. # endif
  21265. #endif /* Use GNU. */
  21266. __END_DECLS
  21267. +#ifdef _LIBC
  21268. +extern __ssize_t __getdents(int fd, char *buf, size_t count) attribute_hidden;
  21269. +# ifdef __UCLIBC_HAS_LFS__
  21270. +extern __ssize_t __getdents64 (int fd, char *buf, size_t count) attribute_hidden;
  21271. +# endif
  21272. +#endif
  21273. +
  21274. #endif /* dirent.h */
  21275. diff -Nur uClibc-0.9.33.2/include/dlfcn.h uClibc-git/include/dlfcn.h
  21276. --- uClibc-0.9.33.2/include/dlfcn.h 2012-05-15 09:20:09.000000000 +0200
  21277. +++ uClibc-git/include/dlfcn.h 2014-06-02 17:40:33.826710944 +0200
  21278. @@ -1,6 +1,5 @@
  21279. /* User functions for run-time dynamic loading.
  21280. - Copyright (C) 1995-1999,2000,2001,2003,2004,2006
  21281. - Free Software Foundation, Inc.
  21282. + Copyright (C) 1995-2001,2003,2004,2006,2009 Free Software Foundation, Inc.
  21283. This file is part of the GNU C Library.
  21284. The GNU C Library is free software; you can redistribute it and/or
  21285. @@ -14,9 +13,8 @@
  21286. Lesser General Public License for more details.
  21287. You should have received a copy of the GNU Lesser General Public
  21288. - License along with the GNU C Library; if not, write to the Free
  21289. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21290. - 02111-1307 USA. */
  21291. + License along with the GNU C Library; if not, see
  21292. + <http://www.gnu.org/licenses/>. */
  21293. #ifndef _DLFCN_H
  21294. #define _DLFCN_H 1
  21295. @@ -52,11 +50,12 @@
  21296. # endif
  21297. #endif
  21298. +
  21299. __BEGIN_DECLS
  21300. /* Open the shared object FILE and map it in; return a handle that can be
  21301. passed to `dlsym' to get symbol values from it. */
  21302. -extern void *dlopen (__const char *__file, int __mode) __THROW;
  21303. +extern void *dlopen (const char *__file, int __mode) __THROW;
  21304. /* Unmap and close a shared object opened by `dlopen'.
  21305. The handle cannot be used again after calling `dlclose'. */
  21306. @@ -65,17 +64,17 @@
  21307. /* Find the run-time address in the shared object HANDLE refers to
  21308. of the symbol called NAME. */
  21309. extern void *dlsym (void *__restrict __handle,
  21310. - __const char *__restrict __name) __THROW __nonnull ((2));
  21311. + const char *__restrict __name) __THROW __nonnull ((2));
  21312. #if 0 /*def __USE_GNU*/
  21313. /* Like `dlopen', but request object to be allocated in a new namespace. */
  21314. -extern void *dlmopen (Lmid_t __nsid, __const char *__file, int __mode) __THROW;
  21315. +extern void *dlmopen (Lmid_t __nsid, const char *__file, int __mode) __THROW;
  21316. /* Find the run-time address in the shared object HANDLE refers to
  21317. of the symbol called NAME with VERSION. */
  21318. extern void *dlvsym (void *__restrict __handle,
  21319. - __const char *__restrict __name,
  21320. - __const char *__restrict __version)
  21321. + const char *__restrict __name,
  21322. + const char *__restrict __version)
  21323. __THROW __nonnull ((2, 3));
  21324. #endif
  21325. @@ -90,20 +89,20 @@
  21326. `dladdr'. */
  21327. typedef struct
  21328. {
  21329. - __const char *dli_fname; /* File name of defining object. */
  21330. + const char *dli_fname; /* File name of defining object. */
  21331. void *dli_fbase; /* Load address of that object. */
  21332. - __const char *dli_sname; /* Name of nearest symbol. */
  21333. + const char *dli_sname; /* Name of nearest symbol. */
  21334. void *dli_saddr; /* Exact value of nearest symbol. */
  21335. } Dl_info;
  21336. /* Fill in *INFO with the following information about ADDRESS.
  21337. Returns 0 iff no shared object's segments contain that address. */
  21338. -extern int dladdr (__const void *__address, Dl_info *__info)
  21339. +extern int dladdr (const void *__address, Dl_info *__info)
  21340. __THROW __nonnull ((2));
  21341. #if 0 /* not supported by uClibc */
  21342. /* Same as `dladdr', but additionally sets *EXTRA_INFO according to FLAGS. */
  21343. -extern int dladdr1 (__const void *__address, Dl_info *__info,
  21344. +extern int dladdr1 (const void *__address, Dl_info *__info,
  21345. void **__extra_info, int __flags) __THROW __nonnull ((2));
  21346. /* These are the possible values for the FLAGS argument to `dladdr1'.
  21347. @@ -166,7 +165,7 @@
  21348. segment, or if the calling thread has not allocated a block for it. */
  21349. RTLD_DI_TLS_DATA = 10,
  21350. - RTLD_DI_MAX = 10,
  21351. + RTLD_DI_MAX = 10
  21352. };
  21353. @@ -186,12 +185,6 @@
  21354. unsigned int dls_cnt; /* Number of elements in `dls_serpath'. */
  21355. Dl_serpath dls_serpath[1]; /* Actually longer, dls_cnt elements. */
  21356. } Dl_serinfo;
  21357. -
  21358. -#else
  21359. -
  21360. -/* Get information about the shared objects currently loaded */
  21361. -extern int dlinfo (void);
  21362. -
  21363. #endif
  21364. #endif /* __USE_GNU */
  21365. diff -Nur uClibc-0.9.33.2/include/elf.h uClibc-git/include/elf.h
  21366. --- uClibc-0.9.33.2/include/elf.h 2012-05-15 09:20:09.000000000 +0200
  21367. +++ uClibc-git/include/elf.h 2014-06-02 17:40:33.826710944 +0200
  21368. @@ -13,9 +13,8 @@
  21369. Lesser General Public License for more details.
  21370. You should have received a copy of the GNU Lesser General Public
  21371. - License along with the GNU C Library; if not, write to the Free
  21372. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21373. - 02111-1307 USA. */
  21374. + License along with the GNU C Library; if not, see
  21375. + <http://www.gnu.org/licenses/>. */
  21376. #ifndef _ELF_H
  21377. #define _ELF_H 1
  21378. @@ -148,8 +147,8 @@
  21379. #define ELFOSABI_SYSV 0 /* Alias. */
  21380. #define ELFOSABI_HPUX 1 /* HP-UX */
  21381. #define ELFOSABI_NETBSD 2 /* NetBSD. */
  21382. -#define ELFOSABI_LINUX 3 /* Linux. */
  21383. -#define ELFOSABI_HURD 4 /* GNU/Hurd */
  21384. +#define ELFOSABI_GNU 3 /* Object uses GNU ELF extensions. */
  21385. +#define ELFOSABI_LINUX ELFOSABI_GNU /* Compatibility alias. */
  21386. #define ELFOSABI_SOLARIS 6 /* Sun Solaris. */
  21387. #define ELFOSABI_AIX 7 /* IBM AIX. */
  21388. #define ELFOSABI_IRIX 8 /* SGI Irix. */
  21389. @@ -260,6 +259,7 @@
  21390. #define EM_PJ 91 /* picoJava */
  21391. #define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */
  21392. #define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */
  21393. +#define EM_ARCOMPACT 93 /* ARCompact ISA based Cores: ARC 700 */
  21394. #define EM_XTENSA 94 /* Tensilica Xtensa Architecture */
  21395. #define EM_IP2K 101 /* Ubicom IP2022 micro controller */
  21396. #define EM_CR 103 /* National Semiconductor CompactRISC */
  21397. @@ -282,6 +282,9 @@
  21398. unofficial e_machine number should eventually ask registry@caldera.com for
  21399. an officially blessed number to be added to the list above. */
  21400. +/* Imagination Technologies Meta */
  21401. +#define EM_METAG 174
  21402. +
  21403. /* picoJava */
  21404. #define EM_PJ_OLD 99
  21405. @@ -3141,6 +3144,110 @@
  21406. #define R_MICROBLAZE_COPY 21 /* runtime copy */
  21407. #define R_MICROBLAZE_NUM 22
  21408. +/* Meta relocations */
  21409. +#define R_METAG_HIADDR16 0
  21410. +#define R_METAG_LOADDR16 1
  21411. +#define R_METAG_ADDR32 2
  21412. +#define R_METAG_NONE 3
  21413. +#define R_METAG_RELBRANCH 4
  21414. +#define R_METAG_GETSETOFF 5
  21415. +
  21416. +/* Backward compatability */
  21417. +#define R_METAG_REG32OP1 6
  21418. +#define R_METAG_REG32OP2 7
  21419. +#define R_METAG_REG32OP3 8
  21420. +#define R_METAG_REG16OP1 9
  21421. +#define R_METAG_REG16OP2 10
  21422. +#define R_METAG_REG16OP3 11
  21423. +#define R_METAG_REG32OP4 12
  21424. +
  21425. +#define R_METAG_HIOG 13
  21426. +#define R_METAG_LOOG 14
  21427. +
  21428. +/* GNU */
  21429. +#define R_METAG_GNU_VTINHERIT 30
  21430. +#define R_METAG_GNU_VTENTRY 31
  21431. +
  21432. +/* PIC relocations */
  21433. +#define R_METAG_HI16_GOTOFF 32
  21434. +#define R_METAG_LO16_GOTOFF 33
  21435. +#define R_METAG_GETSET_GOTOFF 34
  21436. +#define R_METAG_GETSET_GOT 35
  21437. +#define R_METAG_HI16_GOTPC 36
  21438. +#define R_METAG_LO16_GOTPC 37
  21439. +#define R_METAG_HI16_PLT 38
  21440. +#define R_METAG_LO16_PLT 39
  21441. +#define R_METAG_RELBRANCH_PLT 40
  21442. +#define R_METAG_GOTOFF 41
  21443. +#define R_METAG_PLT 42
  21444. +#define R_METAG_COPY 43
  21445. +#define R_METAG_JMP_SLOT 44
  21446. +#define R_METAG_RELATIVE 45
  21447. +#define R_METAG_GLOB_DAT 46
  21448. +
  21449. +/* TLS relocations */
  21450. +#define R_METAG_TLS_TPOFF 56
  21451. +#define R_METAG_TLS_DTPMOD 57
  21452. +#define R_METAG_TLS_DTPOFF 58
  21453. +
  21454. +/* ARCompact specific relocs */
  21455. +#define R_ARC_NONE 0x0
  21456. +#define R_ARC_8 0x1
  21457. +#define R_ARC_16 0x2
  21458. +#define R_ARC_24 0x3
  21459. +#define R_ARC_32 0x4
  21460. +#define R_ARC_B26 0x5
  21461. +#define R_ARC_B22_PCREL 0x6
  21462. +#define R_ARC_H30 0x7
  21463. +#define R_ARC_N8 0x8
  21464. +#define R_ARC_N16 0x9
  21465. +#define R_ARC_N24 0xA
  21466. +#define R_ARC_N32 0xB
  21467. +#define R_ARC_SDA 0xC
  21468. +#define R_ARC_SECTOFF 0xD
  21469. +#define R_ARC_S21H_PCREL 0xE
  21470. +#define R_ARC_S21W_PCREL 0xF
  21471. +#define R_ARC_S25H_PCREL 0x10
  21472. +#define R_ARC_S25W_PCREL 0x11
  21473. +#define R_ARC_SDA32 0x12
  21474. +#define R_ARC_SDA_LDST 0x13
  21475. +#define R_ARC_SDA_LDST1 0x14
  21476. +#define R_ARC_SDA_LDST2 0x15
  21477. +#define R_ARC_SDA16_LD 0x16
  21478. +#define R_ARC_SDA16_LD1 0x17
  21479. +#define R_ARC_SDA16_LD2 0x18
  21480. +#define R_ARC_S13_PCREL 0x19
  21481. +#define R_ARC_W 0x1A
  21482. +#define R_ARC_32_ME 0x1B
  21483. +#define R_ARC_N32_ME 0x1C
  21484. +#define R_ARC_SECTOFF_ME 0x1D
  21485. +#define R_ARC_SDA32_ME 0x1E
  21486. +#define R_ARC_W_ME 0x1F
  21487. +#define R_ARC_H30_ME 0x20
  21488. +#define R_ARC_SECTOFF_U8 0x21
  21489. +#define R_ARC_SECTOFF_S9 0x22
  21490. +#define R_AC_SECTOFF_U8 0x23
  21491. +#define R_AC_SECTOFF_U8_1 0x24
  21492. +#define R_AC_SECTOFF_U8_2 0x25
  21493. +#define R_AC_SECTOFF_S9 0x26
  21494. +#define R_AC_SECTOFF_S9_1 0x27
  21495. +#define R_AC_SECTOFF_S9_2 0x28
  21496. +#define R_ARC_SECTOFF_ME_1 0x29
  21497. +#define R_ARC_SECTOFF_ME_2 0x2A
  21498. +#define R_ARC_SECTOFF_1 0x2B
  21499. +#define R_ARC_SECTOFF_2 0x2C
  21500. +#define R_ARC_PC32 0x32
  21501. +#define R_ARC_GOTPC32 0x33
  21502. +#define R_ARC_PLT32 0x34
  21503. +#define R_ARC_COPY 0x35
  21504. +#define R_ARC_GLOB_DAT 0x36
  21505. +#define R_ARC_JMP_SLOT 0x37
  21506. +#define R_ARC_RELATIVE 0x38
  21507. +#define R_ARC_GOTOFF 0x39
  21508. +#define R_ARC_GOTPC 0x3A
  21509. +#define R_ARC_GOT32 0x3B
  21510. +#define R_ARC_NUM 0x3C
  21511. +
  21512. #ifdef __cplusplus
  21513. }
  21514. #endif
  21515. diff -Nur uClibc-0.9.33.2/include/endian.h uClibc-git/include/endian.h
  21516. --- uClibc-0.9.33.2/include/endian.h 2012-05-15 09:20:09.000000000 +0200
  21517. +++ uClibc-git/include/endian.h 2014-06-02 17:40:33.826710944 +0200
  21518. @@ -12,9 +12,8 @@
  21519. Lesser General Public License for more details.
  21520. You should have received a copy of the GNU Lesser General Public
  21521. - License along with the GNU C Library; if not, write to the Free
  21522. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21523. - 02111-1307 USA. */
  21524. + License along with the GNU C Library; if not, see
  21525. + <http://www.gnu.org/licenses/>. */
  21526. #ifndef _ENDIAN_H
  21527. #define _ENDIAN_H 1
  21528. @@ -55,6 +54,17 @@
  21529. # define __LONG_LONG_PAIR(HI, LO) HI, LO
  21530. #endif
  21531. +#ifdef _LIBC
  21532. +# ifndef __ASSEMBLER__
  21533. +# include <stdint.h>
  21534. +# define OFF_HI(offset) (offset >> 31)
  21535. +# define OFF_LO(offset) (offset)
  21536. +# define OFF64_HI(offset) (uint32_t)(offset >> 32)
  21537. +# define OFF64_LO(offset) (uint32_t)(offset & 0xffffffff)
  21538. +# define OFF_HI_LO(offset) __LONG_LONG_PAIR(OFF_HI(offset), OFF_LO(offset))
  21539. +# define OFF64_HI_LO(offset) __LONG_LONG_PAIR(OFF64_HI(offset), OFF64_LO(offset))
  21540. +# endif
  21541. +#endif
  21542. #ifdef __USE_BSD
  21543. /* Conversion interfaces. */
  21544. diff -Nur uClibc-0.9.33.2/include/err.h uClibc-git/include/err.h
  21545. --- uClibc-0.9.33.2/include/err.h 2012-05-15 09:20:09.000000000 +0200
  21546. +++ uClibc-git/include/err.h 2014-06-02 17:40:33.826710944 +0200
  21547. @@ -13,9 +13,8 @@
  21548. Lesser General Public License for more details.
  21549. You should have received a copy of the GNU Lesser General Public
  21550. - License along with the GNU C Library; if not, write to the Free
  21551. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21552. - 02111-1307 USA. */
  21553. + License along with the GNU C Library; if not, see
  21554. + <http://www.gnu.org/licenses/>. */
  21555. #ifndef _ERR_H
  21556. #define _ERR_H 1
  21557. @@ -32,30 +31,26 @@
  21558. /* Print "program: ", FORMAT, ": ", the standard error string for errno,
  21559. and a newline, on stderr. */
  21560. -extern void warn (__const char *__format, ...)
  21561. +extern void warn (const char *__format, ...)
  21562. __attribute__ ((__format__ (__printf__, 1, 2)));
  21563. -extern void vwarn (__const char *__format, __gnuc_va_list)
  21564. +extern void vwarn (const char *__format, __gnuc_va_list)
  21565. __attribute__ ((__format__ (__printf__, 1, 0)));
  21566. -libc_hidden_proto(vwarn)
  21567. /* Likewise, but without ": " and the standard error string. */
  21568. -extern void warnx (__const char *__format, ...)
  21569. +extern void warnx (const char *__format, ...)
  21570. __attribute__ ((__format__ (__printf__, 1, 2)));
  21571. -extern void vwarnx (__const char *__format, __gnuc_va_list)
  21572. +extern void vwarnx (const char *__format, __gnuc_va_list)
  21573. __attribute__ ((__format__ (__printf__, 1, 0)));
  21574. -libc_hidden_proto(vwarnx)
  21575. /* Likewise, and then exit with STATUS. */
  21576. -extern void err (int __status, __const char *__format, ...)
  21577. +extern void err (int __status, const char *__format, ...)
  21578. __attribute__ ((__noreturn__, __format__ (__printf__, 2, 3)));
  21579. -extern void verr (int __status, __const char *__format, __gnuc_va_list)
  21580. +extern void verr (int __status, const char *__format, __gnuc_va_list)
  21581. __attribute__ ((__noreturn__, __format__ (__printf__, 2, 0)));
  21582. -libc_hidden_proto(verr)
  21583. -extern void errx (int __status, __const char *__format, ...)
  21584. +extern void errx (int __status, const char *__format, ...)
  21585. __attribute__ ((__noreturn__, __format__ (__printf__, 2, 3)));
  21586. -extern void verrx (int __status, __const char *, __gnuc_va_list)
  21587. +extern void verrx (int __status, const char *, __gnuc_va_list)
  21588. __attribute__ ((__noreturn__, __format__ (__printf__, 2, 0)));
  21589. -libc_hidden_proto(verrx)
  21590. __END_DECLS
  21591. diff -Nur uClibc-0.9.33.2/include/errno.h uClibc-git/include/errno.h
  21592. --- uClibc-0.9.33.2/include/errno.h 2012-05-15 09:20:09.000000000 +0200
  21593. +++ uClibc-git/include/errno.h 2014-06-02 17:40:33.826710944 +0200
  21594. @@ -12,9 +12,8 @@
  21595. Lesser General Public License for more details.
  21596. You should have received a copy of the GNU Lesser General Public
  21597. - License along with the GNU C Library; if not, write to the Free
  21598. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21599. - 02111-1307 USA. */
  21600. + License along with the GNU C Library; if not, see
  21601. + <http://www.gnu.org/licenses/>. */
  21602. /*
  21603. * ISO C99 Standard: 7.5 Errors <errno.h>
  21604. @@ -47,6 +46,11 @@
  21605. extern int errno;
  21606. #endif
  21607. +#ifdef _LIBC
  21608. +# ifdef __UCLIBC_HAS___PROGNAME__
  21609. +extern const char *__progname, *__progname_full;
  21610. +# endif
  21611. +#endif
  21612. #if defined __USE_GNU && defined __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__
  21613. /* The full and simple forms of the name with which the program was
  21614. diff -Nur uClibc-0.9.33.2/include/error.h uClibc-git/include/error.h
  21615. --- uClibc-0.9.33.2/include/error.h 2012-05-15 09:20:09.000000000 +0200
  21616. +++ uClibc-git/include/error.h 2014-06-02 17:40:33.826710944 +0200
  21617. @@ -13,9 +13,8 @@
  21618. Lesser General Public License for more details.
  21619. You should have received a copy of the GNU Lesser General Public
  21620. - License along with the GNU C Library; if not, write to the Free
  21621. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21622. - 02111-1307 USA. */
  21623. + License along with the GNU C Library; if not, see
  21624. + <http://www.gnu.org/licenses/>. */
  21625. #ifndef _ERROR_H
  21626. #define _ERROR_H 1
  21627. diff -Nur uClibc-0.9.33.2/include/execinfo.h uClibc-git/include/execinfo.h
  21628. --- uClibc-0.9.33.2/include/execinfo.h 2012-05-15 09:20:09.000000000 +0200
  21629. +++ uClibc-git/include/execinfo.h 2014-06-02 17:40:33.826710944 +0200
  21630. @@ -12,9 +12,8 @@
  21631. Lesser General Public License for more details.
  21632. You should have received a copy of the GNU Lesser General Public
  21633. - License along with the GNU C Library; if not, write to the Free
  21634. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21635. - 02111-1307 USA. */
  21636. + License along with the GNU C Library; if not, see
  21637. + <http://www.gnu.org/licenses/>. */
  21638. #ifndef _EXECINFO_H
  21639. #define _EXECINFO_H 1
  21640. @@ -30,13 +29,13 @@
  21641. /* Return names of functions from the backtrace list in ARRAY in a newly
  21642. malloc()ed memory block. */
  21643. -extern char **backtrace_symbols (void *__const *__array, int __size)
  21644. +extern char **backtrace_symbols (void *const *__array, int __size)
  21645. __THROW __nonnull ((1));
  21646. /* This function is similar to backtrace_symbols() but it writes the result
  21647. immediately to a file. */
  21648. -extern void backtrace_symbols_fd (void *__const *__array, int __size, int __fd)
  21649. +extern void backtrace_symbols_fd (void *const *__array, int __size, int __fd)
  21650. __THROW __nonnull ((1));
  21651. __END_DECLS
  21652. diff -Nur uClibc-0.9.33.2/include/fcntl.h uClibc-git/include/fcntl.h
  21653. --- uClibc-0.9.33.2/include/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  21654. +++ uClibc-git/include/fcntl.h 2014-06-02 17:40:33.826710944 +0200
  21655. @@ -13,9 +13,8 @@
  21656. Lesser General Public License for more details.
  21657. You should have received a copy of the GNU Lesser General Public
  21658. - License along with the GNU C Library; if not, write to the Free
  21659. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21660. - 02111-1307 USA. */
  21661. + License along with the GNU C Library; if not, see
  21662. + <http://www.gnu.org/licenses/>. */
  21663. /*
  21664. * POSIX Standard: 6.5 File Control Operations <fcntl.h>
  21665. @@ -75,7 +74,10 @@
  21666. __THROW. */
  21667. #if !defined(__USE_FILE_OFFSET64) || defined(__LP64__)
  21668. extern int fcntl (int __fd, int __cmd, ...);
  21669. +# ifdef _LIBC
  21670. +extern int __fcntl_nocancel(int, int, long) attribute_hidden;
  21671. libc_hidden_proto(fcntl)
  21672. +# endif
  21673. #else
  21674. # ifdef __REDIRECT
  21675. extern int __REDIRECT (fcntl, (int __fd, int __cmd, ...), fcntl64);
  21676. @@ -85,7 +87,10 @@
  21677. #endif
  21678. #if defined(__USE_LARGEFILE64) && !defined(__LP64__)
  21679. extern int fcntl64 (int __fd, int __cmd, ...);
  21680. +# ifdef _LIBC
  21681. +extern int __fcntl64_nocancel(int, int, long) attribute_hidden;
  21682. libc_hidden_proto(fcntl64)
  21683. +# endif
  21684. #endif
  21685. /* Open FILE and return a new file descriptor for it, or -1 on error.
  21686. @@ -95,18 +100,22 @@
  21687. This function is a cancellation point and therefore not marked with
  21688. __THROW. */
  21689. #ifndef __USE_FILE_OFFSET64
  21690. -extern int open (__const char *__file, int __oflag, ...) __nonnull ((1));
  21691. +extern int open (const char *__file, int __oflag, ...) __nonnull ((1));
  21692. libc_hidden_proto(open)
  21693. +# ifdef _LIBC
  21694. +extern int __open2_nocancel(const char *, int) __nonnull ((1)) attribute_hidden;
  21695. +extern int __open_nocancel(const char *, int, mode_t) __nonnull ((1)) attribute_hidden;
  21696. +# endif
  21697. #else
  21698. # ifdef __REDIRECT
  21699. -extern int __REDIRECT (open, (__const char *__file, int __oflag, ...), open64)
  21700. +extern int __REDIRECT (open, (const char *__file, int __oflag, ...), open64)
  21701. __nonnull ((1));
  21702. # else
  21703. # define open open64
  21704. # endif
  21705. #endif
  21706. #ifdef __USE_LARGEFILE64
  21707. -extern int open64 (__const char *__file, int __oflag, ...) __nonnull ((1));
  21708. +extern int open64 (const char *__file, int __oflag, ...) __nonnull ((1));
  21709. libc_hidden_proto(open64)
  21710. #endif
  21711. @@ -121,21 +130,20 @@
  21712. This function is a cancellation point and therefore not marked with
  21713. __THROW. */
  21714. # ifndef __USE_FILE_OFFSET64
  21715. -extern int openat (int __fd, __const char *__file, int __oflag, ...)
  21716. +extern int openat (int __fd, const char *__file, int __oflag, ...)
  21717. __nonnull ((2));
  21718. libc_hidden_proto(openat)
  21719. # else
  21720. # ifdef __REDIRECT
  21721. -extern int __REDIRECT (openat, (int __fd, __const char *__file, int __oflag,
  21722. +extern int __REDIRECT (openat, (int __fd, const char *__file, int __oflag,
  21723. ...), openat64) __nonnull ((2));
  21724. # else
  21725. # define openat openat64
  21726. # endif
  21727. # endif
  21728. -extern int openat64 (int __fd, __const char *__file, int __oflag, ...)
  21729. +extern int openat64 (int __fd, const char *__file, int __oflag, ...)
  21730. __nonnull ((2));
  21731. -libc_hidden_proto(openat64)
  21732. #endif
  21733. /* Create and open FILE, with mode MODE. This takes an `int' MODE
  21734. @@ -144,17 +152,17 @@
  21735. This function is a cancellation point and therefore not marked with
  21736. __THROW. */
  21737. #ifndef __USE_FILE_OFFSET64
  21738. -extern int creat (__const char *__file, __mode_t __mode) __nonnull ((1));
  21739. +extern int creat (const char *__file, __mode_t __mode) __nonnull ((1));
  21740. #else
  21741. # ifdef __REDIRECT
  21742. -extern int __REDIRECT (creat, (__const char *__file, __mode_t __mode),
  21743. +extern int __REDIRECT (creat, (const char *__file, __mode_t __mode),
  21744. creat64) __nonnull ((1));
  21745. # else
  21746. # define creat creat64
  21747. # endif
  21748. #endif
  21749. #ifdef __USE_LARGEFILE64
  21750. -extern int creat64 (__const char *__file, __mode_t __mode) __nonnull ((1));
  21751. +extern int creat64 (const char *__file, __mode_t __mode) __nonnull ((1));
  21752. #endif
  21753. #if !defined F_LOCK && (defined __USE_MISC || (defined __USE_XOPEN_EXTENDED \
  21754. @@ -184,7 +192,6 @@
  21755. # endif
  21756. # ifdef __USE_LARGEFILE64
  21757. extern int lockf64 (int __fd, int __cmd, __off64_t __len);
  21758. -libc_hidden_proto(lockf64)
  21759. # endif
  21760. #endif
  21761. @@ -210,9 +217,7 @@
  21762. #endif
  21763. -#if 0 /* && defined __UCLIBC_HAS_ADVANCED_REALTIME__ */
  21764. -
  21765. -/* FIXME -- uClibc should probably implement these... */
  21766. +#if defined __UCLIBC_HAS_ADVANCED_REALTIME__
  21767. /* Reserve storage for the data of the file associated with FD.
  21768. @@ -234,11 +239,6 @@
  21769. # endif
  21770. #endif
  21771. -#ifdef _LIBC
  21772. -extern int __fcntl_nocancel (int fd, int cmd, ...);
  21773. -libc_hidden_proto(__fcntl_nocancel)
  21774. -#endif
  21775. -
  21776. __END_DECLS
  21777. #endif /* fcntl.h */
  21778. diff -Nur uClibc-0.9.33.2/include/features.h uClibc-git/include/features.h
  21779. --- uClibc-0.9.33.2/include/features.h 2012-05-15 09:20:09.000000000 +0200
  21780. +++ uClibc-git/include/features.h 2014-06-02 17:40:33.826710944 +0200
  21781. @@ -12,9 +12,8 @@
  21782. Lesser General Public License for more details.
  21783. You should have received a copy of the GNU Lesser General Public
  21784. - License along with the GNU C Library; if not, write to the Free
  21785. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21786. - 02111-1307 USA. */
  21787. + License along with the GNU C Library; if not, see
  21788. + <http://www.gnu.org/licenses/>. */
  21789. #ifndef _FEATURES_H
  21790. #define _FEATURES_H 1
  21791. diff -Nur uClibc-0.9.33.2/include/fenv.h uClibc-git/include/fenv.h
  21792. --- uClibc-0.9.33.2/include/fenv.h 2012-05-15 09:20:09.000000000 +0200
  21793. +++ uClibc-git/include/fenv.h 2014-06-02 17:40:33.830710967 +0200
  21794. @@ -12,9 +12,8 @@
  21795. Lesser General Public License for more details.
  21796. You should have received a copy of the GNU Lesser General Public
  21797. - License along with the GNU C Library; if not, write to the Free
  21798. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21799. - 02111-1307 USA. */
  21800. + License along with the GNU C Library; if not, see
  21801. + <http://www.gnu.org/licenses/>. */
  21802. /*
  21803. * ISO C99 7.6: Floating-point environment <fenv.h>
  21804. @@ -73,7 +72,7 @@
  21805. /* Set complete status for exceptions indicated by EXCEPTS according to
  21806. the representation in the object pointed to by FLAGP. */
  21807. -extern int fesetexceptflag (__const fexcept_t *__flagp, int __excepts) __THROW;
  21808. +extern int fesetexceptflag (const fexcept_t *__flagp, int __excepts) __THROW;
  21809. /* Determine which of subset of the exceptions specified by EXCEPTS are
  21810. currently set. */
  21811. @@ -102,12 +101,12 @@
  21812. /* Establish the floating-point environment represented by the object
  21813. pointed to by ENVP. */
  21814. -extern int fesetenv (__const fenv_t *__envp) __THROW;
  21815. +extern int fesetenv (const fenv_t *__envp) __THROW;
  21816. /* Save current exceptions in temporary storage, install environment
  21817. represented by object pointed to by ENVP and raise exceptions
  21818. according to saved exceptions. */
  21819. -extern int feupdateenv (__const fenv_t *__envp) __THROW;
  21820. +extern int feupdateenv (const fenv_t *__envp) __THROW;
  21821. /* Include optimization. */
  21822. diff -Nur uClibc-0.9.33.2/include/fnmatch.h uClibc-git/include/fnmatch.h
  21823. --- uClibc-0.9.33.2/include/fnmatch.h 2012-05-15 09:20:09.000000000 +0200
  21824. +++ uClibc-git/include/fnmatch.h 2014-06-02 17:40:33.830710967 +0200
  21825. @@ -12,9 +12,8 @@
  21826. Lesser General Public License for more details.
  21827. You should have received a copy of the GNU Lesser General Public
  21828. - License along with the GNU C Library; if not, write to the Free
  21829. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21830. - 02111-1307 USA. */
  21831. + License along with the GNU C Library; if not, see
  21832. + <http://www.gnu.org/licenses/>. */
  21833. #ifndef _FNMATCH_H
  21834. #define _FNMATCH_H 1
  21835. @@ -23,14 +22,6 @@
  21836. extern "C" {
  21837. #endif
  21838. -#ifndef const
  21839. -# if (defined __STDC__ && __STDC__) || defined __cplusplus
  21840. -# define __const const
  21841. -# else
  21842. -# define __const
  21843. -# endif
  21844. -#endif
  21845. -
  21846. /* We #undef these before defining them because some losing systems
  21847. (HP-UX A.08.07 for example) define these in <unistd.h>. */
  21848. #undef FNM_PATHNAME
  21849. @@ -62,7 +53,7 @@
  21850. /* Match NAME against the filename pattern PATTERN,
  21851. returning zero if it matches, FNM_NOMATCH if not. */
  21852. -extern int fnmatch (__const char *__pattern, __const char *__name,
  21853. +extern int fnmatch (const char *__pattern, const char *__name,
  21854. int __flags);
  21855. libc_hidden_proto(fnmatch)
  21856. diff -Nur uClibc-0.9.33.2/include/ftw.h uClibc-git/include/ftw.h
  21857. --- uClibc-0.9.33.2/include/ftw.h 2012-05-15 09:20:09.000000000 +0200
  21858. +++ uClibc-git/include/ftw.h 2014-06-02 17:40:33.830710967 +0200
  21859. @@ -12,9 +12,8 @@
  21860. Lesser General Public License for more details.
  21861. You should have received a copy of the GNU Lesser General Public
  21862. - License along with the GNU C Library; if not, write to the Free
  21863. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21864. - 02111-1307 USA. */
  21865. + License along with the GNU C Library; if not, see
  21866. + <http://www.gnu.org/licenses/>. */
  21867. /*
  21868. * X/Open Portability Guide 4.2: ftw.h
  21869. @@ -112,19 +111,19 @@
  21870. /* Convenient types for callback functions. */
  21871. -typedef int (*__ftw_func_t) (__const char *__filename,
  21872. - __const struct stat *__status, int __flag);
  21873. +typedef int (*__ftw_func_t) (const char *__filename,
  21874. + const struct stat *__status, int __flag);
  21875. #ifdef __USE_LARGEFILE64
  21876. -typedef int (*__ftw64_func_t) (__const char *__filename,
  21877. - __const struct stat64 *__status, int __flag);
  21878. +typedef int (*__ftw64_func_t) (const char *__filename,
  21879. + const struct stat64 *__status, int __flag);
  21880. #endif
  21881. #ifdef __USE_XOPEN_EXTENDED
  21882. -typedef int (*__nftw_func_t) (__const char *__filename,
  21883. - __const struct stat *__status, int __flag,
  21884. +typedef int (*__nftw_func_t) (const char *__filename,
  21885. + const struct stat *__status, int __flag,
  21886. struct FTW *__info);
  21887. # ifdef __USE_LARGEFILE64
  21888. -typedef int (*__nftw64_func_t) (__const char *__filename,
  21889. - __const struct stat64 *__status,
  21890. +typedef int (*__nftw64_func_t) (const char *__filename,
  21891. + const struct stat64 *__status,
  21892. int __flag, struct FTW *__info);
  21893. # endif
  21894. #endif
  21895. @@ -135,18 +134,18 @@
  21896. This function is a possible cancellation point and therefore not
  21897. marked with __THROW. */
  21898. # ifndef __USE_FILE_OFFSET64
  21899. -extern int ftw (__const char *__dir, __ftw_func_t __func, int __descriptors)
  21900. +extern int ftw (const char *__dir, __ftw_func_t __func, int __descriptors)
  21901. __nonnull ((1, 2));
  21902. # else
  21903. # ifdef __REDIRECT
  21904. -extern int __REDIRECT (ftw, (__const char *__dir, __ftw_func_t __func,
  21905. +extern int __REDIRECT (ftw, (const char *__dir, __ftw_func_t __func,
  21906. int __descriptors), ftw64) __nonnull ((1, 2));
  21907. # else
  21908. # define ftw ftw64
  21909. # endif
  21910. # endif
  21911. # ifdef __USE_LARGEFILE64
  21912. -extern int ftw64 (__const char *__dir, __ftw64_func_t __func,
  21913. +extern int ftw64 (const char *__dir, __ftw64_func_t __func,
  21914. int __descriptors) __nonnull ((1, 2));
  21915. # endif
  21916. #endif
  21917. @@ -158,11 +157,11 @@
  21918. This function is a possible cancellation point and therefore not
  21919. marked with __THROW. */
  21920. # ifndef __USE_FILE_OFFSET64
  21921. -extern int nftw (__const char *__dir, __nftw_func_t __func, int __descriptors,
  21922. +extern int nftw (const char *__dir, __nftw_func_t __func, int __descriptors,
  21923. int __flag) __nonnull ((1, 2));
  21924. # else
  21925. # ifdef __REDIRECT
  21926. -extern int __REDIRECT (nftw, (__const char *__dir, __nftw_func_t __func,
  21927. +extern int __REDIRECT (nftw, (const char *__dir, __nftw_func_t __func,
  21928. int __descriptors, int __flag), nftw64)
  21929. __nonnull ((1, 2));
  21930. # else
  21931. @@ -170,7 +169,7 @@
  21932. # endif
  21933. # endif
  21934. # ifdef __USE_LARGEFILE64
  21935. -extern int nftw64 (__const char *__dir, __nftw64_func_t __func,
  21936. +extern int nftw64 (const char *__dir, __nftw64_func_t __func,
  21937. int __descriptors, int __flag) __nonnull ((1, 2));
  21938. # endif
  21939. #endif
  21940. diff -Nur uClibc-0.9.33.2/include/.gitignore uClibc-git/include/.gitignore
  21941. --- uClibc-0.9.33.2/include/.gitignore 2012-05-15 09:20:09.000000000 +0200
  21942. +++ uClibc-git/include/.gitignore 2014-06-02 17:40:33.826710944 +0200
  21943. @@ -8,6 +8,7 @@
  21944. #
  21945. /bits/
  21946. /config/
  21947. +/generated/
  21948. /bfin_fixed_code.h
  21949. /bfin_l1layout.h
  21950. @@ -15,6 +16,9 @@
  21951. /dl-osinfo.h
  21952. /fpu_control.h
  21953. /hp-timing.h
  21954. +/jmpbuf-offsets.h
  21955. +/jmpbuf-unwind.h
  21956. +/not-cancel.h
  21957. /pthread.h
  21958. /semaphore.h
  21959. /thread_db.h
  21960. diff -Nur uClibc-0.9.33.2/include/glob.h uClibc-git/include/glob.h
  21961. --- uClibc-0.9.33.2/include/glob.h 2012-05-15 09:20:09.000000000 +0200
  21962. +++ uClibc-git/include/glob.h 2014-06-02 17:40:33.830710967 +0200
  21963. @@ -12,9 +12,8 @@
  21964. Lesser General Public License for more details.
  21965. You should have received a copy of the GNU Lesser General Public
  21966. - License along with the GNU C Library; if not, write to the Free
  21967. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  21968. - 02111-1307 USA. */
  21969. + License along with the GNU C Library; if not, see
  21970. + <http://www.gnu.org/licenses/>. */
  21971. #ifndef _GLOB_H
  21972. #define _GLOB_H 1
  21973. @@ -110,13 +109,13 @@
  21974. #else
  21975. void *(*gl_readdir) (void *);
  21976. #endif
  21977. - void *(*gl_opendir) (__const char *);
  21978. + void *(*gl_opendir) (const char *);
  21979. #ifdef __USE_GNU
  21980. - int (*gl_lstat) (__const char *__restrict, struct stat *__restrict);
  21981. - int (*gl_stat) (__const char *__restrict, struct stat *__restrict);
  21982. + int (*gl_lstat) (const char *__restrict, struct stat *__restrict);
  21983. + int (*gl_stat) (const char *__restrict, struct stat *__restrict);
  21984. #else
  21985. - int (*gl_lstat) (__const char *__restrict, void *__restrict);
  21986. - int (*gl_stat) (__const char *__restrict, void *__restrict);
  21987. + int (*gl_lstat) (const char *__restrict, void *__restrict);
  21988. + int (*gl_stat) (const char *__restrict, void *__restrict);
  21989. #endif
  21990. #endif
  21991. #endif /* __UCLIBC_HAS_GNU_GLOB__ */
  21992. @@ -143,13 +142,13 @@
  21993. # else
  21994. void *(*gl_readdir) (void *);
  21995. # endif
  21996. - void *(*gl_opendir) (__const char *);
  21997. + void *(*gl_opendir) (const char *);
  21998. # ifdef __USE_GNU
  21999. - int (*gl_lstat) (__const char *__restrict, struct stat64 *__restrict);
  22000. - int (*gl_stat) (__const char *__restrict, struct stat64 *__restrict);
  22001. + int (*gl_lstat) (const char *__restrict, struct stat64 *__restrict);
  22002. + int (*gl_stat) (const char *__restrict, struct stat64 *__restrict);
  22003. # else
  22004. - int (*gl_lstat) (__const char *__restrict, void *__restrict);
  22005. - int (*gl_stat) (__const char *__restrict, void *__restrict);
  22006. + int (*gl_lstat) (const char *__restrict, void *__restrict);
  22007. + int (*gl_stat) (const char *__restrict, void *__restrict);
  22008. # endif
  22009. #endif
  22010. #endif /* __UCLIBC_HAS_GNU_GLOB__ */
  22011. @@ -170,8 +169,8 @@
  22012. If memory cannot be allocated for PGLOB, GLOB_NOSPACE is returned.
  22013. Otherwise, `glob' returns zero. */
  22014. #if !defined __USE_FILE_OFFSET64 || __GNUC__ < 2
  22015. -extern int glob (__const char *__restrict __pattern, int __flags,
  22016. - int (*__errfunc) (__const char *, int),
  22017. +extern int glob (const char *__restrict __pattern, int __flags,
  22018. + int (*__errfunc) (const char *, int),
  22019. glob_t *__restrict __pglob) __THROW;
  22020. libc_hidden_proto(glob)
  22021. @@ -179,17 +178,17 @@
  22022. extern void globfree (glob_t *__pglob) __THROW;
  22023. libc_hidden_proto(globfree)
  22024. #else
  22025. -extern int __REDIRECT_NTH (glob, (__const char *__restrict __pattern,
  22026. +extern int __REDIRECT_NTH (glob, (const char *__restrict __pattern,
  22027. int __flags,
  22028. - int (*__errfunc) (__const char *, int),
  22029. + int (*__errfunc) (const char *, int),
  22030. glob_t *__restrict __pglob), glob64);
  22031. extern void __REDIRECT_NTH (globfree, (glob_t *__pglob), globfree64);
  22032. #endif
  22033. #ifdef __USE_LARGEFILE64
  22034. -extern int glob64 (__const char *__restrict __pattern, int __flags,
  22035. - int (*__errfunc) (__const char *, int),
  22036. +extern int glob64 (const char *__restrict __pattern, int __flags,
  22037. + int (*__errfunc) (const char *, int),
  22038. glob64_t *__restrict __pglob) __THROW;
  22039. libc_hidden_proto(glob64)
  22040. @@ -204,7 +203,7 @@
  22041. This function is not part of the interface specified by POSIX.2
  22042. but several programs want to use it. */
  22043. -extern int glob_pattern_p (__const char *__pattern, int __quote) __THROW;
  22044. +extern int glob_pattern_p (const char *__pattern, int __quote) __THROW;
  22045. libc_hidden_proto(glob_pattern_p)
  22046. #endif
  22047. diff -Nur uClibc-0.9.33.2/include/gnu-versions.h uClibc-git/include/gnu-versions.h
  22048. --- uClibc-0.9.33.2/include/gnu-versions.h 2012-05-15 09:20:09.000000000 +0200
  22049. +++ uClibc-git/include/gnu-versions.h 2014-06-02 17:40:33.830710967 +0200
  22050. @@ -13,9 +13,8 @@
  22051. Lesser General Public License for more details.
  22052. You should have received a copy of the GNU Lesser General Public
  22053. - License along with the GNU C Library; if not, write to the Free
  22054. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22055. - 02111-1307 USA. */
  22056. + License along with the GNU C Library; if not, see
  22057. + <http://www.gnu.org/licenses/>. */
  22058. #ifndef _GNU_VERSIONS_H
  22059. #define _GNU_VERSIONS_H 1
  22060. diff -Nur uClibc-0.9.33.2/include/grp.h uClibc-git/include/grp.h
  22061. --- uClibc-0.9.33.2/include/grp.h 2012-05-15 09:20:09.000000000 +0200
  22062. +++ uClibc-git/include/grp.h 2014-06-02 17:40:33.830710967 +0200
  22063. @@ -12,9 +12,8 @@
  22064. Lesser General Public License for more details.
  22065. You should have received a copy of the GNU Lesser General Public
  22066. - License along with the GNU C Library; if not, write to the Free
  22067. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22068. - 02111-1307 USA. */
  22069. + License along with the GNU C Library; if not, see
  22070. + <http://www.gnu.org/licenses/>. */
  22071. /*
  22072. * POSIX Standard: 9.2.1 Group Database Access <grp.h>
  22073. @@ -92,7 +91,7 @@
  22074. cancellation point. But due to similarity with an POSIX interface
  22075. or due to the implementation it is a cancellation point and
  22076. therefore not marked with __THROW. */
  22077. -extern int putgrent (__const struct group *__restrict __p,
  22078. +extern int putgrent (const struct group *__restrict __p,
  22079. FILE *__restrict __f);
  22080. #endif
  22081. @@ -106,7 +105,7 @@
  22082. This function is a possible cancellation point and therefore not
  22083. marked with __THROW. */
  22084. -extern struct group *getgrnam (__const char *__name);
  22085. +extern struct group *getgrnam (const char *__name);
  22086. #if defined __USE_POSIX || defined __USE_MISC
  22087. @@ -149,7 +148,7 @@
  22088. This function is a possible cancellation point and therefore not
  22089. marked with __THROW. */
  22090. -extern int getgrnam_r (__const char *__restrict __name,
  22091. +extern int getgrnam_r (const char *__restrict __name,
  22092. struct group *__restrict __resultbuf,
  22093. char *__restrict __buffer, size_t __buflen,
  22094. struct group **__restrict __result);
  22095. @@ -187,7 +186,7 @@
  22096. cancellation point. But due to similarity with an POSIX interface
  22097. or due to the implementation it is a cancellation point and
  22098. therefore not marked with __THROW. */
  22099. -extern int getgrouplist (__const char *__user, __gid_t __group,
  22100. +extern int getgrouplist (const char *__user, __gid_t __group,
  22101. __gid_t *__groups, int *__ngroups);
  22102. #endif
  22103. @@ -195,7 +194,7 @@
  22104. #if defined __USE_BSD
  22105. /* Set the group set for the current user to GROUPS (N of them). */
  22106. -extern int setgroups (size_t __n, __const __gid_t *__groups) __THROW;
  22107. +extern int setgroups (size_t __n, const __gid_t *__groups) __THROW;
  22108. libc_hidden_proto(setgroups)
  22109. /* Initialize the group set for the current user
  22110. @@ -206,7 +205,7 @@
  22111. cancellation point. But due to similarity with an POSIX interface
  22112. or due to the implementation it is a cancellation point and
  22113. therefore not marked with __THROW. */
  22114. -extern int initgroups (__const char *__user, __gid_t __group);
  22115. +extern int initgroups (const char *__user, __gid_t __group);
  22116. #endif /* Use BSD. */
  22117. diff -Nur uClibc-0.9.33.2/include/iconv.h uClibc-git/include/iconv.h
  22118. --- uClibc-0.9.33.2/include/iconv.h 2012-05-15 09:20:09.000000000 +0200
  22119. +++ uClibc-git/include/iconv.h 2014-06-02 17:40:33.830710967 +0200
  22120. @@ -12,9 +12,8 @@
  22121. Lesser General Public License for more details.
  22122. You should have received a copy of the GNU Lesser General Public
  22123. - License along with the GNU C Library; if not, write to the Free
  22124. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22125. - 02111-1307 USA. */
  22126. + License along with the GNU C Library; if not, see
  22127. + <http://www.gnu.org/licenses/>. */
  22128. #ifndef _ICONV_H
  22129. #define _ICONV_H 1
  22130. @@ -39,7 +38,7 @@
  22131. This function is a possible cancellation points and therefore not
  22132. marked with __THROW. */
  22133. -extern iconv_t iconv_open (__const char *__tocode, __const char *__fromcode);
  22134. +extern iconv_t iconv_open (const char *__tocode, const char *__fromcode);
  22135. /* Convert at most *INBYTESLEFT bytes from *INBUF according to the
  22136. code conversion algorithm specified by CD and place up to
  22137. diff -Nur uClibc-0.9.33.2/include/ieee754.h uClibc-git/include/ieee754.h
  22138. --- uClibc-0.9.33.2/include/ieee754.h 2012-05-15 09:20:09.000000000 +0200
  22139. +++ uClibc-git/include/ieee754.h 2014-06-02 17:40:33.830710967 +0200
  22140. @@ -12,9 +12,8 @@
  22141. Lesser General Public License for more details.
  22142. You should have received a copy of the GNU Lesser General Public
  22143. - License along with the GNU C Library; if not, write to the Free
  22144. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22145. - 02111-1307 USA. */
  22146. + License along with the GNU C Library; if not, see
  22147. + <http://www.gnu.org/licenses/>. */
  22148. #ifndef _IEEE754_H
  22149. diff -Nur uClibc-0.9.33.2/include/ifaddrs.h uClibc-git/include/ifaddrs.h
  22150. --- uClibc-0.9.33.2/include/ifaddrs.h 2012-05-15 09:20:09.000000000 +0200
  22151. +++ uClibc-git/include/ifaddrs.h 2014-06-02 17:40:33.830710967 +0200
  22152. @@ -13,9 +13,8 @@
  22153. Lesser General Public License for more details.
  22154. You should have received a copy of the GNU Lesser General Public
  22155. - License along with the GNU C Library; if not, write to the Free
  22156. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22157. - 02111-1307 USA. */
  22158. + License along with the GNU C Library; if not, see
  22159. + <http://www.gnu.org/licenses/>. */
  22160. #ifndef _IFADDRS_H
  22161. #define _IFADDRS_H 1
  22162. diff -Nur uClibc-0.9.33.2/include/inttypes.h uClibc-git/include/inttypes.h
  22163. --- uClibc-0.9.33.2/include/inttypes.h 2012-05-15 09:20:09.000000000 +0200
  22164. +++ uClibc-git/include/inttypes.h 2014-06-02 17:40:33.846711055 +0200
  22165. @@ -12,9 +12,8 @@
  22166. Lesser General Public License for more details.
  22167. You should have received a copy of the GNU Lesser General Public
  22168. - License along with the GNU C Library; if not, write to the Free
  22169. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22170. - 02111-1307 USA. */
  22171. + License along with the GNU C Library; if not, see
  22172. + <http://www.gnu.org/licenses/>. */
  22173. /*
  22174. * ISO C99: 7.8 Format conversion of integer types <inttypes.h>
  22175. @@ -304,21 +303,21 @@
  22176. __THROW __attribute__ ((__const__));
  22177. /* Like `strtol' but convert to `intmax_t'. */
  22178. -extern intmax_t strtoimax (__const char *__restrict __nptr,
  22179. +extern intmax_t strtoimax (const char *__restrict __nptr,
  22180. char **__restrict __endptr, int __base) __THROW;
  22181. /* Like `strtoul' but convert to `uintmax_t'. */
  22182. -extern uintmax_t strtoumax (__const char *__restrict __nptr,
  22183. +extern uintmax_t strtoumax (const char *__restrict __nptr,
  22184. char ** __restrict __endptr, int __base) __THROW;
  22185. #ifdef __UCLIBC_HAS_WCHAR__
  22186. /* Like `wcstol' but convert to `intmax_t'. */
  22187. -extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr,
  22188. +extern intmax_t wcstoimax (const __gwchar_t *__restrict __nptr,
  22189. __gwchar_t **__restrict __endptr, int __base)
  22190. __THROW;
  22191. /* Like `wcstoul' but convert to `uintmax_t'. */
  22192. -extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr,
  22193. +extern uintmax_t wcstoumax (const __gwchar_t *__restrict __nptr,
  22194. __gwchar_t ** __restrict __endptr, int __base)
  22195. __THROW;
  22196. #endif
  22197. @@ -327,44 +326,44 @@
  22198. # if __WORDSIZE == 64
  22199. -extern long int __strtol_internal (__const char *__restrict __nptr,
  22200. +extern long int __strtol_internal (const char *__restrict __nptr,
  22201. char **__restrict __endptr,
  22202. int __base, int __group)
  22203. __THROW __nonnull ((1)) __wur;
  22204. /* Like `strtol' but convert to `intmax_t'. */
  22205. __extern_inline intmax_t
  22206. -__NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr,
  22207. +__NTH (strtoimax (const char *__restrict nptr, char **__restrict endptr,
  22208. int base))
  22209. {
  22210. return __strtol_internal (nptr, endptr, base, 0);
  22211. }
  22212. -extern unsigned long int __strtoul_internal (__const char *
  22213. +extern unsigned long int __strtoul_internal (const char *
  22214. __restrict __nptr,
  22215. char ** __restrict __endptr,
  22216. int __base, int __group)
  22217. __THROW __nonnull ((1)) __wur;
  22218. /* Like `strtoul' but convert to `uintmax_t'. */
  22219. __extern_inline uintmax_t
  22220. -__NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr,
  22221. +__NTH (strtoumax (const char *__restrict nptr, char **__restrict endptr,
  22222. int base))
  22223. {
  22224. return __strtoul_internal (nptr, endptr, base, 0);
  22225. }
  22226. -extern long int __wcstol_internal (__const __gwchar_t * __restrict __nptr,
  22227. +extern long int __wcstol_internal (const __gwchar_t * __restrict __nptr,
  22228. __gwchar_t **__restrict __endptr,
  22229. int __base, int __group)
  22230. __THROW __nonnull ((1)) __wur;
  22231. /* Like `wcstol' but convert to `intmax_t'. */
  22232. __extern_inline intmax_t
  22233. -__NTH (wcstoimax (__const __gwchar_t *__restrict nptr,
  22234. +__NTH (wcstoimax (const __gwchar_t *__restrict nptr,
  22235. __gwchar_t **__restrict endptr, int base))
  22236. {
  22237. return __wcstol_internal (nptr, endptr, base, 0);
  22238. }
  22239. -extern unsigned long int __wcstoul_internal (__const __gwchar_t *
  22240. +extern unsigned long int __wcstoul_internal (const __gwchar_t *
  22241. __restrict __nptr,
  22242. __gwchar_t **
  22243. __restrict __endptr,
  22244. @@ -372,7 +371,7 @@
  22245. __THROW __nonnull ((1)) __wur;
  22246. /* Like `wcstoul' but convert to `uintmax_t'. */
  22247. __extern_inline uintmax_t
  22248. -__NTH (wcstoumax (__const __gwchar_t *__restrict nptr,
  22249. +__NTH (wcstoumax (const __gwchar_t *__restrict nptr,
  22250. __gwchar_t **__restrict endptr, int base))
  22251. {
  22252. return __wcstoul_internal (nptr, endptr, base, 0);
  22253. @@ -381,20 +380,20 @@
  22254. # else /* __WORDSIZE == 32 */
  22255. __extension__
  22256. -extern long long int __strtoll_internal (__const char *__restrict __nptr,
  22257. +extern long long int __strtoll_internal (const char *__restrict __nptr,
  22258. char **__restrict __endptr,
  22259. int __base, int __group)
  22260. __THROW __nonnull ((1)) __wur;
  22261. /* Like `strtol' but convert to `intmax_t'. */
  22262. __extern_inline intmax_t
  22263. -__NTH (strtoimax (__const char *__restrict nptr, char **__restrict endptr,
  22264. +__NTH (strtoimax (const char *__restrict nptr, char **__restrict endptr,
  22265. int base))
  22266. {
  22267. return __strtoll_internal (nptr, endptr, base, 0);
  22268. }
  22269. __extension__
  22270. -extern unsigned long long int __strtoull_internal (__const char *
  22271. +extern unsigned long long int __strtoull_internal (const char *
  22272. __restrict __nptr,
  22273. char **
  22274. __restrict __endptr,
  22275. @@ -403,21 +402,21 @@
  22276. __THROW __nonnull ((1)) __wur;
  22277. /* Like `strtoul' but convert to `uintmax_t'. */
  22278. __extern_inline uintmax_t
  22279. -__NTH (strtoumax (__const char *__restrict nptr, char **__restrict endptr,
  22280. +__NTH (strtoumax (const char *__restrict nptr, char **__restrict endptr,
  22281. int base))
  22282. {
  22283. return __strtoull_internal (nptr, endptr, base, 0);
  22284. }
  22285. __extension__
  22286. -extern long long int __wcstoll_internal (__const __gwchar_t *
  22287. +extern long long int __wcstoll_internal (const __gwchar_t *
  22288. __restrict __nptr,
  22289. __gwchar_t **__restrict __endptr,
  22290. int __base, int __group)
  22291. __THROW __nonnull ((1)) __wur;
  22292. /* Like `wcstol' but convert to `intmax_t'. */
  22293. __extern_inline intmax_t
  22294. -__NTH (wcstoimax (__const __gwchar_t *__restrict nptr,
  22295. +__NTH (wcstoimax (const __gwchar_t *__restrict nptr,
  22296. __gwchar_t **__restrict endptr, int base))
  22297. {
  22298. return __wcstoll_internal (nptr, endptr, base, 0);
  22299. @@ -425,7 +424,7 @@
  22300. __extension__
  22301. -extern unsigned long long int __wcstoull_internal (__const __gwchar_t *
  22302. +extern unsigned long long int __wcstoull_internal (const __gwchar_t *
  22303. __restrict __nptr,
  22304. __gwchar_t **
  22305. __restrict __endptr,
  22306. @@ -434,7 +433,7 @@
  22307. __THROW __nonnull ((1)) __wur;
  22308. /* Like `wcstoul' but convert to `uintmax_t'. */
  22309. __extern_inline uintmax_t
  22310. -__NTH (wcstoumax (__const __gwchar_t *__restrict nptr,
  22311. +__NTH (wcstoumax (const __gwchar_t *__restrict nptr,
  22312. __gwchar_t **__restrict endptr, int base))
  22313. {
  22314. return __wcstoull_internal (nptr, endptr, base, 0);
  22315. diff -Nur uClibc-0.9.33.2/include/langinfo.h uClibc-git/include/langinfo.h
  22316. --- uClibc-0.9.33.2/include/langinfo.h 2012-05-15 09:20:09.000000000 +0200
  22317. +++ uClibc-git/include/langinfo.h 2014-06-02 17:40:33.846711055 +0200
  22318. @@ -13,9 +13,8 @@
  22319. Lesser General Public License for more details.
  22320. You should have received a copy of the GNU Lesser General Public
  22321. - License along with the GNU C Library; if not, write to the Free
  22322. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22323. - 02111-1307 USA. */
  22324. + License along with the GNU C Library; if not, see
  22325. + <http://www.gnu.org/licenses/>. */
  22326. #ifndef _LANGINFO_H
  22327. #define _LANGINFO_H 1
  22328. diff -Nur uClibc-0.9.33.2/include/libc-internal.h uClibc-git/include/libc-internal.h
  22329. --- uClibc-0.9.33.2/include/libc-internal.h 2012-05-15 09:20:09.000000000 +0200
  22330. +++ uClibc-git/include/libc-internal.h 2014-06-02 17:40:33.846711055 +0200
  22331. @@ -12,9 +12,8 @@
  22332. Lesser General Public License for more details.
  22333. You should have received a copy of the GNU Lesser General Public
  22334. - License along with the GNU C Library; if not, write to the Free
  22335. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22336. - 02111-1307 USA. */
  22337. + License along with the GNU C Library; if not, see
  22338. + <http://www.gnu.org/licenses/>. */
  22339. #ifndef _LIBC_INTERNAL_H
  22340. #define _LIBC_INTERNAL_H 1
  22341. @@ -29,6 +28,9 @@
  22342. #ifdef __UCLIBC_HAS_TLS__
  22343. # define attribute_tls_model_ie __attribute__ ((tls_model ("initial-exec")))
  22344. +#else
  22345. +# define attribute_tls_model_ie
  22346. +# define __thread
  22347. #endif
  22348. /* Pull in things like __attribute_used__ */
  22349. @@ -44,12 +46,12 @@
  22350. # include <stddef.h>
  22351. /* sources are built w/ _GNU_SOURCE, this gets undefined */
  22352. -#ifdef __USE_GNU
  22353. -extern int __xpg_strerror_r (int __errnum, char *__buf, size_t __buflen);
  22354. -libc_hidden_proto(__xpg_strerror_r)
  22355. -#else
  22356. +#if defined __USE_XOPEN2K && !defined __USE_GNU
  22357. extern char *__glibc_strerror_r (int __errnum, char *__buf, size_t __buflen);
  22358. libc_hidden_proto(__glibc_strerror_r)
  22359. +#else
  22360. +extern int __xpg_strerror_r (int __errnum, char *__buf, size_t __buflen);
  22361. +libc_hidden_proto(__xpg_strerror_r)
  22362. #endif
  22363. /* #include <pthread.h> */
  22364. @@ -70,6 +72,10 @@
  22365. libc_hidden_proto(__chk_fail)
  22366. # endif
  22367. +# ifdef __UCLIBC_HAS_SSP__
  22368. +extern void __stack_chk_fail(void) attribute_noreturn __cold;
  22369. +# endif
  22370. +
  22371. # endif /* IS_IN_libc */
  22372. #endif /* __ASSEMBLER__ */
  22373. diff -Nur uClibc-0.9.33.2/include/libc-symbols.h uClibc-git/include/libc-symbols.h
  22374. --- uClibc-0.9.33.2/include/libc-symbols.h 2012-05-15 09:20:09.000000000 +0200
  22375. +++ uClibc-git/include/libc-symbols.h 2014-06-02 17:40:33.846711055 +0200
  22376. @@ -15,9 +15,8 @@
  22377. Lesser General Public License for more details.
  22378. You should have received a copy of the GNU Lesser General Public
  22379. - License along with the GNU C Library; if not, write to the Free
  22380. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22381. - 02111-1307 USA. */
  22382. + License along with the GNU C Library; if not, see
  22383. + <http://www.gnu.org/licenses/>. */
  22384. #ifndef _LIBC_SYMBOLS_H
  22385. #define _LIBC_SYMBOLS_H 1
  22386. @@ -196,12 +195,12 @@
  22387. # define _strong_alias_untyped(name, aliasname) \
  22388. extern __typeof (aliasname) aliasname __attribute__ ((alias (#name)));
  22389. +# ifdef HAVE_WEAK_SYMBOLS
  22390. +
  22391. /* This comes between the return type and function name in
  22392. a function definition to make that definition weak. */
  22393. -# define weak_function __attribute__ ((weak))
  22394. -# define weak_const_function __attribute__ ((weak, __const__))
  22395. -
  22396. -# ifdef HAVE_WEAK_SYMBOLS
  22397. +# define weak_function __attribute__ ((weak))
  22398. +# define weak_const_function __attribute__ ((weak, __const__))
  22399. /* Define ALIASNAME as a weak alias for NAME.
  22400. If weak aliases are not available, this defines a strong alias. */
  22401. @@ -215,6 +214,9 @@
  22402. # else
  22403. +# define weak_function /* empty */
  22404. +# define weak_const_function __attribute__ ((__const__))
  22405. +
  22406. # define weak_alias(name, aliasname) strong_alias(name, aliasname)
  22407. # define weak_extern(symbol) /* Nothing. */
  22408. diff -Nur uClibc-0.9.33.2/include/libgen.h uClibc-git/include/libgen.h
  22409. --- uClibc-0.9.33.2/include/libgen.h 2012-05-15 09:20:09.000000000 +0200
  22410. +++ uClibc-git/include/libgen.h 2014-06-02 17:40:33.846711055 +0200
  22411. @@ -12,9 +12,8 @@
  22412. Lesser General Public License for more details.
  22413. You should have received a copy of the GNU Lesser General Public
  22414. - License along with the GNU C Library; if not, write to the Free
  22415. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22416. - 02111-1307 USA. */
  22417. + License along with the GNU C Library; if not, see
  22418. + <http://www.gnu.org/licenses/>. */
  22419. #ifndef _LIBGEN_H
  22420. #define _LIBGEN_H 1
  22421. diff -Nur uClibc-0.9.33.2/include/libintl.h uClibc-git/include/libintl.h
  22422. --- uClibc-0.9.33.2/include/libintl.h 2012-05-15 09:20:09.000000000 +0200
  22423. +++ uClibc-git/include/libintl.h 2014-06-02 17:40:33.846711055 +0200
  22424. @@ -14,15 +14,16 @@
  22425. Lesser General Public License for more details.
  22426. You should have received a copy of the GNU Lesser General Public
  22427. - License along with the GNU C Library; if not, write to the Free
  22428. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22429. - 02111-1307 USA. */
  22430. + License along with the GNU C Library; if not, see
  22431. + <http://www.gnu.org/licenses/>. */
  22432. #ifndef _LIBINTL_H
  22433. #define _LIBINTL_H 1
  22434. #include <features.h>
  22435. +#ifdef __UCLIBC_HAS_GETTEXT_AWARENESS__
  22436. +
  22437. /* We define an additional symbol to signal that we use the GNU
  22438. implementation of gettext. */
  22439. #define __USE_GNU_GETTEXT 1
  22440. @@ -37,46 +38,46 @@
  22441. /* Look up MSGID in the current default message catalog for the current
  22442. LC_MESSAGES locale. If not found, returns MSGID itself (the default
  22443. text). */
  22444. -extern char *gettext (__const char *__msgid)
  22445. +extern char *gettext (const char *__msgid)
  22446. __THROW __attribute_format_arg__ (1);
  22447. /* Look up MSGID in the DOMAINNAME message catalog for the current
  22448. LC_MESSAGES locale. */
  22449. -extern char *dgettext (__const char *__domainname, __const char *__msgid)
  22450. +extern char *dgettext (const char *__domainname, const char *__msgid)
  22451. __THROW __attribute_format_arg__ (2);
  22452. #if 0 /* uClibc: disabled */
  22453. -extern char *__dgettext (__const char *__domainname, __const char *__msgid)
  22454. +extern char *__dgettext (const char *__domainname, const char *__msgid)
  22455. __THROW __attribute_format_arg__ (2);
  22456. #endif
  22457. /* Look up MSGID in the DOMAINNAME message catalog for the current CATEGORY
  22458. locale. */
  22459. -extern char *dcgettext (__const char *__domainname,
  22460. - __const char *__msgid, int __category)
  22461. +extern char *dcgettext (const char *__domainname,
  22462. + const char *__msgid, int __category)
  22463. __THROW __attribute_format_arg__ (2);
  22464. #if 0 /* uClibc: disabled */
  22465. -extern char *__dcgettext (__const char *__domainname,
  22466. - __const char *__msgid, int __category)
  22467. +extern char *__dcgettext (const char *__domainname,
  22468. + const char *__msgid, int __category)
  22469. __THROW __attribute_format_arg__ (2);
  22470. #endif
  22471. /* Similar to `gettext' but select the plural form corresponding to the
  22472. number N. */
  22473. -extern char *ngettext (__const char *__msgid1, __const char *__msgid2,
  22474. +extern char *ngettext (const char *__msgid1, const char *__msgid2,
  22475. unsigned long int __n)
  22476. __THROW __attribute_format_arg__ (1) __attribute_format_arg__ (2);
  22477. /* Similar to `dgettext' but select the plural form corresponding to the
  22478. number N. */
  22479. -extern char *dngettext (__const char *__domainname, __const char *__msgid1,
  22480. - __const char *__msgid2, unsigned long int __n)
  22481. +extern char *dngettext (const char *__domainname, const char *__msgid1,
  22482. + const char *__msgid2, unsigned long int __n)
  22483. __THROW __attribute_format_arg__ (2) __attribute_format_arg__ (3);
  22484. /* Similar to `dcgettext' but select the plural form corresponding to the
  22485. number N. */
  22486. -extern char *dcngettext (__const char *__domainname, __const char *__msgid1,
  22487. - __const char *__msgid2, unsigned long int __n,
  22488. +extern char *dcngettext (const char *__domainname, const char *__msgid1,
  22489. + const char *__msgid2, unsigned long int __n,
  22490. int __category)
  22491. __THROW __attribute_format_arg__ (2) __attribute_format_arg__ (3);
  22492. @@ -84,17 +85,17 @@
  22493. /* Set the current default message catalog to DOMAINNAME.
  22494. If DOMAINNAME is null, return the current default.
  22495. If DOMAINNAME is "", reset to the default of "messages". */
  22496. -extern char *textdomain (__const char *__domainname) __THROW;
  22497. +extern char *textdomain (const char *__domainname) __THROW;
  22498. /* Specify that the DOMAINNAME message catalog will be found
  22499. in DIRNAME rather than in the system locale data base. */
  22500. -extern char *bindtextdomain (__const char *__domainname,
  22501. - __const char *__dirname) __THROW;
  22502. +extern char *bindtextdomain (const char *__domainname,
  22503. + const char *__dirname) __THROW;
  22504. /* Specify the character encoding in which the messages from the
  22505. DOMAINNAME message catalog will be returned. */
  22506. -extern char *bind_textdomain_codeset (__const char *__domainname,
  22507. - __const char *__codeset) __THROW;
  22508. +extern char *bind_textdomain_codeset (const char *__domainname,
  22509. + const char *__codeset) __THROW;
  22510. /* Optimized version of the function above. */
  22511. @@ -125,4 +126,15 @@
  22512. __END_DECLS
  22513. +#else
  22514. +
  22515. +#define gettext(msgid) ((const char *) (msgid))
  22516. +
  22517. +#endif /* __UCLIBC_HAS_GETTEXT_AWARENESS__ */
  22518. +
  22519. +#ifdef _LIBC
  22520. +# define _(x) gettext(x)
  22521. +# define N_(x) x
  22522. +#endif
  22523. +
  22524. #endif /* libintl.h */
  22525. diff -Nur uClibc-0.9.33.2/include/limits.h uClibc-git/include/limits.h
  22526. --- uClibc-0.9.33.2/include/limits.h 2012-05-15 09:20:09.000000000 +0200
  22527. +++ uClibc-git/include/limits.h 2014-06-02 17:40:33.846711055 +0200
  22528. @@ -13,9 +13,8 @@
  22529. Lesser General Public License for more details.
  22530. You should have received a copy of the GNU Lesser General Public
  22531. - License along with the GNU C Library; if not, write to the Free
  22532. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22533. - 02111-1307 USA. */
  22534. + License along with the GNU C Library; if not, see
  22535. + <http://www.gnu.org/licenses/>. */
  22536. /*
  22537. * ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types <limits.h>
  22538. diff -Nur uClibc-0.9.33.2/include/link.h uClibc-git/include/link.h
  22539. --- uClibc-0.9.33.2/include/link.h 2012-05-15 09:20:09.000000000 +0200
  22540. +++ uClibc-git/include/link.h 2014-06-02 17:40:33.846711055 +0200
  22541. @@ -14,9 +14,8 @@
  22542. Lesser General Public License for more details.
  22543. You should have received a copy of the GNU Lesser General Public
  22544. - License along with the GNU C Library; if not, write to the Free
  22545. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22546. - 02111-1307 USA. */
  22547. + License along with the GNU C Library; if not, see
  22548. + <http://www.gnu.org/licenses/>. */
  22549. #ifndef _LINK_H
  22550. #define _LINK_H 1
  22551. @@ -110,7 +109,7 @@
  22552. char *l_name; /* Absolute file name object was found in. */
  22553. ElfW(Dyn) *l_ld; /* Dynamic section of the shared object. */
  22554. struct link_map *l_next, *l_prev; /* Chain of loaded objects. */
  22555. -
  22556. +#ifdef _LIBC
  22557. #if defined(USE_TLS) && USE_TLS
  22558. /* Thread-local storage related info. */
  22559. @@ -134,6 +133,7 @@
  22560. /* Nonzero if _dl_init_static_tls should be called for this module */
  22561. unsigned int l_need_tls_init:1;
  22562. #endif
  22563. +#endif
  22564. };
  22565. #ifdef __USE_GNU
  22566. diff -Nur uClibc-0.9.33.2/include/locale.h uClibc-git/include/locale.h
  22567. --- uClibc-0.9.33.2/include/locale.h 2012-05-15 09:20:09.000000000 +0200
  22568. +++ uClibc-git/include/locale.h 2014-06-02 17:40:33.846711055 +0200
  22569. @@ -12,9 +12,8 @@
  22570. Lesser General Public License for more details.
  22571. You should have received a copy of the GNU Lesser General Public
  22572. - License along with the GNU C Library; if not, write to the Free
  22573. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22574. - 02111-1307 USA. */
  22575. + License along with the GNU C Library; if not, see
  22576. + <http://www.gnu.org/licenses/>. */
  22577. /*
  22578. * ISO C99 Standard: 7.11 Localization <locale.h>
  22579. @@ -124,7 +123,7 @@
  22580. /* Set and/or return the current locale. */
  22581. -extern char *setlocale (int __category, __const char *__locale) __THROW;
  22582. +extern char *setlocale (int __category, const char *__locale) __THROW;
  22583. /* Return the numeric/monetary information for the current locale. */
  22584. extern struct lconv *localeconv (void) __THROW;
  22585. @@ -133,7 +132,7 @@
  22586. __END_NAMESPACE_STD
  22587. -#if defined __USE_XOPEN2K8 && defined __UCLIBC_HAS_LOCALE__
  22588. +#if defined __USE_XOPEN2K8 && defined __UCLIBC_HAS_XLOCALE__
  22589. /* The concept of one static locale per category is not very well
  22590. thought out. Many applications will need to process its data using
  22591. information from several different locales. Another application is
  22592. @@ -145,19 +144,14 @@
  22593. Attention: all these functions are *not* standardized in any form.
  22594. This is a proof-of-concept implementation. */
  22595. -#ifdef __UCLIBC_HAS_XLOCALE__
  22596. /* Get locale datatype definition. */
  22597. # include <xlocale.h>
  22598. -#endif
  22599. -
  22600. -/* POSIX 2008 makes locale_t official. */
  22601. -typedef __locale_t locale_t;
  22602. /* Return a reference to a data structure representing a set of locale
  22603. datasets. Unlike for the CATEGORY parameter for `setlocale' the
  22604. CATEGORY_MASK parameter here uses a single bit for each category,
  22605. made by OR'ing together LC_*_MASK bits above. */
  22606. -extern __locale_t newlocale (int __category_mask, __const char *__locale,
  22607. +extern __locale_t newlocale (int __category_mask, const char *__locale,
  22608. __locale_t __base) __THROW;
  22609. libc_hidden_proto(newlocale)
  22610. diff -Nur uClibc-0.9.33.2/include/malloc.h uClibc-git/include/malloc.h
  22611. --- uClibc-0.9.33.2/include/malloc.h 2012-05-15 09:20:09.000000000 +0200
  22612. +++ uClibc-git/include/malloc.h 2014-06-02 17:40:33.846711055 +0200
  22613. @@ -13,9 +13,8 @@
  22614. Lesser General Public License for more details.
  22615. You should have received a copy of the GNU Lesser General Public
  22616. - License along with the GNU C Library; if not, write to the Free
  22617. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22618. - 02111-1307 USA. */
  22619. + License along with the GNU C Library; if not, see
  22620. + <http://www.gnu.org/licenses/>. */
  22621. #ifndef _MALLOC_H
  22622. #define _MALLOC_H 1
  22623. @@ -124,9 +123,12 @@
  22624. /* Allocate SIZE bytes allocated to ALIGNMENT bytes. */
  22625. extern __malloc_ptr_t memalign __MALLOC_P ((size_t __alignment, size_t __size));
  22626. +libc_hidden_proto(memalign)
  22627. +#ifdef __UCLIBC_SUSV2_LEGACY__
  22628. /* Allocate SIZE bytes on a page boundary. */
  22629. extern __malloc_ptr_t valloc __MALLOC_P ((size_t __size)) __attribute_malloc__;
  22630. +#endif
  22631. #ifdef __MALLOC_STANDARD__
  22632. diff -Nur uClibc-0.9.33.2/include/math.h uClibc-git/include/math.h
  22633. --- uClibc-0.9.33.2/include/math.h 2012-05-15 09:20:09.000000000 +0200
  22634. +++ uClibc-git/include/math.h 2014-06-02 17:40:33.846711055 +0200
  22635. @@ -14,9 +14,8 @@
  22636. Lesser General Public License for more details.
  22637. You should have received a copy of the GNU Lesser General Public
  22638. - License along with the GNU C Library; if not, write to the Free
  22639. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22640. - 02111-1307 USA. */
  22641. + License along with the GNU C Library; if not, see
  22642. + <http://www.gnu.org/licenses/>. */
  22643. /*
  22644. * ISO C99 Standard: 7.12 Mathematics <math.h>
  22645. diff -Nur uClibc-0.9.33.2/include/memory.h uClibc-git/include/memory.h
  22646. --- uClibc-0.9.33.2/include/memory.h 2012-05-15 09:20:09.000000000 +0200
  22647. +++ uClibc-git/include/memory.h 2014-06-02 17:40:33.846711055 +0200
  22648. @@ -12,9 +12,8 @@
  22649. Lesser General Public License for more details.
  22650. You should have received a copy of the GNU Lesser General Public
  22651. - License along with the GNU C Library; if not, write to the Free
  22652. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22653. - 02111-1307 USA. */
  22654. + License along with the GNU C Library; if not, see
  22655. + <http://www.gnu.org/licenses/>. */
  22656. /*
  22657. * SVID
  22658. diff -Nur uClibc-0.9.33.2/include/mntent.h uClibc-git/include/mntent.h
  22659. --- uClibc-0.9.33.2/include/mntent.h 2012-05-15 09:20:09.000000000 +0200
  22660. +++ uClibc-git/include/mntent.h 2014-06-02 17:40:33.846711055 +0200
  22661. @@ -13,9 +13,8 @@
  22662. Lesser General Public License for more details.
  22663. You should have received a copy of the GNU Lesser General Public
  22664. - License along with the GNU C Library; if not, write to the Free
  22665. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22666. - 02111-1307 USA. */
  22667. + License along with the GNU C Library; if not, see
  22668. + <http://www.gnu.org/licenses/>. */
  22669. #ifndef _MNTENT_H
  22670. #define _MNTENT_H 1
  22671. @@ -64,7 +63,7 @@
  22672. /* Prepare to begin reading and/or writing mount table entries from the
  22673. beginning of FILE. MODE is as for `fopen'. */
  22674. -extern FILE *setmntent (__const char *__file, __const char *__mode) __THROW;
  22675. +extern FILE *setmntent (const char *__file, const char *__mode) __THROW;
  22676. libc_hidden_proto(setmntent)
  22677. /* Read one mount table entry from STREAM. Returns a pointer to storage
  22678. @@ -84,7 +83,7 @@
  22679. /* Write the mount table entry described by MNT to STREAM.
  22680. Return zero on success, nonzero on failure. */
  22681. extern int addmntent (FILE *__restrict __stream,
  22682. - __const struct mntent *__restrict __mnt) __THROW;
  22683. + const struct mntent *__restrict __mnt) __THROW;
  22684. /* Close a stream opened with `setmntent'. */
  22685. extern int endmntent (FILE *__stream) __THROW;
  22686. @@ -92,8 +91,8 @@
  22687. /* Search MNT->mnt_opts for an option matching OPT.
  22688. Returns the address of the substring, or null if none found. */
  22689. -extern char *hasmntopt (__const struct mntent *__mnt,
  22690. - __const char *__opt) __THROW;
  22691. +extern char *hasmntopt (const struct mntent *__mnt,
  22692. + const char *__opt) __THROW;
  22693. __END_DECLS
  22694. diff -Nur uClibc-0.9.33.2/include/mqueue.h uClibc-git/include/mqueue.h
  22695. --- uClibc-0.9.33.2/include/mqueue.h 2012-05-15 09:20:09.000000000 +0200
  22696. +++ uClibc-git/include/mqueue.h 2014-06-02 17:40:33.846711055 +0200
  22697. @@ -12,9 +12,8 @@
  22698. Lesser General Public License for more details.
  22699. You should have received a copy of the GNU Lesser General Public
  22700. - License along with the GNU C Library; if not, write to the Free
  22701. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22702. - 02111-1307 USA. */
  22703. + License along with the GNU C Library; if not, see
  22704. + <http://www.gnu.org/licenses/>. */
  22705. #ifndef _MQUEUE_H
  22706. #define _MQUEUE_H 1
  22707. diff -Nur uClibc-0.9.33.2/include/net/ethernet.h uClibc-git/include/net/ethernet.h
  22708. --- uClibc-0.9.33.2/include/net/ethernet.h 2012-05-15 09:20:09.000000000 +0200
  22709. +++ uClibc-git/include/net/ethernet.h 2014-06-02 17:40:33.846711055 +0200
  22710. @@ -12,9 +12,8 @@
  22711. Lesser General Public License for more details.
  22712. You should have received a copy of the GNU Lesser General Public
  22713. - License along with the GNU C Library; if not, write to the Free
  22714. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22715. - 02111-1307 USA. */
  22716. + License along with the GNU C Library; if not, see
  22717. + <http://www.gnu.org/licenses/>. */
  22718. /* Based on the FreeBSD version of this file. Curiously, that file
  22719. lacks a copyright in the header. */
  22720. diff -Nur uClibc-0.9.33.2/include/net/if_arp.h uClibc-git/include/net/if_arp.h
  22721. --- uClibc-0.9.33.2/include/net/if_arp.h 2012-05-15 09:20:09.000000000 +0200
  22722. +++ uClibc-git/include/net/if_arp.h 2014-06-02 17:40:33.846711055 +0200
  22723. @@ -14,9 +14,8 @@
  22724. Lesser General Public License for more details.
  22725. You should have received a copy of the GNU Lesser General Public
  22726. - License along with the GNU C Library; if not, write to the Free
  22727. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22728. - 02111-1307 USA. */
  22729. + License along with the GNU C Library; if not, see
  22730. + <http://www.gnu.org/licenses/>. */
  22731. /* Based on the 4.4BSD and Linux version of this file. */
  22732. diff -Nur uClibc-0.9.33.2/include/net/if.h uClibc-git/include/net/if.h
  22733. --- uClibc-0.9.33.2/include/net/if.h 2012-05-15 09:20:09.000000000 +0200
  22734. +++ uClibc-git/include/net/if.h 2014-06-02 17:40:33.846711055 +0200
  22735. @@ -13,9 +13,8 @@
  22736. Lesser General Public License for more details.
  22737. You should have received a copy of the GNU Lesser General Public
  22738. - License along with the GNU C Library; if not, write to the Free
  22739. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22740. - 02111-1307 USA. */
  22741. + License along with the GNU C Library; if not, see
  22742. + <http://www.gnu.org/licenses/>. */
  22743. #ifndef _NET_IF_H
  22744. #define _NET_IF_H 1
  22745. @@ -191,7 +190,7 @@
  22746. __BEGIN_DECLS
  22747. /* Convert an interface name to an index, and vice versa. */
  22748. -extern unsigned int if_nametoindex (__const char *__ifname) __THROW;
  22749. +extern unsigned int if_nametoindex (const char *__ifname) __THROW;
  22750. libc_hidden_proto(if_nametoindex)
  22751. extern char *if_indextoname (unsigned int __ifindex, char *__ifname) __THROW;
  22752. diff -Nur uClibc-0.9.33.2/include/net/if_packet.h uClibc-git/include/net/if_packet.h
  22753. --- uClibc-0.9.33.2/include/net/if_packet.h 2012-05-15 09:20:09.000000000 +0200
  22754. +++ uClibc-git/include/net/if_packet.h 2014-06-02 17:40:33.846711055 +0200
  22755. @@ -13,9 +13,8 @@
  22756. Lesser General Public License for more details.
  22757. You should have received a copy of the GNU Lesser General Public
  22758. - License along with the GNU C Library; if not, write to the Free
  22759. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22760. - 02111-1307 USA. */
  22761. + License along with the GNU C Library; if not, see
  22762. + <http://www.gnu.org/licenses/>. */
  22763. #ifndef __IF_PACKET_H
  22764. #define __IF_PACKET_H
  22765. diff -Nur uClibc-0.9.33.2/include/net/if_shaper.h uClibc-git/include/net/if_shaper.h
  22766. --- uClibc-0.9.33.2/include/net/if_shaper.h 2012-05-15 09:20:09.000000000 +0200
  22767. +++ uClibc-git/include/net/if_shaper.h 2014-06-02 17:40:33.846711055 +0200
  22768. @@ -12,9 +12,8 @@
  22769. Lesser General Public License for more details.
  22770. You should have received a copy of the GNU Lesser General Public
  22771. - License along with the GNU C Library; if not, write to the Free
  22772. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22773. - 02111-1307 USA. */
  22774. + License along with the GNU C Library; if not, see
  22775. + <http://www.gnu.org/licenses/>. */
  22776. #ifndef _NET_IF_SHAPER_H
  22777. #define _NET_IF_SHAPER_H 1
  22778. diff -Nur uClibc-0.9.33.2/include/net/if_slip.h uClibc-git/include/net/if_slip.h
  22779. --- uClibc-0.9.33.2/include/net/if_slip.h 2012-05-15 09:20:09.000000000 +0200
  22780. +++ uClibc-git/include/net/if_slip.h 2014-06-02 17:40:33.846711055 +0200
  22781. @@ -12,9 +12,8 @@
  22782. Lesser General Public License for more details.
  22783. You should have received a copy of the GNU Lesser General Public
  22784. - License along with the GNU C Library; if not, write to the Free
  22785. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22786. - 02111-1307 USA. */
  22787. + License along with the GNU C Library; if not, see
  22788. + <http://www.gnu.org/licenses/>. */
  22789. #ifndef _NET_IF_SLIP_H
  22790. #define _NET_IF_SLIP_H 1
  22791. diff -Nur uClibc-0.9.33.2/include/net/route.h uClibc-git/include/net/route.h
  22792. --- uClibc-0.9.33.2/include/net/route.h 2012-05-15 09:20:09.000000000 +0200
  22793. +++ uClibc-git/include/net/route.h 2014-06-02 17:40:33.846711055 +0200
  22794. @@ -12,9 +12,8 @@
  22795. Lesser General Public License for more details.
  22796. You should have received a copy of the GNU Lesser General Public
  22797. - License along with the GNU C Library; if not, write to the Free
  22798. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22799. - 02111-1307 USA. */
  22800. + License along with the GNU C Library; if not, see
  22801. + <http://www.gnu.org/licenses/>. */
  22802. /* Based on the 4.4BSD and Linux version of this file. */
  22803. diff -Nur uClibc-0.9.33.2/include/netax25/ax25.h uClibc-git/include/netax25/ax25.h
  22804. --- uClibc-0.9.33.2/include/netax25/ax25.h 2012-05-15 09:20:09.000000000 +0200
  22805. +++ uClibc-git/include/netax25/ax25.h 2014-06-02 17:40:33.846711055 +0200
  22806. @@ -12,9 +12,8 @@
  22807. Lesser General Public License for more details.
  22808. You should have received a copy of the GNU Lesser General Public
  22809. - License along with the GNU C Library; if not, write to the Free
  22810. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22811. - 02111-1307 USA. */
  22812. + License along with the GNU C Library; if not, see
  22813. + <http://www.gnu.org/licenses/>. */
  22814. #ifndef _NETAX25_AX25_H
  22815. #define _NETAX25_AX25_H 1
  22816. diff -Nur uClibc-0.9.33.2/include/netdb.h uClibc-git/include/netdb.h
  22817. --- uClibc-0.9.33.2/include/netdb.h 2012-05-15 09:20:09.000000000 +0200
  22818. +++ uClibc-git/include/netdb.h 2014-06-02 17:40:33.846711055 +0200
  22819. @@ -1,4 +1,4 @@
  22820. -/* Copyright (C) 1996-2002, 2003, 2004 Free Software Foundation, Inc.
  22821. +/* Copyright (C) 1996-2002, 2003, 2004, 2009 Free Software Foundation, Inc.
  22822. This file is part of the GNU C Library.
  22823. The GNU C Library is free software; you can redistribute it and/or
  22824. @@ -12,9 +12,8 @@
  22825. Lesser General Public License for more details.
  22826. You should have received a copy of the GNU Lesser General Public
  22827. - License along with the GNU C Library; if not, write to the Free
  22828. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  22829. - 02111-1307 USA. */
  22830. + License along with the GNU C Library; if not, see
  22831. + <http://www.gnu.org/licenses/>. */
  22832. /* All data returned by the network data base library are supplied in
  22833. host order and returned in network order (suitable for use in
  22834. @@ -59,7 +58,6 @@
  22835. /* Function to get address of global `h_errno' variable. */
  22836. extern int *__h_errno_location (void) __THROW __attribute__ ((__const__));
  22837. -libc_hidden_proto(__h_errno_location)
  22838. /* Macros for accessing h_errno from inside libc. */
  22839. #ifdef _LIBC
  22840. @@ -88,8 +86,6 @@
  22841. #endif /* _LIBC */
  22842. /* Possible values left in `h_errno'. */
  22843. -#define NETDB_INTERNAL -1 /* See errno. */
  22844. -#define NETDB_SUCCESS 0 /* No problem. */
  22845. #define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found. */
  22846. #define TRY_AGAIN 2 /* Non-Authoritative Host not found,
  22847. or SERVERFAIL. */
  22848. @@ -97,7 +93,11 @@
  22849. NOTIMP. */
  22850. #define NO_DATA 4 /* Valid name, no data record of requested
  22851. type. */
  22852. -#define NO_ADDRESS NO_DATA /* No address, look for MX record. */
  22853. +#if defined __USE_MISC || defined __USE_GNU
  22854. +# define NETDB_INTERNAL -1 /* See errno. */
  22855. +# define NETDB_SUCCESS 0 /* No problem. */
  22856. +# define NO_ADDRESS NO_DATA /* No address, look for MX record. */
  22857. +#endif
  22858. #ifdef __USE_XOPEN2K
  22859. /* Highest reserved Internet port number. */
  22860. @@ -109,13 +109,15 @@
  22861. # define SCOPE_DELIMITER '%'
  22862. #endif
  22863. +#if defined __USE_MISC || defined __USE_GNU
  22864. /* Print error indicated by `h_errno' variable on standard error. STR
  22865. if non-null is printed before the error string. */
  22866. -extern void herror (__const char *__str) __THROW;
  22867. +extern void herror (const char *__str) __THROW;
  22868. libc_hidden_proto(herror)
  22869. /* Return string associated with error ERR_NUM. */
  22870. -extern __const char *hstrerror (int __err_num) __THROW;
  22871. +extern const char *hstrerror (int __err_num) __THROW;
  22872. +#endif
  22873. /* Description of data base entry for a single host. */
  22874. @@ -126,7 +128,9 @@
  22875. int h_addrtype; /* Host address type. */
  22876. int h_length; /* Length of address. */
  22877. char **h_addr_list; /* List of addresses from name server. */
  22878. -#define h_addr h_addr_list[0] /* Address, for backward compatibility. */
  22879. +#if defined __USE_MISC || defined __USE_GNU
  22880. +# define h_addr h_addr_list[0] /* Address, for backward compatibility.*/
  22881. +#endif
  22882. };
  22883. /* Open host data base files and mark them as staying open even after
  22884. @@ -154,7 +158,7 @@
  22885. This function is a possible cancellation point and therefore not
  22886. marked with __THROW. */
  22887. -extern struct hostent *gethostbyaddr (__const void *__addr, __socklen_t __len,
  22888. +extern struct hostent *gethostbyaddr (const void *__addr, __socklen_t __len,
  22889. int __type);
  22890. libc_hidden_proto(gethostbyaddr)
  22891. @@ -162,7 +166,7 @@
  22892. This function is a possible cancellation point and therefore not
  22893. marked with __THROW. */
  22894. -extern struct hostent *gethostbyname (__const char *__name);
  22895. +extern struct hostent *gethostbyname (const char *__name);
  22896. libc_hidden_proto(gethostbyname)
  22897. #ifdef __USE_MISC
  22898. @@ -174,7 +178,7 @@
  22899. cancellation point. But due to similarity with an POSIX interface
  22900. or due to the implementation it is a cancellation point and
  22901. therefore not marked with __THROW. */
  22902. -extern struct hostent *gethostbyname2 (__const char *__name, int __af);
  22903. +extern struct hostent *gethostbyname2 (const char *__name, int __af);
  22904. libc_hidden_proto(gethostbyname2)
  22905. /* Reentrant versions of the functions above. The additional
  22906. @@ -193,7 +197,7 @@
  22907. int *__restrict __h_errnop);
  22908. libc_hidden_proto(gethostent_r)
  22909. -extern int gethostbyaddr_r (__const void *__restrict __addr, __socklen_t __len,
  22910. +extern int gethostbyaddr_r (const void *__restrict __addr, __socklen_t __len,
  22911. int __type,
  22912. struct hostent *__restrict __result_buf,
  22913. char *__restrict __buf, size_t __buflen,
  22914. @@ -201,14 +205,14 @@
  22915. int *__restrict __h_errnop);
  22916. libc_hidden_proto(gethostbyaddr_r)
  22917. -extern int gethostbyname_r (__const char *__restrict __name,
  22918. +extern int gethostbyname_r (const char *__restrict __name,
  22919. struct hostent *__restrict __result_buf,
  22920. char *__restrict __buf, size_t __buflen,
  22921. struct hostent **__restrict __result,
  22922. int *__restrict __h_errnop);
  22923. libc_hidden_proto(gethostbyname_r)
  22924. -extern int gethostbyname2_r (__const char *__restrict __name, int __af,
  22925. +extern int gethostbyname2_r (const char *__restrict __name, int __af,
  22926. struct hostent *__restrict __result_buf,
  22927. char *__restrict __buf, size_t __buflen,
  22928. struct hostent **__restrict __result,
  22929. @@ -250,7 +254,7 @@
  22930. This function is a possible cancellation point and therefore not
  22931. marked with __THROW. */
  22932. -extern struct netent *getnetbyname (__const char *__name);
  22933. +extern struct netent *getnetbyname (const char *__name);
  22934. #ifdef __USE_MISC
  22935. /* Reentrant versions of the functions above. The additional
  22936. @@ -268,13 +272,15 @@
  22937. struct netent **__restrict __result,
  22938. int *__restrict __h_errnop);
  22939. libc_hidden_proto(getnetent_r)
  22940. +
  22941. extern int getnetbyaddr_r (uint32_t __net, int __type,
  22942. struct netent *__restrict __result_buf,
  22943. char *__restrict __buf, size_t __buflen,
  22944. struct netent **__restrict __result,
  22945. int *__restrict __h_errnop);
  22946. libc_hidden_proto(getnetbyaddr_r)
  22947. -extern int getnetbyname_r (__const char *__restrict __name,
  22948. +
  22949. +extern int getnetbyname_r (const char *__restrict __name,
  22950. struct netent *__restrict __result_buf,
  22951. char *__restrict __buf, size_t __buflen,
  22952. struct netent **__restrict __result,
  22953. @@ -319,15 +325,15 @@
  22954. This function is a possible cancellation point and therefore not
  22955. marked with __THROW. */
  22956. -extern struct servent *getservbyname (__const char *__name,
  22957. - __const char *__proto);
  22958. +extern struct servent *getservbyname (const char *__name,
  22959. + const char *__proto);
  22960. /* Return entry from service data base which matches port PORT and
  22961. protocol PROTO.
  22962. This function is a possible cancellation point and therefore not
  22963. marked with __THROW. */
  22964. -extern struct servent *getservbyport (int __port, __const char *__proto);
  22965. +extern struct servent *getservbyport (int __port, const char *__proto);
  22966. libc_hidden_proto(getservbyport)
  22967. @@ -344,14 +350,14 @@
  22968. struct servent **__restrict __result);
  22969. libc_hidden_proto(getservent_r)
  22970. -extern int getservbyname_r (__const char *__restrict __name,
  22971. - __const char *__restrict __proto,
  22972. +extern int getservbyname_r (const char *__restrict __name,
  22973. + const char *__restrict __proto,
  22974. struct servent *__restrict __result_buf,
  22975. char *__restrict __buf, size_t __buflen,
  22976. struct servent **__restrict __result);
  22977. libc_hidden_proto(getservbyname_r)
  22978. -extern int getservbyport_r (int __port, __const char *__restrict __proto,
  22979. +extern int getservbyport_r (int __port, const char *__restrict __proto,
  22980. struct servent *__restrict __result_buf,
  22981. char *__restrict __buf, size_t __buflen,
  22982. struct servent **__restrict __result);
  22983. @@ -393,7 +399,7 @@
  22984. This function is a possible cancellation point and therefore not
  22985. marked with __THROW. */
  22986. -extern struct protoent *getprotobyname (__const char *__name);
  22987. +extern struct protoent *getprotobyname (const char *__name);
  22988. /* Return entry from protocol data base which number is PROTO.
  22989. @@ -415,7 +421,7 @@
  22990. struct protoent **__restrict __result);
  22991. libc_hidden_proto(getprotoent_r)
  22992. -extern int getprotobyname_r (__const char *__restrict __name,
  22993. +extern int getprotobyname_r (const char *__restrict __name,
  22994. struct protoent *__restrict __result_buf,
  22995. char *__restrict __buf, size_t __buflen,
  22996. struct protoent **__restrict __result);
  22997. @@ -435,7 +441,7 @@
  22998. cancellation point. But due to similarity with an POSIX interface
  22999. or due to the implementation it is a cancellation point and
  23000. therefore not marked with __THROW. */
  23001. -extern int setnetgrent (__const char *__netgroup);
  23002. +extern int setnetgrent (const char *__netgroup);
  23003. /* Free all space allocated by previous `setnetgrent' call.
  23004. @@ -463,8 +469,8 @@
  23005. cancellation point. But due to similarity with an POSIX interface
  23006. or due to the implementation it is a cancellation point and
  23007. therefore not marked with __THROW. */
  23008. -extern int innetgr (__const char *__netgroup, __const char *__host,
  23009. - __const char *__user, __const char *domain);
  23010. +extern int innetgr (const char *__netgroup, const char *__host,
  23011. + const char *__user, const char *__domain);
  23012. /* Reentrant version of `getnetgrent' where result is placed in BUFFER.
  23013. @@ -479,12 +485,12 @@
  23014. #endif /* UCLIBC_HAS_NETGROUP */
  23015. #endif /* misc */
  23016. -
  23017. +#ifdef __UCLIBC__
  23018. /* ruserpass - remote password check.
  23019. This function also exists in glibc but is undocumented */
  23020. extern int ruserpass(const char *host, const char **aname, const char **apass);
  23021. libc_hidden_proto(ruserpass)
  23022. -
  23023. +#endif
  23024. #ifdef __USE_BSD
  23025. /* Call `rshd' at port RPORT on remote machine *AHOST to execute CMD.
  23026. @@ -499,9 +505,9 @@
  23027. or due to the implementation it is a cancellation point and
  23028. therefore not marked with __THROW. */
  23029. extern int rcmd (char **__restrict __ahost, unsigned short int __rport,
  23030. - __const char *__restrict __locuser,
  23031. - __const char *__restrict __remuser,
  23032. - __const char *__restrict __cmd, int *__restrict __fd2p);
  23033. + const char *__restrict __locuser,
  23034. + const char *__restrict __remuser,
  23035. + const char *__restrict __cmd, int *__restrict __fd2p);
  23036. #if 0
  23037. /* FIXME */
  23038. @@ -513,9 +519,9 @@
  23039. or due to the implementation it is a cancellation point and
  23040. therefore not marked with __THROW. */
  23041. extern int rcmd_af (char **__restrict __ahost, unsigned short int __rport,
  23042. - __const char *__restrict __locuser,
  23043. - __const char *__restrict __remuser,
  23044. - __const char *__restrict __cmd, int *__restrict __fd2p,
  23045. + const char *__restrict __locuser,
  23046. + const char *__restrict __remuser,
  23047. + const char *__restrict __cmd, int *__restrict __fd2p,
  23048. sa_family_t __af);
  23049. #endif
  23050. @@ -530,9 +536,9 @@
  23051. or due to the implementation it is a cancellation point and
  23052. therefore not marked with __THROW. */
  23053. extern int rexec (char **__restrict __ahost, int __rport,
  23054. - __const char *__restrict __name,
  23055. - __const char *__restrict __pass,
  23056. - __const char *__restrict __cmd, int *__restrict __fd2p);
  23057. + const char *__restrict __name,
  23058. + const char *__restrict __pass,
  23059. + const char *__restrict __cmd, int *__restrict __fd2p);
  23060. /* This is the equivalent function where the protocol can be selected
  23061. and which therefore can be used for IPv6.
  23062. @@ -542,9 +548,9 @@
  23063. or due to the implementation it is a cancellation point and
  23064. therefore not marked with __THROW. */
  23065. extern int rexec_af (char **__restrict __ahost, int __rport,
  23066. - __const char *__restrict __name,
  23067. - __const char *__restrict __pass,
  23068. - __const char *__restrict __cmd, int *__restrict __fd2p,
  23069. + const char *__restrict __name,
  23070. + const char *__restrict __pass,
  23071. + const char *__restrict __cmd, int *__restrict __fd2p,
  23072. sa_family_t __af);
  23073. libc_hidden_proto(rexec_af)
  23074. @@ -556,8 +562,8 @@
  23075. cancellation point. But due to similarity with an POSIX interface
  23076. or due to the implementation it is a cancellation point and
  23077. therefore not marked with __THROW. */
  23078. -extern int ruserok (__const char *__rhost, int __suser,
  23079. - __const char *__remuser, __const char *__locuser);
  23080. +extern int ruserok (const char *__rhost, int __suser,
  23081. + const char *__remuser, const char *__locuser);
  23082. #if 0
  23083. /* FIXME */
  23084. @@ -568,8 +574,8 @@
  23085. cancellation point. But due to similarity with an POSIX interface
  23086. or due to the implementation it is a cancellation point and
  23087. therefore not marked with __THROW. */
  23088. -extern int ruserok_af (__const char *__rhost, int __suser,
  23089. - __const char *__remuser, __const char *__locuser,
  23090. +extern int ruserok_af (const char *__rhost, int __suser,
  23091. + const char *__remuser, const char *__locuser,
  23092. sa_family_t __af);
  23093. #endif
  23094. @@ -638,15 +644,15 @@
  23095. # define EAI_NONAME -2 /* NAME or SERVICE is unknown. */
  23096. # define EAI_AGAIN -3 /* Temporary failure in name resolution. */
  23097. # define EAI_FAIL -4 /* Non-recoverable failure in name res. */
  23098. -# define EAI_NODATA -5 /* No address associated with NAME. */
  23099. # define EAI_FAMILY -6 /* `ai_family' not supported. */
  23100. # define EAI_SOCKTYPE -7 /* `ai_socktype' not supported. */
  23101. # define EAI_SERVICE -8 /* SERVICE not supported for `ai_socktype'. */
  23102. -# define EAI_ADDRFAMILY -9 /* Address family for NAME not supported. */
  23103. # define EAI_MEMORY -10 /* Memory allocation failure. */
  23104. # define EAI_SYSTEM -11 /* System error returned in `errno'. */
  23105. # define EAI_OVERFLOW -12 /* Argument buffer overflow. */
  23106. # ifdef __USE_GNU
  23107. +# define EAI_NODATA -5 /* No address associated with NAME. */
  23108. +# define EAI_ADDRFAMILY -9 /* Address family for NAME not supported. */
  23109. # define EAI_INPROGRESS -100 /* Processing request in progress. */
  23110. # define EAI_CANCELED -101 /* Request canceled. */
  23111. # define EAI_NOTCANCELED -102 /* Request not canceled. */
  23112. @@ -655,8 +661,10 @@
  23113. # define EAI_IDN_ENCODE -105 /* IDN encoding failed. */
  23114. # endif
  23115. -# define NI_MAXHOST 1025
  23116. -# define NI_MAXSERV 32
  23117. +# ifdef __USE_MISC
  23118. +# define NI_MAXHOST 1025
  23119. +# define NI_MAXSERV 32
  23120. +# endif
  23121. # define NI_NUMERICHOST 1 /* Don't try to look up hostname. */
  23122. # define NI_NUMERICSERV 2 /* Don't convert port number to name. */
  23123. @@ -676,9 +684,9 @@
  23124. This function is a possible cancellation point and therefore not
  23125. marked with __THROW. */
  23126. -extern int getaddrinfo (__const char *__restrict __name,
  23127. - __const char *__restrict __service,
  23128. - __const struct addrinfo *__restrict __req,
  23129. +extern int getaddrinfo (const char *__restrict __name,
  23130. + const char *__restrict __service,
  23131. + const struct addrinfo *__restrict __req,
  23132. struct addrinfo **__restrict __pai);
  23133. libc_hidden_proto(getaddrinfo)
  23134. @@ -687,13 +695,13 @@
  23135. libc_hidden_proto(freeaddrinfo)
  23136. /* Convert error return from getaddrinfo() to a string. */
  23137. -extern __const char *gai_strerror (int __ecode) __THROW;
  23138. +extern const char *gai_strerror (int __ecode) __THROW;
  23139. /* Translate a socket address to a location and service name.
  23140. This function is a possible cancellation point and therefore not
  23141. marked with __THROW. */
  23142. -extern int getnameinfo (__const struct sockaddr *__restrict __sa,
  23143. +extern int getnameinfo (const struct sockaddr *__restrict __sa,
  23144. socklen_t __salen, char *__restrict __host,
  23145. socklen_t __hostlen, char *__restrict __serv,
  23146. socklen_t __servlen, unsigned int __flags);
  23147. diff -Nur uClibc-0.9.33.2/include/neteconet/ec.h uClibc-git/include/neteconet/ec.h
  23148. --- uClibc-0.9.33.2/include/neteconet/ec.h 2012-05-15 09:20:09.000000000 +0200
  23149. +++ uClibc-git/include/neteconet/ec.h 2014-06-02 17:40:33.850711077 +0200
  23150. @@ -13,9 +13,8 @@
  23151. Lesser General Public License for more details.
  23152. You should have received a copy of the GNU Lesser General Public
  23153. - License along with the GNU C Library; if not, write to the Free
  23154. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23155. - 02111-1307 USA. */
  23156. + License along with the GNU C Library; if not, see
  23157. + <http://www.gnu.org/licenses/>. */
  23158. #ifndef _NETECONET_EC_H
  23159. #define _NETECONET_EC_H 1
  23160. diff -Nur uClibc-0.9.33.2/include/netinet/ether.h uClibc-git/include/netinet/ether.h
  23161. --- uClibc-0.9.33.2/include/netinet/ether.h 2012-05-15 09:20:09.000000000 +0200
  23162. +++ uClibc-git/include/netinet/ether.h 2014-06-02 17:40:33.850711077 +0200
  23163. @@ -13,9 +13,8 @@
  23164. Lesser General Public License for more details.
  23165. You should have received a copy of the GNU Lesser General Public
  23166. - License along with the GNU C Library; if not, write to the Free
  23167. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23168. - 02111-1307 USA. */
  23169. + License along with the GNU C Library; if not, see
  23170. + <http://www.gnu.org/licenses/>. */
  23171. #ifndef _NETINET_ETHER_H
  23172. #define _NETINET_ETHER_H 1
  23173. @@ -34,27 +33,27 @@
  23174. #if defined __UCLIBC_HAS_SOCKET__ || defined __UCLIBC_HAS_IPV4__ || \
  23175. defined __UCLIBC_HAS_IPV6__
  23176. /* Convert 48 bit Ethernet ADDRess to ASCII. */
  23177. -extern char *ether_ntoa (__const struct ether_addr *__addr) __THROW;
  23178. -extern char *ether_ntoa_r (__const struct ether_addr *__addr, char *__buf)
  23179. +extern char *ether_ntoa (const struct ether_addr *__addr) __THROW;
  23180. +extern char *ether_ntoa_r (const struct ether_addr *__addr, char *__buf)
  23181. __THROW;
  23182. libc_hidden_proto(ether_ntoa_r)
  23183. /* Convert ASCII string S to 48 bit Ethernet address. */
  23184. -extern struct ether_addr *ether_aton (__const char *__asc) __THROW;
  23185. -extern struct ether_addr *ether_aton_r (__const char *__asc,
  23186. +extern struct ether_addr *ether_aton (const char *__asc) __THROW;
  23187. +extern struct ether_addr *ether_aton_r (const char *__asc,
  23188. struct ether_addr *__addr) __THROW;
  23189. libc_hidden_proto(ether_aton_r)
  23190. /* Map 48 bit Ethernet number ADDR to HOSTNAME. */
  23191. -extern int ether_ntohost (char *__hostname, __const struct ether_addr *__addr)
  23192. +extern int ether_ntohost (char *__hostname, const struct ether_addr *__addr)
  23193. __THROW;
  23194. /* Map HOSTNAME to 48 bit Ethernet address. */
  23195. -extern int ether_hostton (__const char *__hostname, struct ether_addr *__addr)
  23196. +extern int ether_hostton (const char *__hostname, struct ether_addr *__addr)
  23197. __THROW;
  23198. /* Scan LINE and set ADDR and HOSTNAME. */
  23199. -extern int ether_line (__const char *__line, struct ether_addr *__addr,
  23200. +extern int ether_line (const char *__line, struct ether_addr *__addr,
  23201. char *__hostname) __THROW;
  23202. #endif
  23203. diff -Nur uClibc-0.9.33.2/include/netinet/icmp6.h uClibc-git/include/netinet/icmp6.h
  23204. --- uClibc-0.9.33.2/include/netinet/icmp6.h 2012-05-15 09:20:09.000000000 +0200
  23205. +++ uClibc-git/include/netinet/icmp6.h 2014-06-02 17:40:33.850711077 +0200
  23206. @@ -12,9 +12,8 @@
  23207. Lesser General Public License for more details.
  23208. You should have received a copy of the GNU Lesser General Public
  23209. - License along with the GNU C Library; if not, write to the Free
  23210. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23211. - 02111-1307 USA. */
  23212. + License along with the GNU C Library; if not, see
  23213. + <http://www.gnu.org/licenses/>. */
  23214. #ifndef _NETINET_ICMP6_H
  23215. #define _NETINET_ICMP6_H 1
  23216. diff -Nur uClibc-0.9.33.2/include/netinet/if_ether.h uClibc-git/include/netinet/if_ether.h
  23217. --- uClibc-0.9.33.2/include/netinet/if_ether.h 2012-05-15 09:20:09.000000000 +0200
  23218. +++ uClibc-git/include/netinet/if_ether.h 2014-06-02 17:40:33.850711077 +0200
  23219. @@ -12,9 +12,8 @@
  23220. Lesser General Public License for more details.
  23221. You should have received a copy of the GNU Lesser General Public
  23222. - License along with the GNU C Library; if not, write to the Free
  23223. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23224. - 02111-1307 USA. */
  23225. + License along with the GNU C Library; if not, see
  23226. + <http://www.gnu.org/licenses/>. */
  23227. #ifndef __NETINET_IF_ETHER_H
  23228. diff -Nur uClibc-0.9.33.2/include/netinet/if_fddi.h uClibc-git/include/netinet/if_fddi.h
  23229. --- uClibc-0.9.33.2/include/netinet/if_fddi.h 2012-05-15 09:20:09.000000000 +0200
  23230. +++ uClibc-git/include/netinet/if_fddi.h 2014-06-02 17:40:33.850711077 +0200
  23231. @@ -12,9 +12,8 @@
  23232. Lesser General Public License for more details.
  23233. You should have received a copy of the GNU Lesser General Public
  23234. - License along with the GNU C Library; if not, write to the Free
  23235. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23236. - 02111-1307 USA. */
  23237. + License along with the GNU C Library; if not, see
  23238. + <http://www.gnu.org/licenses/>. */
  23239. #ifndef _NETINET_IF_FDDI_H
  23240. #define _NETINET_IF_FDDI_H 1
  23241. diff -Nur uClibc-0.9.33.2/include/netinet/if_tr.h uClibc-git/include/netinet/if_tr.h
  23242. --- uClibc-0.9.33.2/include/netinet/if_tr.h 2012-05-15 09:20:09.000000000 +0200
  23243. +++ uClibc-git/include/netinet/if_tr.h 2014-06-02 17:40:33.850711077 +0200
  23244. @@ -12,9 +12,8 @@
  23245. Lesser General Public License for more details.
  23246. You should have received a copy of the GNU Lesser General Public
  23247. - License along with the GNU C Library; if not, write to the Free
  23248. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23249. - 02111-1307 USA. */
  23250. + License along with the GNU C Library; if not, see
  23251. + <http://www.gnu.org/licenses/>. */
  23252. #ifndef _NETINET_IF_TR_H
  23253. #define _NETINET_IF_TR_H 1
  23254. diff -Nur uClibc-0.9.33.2/include/netinet/igmp.h uClibc-git/include/netinet/igmp.h
  23255. --- uClibc-0.9.33.2/include/netinet/igmp.h 2012-05-15 09:20:09.000000000 +0200
  23256. +++ uClibc-git/include/netinet/igmp.h 2014-06-02 17:40:33.850711077 +0200
  23257. @@ -12,9 +12,8 @@
  23258. Lesser General Public License for more details.
  23259. You should have received a copy of the GNU Lesser General Public
  23260. - License along with the GNU C Library; if not, write to the Free
  23261. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23262. - 02111-1307 USA. */
  23263. + License along with the GNU C Library; if not, see
  23264. + <http://www.gnu.org/licenses/>. */
  23265. #ifndef _NETINET_IGMP_H
  23266. #define _NETINET_IGMP_H 1
  23267. diff -Nur uClibc-0.9.33.2/include/netinet/in.h uClibc-git/include/netinet/in.h
  23268. --- uClibc-0.9.33.2/include/netinet/in.h 2012-05-15 09:20:09.000000000 +0200
  23269. +++ uClibc-git/include/netinet/in.h 2014-06-02 17:40:33.850711077 +0200
  23270. @@ -13,9 +13,8 @@
  23271. Lesser General Public License for more details.
  23272. You should have received a copy of the GNU Lesser General Public
  23273. - License along with the GNU C Library; if not, write to the Free
  23274. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23275. - 02111-1307 USA. */
  23276. + License along with the GNU C Library; if not, see
  23277. + <http://www.gnu.org/licenses/>. */
  23278. #ifndef _NETINET_IN_H
  23279. #define _NETINET_IN_H 1
  23280. @@ -415,43 +414,43 @@
  23281. #if defined __UCLIBC_HAS_IPV6__ || !defined __UCLIBC_STRICT_HEADERS__
  23282. #define IN6_IS_ADDR_UNSPECIFIED(a) \
  23283. - (((__const uint32_t *) (a))[0] == 0 \
  23284. - && ((__const uint32_t *) (a))[1] == 0 \
  23285. - && ((__const uint32_t *) (a))[2] == 0 \
  23286. - && ((__const uint32_t *) (a))[3] == 0)
  23287. + (((const uint32_t *) (a))[0] == 0 \
  23288. + && ((const uint32_t *) (a))[1] == 0 \
  23289. + && ((const uint32_t *) (a))[2] == 0 \
  23290. + && ((const uint32_t *) (a))[3] == 0)
  23291. #define IN6_IS_ADDR_LOOPBACK(a) \
  23292. - (((__const uint32_t *) (a))[0] == 0 \
  23293. - && ((__const uint32_t *) (a))[1] == 0 \
  23294. - && ((__const uint32_t *) (a))[2] == 0 \
  23295. - && ((__const uint32_t *) (a))[3] == htonl (1))
  23296. + (((const uint32_t *) (a))[0] == 0 \
  23297. + && ((const uint32_t *) (a))[1] == 0 \
  23298. + && ((const uint32_t *) (a))[2] == 0 \
  23299. + && ((const uint32_t *) (a))[3] == htonl (1))
  23300. -#define IN6_IS_ADDR_MULTICAST(a) (((__const uint8_t *) (a))[0] == 0xff)
  23301. +#define IN6_IS_ADDR_MULTICAST(a) (((const uint8_t *) (a))[0] == 0xff)
  23302. #define IN6_IS_ADDR_LINKLOCAL(a) \
  23303. - ((((__const uint32_t *) (a))[0] & htonl (0xffc00000)) \
  23304. + ((((const uint32_t *) (a))[0] & htonl (0xffc00000)) \
  23305. == htonl (0xfe800000))
  23306. #define IN6_IS_ADDR_SITELOCAL(a) \
  23307. - ((((__const uint32_t *) (a))[0] & htonl (0xffc00000)) \
  23308. + ((((const uint32_t *) (a))[0] & htonl (0xffc00000)) \
  23309. == htonl (0xfec00000))
  23310. #define IN6_IS_ADDR_V4MAPPED(a) \
  23311. - ((((__const uint32_t *) (a))[0] == 0) \
  23312. - && (((__const uint32_t *) (a))[1] == 0) \
  23313. - && (((__const uint32_t *) (a))[2] == htonl (0xffff)))
  23314. + ((((const uint32_t *) (a))[0] == 0) \
  23315. + && (((const uint32_t *) (a))[1] == 0) \
  23316. + && (((const uint32_t *) (a))[2] == htonl (0xffff)))
  23317. #define IN6_IS_ADDR_V4COMPAT(a) \
  23318. - ((((__const uint32_t *) (a))[0] == 0) \
  23319. - && (((__const uint32_t *) (a))[1] == 0) \
  23320. - && (((__const uint32_t *) (a))[2] == 0) \
  23321. - && (ntohl (((__const uint32_t *) (a))[3]) > 1))
  23322. + ((((const uint32_t *) (a))[0] == 0) \
  23323. + && (((const uint32_t *) (a))[1] == 0) \
  23324. + && (((const uint32_t *) (a))[2] == 0) \
  23325. + && (ntohl (((const uint32_t *) (a))[3]) > 1))
  23326. #define IN6_ARE_ADDR_EQUAL(a,b) \
  23327. - ((((__const uint32_t *) (a))[0] == ((__const uint32_t *) (b))[0]) \
  23328. - && (((__const uint32_t *) (a))[1] == ((__const uint32_t *) (b))[1]) \
  23329. - && (((__const uint32_t *) (a))[2] == ((__const uint32_t *) (b))[2]) \
  23330. - && (((__const uint32_t *) (a))[3] == ((__const uint32_t *) (b))[3]))
  23331. + ((((const uint32_t *) (a))[0] == ((const uint32_t *) (b))[0]) \
  23332. + && (((const uint32_t *) (a))[1] == ((const uint32_t *) (b))[1]) \
  23333. + && (((const uint32_t *) (a))[2] == ((const uint32_t *) (b))[2]) \
  23334. + && (((const uint32_t *) (a))[3] == ((const uint32_t *) (b))[3]))
  23335. #endif
  23336. #if defined __USE_MISC || defined __USE_GNU
  23337. @@ -470,23 +469,23 @@
  23338. #if defined __UCLIBC_HAS_IPV6__ || !defined __UCLIBC_STRICT_HEADERS__
  23339. #define IN6_IS_ADDR_MC_NODELOCAL(a) \
  23340. (IN6_IS_ADDR_MULTICAST(a) \
  23341. - && ((((__const uint8_t *) (a))[1] & 0xf) == 0x1))
  23342. + && ((((const uint8_t *) (a))[1] & 0xf) == 0x1))
  23343. #define IN6_IS_ADDR_MC_LINKLOCAL(a) \
  23344. (IN6_IS_ADDR_MULTICAST(a) \
  23345. - && ((((__const uint8_t *) (a))[1] & 0xf) == 0x2))
  23346. + && ((((const uint8_t *) (a))[1] & 0xf) == 0x2))
  23347. #define IN6_IS_ADDR_MC_SITELOCAL(a) \
  23348. (IN6_IS_ADDR_MULTICAST(a) \
  23349. - && ((((__const uint8_t *) (a))[1] & 0xf) == 0x5))
  23350. + && ((((const uint8_t *) (a))[1] & 0xf) == 0x5))
  23351. #define IN6_IS_ADDR_MC_ORGLOCAL(a) \
  23352. (IN6_IS_ADDR_MULTICAST(a) \
  23353. - && ((((__const uint8_t *) (a))[1] & 0xf) == 0x8))
  23354. + && ((((const uint8_t *) (a))[1] & 0xf) == 0x8))
  23355. #define IN6_IS_ADDR_MC_GLOBAL(a) \
  23356. (IN6_IS_ADDR_MULTICAST(a) \
  23357. - && ((((__const uint8_t *) (a))[1] & 0xf) == 0xe))
  23358. + && ((((const uint8_t *) (a))[1] & 0xf) == 0xe))
  23359. #endif
  23360. @@ -514,15 +513,15 @@
  23361. extern int inet6_option_init (void *__bp, struct cmsghdr **__cmsgp,
  23362. int __type) __THROW __attribute_deprecated__;
  23363. extern int inet6_option_append (struct cmsghdr *__cmsg,
  23364. - __const uint8_t *__typep, int __multx,
  23365. + const uint8_t *__typep, int __multx,
  23366. int __plusy) __THROW __attribute_deprecated__;
  23367. extern uint8_t *inet6_option_alloc (struct cmsghdr *__cmsg, int __datalen,
  23368. int __multx, int __plusy)
  23369. __THROW __attribute_deprecated__;
  23370. -extern int inet6_option_next (__const struct cmsghdr *__cmsg,
  23371. +extern int inet6_option_next (const struct cmsghdr *__cmsg,
  23372. uint8_t **__tptrp)
  23373. __THROW __attribute_deprecated__;
  23374. -extern int inet6_option_find (__const struct cmsghdr *__cmsg,
  23375. +extern int inet6_option_find (const struct cmsghdr *__cmsg,
  23376. uint8_t **__tptrp, int __type)
  23377. __THROW __attribute_deprecated__;
  23378. @@ -550,10 +549,10 @@
  23379. extern socklen_t inet6_rth_space (int __type, int __segments) __THROW;
  23380. extern void *inet6_rth_init (void *__bp, socklen_t __bp_len, int __type,
  23381. int __segments) __THROW;
  23382. -extern int inet6_rth_add (void *__bp, __const struct in6_addr *__addr) __THROW;
  23383. -extern int inet6_rth_reverse (__const void *__in, void *__out) __THROW;
  23384. -extern int inet6_rth_segments (__const void *__bp) __THROW;
  23385. -extern struct in6_addr *inet6_rth_getaddr (__const void *__bp, int __index)
  23386. +extern int inet6_rth_add (void *__bp, const struct in6_addr *__addr) __THROW;
  23387. +extern int inet6_rth_reverse (const void *__in, void *__out) __THROW;
  23388. +extern int inet6_rth_segments (const void *__bp) __THROW;
  23389. +extern struct in6_addr *inet6_rth_getaddr (const void *__bp, int __index)
  23390. __THROW;
  23391. # endif
  23392. # endif
  23393. @@ -572,23 +571,23 @@
  23394. extern int setipv4sourcefilter (int __s, struct in_addr __interface_addr,
  23395. struct in_addr __group, uint32_t __fmode,
  23396. uint32_t __numsrc,
  23397. - __const struct in_addr *__slist)
  23398. + const struct in_addr *__slist)
  23399. __THROW;
  23400. /* Get source filter. */
  23401. extern int getsourcefilter (int __s, uint32_t __interface_addr,
  23402. - __const struct sockaddr *__group,
  23403. + const struct sockaddr *__group,
  23404. socklen_t __grouplen, uint32_t *__fmode,
  23405. uint32_t *__numsrc,
  23406. struct sockaddr_storage *__slist) __THROW;
  23407. /* Set source filter. */
  23408. extern int setsourcefilter (int __s, uint32_t __interface_addr,
  23409. - __const struct sockaddr *__group,
  23410. + const struct sockaddr *__group,
  23411. socklen_t __grouplen, uint32_t __fmode,
  23412. uint32_t __numsrc,
  23413. - __const struct sockaddr_storage *__slist) __THROW;
  23414. + const struct sockaddr_storage *__slist) __THROW;
  23415. # endif
  23416. #endif /* use GNU */
  23417. diff -Nur uClibc-0.9.33.2/include/netinet/in_systm.h uClibc-git/include/netinet/in_systm.h
  23418. --- uClibc-0.9.33.2/include/netinet/in_systm.h 2012-05-15 09:20:09.000000000 +0200
  23419. +++ uClibc-git/include/netinet/in_systm.h 2014-06-02 17:40:33.850711077 +0200
  23420. @@ -13,9 +13,8 @@
  23421. Lesser General Public License for more details.
  23422. You should have received a copy of the GNU Lesser General Public
  23423. - License along with the GNU C Library; if not, write to the Free
  23424. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23425. - 02111-1307 USA. */
  23426. + License along with the GNU C Library; if not, see
  23427. + <http://www.gnu.org/licenses/>. */
  23428. #ifndef _NETINET_IN_SYSTM_H
  23429. #define _NETINET_IN_SYSTM_H 1
  23430. diff -Nur uClibc-0.9.33.2/include/netinet/ip6.h uClibc-git/include/netinet/ip6.h
  23431. --- uClibc-0.9.33.2/include/netinet/ip6.h 2012-05-15 09:20:09.000000000 +0200
  23432. +++ uClibc-git/include/netinet/ip6.h 2014-06-02 17:40:33.850711077 +0200
  23433. @@ -12,9 +12,8 @@
  23434. Lesser General Public License for more details.
  23435. You should have received a copy of the GNU Lesser General Public
  23436. - License along with the GNU C Library; if not, write to the Free
  23437. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23438. - 02111-1307 USA. */
  23439. + License along with the GNU C Library; if not, see
  23440. + <http://www.gnu.org/licenses/>. */
  23441. #ifndef _NETINET_IP6_H
  23442. #define _NETINET_IP6_H 1
  23443. diff -Nur uClibc-0.9.33.2/include/netinet/ip.h uClibc-git/include/netinet/ip.h
  23444. --- uClibc-0.9.33.2/include/netinet/ip.h 2012-05-15 09:20:09.000000000 +0200
  23445. +++ uClibc-git/include/netinet/ip.h 2014-06-02 17:40:33.850711077 +0200
  23446. @@ -13,9 +13,8 @@
  23447. Lesser General Public License for more details.
  23448. You should have received a copy of the GNU Lesser General Public
  23449. - License along with the GNU C Library; if not, write to the Free
  23450. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23451. - 02111-1307 USA. */
  23452. + License along with the GNU C Library; if not, see
  23453. + <http://www.gnu.org/licenses/>. */
  23454. #ifndef __NETINET_IP_H
  23455. #define __NETINET_IP_H 1
  23456. diff -Nur uClibc-0.9.33.2/include/netinet/ip_icmp.h uClibc-git/include/netinet/ip_icmp.h
  23457. --- uClibc-0.9.33.2/include/netinet/ip_icmp.h 2012-05-15 09:20:09.000000000 +0200
  23458. +++ uClibc-git/include/netinet/ip_icmp.h 2014-06-02 17:40:33.850711077 +0200
  23459. @@ -12,9 +12,8 @@
  23460. Lesser General Public License for more details.
  23461. You should have received a copy of the GNU Lesser General Public
  23462. - License along with the GNU C Library; if not, write to the Free
  23463. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23464. - 02111-1307 USA. */
  23465. + License along with the GNU C Library; if not, see
  23466. + <http://www.gnu.org/licenses/>. */
  23467. #ifndef __NETINET_IP_ICMP_H
  23468. #define __NETINET_IP_ICMP_H 1
  23469. diff -Nur uClibc-0.9.33.2/include/netinet/udp.h uClibc-git/include/netinet/udp.h
  23470. --- uClibc-0.9.33.2/include/netinet/udp.h 2012-05-15 09:20:09.000000000 +0200
  23471. +++ uClibc-git/include/netinet/udp.h 2014-06-02 17:40:33.850711077 +0200
  23472. @@ -12,9 +12,8 @@
  23473. Lesser General Public License for more details.
  23474. You should have received a copy of the GNU Lesser General Public
  23475. - License along with the GNU C Library; if not, write to the Free
  23476. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23477. - 02111-1307 USA. */
  23478. + License along with the GNU C Library; if not, see
  23479. + <http://www.gnu.org/licenses/>. */
  23480. /*
  23481. * Copyright (C) 1982, 1986 Regents of the University of California.
  23482. diff -Nur uClibc-0.9.33.2/include/netipx/ipx.h uClibc-git/include/netipx/ipx.h
  23483. --- uClibc-0.9.33.2/include/netipx/ipx.h 2012-05-15 09:20:09.000000000 +0200
  23484. +++ uClibc-git/include/netipx/ipx.h 2014-06-02 17:40:33.850711077 +0200
  23485. @@ -12,9 +12,8 @@
  23486. Lesser General Public License for more details.
  23487. You should have received a copy of the GNU Lesser General Public
  23488. - License along with the GNU C Library; if not, write to the Free
  23489. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23490. - 02111-1307 USA. */
  23491. + License along with the GNU C Library; if not, see
  23492. + <http://www.gnu.org/licenses/>. */
  23493. #ifndef __NETIPX_IPX_H
  23494. #define __NETIPX_IPX_H 1
  23495. diff -Nur uClibc-0.9.33.2/include/netpacket/packet.h uClibc-git/include/netpacket/packet.h
  23496. --- uClibc-0.9.33.2/include/netpacket/packet.h 2012-05-15 09:20:09.000000000 +0200
  23497. +++ uClibc-git/include/netpacket/packet.h 2014-06-02 17:40:33.850711077 +0200
  23498. @@ -13,9 +13,8 @@
  23499. Lesser General Public License for more details.
  23500. You should have received a copy of the GNU Lesser General Public
  23501. - License along with the GNU C Library; if not, write to the Free
  23502. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23503. - 02111-1307 USA. */
  23504. + License along with the GNU C Library; if not, see
  23505. + <http://www.gnu.org/licenses/>. */
  23506. #ifndef __NETPACKET_PACKET_H
  23507. #define __NETPACKET_PACKET_H 1
  23508. diff -Nur uClibc-0.9.33.2/include/nl_types.h uClibc-git/include/nl_types.h
  23509. --- uClibc-0.9.33.2/include/nl_types.h 2012-05-15 09:20:09.000000000 +0200
  23510. +++ uClibc-git/include/nl_types.h 2014-06-02 17:40:33.850711077 +0200
  23511. @@ -12,9 +12,8 @@
  23512. Lesser General Public License for more details.
  23513. You should have received a copy of the GNU Lesser General Public
  23514. - License along with the GNU C Library; if not, write to the Free
  23515. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23516. - 02111-1307 USA. */
  23517. + License along with the GNU C Library; if not, see
  23518. + <http://www.gnu.org/licenses/>. */
  23519. #ifndef _NL_TYPES_H
  23520. #define _NL_TYPES_H 1
  23521. @@ -49,12 +48,12 @@
  23522. This function is a possible cancellation point and therefore not
  23523. marked with __THROW. */
  23524. -extern nl_catd catopen (__const char *__cat_name, int __flag) __nonnull ((1));
  23525. +extern nl_catd catopen (const char *__cat_name, int __flag) __nonnull ((1));
  23526. /* Return translation with NUMBER in SET of CATALOG; if not found
  23527. return STRING. */
  23528. extern char *catgets (nl_catd __catalog, int __set, int __number,
  23529. - __const char *__string) __THROW __nonnull ((1));
  23530. + const char *__string) __THROW __nonnull ((1));
  23531. /* Close message CATALOG. */
  23532. extern int catclose (nl_catd __catalog) __THROW __nonnull ((1));
  23533. diff -Nur uClibc-0.9.33.2/include/obstack.h uClibc-git/include/obstack.h
  23534. --- uClibc-0.9.33.2/include/obstack.h 2012-05-15 09:20:09.000000000 +0200
  23535. +++ uClibc-git/include/obstack.h 2014-06-02 17:40:33.850711077 +0200
  23536. @@ -14,9 +14,8 @@
  23537. Lesser General Public License for more details.
  23538. You should have received a copy of the GNU Lesser General Public
  23539. - License along with the GNU C Library; if not, write to the Free
  23540. - Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  23541. - Boston, MA 02110-1301, USA. */
  23542. + License along with the GNU C Library; if not, see
  23543. + <http://www.gnu.org/licenses/>. */
  23544. /* Summary:
  23545. @@ -180,6 +179,7 @@
  23546. /* Declare the external functions we use; they are in obstack.c. */
  23547. extern void _obstack_newchunk (struct obstack *, int);
  23548. +libc_hidden_proto(_obstack_newchunk)
  23549. extern int _obstack_begin (struct obstack *, int, int,
  23550. void *(*) (long), void (*) (void *));
  23551. extern int _obstack_begin_1 (struct obstack *, int, int,
  23552. diff -Nur uClibc-0.9.33.2/include/printf.h uClibc-git/include/printf.h
  23553. --- uClibc-0.9.33.2/include/printf.h 2012-05-15 09:20:09.000000000 +0200
  23554. +++ uClibc-git/include/printf.h 2014-06-02 17:40:33.850711077 +0200
  23555. @@ -12,9 +12,8 @@
  23556. Lesser General Public License for more details.
  23557. You should have received a copy of the GNU Lesser General Public
  23558. - License along with the GNU C Library; if not, write to the Free
  23559. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23560. - 02111-1307 USA. */
  23561. + License along with the GNU C Library; if not, see
  23562. + <http://www.gnu.org/licenses/>. */
  23563. /* March 11, 2001 Manuel Novoa III
  23564. *
  23565. @@ -143,14 +142,14 @@
  23566. #ifdef __UCLIBC_HAS_GLIBC_CUSTOM_PRINTF__
  23567. typedef int (*printf_function) (FILE *__stream,
  23568. - __const struct printf_info *__info,
  23569. - __const void *__const *__args);
  23570. + const struct printf_info *__info,
  23571. + const void *const *__args);
  23572. /* Type of a printf specifier-arginfo function.
  23573. INFO gives information about the format specification.
  23574. N, ARGTYPES, and return value are as for parse_printf_format. */
  23575. -typedef int printf_arginfo_function (__const struct printf_info *__info,
  23576. +typedef int printf_arginfo_function (const struct printf_info *__info,
  23577. size_t __n, int *__argtypes);
  23578. @@ -174,7 +173,7 @@
  23579. array it is passed with the types of the arguments it wants, and return
  23580. the number of arguments it wants. */
  23581. -extern size_t parse_printf_format (__const char *__restrict __fmt, size_t __n,
  23582. +extern size_t parse_printf_format (const char *__restrict __fmt, size_t __n,
  23583. int *__restrict __argtypes) __THROW;
  23584. @@ -222,11 +221,11 @@
  23585. the format specifier is a uppercase character powers of 1000 are
  23586. used. Otherwise powers of 1024. */
  23587. extern int printf_size (FILE *__restrict __fp,
  23588. - __const struct printf_info *__info,
  23589. - __const void *__const *__restrict __args) __THROW;
  23590. + const struct printf_info *__info,
  23591. + const void *const *__restrict __args) __THROW;
  23592. /* This is the appropriate argument information function for `printf_size'. */
  23593. -extern int printf_size_info (__const struct printf_info *__restrict
  23594. +extern int printf_size_info (const struct printf_info *__restrict
  23595. __info, size_t __n, int *__restrict __argtypes)
  23596. __THROW;
  23597. diff -Nur uClibc-0.9.33.2/include/pty.h uClibc-git/include/pty.h
  23598. --- uClibc-0.9.33.2/include/pty.h 2012-05-15 09:20:09.000000000 +0200
  23599. +++ uClibc-git/include/pty.h 2014-06-02 17:40:33.854711100 +0200
  23600. @@ -13,9 +13,8 @@
  23601. Lesser General Public License for more details.
  23602. You should have received a copy of the GNU Lesser General Public
  23603. - License along with the GNU C Library; if not, write to the Free
  23604. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23605. - 02111-1307 USA. */
  23606. + License along with the GNU C Library; if not, see
  23607. + <http://www.gnu.org/licenses/>. */
  23608. #ifndef _PTY_H
  23609. #define _PTY_H 1
  23610. diff -Nur uClibc-0.9.33.2/include/pwd.h uClibc-git/include/pwd.h
  23611. --- uClibc-0.9.33.2/include/pwd.h 2012-05-15 09:20:09.000000000 +0200
  23612. +++ uClibc-git/include/pwd.h 2014-06-02 17:40:33.854711100 +0200
  23613. @@ -12,9 +12,8 @@
  23614. Lesser General Public License for more details.
  23615. You should have received a copy of the GNU Lesser General Public
  23616. - License along with the GNU C Library; if not, write to the Free
  23617. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23618. - 02111-1307 USA. */
  23619. + License along with the GNU C Library; if not, see
  23620. + <http://www.gnu.org/licenses/>. */
  23621. /*
  23622. * POSIX Standard: 9.2.2 User Database Access <pwd.h>
  23623. @@ -100,7 +99,7 @@
  23624. cancellation point. But due to similarity with an POSIX interface
  23625. or due to the implementation it is a cancellation point and
  23626. therefore not marked with __THROW. */
  23627. -extern int putpwent (__const struct passwd *__restrict __p,
  23628. +extern int putpwent (const struct passwd *__restrict __p,
  23629. FILE *__restrict __f);
  23630. #endif
  23631. @@ -114,7 +113,8 @@
  23632. This function is a possible cancellation point and therefore not
  23633. marked with __THROW. */
  23634. -extern struct passwd *getpwnam (__const char *__name);
  23635. +extern struct passwd *getpwnam (const char *__name);
  23636. +libc_hidden_proto(getpwnam)
  23637. #if defined __USE_POSIX || defined __USE_MISC
  23638. @@ -149,7 +149,7 @@
  23639. struct passwd **__restrict __result);
  23640. libc_hidden_proto(getpwuid_r)
  23641. -extern int getpwnam_r (__const char *__restrict __name,
  23642. +extern int getpwnam_r (const char *__restrict __name,
  23643. struct passwd *__restrict __resultbuf,
  23644. char *__restrict __buffer, size_t __buflen,
  23645. struct passwd **__restrict __result);
  23646. diff -Nur uClibc-0.9.33.2/include/regex.h uClibc-git/include/regex.h
  23647. --- uClibc-0.9.33.2/include/regex.h 2012-05-15 09:20:09.000000000 +0200
  23648. +++ uClibc-git/include/regex.h 2014-06-02 17:40:33.854711100 +0200
  23649. @@ -1,6 +1,6 @@
  23650. /* Definitions for data structures and routines for the regular
  23651. expression library.
  23652. - Copyright (C) 1985,1989-93,1995-98,2000,2001,2002,2003,2005
  23653. + Copyright (C) 1985,1989-93,1995-98,2000,2001,2002,2003,2005,2006,2008
  23654. Free Software Foundation, Inc.
  23655. This file is part of the GNU C Library.
  23656. @@ -15,28 +15,16 @@
  23657. Lesser General Public License for more details.
  23658. You should have received a copy of the GNU Lesser General Public
  23659. - License along with the GNU C Library; if not, write to the Free
  23660. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23661. - 02111-1307 USA. */
  23662. + License along with the GNU C Library; if not, see
  23663. + <http://www.gnu.org/licenses/>. */
  23664. #ifndef _REGEX_H
  23665. #define _REGEX_H 1
  23666. -#include <features.h>
  23667. -
  23668. #include <sys/types.h>
  23669. __BEGIN_DECLS
  23670. -/* POSIX says that <sys/types.h> must be included (by the caller) before
  23671. - <regex.h>. */
  23672. -
  23673. -#if !defined _POSIX_C_SOURCE && !defined _POSIX_SOURCE && defined VMS
  23674. -/* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it
  23675. - should be there. */
  23676. -# include <stddef.h>
  23677. -#endif
  23678. -
  23679. /* The following two types have to be signed and unsigned integer type
  23680. wide enough to hold a value of a pointer. For most ANSI compilers
  23681. ptrdiff_t and size_t should be likely OK. Still size of these two
  23682. @@ -51,20 +39,21 @@
  23683. add or remove a bit, only one other definition need change. */
  23684. typedef unsigned long int reg_syntax_t;
  23685. +#ifdef __USE_GNU
  23686. /* If this bit is not set, then \ inside a bracket expression is literal.
  23687. If set, then such a \ quotes the following character. */
  23688. -#define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1)
  23689. +# define RE_BACKSLASH_ESCAPE_IN_LISTS ((unsigned long int) 1)
  23690. /* If this bit is not set, then + and ? are operators, and \+ and \? are
  23691. literals.
  23692. If set, then \+ and \? are operators and + and ? are literals. */
  23693. -#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
  23694. +# define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
  23695. /* If this bit is set, then character classes are supported. They are:
  23696. [:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:],
  23697. [:space:], [:print:], [:punct:], [:graph:], and [:cntrl:].
  23698. If not set, then character classes are not supported. */
  23699. -#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
  23700. +# define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
  23701. /* If this bit is set, then ^ and $ are always anchors (outside bracket
  23702. expressions, of course).
  23703. @@ -78,7 +67,7 @@
  23704. POSIX draft 11.2 says that * etc. in leading positions is undefined.
  23705. We already implemented a previous draft which made those constructs
  23706. invalid, though, so we haven't changed the code back. */
  23707. -#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
  23708. +# define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
  23709. /* If this bit is set, then special characters are always special
  23710. regardless of where they are in the pattern.
  23711. @@ -86,71 +75,71 @@
  23712. some contexts; otherwise they are ordinary. Specifically,
  23713. * + ? and intervals are only special when not after the beginning,
  23714. open-group, or alternation operator. */
  23715. -#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
  23716. +# define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
  23717. /* If this bit is set, then *, +, ?, and { cannot be first in an re or
  23718. immediately after an alternation or begin-group operator. */
  23719. -#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
  23720. +# define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
  23721. /* If this bit is set, then . matches newline.
  23722. If not set, then it doesn't. */
  23723. -#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
  23724. +# define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
  23725. /* If this bit is set, then . doesn't match NUL.
  23726. If not set, then it does. */
  23727. -#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
  23728. +# define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
  23729. /* If this bit is set, nonmatching lists [^...] do not match newline.
  23730. If not set, they do. */
  23731. -#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
  23732. +# define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
  23733. /* If this bit is set, either \{...\} or {...} defines an
  23734. interval, depending on RE_NO_BK_BRACES.
  23735. If not set, \{, \}, {, and } are literals. */
  23736. -#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
  23737. +# define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
  23738. /* If this bit is set, +, ? and | aren't recognized as operators.
  23739. If not set, they are. */
  23740. -#define RE_LIMITED_OPS (RE_INTERVALS << 1)
  23741. +# define RE_LIMITED_OPS (RE_INTERVALS << 1)
  23742. /* If this bit is set, newline is an alternation operator.
  23743. If not set, newline is literal. */
  23744. -#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
  23745. +# define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
  23746. /* If this bit is set, then `{...}' defines an interval, and \{ and \}
  23747. are literals.
  23748. If not set, then `\{...\}' defines an interval. */
  23749. -#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
  23750. +# define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
  23751. /* If this bit is set, (...) defines a group, and \( and \) are literals.
  23752. If not set, \(...\) defines a group, and ( and ) are literals. */
  23753. -#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
  23754. +# define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
  23755. /* If this bit is set, then \<digit> matches <digit>.
  23756. If not set, then \<digit> is a back-reference. */
  23757. -#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
  23758. +# define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
  23759. /* If this bit is set, then | is an alternation operator, and \| is literal.
  23760. If not set, then \| is an alternation operator, and | is literal. */
  23761. -#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
  23762. +# define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
  23763. /* If this bit is set, then an ending range point collating higher
  23764. than the starting range point, as in [z-a], is invalid.
  23765. If not set, then when ending range point collates higher than the
  23766. starting range point, the range is ignored. */
  23767. -#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
  23768. +# define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
  23769. /* If this bit is set, then an unmatched ) is ordinary.
  23770. If not set, then an unmatched ) is invalid. */
  23771. -#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
  23772. +# define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
  23773. /* If this bit is set, succeed as soon as we match the whole pattern,
  23774. without further backtracking. */
  23775. -#define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1)
  23776. +# define RE_NO_POSIX_BACKTRACKING (RE_UNMATCHED_RIGHT_PAREN_ORD << 1)
  23777. /* If this bit is set, do not process the GNU regex operators.
  23778. If not set, then the GNU regex operators are recognized. */
  23779. -#define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1)
  23780. +# define RE_NO_GNU_OPS (RE_NO_POSIX_BACKTRACKING << 1)
  23781. /* If this bit is set, turn on internal regex debugging.
  23782. If not set, and debugging was on, turn it off.
  23783. @@ -158,29 +147,30 @@
  23784. We define this bit always, so that all that's needed to turn on
  23785. debugging is to recompile regex.c; the calling code can always have
  23786. this bit set, and it won't affect anything in the normal case. */
  23787. -#define RE_DEBUG (RE_NO_GNU_OPS << 1)
  23788. +# define RE_DEBUG (RE_NO_GNU_OPS << 1)
  23789. /* If this bit is set, a syntactically invalid interval is treated as
  23790. a string of ordinary characters. For example, the ERE 'a{1' is
  23791. treated as 'a\{1'. */
  23792. -#define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1)
  23793. +# define RE_INVALID_INTERVAL_ORD (RE_DEBUG << 1)
  23794. /* If this bit is set, then ignore case when matching.
  23795. If not set, then case is significant. */
  23796. -#define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1)
  23797. +# define RE_ICASE (RE_INVALID_INTERVAL_ORD << 1)
  23798. /* This bit is used internally like RE_CONTEXT_INDEP_ANCHORS but only
  23799. for ^, because it is difficult to scan the regex backwards to find
  23800. whether ^ should be special. */
  23801. -#define RE_CARET_ANCHORS_HERE (RE_ICASE << 1)
  23802. +# define RE_CARET_ANCHORS_HERE (RE_ICASE << 1)
  23803. /* If this bit is set, then \{ cannot be first in an bre or
  23804. immediately after an alternation or begin-group operator. */
  23805. -#define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1)
  23806. +# define RE_CONTEXT_INVALID_DUP (RE_CARET_ANCHORS_HERE << 1)
  23807. /* If this bit is set, then no_sub will be set to 1 during
  23808. re_compile_pattern. */
  23809. -#define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1)
  23810. +# define RE_NO_SUB (RE_CONTEXT_INVALID_DUP << 1)
  23811. +#endif
  23812. /* This global variable defines the particular regexp syntax to use (for
  23813. some interfaces). When a regexp is compiled, the syntax used is
  23814. @@ -188,6 +178,7 @@
  23815. already-compiled regexps. */
  23816. extern reg_syntax_t re_syntax_options;
  23817. +#ifdef __USE_GNU
  23818. /* Define combinations of the above bits for the standard possibilities.
  23819. (The [[[ comments delimit what gets put into the Texinfo file, so
  23820. don't delete them!) */
  23821. @@ -262,11 +253,12 @@
  23822. /* Maximum number of duplicates an interval can allow. Some systems
  23823. (erroneously) define this in other header files, but we want our
  23824. value, so remove any previous define. */
  23825. -#ifdef RE_DUP_MAX
  23826. -# undef RE_DUP_MAX
  23827. -#endif
  23828. +# ifdef RE_DUP_MAX
  23829. +# undef RE_DUP_MAX
  23830. +# endif
  23831. /* If sizeof(int) == 2, then ((1 << 15) - 1) overflows. */
  23832. -#define RE_DUP_MAX (0x7fff)
  23833. +# define RE_DUP_MAX (0x7fff)
  23834. +#endif
  23835. /* POSIX `cflags' bits (i.e., information for `regcomp'). */
  23836. @@ -310,7 +302,7 @@
  23837. `re_error_msg' table in regex.c. */
  23838. typedef enum
  23839. {
  23840. -#ifdef _XOPEN_SOURCE
  23841. +#if defined _XOPEN_SOURCE || defined __USE_XOPEN2K
  23842. REG_ENOSYS = -1, /* This will never happen for this implementation. */
  23843. #endif
  23844. @@ -345,7 +337,16 @@
  23845. private to the regex routines. */
  23846. #ifndef RE_TRANSLATE_TYPE
  23847. -# define RE_TRANSLATE_TYPE unsigned char *
  23848. +# define __RE_TRANSLATE_TYPE unsigned char *
  23849. +# ifdef __USE_GNU
  23850. +# define RE_TRANSLATE_TYPE __RE_TRANSLATE_TYPE
  23851. +# endif
  23852. +#endif
  23853. +
  23854. +#ifdef __USE_GNU
  23855. +# define __REPB_PREFIX(name) name
  23856. +#else
  23857. +# define __REPB_PREFIX(name) __##name
  23858. #endif
  23859. struct re_pattern_buffer
  23860. @@ -353,27 +354,27 @@
  23861. /* Space that holds the compiled pattern. It is declared as
  23862. `unsigned char *' because its elements are sometimes used as
  23863. array indexes. */
  23864. - unsigned char *buffer;
  23865. + unsigned char *__REPB_PREFIX(buffer);
  23866. /* Number of bytes to which `buffer' points. */
  23867. - unsigned long int allocated;
  23868. + unsigned long int __REPB_PREFIX(allocated);
  23869. /* Number of bytes actually used in `buffer'. */
  23870. - unsigned long int used;
  23871. + unsigned long int __REPB_PREFIX(used);
  23872. /* Syntax setting with which the pattern was compiled. */
  23873. - reg_syntax_t syntax;
  23874. + reg_syntax_t __REPB_PREFIX(syntax);
  23875. /* Pointer to a fastmap, if any, otherwise zero. re_search uses the
  23876. fastmap, if there is one, to skip over impossible starting points
  23877. for matches. */
  23878. - char *fastmap;
  23879. + char *__REPB_PREFIX(fastmap);
  23880. /* Either a translate table to apply to all characters before
  23881. comparing them, or zero for no translation. The translation is
  23882. applied to a pattern when it is compiled and to a string when it
  23883. is matched. */
  23884. - RE_TRANSLATE_TYPE translate;
  23885. + __RE_TRANSLATE_TYPE __REPB_PREFIX(translate);
  23886. /* Number of subexpressions found by the compiler. */
  23887. size_t re_nsub;
  23888. @@ -382,34 +383,36 @@
  23889. Well, in truth it's used only in `re_search_2', to see whether or
  23890. not we should use the fastmap, so we don't set this absolutely
  23891. perfectly; see `re_compile_fastmap' (the `duplicate' case). */
  23892. - unsigned can_be_null : 1;
  23893. + unsigned __REPB_PREFIX(can_be_null) : 1;
  23894. /* If REGS_UNALLOCATED, allocate space in the `regs' structure
  23895. for `max (RE_NREGS, re_nsub + 1)' groups.
  23896. If REGS_REALLOCATE, reallocate space if necessary.
  23897. If REGS_FIXED, use what's there. */
  23898. -#define REGS_UNALLOCATED 0
  23899. -#define REGS_REALLOCATE 1
  23900. -#define REGS_FIXED 2
  23901. - unsigned regs_allocated : 2;
  23902. +#ifdef __USE_GNU
  23903. +# define REGS_UNALLOCATED 0
  23904. +# define REGS_REALLOCATE 1
  23905. +# define REGS_FIXED 2
  23906. +#endif
  23907. + unsigned __REPB_PREFIX(regs_allocated) : 2;
  23908. /* Set to zero when `regex_compile' compiles a pattern; set to one
  23909. by `re_compile_fastmap' if it updates the fastmap. */
  23910. - unsigned fastmap_accurate : 1;
  23911. + unsigned __REPB_PREFIX(fastmap_accurate) : 1;
  23912. /* If set, `re_match_2' does not return information about
  23913. subexpressions. */
  23914. - unsigned no_sub : 1;
  23915. + unsigned __REPB_PREFIX(no_sub) : 1;
  23916. /* If set, a beginning-of-line anchor doesn't match at the beginning
  23917. of the string. */
  23918. - unsigned not_bol : 1;
  23919. + unsigned __REPB_PREFIX(not_bol) : 1;
  23920. /* Similarly for an end-of-line anchor. */
  23921. - unsigned not_eol : 1;
  23922. + unsigned __REPB_PREFIX(not_eol) : 1;
  23923. /* If true, an anchor at a newline matches. */
  23924. - unsigned newline_anchor : 1;
  23925. + unsigned __REPB_PREFIX(newline_anchor) : 1;
  23926. };
  23927. typedef struct re_pattern_buffer regex_t;
  23928. @@ -418,6 +421,7 @@
  23929. typedef int regoff_t;
  23930. +#ifdef __USE_GNU
  23931. /* This is the structure we store register match data in. See
  23932. regex.texinfo for a full description of what registers match. */
  23933. struct re_registers
  23934. @@ -431,8 +435,9 @@
  23935. /* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
  23936. `re_match_2' returns information about at least this many registers
  23937. the first time a `regs' structure is passed. */
  23938. -#ifndef RE_NREGS
  23939. -# define RE_NREGS 30
  23940. +# ifndef RE_NREGS
  23941. +# define RE_NREGS 30
  23942. +# endif
  23943. #endif
  23944. @@ -447,7 +452,7 @@
  23945. /* Declarations for routines. */
  23946. -
  23947. +#ifdef __USE_GNU
  23948. /* Sets the current default syntax to SYNTAX, and return the old syntax.
  23949. You can also simply assign to the `re_syntax_options' variable. */
  23950. extern reg_syntax_t re_set_syntax (reg_syntax_t __syntax);
  23951. @@ -515,8 +520,9 @@
  23952. struct re_registers *__regs,
  23953. unsigned int __num_regs,
  23954. regoff_t *__starts, regoff_t *__ends);
  23955. +#endif /* Use GNU */
  23956. -#if defined _REGEX_RE_COMP || defined _LIBC
  23957. +#if defined _REGEX_RE_COMP || (defined _LIBC && defined __USE_BSD)
  23958. # ifndef _CRAY
  23959. /* 4.2 bsd compatibility. */
  23960. extern char *re_comp (const char *);
  23961. @@ -537,7 +543,8 @@
  23962. #endif
  23963. /* gcc 3.1 and up support the [restrict] syntax. */
  23964. #ifndef __restrict_arr
  23965. -# if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)
  23966. +# if (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) \
  23967. + && !defined __GNUG__
  23968. # define __restrict_arr __restrict
  23969. # else
  23970. # define __restrict_arr
  23971. diff -Nur uClibc-0.9.33.2/include/regexp.h uClibc-git/include/regexp.h
  23972. --- uClibc-0.9.33.2/include/regexp.h 2012-05-15 09:20:09.000000000 +0200
  23973. +++ uClibc-git/include/regexp.h 2014-06-02 17:40:33.854711100 +0200
  23974. @@ -14,9 +14,8 @@
  23975. Lesser General Public License for more details.
  23976. You should have received a copy of the GNU Lesser General Public
  23977. - License along with the GNU C Library; if not, write to the Free
  23978. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  23979. - 02111-1307 USA. */
  23980. + License along with the GNU C Library; if not, see
  23981. + <http://www.gnu.org/licenses/>. */
  23982. #ifndef _REGEXP_H
  23983. #define _REGEXP_H 1
  23984. @@ -103,7 +102,7 @@
  23985. on the macros. */
  23986. char *
  23987. compile (char *__restrict instring, char *__restrict expbuf,
  23988. - __const char *__restrict endbuf, int eof)
  23989. + const char *__restrict endbuf, int eof)
  23990. {
  23991. char *__input_buffer = NULL;
  23992. size_t __input_size = 0;
  23993. @@ -216,14 +215,14 @@
  23994. found in the buffer starting at EXPBUF. `loc1' will return the
  23995. first character matched and `loc2' points to the next unmatched
  23996. character. */
  23997. -extern int step (__const char *__restrict __string,
  23998. - __const char *__restrict __expbuf) __THROW;
  23999. +extern int step (const char *__restrict __string,
  24000. + const char *__restrict __expbuf) __THROW;
  24001. /* Match the beginning of STRING with the compiled regular expression
  24002. in EXPBUF. If the match is successful `loc2' will contain the
  24003. position of the first unmatched character. */
  24004. -extern int advance (__const char *__restrict __string,
  24005. - __const char *__restrict __expbuf) __THROW;
  24006. +extern int advance (const char *__restrict __string,
  24007. + const char *__restrict __expbuf) __THROW;
  24008. #endif
  24009. diff -Nur uClibc-0.9.33.2/include/rpc/auth_des.h uClibc-git/include/rpc/auth_des.h
  24010. --- uClibc-0.9.33.2/include/rpc/auth_des.h 2012-05-15 09:20:09.000000000 +0200
  24011. +++ uClibc-git/include/rpc/auth_des.h 2014-06-02 17:40:33.862711143 +0200
  24012. @@ -12,9 +12,8 @@
  24013. Lesser General Public License for more details.
  24014. You should have received a copy of the GNU Lesser General Public
  24015. - License along with the GNU C Library; if not, write to the Free
  24016. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  24017. - 02111-1307 USA. */
  24018. + License along with the GNU C Library; if not, see
  24019. + <http://www.gnu.org/licenses/>. */
  24020. #ifndef _RPC_AUTH_DES_H
  24021. #define _RPC_AUTH_DES_H 1
  24022. @@ -89,27 +88,26 @@
  24023. #define adv_nickname adv_int_u
  24024. /* Map a des credential into a unix cred. */
  24025. -extern int authdes_getucred (__const struct authdes_cred * __adc,
  24026. +extern int authdes_getucred (const struct authdes_cred * __adc,
  24027. uid_t * __uid, gid_t * __gid,
  24028. short *__grouplen, gid_t * __groups) __THROW;
  24029. /* Get the public key for NAME and place it in KEY. NAME can only be
  24030. up to MAXNETNAMELEN bytes long and the destination buffer KEY should
  24031. have HEXKEYBYTES + 1 bytes long to fit all characters from the key. */
  24032. -extern int getpublickey (__const char *__name, char *__key) __THROW;
  24033. +extern int getpublickey (const char *__name, char *__key) __THROW;
  24034. /* Get the secret key for NAME and place it in KEY. PASSWD is used to
  24035. decrypt the encrypted key stored in the database. NAME can only be
  24036. up to MAXNETNAMELEN bytes long and the destination buffer KEY
  24037. should have HEXKEYBYTES + 1 bytes long to fit all characters from
  24038. the key. */
  24039. -extern int getsecretkey (__const char *__name, char *__key,
  24040. - __const char *__passwd) __THROW;
  24041. +extern int getsecretkey (const char *__name, char *__key,
  24042. + const char *__passwd) __THROW;
  24043. #endif
  24044. extern int rtime (struct sockaddr_in *__addrp, struct rpc_timeval *__timep,
  24045. struct rpc_timeval *__timeout) __THROW;
  24046. -libc_hidden_proto(rtime)
  24047. __END_DECLS
  24048. diff -Nur uClibc-0.9.33.2/include/rpc/auth.h uClibc-git/include/rpc/auth.h
  24049. --- uClibc-0.9.33.2/include/rpc/auth.h 2012-05-15 09:20:09.000000000 +0200
  24050. +++ uClibc-git/include/rpc/auth.h 2014-06-02 17:40:33.854711100 +0200
  24051. @@ -41,17 +41,6 @@
  24052. #ifndef _RPC_AUTH_H
  24053. #define _RPC_AUTH_H 1
  24054. -#ifdef _LIBC
  24055. -/* Some adjustments to make the libc source from glibc
  24056. - * compile more easily with uClibc... */
  24057. -#ifndef __FORCE_GLIBC
  24058. -#define __FORCE_GLIBC
  24059. -#endif
  24060. -#ifndef _GNU_SOURCE
  24061. -#define _GNU_SOURCE
  24062. -#endif
  24063. -#define _(X) X
  24064. -#endif
  24065. #include <features.h>
  24066. #include <rpc/xdr.h>
  24067. @@ -107,6 +96,10 @@
  24068. struct opaque_auth ah_cred;
  24069. struct opaque_auth ah_verf;
  24070. union des_block ah_key;
  24071. + /* not sure whether non-const-ness is a part of the spec... if it is,
  24072. + * enclose "const" in #ifdef _LIBC / #endif
  24073. + * to make it effective only for libc compile */
  24074. + const
  24075. struct auth_ops {
  24076. void (*ah_nextverf) (AUTH *);
  24077. int (*ah_marshal) (AUTH *, XDR *); /* nextverf & serialize */
  24078. @@ -200,11 +193,11 @@
  24079. *
  24080. */
  24081. extern int getnetname (char *) __THROW;
  24082. -extern int host2netname (char *, __const char *, __const char *) __THROW;
  24083. -extern int user2netname (char *, __const uid_t, __const char *) __THROW;
  24084. -extern int netname2user (__const char *, uid_t *, gid_t *, int *, gid_t *)
  24085. +extern int host2netname (char *, const char *, const char *) __THROW;
  24086. +extern int user2netname (char *, const uid_t, const char *) __THROW;
  24087. +extern int netname2user (const char *, uid_t *, gid_t *, int *, gid_t *)
  24088. __THROW;
  24089. -extern int netname2host (__const char *, char *, __const int) __THROW;
  24090. +extern int netname2host (const char *, char *, const int) __THROW;
  24091. /*
  24092. *
  24093. diff -Nur uClibc-0.9.33.2/include/rpc/clnt.h uClibc-git/include/rpc/clnt.h
  24094. --- uClibc-0.9.33.2/include/rpc/clnt.h 2012-05-15 09:20:09.000000000 +0200
  24095. +++ uClibc-git/include/rpc/clnt.h 2014-06-02 17:40:33.862711143 +0200
  24096. @@ -281,7 +281,7 @@
  24097. * u_long prog;
  24098. * u_long vers;
  24099. */
  24100. -extern CLIENT *clntraw_create (__const u_long __prog, __const u_long __vers)
  24101. +extern CLIENT *clntraw_create (const u_long __prog, const u_long __vers)
  24102. __THROW;
  24103. @@ -295,8 +295,8 @@
  24104. * u_ong vers; -- version number
  24105. * char *prot; -- protocol
  24106. */
  24107. -extern CLIENT *clnt_create (__const char *__host, __const u_long __prog,
  24108. - __const u_long __vers, __const char *__prot)
  24109. +extern CLIENT *clnt_create (const char *__host, const u_long __prog,
  24110. + const u_long __vers, const char *__prot)
  24111. __THROW;
  24112. @@ -365,18 +365,18 @@
  24113. libc_hidden_proto(clntunix_create)
  24114. -extern int callrpc (__const char *__host, __const u_long __prognum,
  24115. - __const u_long __versnum, __const u_long __procnum,
  24116. - __const xdrproc_t __inproc, __const char *__in,
  24117. - __const xdrproc_t __outproc, char *__out) __THROW;
  24118. +extern int callrpc (const char *__host, const u_long __prognum,
  24119. + const u_long __versnum, const u_long __procnum,
  24120. + const xdrproc_t __inproc, const char *__in,
  24121. + const xdrproc_t __outproc, char *__out) __THROW;
  24122. extern int _rpc_dtablesize (void) __THROW;
  24123. libc_hidden_proto(_rpc_dtablesize)
  24124. /*
  24125. * Print why creation failed
  24126. */
  24127. -extern void clnt_pcreateerror (__const char *__msg); /* stderr */
  24128. -extern char *clnt_spcreateerror(__const char *__msg) __THROW; /* string */
  24129. +extern void clnt_pcreateerror (const char *__msg); /* stderr */
  24130. +extern char *clnt_spcreateerror(const char *__msg) __THROW; /* string */
  24131. libc_hidden_proto(clnt_spcreateerror)
  24132. /*
  24133. @@ -387,10 +387,10 @@
  24134. /*
  24135. * Print an English error message, given the client error code
  24136. */
  24137. -extern void clnt_perror (CLIENT *__clnt, __const char *__msg);
  24138. +extern void clnt_perror (CLIENT *__clnt, const char *__msg);
  24139. /* stderr */
  24140. libc_hidden_proto(clnt_perror)
  24141. -extern char *clnt_sperror (CLIENT *__clnt, __const char *__msg) __THROW;
  24142. +extern char *clnt_sperror (CLIENT *__clnt, const char *__msg) __THROW;
  24143. /* string */
  24144. libc_hidden_proto(clnt_sperror)
  24145. @@ -416,7 +416,7 @@
  24146. /*
  24147. * get the port number on the host for the rpc program,version and proto
  24148. */
  24149. -extern int getrpcport (__const char * __host, u_long __prognum,
  24150. +extern int getrpcport (const char * __host, u_long __prognum,
  24151. u_long __versnum, u_int proto) __THROW;
  24152. /*
  24153. diff -Nur uClibc-0.9.33.2/include/rpc/netdb.h uClibc-git/include/rpc/netdb.h
  24154. --- uClibc-0.9.33.2/include/rpc/netdb.h 2012-05-15 09:20:09.000000000 +0200
  24155. +++ uClibc-git/include/rpc/netdb.h 2014-06-02 17:40:33.862711143 +0200
  24156. @@ -54,7 +54,7 @@
  24157. libc_hidden_proto(setrpcent)
  24158. extern void endrpcent (void) __THROW;
  24159. libc_hidden_proto(endrpcent)
  24160. -extern struct rpcent *getrpcbyname (__const char *__name) __THROW;
  24161. +extern struct rpcent *getrpcbyname (const char *__name) __THROW;
  24162. libc_hidden_proto(getrpcbyname)
  24163. extern struct rpcent *getrpcbynumber (int __number) __THROW;
  24164. libc_hidden_proto(getrpcbynumber)
  24165. @@ -62,7 +62,7 @@
  24166. libc_hidden_proto(getrpcent)
  24167. #if defined __USE_MISC && defined __UCLIBC_HAS_REENTRANT_RPC__
  24168. -extern int getrpcbyname_r (__const char *__name, struct rpcent *__result_buf,
  24169. +extern int getrpcbyname_r (const char *__name, struct rpcent *__result_buf,
  24170. char *__buffer, size_t __buflen,
  24171. struct rpcent **__result) __THROW;
  24172. diff -Nur uClibc-0.9.33.2/include/rpc/pmap_clnt.h uClibc-git/include/rpc/pmap_clnt.h
  24173. --- uClibc-0.9.33.2/include/rpc/pmap_clnt.h 2012-05-15 09:20:09.000000000 +0200
  24174. +++ uClibc-git/include/rpc/pmap_clnt.h 2014-06-02 17:40:33.862711143 +0200
  24175. @@ -69,30 +69,30 @@
  24176. * address if the responder to the broadcast.
  24177. */
  24178. -extern bool_t pmap_set (__const u_long __program, __const u_long __vers,
  24179. +extern bool_t pmap_set (const u_long __program, const u_long __vers,
  24180. int __protocol, u_short __port) __THROW;
  24181. libc_hidden_proto(pmap_set)
  24182. -extern bool_t pmap_unset (__const u_long __program, __const u_long __vers)
  24183. +extern bool_t pmap_unset (const u_long __program, const u_long __vers)
  24184. __THROW;
  24185. libc_hidden_proto(pmap_unset)
  24186. extern struct pmaplist *pmap_getmaps (struct sockaddr_in *__address) __THROW;
  24187. extern enum clnt_stat pmap_rmtcall (struct sockaddr_in *__addr,
  24188. - __const u_long __prog,
  24189. - __const u_long __vers,
  24190. - __const u_long __proc,
  24191. + const u_long __prog,
  24192. + const u_long __vers,
  24193. + const u_long __proc,
  24194. xdrproc_t __xdrargs,
  24195. caddr_t __argsp, xdrproc_t __xdrres,
  24196. caddr_t __resp, struct timeval __tout,
  24197. u_long *__port_ptr) __THROW;
  24198. -extern enum clnt_stat clnt_broadcast (__const u_long __prog,
  24199. - __const u_long __vers,
  24200. - __const u_long __proc, xdrproc_t __xargs,
  24201. +extern enum clnt_stat clnt_broadcast (const u_long __prog,
  24202. + const u_long __vers,
  24203. + const u_long __proc, xdrproc_t __xargs,
  24204. caddr_t __argsp, xdrproc_t __xresults,
  24205. caddr_t __resultsp,
  24206. resultproc_t __eachresult) __THROW;
  24207. extern u_short pmap_getport (struct sockaddr_in *__address,
  24208. - __const u_long __program,
  24209. - __const u_long __version, u_int __protocol)
  24210. + const u_long __program,
  24211. + const u_long __version, u_int __protocol)
  24212. __THROW;
  24213. libc_hidden_proto(pmap_getport)
  24214. diff -Nur uClibc-0.9.33.2/include/rpc/rpc.h uClibc-git/include/rpc/rpc.h
  24215. --- uClibc-0.9.33.2/include/rpc/rpc.h 2012-05-15 09:20:09.000000000 +0200
  24216. +++ uClibc-git/include/rpc/rpc.h 2014-06-02 17:40:33.862711143 +0200
  24217. @@ -38,19 +38,6 @@
  24218. #ifndef _RPC_RPC_H
  24219. #define _RPC_RPC_H 1
  24220. -#ifdef _LIBC
  24221. -/* Some adjustments to make the libc source from glibc
  24222. - * compile more easily with uClibc... */
  24223. -#ifndef __FORCE_GLIBC
  24224. -#define __FORCE_GLIBC
  24225. -#endif
  24226. -#ifndef _GNU_SOURCE
  24227. -#define _GNU_SOURCE
  24228. -#endif
  24229. -#define _(X) X
  24230. -#include <features.h>
  24231. -#endif
  24232. -
  24233. #include <rpc/types.h> /* some typedefs */
  24234. #include <netinet/in.h>
  24235. @@ -109,11 +96,6 @@
  24236. libc_hidden_proto(__rpc_thread_svc_max_pollfd)
  24237. #define svc_max_pollfd (*__rpc_thread_svc_max_pollfd ())
  24238. -extern bool_t xdr_accepted_reply (XDR *xdrs, struct accepted_reply *ar);
  24239. -libc_hidden_proto(xdr_accepted_reply)
  24240. -extern bool_t xdr_rejected_reply (XDR *xdrs, struct rejected_reply *rr);
  24241. -libc_hidden_proto(xdr_rejected_reply)
  24242. -
  24243. __END_DECLS
  24244. #endif /* rpc/rpc.h */
  24245. diff -Nur uClibc-0.9.33.2/include/rpc/rpc_msg.h uClibc-git/include/rpc/rpc_msg.h
  24246. --- uClibc-0.9.33.2/include/rpc/rpc_msg.h 2012-05-15 09:20:09.000000000 +0200
  24247. +++ uClibc-git/include/rpc/rpc_msg.h 2014-06-02 17:40:33.862711143 +0200
  24248. @@ -201,6 +201,26 @@
  24249. __THROW;
  24250. libc_hidden_proto(_seterr_reply)
  24251. +#ifdef __UCLIBC__
  24252. +/*
  24253. + * XDR routine to handle an accepted rpc reply.
  24254. + * xdr_accepted_reply(xdrs, rej)
  24255. + * XDR *xdrs;
  24256. + * struct accepted_reply *rej;
  24257. + */
  24258. +extern bool_t xdr_accepted_reply(XDR *__xdrs, struct accepted_reply *__ar);
  24259. +libc_hidden_proto(xdr_accepted_reply)
  24260. +
  24261. +/*
  24262. + * XDR routine to handle a rejected rpc reply.
  24263. + * xdr_rejected_reply(xdrs, rej)
  24264. + * XDR *xdrs;
  24265. + * struct rejected_reply *rej;
  24266. + */
  24267. +extern bool_t xdr_rejected_reply(XDR *__xdrs, struct rejected_reply *__rr);
  24268. +libc_hidden_proto(xdr_rejected_reply)
  24269. +#endif
  24270. +
  24271. __END_DECLS
  24272. #endif /* rpc/rpc_msg.h */
  24273. diff -Nur uClibc-0.9.33.2/include/rpc/types.h uClibc-git/include/rpc/types.h
  24274. --- uClibc-0.9.33.2/include/rpc/types.h 2012-05-15 09:20:09.000000000 +0200
  24275. +++ uClibc-git/include/rpc/types.h 2014-06-02 17:40:33.862711143 +0200
  24276. @@ -33,19 +33,6 @@
  24277. #ifndef _RPC_TYPES_H
  24278. #define _RPC_TYPES_H 1
  24279. -#ifdef _LIBC
  24280. -/* Some adjustments to make the libc source from glibc
  24281. - * compile more easily with uClibc... */
  24282. -#ifndef __FORCE_GLIBC
  24283. -#define __FORCE_GLIBC
  24284. -#endif
  24285. -#ifndef _GNU_SOURCE
  24286. -#define _GNU_SOURCE
  24287. -#endif
  24288. -#define _(X) X
  24289. -#endif
  24290. -#include <features.h>
  24291. -
  24292. typedef int bool_t;
  24293. typedef int enum_t;
  24294. /* This needs to be changed to uint32_t in the future */
  24295. diff -Nur uClibc-0.9.33.2/include/rpc/xdr.h uClibc-git/include/rpc/xdr.h
  24296. --- uClibc-0.9.33.2/include/rpc/xdr.h 2012-05-15 09:20:09.000000000 +0200
  24297. +++ uClibc-git/include/rpc/xdr.h 2014-06-02 17:40:33.862711143 +0200
  24298. @@ -36,14 +36,6 @@
  24299. #ifndef _RPC_XDR_H
  24300. #define _RPC_XDR_H 1
  24301. -#ifdef _LIBC
  24302. -/* Some adjustments to make the libc source from glibc
  24303. - * compile more easily with uClibc... */
  24304. -# ifndef __FORCE_GLIBC
  24305. -# define __FORCE_GLIBC
  24306. -# endif
  24307. -# define _(X) X
  24308. -#endif
  24309. #include <features.h>
  24310. #include <sys/types.h>
  24311. #include <rpc/types.h>
  24312. @@ -120,17 +112,21 @@
  24313. struct XDR
  24314. {
  24315. enum xdr_op x_op; /* operation; fast additional param */
  24316. + /* not sure whether non-const-ness is a part of the spec... if it is,
  24317. + * enclose "const" in #ifdef _LIBC / #endif
  24318. + * to make it effective only for libc compile */
  24319. + const
  24320. struct xdr_ops
  24321. {
  24322. bool_t (*x_getlong) (XDR *__xdrs, long *__lp);
  24323. /* get a long from underlying stream */
  24324. - bool_t (*x_putlong) (XDR *__xdrs, __const long *__lp);
  24325. + bool_t (*x_putlong) (XDR *__xdrs, const long *__lp);
  24326. /* put a long to " */
  24327. bool_t (*x_getbytes) (XDR *__xdrs, caddr_t __addr, u_int __len);
  24328. /* get some bytes from " */
  24329. - bool_t (*x_putbytes) (XDR *__xdrs, __const char *__addr, u_int __len);
  24330. + bool_t (*x_putbytes) (XDR *__xdrs, const char *__addr, u_int __len);
  24331. /* put some bytes to " */
  24332. - u_int (*x_getpostn) (__const XDR *__xdrs);
  24333. + u_int (*x_getpostn) (const XDR *__xdrs);
  24334. /* returns bytes off from beginning */
  24335. bool_t (*x_setpostn) (XDR *__xdrs, u_int __pos);
  24336. /* lets you reposition the stream */
  24337. @@ -140,7 +136,7 @@
  24338. /* free privates of this xdr_stream */
  24339. bool_t (*x_getint32) (XDR *__xdrs, int32_t *__ip);
  24340. /* get a int from underlying stream */
  24341. - bool_t (*x_putint32) (XDR *__xdrs, __const int32_t *__ip);
  24342. + bool_t (*x_putint32) (XDR *__xdrs, const int32_t *__ip);
  24343. /* put a int to " */
  24344. }
  24345. *x_ops;
  24346. @@ -320,6 +316,8 @@
  24347. extern bool_t xdr_uint32_t (XDR *__xdrs, uint32_t *__up) __THROW;
  24348. extern bool_t xdr_int64_t (XDR *__xdrs, int64_t *__ip) __THROW;
  24349. extern bool_t xdr_uint64_t (XDR *__xdrs, uint64_t *__up) __THROW;
  24350. +extern bool_t xdr_quad_t (XDR *__xdrs, quad_t *__ip) __THROW;
  24351. +extern bool_t xdr_u_quad_t (XDR *__xdrs, u_quad_t *__up) __THROW;
  24352. extern bool_t xdr_bool (XDR *__xdrs, bool_t *__bp) __THROW;
  24353. libc_hidden_proto(xdr_bool)
  24354. extern bool_t xdr_enum (XDR *__xdrs, enum_t *__ep) __THROW;
  24355. @@ -336,7 +334,7 @@
  24356. extern bool_t xdr_string (XDR *__xdrs, char **__cpp, u_int __maxsize) __THROW;
  24357. libc_hidden_proto(xdr_string)
  24358. extern bool_t xdr_union (XDR *__xdrs, enum_t *__dscmp, char *__unp,
  24359. - __const struct xdr_discrim *__choices,
  24360. + const struct xdr_discrim *__choices,
  24361. xdrproc_t dfault) __THROW;
  24362. libc_hidden_proto(xdr_union)
  24363. extern bool_t xdr_char (XDR *__xdrs, char *__cp) __THROW;
  24364. @@ -372,7 +370,7 @@
  24365. */
  24366. /* XDR using memory buffers */
  24367. -extern void xdrmem_create (XDR *__xdrs, __const caddr_t __addr,
  24368. +extern void xdrmem_create (XDR *__xdrs, const caddr_t __addr,
  24369. u_int __size, enum xdr_op __xop) __THROW;
  24370. libc_hidden_proto(xdrmem_create)
  24371. diff -Nur uClibc-0.9.33.2/include/sched.h uClibc-git/include/sched.h
  24372. --- uClibc-0.9.33.2/include/sched.h 2012-05-15 09:20:09.000000000 +0200
  24373. +++ uClibc-git/include/sched.h 2014-06-02 17:40:33.862711143 +0200
  24374. @@ -13,9 +13,8 @@
  24375. Lesser General Public License for more details.
  24376. You should have received a copy of the GNU Lesser General Public
  24377. - License along with the GNU C Library; if not, write to the Free
  24378. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  24379. - 02111-1307 USA. */
  24380. + License along with the GNU C Library; if not, see
  24381. + <http://www.gnu.org/licenses/>. */
  24382. #ifndef _SCHED_H
  24383. #define _SCHED_H 1
  24384. @@ -40,7 +39,7 @@
  24385. __BEGIN_DECLS
  24386. /* Set scheduling parameters for a process. */
  24387. -extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param)
  24388. +extern int sched_setparam (__pid_t __pid, const struct sched_param *__param)
  24389. __THROW;
  24390. /* Retrieve scheduling parameters for a particular process. */
  24391. @@ -48,7 +47,7 @@
  24392. /* Set scheduling algorithm and/or parameters for a process. */
  24393. extern int sched_setscheduler (__pid_t __pid, int __policy,
  24394. - __const struct sched_param *__param) __THROW;
  24395. + const struct sched_param *__param) __THROW;
  24396. /* Retrieve scheduling algorithm for a particular purpose. */
  24397. extern int sched_getscheduler (__pid_t __pid) __THROW;
  24398. @@ -108,11 +107,19 @@
  24399. /* Set the CPU affinity for a task */
  24400. extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
  24401. - __const cpu_set_t *__cpuset) __THROW;
  24402. + const cpu_set_t *__cpuset) __THROW;
  24403. /* Get the CPU affinity for a task */
  24404. extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
  24405. cpu_set_t *__cpuset) __THROW;
  24406. +
  24407. +# ifdef _LIBC
  24408. +extern int __clone (int (*__fn) (void *__arg), void *__child_stack,
  24409. + int __flags, void *__arg, ...);
  24410. +extern int __clone2 (int (*__fn) (void *__arg), void *__child_stack_base,
  24411. + size_t __child_stack_size, int __flags, void *__arg, ...);
  24412. +# endif
  24413. +
  24414. #endif
  24415. __END_DECLS
  24416. diff -Nur uClibc-0.9.33.2/include/scsi/scsi.h uClibc-git/include/scsi/scsi.h
  24417. --- uClibc-0.9.33.2/include/scsi/scsi.h 2012-05-15 09:20:09.000000000 +0200
  24418. +++ uClibc-git/include/scsi/scsi.h 2014-06-02 17:40:33.862711143 +0200
  24419. @@ -12,9 +12,8 @@
  24420. Lesser General Public License for more details.
  24421. You should have received a copy of the GNU Lesser General Public
  24422. - License along with the GNU C Library; if not, write to the Free
  24423. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  24424. - 02111-1307 USA. */
  24425. + License along with the GNU C Library; if not, see
  24426. + <http://www.gnu.org/licenses/>. */
  24427. /*
  24428. * This header file contains public constants and structures used by
  24429. diff -Nur uClibc-0.9.33.2/include/scsi/scsi_ioctl.h uClibc-git/include/scsi/scsi_ioctl.h
  24430. --- uClibc-0.9.33.2/include/scsi/scsi_ioctl.h 2012-05-15 09:20:09.000000000 +0200
  24431. +++ uClibc-git/include/scsi/scsi_ioctl.h 2014-06-02 17:40:33.862711143 +0200
  24432. @@ -12,9 +12,8 @@
  24433. Lesser General Public License for more details.
  24434. You should have received a copy of the GNU Lesser General Public
  24435. - License along with the GNU C Library; if not, write to the Free
  24436. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  24437. - 02111-1307 USA. */
  24438. + License along with the GNU C Library; if not, see
  24439. + <http://www.gnu.org/licenses/>. */
  24440. #ifndef _SCSI_IOCTL_H
  24441. #define _SCSI_IOCTL_H
  24442. diff -Nur uClibc-0.9.33.2/include/scsi/sg.h uClibc-git/include/scsi/sg.h
  24443. --- uClibc-0.9.33.2/include/scsi/sg.h 2012-05-15 09:20:09.000000000 +0200
  24444. +++ uClibc-git/include/scsi/sg.h 2014-06-02 17:40:33.862711143 +0200
  24445. @@ -12,9 +12,8 @@
  24446. Lesser General Public License for more details.
  24447. You should have received a copy of the GNU Lesser General Public
  24448. - License along with the GNU C Library; if not, write to the Free
  24449. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  24450. - 02111-1307 USA. */
  24451. + License along with the GNU C Library; if not, see
  24452. + <http://www.gnu.org/licenses/>. */
  24453. /*
  24454. History:
  24455. diff -Nur uClibc-0.9.33.2/include/search.h uClibc-git/include/search.h
  24456. --- uClibc-0.9.33.2/include/search.h 2012-05-15 09:20:09.000000000 +0200
  24457. +++ uClibc-git/include/search.h 2014-06-02 17:40:33.862711143 +0200
  24458. @@ -13,9 +13,8 @@
  24459. Lesser General Public License for more details.
  24460. You should have received a copy of the GNU Lesser General Public
  24461. - License along with the GNU C Library; if not, write to the Free
  24462. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  24463. - 02111-1307 USA. */
  24464. + License along with the GNU C Library; if not, see
  24465. + <http://www.gnu.org/licenses/>. */
  24466. #ifndef _SEARCH_H
  24467. #define _SEARCH_H 1
  24468. @@ -52,7 +51,7 @@
  24469. /* For use with hsearch(3). */
  24470. #ifndef __COMPAR_FN_T
  24471. # define __COMPAR_FN_T
  24472. -typedef int (*__compar_fn_t) (__const void *, __const void *);
  24473. +typedef int (*__compar_fn_t) (const void *, const void *);
  24474. # ifdef __USE_GNU
  24475. typedef __compar_fn_t comparison_fn_t;
  24476. @@ -130,30 +129,30 @@
  24477. /* Search for an entry matching the given KEY in the tree pointed to
  24478. by *ROOTP and insert a new element if not found. */
  24479. -extern void *tsearch (__const void *__key, void **__rootp,
  24480. +extern void *tsearch (const void *__key, void **__rootp,
  24481. __compar_fn_t __compar);
  24482. libc_hidden_proto(tsearch)
  24483. /* Search for an entry matching the given KEY in the tree pointed to
  24484. by *ROOTP. If no matching entry is available return NULL. */
  24485. -extern void *tfind (__const void *__key, void *__const *__rootp,
  24486. +extern void *tfind (const void *__key, void *const *__rootp,
  24487. __compar_fn_t __compar);
  24488. libc_hidden_proto(tfind)
  24489. /* Remove the element matching KEY from the tree pointed to by *ROOTP. */
  24490. -extern void *tdelete (__const void *__restrict __key,
  24491. +extern void *tdelete (const void *__restrict __key,
  24492. void **__restrict __rootp,
  24493. __compar_fn_t __compar);
  24494. #ifndef __ACTION_FN_T
  24495. # define __ACTION_FN_T
  24496. -typedef void (*__action_fn_t) (__const void *__nodep, VISIT __value,
  24497. +typedef void (*__action_fn_t) (const void *__nodep, VISIT __value,
  24498. int __level);
  24499. #endif
  24500. /* Walk through the whole tree and call the ACTION callback for every node
  24501. or leaf. */
  24502. -extern void twalk (__const void *__root, __action_fn_t __action);
  24503. +extern void twalk (const void *__root, __action_fn_t __action);
  24504. #ifdef __USE_GNU
  24505. /* Callback type for function to free a tree node. If the keys are atomic
  24506. @@ -168,13 +167,13 @@
  24507. /* Perform linear search for KEY by comparing by COMPAR in an array
  24508. [BASE,BASE+NMEMB*SIZE). */
  24509. -extern void *lfind (__const void *__key, __const void *__base,
  24510. +extern void *lfind (const void *__key, const void *__base,
  24511. size_t *__nmemb, size_t __size, __compar_fn_t __compar);
  24512. libc_hidden_proto(lfind)
  24513. /* Perform linear search for KEY by comparing by COMPAR function in
  24514. array [BASE,BASE+NMEMB*SIZE) and insert entry if not found. */
  24515. -extern void *lsearch (__const void *__key, void *__base,
  24516. +extern void *lsearch (const void *__key, void *__base,
  24517. size_t *__nmemb, size_t __size, __compar_fn_t __compar);
  24518. __END_DECLS
  24519. diff -Nur uClibc-0.9.33.2/include/setjmp.h uClibc-git/include/setjmp.h
  24520. --- uClibc-0.9.33.2/include/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  24521. +++ uClibc-git/include/setjmp.h 2014-06-02 17:40:33.862711143 +0200
  24522. @@ -1,4 +1,4 @@
  24523. -/* Copyright (C) 1991-1999, 2001 Free Software Foundation, Inc.
  24524. +/* Copyright (C) 1991-1999,2001,2002,2007,2009 Free Software Foundation, Inc.
  24525. This file is part of the GNU C Library.
  24526. The GNU C Library is free software; you can redistribute it and/or
  24527. @@ -12,9 +12,8 @@
  24528. Lesser General Public License for more details.
  24529. You should have received a copy of the GNU Lesser General Public
  24530. - License along with the GNU C Library; if not, write to the Free
  24531. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  24532. - 02111-1307 USA. */
  24533. + License along with the GNU C Library; if not, see
  24534. + <http://www.gnu.org/licenses/>. */
  24535. /*
  24536. * ISO C99 Standard: 7.13 Nonlocal jumps <setjmp.h>
  24537. @@ -30,8 +29,9 @@
  24538. #include <bits/setjmp.h> /* Get `__jmp_buf'. */
  24539. #include <bits/sigset.h> /* Get `__sigset_t'. */
  24540. +
  24541. /* Calling environment, plus possibly a saved signal mask. */
  24542. -typedef struct __jmp_buf_tag /* C++ doesn't like tagless structs. */
  24543. +struct __jmp_buf_tag
  24544. {
  24545. /* NOTE: The machine-dependent definitions of `__sigsetjmp'
  24546. assume that a `jmp_buf' begins with a `__jmp_buf' and that
  24547. @@ -40,23 +40,29 @@
  24548. __jmp_buf __jmpbuf; /* Calling environment. */
  24549. int __mask_was_saved; /* Saved the signal mask? */
  24550. __sigset_t __saved_mask; /* Saved signal mask. */
  24551. - } jmp_buf[1];
  24552. + };
  24553. +
  24554. +__BEGIN_NAMESPACE_STD
  24555. +
  24556. +typedef struct __jmp_buf_tag jmp_buf[1];
  24557. /* Store the calling environment in ENV, also saving the signal mask.
  24558. Return 0. */
  24559. extern int setjmp (jmp_buf __env) __THROW;
  24560. -/* Store the calling environment in ENV, not saving the signal mask.
  24561. - Return 0. */
  24562. -extern int _setjmp (jmp_buf __env) __THROW;
  24563. +__END_NAMESPACE_STD
  24564. /* Store the calling environment in ENV, also saving the
  24565. signal mask if SAVEMASK is nonzero. Return 0.
  24566. This is the internal name for `sigsetjmp'. */
  24567. -extern int __sigsetjmp (jmp_buf __env, int __savemask) __THROW;
  24568. +extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __THROW;
  24569. #ifndef __FAVOR_BSD
  24570. +/* Store the calling environment in ENV, not saving the signal mask.
  24571. + Return 0. */
  24572. +extern int _setjmp (struct __jmp_buf_tag __env[1]) __THROW;
  24573. +
  24574. /* Do not save the signal mask. This is equivalent to the `_setjmp'
  24575. BSD function. */
  24576. # define setjmp(env) _setjmp (env)
  24577. @@ -68,15 +74,20 @@
  24578. #endif /* Favor BSD. */
  24579. +__BEGIN_NAMESPACE_STD
  24580. +
  24581. /* Jump to the environment saved in ENV, making the
  24582. `setjmp' call there return VAL, or 1 if VAL is 0. */
  24583. -extern void longjmp (jmp_buf __env, int __val)
  24584. +extern void longjmp (struct __jmp_buf_tag __env[1], int __val)
  24585. __THROW __attribute__ ((__noreturn__));
  24586. +
  24587. +__END_NAMESPACE_STD
  24588. +
  24589. #if defined __USE_BSD || defined __USE_XOPEN
  24590. /* Same. Usually `_longjmp' is used with `_setjmp', which does not save
  24591. the signal mask. But it is how ENV was saved that determines whether
  24592. `longjmp' restores the mask; `_longjmp' is just an alias. */
  24593. -extern void _longjmp (jmp_buf __env, int __val)
  24594. +extern void _longjmp (struct __jmp_buf_tag __env[1], int __val)
  24595. __THROW __attribute__ ((__noreturn__));
  24596. #endif
  24597. @@ -85,7 +96,7 @@
  24598. /* Use the same type for `jmp_buf' and `sigjmp_buf'.
  24599. The `__mask_was_saved' flag determines whether
  24600. or not `longjmp' will restore the signal mask. */
  24601. -typedef jmp_buf sigjmp_buf;
  24602. +typedef struct __jmp_buf_tag sigjmp_buf[1];
  24603. /* Store the calling environment in ENV, also saving the
  24604. signal mask if SAVEMASK is nonzero. Return 0. */
  24605. @@ -101,4 +112,16 @@
  24606. __END_DECLS
  24607. +#ifdef _LIBC
  24608. +extern void __longjmp(__jmp_buf __env, int __val) attribute_noreturn;
  24609. +libc_hidden_proto(__longjmp)
  24610. +extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
  24611. +extern __typeof(siglongjmp) __libc_siglongjmp attribute_noreturn;
  24612. +extern void _longjmp_unwind(jmp_buf __env, int __val);
  24613. +libc_hidden_proto(_longjmp_unwind)
  24614. +extern int __sigjmp_save(sigjmp_buf __env, int __savemask) attribute_hidden;
  24615. +/* We use the normal longjmp for unwinding */
  24616. +# define __libc_unwind_longjmp(buf, val) __libc_longjmp(buf, val)
  24617. +#endif
  24618. +
  24619. #endif /* setjmp.h */
  24620. diff -Nur uClibc-0.9.33.2/include/sgtty.h uClibc-git/include/sgtty.h
  24621. --- uClibc-0.9.33.2/include/sgtty.h 2012-05-15 09:20:09.000000000 +0200
  24622. +++ uClibc-git/include/sgtty.h 2014-06-02 17:40:33.862711143 +0200
  24623. @@ -12,9 +12,8 @@
  24624. Lesser General Public License for more details.
  24625. You should have received a copy of the GNU Lesser General Public
  24626. - License along with the GNU C Library; if not, write to the Free
  24627. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  24628. - 02111-1307 USA. */
  24629. + License along with the GNU C Library; if not, see
  24630. + <http://www.gnu.org/licenses/>. */
  24631. #ifndef _SGTTY_H
  24632. #define _SGTTY_H 1
  24633. @@ -38,7 +37,7 @@
  24634. extern int gtty (int __fd, struct sgttyb *__params) __THROW;
  24635. /* Set the terminal parameters associated with FD to *PARAMS. */
  24636. -extern int stty (int __fd, __const struct sgttyb *__params) __THROW;
  24637. +extern int stty (int __fd, const struct sgttyb *__params) __THROW;
  24638. #endif
  24639. diff -Nur uClibc-0.9.33.2/include/shadow.h uClibc-git/include/shadow.h
  24640. --- uClibc-0.9.33.2/include/shadow.h 2012-05-15 09:20:09.000000000 +0200
  24641. +++ uClibc-git/include/shadow.h 2014-06-02 17:40:33.862711143 +0200
  24642. @@ -12,9 +12,8 @@
  24643. Lesser General Public License for more details.
  24644. You should have received a copy of the GNU Lesser General Public
  24645. - License along with the GNU C Library; if not, write to the Free
  24646. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  24647. - 02111-1307 USA. */
  24648. + License along with the GNU C Library; if not, see
  24649. + <http://www.gnu.org/licenses/>. */
  24650. /* Declaration of types and functions for shadow password suite. */
  24651. @@ -84,7 +83,7 @@
  24652. cancellation point. But due to similarity with an POSIX interface
  24653. or due to the implementation it is a cancellation point and
  24654. therefore not marked with __THROW. */
  24655. -extern struct spwd *getspnam (__const char *__name);
  24656. +extern struct spwd *getspnam (const char *__name);
  24657. /* Read shadow entry from STRING.
  24658. @@ -92,7 +91,7 @@
  24659. cancellation point. But due to similarity with an POSIX interface
  24660. or due to the implementation it is a cancellation point and
  24661. therefore not marked with __THROW. */
  24662. -extern struct spwd *sgetspent (__const char *__string);
  24663. +extern struct spwd *sgetspent (const char *__string);
  24664. /* Read next shadow entry from STREAM.
  24665. @@ -108,7 +107,7 @@
  24666. cancellation point. But due to similarity with an POSIX interface
  24667. or due to the implementation it is a cancellation point and
  24668. therefore not marked with __THROW. */
  24669. -extern int putspent (__const struct spwd *__p, FILE *__stream);
  24670. +extern int putspent (const struct spwd *__p, FILE *__stream);
  24671. #ifdef __USE_MISC
  24672. @@ -122,12 +121,12 @@
  24673. size_t __buflen, struct spwd **__result);
  24674. libc_hidden_proto(getspent_r)
  24675. -extern int getspnam_r (__const char *__name, struct spwd *__result_buf,
  24676. +extern int getspnam_r (const char *__name, struct spwd *__result_buf,
  24677. char *__buffer, size_t __buflen,
  24678. struct spwd **__result);
  24679. libc_hidden_proto(getspnam_r)
  24680. -extern int sgetspent_r (__const char *__string, struct spwd *__result_buf,
  24681. +extern int sgetspent_r (const char *__string, struct spwd *__result_buf,
  24682. char *__buffer, size_t __buflen,
  24683. struct spwd **__result);
  24684. libc_hidden_proto(sgetspent_r)
  24685. diff -Nur uClibc-0.9.33.2/include/signal.h uClibc-git/include/signal.h
  24686. --- uClibc-0.9.33.2/include/signal.h 2012-05-15 09:20:09.000000000 +0200
  24687. +++ uClibc-git/include/signal.h 2014-06-02 17:40:33.862711143 +0200
  24688. @@ -1,4 +1,4 @@
  24689. -/* Copyright (C) 1991-2003, 2004 Free Software Foundation, Inc.
  24690. +/* Copyright (C) 1991-2003, 2004, 2007, 2009 Free Software Foundation, Inc.
  24691. This file is part of the GNU C Library.
  24692. The GNU C Library is free software; you can redistribute it and/or
  24693. @@ -12,9 +12,8 @@
  24694. Lesser General Public License for more details.
  24695. You should have received a copy of the GNU Lesser General Public
  24696. - License along with the GNU C Library; if not, write to the Free
  24697. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  24698. - 02111-1307 USA. */
  24699. + License along with the GNU C Library; if not, see
  24700. + <http://www.gnu.org/licenses/>. */
  24701. /*
  24702. * ISO C99 Standard: 7.14 Signal handling <signal.h>
  24703. @@ -87,15 +86,27 @@
  24704. typedef __pid_t pid_t;
  24705. # define __pid_t_defined
  24706. # endif
  24707. +#endif
  24708. +#ifdef __USE_XOPEN
  24709. # ifndef __uid_t_defined
  24710. typedef __uid_t uid_t;
  24711. # define __uid_t_defined
  24712. # endif
  24713. #endif /* Unix98 */
  24714. +#if defined __USE_POSIX199309 && defined __UCLIBC_HAS_REALTIME__
  24715. +/* We need `struct timespec' later on. */
  24716. +# define __need_timespec
  24717. +# include <time.h>
  24718. +
  24719. +/* Get the `siginfo_t' type plus the needed symbols. */
  24720. +# include <bits/siginfo.h>
  24721. +#endif
  24722. +
  24723. /* Type of a signal handler. */
  24724. typedef void (*__sighandler_t) (int);
  24725. +
  24726. #if defined __UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL__
  24727. /* The X/Open definition of `signal' specifies the SVID semantic. Use
  24728. the additional function `sysv_signal' when X/Open compatibility is
  24729. @@ -156,17 +167,23 @@
  24730. libc_hidden_proto(raise)
  24731. __END_NAMESPACE_STD
  24732. -#ifdef __USE_SVID
  24733. +#if 0 /*def __USE_SVID*/
  24734. /* SVID names for the same things. */
  24735. extern __sighandler_t ssignal (int __sig, __sighandler_t __handler)
  24736. __THROW;
  24737. extern int gsignal (int __sig) __THROW;
  24738. #endif /* Use SVID. */
  24739. -#ifdef __USE_MISC
  24740. +/* glibc guards the next two wrong with __USE_XOPEN2K */
  24741. +#if defined __USE_MISC || defined __USE_XOPEN2K8
  24742. /* Print a message describing the meaning of the given signal number. */
  24743. -extern void psignal (int __sig, __const char *__s);
  24744. -#endif /* Use misc. */
  24745. +extern void psignal (int __sig, const char *__s);
  24746. +#endif /* Use misc or POSIX 2008. */
  24747. +
  24748. +#if 0 /*def __USE_XOPEN2K8*/
  24749. +/* Print a message describing the meaning of the given signal information. */
  24750. +extern void psiginfo (const siginfo_t *__pinfo, const char *__s);
  24751. +#endif /* POSIX 2008. */
  24752. #ifdef __UCLIBC_SUSV4_LEGACY__
  24753. /* The `sigpause' function has two different interfaces. The original
  24754. @@ -177,23 +194,25 @@
  24755. This function is a cancellation point and therefore not marked with
  24756. __THROW. */
  24757. -extern int __sigpause (int __sig_or_mask, int __is_sig);
  24758. -libc_hidden_proto(__sigpause)
  24759. +/*extern int __sigpause (int __sig_or_mask, int __is_sig);*/
  24760. #ifdef __FAVOR_BSD
  24761. /* Set the mask of blocked signals to MASK,
  24762. wait for a signal to arrive, and then restore the mask. */
  24763. -extern int sigpause (int __mask) __THROW __attribute_deprecated__;
  24764. -# define sigpause(mask) __sigpause ((mask), 0)
  24765. +/*extern int sigpause (int __mask) __THROW __attribute_deprecated__;
  24766. +# define sigpause(mask) __sigpause ((mask), 0)*/
  24767. +/* uClibc note: BSD sigpause is available as __bsd_sigpause.
  24768. + * It is intentionally not prototyped */
  24769. #else
  24770. # ifdef __USE_XOPEN
  24771. /* Remove a signal from the signal mask and suspend the process. */
  24772. -# define sigpause(sig) __sigpause ((sig), 1)
  24773. +extern int sigpause(int __sig);
  24774. +/*# define sigpause(sig) __sigpause ((sig), 1)*/
  24775. # endif
  24776. #endif
  24777. #endif /* __UCLIBC_SUSV4_LEGACY__ */
  24778. -#ifdef __USE_BSD
  24779. +#if 0 /*def __USE_BSD*/
  24780. /* None of the following functions should be used anymore. They are here
  24781. only for compatibility. A single word (`int') is not guaranteed to be
  24782. enough to hold a complete signal mask and therefore these functions
  24783. @@ -203,14 +222,10 @@
  24784. # define sigmask(sig) __sigmask(sig)
  24785. /* Block signals in MASK, returning the old mask. */
  24786. -extern int sigblock (int __mask) __THROW;
  24787. -/* collides with libc_hidden_proto: __attribute_deprecated__; */
  24788. -libc_hidden_proto(sigblock)
  24789. +extern int sigblock (int __mask) __THROW __attribute_deprecated__;
  24790. /* Set the mask of blocked signals to MASK, returning the old mask. */
  24791. -extern int sigsetmask (int __mask) __THROW;
  24792. -/* collides with libc_hidden_proto: __attribute_deprecated__; */
  24793. -libc_hidden_proto(sigsetmask)
  24794. +extern int sigsetmask (int __mask) __THROW __attribute_deprecated__;
  24795. /* Return currently selected signal mask. */
  24796. extern int siggetmask (void) __THROW __attribute_deprecated__;
  24797. @@ -228,22 +243,11 @@
  24798. #ifdef __USE_POSIX
  24799. -# ifdef __USE_POSIX199309
  24800. -/* We need `struct timespec' later on. */
  24801. -# define __need_timespec
  24802. -# include <time.h>
  24803. -
  24804. -/* Get the `siginfo_t' type plus the needed symbols. */
  24805. -# include <bits/siginfo.h>
  24806. -# endif
  24807. -
  24808. /* Clear all signals from SET. */
  24809. extern int sigemptyset (sigset_t *__set) __THROW __nonnull ((1));
  24810. -libc_hidden_proto(sigemptyset)
  24811. /* Set all signals in SET. */
  24812. extern int sigfillset (sigset_t *__set) __THROW __nonnull ((1));
  24813. -libc_hidden_proto(sigfillset)
  24814. /* Add SIGNO to SET. */
  24815. extern int sigaddset (sigset_t *__set, int __signo) __THROW __nonnull ((1));
  24816. @@ -254,20 +258,20 @@
  24817. libc_hidden_proto(sigdelset)
  24818. /* Return 1 if SIGNO is in SET, 0 if not. */
  24819. -extern int sigismember (__const sigset_t *__set, int __signo)
  24820. +extern int sigismember (const sigset_t *__set, int __signo)
  24821. __THROW __nonnull ((1));
  24822. # ifdef __USE_GNU
  24823. /* Return non-empty value is SET is not empty. */
  24824. -extern int sigisemptyset (__const sigset_t *__set) __THROW __nonnull ((1));
  24825. +extern int sigisemptyset (const sigset_t *__set) __THROW __nonnull ((1));
  24826. /* Build new signal set by combining the two inputs set using logical AND. */
  24827. -extern int sigandset (sigset_t *__set, __const sigset_t *__left,
  24828. - __const sigset_t *__right) __THROW __nonnull ((1, 2, 3));
  24829. +extern int sigandset (sigset_t *__set, const sigset_t *__left,
  24830. + const sigset_t *__right) __THROW __nonnull ((1, 2, 3));
  24831. /* Build new signal set by combining the two inputs set using logical OR. */
  24832. -extern int sigorset (sigset_t *__set, __const sigset_t *__left,
  24833. - __const sigset_t *__right) __THROW __nonnull ((1, 2, 3));
  24834. +extern int sigorset (sigset_t *__set, const sigset_t *__left,
  24835. + const sigset_t *__right) __THROW __nonnull ((1, 2, 3));
  24836. # endif /* GNU */
  24837. /* Get the system-specific definitions of `struct sigaction'
  24838. @@ -275,7 +279,7 @@
  24839. # include <bits/sigaction.h>
  24840. /* Get and/or change the set of blocked signals. */
  24841. -extern int sigprocmask (int __how, __const sigset_t *__restrict __set,
  24842. +extern int sigprocmask (int __how, const sigset_t *__restrict __set,
  24843. sigset_t *__restrict __oset) __THROW;
  24844. libc_hidden_proto(sigprocmask)
  24845. @@ -284,14 +288,50 @@
  24846. This function is a cancellation point and therefore not marked with
  24847. __THROW. */
  24848. -extern int sigsuspend (__const sigset_t *__set) __nonnull ((1));
  24849. +extern int sigsuspend (const sigset_t *__set) __nonnull ((1));
  24850. +#ifdef _LIBC
  24851. +extern __typeof(sigsuspend) __sigsuspend_nocancel attribute_hidden;
  24852. libc_hidden_proto(sigsuspend)
  24853. +#endif
  24854. /* Get and/or set the action for signal SIG. */
  24855. -extern int sigaction (int __sig, __const struct sigaction *__restrict __act,
  24856. +extern int sigaction (int __sig, const struct sigaction *__restrict __act,
  24857. struct sigaction *__restrict __oact) __THROW;
  24858. +#ifdef _LIBC
  24859. +# if 0 /* this is in headers */
  24860. +/* In uclibc, userspace struct sigaction is identical to
  24861. + * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
  24862. + * See sigaction.h
  24863. + */
  24864. +struct old_kernel_sigaction;
  24865. +extern int __syscall_sigaction(int, const struct old_kernel_sigaction *,
  24866. + struct old_kernel_sigaction *) attribute_hidden;
  24867. +# else /* this is how the function is built */
  24868. +extern __typeof(sigaction) __syscall_sigaction attribute_hidden;
  24869. +# endif
  24870. +# define __need_size_t
  24871. +# include <stddef.h>
  24872. +/* candidate for attribute_hidden, if NPTL would behave */
  24873. +extern int __syscall_rt_sigaction(int, const struct sigaction *,
  24874. + struct sigaction *, size_t)
  24875. +# ifndef __UCLIBC_HAS_THREADS_NATIVE__
  24876. + attribute_hidden
  24877. +# endif
  24878. + ;
  24879. +extern __typeof(sigaction) __libc_sigaction;
  24880. libc_hidden_proto(sigaction)
  24881. +# ifdef __mips__
  24882. +# define _KERNEL_NSIG_WORDS (_NSIG / _MIPS_SZLONG)
  24883. +typedef struct {
  24884. + unsigned long sig[_KERNEL_NSIG_WORDS];
  24885. +} kernel_sigset_t;
  24886. +# define __SYSCALL_SIGSET_T_SIZE (sizeof(kernel_sigset_t))
  24887. +# else
  24888. +# define __SYSCALL_SIGSET_T_SIZE (_NSIG / 8)
  24889. +# endif
  24890. +#endif
  24891. +
  24892. /* Put in SET all signals that are blocked and waiting to be delivered. */
  24893. extern int sigpending (sigset_t *__set) __THROW __nonnull ((1));
  24894. @@ -300,7 +340,7 @@
  24895. This function is a cancellation point and therefore not marked with
  24896. __THROW. */
  24897. -extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig)
  24898. +extern int sigwait (const sigset_t *__restrict __set, int *__restrict __sig)
  24899. __nonnull ((1, 2));
  24900. # if defined __USE_POSIX199309 && defined __UCLIBC_HAS_REALTIME__
  24901. @@ -308,30 +348,29 @@
  24902. This function is a cancellation point and therefore not marked with
  24903. __THROW. */
  24904. -extern int sigwaitinfo (__const sigset_t *__restrict __set,
  24905. +extern int sigwaitinfo (const sigset_t *__restrict __set,
  24906. siginfo_t *__restrict __info) __nonnull ((1));
  24907. #ifdef _LIBC
  24908. extern __typeof(sigwaitinfo) __sigwaitinfo attribute_hidden;
  24909. #endif
  24910. -libc_hidden_proto(sigwaitinfo)
  24911. /* Select any of pending signals from SET and place information in INFO.
  24912. Wait the time specified by TIMEOUT if no signal is pending.
  24913. This function is a cancellation point and therefore not marked with
  24914. __THROW. */
  24915. -extern int sigtimedwait (__const sigset_t *__restrict __set,
  24916. +extern int sigtimedwait (const sigset_t *__restrict __set,
  24917. siginfo_t *__restrict __info,
  24918. - __const struct timespec *__restrict __timeout)
  24919. + const struct timespec *__restrict __timeout)
  24920. __nonnull ((1));
  24921. #ifdef _LIBC
  24922. -extern __typeof(sigtimedwait) __sigtimedwait attribute_hidden;
  24923. -#endif
  24924. +extern __typeof(sigtimedwait) __sigtimedwait_nocancel attribute_hidden;
  24925. libc_hidden_proto(sigtimedwait)
  24926. +#endif
  24927. /* Send signal SIG to the process PID. Associate data in VAL with the
  24928. signal. */
  24929. -extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val)
  24930. +extern int sigqueue (__pid_t __pid, int __sig, const union sigval __val)
  24931. __THROW;
  24932. # endif /* Use POSIX 199306. */
  24933. @@ -343,9 +382,10 @@
  24934. /* Names of the signals. This variable exists only for compatibility.
  24935. Use `strsignal' instead (see <string.h>). */
  24936. # define _sys_siglist sys_siglist
  24937. -extern __const char *__const sys_siglist[_NSIG];
  24938. +extern const char *const sys_siglist[_NSIG];
  24939. # endif
  24940. +#ifndef __UCLIBC_STRICT_HEADERS__
  24941. /* Structure passed to `sigvec'. */
  24942. struct sigvec
  24943. {
  24944. @@ -360,27 +400,34 @@
  24945. # define SV_ONSTACK (1 << 0)/* Take the signal on the signal stack. */
  24946. # define SV_INTERRUPT (1 << 1)/* Do not restart system calls. */
  24947. # define SV_RESETHAND (1 << 2)/* Reset handler to SIG_DFL on receipt. */
  24948. +#endif
  24949. +#if 0
  24950. /* If VEC is non-NULL, set the handler for SIG to the `sv_handler' member
  24951. of VEC. The signals in `sv_mask' will be blocked while the handler runs.
  24952. If the SV_RESETHAND bit is set in `sv_flags', the handler for SIG will be
  24953. reset to SIG_DFL before `sv_handler' is entered. If OVEC is non-NULL,
  24954. it is filled in with the old information for SIG. */
  24955. -extern int sigvec (int __sig, __const struct sigvec *__vec,
  24956. +extern int sigvec (int __sig, const struct sigvec *__vec,
  24957. struct sigvec *__ovec) __THROW;
  24958. +#endif
  24959. /* Get machine-dependent `struct sigcontext' and signal subcodes. */
  24960. # include <bits/sigcontext.h>
  24961. +#if 0
  24962. /* Restore the state saved in SCP. */
  24963. extern int sigreturn (struct sigcontext *__scp) __THROW;
  24964. +#endif
  24965. #endif /* use BSD. */
  24966. #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
  24967. +# define __need_size_t
  24968. +# include <stddef.h>
  24969. # ifdef __UCLIBC_SUSV4_LEGACY__
  24970. /* If INTERRUPT is nonzero, make signal SIG interrupt system calls
  24971. @@ -406,7 +453,7 @@
  24972. /* Alternate signal handler stack interface.
  24973. This interface should always be preferred over `sigstack'. */
  24974. -extern int sigaltstack (__const struct sigaltstack *__restrict __ss,
  24975. +extern int sigaltstack (const struct sigaltstack *__restrict __ss,
  24976. struct sigaltstack *__restrict __oss) __THROW;
  24977. #endif /* use BSD or X/Open Unix. */
  24978. @@ -442,6 +489,13 @@
  24979. /* Return number of available real-time signal with lowest priority. */
  24980. extern int __libc_current_sigrtmax (void) __THROW;
  24981. +#ifdef _LIBC
  24982. +extern sigset_t _sigintr attribute_hidden;
  24983. +/* simplified version without parameter checking */
  24984. +# include <string.h>
  24985. +# undef __sigemptyset
  24986. +# define __sigemptyset(ss) (memset(ss, '\0', sizeof(sigset_t)), 0)
  24987. +#endif
  24988. #endif /* signal.h */
  24989. __END_DECLS
  24990. diff -Nur uClibc-0.9.33.2/include/spawn.h uClibc-git/include/spawn.h
  24991. --- uClibc-0.9.33.2/include/spawn.h 1970-01-01 01:00:00.000000000 +0100
  24992. +++ uClibc-git/include/spawn.h 2014-06-02 17:40:33.862711143 +0200
  24993. @@ -0,0 +1,289 @@
  24994. +/* Definitions for POSIX spawn interface.
  24995. + Copyright (C) 2000,2003,2004,2009,2011,2012 Free Software Foundation, Inc.
  24996. + This file is part of the GNU C Library.
  24997. +
  24998. + The GNU C Library is free software; you can redistribute it and/or
  24999. + modify it under the terms of the GNU Lesser General Public
  25000. + License as published by the Free Software Foundation; either
  25001. + version 2.1 of the License, or (at your option) any later version.
  25002. +
  25003. + The GNU C Library is distributed in the hope that it will be useful,
  25004. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  25005. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  25006. + Lesser General Public License for more details.
  25007. +
  25008. + You should have received a copy of the GNU Lesser General Public
  25009. + License along with the GNU C Library; if not, see
  25010. + <http://www.gnu.org/licenses/>. */
  25011. +
  25012. +#ifndef _SPAWN_H
  25013. +#define _SPAWN_H 1
  25014. +
  25015. +#include <features.h>
  25016. +#include <sched.h>
  25017. +#define __need_sigset_t
  25018. +#include <signal.h>
  25019. +#include <sys/types.h>
  25020. +
  25021. +/* For the tiny inlines (errno/free/memset). */
  25022. +#include <errno.h>
  25023. +#include <string.h>
  25024. +#include <stdlib.h>
  25025. +
  25026. +
  25027. +/* Data structure to contain attributes for thread creation. */
  25028. +typedef struct
  25029. +{
  25030. + short int __flags;
  25031. + pid_t __pgrp;
  25032. + sigset_t __sd;
  25033. + sigset_t __ss;
  25034. + struct sched_param __sp;
  25035. + int __policy;
  25036. + int __pad[16];
  25037. +} posix_spawnattr_t;
  25038. +
  25039. +
  25040. +/* Data structure to contain information about the actions to be
  25041. + performed in the new process with respect to file descriptors. */
  25042. +typedef struct
  25043. +{
  25044. + int __allocated;
  25045. + int __used;
  25046. + struct __spawn_action *__actions;
  25047. + int __pad[16];
  25048. +} posix_spawn_file_actions_t;
  25049. +
  25050. +
  25051. +/* Flags to be set in the `posix_spawnattr_t'. */
  25052. +#define POSIX_SPAWN_RESETIDS 0x01
  25053. +#define POSIX_SPAWN_SETPGROUP 0x02
  25054. +#define POSIX_SPAWN_SETSIGDEF 0x04
  25055. +#define POSIX_SPAWN_SETSIGMASK 0x08
  25056. +#define POSIX_SPAWN_SETSCHEDPARAM 0x10
  25057. +#define POSIX_SPAWN_SETSCHEDULER 0x20
  25058. +#ifdef __USE_GNU
  25059. +# define POSIX_SPAWN_USEVFORK 0x40
  25060. +#endif
  25061. +
  25062. +
  25063. +#define __POSIX_SPAWN_MASK (POSIX_SPAWN_RESETIDS \
  25064. + | POSIX_SPAWN_SETPGROUP \
  25065. + | POSIX_SPAWN_SETSIGDEF \
  25066. + | POSIX_SPAWN_SETSIGMASK \
  25067. + | POSIX_SPAWN_SETSCHEDPARAM \
  25068. + | POSIX_SPAWN_SETSCHEDULER \
  25069. + | POSIX_SPAWN_USEVFORK)
  25070. +
  25071. +__BEGIN_DECLS
  25072. +
  25073. +/* Spawn a new process executing PATH with the attributes describes in *ATTRP.
  25074. + Before running the process perform the actions described in FILE-ACTIONS.
  25075. +
  25076. + This function is a possible cancellation point and therefore not
  25077. + marked with __THROW. */
  25078. +extern int posix_spawn (pid_t *__restrict __pid,
  25079. + const char *__restrict __path,
  25080. + const posix_spawn_file_actions_t *__restrict
  25081. + __file_actions,
  25082. + const posix_spawnattr_t *__restrict __attrp,
  25083. + char *const __argv[__restrict_arr],
  25084. + char *const __envp[__restrict_arr]);
  25085. +
  25086. +/* Similar to `posix_spawn' but search for FILE in the PATH.
  25087. +
  25088. + This function is a possible cancellation point and therefore not
  25089. + marked with __THROW. */
  25090. +extern int posix_spawnp (pid_t *__pid, const char *__file,
  25091. + const posix_spawn_file_actions_t *__file_actions,
  25092. + const posix_spawnattr_t *__attrp,
  25093. + char *const __argv[], char *const __envp[]);
  25094. +
  25095. +
  25096. +/* Initialize data structure with attributes for `spawn' to default values. */
  25097. +static inline
  25098. +int posix_spawnattr_init (posix_spawnattr_t *__attr)
  25099. +{
  25100. + memset (__attr, 0, sizeof (*__attr));
  25101. + return 0;
  25102. +}
  25103. +
  25104. +/* Free resources associated with ATTR. */
  25105. +static inline
  25106. +int posix_spawnattr_destroy (posix_spawnattr_t *__attr)
  25107. +{
  25108. + return 0;
  25109. +}
  25110. +
  25111. +/* Store signal mask for signals with default handling from ATTR in
  25112. + SIGDEFAULT. */
  25113. +static inline
  25114. +int posix_spawnattr_getsigdefault (const posix_spawnattr_t *
  25115. + __restrict __attr,
  25116. + sigset_t *__restrict __sigdefault)
  25117. +{
  25118. + memcpy (__sigdefault, &__attr->__sd, sizeof (sigset_t));
  25119. + return 0;
  25120. +}
  25121. +
  25122. +/* Set signal mask for signals with default handling in ATTR to SIGDEFAULT. */
  25123. +static inline
  25124. +int posix_spawnattr_setsigdefault (posix_spawnattr_t *__restrict __attr,
  25125. + const sigset_t *__restrict
  25126. + __sigdefault)
  25127. +{
  25128. + memcpy (&__attr->__sd, __sigdefault, sizeof (sigset_t));
  25129. + return 0;
  25130. +}
  25131. +
  25132. +/* Store signal mask for the new process from ATTR in SIGMASK. */
  25133. +static inline
  25134. +int posix_spawnattr_getsigmask (const posix_spawnattr_t *__restrict
  25135. + __attr,
  25136. + sigset_t *__restrict __sigmask)
  25137. +{
  25138. + memcpy (__sigmask, &__attr->__ss, sizeof (sigset_t));
  25139. + return 0;
  25140. +}
  25141. +
  25142. +/* Set signal mask for the new process in ATTR to SIGMASK. */
  25143. +static inline
  25144. +int posix_spawnattr_setsigmask (posix_spawnattr_t *__restrict __attr,
  25145. + const sigset_t *__restrict __sigmask)
  25146. +{
  25147. + memcpy (&__attr->__ss, __sigmask, sizeof (sigset_t));
  25148. + return 0;
  25149. +}
  25150. +
  25151. +/* Get flag word from the attribute structure. */
  25152. +static inline
  25153. +int posix_spawnattr_getflags (const posix_spawnattr_t *__restrict
  25154. + __attr,
  25155. + short int *__restrict __flags)
  25156. +{
  25157. + *__flags = __attr->__flags;
  25158. + return 0;
  25159. +}
  25160. +
  25161. +/* Store flags in the attribute structure. */
  25162. +static inline
  25163. +int posix_spawnattr_setflags (posix_spawnattr_t *_attr,
  25164. + short int __flags)
  25165. +{
  25166. + /* Check no invalid bits are set. */
  25167. + if (__flags & ~__POSIX_SPAWN_MASK)
  25168. + return EINVAL;
  25169. +
  25170. + _attr->__flags = __flags;
  25171. + return 0;
  25172. +}
  25173. +
  25174. +/* Get process group ID from the attribute structure. */
  25175. +static inline
  25176. +int posix_spawnattr_getpgroup (const posix_spawnattr_t *__restrict
  25177. + __attr, pid_t *__restrict __pgroup)
  25178. +{
  25179. + *__pgroup = __attr->__pgrp;
  25180. + return 0;
  25181. +}
  25182. +
  25183. +/* Store process group ID in the attribute structure. */
  25184. +static inline
  25185. +int posix_spawnattr_setpgroup (posix_spawnattr_t *__attr,
  25186. + pid_t __pgroup)
  25187. +{
  25188. + __attr->__pgrp = __pgroup;
  25189. + return 0;
  25190. +}
  25191. +
  25192. +/* Get scheduling policy from the attribute structure. */
  25193. +static inline
  25194. +int posix_spawnattr_getschedpolicy (const posix_spawnattr_t *
  25195. + __restrict __attr,
  25196. + int *__restrict __schedpolicy)
  25197. +{
  25198. + *__schedpolicy = __attr->__policy;
  25199. + return 0;
  25200. +}
  25201. +
  25202. +/* Store scheduling policy in the attribute structure. */
  25203. +static inline
  25204. +int posix_spawnattr_setschedpolicy (posix_spawnattr_t *__attr,
  25205. + int __schedpolicy)
  25206. +{
  25207. + switch (__schedpolicy) {
  25208. + case SCHED_OTHER:
  25209. + case SCHED_FIFO:
  25210. + case SCHED_RR:
  25211. + break;
  25212. + default:
  25213. + return EINVAL;
  25214. + }
  25215. +
  25216. + __attr->__policy = __schedpolicy;
  25217. + return 0;
  25218. +}
  25219. +
  25220. +/* Get scheduling parameters from the attribute structure. */
  25221. +static inline
  25222. +int posix_spawnattr_getschedparam (const posix_spawnattr_t *
  25223. + __restrict __attr,
  25224. + struct sched_param *__restrict
  25225. + __schedparam)
  25226. +{
  25227. + memcpy (__schedparam, &__attr->__sp, sizeof (__attr->__sp));
  25228. + return 0;
  25229. +}
  25230. +
  25231. +/* Store scheduling parameters in the attribute structure. */
  25232. +static inline
  25233. +int posix_spawnattr_setschedparam (posix_spawnattr_t *__restrict __attr,
  25234. + const struct sched_param *
  25235. + __restrict __schedparam)
  25236. +{
  25237. + __attr->__sp = *__schedparam;
  25238. + return 0;
  25239. +}
  25240. +
  25241. +/* Initialize data structure for file attribute for `spawn' call. */
  25242. +static inline
  25243. +int posix_spawn_file_actions_init (posix_spawn_file_actions_t *
  25244. + __file_actions)
  25245. +{
  25246. + memset (__file_actions, 0, sizeof (*__file_actions));
  25247. + return 0;
  25248. +}
  25249. +
  25250. +/* Free resources associated with FILE-ACTIONS. */
  25251. +static inline
  25252. +int posix_spawn_file_actions_destroy (posix_spawn_file_actions_t *
  25253. + __file_actions)
  25254. +{
  25255. + free (__file_actions->__actions);
  25256. + return 0;
  25257. +}
  25258. +
  25259. +/* Add an action to FILE-ACTIONS which tells the implementation to call
  25260. + `open' for the given file during the `spawn' call. */
  25261. +extern int posix_spawn_file_actions_addopen (posix_spawn_file_actions_t *
  25262. + __restrict __file_actions,
  25263. + int __fd,
  25264. + const char *__restrict __path,
  25265. + int __oflag, mode_t __mode)
  25266. + __THROW;
  25267. +
  25268. +/* Add an action to FILE-ACTIONS which tells the implementation to call
  25269. + `close' for the given file descriptor during the `spawn' call. */
  25270. +extern int posix_spawn_file_actions_addclose (posix_spawn_file_actions_t *
  25271. + __file_actions, int __fd)
  25272. + __THROW;
  25273. +
  25274. +/* Add an action to FILE-ACTIONS which tells the implementation to call
  25275. + `dup2' for the given file descriptors during the `spawn' call. */
  25276. +extern int posix_spawn_file_actions_adddup2 (posix_spawn_file_actions_t *
  25277. + __file_actions,
  25278. + int __fd, int __newfd) __THROW;
  25279. +
  25280. +__END_DECLS
  25281. +
  25282. +#endif /* spawn.h */
  25283. diff -Nur uClibc-0.9.33.2/include/stdint.h uClibc-git/include/stdint.h
  25284. --- uClibc-0.9.33.2/include/stdint.h 2012-05-15 09:20:09.000000000 +0200
  25285. +++ uClibc-git/include/stdint.h 2014-06-02 17:40:33.862711143 +0200
  25286. @@ -12,9 +12,8 @@
  25287. Lesser General Public License for more details.
  25288. You should have received a copy of the GNU Lesser General Public
  25289. - License along with the GNU C Library; if not, write to the Free
  25290. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  25291. - 02111-1307 USA. */
  25292. + License along with the GNU C Library; if not, see
  25293. + <http://www.gnu.org/licenses/>. */
  25294. /*
  25295. * ISO C99: 7.18 Integer types <stdint.h>
  25296. diff -Nur uClibc-0.9.33.2/include/stdio_ext.h uClibc-git/include/stdio_ext.h
  25297. --- uClibc-0.9.33.2/include/stdio_ext.h 2012-05-15 09:20:09.000000000 +0200
  25298. +++ uClibc-git/include/stdio_ext.h 2014-06-02 17:40:33.862711143 +0200
  25299. @@ -13,9 +13,8 @@
  25300. Lesser General Public License for more details.
  25301. You should have received a copy of the GNU Lesser General Public
  25302. - License along with the GNU C Library; if not, write to the Free
  25303. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  25304. - 02111-1307 USA. */
  25305. + License along with the GNU C Library; if not, see
  25306. + <http://www.gnu.org/licenses/>. */
  25307. /* This header contains the same definitions as the header of the same name
  25308. on Sun's Solaris OS. */
  25309. diff -Nur uClibc-0.9.33.2/include/stdio.h uClibc-git/include/stdio.h
  25310. --- uClibc-0.9.33.2/include/stdio.h 2012-05-15 09:20:09.000000000 +0200
  25311. +++ uClibc-git/include/stdio.h 2014-06-02 17:40:33.862711143 +0200
  25312. @@ -13,9 +13,8 @@
  25313. Lesser General Public License for more details.
  25314. You should have received a copy of the GNU Lesser General Public
  25315. - License along with the GNU C Library; if not, write to the Free
  25316. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  25317. - 02111-1307 USA. */
  25318. + License along with the GNU C Library; if not, see
  25319. + <http://www.gnu.org/licenses/>. */
  25320. /*
  25321. * ISO C99 Standard: 7.19 Input/output <stdio.h>
  25322. @@ -142,16 +141,17 @@
  25323. __BEGIN_NAMESPACE_STD
  25324. /* Remove file FILENAME. */
  25325. -extern int remove (__const char *__filename) __THROW;
  25326. +extern int remove (const char *__filename) __THROW;
  25327. libc_hidden_proto(remove)
  25328. /* Rename file OLD to NEW. */
  25329. -extern int rename (__const char *__old, __const char *__new) __THROW;
  25330. +extern int rename (const char *__old, const char *__new) __THROW;
  25331. __END_NAMESPACE_STD
  25332. #ifdef __USE_ATFILE
  25333. /* Rename file OLD relative to OLDFD to NEW relative to NEWFD. */
  25334. -extern int renameat (int __oldfd, __const char *__old, int __newfd,
  25335. - __const char *__new) __THROW;
  25336. +extern int renameat (int __oldfd, const char *__old, int __newfd,
  25337. + const char *__new) __THROW;
  25338. +libc_hidden_proto(renameat)
  25339. #endif
  25340. __BEGIN_NAMESPACE_STD
  25341. @@ -194,7 +194,7 @@
  25342. If not and if DIR is not NULL, that value is checked. If that fails,
  25343. P_tmpdir is tried and finally "/tmp". The storage for the filename
  25344. is allocated by `malloc'. */
  25345. -extern char *tempnam (__const char *__dir, __const char *__pfx)
  25346. +extern char *tempnam (const char *__dir, const char *__pfx)
  25347. __THROW __attribute_malloc__ __wur;
  25348. #endif
  25349. @@ -242,23 +242,23 @@
  25350. This function is a possible cancellation point and therefore not
  25351. marked with __THROW. */
  25352. -extern FILE *fopen (__const char *__restrict __filename,
  25353. - __const char *__restrict __modes) __wur;
  25354. +extern FILE *fopen (const char *__restrict __filename,
  25355. + const char *__restrict __modes) __wur;
  25356. libc_hidden_proto(fopen)
  25357. /* Open a file, replacing an existing stream with it.
  25358. This function is a possible cancellation point and therefore not
  25359. marked with __THROW. */
  25360. -extern FILE *freopen (__const char *__restrict __filename,
  25361. - __const char *__restrict __modes,
  25362. +extern FILE *freopen (const char *__restrict __filename,
  25363. + const char *__restrict __modes,
  25364. FILE *__restrict __stream) __wur;
  25365. #else
  25366. # ifdef __REDIRECT
  25367. -extern FILE *__REDIRECT (fopen, (__const char *__restrict __filename,
  25368. - __const char *__restrict __modes), fopen64)
  25369. +extern FILE *__REDIRECT (fopen, (const char *__restrict __filename,
  25370. + const char *__restrict __modes), fopen64)
  25371. __wur;
  25372. -extern FILE *__REDIRECT (freopen, (__const char *__restrict __filename,
  25373. - __const char *__restrict __modes,
  25374. +extern FILE *__REDIRECT (freopen, (const char *__restrict __filename,
  25375. + const char *__restrict __modes,
  25376. FILE *__restrict __stream), freopen64)
  25377. __wur;
  25378. # else
  25379. @@ -268,38 +268,39 @@
  25380. #endif
  25381. __END_NAMESPACE_STD
  25382. #ifdef __USE_LARGEFILE64
  25383. -extern FILE *fopen64 (__const char *__restrict __filename,
  25384. - __const char *__restrict __modes) __wur;
  25385. +extern FILE *fopen64 (const char *__restrict __filename,
  25386. + const char *__restrict __modes) __wur;
  25387. libc_hidden_proto(fopen64)
  25388. -extern FILE *freopen64 (__const char *__restrict __filename,
  25389. - __const char *__restrict __modes,
  25390. +extern FILE *freopen64 (const char *__restrict __filename,
  25391. + const char *__restrict __modes,
  25392. FILE *__restrict __stream) __wur;
  25393. #endif
  25394. #ifdef __USE_POSIX
  25395. /* Create a new stream that refers to an existing system file descriptor. */
  25396. -extern FILE *fdopen (int __fd, __const char *__modes) __THROW __wur;
  25397. +extern FILE *fdopen (int __fd, const char *__modes) __THROW __wur;
  25398. libc_hidden_proto(fdopen)
  25399. #endif
  25400. -#ifdef __USE_GNU
  25401. #ifdef __UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__
  25402. +#ifdef __USE_GNU
  25403. /* Create a new stream that refers to the given magic cookie,
  25404. and uses the given functions for input and output. */
  25405. extern FILE *fopencookie (void *__restrict __magic_cookie,
  25406. - __const char *__restrict __modes,
  25407. + const char *__restrict __modes,
  25408. _IO_cookie_io_functions_t __io_funcs) __THROW __wur;
  25409. libc_hidden_proto(fopencookie)
  25410. +#endif
  25411. +#ifdef __USE_XOPEN2K8
  25412. /* Create a new stream that refers to a memory buffer. */
  25413. -extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
  25414. +extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
  25415. __THROW __wur;
  25416. /* Open a stream that writes into a malloc'd buffer that is expanded as
  25417. necessary. *BUFLOC and *SIZELOC are updated with the buffer's location
  25418. and the number of characters written on fflush or fclose. */
  25419. -extern FILE *open_memstream (char **__restrict __bufloc,
  25420. - size_t *__restrict __sizeloc) __THROW __wur;
  25421. +extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __THROW __wur;
  25422. libc_hidden_proto(open_memstream)
  25423. #endif
  25424. #endif
  25425. @@ -334,17 +335,17 @@
  25426. This function is a possible cancellation point and therefore not
  25427. marked with __THROW. */
  25428. extern int fprintf (FILE *__restrict __stream,
  25429. - __const char *__restrict __format, ...);
  25430. + const char *__restrict __format, ...);
  25431. libc_hidden_proto(fprintf)
  25432. /* Write formatted output to stdout.
  25433. This function is a possible cancellation point and therefore not
  25434. marked with __THROW. */
  25435. -extern int printf (__const char *__restrict __format, ...);
  25436. +extern int printf (const char *__restrict __format, ...);
  25437. libc_hidden_proto(printf)
  25438. /* Write formatted output to S. */
  25439. extern int sprintf (char *__restrict __s,
  25440. - __const char *__restrict __format, ...)
  25441. + const char *__restrict __format, ...)
  25442. __THROW __attribute__ ((__format__ (__printf__, 2, 3)));
  25443. libc_hidden_proto(sprintf)
  25444. @@ -352,16 +353,16 @@
  25445. This function is a possible cancellation point and therefore not
  25446. marked with __THROW. */
  25447. -extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
  25448. +extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
  25449. __gnuc_va_list __arg);
  25450. libc_hidden_proto(vfprintf)
  25451. /* Write formatted output to stdout from argument list ARG.
  25452. This function is a possible cancellation point and therefore not
  25453. marked with __THROW. */
  25454. -extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
  25455. +extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
  25456. /* Write formatted output to S from argument list ARG. */
  25457. -extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
  25458. +extern int vsprintf (char *__restrict __s, const char *__restrict __format,
  25459. __gnuc_va_list __arg)
  25460. __THROW __attribute__ ((__format__ (__printf__, 2, 0)));
  25461. __END_NAMESPACE_STD
  25462. @@ -370,12 +371,12 @@
  25463. __BEGIN_NAMESPACE_C99
  25464. /* Maximum chars of output to write in MAXLEN. */
  25465. extern int snprintf (char *__restrict __s, size_t __maxlen,
  25466. - __const char *__restrict __format, ...)
  25467. + const char *__restrict __format, ...)
  25468. __THROW __attribute__ ((__format__ (__printf__, 3, 4)));
  25469. libc_hidden_proto(snprintf)
  25470. extern int vsnprintf (char *__restrict __s, size_t __maxlen,
  25471. - __const char *__restrict __format, __gnuc_va_list __arg)
  25472. + const char *__restrict __format, __gnuc_va_list __arg)
  25473. __THROW __attribute__ ((__format__ (__printf__, 3, 0)));
  25474. libc_hidden_proto(vsnprintf)
  25475. __END_NAMESPACE_C99
  25476. @@ -384,31 +385,33 @@
  25477. #ifdef __USE_GNU
  25478. /* Write formatted output to a string dynamically allocated with `malloc'.
  25479. Store the address of the string in *PTR. */
  25480. -extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
  25481. +extern int vasprintf (char **__restrict __ptr, const char *__restrict __f,
  25482. __gnuc_va_list __arg)
  25483. __THROW __attribute__ ((__format__ (__printf__, 2, 0))) __wur;
  25484. libc_hidden_proto(vasprintf)
  25485. #if 0 /* uClibc: disabled */
  25486. extern int __asprintf (char **__restrict __ptr,
  25487. - __const char *__restrict __fmt, ...)
  25488. + const char *__restrict __fmt, ...)
  25489. __THROW __attribute__ ((__format__ (__printf__, 2, 3))) __wur;
  25490. #endif
  25491. extern int asprintf (char **__restrict __ptr,
  25492. - __const char *__restrict __fmt, ...)
  25493. + const char *__restrict __fmt, ...)
  25494. __THROW __attribute__ ((__format__ (__printf__, 2, 3))) __wur;
  25495. libc_hidden_proto(asprintf)
  25496. +#endif
  25497. +#ifdef __USE_XOPEN2K8
  25498. /* Write formatted output to a file descriptor.
  25499. These functions are not part of POSIX and therefore no official
  25500. cancellation point. But due to similarity with an POSIX interface
  25501. or due to the implementation they are cancellation points and
  25502. therefore not marked with __THROW. */
  25503. -extern int vdprintf (int __fd, __const char *__restrict __fmt,
  25504. +extern int vdprintf (int __fd, const char *__restrict __fmt,
  25505. __gnuc_va_list __arg)
  25506. __attribute__ ((__format__ (__printf__, 2, 0)));
  25507. libc_hidden_proto(vdprintf)
  25508. -extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
  25509. +extern int dprintf (int __fd, const char *__restrict __fmt, ...)
  25510. __attribute__ ((__format__ (__printf__, 2, 3)));
  25511. #endif
  25512. @@ -419,18 +422,18 @@
  25513. This function is a possible cancellation point and therefore not
  25514. marked with __THROW. */
  25515. extern int fscanf (FILE *__restrict __stream,
  25516. - __const char *__restrict __format, ...)
  25517. + const char *__restrict __format, ...)
  25518. __attribute__ ((__format__ (__scanf__, 2, 3))) __wur;
  25519. libc_hidden_proto(fscanf)
  25520. /* Read formatted input from stdin.
  25521. This function is a possible cancellation point and therefore not
  25522. marked with __THROW. */
  25523. -extern int scanf (__const char *__restrict __format, ...)
  25524. +extern int scanf (const char *__restrict __format, ...)
  25525. __attribute__ ((__format__ (__scanf__, 1, 2))) __wur;
  25526. /* Read formatted input from S. */
  25527. -extern int sscanf (__const char *__restrict __s,
  25528. - __const char *__restrict __format, ...)
  25529. +extern int sscanf (const char *__restrict __s,
  25530. + const char *__restrict __format, ...)
  25531. __THROW __attribute__ ((__format__ (__scanf__, 2, 3)));
  25532. libc_hidden_proto(sscanf)
  25533. __END_NAMESPACE_STD
  25534. @@ -441,7 +444,7 @@
  25535. This function is a possible cancellation point and therefore not
  25536. marked with __THROW. */
  25537. -extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
  25538. +extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
  25539. __gnuc_va_list __arg)
  25540. __attribute__ ((__format__ (__scanf__, 2, 0))) __wur;
  25541. libc_hidden_proto(vfscanf)
  25542. @@ -450,12 +453,12 @@
  25543. This function is a possible cancellation point and therefore not
  25544. marked with __THROW. */
  25545. -extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
  25546. +extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
  25547. __attribute__ ((__format__ (__scanf__, 1, 0))) __wur;
  25548. /* Read formatted input from S into argument list ARG. */
  25549. -extern int vsscanf (__const char *__restrict __s,
  25550. - __const char *__restrict __format, __gnuc_va_list __arg)
  25551. +extern int vsscanf (const char *__restrict __s,
  25552. + const char *__restrict __format, __gnuc_va_list __arg)
  25553. __THROW __attribute__ ((__format__ (__scanf__, 2, 0)));
  25554. libc_hidden_proto(vsscanf)
  25555. __END_NAMESPACE_C99
  25556. @@ -491,9 +494,6 @@
  25557. libc_hidden_proto(getc_unlocked)
  25558. extern int getchar_unlocked (void);
  25559. libc_hidden_proto(getchar_unlocked)
  25560. -
  25561. -/* SUSv3 allows getc_unlocked to be a macro */
  25562. -#define getc_unlocked(_fp) __GETC_UNLOCKED(_fp)
  25563. #endif /* Use POSIX or MISC. */
  25564. #ifdef __USE_MISC
  25565. @@ -519,7 +519,6 @@
  25566. extern int fputc (int __c, FILE *__stream);
  25567. libc_hidden_proto(fputc)
  25568. extern int putc (int __c, FILE *__stream);
  25569. -libc_hidden_proto(putc)
  25570. /* Write a character to stdout.
  25571. @@ -540,7 +539,6 @@
  25572. or due to the implementation it is a cancellation point and
  25573. therefore not marked with __THROW. */
  25574. extern int fputc_unlocked (int __c, FILE *__stream);
  25575. -libc_hidden_proto(fputc_unlocked)
  25576. #endif /* Use MISC. */
  25577. #if defined __USE_POSIX || defined __USE_MISC
  25578. @@ -549,11 +547,7 @@
  25579. These functions are possible cancellation points and therefore not
  25580. marked with __THROW. */
  25581. extern int putc_unlocked (int __c, FILE *__stream);
  25582. -libc_hidden_proto(putc_unlocked)
  25583. extern int putchar_unlocked (int __c);
  25584. -
  25585. -/* SUSv3 allows putc_unlocked to be a macro */
  25586. -#define putc_unlocked(_ch, _fp) __PUTC_UNLOCKED(_ch, _fp)
  25587. #endif /* Use POSIX or MISC. */
  25588. @@ -597,7 +591,7 @@
  25589. #endif
  25590. -#ifdef __USE_GNU
  25591. +#ifdef __USE_XOPEN2K8
  25592. /* Read up to (and including) a DELIMITER from STREAM into *LINEPTR
  25593. (and null-terminate it). *LINEPTR is a pointer returned from malloc (or
  25594. NULL), pointing to *N characters of space. It is realloc'd as
  25595. @@ -636,14 +630,14 @@
  25596. This function is a possible cancellation points and therefore not
  25597. marked with __THROW. */
  25598. -extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
  25599. +extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
  25600. libc_hidden_proto(fputs)
  25601. /* Write a string, followed by a newline, to stdout.
  25602. This function is a possible cancellation points and therefore not
  25603. marked with __THROW. */
  25604. -extern int puts (__const char *__s);
  25605. +extern int puts (const char *__s);
  25606. /* Push a character back onto the input buffer of STREAM.
  25607. @@ -665,7 +659,7 @@
  25608. This function is a possible cancellation points and therefore not
  25609. marked with __THROW. */
  25610. -extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
  25611. +extern size_t fwrite (const void *__restrict __ptr, size_t __size,
  25612. size_t __n, FILE *__restrict __s) __wur;
  25613. libc_hidden_proto(fwrite)
  25614. __END_NAMESPACE_STD
  25615. @@ -677,7 +671,7 @@
  25616. cancellation point. But due to similarity with an POSIX interface
  25617. or due to the implementation it is a cancellation point and
  25618. therefore not marked with __THROW. */
  25619. -extern int fputs_unlocked (__const char *__restrict __s,
  25620. +extern int fputs_unlocked (const char *__restrict __s,
  25621. FILE *__restrict __stream);
  25622. libc_hidden_proto(fputs_unlocked)
  25623. #endif
  25624. @@ -692,7 +686,7 @@
  25625. extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
  25626. size_t __n, FILE *__restrict __stream) __wur;
  25627. libc_hidden_proto(fread_unlocked)
  25628. -extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
  25629. +extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
  25630. size_t __n, FILE *__restrict __stream) __wur;
  25631. libc_hidden_proto(fwrite_unlocked)
  25632. #endif
  25633. @@ -760,13 +754,13 @@
  25634. This function is a possible cancellation point and therefore not
  25635. marked with __THROW. */
  25636. -extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
  25637. +extern int fsetpos (FILE *__stream, const fpos_t *__pos);
  25638. #else
  25639. # ifdef __REDIRECT
  25640. extern int __REDIRECT (fgetpos, (FILE *__restrict __stream,
  25641. fpos_t *__restrict __pos), fgetpos64);
  25642. extern int __REDIRECT (fsetpos,
  25643. - (FILE *__stream, __const fpos_t *__pos), fsetpos64);
  25644. + (FILE *__stream, const fpos_t *__pos), fsetpos64);
  25645. # else
  25646. # define fgetpos fgetpos64
  25647. # define fsetpos fsetpos64
  25648. @@ -780,7 +774,7 @@
  25649. extern __off64_t ftello64 (FILE *__stream) __wur;
  25650. libc_hidden_proto(ftello64)
  25651. extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
  25652. -extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
  25653. +extern int fsetpos64 (FILE *__stream, const fpos64_t *__pos);
  25654. #endif
  25655. __BEGIN_NAMESPACE_STD
  25656. @@ -805,7 +799,7 @@
  25657. This function is a possible cancellation point and therefore not
  25658. marked with __THROW. */
  25659. -extern void perror (__const char *__s);
  25660. +extern void perror (const char *__s);
  25661. libc_hidden_proto(perror)
  25662. __END_NAMESPACE_STD
  25663. @@ -814,7 +808,7 @@
  25664. function provides all the needed functionality. */
  25665. #ifdef __USE_BSD
  25666. extern int sys_nerr;
  25667. -extern __const char *__const sys_errlist[];
  25668. +extern const char *const sys_errlist[];
  25669. #endif
  25670. #endif /* __UCLIBC_HAS_SYS_ERRLIST__ */
  25671. @@ -838,7 +832,7 @@
  25672. This function is a possible cancellation point and therefore not
  25673. marked with __THROW. */
  25674. -extern FILE *popen (__const char *__command, __const char *__modes) __wur;
  25675. +extern FILE *popen (const char *__command, const char *__modes) __wur;
  25676. /* Close a stream opened by popen and return the status of its child.
  25677. @@ -860,18 +854,19 @@
  25678. #endif /* Use X/Open, but not issue 6. */
  25679. -#if 0 /* def __USE_GNU uClibc note: not supported */
  25680. +#if defined __USE_GNU && defined __UCLIBC_HAS_OBSTACK__
  25681. struct obstack; /* See <obstack.h>. */
  25682. /* Write formatted output to an obstack. */
  25683. extern int obstack_printf (struct obstack *__restrict __obstack,
  25684. - __const char *__restrict __format, ...)
  25685. + const char *__restrict __format, ...)
  25686. __THROW __attribute__ ((__format__ (__printf__, 2, 3)));
  25687. extern int obstack_vprintf (struct obstack *__restrict __obstack,
  25688. - __const char *__restrict __format,
  25689. + const char *__restrict __format,
  25690. __gnuc_va_list __args)
  25691. __THROW __attribute__ ((__format__ (__printf__, 2, 0)));
  25692. -#endif /* Use GNU. */
  25693. +libc_hidden_proto(obstack_vprintf)
  25694. +#endif /* USE_GNU && UCLIBC_HAS_OBSTACK. */
  25695. #if defined __USE_POSIX || defined __USE_MISC
  25696. @@ -893,27 +888,31 @@
  25697. declared here which do not belong into this header. But we have to
  25698. follow. In GNU mode we don't do this nonsense. */
  25699. # define __need_getopt
  25700. +/* keep this on uClibc in bits/, we need it when GNU_GETOPT is disabled */
  25701. # include <bits/getopt.h>
  25702. #endif /* X/Open, but not issue 6 and not for GNU. */
  25703. /* If we are compiling with optimizing read this file. It contains
  25704. several optimizing inline functions and macros. */
  25705. +
  25706. +#ifdef __UCLIBC__
  25707. +
  25708. #define fgetc(_fp) __FGETC(_fp)
  25709. #define fputc(_ch, _fp) __FPUTC(_ch, _fp)
  25710. +#if defined __USE_POSIX || defined __USE_MISC
  25711. +/* SUSv3 allows getc_unlocked to be a macro */
  25712. +#define getc_unlocked(_fp) __GETC_UNLOCKED(_fp)
  25713. +/* SUSv3 allows putc_unlocked to be a macro */
  25714. +#define putc_unlocked(_ch, _fp) __PUTC_UNLOCKED(_ch, _fp)
  25715. +#endif
  25716. +
  25717. #ifdef __USE_MISC
  25718. #define fgetc_unlocked(_fp) __FGETC_UNLOCKED(_fp)
  25719. #define fputc_unlocked(_ch, _fp) __FPUTC_UNLOCKED(_ch, _fp)
  25720. #endif
  25721. -#ifndef __STDIO_GETC_MACRO
  25722. -#define __stdin stdin
  25723. -#endif
  25724. #define getchar() __GETC(__stdin)
  25725. -
  25726. -#ifndef __STDIO_PUTC_MACRO
  25727. -#define __stdout stdout
  25728. -#endif
  25729. #define putchar(_ch) __PUTC((_ch), __stdout)
  25730. #if defined __USE_POSIX || defined __USE_MISC
  25731. @@ -932,6 +931,8 @@
  25732. #define ferror_unlocked(_fp) __FERROR_UNLOCKED(_fp)
  25733. #endif
  25734. +#endif
  25735. +
  25736. __END_DECLS
  25737. #endif /* <stdio.h> included. */
  25738. diff -Nur uClibc-0.9.33.2/include/stdlib.h uClibc-git/include/stdlib.h
  25739. --- uClibc-0.9.33.2/include/stdlib.h 2012-05-15 09:20:09.000000000 +0200
  25740. +++ uClibc-git/include/stdlib.h 2014-06-02 17:40:33.866711166 +0200
  25741. @@ -12,9 +12,8 @@
  25742. Lesser General Public License for more details.
  25743. You should have received a copy of the GNU Lesser General Public
  25744. - License along with the GNU C Library; if not, write to the Free
  25745. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  25746. - 02111-1307 USA. */
  25747. + License along with the GNU C Library; if not, see
  25748. + <http://www.gnu.org/licenses/>. */
  25749. /*
  25750. * ISO C99 Standard: 7.20 General utilities <stdlib.h>
  25751. @@ -155,22 +154,22 @@
  25752. __BEGIN_NAMESPACE_STD
  25753. #ifdef __UCLIBC_HAS_FLOATS__
  25754. /* Convert a string to a floating-point number. */
  25755. -extern double atof (__const char *__nptr)
  25756. +extern double atof (const char *__nptr)
  25757. __THROW __attribute_pure__ __nonnull ((1)) __wur;
  25758. #endif /* __UCLIBC_HAS_FLOATS__ */
  25759. /* Convert a string to an integer. */
  25760. -extern int atoi (__const char *__nptr)
  25761. +extern int atoi (const char *__nptr)
  25762. __THROW __attribute_pure__ __nonnull ((1)) __wur;
  25763. libc_hidden_proto(atoi)
  25764. /* Convert a string to a long integer. */
  25765. -extern long int atol (__const char *__nptr)
  25766. +extern long int atol (const char *__nptr)
  25767. __THROW __attribute_pure__ __nonnull ((1)) __wur;
  25768. __END_NAMESPACE_STD
  25769. #if defined __USE_ISOC99 || defined __USE_MISC
  25770. __BEGIN_NAMESPACE_C99
  25771. /* Convert a string to a long long integer. */
  25772. -__extension__ extern long long int atoll (__const char *__nptr)
  25773. +__extension__ extern long long int atoll (const char *__nptr)
  25774. __THROW __attribute_pure__ __nonnull ((1)) __wur;
  25775. __END_NAMESPACE_C99
  25776. #endif
  25777. @@ -178,7 +177,7 @@
  25778. #ifdef __UCLIBC_HAS_FLOATS__
  25779. __BEGIN_NAMESPACE_STD
  25780. /* Convert a string to a floating-point number. */
  25781. -extern double strtod (__const char *__restrict __nptr,
  25782. +extern double strtod (const char *__restrict __nptr,
  25783. char **__restrict __endptr)
  25784. __THROW __nonnull ((1)) __wur;
  25785. libc_hidden_proto(strtod)
  25786. @@ -187,10 +186,10 @@
  25787. #ifdef __USE_ISOC99
  25788. __BEGIN_NAMESPACE_C99
  25789. /* Likewise for `float' and `long double' sizes of floating-point numbers. */
  25790. -extern float strtof (__const char *__restrict __nptr,
  25791. +extern float strtof (const char *__restrict __nptr,
  25792. char **__restrict __endptr) __THROW __nonnull ((1)) __wur;
  25793. -extern long double strtold (__const char *__restrict __nptr,
  25794. +extern long double strtold (const char *__restrict __nptr,
  25795. char **__restrict __endptr)
  25796. __THROW __nonnull ((1)) __wur;
  25797. __END_NAMESPACE_C99
  25798. @@ -199,12 +198,12 @@
  25799. __BEGIN_NAMESPACE_STD
  25800. /* Convert a string to a long integer. */
  25801. -extern long int strtol (__const char *__restrict __nptr,
  25802. +extern long int strtol (const char *__restrict __nptr,
  25803. char **__restrict __endptr, int __base)
  25804. __THROW __nonnull ((1)) __wur;
  25805. libc_hidden_proto(strtol)
  25806. /* Convert a string to an unsigned long integer. */
  25807. -extern unsigned long int strtoul (__const char *__restrict __nptr,
  25808. +extern unsigned long int strtoul (const char *__restrict __nptr,
  25809. char **__restrict __endptr, int __base)
  25810. __THROW __nonnull ((1)) __wur;
  25811. libc_hidden_proto(strtoul)
  25812. @@ -215,12 +214,12 @@
  25813. /* Convert a string to a quadword integer. */
  25814. __extension__
  25815. -extern quad_t strtoq (__const char *__restrict __nptr,
  25816. +extern quad_t strtoq (const char *__restrict __nptr,
  25817. char **__restrict __endptr, int __base)
  25818. __THROW __nonnull ((1)) __wur;
  25819. /* Convert a string to an unsigned quadword integer. */
  25820. __extension__
  25821. -extern u_quad_t strtouq (__const char *__restrict __nptr,
  25822. +extern u_quad_t strtouq (const char *__restrict __nptr,
  25823. char **__restrict __endptr, int __base)
  25824. __THROW __nonnull ((1)) __wur;
  25825. #endif /* GCC and use BSD. */
  25826. @@ -229,13 +228,13 @@
  25827. __BEGIN_NAMESPACE_C99
  25828. /* Convert a string to a quadword integer. */
  25829. __extension__
  25830. -extern long long int strtoll (__const char *__restrict __nptr,
  25831. +extern long long int strtoll (const char *__restrict __nptr,
  25832. char **__restrict __endptr, int __base)
  25833. __THROW __nonnull ((1)) __wur;
  25834. libc_hidden_proto(strtoll)
  25835. /* Convert a string to an unsigned quadword integer. */
  25836. __extension__
  25837. -extern unsigned long long int strtoull (__const char *__restrict __nptr,
  25838. +extern unsigned long long int strtoull (const char *__restrict __nptr,
  25839. char **__restrict __endptr, int __base)
  25840. __THROW __nonnull ((1)) __wur;
  25841. __END_NAMESPACE_C99
  25842. @@ -260,39 +259,39 @@
  25843. /* Special versions of the functions above which take the locale to
  25844. use as an additional parameter. */
  25845. -extern long int strtol_l (__const char *__restrict __nptr,
  25846. +extern long int strtol_l (const char *__restrict __nptr,
  25847. char **__restrict __endptr, int __base,
  25848. __locale_t __loc) __THROW __nonnull ((1, 4)) __wur;
  25849. libc_hidden_proto(strtol_l)
  25850. -extern unsigned long int strtoul_l (__const char *__restrict __nptr,
  25851. +extern unsigned long int strtoul_l (const char *__restrict __nptr,
  25852. char **__restrict __endptr,
  25853. int __base, __locale_t __loc)
  25854. __THROW __nonnull ((1, 4)) __wur;
  25855. libc_hidden_proto(strtoul_l)
  25856. __extension__
  25857. -extern long long int strtoll_l (__const char *__restrict __nptr,
  25858. +extern long long int strtoll_l (const char *__restrict __nptr,
  25859. char **__restrict __endptr, int __base,
  25860. __locale_t __loc)
  25861. __THROW __nonnull ((1, 4)) __wur;
  25862. __extension__
  25863. -extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
  25864. +extern unsigned long long int strtoull_l (const char *__restrict __nptr,
  25865. char **__restrict __endptr,
  25866. int __base, __locale_t __loc)
  25867. __THROW __nonnull ((1, 4)) __wur;
  25868. #ifdef __UCLIBC_HAS_FLOATS__
  25869. -extern double strtod_l (__const char *__restrict __nptr,
  25870. +extern double strtod_l (const char *__restrict __nptr,
  25871. char **__restrict __endptr, __locale_t __loc)
  25872. __THROW __nonnull ((1, 3)) __wur;
  25873. -extern float strtof_l (__const char *__restrict __nptr,
  25874. +extern float strtof_l (const char *__restrict __nptr,
  25875. char **__restrict __endptr, __locale_t __loc)
  25876. __THROW __nonnull ((1, 3)) __wur;
  25877. -extern long double strtold_l (__const char *__restrict __nptr,
  25878. +extern long double strtold_l (const char *__restrict __nptr,
  25879. char **__restrict __endptr,
  25880. __locale_t __loc)
  25881. __THROW __nonnull ((1, 3)) __wur;
  25882. @@ -307,7 +306,7 @@
  25883. extern char *l64a (long int __n) __THROW __wur;
  25884. /* Read a number from a string S in base 64 as above. */
  25885. -extern long int a64l (__const char *__s)
  25886. +extern long int a64l (const char *__s)
  25887. __THROW __attribute_pure__ __nonnull ((1)) __wur;
  25888. #endif /* Use SVID || extended X/Open. */
  25889. @@ -564,14 +563,14 @@
  25890. __BEGIN_NAMESPACE_STD
  25891. /* Return the value of envariable NAME, or NULL if it doesn't exist. */
  25892. -extern char *getenv (__const char *__name) __THROW __nonnull ((1)) __wur;
  25893. +extern char *getenv (const char *__name) __THROW __nonnull ((1)) __wur;
  25894. libc_hidden_proto(getenv)
  25895. __END_NAMESPACE_STD
  25896. #if 0
  25897. /* This function is similar to the above but returns NULL if the
  25898. programs is running with SUID or SGID enabled. */
  25899. -extern char *__secure_getenv (__const char *__name)
  25900. +extern char *__secure_getenv (const char *__name)
  25901. __THROW __nonnull ((1)) __wur;
  25902. #endif
  25903. @@ -585,12 +584,12 @@
  25904. #if defined __USE_BSD || defined __USE_XOPEN2K
  25905. /* Set NAME to VALUE in the environment.
  25906. If REPLACE is nonzero, overwrite an existing value. */
  25907. -extern int setenv (__const char *__name, __const char *__value, int __replace)
  25908. +extern int setenv (const char *__name, const char *__value, int __replace)
  25909. __THROW __nonnull ((2));
  25910. libc_hidden_proto(setenv)
  25911. /* Remove the variable NAME from the environment. */
  25912. -extern int unsetenv (__const char *__name) __THROW;
  25913. +extern int unsetenv (const char *__name) __THROW;
  25914. libc_hidden_proto(unsetenv)
  25915. #endif
  25916. @@ -652,20 +651,43 @@
  25917. extern char *mkdtemp (char *__template) __THROW __nonnull ((1)) __wur;
  25918. #endif
  25919. +#ifdef __USE_GNU
  25920. +/* Generate a unique temporary file name from TEMPLATE similar to
  25921. + mkstemp. But allow the caller to pass additional flags which are
  25922. + used in the open call to create the file..
  25923. +
  25924. + This function is a possible cancellation point and therefore not
  25925. + marked with __THROW. */
  25926. +# ifndef __USE_FILE_OFFSET64
  25927. +extern int mkostemp (char *__template, int __flags) __nonnull ((1)) __wur;
  25928. +# else
  25929. +# ifdef __REDIRECT
  25930. +extern int __REDIRECT (mkostemp, (char *__template, int __flags), mkostemp64)
  25931. + __nonnull ((1)) __wur;
  25932. +# else
  25933. +# define mkostemp mkostemp64
  25934. +# endif
  25935. +# endif
  25936. +# ifdef __USE_LARGEFILE64
  25937. +extern int mkostemp64 (char *__template, int __flags) __nonnull ((1)) __wur;
  25938. +# endif
  25939. +
  25940. +#endif
  25941. +
  25942. __BEGIN_NAMESPACE_STD
  25943. /* Execute the given line as a shell command.
  25944. This function is a cancellation point and therefore not marked with
  25945. __THROW. */
  25946. -extern int system (__const char *__command) __wur;
  25947. +extern int system (const char *__command) __wur;
  25948. __END_NAMESPACE_STD
  25949. #ifdef __USE_GNU
  25950. /* Return a malloc'd string containing the canonical absolute name of the
  25951. existing named file. */
  25952. -extern char *canonicalize_file_name (__const char *__name)
  25953. +extern char *canonicalize_file_name (const char *__name)
  25954. __THROW __nonnull ((1)) __wur;
  25955. #endif
  25956. @@ -675,7 +697,7 @@
  25957. PATH_MAX chars or more, returns null with `errno' set to
  25958. ENAMETOOLONG; if the name fits in fewer than PATH_MAX chars,
  25959. returns the name in RESOLVED. */
  25960. -extern char *realpath (__const char *__restrict __name,
  25961. +extern char *realpath (const char *__restrict __name,
  25962. char *__restrict __resolved) __THROW __wur;
  25963. libc_hidden_proto(realpath)
  25964. #endif
  25965. @@ -684,20 +706,20 @@
  25966. /* Shorthand for type of comparison functions. */
  25967. #ifndef __COMPAR_FN_T
  25968. # define __COMPAR_FN_T
  25969. -typedef int (*__compar_fn_t) (__const void *, __const void *);
  25970. +typedef int (*__compar_fn_t) (const void *, const void *);
  25971. # ifdef __USE_GNU
  25972. typedef __compar_fn_t comparison_fn_t;
  25973. # endif
  25974. #endif
  25975. #ifdef __USE_GNU
  25976. -typedef int (*__compar_d_fn_t) (__const void *, __const void *, void *);
  25977. +typedef int (*__compar_d_fn_t) (const void *, const void *, void *);
  25978. #endif
  25979. __BEGIN_NAMESPACE_STD
  25980. /* Do a binary search for KEY in BASE, which consists of NMEMB elements
  25981. of SIZE bytes each, using COMPAR to perform the comparisons. */
  25982. -extern void *bsearch (__const void *__key, __const void *__base,
  25983. +extern void *bsearch (const void *__key, const void *__base,
  25984. size_t __nmemb, size_t __size, __compar_fn_t __compar)
  25985. __nonnull ((1, 2, 5)) __wur;
  25986. @@ -807,11 +829,11 @@
  25987. __BEGIN_NAMESPACE_STD
  25988. /* Return the length of the multibyte character
  25989. in S, which is no longer than N. */
  25990. -extern int mblen (__const char *__s, size_t __n) __THROW __wur;
  25991. +extern int mblen (const char *__s, size_t __n) __THROW __wur;
  25992. /* Return the length of the given multibyte character,
  25993. putting its `wchar_t' representation in *PWC. */
  25994. extern int mbtowc (wchar_t *__restrict __pwc,
  25995. - __const char *__restrict __s, size_t __n) __THROW __wur;
  25996. + const char *__restrict __s, size_t __n) __THROW __wur;
  25997. /* Put the multibyte character represented
  25998. by WCHAR in S, returning its length. */
  25999. extern int wctomb (char *__s, wchar_t __wchar) __THROW __wur;
  26000. @@ -819,21 +841,21 @@
  26001. /* Convert a multibyte string to a wide char string. */
  26002. extern size_t mbstowcs (wchar_t *__restrict __pwcs,
  26003. - __const char *__restrict __s, size_t __n) __THROW;
  26004. + const char *__restrict __s, size_t __n) __THROW;
  26005. /* Convert a wide char string to multibyte string. */
  26006. extern size_t wcstombs (char *__restrict __s,
  26007. - __const wchar_t *__restrict __pwcs, size_t __n)
  26008. + const wchar_t *__restrict __pwcs, size_t __n)
  26009. __THROW;
  26010. __END_NAMESPACE_STD
  26011. #endif /* __UCLIBC_HAS_WCHAR__ */
  26012. -#if 0 /*def __USE_SVID*/
  26013. +#ifdef __USE_SVID
  26014. /* Determine whether the string value of RESPONSE matches the affirmation
  26015. or negative response expression as specified by the LC_MESSAGES category
  26016. in the program's current locale. Returns 1 if affirmative, 0 if
  26017. negative, and -1 if not matching. */
  26018. -extern int rpmatch (__const char *__response) __THROW __nonnull ((1)) __wur;
  26019. +extern int rpmatch (const char *__response) __THROW __nonnull ((1)) __wur;
  26020. #endif
  26021. @@ -845,7 +867,7 @@
  26022. suboption. On exit *OPTIONP is set to the beginning of the next
  26023. token or at the terminating NUL character. */
  26024. extern int getsubopt (char **__restrict __optionp,
  26025. - char *__const *__restrict __tokens,
  26026. + char *const *__restrict __tokens,
  26027. char **__restrict __valuep)
  26028. __THROW __nonnull ((1, 2, 3)) __wur;
  26029. #endif
  26030. @@ -854,7 +876,7 @@
  26031. #ifdef __USE_XOPEN
  26032. # if defined __UCLIBC_HAS_CRYPT__
  26033. /* Setup DES tables according KEY. */
  26034. -extern void setkey (__const char *__key) __THROW __nonnull ((1));
  26035. +extern void setkey (const char *__key) __THROW __nonnull ((1));
  26036. # endif /* __UCLIBC_HAS_CRYPT__ */
  26037. #endif
  26038. @@ -864,7 +886,6 @@
  26039. #ifdef __USE_XOPEN2K
  26040. /* Return a master pseudo-terminal handle. */
  26041. extern int posix_openpt (int __oflag) __wur;
  26042. -libc_hidden_proto(posix_openpt)
  26043. #endif
  26044. #ifdef __USE_XOPEN
  26045. @@ -910,8 +931,8 @@
  26046. #endif
  26047. #ifdef __UCLIBC_HAS_ARC4RANDOM__
  26048. -#include <stdint.h>
  26049. -extern uint32_t arc4random(void);
  26050. +# include <sys/types.h>
  26051. +extern u_int32_t arc4random(void);
  26052. extern void arc4random_stir(void);
  26053. extern void arc4random_addrandom(unsigned char *, int);
  26054. #endif
  26055. diff -Nur uClibc-0.9.33.2/include/string.h uClibc-git/include/string.h
  26056. --- uClibc-0.9.33.2/include/string.h 2012-05-15 09:20:09.000000000 +0200
  26057. +++ uClibc-git/include/string.h 2014-06-02 17:40:33.866711166 +0200
  26058. @@ -1,4 +1,4 @@
  26059. -/* Copyright (C) 1991-1993, 1995-2003, 2004 Free Software Foundation, Inc.
  26060. +/* Copyright (C) 1991-1993,1995-2004,2007,2009 Free Software Foundation, Inc.
  26061. This file is part of the GNU C Library.
  26062. The GNU C Library is free software; you can redistribute it and/or
  26063. @@ -12,9 +12,8 @@
  26064. Lesser General Public License for more details.
  26065. You should have received a copy of the GNU Lesser General Public
  26066. - License along with the GNU C Library; if not, write to the Free
  26067. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26068. - 02111-1307 USA. */
  26069. + License along with the GNU C Library; if not, see
  26070. + <http://www.gnu.org/licenses/>. */
  26071. /*
  26072. * ISO C99 Standard: 7.21 String handling <string.h>
  26073. @@ -36,12 +35,12 @@
  26074. __BEGIN_NAMESPACE_STD
  26075. /* Copy N bytes of SRC to DEST. */
  26076. extern void *memcpy (void *__restrict __dest,
  26077. - __const void *__restrict __src, size_t __n)
  26078. + const void *__restrict __src, size_t __n)
  26079. __THROW __nonnull ((1, 2));
  26080. libc_hidden_proto(memcpy)
  26081. /* Copy N bytes of SRC to DEST, guaranteeing
  26082. correct behavior for overlapping strings. */
  26083. -extern void *memmove (void *__dest, __const void *__src, size_t __n)
  26084. +extern void *memmove (void *__dest, const void *__src, size_t __n)
  26085. __THROW __nonnull ((1, 2));
  26086. libc_hidden_proto(memmove)
  26087. __END_NAMESPACE_STD
  26088. @@ -50,7 +49,7 @@
  26089. Return the position in DEST one byte past where C was copied,
  26090. or NULL if C was not found in the first N bytes of SRC. */
  26091. #if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN
  26092. -extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
  26093. +extern void *memccpy (void *__restrict __dest, const void *__restrict __src,
  26094. int __c, size_t __n)
  26095. __THROW __nonnull ((1, 2));
  26096. libc_hidden_proto(memccpy)
  26097. @@ -63,12 +62,12 @@
  26098. libc_hidden_proto(memset)
  26099. /* Compare N bytes of S1 and S2. */
  26100. -extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
  26101. +extern int memcmp (const void *__s1, const void *__s2, size_t __n)
  26102. __THROW __attribute_pure__ __nonnull ((1, 2));
  26103. libc_hidden_proto(memcmp)
  26104. /* Search N bytes of S for C. */
  26105. -extern void *memchr (__const void *__s, int __c, size_t __n)
  26106. +extern void *memchr (const void *__s, int __c, size_t __n)
  26107. __THROW __attribute_pure__ __nonnull ((1));
  26108. libc_hidden_proto(memchr)
  26109. __END_NAMESPACE_STD
  26110. @@ -76,12 +75,12 @@
  26111. #ifdef __USE_GNU
  26112. /* Search in S for C. This is similar to `memchr' but there is no
  26113. length limit. */
  26114. -extern void *rawmemchr (__const void *__s, int __c)
  26115. +extern void *rawmemchr (const void *__s, int __c)
  26116. __THROW __attribute_pure__ __nonnull ((1));
  26117. libc_hidden_proto(rawmemchr)
  26118. /* Search N bytes of S for the final occurrence of C. */
  26119. -extern void *memrchr (__const void *__s, int __c, size_t __n)
  26120. +extern void *memrchr (const void *__s, int __c, size_t __n)
  26121. __THROW __attribute_pure__ __nonnull ((1));
  26122. libc_hidden_proto(memrchr)
  26123. #endif
  26124. @@ -89,62 +88,62 @@
  26125. __BEGIN_NAMESPACE_STD
  26126. /* Copy SRC to DEST. */
  26127. -extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
  26128. +extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
  26129. __THROW __nonnull ((1, 2));
  26130. libc_hidden_proto(strcpy)
  26131. /* Copy no more than N characters of SRC to DEST. */
  26132. extern char *strncpy (char *__restrict __dest,
  26133. - __const char *__restrict __src, size_t __n)
  26134. + const char *__restrict __src, size_t __n)
  26135. __THROW __nonnull ((1, 2));
  26136. libc_hidden_proto(strncpy)
  26137. /* Append SRC onto DEST. */
  26138. -extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
  26139. +extern char *strcat (char *__restrict __dest, const char *__restrict __src)
  26140. __THROW __nonnull ((1, 2));
  26141. libc_hidden_proto(strcat)
  26142. /* Append no more than N characters from SRC onto DEST. */
  26143. -extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
  26144. +extern char *strncat (char *__restrict __dest, const char *__restrict __src,
  26145. size_t __n) __THROW __nonnull ((1, 2));
  26146. libc_hidden_proto(strncat)
  26147. /* Compare S1 and S2. */
  26148. -extern int strcmp (__const char *__s1, __const char *__s2)
  26149. +extern int strcmp (const char *__s1, const char *__s2)
  26150. __THROW __attribute_pure__ __nonnull ((1, 2));
  26151. libc_hidden_proto(strcmp)
  26152. /* Compare N characters of S1 and S2. */
  26153. -extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
  26154. +extern int strncmp (const char *__s1, const char *__s2, size_t __n)
  26155. __THROW __attribute_pure__ __nonnull ((1, 2));
  26156. libc_hidden_proto(strncmp)
  26157. /* Compare the collated forms of S1 and S2. */
  26158. -extern int strcoll (__const char *__s1, __const char *__s2)
  26159. +extern int strcoll (const char *__s1, const char *__s2)
  26160. __THROW __attribute_pure__ __nonnull ((1, 2));
  26161. libc_hidden_proto(strcoll)
  26162. /* Put a transformation of SRC into no more than N bytes of DEST. */
  26163. extern size_t strxfrm (char *__restrict __dest,
  26164. - __const char *__restrict __src, size_t __n)
  26165. + const char *__restrict __src, size_t __n)
  26166. __THROW __nonnull ((2));
  26167. __END_NAMESPACE_STD
  26168. -#if defined __USE_GNU && defined __UCLIBC_HAS_XLOCALE__
  26169. +#if defined __USE_XOPEN2K8 && defined __UCLIBC_HAS_XLOCALE__
  26170. /* The following functions are equivalent to the both above but they
  26171. take the locale they use for the collation as an extra argument.
  26172. This is not standardsized but something like will come. */
  26173. # include <xlocale.h>
  26174. /* Compare the collated forms of S1 and S2 using rules from L. */
  26175. -extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
  26176. +extern int strcoll_l (const char *__s1, const char *__s2, __locale_t __l)
  26177. __THROW __attribute_pure__ __nonnull ((1, 2, 3));
  26178. libc_hidden_proto(strcoll_l)
  26179. /* Put a transformation of SRC into no more than N bytes of DEST. */
  26180. -extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
  26181. +extern size_t strxfrm_l (char *__dest, const char *__src, size_t __n,
  26182. __locale_t __l) __THROW __nonnull ((2, 4));
  26183. libc_hidden_proto(strxfrm_l)
  26184. #endif
  26185. #if defined __USE_SVID || defined __USE_BSD || defined __USE_XOPEN_EXTENDED
  26186. /* Duplicate S, returning an identical malloc'd string. */
  26187. -extern char *strdup (__const char *__s)
  26188. +extern char *strdup (const char *__s)
  26189. __THROW __attribute_malloc__ __nonnull ((1));
  26190. libc_hidden_proto(strdup)
  26191. #endif
  26192. @@ -152,8 +151,8 @@
  26193. /* Return a malloc'd copy of at most N bytes of STRING. The
  26194. resultant string is terminated even if no null terminator
  26195. appears before STRING[N]. */
  26196. -#if defined __USE_GNU
  26197. -extern char *strndup (__const char *__string, size_t __n)
  26198. +#if defined __USE_XOPEN2K8
  26199. +extern char *strndup (const char *__string, size_t __n)
  26200. __THROW __attribute_malloc__ __nonnull ((1));
  26201. libc_hidden_proto(strndup)
  26202. #endif
  26203. @@ -163,7 +162,7 @@
  26204. # define strdupa(s) \
  26205. (__extension__ \
  26206. ({ \
  26207. - __const char *__old = (s); \
  26208. + const char *__old = (s); \
  26209. size_t __len = strlen (__old) + 1; \
  26210. char *__new = (char *) __builtin_alloca (__len); \
  26211. (char *) memcpy (__new, __old, __len); \
  26212. @@ -173,7 +172,7 @@
  26213. # define strndupa(s, n) \
  26214. (__extension__ \
  26215. ({ \
  26216. - __const char *__old = (s); \
  26217. + const char *__old = (s); \
  26218. size_t __len = strnlen (__old, (n)); \
  26219. char *__new = (char *) __builtin_alloca (__len + 1); \
  26220. __new[__len] = '\0'; \
  26221. @@ -183,11 +182,11 @@
  26222. __BEGIN_NAMESPACE_STD
  26223. /* Find the first occurrence of C in S. */
  26224. -extern char *strchr (__const char *__s, int __c)
  26225. +extern char *strchr (const char *__s, int __c)
  26226. __THROW __attribute_pure__ __nonnull ((1));
  26227. libc_hidden_proto(strchr)
  26228. /* Find the last occurrence of C in S. */
  26229. -extern char *strrchr (__const char *__s, int __c)
  26230. +extern char *strrchr (const char *__s, int __c)
  26231. __THROW __attribute_pure__ __nonnull ((1));
  26232. libc_hidden_proto(strrchr)
  26233. __END_NAMESPACE_STD
  26234. @@ -195,7 +194,7 @@
  26235. #ifdef __USE_GNU
  26236. /* This function is similar to `strchr'. But it returns a pointer to
  26237. the closing NUL byte in case C is not found in S. */
  26238. -extern char *strchrnul (__const char *__s, int __c)
  26239. +extern char *strchrnul (const char *__s, int __c)
  26240. __THROW __attribute_pure__ __nonnull ((1));
  26241. libc_hidden_proto(strchrnul)
  26242. #endif
  26243. @@ -203,26 +202,26 @@
  26244. __BEGIN_NAMESPACE_STD
  26245. /* Return the length of the initial segment of S which
  26246. consists entirely of characters not in REJECT. */
  26247. -extern size_t strcspn (__const char *__s, __const char *__reject)
  26248. +extern size_t strcspn (const char *__s, const char *__reject)
  26249. __THROW __attribute_pure__ __nonnull ((1, 2));
  26250. libc_hidden_proto(strcspn)
  26251. /* Return the length of the initial segment of S which
  26252. consists entirely of characters in ACCEPT. */
  26253. -extern size_t strspn (__const char *__s, __const char *__accept)
  26254. +extern size_t strspn (const char *__s, const char *__accept)
  26255. __THROW __attribute_pure__ __nonnull ((1, 2));
  26256. libc_hidden_proto(strspn)
  26257. /* Find the first occurrence in S of any character in ACCEPT. */
  26258. -extern char *strpbrk (__const char *__s, __const char *__accept)
  26259. +extern char *strpbrk (const char *__s, const char *__accept)
  26260. __THROW __attribute_pure__ __nonnull ((1, 2));
  26261. libc_hidden_proto(strpbrk)
  26262. /* Find the first occurrence of NEEDLE in HAYSTACK. */
  26263. -extern char *strstr (__const char *__haystack, __const char *__needle)
  26264. +extern char *strstr (const char *__haystack, const char *__needle)
  26265. __THROW __attribute_pure__ __nonnull ((1, 2));
  26266. libc_hidden_proto(strstr)
  26267. /* Divide S into tokens separated by characters in DELIM. */
  26268. -extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
  26269. +extern char *strtok (char *__restrict __s, const char *__restrict __delim)
  26270. __THROW __nonnull ((2));
  26271. libc_hidden_proto(strtok)
  26272. __END_NAMESPACE_STD
  26273. @@ -231,12 +230,12 @@
  26274. passed between calls are stored in SAVE_PTR. */
  26275. #if 0 /* uClibc: disabled */
  26276. extern char *__strtok_r (char *__restrict __s,
  26277. - __const char *__restrict __delim,
  26278. + const char *__restrict __delim,
  26279. char **__restrict __save_ptr)
  26280. __THROW __nonnull ((2, 3));
  26281. #endif
  26282. #if defined __USE_POSIX || defined __USE_MISC
  26283. -extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
  26284. +extern char *strtok_r (char *__restrict __s, const char *__restrict __delim,
  26285. char **__restrict __save_ptr)
  26286. __THROW __nonnull ((2, 3));
  26287. libc_hidden_proto(strtok_r)
  26288. @@ -244,7 +243,7 @@
  26289. #ifdef __USE_GNU
  26290. /* Similar to `strstr' but this function ignores the case of both strings. */
  26291. -extern char *strcasestr (__const char *__haystack, __const char *__needle)
  26292. +extern char *strcasestr (const char *__haystack, const char *__needle)
  26293. __THROW __attribute_pure__ __nonnull ((1, 2));
  26294. libc_hidden_proto(strcasestr)
  26295. #endif
  26296. @@ -253,19 +252,19 @@
  26297. /* Find the first occurrence of NEEDLE in HAYSTACK.
  26298. NEEDLE is NEEDLELEN bytes long;
  26299. HAYSTACK is HAYSTACKLEN bytes long. */
  26300. -extern void *memmem (__const void *__haystack, size_t __haystacklen,
  26301. - __const void *__needle, size_t __needlelen)
  26302. +extern void *memmem (const void *__haystack, size_t __haystacklen,
  26303. + const void *__needle, size_t __needlelen)
  26304. __THROW __attribute_pure__ __nonnull ((1, 3));
  26305. /* Copy N bytes of SRC to DEST, return pointer to bytes after the
  26306. last written byte. */
  26307. #if 0 /* uClibc: disabled */
  26308. extern void *__mempcpy (void *__restrict __dest,
  26309. - __const void *__restrict __src, size_t __n)
  26310. + const void *__restrict __src, size_t __n)
  26311. __THROW __nonnull ((1, 2));
  26312. #endif
  26313. extern void *mempcpy (void *__restrict __dest,
  26314. - __const void *__restrict __src, size_t __n)
  26315. + const void *__restrict __src, size_t __n)
  26316. __THROW __nonnull ((1, 2));
  26317. libc_hidden_proto(mempcpy)
  26318. #endif
  26319. @@ -273,15 +272,15 @@
  26320. __BEGIN_NAMESPACE_STD
  26321. /* Return the length of S. */
  26322. -extern size_t strlen (__const char *__s)
  26323. +extern size_t strlen (const char *__s)
  26324. __THROW __attribute_pure__ __nonnull ((1));
  26325. libc_hidden_proto(strlen)
  26326. __END_NAMESPACE_STD
  26327. -#ifdef __USE_GNU
  26328. +#ifdef __USE_XOPEN2K8
  26329. /* Find the length of STRING, but scan at most MAXLEN characters.
  26330. If no '\0' terminator is found in that many characters, return MAXLEN. */
  26331. -extern size_t strnlen (__const char *__string, size_t __maxlen)
  26332. +extern size_t strnlen (const char *__string, size_t __maxlen)
  26333. __THROW __attribute_pure__ __nonnull ((1));
  26334. libc_hidden_proto(strnlen)
  26335. #endif
  26336. @@ -329,6 +328,12 @@
  26337. # endif
  26338. #endif
  26339. +#if 0 /*defined __USE_XOPEN2K8 && defined __UCLIBC_HAS_XLOCALE__*/
  26340. +/* Translate error number to string according to the locale L. */
  26341. +extern char *strerror_l (int __errnum, __locale_t __l) __THROW;
  26342. +#endif
  26343. +
  26344. +
  26345. /* We define this function always since `bzero' is sometimes needed when
  26346. the namespace rules does not allow this. */
  26347. #if 0 /* uClibc: disabled */
  26348. @@ -338,22 +343,22 @@
  26349. #ifdef __USE_BSD
  26350. # ifdef __UCLIBC_SUSV3_LEGACY__
  26351. /* Copy N bytes of SRC to DEST (like memmove, but args reversed). */
  26352. -extern void bcopy (__const void *__src, void *__dest, size_t __n)
  26353. +extern void bcopy (const void *__src, void *__dest, size_t __n)
  26354. __THROW __nonnull ((1, 2));
  26355. /* Set N bytes of S to 0. */
  26356. extern void bzero (void *__s, size_t __n) __THROW __nonnull ((1));
  26357. /* Compare N bytes of S1 and S2 (same as memcmp). */
  26358. -extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
  26359. +extern int bcmp (const void *__s1, const void *__s2, size_t __n)
  26360. __THROW __attribute_pure__ __nonnull ((1, 2));
  26361. /* Find the first occurrence of C in S (same as strchr). */
  26362. -extern char *index (__const char *__s, int __c)
  26363. +extern char *index (const char *__s, int __c)
  26364. __THROW __attribute_pure__ __nonnull ((1));
  26365. /* Find the last occurrence of C in S (same as strrchr). */
  26366. -extern char *rindex (__const char *__s, int __c)
  26367. +extern char *rindex (const char *__s, int __c)
  26368. __THROW __attribute_pure__ __nonnull ((1));
  26369. # else
  26370. # ifdef __UCLIBC_SUSV3_LEGACY_MACROS__
  26371. @@ -385,25 +390,25 @@
  26372. # endif
  26373. /* Compare S1 and S2, ignoring case. */
  26374. -extern int strcasecmp (__const char *__s1, __const char *__s2)
  26375. +extern int strcasecmp (const char *__s1, const char *__s2)
  26376. __THROW __attribute_pure__ __nonnull ((1, 2));
  26377. libc_hidden_proto(strcasecmp)
  26378. /* Compare no more than N chars of S1 and S2, ignoring case. */
  26379. -extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
  26380. +extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
  26381. __THROW __attribute_pure__ __nonnull ((1, 2));
  26382. libc_hidden_proto(strncasecmp)
  26383. #endif /* Use BSD. */
  26384. -#if defined __USE_GNU && defined __UCLIBC_HAS_XLOCALE__
  26385. +#if defined __USE_XOPEN2K8 && defined __UCLIBC_HAS_XLOCALE__
  26386. /* Again versions of a few functions which use the given locale instead
  26387. of the global one. */
  26388. -extern int strcasecmp_l (__const char *__s1, __const char *__s2,
  26389. +extern int strcasecmp_l (const char *__s1, const char *__s2,
  26390. __locale_t __loc)
  26391. __THROW __attribute_pure__ __nonnull ((1, 2, 3));
  26392. libc_hidden_proto(strcasecmp_l)
  26393. -extern int strncasecmp_l (__const char *__s1, __const char *__s2,
  26394. +extern int strncasecmp_l (const char *__s1, const char *__s2,
  26395. size_t __n, __locale_t __loc)
  26396. __THROW __attribute_pure__ __nonnull ((1, 2, 4));
  26397. libc_hidden_proto(strncasecmp_l)
  26398. @@ -413,27 +418,22 @@
  26399. /* Return the next DELIM-delimited token from *STRINGP,
  26400. terminating it with a '\0', and update *STRINGP to point past it. */
  26401. extern char *strsep (char **__restrict __stringp,
  26402. - __const char *__restrict __delim)
  26403. + const char *__restrict __delim)
  26404. __THROW __nonnull ((1, 2));
  26405. libc_hidden_proto(strsep)
  26406. #endif
  26407. -#ifdef __USE_GNU
  26408. -/* Compare S1 and S2 as strings holding name & indices/version numbers. */
  26409. -extern int strverscmp (__const char *__s1, __const char *__s2)
  26410. - __THROW __attribute_pure__ __nonnull ((1, 2));
  26411. -libc_hidden_proto(strverscmp)
  26412. -
  26413. +#ifdef __USE_XOPEN2K8
  26414. /* Return a string describing the meaning of the signal number in SIG. */
  26415. extern char *strsignal (int __sig) __THROW;
  26416. libc_hidden_proto(strsignal)
  26417. /* Copy SRC to DEST, returning the address of the terminating '\0' in DEST. */
  26418. # if 0 /* uClibc: disabled */
  26419. -extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
  26420. +extern char *__stpcpy (char *__restrict __dest, const char *__restrict __src)
  26421. __THROW __nonnull ((1, 2));
  26422. # endif
  26423. -extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
  26424. +extern char *stpcpy (char *__restrict __dest, const char *__restrict __src)
  26425. __THROW __nonnull ((1, 2));
  26426. libc_hidden_proto(stpcpy)
  26427. @@ -441,12 +441,19 @@
  26428. the last character written into DEST. */
  26429. # if 0 /* uClibc: disabled */
  26430. extern char *__stpncpy (char *__restrict __dest,
  26431. - __const char *__restrict __src, size_t __n)
  26432. + const char *__restrict __src, size_t __n)
  26433. __THROW __nonnull ((1, 2));
  26434. # endif
  26435. extern char *stpncpy (char *__restrict __dest,
  26436. - __const char *__restrict __src, size_t __n)
  26437. + const char *__restrict __src, size_t __n)
  26438. __THROW __nonnull ((1, 2));
  26439. +#endif
  26440. +
  26441. +#ifdef __USE_GNU
  26442. +/* Compare S1 and S2 as strings holding name & indices/version numbers. */
  26443. +extern int strverscmp (const char *__s1, const char *__s2)
  26444. + __THROW __attribute_pure__ __nonnull ((1, 2));
  26445. +libc_hidden_proto(strverscmp)
  26446. # if 0 /* uClibc does not support strfry or memfrob. */
  26447. /* Sautee STRING briskly. */
  26448. @@ -461,8 +468,7 @@
  26449. declare the function if the `basename' macro is available (defined
  26450. in <libgen.h>) which makes the XPG version of this function
  26451. available. */
  26452. -extern char *basename (__const char *__filename) __THROW __nonnull ((1));
  26453. -libc_hidden_proto(basename)
  26454. +extern char *basename (const char *__filename) __THROW __nonnull ((1));
  26455. # endif
  26456. #endif /* __USE_GNU */
  26457. diff -Nur uClibc-0.9.33.2/include/strings.h uClibc-git/include/strings.h
  26458. --- uClibc-0.9.33.2/include/strings.h 2012-05-15 09:20:09.000000000 +0200
  26459. +++ uClibc-git/include/strings.h 2014-06-02 17:40:33.866711166 +0200
  26460. @@ -1,4 +1,4 @@
  26461. -/* Copyright (C) 1991,92,96,97,99,2000,2001 Free Software Foundation, Inc.
  26462. +/* Copyright (C) 1991,92,96,97,99,2000,2001,2009 Free Software Foundation, Inc.
  26463. This file is part of the GNU C Library.
  26464. The GNU C Library is free software; you can redistribute it and/or
  26465. @@ -12,9 +12,8 @@
  26466. Lesser General Public License for more details.
  26467. You should have received a copy of the GNU Lesser General Public
  26468. - License along with the GNU C Library; if not, write to the Free
  26469. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26470. - 02111-1307 USA. */
  26471. + License along with the GNU C Library; if not, see
  26472. + <http://www.gnu.org/licenses/>. */
  26473. #ifndef _STRINGS_H
  26474. #define _STRINGS_H 1
  26475. @@ -35,22 +34,22 @@
  26476. # ifdef __UCLIBC_SUSV3_LEGACY__
  26477. /* Copy N bytes of SRC to DEST (like memmove, but args reversed). */
  26478. -extern void bcopy (__const void *__src, void *__dest, size_t __n)
  26479. +extern void bcopy (const void *__src, void *__dest, size_t __n)
  26480. __THROW __nonnull ((1, 2));
  26481. /* Set N bytes of S to 0. */
  26482. extern void bzero (void *__s, size_t __n) __THROW __nonnull ((1));
  26483. /* Compare N bytes of S1 and S2 (same as memcmp). */
  26484. -extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
  26485. +extern int bcmp (const void *__s1, const void *__s2, size_t __n)
  26486. __THROW __attribute_pure__ __nonnull ((1, 2));
  26487. /* Find the first occurrence of C in S (same as strchr). */
  26488. -extern char *index (__const char *__s, int __c)
  26489. +extern char *index (const char *__s, int __c)
  26490. __THROW __attribute_pure__ __nonnull ((1));
  26491. /* Find the last occurrence of C in S (same as strrchr). */
  26492. -extern char *rindex (__const char *__s, int __c)
  26493. +extern char *rindex (const char *__s, int __c)
  26494. __THROW __attribute_pure__ __nonnull ((1));
  26495. # else
  26496. # ifdef __UCLIBC_SUSV3_LEGACY_MACROS__
  26497. @@ -69,10 +68,11 @@
  26498. /* Return the position of the first bit set in I, or 0 if none are set.
  26499. The least-significant bit is position 1, the most-significant 32. */
  26500. extern int ffs (int __i) __THROW __attribute__ ((__const__));
  26501. +libc_hidden_proto(ffs)
  26502. /* The following two functions are non-standard but necessary for non-32 bit
  26503. platforms. */
  26504. -#if 0 /*def __USE_GNU*/
  26505. +# ifdef __USE_GNU
  26506. extern int ffsl (long int __l) __THROW __attribute__ ((__const__));
  26507. # ifdef __GNUC__
  26508. __extension__ extern int ffsll (long long int __ll)
  26509. @@ -81,17 +81,39 @@
  26510. # endif
  26511. /* Compare S1 and S2, ignoring case. */
  26512. -extern int strcasecmp (__const char *__s1, __const char *__s2)
  26513. +extern int strcasecmp (const char *__s1, const char *__s2)
  26514. __THROW __attribute_pure__ __nonnull ((1, 2));
  26515. +libc_hidden_proto(strcasecmp)
  26516. /* Compare no more than N chars of S1 and S2, ignoring case. */
  26517. -extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
  26518. +extern int strncasecmp (const char *__s1, const char *__s2, size_t __n)
  26519. __THROW __attribute_pure__ __nonnull ((1, 2));
  26520. +libc_hidden_proto(strncasecmp)
  26521. +#if defined __USE_XOPEN2K8 && defined __UCLIBC_HAS_XLOCALE__
  26522. +/* The following functions are equivalent to the both above but they
  26523. + take the locale they use for the collation as an extra argument.
  26524. + This is not standardsized but something like will come. */
  26525. +# include <xlocale.h>
  26526. +
  26527. +/* Again versions of a few functions which use the given locale instead
  26528. + of the global one. */
  26529. +extern int strcasecmp_l (const char *__s1, const char *__s2,
  26530. + __locale_t __loc)
  26531. + __THROW __attribute_pure__ __nonnull ((1, 2, 3));
  26532. +libc_hidden_proto(strcasecmp_l)
  26533. +
  26534. +extern int strncasecmp_l (const char *__s1, const char *__s2,
  26535. + size_t __n, __locale_t __loc)
  26536. + __THROW __attribute_pure__ __nonnull ((1, 2, 4));
  26537. +libc_hidden_proto(strncasecmp_l)
  26538. +#endif
  26539. __END_DECLS
  26540. #ifdef _LIBC
  26541. +/* comment is wrong and will face this, when HAS_GNU option will be added
  26542. + * header is SuSv standard */
  26543. #error "<strings.h> should not be included from libc."
  26544. #endif
  26545. diff -Nur uClibc-0.9.33.2/include/sys/cdefs.h uClibc-git/include/sys/cdefs.h
  26546. --- uClibc-0.9.33.2/include/sys/cdefs.h 2012-05-15 09:20:09.000000000 +0200
  26547. +++ uClibc-git/include/sys/cdefs.h 2014-06-02 17:40:33.866711166 +0200
  26548. @@ -13,9 +13,8 @@
  26549. Lesser General Public License for more details.
  26550. You should have received a copy of the GNU Lesser General Public
  26551. - License along with the GNU C Library; if not, write to the Free
  26552. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26553. - 02111-1307 USA. */
  26554. + License along with the GNU C Library; if not, see
  26555. + <http://www.gnu.org/licenses/>. */
  26556. #ifndef _SYS_CDEFS_H
  26557. #define _SYS_CDEFS_H 1
  26558. @@ -63,10 +62,6 @@
  26559. # define __THROW
  26560. # define __NTH(fct) fct
  26561. -# define __const const
  26562. -# define __signed signed
  26563. -# define __volatile volatile
  26564. -
  26565. #endif /* GCC. */
  26566. /* These two macros are not used in glibc anymore. They are kept here
  26567. diff -Nur uClibc-0.9.33.2/include/sys/dir.h uClibc-git/include/sys/dir.h
  26568. --- uClibc-0.9.33.2/include/sys/dir.h 2012-05-15 09:20:09.000000000 +0200
  26569. +++ uClibc-git/include/sys/dir.h 2014-06-02 17:40:33.866711166 +0200
  26570. @@ -12,9 +12,8 @@
  26571. Lesser General Public License for more details.
  26572. You should have received a copy of the GNU Lesser General Public
  26573. - License along with the GNU C Library; if not, write to the Free
  26574. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26575. - 02111-1307 USA. */
  26576. + License along with the GNU C Library; if not, see
  26577. + <http://www.gnu.org/licenses/>. */
  26578. #ifndef _SYS_DIR_H
  26579. #define _SYS_DIR_H 1
  26580. diff -Nur uClibc-0.9.33.2/include/sys/file.h uClibc-git/include/sys/file.h
  26581. --- uClibc-0.9.33.2/include/sys/file.h 2012-05-15 09:20:09.000000000 +0200
  26582. +++ uClibc-git/include/sys/file.h 2014-06-02 17:40:33.866711166 +0200
  26583. @@ -12,9 +12,8 @@
  26584. Lesser General Public License for more details.
  26585. You should have received a copy of the GNU Lesser General Public
  26586. - License along with the GNU C Library; if not, write to the Free
  26587. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26588. - 02111-1307 USA. */
  26589. + License along with the GNU C Library; if not, see
  26590. + <http://www.gnu.org/licenses/>. */
  26591. #ifndef _SYS_FILE_H
  26592. #define _SYS_FILE_H 1
  26593. diff -Nur uClibc-0.9.33.2/include/sys/fsuid.h uClibc-git/include/sys/fsuid.h
  26594. --- uClibc-0.9.33.2/include/sys/fsuid.h 2012-05-15 09:20:09.000000000 +0200
  26595. +++ uClibc-git/include/sys/fsuid.h 2014-06-02 17:40:33.866711166 +0200
  26596. @@ -12,9 +12,8 @@
  26597. Lesser General Public License for more details.
  26598. You should have received a copy of the GNU Lesser General Public
  26599. - License along with the GNU C Library; if not, write to the Free
  26600. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26601. - 02111-1307 USA. */
  26602. + License along with the GNU C Library; if not, see
  26603. + <http://www.gnu.org/licenses/>. */
  26604. #ifndef _SYS_FSUID_H
  26605. #define _SYS_FSUID_H 1
  26606. diff -Nur uClibc-0.9.33.2/include/sys/ioctl.h uClibc-git/include/sys/ioctl.h
  26607. --- uClibc-0.9.33.2/include/sys/ioctl.h 2012-05-15 09:20:09.000000000 +0200
  26608. +++ uClibc-git/include/sys/ioctl.h 2014-06-02 17:40:33.866711166 +0200
  26609. @@ -12,9 +12,8 @@
  26610. Lesser General Public License for more details.
  26611. You should have received a copy of the GNU Lesser General Public
  26612. - License along with the GNU C Library; if not, write to the Free
  26613. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26614. - 02111-1307 USA. */
  26615. + License along with the GNU C Library; if not, see
  26616. + <http://www.gnu.org/licenses/>. */
  26617. #ifndef _SYS_IOCTL_H
  26618. #define _SYS_IOCTL_H 1
  26619. diff -Nur uClibc-0.9.33.2/include/sys/ipc.h uClibc-git/include/sys/ipc.h
  26620. --- uClibc-0.9.33.2/include/sys/ipc.h 2012-05-15 09:20:09.000000000 +0200
  26621. +++ uClibc-git/include/sys/ipc.h 2014-06-02 17:40:33.866711166 +0200
  26622. @@ -12,9 +12,8 @@
  26623. Lesser General Public License for more details.
  26624. You should have received a copy of the GNU Lesser General Public
  26625. - License along with the GNU C Library; if not, write to the Free
  26626. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26627. - 02111-1307 USA. */
  26628. + License along with the GNU C Library; if not, see
  26629. + <http://www.gnu.org/licenses/>. */
  26630. #ifndef _SYS_IPC_H
  26631. #define _SYS_IPC_H 1
  26632. @@ -51,7 +50,7 @@
  26633. __BEGIN_DECLS
  26634. /* Generates key for System V style IPC. */
  26635. -extern key_t ftok (__const char *__pathname, int __proj_id) __THROW;
  26636. +extern key_t ftok (const char *__pathname, int __proj_id) __THROW;
  26637. __END_DECLS
  26638. diff -Nur uClibc-0.9.33.2/include/sys/kdaemon.h uClibc-git/include/sys/kdaemon.h
  26639. --- uClibc-0.9.33.2/include/sys/kdaemon.h 2012-05-15 09:20:09.000000000 +0200
  26640. +++ uClibc-git/include/sys/kdaemon.h 2014-06-02 17:40:33.866711166 +0200
  26641. @@ -12,9 +12,8 @@
  26642. Lesser General Public License for more details.
  26643. You should have received a copy of the GNU Lesser General Public
  26644. - License along with the GNU C Library; if not, write to the Free
  26645. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26646. - 02111-1307 USA. */
  26647. + License along with the GNU C Library; if not, see
  26648. + <http://www.gnu.org/licenses/>. */
  26649. /* Interfaces to control the various kernel daemons. */
  26650. diff -Nur uClibc-0.9.33.2/include/sys/kd.h uClibc-git/include/sys/kd.h
  26651. --- uClibc-0.9.33.2/include/sys/kd.h 2012-05-15 09:20:09.000000000 +0200
  26652. +++ uClibc-git/include/sys/kd.h 2014-06-02 17:40:33.866711166 +0200
  26653. @@ -12,9 +12,8 @@
  26654. Lesser General Public License for more details.
  26655. You should have received a copy of the GNU Lesser General Public
  26656. - License along with the GNU C Library; if not, write to the Free
  26657. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26658. - 02111-1307 USA. */
  26659. + License along with the GNU C Library; if not, see
  26660. + <http://www.gnu.org/licenses/>. */
  26661. #ifndef _SYS_KD_H
  26662. #define _SYS_KD_H 1
  26663. diff -Nur uClibc-0.9.33.2/include/sys/klog.h uClibc-git/include/sys/klog.h
  26664. --- uClibc-0.9.33.2/include/sys/klog.h 2012-05-15 09:20:09.000000000 +0200
  26665. +++ uClibc-git/include/sys/klog.h 2014-06-02 17:40:33.866711166 +0200
  26666. @@ -12,9 +12,8 @@
  26667. Lesser General Public License for more details.
  26668. You should have received a copy of the GNU Lesser General Public
  26669. - License along with the GNU C Library; if not, write to the Free
  26670. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26671. - 02111-1307 USA. */
  26672. + License along with the GNU C Library; if not, see
  26673. + <http://www.gnu.org/licenses/>. */
  26674. #ifndef _SYS_KLOG_H
  26675. diff -Nur uClibc-0.9.33.2/include/sys/mman.h uClibc-git/include/sys/mman.h
  26676. --- uClibc-0.9.33.2/include/sys/mman.h 2012-05-15 09:20:09.000000000 +0200
  26677. +++ uClibc-git/include/sys/mman.h 2014-06-02 17:40:33.866711166 +0200
  26678. @@ -13,9 +13,8 @@
  26679. Lesser General Public License for more details.
  26680. You should have received a copy of the GNU Lesser General Public
  26681. - License along with the GNU C Library; if not, write to the Free
  26682. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26683. - 02111-1307 USA. */
  26684. + License along with the GNU C Library; if not, see
  26685. + <http://www.gnu.org/licenses/>. */
  26686. #ifndef _SYS_MMAN_H
  26687. #define _SYS_MMAN_H 1
  26688. @@ -115,10 +114,10 @@
  26689. /* Guarantee all whole pages mapped by the range [ADDR,ADDR+LEN) to
  26690. be memory resident. */
  26691. -extern int mlock (__const void *__addr, size_t __len) __THROW;
  26692. +extern int mlock (const void *__addr, size_t __len) __THROW;
  26693. /* Unlock whole pages previously mapped by the range [ADDR,ADDR+LEN). */
  26694. -extern int munlock (__const void *__addr, size_t __len) __THROW;
  26695. +extern int munlock (const void *__addr, size_t __len) __THROW;
  26696. /* Cause all currently mapped pages of the process to be memory resident
  26697. until unlocked by a call to the `munlockall', until the process exits,
  26698. @@ -133,8 +132,8 @@
  26699. /* On no-mmu systems, memory cannot be swapped out, so
  26700. * these functions will always succeed. */
  26701. -static __inline__ int mlock (__const void *__addr, size_t __len) { return 0; }
  26702. -static __inline__ int munlock (__const void *__addr, size_t __len) { return 0; }
  26703. +static __inline__ int mlock (const void *__addr, size_t __len) { return 0; }
  26704. +static __inline__ int munlock (const void *__addr, size_t __len) { return 0; }
  26705. static __inline__ int mlockall (int __flags) { return 0; }
  26706. static __inline__ int munlockall (void) { return 0; }
  26707. #endif
  26708. @@ -170,10 +169,10 @@
  26709. /* Open shared memory segment. */
  26710. -extern int shm_open (__const char *__name, int __oflag, mode_t __mode);
  26711. +extern int shm_open (const char *__name, int __oflag, mode_t __mode);
  26712. /* Remove shared memory segment. */
  26713. -extern int shm_unlink (__const char *__name);
  26714. +extern int shm_unlink (const char *__name);
  26715. __END_DECLS
  26716. diff -Nur uClibc-0.9.33.2/include/sys/mount.h uClibc-git/include/sys/mount.h
  26717. --- uClibc-0.9.33.2/include/sys/mount.h 2012-05-15 09:20:09.000000000 +0200
  26718. +++ uClibc-git/include/sys/mount.h 2014-06-02 17:40:33.866711166 +0200
  26719. @@ -1,5 +1,5 @@
  26720. /* Header file for mounting/unmount Linux filesystems.
  26721. - Copyright (C) 1996,1997,1998,1999,2000,2004 Free Software Foundation, Inc.
  26722. + Copyright (C) 1996-2000, 2004, 2010, 2012 Free Software Foundation, Inc.
  26723. This file is part of the GNU C Library.
  26724. The GNU C Library is free software; you can redistribute it and/or
  26725. @@ -13,9 +13,8 @@
  26726. Lesser General Public License for more details.
  26727. You should have received a copy of the GNU Lesser General Public
  26728. - License along with the GNU C Library; if not, write to the Free
  26729. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26730. - 02111-1307 USA. */
  26731. + License along with the GNU C Library; if not, see
  26732. + <http://www.gnu.org/licenses/>. */
  26733. /* This is taken from /usr/include/linux/fs.h. */
  26734. @@ -47,23 +46,46 @@
  26735. #define MS_REMOUNT MS_REMOUNT
  26736. MS_MANDLOCK = 64, /* Allow mandatory locks on an FS. */
  26737. #define MS_MANDLOCK MS_MANDLOCK
  26738. - S_WRITE = 128, /* Write on file/directory/symlink. */
  26739. -#define S_WRITE S_WRITE
  26740. - S_APPEND = 256, /* Append-only file. */
  26741. -#define S_APPEND S_APPEND
  26742. - S_IMMUTABLE = 512, /* Immutable file. */
  26743. -#define S_IMMUTABLE S_IMMUTABLE
  26744. + MS_DIRSYNC = 128, /* Directory modifications are synchronous. */
  26745. +#define MS_DIRSYNC MS_DIRSYNC
  26746. MS_NOATIME = 1024, /* Do not update access times. */
  26747. #define MS_NOATIME MS_NOATIME
  26748. MS_NODIRATIME = 2048, /* Do not update directory access times. */
  26749. #define MS_NODIRATIME MS_NODIRATIME
  26750. MS_BIND = 4096, /* Bind directory at different place. */
  26751. #define MS_BIND MS_BIND
  26752. + MS_MOVE = 8192,
  26753. +#define MS_MOVE MS_MOVE
  26754. + MS_REC = 16384,
  26755. +#define MS_REC MS_REC
  26756. + MS_SILENT = 32768,
  26757. +#define MS_SILENT MS_SILENT
  26758. + MS_POSIXACL = 1 << 16, /* VFS does not apply the umask. */
  26759. +#define MS_POSIXACL MS_POSIXACL
  26760. + MS_UNBINDABLE = 1 << 17, /* Change to unbindable. */
  26761. +#define MS_UNBINDABLE MS_UNBINDABLE
  26762. + MS_PRIVATE = 1 << 18, /* Change to private. */
  26763. +#define MS_PRIVATE MS_PRIVATE
  26764. + MS_SLAVE = 1 << 19, /* Change to slave. */
  26765. +#define MS_SLAVE MS_SLAVE
  26766. + MS_SHARED = 1 << 20, /* Change to shared. */
  26767. +#define MS_SHARED MS_SHARED
  26768. + MS_RELATIME = 1 << 21, /* Update atime relative to mtime/ctime. */
  26769. +#define MS_RELATIME MS_RELATIME
  26770. + MS_KERNMOUNT = 1 << 22, /* This is a kern_mount call. */
  26771. +#define MS_KERNMOUNT MS_KERNMOUNT
  26772. + MS_I_VERSION = 1 << 23, /* Update inode I_version field. */
  26773. +#define MS_I_VERSION MS_I_VERSION
  26774. + MS_STRICTATIME = 1 << 24, /* Always perform atime updates. */
  26775. +#define MS_STRICTATIME MS_STRICTATIME
  26776. + MS_ACTIVE = 1 << 30,
  26777. +#define MS_ACTIVE MS_ACTIVE
  26778. + MS_NOUSER = 1 << 31
  26779. +#define MS_NOUSER MS_NOUSER
  26780. };
  26781. /* Flags that can be altered by MS_REMOUNT */
  26782. -#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_NOATIME \
  26783. - |MS_NODIRATIME)
  26784. +#define MS_RMT_MASK (MS_RDONLY|MS_SYNCHRONOUS|MS_MANDLOCK|MS_I_VERSION)
  26785. /* Magic mount flag number. Has to be or-ed to the flag values. */
  26786. @@ -100,23 +122,28 @@
  26787. #define MNT_FORCE MNT_FORCE
  26788. MNT_DETACH = 2, /* Just detach from the tree. */
  26789. #define MNT_DETACH MNT_DETACH
  26790. - MNT_EXPIRE = 4 /* Mark for expiry. */
  26791. + MNT_EXPIRE = 4, /* Mark for expiry. */
  26792. #define MNT_EXPIRE MNT_EXPIRE
  26793. + UMOUNT_NOFOLLOW = 8 /* Don't follow symlink on umount. */
  26794. +#define UMOUNT_NOFOLLOW UMOUNT_NOFOLLOW
  26795. };
  26796. __BEGIN_DECLS
  26797. /* Mount a filesystem. */
  26798. -extern int mount (__const char *__special_file, __const char *__dir,
  26799. - __const char *__fstype, unsigned long int __rwflag,
  26800. - __const void *__data) __THROW;
  26801. +extern int mount (const char *__special_file, const char *__dir,
  26802. + const char *__fstype, unsigned long int __rwflag,
  26803. + const void *__data) __THROW;
  26804. /* Unmount a filesystem. */
  26805. -extern int umount (__const char *__special_file) __THROW;
  26806. +extern int umount (const char *__special_file) __THROW;
  26807. +#ifdef __UCLIBC_LINUX_SPECIFIC__
  26808. /* Unmount a filesystem. Force unmounting if FLAGS is set to MNT_FORCE. */
  26809. -extern int umount2 (__const char *__special_file, int __flags) __THROW;
  26810. +extern int umount2 (const char *__special_file, int __flags) __THROW;
  26811. +libc_hidden_proto(umount2)
  26812. +#endif
  26813. __END_DECLS
  26814. diff -Nur uClibc-0.9.33.2/include/sys/msg.h uClibc-git/include/sys/msg.h
  26815. --- uClibc-0.9.33.2/include/sys/msg.h 2012-05-15 09:20:09.000000000 +0200
  26816. +++ uClibc-git/include/sys/msg.h 2014-06-02 17:40:33.866711166 +0200
  26817. @@ -13,9 +13,8 @@
  26818. Lesser General Public License for more details.
  26819. You should have received a copy of the GNU Lesser General Public
  26820. - License along with the GNU C Library; if not, write to the Free
  26821. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26822. - 02111-1307 USA. */
  26823. + License along with the GNU C Library; if not, see
  26824. + <http://www.gnu.org/licenses/>. */
  26825. #ifndef _SYS_MSG_H
  26826. #define _SYS_MSG_H
  26827. @@ -77,7 +76,7 @@
  26828. This function is a cancellation point and therefore not marked with
  26829. __THROW. */
  26830. -extern int msgsnd (int __msqid, __const void *__msgp, size_t __msgsz,
  26831. +extern int msgsnd (int __msqid, const void *__msgp, size_t __msgsz,
  26832. int __msgflg);
  26833. __END_DECLS
  26834. diff -Nur uClibc-0.9.33.2/include/sys/mtio.h uClibc-git/include/sys/mtio.h
  26835. --- uClibc-0.9.33.2/include/sys/mtio.h 2012-05-15 09:20:09.000000000 +0200
  26836. +++ uClibc-git/include/sys/mtio.h 2014-06-02 17:40:33.866711166 +0200
  26837. @@ -13,9 +13,8 @@
  26838. Lesser General Public License for more details.
  26839. You should have received a copy of the GNU Lesser General Public
  26840. - License along with the GNU C Library; if not, write to the Free
  26841. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26842. - 02111-1307 USA. */
  26843. + License along with the GNU C Library; if not, see
  26844. + <http://www.gnu.org/licenses/>. */
  26845. /* Written by H. Bergman <hennus@cybercomm.nl>. */
  26846. diff -Nur uClibc-0.9.33.2/include/sys/param.h uClibc-git/include/sys/param.h
  26847. --- uClibc-0.9.33.2/include/sys/param.h 2012-05-15 09:20:09.000000000 +0200
  26848. +++ uClibc-git/include/sys/param.h 2014-06-02 17:40:33.866711166 +0200
  26849. @@ -12,9 +12,8 @@
  26850. Lesser General Public License for more details.
  26851. You should have received a copy of the GNU Lesser General Public
  26852. - License along with the GNU C Library; if not, write to the Free
  26853. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26854. - 02111-1307 USA. */
  26855. + License along with the GNU C Library; if not, see
  26856. + <http://www.gnu.org/licenses/>. */
  26857. #ifndef _SYS_PARAM_H
  26858. #define _SYS_PARAM_H 1
  26859. diff -Nur uClibc-0.9.33.2/include/sys/personality.h uClibc-git/include/sys/personality.h
  26860. --- uClibc-0.9.33.2/include/sys/personality.h 2012-05-15 09:20:09.000000000 +0200
  26861. +++ uClibc-git/include/sys/personality.h 2014-06-02 17:40:33.866711166 +0200
  26862. @@ -12,9 +12,8 @@
  26863. Lesser General Public License for more details.
  26864. You should have received a copy of the GNU Lesser General Public
  26865. - License along with the GNU C Library; if not, write to the Free
  26866. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26867. - 02111-1307 USA. */
  26868. + License along with the GNU C Library; if not, see
  26869. + <http://www.gnu.org/licenses/>. */
  26870. /* Taken verbatim from Linux 2.4 (include/linux/personality.h). */
  26871. diff -Nur uClibc-0.9.33.2/include/sys/poll.h uClibc-git/include/sys/poll.h
  26872. --- uClibc-0.9.33.2/include/sys/poll.h 2012-05-15 09:20:09.000000000 +0200
  26873. +++ uClibc-git/include/sys/poll.h 2014-06-02 17:40:33.866711166 +0200
  26874. @@ -13,9 +13,8 @@
  26875. Lesser General Public License for more details.
  26876. You should have received a copy of the GNU Lesser General Public
  26877. - License along with the GNU C Library; if not, write to the Free
  26878. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  26879. - 02111-1307 USA. */
  26880. + License along with the GNU C Library; if not, see
  26881. + <http://www.gnu.org/licenses/>. */
  26882. #ifndef _SYS_POLL_H
  26883. #define _SYS_POLL_H 1
  26884. @@ -66,9 +65,8 @@
  26885. This function is a cancellation point and therefore not marked with
  26886. __THROW. */
  26887. extern int ppoll (struct pollfd *__fds, nfds_t __nfds,
  26888. - __const struct timespec *__timeout,
  26889. - __const __sigset_t *__ss);
  26890. -libc_hidden_proto(ppoll)
  26891. + const struct timespec *__timeout,
  26892. + const __sigset_t *__ss);
  26893. #endif
  26894. __END_DECLS
  26895. diff -Nur uClibc-0.9.33.2/include/sys/quota.h uClibc-git/include/sys/quota.h
  26896. --- uClibc-0.9.33.2/include/sys/quota.h 2012-05-15 09:20:09.000000000 +0200
  26897. +++ uClibc-git/include/sys/quota.h 2014-06-02 17:40:33.866711166 +0200
  26898. @@ -30,8 +30,6 @@
  26899. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  26900. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  26901. * SUCH DAMAGE.
  26902. - *
  26903. - * Version: $Id: quota.h,v 1.1 2002/01/03 04:00:09 andersen Exp $
  26904. */
  26905. #ifndef _SYS_QUOTA_H
  26906. @@ -40,6 +38,19 @@
  26907. #include <features.h>
  26908. #include <sys/types.h>
  26909. +#ifdef __UCLIBC__
  26910. +# undef _LINUX_QUOTA_VERSION
  26911. +# define _LINUX_QUOTA_VERSION 1
  26912. +#endif
  26913. +
  26914. +/*
  26915. + * Select between different incompatible quota versions.
  26916. + * Default to the version used by Linux kernel version 2.4.22
  26917. + * or later. */
  26918. +#ifndef _LINUX_QUOTA_VERSION
  26919. +# define _LINUX_QUOTA_VERSION 2
  26920. +#endif
  26921. +
  26922. /*
  26923. * Convert diskblocks to blocks and the other way around.
  26924. * currently only to fool the BSD source. :-)
  26925. @@ -94,21 +105,33 @@
  26926. #define SUBCMDSHIFT 8
  26927. #define QCMD(cmd, type) (((cmd) << SUBCMDSHIFT) | ((type) & SUBCMDMASK))
  26928. -#define Q_QUOTAON 0x0100 /* enable quotas */
  26929. -#define Q_QUOTAOFF 0x0200 /* disable quotas */
  26930. -#define Q_GETQUOTA 0x0300 /* get limits and usage */
  26931. -#define Q_SETQUOTA 0x0400 /* set limits and usage */
  26932. -#define Q_SETUSE 0x0500 /* set usage */
  26933. -#define Q_SYNC 0x0600 /* sync disk copy of a filesystems quotas */
  26934. -#define Q_SETQLIM 0x0700 /* set limits */
  26935. -#define Q_GETSTATS 0x0800 /* get collected stats */
  26936. -#define Q_RSQUASH 0x1000 /* set root_squash option */
  26937. +#if _LINUX_QUOTA_VERSION < 2
  26938. +# define Q_QUOTAON 0x0100 /* enable quotas */
  26939. +# define Q_QUOTAOFF 0x0200 /* disable quotas */
  26940. +# define Q_GETQUOTA 0x0300 /* get limits and usage */
  26941. +# define Q_SETQUOTA 0x0400 /* set limits and usage */
  26942. +# define Q_SETUSE 0x0500 /* set usage */
  26943. +# define Q_SYNC 0x0600 /* sync disk copy of a filesystems quotas */
  26944. +# define Q_SETQLIM 0x0700 /* set limits */
  26945. +# define Q_GETSTATS 0x0800 /* get collected stats */
  26946. +# define Q_RSQUASH 0x1000 /* set root_squash option */
  26947. +#else
  26948. +# define Q_SYNC 0x800001 /* sync disk copy of a filesystems quotas */
  26949. +# define Q_QUOTAON 0x800002 /* turn quotas on */
  26950. +# define Q_QUOTAOFF 0x800003 /* turn quotas off */
  26951. +# define Q_GETFMT 0x800004 /* get quota format used on given filesystem */
  26952. +# define Q_GETINFO 0x800005 /* get information about quota files */
  26953. +# define Q_SETINFO 0x800006 /* set information about quota files */
  26954. +# define Q_GETQUOTA 0x800007 /* get user quota structure */
  26955. +# define Q_SETQUOTA 0x800008 /* set user quota structure */
  26956. +#endif
  26957. /*
  26958. * The following structure defines the format of the disk quota file
  26959. * (as it appears on disk) - the file is an array of these structures
  26960. * indexed by user or group number.
  26961. */
  26962. +#if _LINUX_QUOTA_VERSION < 2
  26963. struct dqblk
  26964. {
  26965. u_int32_t dqb_bhardlimit; /* absolute limit on disk blks alloc */
  26966. @@ -120,13 +143,45 @@
  26967. time_t dqb_btime; /* time limit for excessive disk use */
  26968. time_t dqb_itime; /* time limit for excessive files */
  26969. };
  26970. +#else
  26971. +
  26972. +/* Flags that indicate which fields in dqblk structure are valid. */
  26973. +#define QIF_BLIMITS 1
  26974. +#define QIF_SPACE 2
  26975. +#define QIF_ILIMITS 4
  26976. +#define QIF_INODES 8
  26977. +#define QIF_BTIME 16
  26978. +#define QIF_ITIME 32
  26979. +#define QIF_LIMITS (QIF_BLIMITS | QIF_ILIMITS)
  26980. +#define QIF_USAGE (QIF_SPACE | QIF_INODES)
  26981. +#define QIF_TIMES (QIF_BTIME | QIF_ITIME)
  26982. +#define QIF_ALL (QIF_LIMITS | QIF_USAGE | QIF_TIMES)
  26983. +
  26984. +struct dqblk
  26985. + {
  26986. + u_int64_t dqb_bhardlimit; /* absolute limit on disk quota blocks alloc */
  26987. + u_int64_t dqb_bsoftlimit; /* preferred limit on disk quota blocks */
  26988. + u_int64_t dqb_curspace; /* current quota block count */
  26989. + u_int64_t dqb_ihardlimit; /* maximum # allocated inodes */
  26990. + u_int64_t dqb_isoftlimit; /* preferred inode limit */
  26991. + u_int64_t dqb_curinodes; /* current # allocated inodes */
  26992. + u_int64_t dqb_btime; /* time limit for excessive disk use */
  26993. + u_int64_t dqb_itime; /* time limit for excessive files */
  26994. + u_int32_t dqb_valid; /* bitmask of QIF_* constants */
  26995. + };
  26996. +#endif
  26997. /*
  26998. * Shorthand notation.
  26999. */
  27000. #define dq_bhardlimit dq_dqb.dqb_bhardlimit
  27001. #define dq_bsoftlimit dq_dqb.dqb_bsoftlimit
  27002. -#define dq_curblocks dq_dqb.dqb_curblocks
  27003. +#if _LINUX_QUOTA_VERSION < 2
  27004. +# define dq_curblocks dq_dqb.dqb_curblocks
  27005. +#else
  27006. +# define dq_curspace dq_dqb.dqb_curspace
  27007. +# define dq_valid dq_dqb.dqb_valid
  27008. +#endif
  27009. #define dq_ihardlimit dq_dqb.dqb_ihardlimit
  27010. #define dq_isoftlimit dq_dqb.dqb_isoftlimit
  27011. #define dq_curinodes dq_dqb.dqb_curinodes
  27012. @@ -135,6 +190,7 @@
  27013. #define dqoff(UID) ((loff_t)((UID) * sizeof (struct dqblk)))
  27014. +#if _LINUX_QUOTA_VERSION < 2
  27015. struct dqstats
  27016. {
  27017. u_int32_t lookups;
  27018. @@ -147,6 +203,22 @@
  27019. u_int32_t free_dquots;
  27020. u_int32_t syncs;
  27021. };
  27022. +#else
  27023. +
  27024. +/* Flags that indicate which fields in dqinfo structure are valid. */
  27025. +# define IIF_BGRACE 1
  27026. +# define IIF_IGRACE 2
  27027. +# define IIF_FLAGS 4
  27028. +# define IIF_ALL (IIF_BGRACE | IIF_IGRACE | IIF_FLAGS)
  27029. +
  27030. +struct dqinfo
  27031. + {
  27032. + u_int64_t dqi_bgrace;
  27033. + u_int64_t dqi_igrace;
  27034. + u_int32_t dqi_flags;
  27035. + u_int32_t dqi_valid;
  27036. + };
  27037. +#endif
  27038. __BEGIN_DECLS
  27039. diff -Nur uClibc-0.9.33.2/include/sys/reboot.h uClibc-git/include/sys/reboot.h
  27040. --- uClibc-0.9.33.2/include/sys/reboot.h 2012-05-15 09:20:09.000000000 +0200
  27041. +++ uClibc-git/include/sys/reboot.h 2014-06-02 17:40:33.866711166 +0200
  27042. @@ -12,9 +12,8 @@
  27043. Lesser General Public License for more details.
  27044. You should have received a copy of the GNU Lesser General Public
  27045. - License along with the GNU C Library; if not, write to the Free
  27046. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27047. - 02111-1307 USA. */
  27048. + License along with the GNU C Library; if not, see
  27049. + <http://www.gnu.org/licenses/>. */
  27050. /* This file should define RB_* macros to be used as flag
  27051. bits in the argument to the `reboot' system call. */
  27052. diff -Nur uClibc-0.9.33.2/include/sys/resource.h uClibc-git/include/sys/resource.h
  27053. --- uClibc-0.9.33.2/include/sys/resource.h 2012-05-15 09:20:09.000000000 +0200
  27054. +++ uClibc-git/include/sys/resource.h 2014-06-02 17:40:33.866711166 +0200
  27055. @@ -12,9 +12,8 @@
  27056. Lesser General Public License for more details.
  27057. You should have received a copy of the GNU Lesser General Public
  27058. - License along with the GNU C Library; if not, write to the Free
  27059. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27060. - 02111-1307 USA. */
  27061. + License along with the GNU C Library; if not, see
  27062. + <http://www.gnu.org/licenses/>. */
  27063. #ifndef _SYS_RESOURCE_H
  27064. #define _SYS_RESOURCE_H 1
  27065. @@ -69,12 +68,12 @@
  27066. Return 0 if successful, -1 if not (and sets errno). */
  27067. #ifndef __USE_FILE_OFFSET64
  27068. extern int setrlimit (__rlimit_resource_t __resource,
  27069. - __const struct rlimit *__rlimits) __THROW;
  27070. + const struct rlimit *__rlimits) __THROW;
  27071. libc_hidden_proto(setrlimit)
  27072. #else
  27073. # ifdef __REDIRECT_NTH
  27074. extern int __REDIRECT_NTH (setrlimit, (__rlimit_resource_t __resource,
  27075. - __const struct rlimit *__rlimits),
  27076. + const struct rlimit *__rlimits),
  27077. setrlimit64);
  27078. # else
  27079. # define setrlimit setrlimit64
  27080. @@ -82,7 +81,7 @@
  27081. #endif
  27082. #ifdef __USE_LARGEFILE64
  27083. extern int setrlimit64 (__rlimit_resource_t __resource,
  27084. - __const struct rlimit64 *__rlimits) __THROW;
  27085. + const struct rlimit64 *__rlimits) __THROW;
  27086. #endif
  27087. /* Return resource usage information on process indicated by WHO
  27088. diff -Nur uClibc-0.9.33.2/include/sys/select.h uClibc-git/include/sys/select.h
  27089. --- uClibc-0.9.33.2/include/sys/select.h 2012-05-15 09:20:09.000000000 +0200
  27090. +++ uClibc-git/include/sys/select.h 2014-06-02 17:40:33.866711166 +0200
  27091. @@ -13,9 +13,8 @@
  27092. Lesser General Public License for more details.
  27093. You should have received a copy of the GNU Lesser General Public
  27094. - License along with the GNU C Library; if not, write to the Free
  27095. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27096. - 02111-1307 USA. */
  27097. + License along with the GNU C Library; if not, see
  27098. + <http://www.gnu.org/licenses/>. */
  27099. /* POSIX 1003.1g: 6.2 Select from File Descriptor Sets <sys/select.h> */
  27100. @@ -110,7 +109,10 @@
  27101. fd_set *__restrict __writefds,
  27102. fd_set *__restrict __exceptfds,
  27103. struct timeval *__restrict __timeout);
  27104. +#ifdef _LIBC
  27105. +extern __typeof(select) __select_nocancel attribute_hidden;
  27106. libc_hidden_proto(select)
  27107. +#endif
  27108. #ifdef __USE_XOPEN2K
  27109. /* Same as above only that the TIMEOUT value is given with higher
  27110. diff -Nur uClibc-0.9.33.2/include/sys/sem.h uClibc-git/include/sys/sem.h
  27111. --- uClibc-0.9.33.2/include/sys/sem.h 2012-05-15 09:20:09.000000000 +0200
  27112. +++ uClibc-git/include/sys/sem.h 2014-06-02 17:40:33.866711166 +0200
  27113. @@ -12,9 +12,8 @@
  27114. Lesser General Public License for more details.
  27115. You should have received a copy of the GNU Lesser General Public
  27116. - License along with the GNU C Library; if not, write to the Free
  27117. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27118. - 02111-1307 USA. */
  27119. + License along with the GNU C Library; if not, see
  27120. + <http://www.gnu.org/licenses/>. */
  27121. #ifndef _SYS_SEM_H
  27122. #define _SYS_SEM_H 1
  27123. @@ -61,7 +60,7 @@
  27124. #ifdef __USE_GNU
  27125. /* Operate on semaphore with timeout. */
  27126. extern int semtimedop (int __semid, struct sembuf *__sops, size_t __nsops,
  27127. - __const struct timespec *__timeout) __THROW;
  27128. + const struct timespec *__timeout) __THROW;
  27129. #endif
  27130. __END_DECLS
  27131. diff -Nur uClibc-0.9.33.2/include/sys/sendfile.h uClibc-git/include/sys/sendfile.h
  27132. --- uClibc-0.9.33.2/include/sys/sendfile.h 2012-05-15 09:20:09.000000000 +0200
  27133. +++ uClibc-git/include/sys/sendfile.h 2014-06-02 17:40:33.866711166 +0200
  27134. @@ -13,9 +13,8 @@
  27135. Lesser General Public License for more details.
  27136. You should have received a copy of the GNU Lesser General Public
  27137. - License along with the GNU C Library; if not, write to the Free
  27138. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27139. - 02111-1307 USA. */
  27140. + License along with the GNU C Library; if not, see
  27141. + <http://www.gnu.org/licenses/>. */
  27142. #ifndef _SYS_SENDFILE_H
  27143. #define _SYS_SENDFILE_H 1
  27144. @@ -45,6 +44,7 @@
  27145. #ifdef __USE_LARGEFILE64
  27146. extern ssize_t sendfile64 (int __out_fd, int __in_fd, __off64_t *__offset,
  27147. size_t __count) __THROW;
  27148. +libc_hidden_proto(sendfile64)
  27149. #endif
  27150. __END_DECLS
  27151. diff -Nur uClibc-0.9.33.2/include/sys/shm.h uClibc-git/include/sys/shm.h
  27152. --- uClibc-0.9.33.2/include/sys/shm.h 2012-05-15 09:20:09.000000000 +0200
  27153. +++ uClibc-git/include/sys/shm.h 2014-06-02 17:40:33.866711166 +0200
  27154. @@ -12,9 +12,8 @@
  27155. Lesser General Public License for more details.
  27156. You should have received a copy of the GNU Lesser General Public
  27157. - License along with the GNU C Library; if not, write to the Free
  27158. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27159. - 02111-1307 USA. */
  27160. + License along with the GNU C Library; if not, see
  27161. + <http://www.gnu.org/licenses/>. */
  27162. #ifndef _SYS_SHM_H
  27163. #define _SYS_SHM_H 1
  27164. @@ -54,11 +53,11 @@
  27165. extern int shmget (key_t __key, size_t __size, int __shmflg) __THROW;
  27166. /* Attach shared memory segment. */
  27167. -extern void *shmat (int __shmid, __const void *__shmaddr, int __shmflg)
  27168. +extern void *shmat (int __shmid, const void *__shmaddr, int __shmflg)
  27169. __THROW;
  27170. /* Detach shared memory segment. */
  27171. -extern int shmdt (__const void *__shmaddr) __THROW;
  27172. +extern int shmdt (const void *__shmaddr) __THROW;
  27173. __END_DECLS
  27174. diff -Nur uClibc-0.9.33.2/include/sys/socket.h uClibc-git/include/sys/socket.h
  27175. --- uClibc-0.9.33.2/include/sys/socket.h 2012-05-15 09:20:09.000000000 +0200
  27176. +++ uClibc-git/include/sys/socket.h 2014-06-02 17:40:33.866711166 +0200
  27177. @@ -14,9 +14,8 @@
  27178. Lesser General Public License for more details.
  27179. You should have received a copy of the GNU Lesser General Public
  27180. - License along with the GNU C Library; if not, write to the Free
  27181. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27182. - 02111-1307 USA. */
  27183. + License along with the GNU C Library; if not, see
  27184. + <http://www.gnu.org/licenses/>. */
  27185. #ifndef _SYS_SOCKET_H
  27186. #define _SYS_SOCKET_H 1
  27187. @@ -69,7 +68,7 @@
  27188. old-style declaration, too. */
  27189. #if defined __cplusplus || !__GNUC_PREREQ (2, 7) || !defined __USE_GNU
  27190. # define __SOCKADDR_ARG struct sockaddr *__restrict
  27191. -# define __CONST_SOCKADDR_ARG __const struct sockaddr *
  27192. +# define __CONST_SOCKADDR_ARG const struct sockaddr *
  27193. #else
  27194. /* Add more `struct sockaddr_AF' types here as necessary.
  27195. These are all the ones I found on NetBSD and Linux. */
  27196. @@ -92,7 +91,7 @@
  27197. typedef union { __SOCKADDR_ALLTYPES
  27198. } __SOCKADDR_ARG __attribute__ ((__transparent_union__));
  27199. # undef __SOCKADDR_ONETYPE
  27200. -# define __SOCKADDR_ONETYPE(type) __const struct type *__restrict __##type##__;
  27201. +# define __SOCKADDR_ONETYPE(type) const struct type *__restrict __##type##__;
  27202. typedef union { __SOCKADDR_ALLTYPES
  27203. } __CONST_SOCKADDR_ARG __attribute__ ((__transparent_union__));
  27204. # undef __SOCKADDR_ONETYPE
  27205. @@ -142,7 +141,7 @@
  27206. This function is a cancellation point and therefore not marked with
  27207. __THROW. */
  27208. -extern ssize_t send (int __fd, __const void *__buf, size_t __n, int __flags);
  27209. +extern ssize_t send (int __fd, const void *__buf, size_t __n, int __flags);
  27210. libc_hidden_proto(send)
  27211. /* Read N bytes into BUF from socket FD.
  27212. @@ -158,10 +157,13 @@
  27213. This function is a cancellation point and therefore not marked with
  27214. __THROW. */
  27215. -extern ssize_t sendto (int __fd, __const void *__buf, size_t __n,
  27216. +extern ssize_t sendto (int __fd, const void *__buf, size_t __n,
  27217. int __flags, __CONST_SOCKADDR_ARG __addr,
  27218. socklen_t __addr_len);
  27219. +#ifdef _LIBC
  27220. +extern __typeof(sendto) __sendto_nocancel attribute_hidden;
  27221. libc_hidden_proto(sendto)
  27222. +#endif
  27223. /* Read N bytes into BUF through socket FD.
  27224. If ADDR is not NULL, fill in *ADDR_LEN bytes of it with tha address of
  27225. @@ -173,7 +175,10 @@
  27226. extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n,
  27227. int __flags, __SOCKADDR_ARG __addr,
  27228. socklen_t *__restrict __addr_len);
  27229. +#ifdef _LIBC
  27230. +extern __typeof(recvfrom) __recvfrom_nocancel attribute_hidden;
  27231. libc_hidden_proto(recvfrom)
  27232. +#endif
  27233. /* Send a message described MESSAGE on socket FD.
  27234. @@ -181,7 +186,7 @@
  27235. This function is a cancellation point and therefore not marked with
  27236. __THROW. */
  27237. -extern ssize_t sendmsg (int __fd, __const struct msghdr *__message,
  27238. +extern ssize_t sendmsg (int __fd, const struct msghdr *__message,
  27239. int __flags);
  27240. libc_hidden_proto(sendmsg)
  27241. @@ -205,7 +210,7 @@
  27242. to *OPTVAL (which is OPTLEN bytes long).
  27243. Returns 0 on success, -1 for errors. */
  27244. extern int setsockopt (int __fd, int __level, int __optname,
  27245. - __const void *__optval, socklen_t __optlen) __THROW;
  27246. + const void *__optval, socklen_t __optlen) __THROW;
  27247. libc_hidden_proto(setsockopt)
  27248. @@ -260,4 +265,8 @@
  27249. __END_DECLS
  27250. +#ifdef _LIBC
  27251. +extern int __socketcall(int, unsigned long *) attribute_hidden;
  27252. +#endif
  27253. +
  27254. #endif /* sys/socket.h */
  27255. diff -Nur uClibc-0.9.33.2/include/sys/statfs.h uClibc-git/include/sys/statfs.h
  27256. --- uClibc-0.9.33.2/include/sys/statfs.h 2012-05-15 09:20:09.000000000 +0200
  27257. +++ uClibc-git/include/sys/statfs.h 2014-06-02 17:40:33.870711188 +0200
  27258. @@ -13,9 +13,8 @@
  27259. Lesser General Public License for more details.
  27260. You should have received a copy of the GNU Lesser General Public
  27261. - License along with the GNU C Library; if not, write to the Free
  27262. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27263. - 02111-1307 USA. */
  27264. + License along with the GNU C Library; if not, see
  27265. + <http://www.gnu.org/licenses/>. */
  27266. #ifndef _SYS_STATFS_H
  27267. #define _SYS_STATFS_H 1
  27268. @@ -29,19 +28,20 @@
  27269. /* Return information about the filesystem on which FILE resides. */
  27270. #ifndef __USE_FILE_OFFSET64
  27271. -extern int statfs (__const char *__file, struct statfs *__buf)
  27272. +extern int statfs (const char *__file, struct statfs *__buf)
  27273. __THROW __nonnull ((1, 2));
  27274. +libc_hidden_proto(statfs)
  27275. #else
  27276. # ifdef __REDIRECT_NTH
  27277. extern int __REDIRECT_NTH (statfs,
  27278. - (__const char *__file, struct statfs *__buf),
  27279. + (const char *__file, struct statfs *__buf),
  27280. statfs64) __nonnull ((1, 2));
  27281. # else
  27282. # define statfs statfs64
  27283. # endif
  27284. #endif
  27285. #ifdef __USE_LARGEFILE64
  27286. -extern int statfs64 (__const char *__file, struct statfs64 *__buf)
  27287. +extern int statfs64 (const char *__file, struct statfs64 *__buf)
  27288. __THROW __nonnull ((1, 2));
  27289. libc_hidden_proto(statfs64)
  27290. #endif
  27291. diff -Nur uClibc-0.9.33.2/include/sys/stat.h uClibc-git/include/sys/stat.h
  27292. --- uClibc-0.9.33.2/include/sys/stat.h 2012-05-15 09:20:09.000000000 +0200
  27293. +++ uClibc-git/include/sys/stat.h 2014-06-02 17:40:33.870711188 +0200
  27294. @@ -13,9 +13,8 @@
  27295. Lesser General Public License for more details.
  27296. You should have received a copy of the GNU Lesser General Public
  27297. - License along with the GNU C Library; if not, write to the Free
  27298. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27299. - 02111-1307 USA. */
  27300. + License along with the GNU C Library; if not, see
  27301. + <http://www.gnu.org/licenses/>. */
  27302. /*
  27303. * POSIX Standard: 5.6 File Characteristics <sys/stat.h>
  27304. @@ -206,7 +205,7 @@
  27305. #ifndef __USE_FILE_OFFSET64
  27306. /* Get file attributes for FILE and put them in BUF. */
  27307. -extern int stat (__const char *__restrict __file,
  27308. +extern int stat (const char *__restrict __file,
  27309. struct stat *__restrict __buf) __THROW __nonnull ((1, 2));
  27310. libc_hidden_proto(stat)
  27311. @@ -216,7 +215,7 @@
  27312. libc_hidden_proto(fstat)
  27313. #else
  27314. # ifdef __REDIRECT_NTH
  27315. -extern int __REDIRECT_NTH (stat, (__const char *__restrict __file,
  27316. +extern int __REDIRECT_NTH (stat, (const char *__restrict __file,
  27317. struct stat *__restrict __buf), stat64)
  27318. __nonnull ((1, 2));
  27319. extern int __REDIRECT_NTH (fstat, (int __fd, struct stat *__buf), fstat64)
  27320. @@ -227,7 +226,7 @@
  27321. # endif
  27322. #endif
  27323. #ifdef __USE_LARGEFILE64
  27324. -extern int stat64 (__const char *__restrict __file,
  27325. +extern int stat64 (const char *__restrict __file,
  27326. struct stat64 *__restrict __buf) __THROW __nonnull ((1, 2));
  27327. extern int fstat64 (int __fd, struct stat64 *__buf) __THROW __nonnull ((2));
  27328. libc_hidden_proto(stat64)
  27329. @@ -239,12 +238,13 @@
  27330. Relative path names are interpreted relative to FD unless FD is
  27331. AT_FDCWD. */
  27332. # ifndef __USE_FILE_OFFSET64
  27333. -extern int fstatat (int __fd, __const char *__restrict __file,
  27334. +extern int fstatat (int __fd, const char *__restrict __file,
  27335. struct stat *__restrict __buf, int __flag)
  27336. __THROW __nonnull ((2, 3));
  27337. +libc_hidden_proto(fstatat)
  27338. # else
  27339. # ifdef __REDIRECT_NTH
  27340. -extern int __REDIRECT_NTH (fstatat, (int __fd, __const char *__restrict __file,
  27341. +extern int __REDIRECT_NTH (fstatat, (int __fd, const char *__restrict __file,
  27342. struct stat *__restrict __buf,
  27343. int __flag),
  27344. fstatat64) __nonnull ((2, 3));
  27345. @@ -254,9 +254,10 @@
  27346. # endif
  27347. # ifdef __USE_LARGEFILE64
  27348. -extern int fstatat64 (int __fd, __const char *__restrict __file,
  27349. +extern int fstatat64 (int __fd, const char *__restrict __file,
  27350. struct stat64 *__restrict __buf, int __flag)
  27351. __THROW __nonnull ((2, 3));
  27352. +libc_hidden_proto(fstatat64)
  27353. # endif
  27354. #endif
  27355. @@ -264,13 +265,13 @@
  27356. # ifndef __USE_FILE_OFFSET64
  27357. /* Get file attributes about FILE and put them in BUF.
  27358. If FILE is a symbolic link, do not follow it. */
  27359. -extern int lstat (__const char *__restrict __file,
  27360. +extern int lstat (const char *__restrict __file,
  27361. struct stat *__restrict __buf) __THROW __nonnull ((1, 2));
  27362. libc_hidden_proto(lstat)
  27363. # else
  27364. # ifdef __REDIRECT_NTH
  27365. extern int __REDIRECT_NTH (lstat,
  27366. - (__const char *__restrict __file,
  27367. + (const char *__restrict __file,
  27368. struct stat *__restrict __buf), lstat64)
  27369. __nonnull ((1, 2));
  27370. # else
  27371. @@ -278,7 +279,7 @@
  27372. # endif
  27373. # endif
  27374. # ifdef __USE_LARGEFILE64
  27375. -extern int lstat64 (__const char *__restrict __file,
  27376. +extern int lstat64 (const char *__restrict __file,
  27377. struct stat64 *__restrict __buf)
  27378. __THROW __nonnull ((1, 2));
  27379. libc_hidden_proto(lstat64)
  27380. @@ -287,7 +288,7 @@
  27381. /* Set file access permissions for FILE to MODE.
  27382. If FILE is a symbolic link, this affects its target instead. */
  27383. -extern int chmod (__const char *__file, __mode_t __mode)
  27384. +extern int chmod (const char *__file, __mode_t __mode)
  27385. __THROW __nonnull ((1));
  27386. libc_hidden_proto(chmod)
  27387. @@ -295,7 +296,7 @@
  27388. /* Set file access permissions for FILE to MODE.
  27389. If FILE is a symbolic link, this affects the link itself
  27390. rather than its target. */
  27391. -extern int lchmod (__const char *__file, __mode_t __mode)
  27392. +extern int lchmod (const char *__file, __mode_t __mode)
  27393. __THROW __nonnull ((1));
  27394. #endif
  27395. @@ -307,9 +308,10 @@
  27396. #ifdef __USE_ATFILE
  27397. /* Set file access permissions of FILE relative to
  27398. the directory FD is open on. */
  27399. -extern int fchmodat (int __fd, __const char *__file, __mode_t __mode,
  27400. +extern int fchmodat (int __fd, const char *__file, __mode_t __mode,
  27401. int __flag)
  27402. __THROW __nonnull ((2)) __wur;
  27403. +libc_hidden_proto(fchmodat)
  27404. #endif /* Use ATFILE. */
  27405. @@ -325,7 +327,7 @@
  27406. #endif
  27407. /* Create a new directory named PATH, with permission bits MODE. */
  27408. -extern int mkdir (__const char *__path, __mode_t __mode)
  27409. +extern int mkdir (const char *__path, __mode_t __mode)
  27410. __THROW __nonnull ((1));
  27411. libc_hidden_proto(mkdir)
  27412. @@ -333,15 +335,16 @@
  27413. /* Like mkdir, create a new directory with permission bits MODE. But
  27414. interpret relative PATH names relative to the directory associated
  27415. with FD. */
  27416. -extern int mkdirat (int __fd, __const char *__path, __mode_t __mode)
  27417. +extern int mkdirat (int __fd, const char *__path, __mode_t __mode)
  27418. __THROW __nonnull ((2));
  27419. +libc_hidden_proto(mkdirat)
  27420. #endif
  27421. /* Create a device file named PATH, with permission and special bits MODE
  27422. and device number DEV (which can be constructed from major and minor
  27423. device numbers with the `makedev' macro above). */
  27424. #if defined __USE_MISC || defined __USE_BSD || defined __USE_XOPEN_EXTENDED
  27425. -extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
  27426. +extern int mknod (const char *__path, __mode_t __mode, __dev_t __dev)
  27427. __THROW __nonnull ((1));
  27428. libc_hidden_proto(mknod)
  27429. @@ -349,7 +352,7 @@
  27430. /* Like mknod, create a new device file with permission bits MODE and
  27431. device number DEV. But interpret relative PATH names relative to
  27432. the directory associated with FD. */
  27433. -extern int mknodat (int __fd, __const char *__path, __mode_t __mode,
  27434. +extern int mknodat (int __fd, const char *__path, __mode_t __mode,
  27435. __dev_t __dev) __THROW __nonnull ((2));
  27436. libc_hidden_proto(mknodat)
  27437. # endif
  27438. @@ -357,22 +360,22 @@
  27439. /* Create a new FIFO named PATH, with permission bits MODE. */
  27440. -extern int mkfifo (__const char *__path, __mode_t __mode)
  27441. +extern int mkfifo (const char *__path, __mode_t __mode)
  27442. __THROW __nonnull ((1));
  27443. #ifdef __USE_ATFILE
  27444. /* Like mkfifo, create a new FIFO with permission bits MODE. But
  27445. interpret relative PATH names relative to the directory associated
  27446. with FD. */
  27447. -extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode)
  27448. +extern int mkfifoat (int __fd, const char *__path, __mode_t __mode)
  27449. __THROW __nonnull ((2));
  27450. #endif
  27451. #ifdef __USE_ATFILE
  27452. /* Set file access and modification times relative to directory file
  27453. descriptor. */
  27454. -extern int utimensat (int __fd, __const char *__path,
  27455. - __const struct timespec __times[2],
  27456. +extern int utimensat (int __fd, const char *__path,
  27457. + const struct timespec __times[2],
  27458. int __flags)
  27459. __THROW __nonnull ((2));
  27460. libc_hidden_proto(utimensat)
  27461. @@ -380,7 +383,7 @@
  27462. #ifdef __USE_XOPEN2K8
  27463. /* Set file access and modification times of the file associated with FD. */
  27464. -extern int futimens (int __fd, __const struct timespec __times[2]) __THROW;
  27465. +extern int futimens (int __fd, const struct timespec __times[2]) __THROW;
  27466. #endif
  27467. /* on uClibc we have unversioned struct stat and mknod.
  27468. diff -Nur uClibc-0.9.33.2/include/sys/statvfs.h uClibc-git/include/sys/statvfs.h
  27469. --- uClibc-0.9.33.2/include/sys/statvfs.h 2012-05-15 09:20:09.000000000 +0200
  27470. +++ uClibc-git/include/sys/statvfs.h 2014-06-02 17:40:33.870711188 +0200
  27471. @@ -13,9 +13,8 @@
  27472. Lesser General Public License for more details.
  27473. You should have received a copy of the GNU Lesser General Public
  27474. - License along with the GNU C Library; if not, write to the Free
  27475. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27476. - 02111-1307 USA. */
  27477. + License along with the GNU C Library; if not, see
  27478. + <http://www.gnu.org/licenses/>. */
  27479. #ifndef _SYS_STATVFS_H
  27480. #define _SYS_STATVFS_H 1
  27481. @@ -49,14 +48,14 @@
  27482. /* Return information about the filesystem on which FILE resides. */
  27483. #ifndef __USE_FILE_OFFSET64
  27484. -extern int statvfs (__const char *__restrict __file,
  27485. +extern int statvfs (const char *__restrict __file,
  27486. struct statvfs *__restrict __buf)
  27487. __THROW __nonnull ((1, 2));
  27488. libc_hidden_proto(statvfs)
  27489. #else
  27490. # ifdef __REDIRECT_NTH
  27491. extern int __REDIRECT_NTH (statvfs,
  27492. - (__const char *__restrict __file,
  27493. + (const char *__restrict __file,
  27494. struct statvfs *__restrict __buf), statvfs64)
  27495. __nonnull ((1, 2));
  27496. # else
  27497. @@ -64,7 +63,7 @@
  27498. # endif
  27499. #endif
  27500. #ifdef __USE_LARGEFILE64
  27501. -extern int statvfs64 (__const char *__restrict __file,
  27502. +extern int statvfs64 (const char *__restrict __file,
  27503. struct statvfs64 *__restrict __buf)
  27504. __THROW __nonnull ((1, 2));
  27505. #endif
  27506. diff -Nur uClibc-0.9.33.2/include/sys/swap.h uClibc-git/include/sys/swap.h
  27507. --- uClibc-0.9.33.2/include/sys/swap.h 2012-05-15 09:20:09.000000000 +0200
  27508. +++ uClibc-git/include/sys/swap.h 2014-06-02 17:40:33.870711188 +0200
  27509. @@ -13,9 +13,8 @@
  27510. Lesser General Public License for more details.
  27511. You should have received a copy of the GNU Lesser General Public
  27512. - License along with the GNU C Library; if not, write to the Free
  27513. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27514. - 02111-1307 USA. */
  27515. + License along with the GNU C Library; if not, see
  27516. + <http://www.gnu.org/licenses/>. */
  27517. #ifndef _SYS_SWAP_H
  27518. @@ -33,10 +32,10 @@
  27519. /* Make the block special device PATH available to the system for swapping.
  27520. This call is restricted to the super-user. */
  27521. -extern int swapon (__const char *__path, int __flags) __THROW;
  27522. +extern int swapon (const char *__path, int __flags) __THROW;
  27523. /* Stop using block special device PATH for swapping. */
  27524. -extern int swapoff (__const char *__path) __THROW;
  27525. +extern int swapoff (const char *__path) __THROW;
  27526. __END_DECLS
  27527. diff -Nur uClibc-0.9.33.2/include/sys/syscall.h uClibc-git/include/sys/syscall.h
  27528. --- uClibc-0.9.33.2/include/sys/syscall.h 2012-05-15 09:20:09.000000000 +0200
  27529. +++ uClibc-git/include/sys/syscall.h 2014-06-02 17:40:33.870711188 +0200
  27530. @@ -12,9 +12,8 @@
  27531. Lesser General Public License for more details.
  27532. You should have received a copy of the GNU Lesser General Public
  27533. - License along with the GNU C Library; if not, write to the Free
  27534. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27535. - 02111-1307 USA. */
  27536. + License along with the GNU C Library; if not, see
  27537. + <http://www.gnu.org/licenses/>. */
  27538. #ifndef _SYSCALL_H
  27539. #define _SYSCALL_H 1
  27540. diff -Nur uClibc-0.9.33.2/include/sys/sysctl.h uClibc-git/include/sys/sysctl.h
  27541. --- uClibc-0.9.33.2/include/sys/sysctl.h 2012-05-15 09:20:09.000000000 +0200
  27542. +++ uClibc-git/include/sys/sysctl.h 2014-06-02 17:40:33.870711188 +0200
  27543. @@ -12,9 +12,8 @@
  27544. Lesser General Public License for more details.
  27545. You should have received a copy of the GNU Lesser General Public
  27546. - License along with the GNU C Library; if not, write to the Free
  27547. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27548. - 02111-1307 USA. */
  27549. + License along with the GNU C Library; if not, see
  27550. + <http://www.gnu.org/licenses/>. */
  27551. #ifndef _SYS_SYSCTL_H
  27552. #define _SYS_SYSCTL_H 1
  27553. diff -Nur uClibc-0.9.33.2/include/sys/sysinfo.h uClibc-git/include/sys/sysinfo.h
  27554. --- uClibc-0.9.33.2/include/sys/sysinfo.h 2012-05-15 09:20:09.000000000 +0200
  27555. +++ uClibc-git/include/sys/sysinfo.h 2014-06-02 17:40:33.870711188 +0200
  27556. @@ -12,9 +12,8 @@
  27557. Lesser General Public License for more details.
  27558. You should have received a copy of the GNU Lesser General Public
  27559. - License along with the GNU C Library; if not, write to the Free
  27560. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27561. - 02111-1307 USA. */
  27562. + License along with the GNU C Library; if not, see
  27563. + <http://www.gnu.org/licenses/>. */
  27564. #ifndef _SYS_SYSINFO_H
  27565. #define _SYS_SYSINFO_H 1
  27566. @@ -24,6 +23,8 @@
  27567. #ifndef _LINUX_KERNEL_H
  27568. /* Include our own copy of struct sysinfo to avoid binary compatability
  27569. * problems with Linux 2.4, which changed things. Grumble, grumble. */
  27570. +#define _LINUX_SYSINFO_H
  27571. +
  27572. #define SI_LOAD_SHIFT 16
  27573. struct sysinfo {
  27574. long uptime; /* Seconds since boot */
  27575. diff -Nur uClibc-0.9.33.2/include/sys/syslog.h uClibc-git/include/sys/syslog.h
  27576. --- uClibc-0.9.33.2/include/sys/syslog.h 2012-05-15 09:20:09.000000000 +0200
  27577. +++ uClibc-git/include/sys/syslog.h 2014-06-02 17:40:33.870711188 +0200
  27578. @@ -179,14 +179,12 @@
  27579. This function is a possible cancellation point and therefore not
  27580. marked with __THROW. */
  27581. extern void closelog (void);
  27582. -libc_hidden_proto(closelog)
  27583. /* Open connection to system logger.
  27584. This function is a possible cancellation point and therefore not
  27585. marked with __THROW. */
  27586. -extern void openlog (__const char *__ident, int __option, int __facility);
  27587. -libc_hidden_proto(openlog)
  27588. +extern void openlog (const char *__ident, int __option, int __facility);
  27589. /* Set the log mask level. */
  27590. extern int setlogmask (int __mask) __THROW;
  27591. @@ -195,7 +193,7 @@
  27592. This function is a possible cancellation point and therefore not
  27593. marked with __THROW. */
  27594. -extern void syslog (int __pri, __const char *__fmt, ...)
  27595. +extern void syslog (int __pri, const char *__fmt, ...)
  27596. __attribute__ ((__format__ (__printf__, 2, 3)));
  27597. libc_hidden_proto(syslog)
  27598. @@ -206,9 +204,8 @@
  27599. cancellation point. But due to similarity with an POSIX interface
  27600. or due to the implementation it is a cancellation point and
  27601. therefore not marked with __THROW. */
  27602. -extern void vsyslog (int __pri, __const char *__fmt, __gnuc_va_list __ap)
  27603. +extern void vsyslog (int __pri, const char *__fmt, __gnuc_va_list __ap)
  27604. __attribute__ ((__format__ (__printf__, 2, 0)));
  27605. -libc_hidden_proto(vsyslog)
  27606. #endif
  27607. __END_DECLS
  27608. diff -Nur uClibc-0.9.33.2/include/sys/sysmacros.h uClibc-git/include/sys/sysmacros.h
  27609. --- uClibc-0.9.33.2/include/sys/sysmacros.h 2012-05-15 09:20:09.000000000 +0200
  27610. +++ uClibc-git/include/sys/sysmacros.h 2014-06-02 17:40:33.870711188 +0200
  27611. @@ -13,9 +13,8 @@
  27612. Lesser General Public License for more details.
  27613. You should have received a copy of the GNU Lesser General Public
  27614. - License along with the GNU C Library; if not, write to the Free
  27615. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27616. - 02111-1307 USA. */
  27617. + License along with the GNU C Library; if not, see
  27618. + <http://www.gnu.org/licenses/>. */
  27619. #ifndef _SYS_SYSMACROS_H
  27620. #define _SYS_SYSMACROS_H 1
  27621. diff -Nur uClibc-0.9.33.2/include/sys/timeb.h uClibc-git/include/sys/timeb.h
  27622. --- uClibc-0.9.33.2/include/sys/timeb.h 2012-05-15 09:20:09.000000000 +0200
  27623. +++ uClibc-git/include/sys/timeb.h 2014-06-02 17:40:33.886711276 +0200
  27624. @@ -12,9 +12,8 @@
  27625. Lesser General Public License for more details.
  27626. You should have received a copy of the GNU Lesser General Public
  27627. - License along with the GNU C Library; if not, write to the Free
  27628. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27629. - 02111-1307 USA. */
  27630. + License along with the GNU C Library; if not, see
  27631. + <http://www.gnu.org/licenses/>. */
  27632. #ifndef _SYS_TIMEB_H
  27633. #define _SYS_TIMEB_H 1
  27634. diff -Nur uClibc-0.9.33.2/include/sys/time.h uClibc-git/include/sys/time.h
  27635. --- uClibc-0.9.33.2/include/sys/time.h 2012-05-15 09:20:09.000000000 +0200
  27636. +++ uClibc-git/include/sys/time.h 2014-06-02 17:40:33.886711276 +0200
  27637. @@ -13,9 +13,8 @@
  27638. Lesser General Public License for more details.
  27639. You should have received a copy of the GNU Lesser General Public
  27640. - License along with the GNU C Library; if not, write to the Free
  27641. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27642. - 02111-1307 USA. */
  27643. + License along with the GNU C Library; if not, see
  27644. + <http://www.gnu.org/licenses/>. */
  27645. #ifndef _SYS_TIME_H
  27646. #define _SYS_TIME_H 1
  27647. @@ -77,8 +76,8 @@
  27648. #ifdef __USE_BSD
  27649. /* Set the current time of day and timezone information.
  27650. This call is restricted to the super-user. */
  27651. -extern int settimeofday (__const struct timeval *__tv,
  27652. - __const struct timezone *__tz)
  27653. +extern int settimeofday (const struct timeval *__tv,
  27654. + const struct timezone *__tz)
  27655. __THROW __nonnull ((1));
  27656. libc_hidden_proto(settimeofday)
  27657. @@ -86,7 +85,7 @@
  27658. If OLDDELTA is not NULL, it is filled in with the amount
  27659. of time adjustment remaining to be done from the last `adjtime' call.
  27660. This call is restricted to the super-user. */
  27661. -extern int adjtime (__const struct timeval *__delta,
  27662. +extern int adjtime (const struct timeval *__delta,
  27663. struct timeval *__olddelta) __THROW;
  27664. #endif
  27665. @@ -133,25 +132,25 @@
  27666. set *OLD to the old value of timer WHICH.
  27667. Returns 0 on success, -1 on errors. */
  27668. extern int setitimer (__itimer_which_t __which,
  27669. - __const struct itimerval *__restrict __new,
  27670. + const struct itimerval *__restrict __new,
  27671. struct itimerval *__restrict __old) __THROW;
  27672. libc_hidden_proto(setitimer)
  27673. /* Change the access time of FILE to TVP[0] and the modification time of
  27674. FILE to TVP[1]. If TVP is a null pointer, use the current time instead.
  27675. Returns 0 on success, -1 on errors. */
  27676. -extern int utimes (__const char *__file, __const struct timeval __tvp[2])
  27677. +extern int utimes (const char *__file, const struct timeval __tvp[2])
  27678. __THROW __nonnull ((1));
  27679. libc_hidden_proto(utimes)
  27680. #ifdef __USE_BSD
  27681. /* Same as `utimes', but does not follow symbolic links. */
  27682. -extern int lutimes (__const char *__file, __const struct timeval __tvp[2])
  27683. +extern int lutimes (const char *__file, const struct timeval __tvp[2])
  27684. __THROW __nonnull ((1));
  27685. #if 0
  27686. /* Same as `utimes', but takes an open file descriptor instead of a name. */
  27687. -extern int futimes (int __fd, __const struct timeval __tvp[2]) __THROW;
  27688. +extern int futimes (int __fd, const struct timeval __tvp[2]) __THROW;
  27689. #endif
  27690. #endif
  27691. @@ -159,8 +158,8 @@
  27692. /* Change the access time of FILE relative to FD to TVP[0] and the
  27693. modification time of FILE to TVP[1]. If TVP is a null pointer, use
  27694. the current time instead. Returns 0 on success, -1 on errors. */
  27695. -extern int futimesat (int __fd, __const char *__file,
  27696. - __const struct timeval __tvp[2]) __THROW;
  27697. +extern int futimesat (int __fd, const char *__file,
  27698. + const struct timeval __tvp[2]) __THROW;
  27699. #endif
  27700. diff -Nur uClibc-0.9.33.2/include/sys/times.h uClibc-git/include/sys/times.h
  27701. --- uClibc-0.9.33.2/include/sys/times.h 2012-05-15 09:20:09.000000000 +0200
  27702. +++ uClibc-git/include/sys/times.h 2014-06-02 17:40:33.886711276 +0200
  27703. @@ -12,9 +12,8 @@
  27704. Lesser General Public License for more details.
  27705. You should have received a copy of the GNU Lesser General Public
  27706. - License along with the GNU C Library; if not, write to the Free
  27707. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27708. - 02111-1307 USA. */
  27709. + License along with the GNU C Library; if not, see
  27710. + <http://www.gnu.org/licenses/>. */
  27711. /*
  27712. * POSIX Standard: 4.5.2 Process Times <sys/times.h>
  27713. diff -Nur uClibc-0.9.33.2/include/sys/timex.h uClibc-git/include/sys/timex.h
  27714. --- uClibc-0.9.33.2/include/sys/timex.h 2012-05-15 09:20:09.000000000 +0200
  27715. +++ uClibc-git/include/sys/timex.h 2014-06-02 17:40:33.886711276 +0200
  27716. @@ -12,9 +12,8 @@
  27717. Lesser General Public License for more details.
  27718. You should have received a copy of the GNU Lesser General Public
  27719. - License along with the GNU C Library; if not, write to the Free
  27720. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27721. - 02111-1307 USA. */
  27722. + License along with the GNU C Library; if not, see
  27723. + <http://www.gnu.org/licenses/>. */
  27724. #ifndef _SYS_TIMEX_H
  27725. #define _SYS_TIMEX_H 1
  27726. diff -Nur uClibc-0.9.33.2/include/sys/types.h uClibc-git/include/sys/types.h
  27727. --- uClibc-0.9.33.2/include/sys/types.h 2012-05-15 09:20:09.000000000 +0200
  27728. +++ uClibc-git/include/sys/types.h 2014-06-02 17:40:33.886711276 +0200
  27729. @@ -13,9 +13,8 @@
  27730. Lesser General Public License for more details.
  27731. You should have received a copy of the GNU Lesser General Public
  27732. - License along with the GNU C Library; if not, write to the Free
  27733. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27734. - 02111-1307 USA. */
  27735. + License along with the GNU C Library; if not, see
  27736. + <http://www.gnu.org/licenses/>. */
  27737. /*
  27738. * POSIX Standard: 2.6 Primitive System Data Types <sys/types.h>
  27739. @@ -165,7 +164,7 @@
  27740. typedef int int32_t;
  27741. # if __WORDSIZE == 64
  27742. typedef long int int64_t;
  27743. -# elif defined __GNUC__ || defined __ICC
  27744. +# elif defined __GNUC__ || defined __ICC || defined __TenDRA__
  27745. __extension__ typedef long long int int64_t;
  27746. # endif
  27747. # endif
  27748. @@ -176,7 +175,7 @@
  27749. typedef unsigned int u_int32_t;
  27750. # if __WORDSIZE == 64
  27751. typedef unsigned long int u_int64_t;
  27752. -# elif defined __GNUC__ || defined __ICC
  27753. +# elif defined __GNUC__ || defined __ICC || defined __TenDRA__
  27754. __extension__ typedef unsigned long long int u_int64_t;
  27755. # endif
  27756. diff -Nur uClibc-0.9.33.2/include/sys/uio.h uClibc-git/include/sys/uio.h
  27757. --- uClibc-0.9.33.2/include/sys/uio.h 2012-05-15 09:20:09.000000000 +0200
  27758. +++ uClibc-git/include/sys/uio.h 2014-06-02 17:40:33.886711276 +0200
  27759. @@ -12,9 +12,8 @@
  27760. Lesser General Public License for more details.
  27761. You should have received a copy of the GNU Lesser General Public
  27762. - License along with the GNU C Library; if not, write to the Free
  27763. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27764. - 02111-1307 USA. */
  27765. + License along with the GNU C Library; if not, see
  27766. + <http://www.gnu.org/licenses/>. */
  27767. #ifndef _SYS_UIO_H
  27768. #define _SYS_UIO_H 1
  27769. @@ -37,7 +36,7 @@
  27770. This function is a cancellation point and therefore not marked with
  27771. __THROW. */
  27772. -extern ssize_t readv (int __fd, __const struct iovec *__iovec, int __count);
  27773. +extern ssize_t readv (int __fd, const struct iovec *__iovec, int __count);
  27774. /* Write data pointed by the buffers described by IOVEC, which
  27775. is a vector of COUNT `struct iovec's, to file descriptor FD.
  27776. @@ -47,7 +46,7 @@
  27777. This function is a cancellation point and therefore not marked with
  27778. __THROW. */
  27779. -extern ssize_t writev (int __fd, __const struct iovec *__iovec, int __count);
  27780. +extern ssize_t writev (int __fd, const struct iovec *__iovec, int __count);
  27781. __END_DECLS
  27782. diff -Nur uClibc-0.9.33.2/include/sys/un.h uClibc-git/include/sys/un.h
  27783. --- uClibc-0.9.33.2/include/sys/un.h 2012-05-15 09:20:09.000000000 +0200
  27784. +++ uClibc-git/include/sys/un.h 2014-06-02 17:40:33.890711299 +0200
  27785. @@ -12,9 +12,8 @@
  27786. Lesser General Public License for more details.
  27787. You should have received a copy of the GNU Lesser General Public
  27788. - License along with the GNU C Library; if not, write to the Free
  27789. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27790. - 02111-1307 USA. */
  27791. + License along with the GNU C Library; if not, see
  27792. + <http://www.gnu.org/licenses/>. */
  27793. #ifndef _SYS_UN_H
  27794. #define _SYS_UN_H 1
  27795. diff -Nur uClibc-0.9.33.2/include/sys/ustat.h uClibc-git/include/sys/ustat.h
  27796. --- uClibc-0.9.33.2/include/sys/ustat.h 2012-05-15 09:20:09.000000000 +0200
  27797. +++ uClibc-git/include/sys/ustat.h 2014-06-02 17:40:33.890711299 +0200
  27798. @@ -13,9 +13,8 @@
  27799. Lesser General Public License for more details.
  27800. You should have received a copy of the GNU Lesser General Public
  27801. - License along with the GNU C Library; if not, write to the Free
  27802. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27803. - 02111-1307 USA. */
  27804. + License along with the GNU C Library; if not, see
  27805. + <http://www.gnu.org/licenses/>. */
  27806. /*
  27807. * This interface is obsolete. Use <sys/statfs.h> instead.
  27808. diff -Nur uClibc-0.9.33.2/include/sys/utsname.h uClibc-git/include/sys/utsname.h
  27809. --- uClibc-0.9.33.2/include/sys/utsname.h 2012-05-15 09:20:09.000000000 +0200
  27810. +++ uClibc-git/include/sys/utsname.h 2014-06-02 17:40:33.890711299 +0200
  27811. @@ -12,9 +12,8 @@
  27812. Lesser General Public License for more details.
  27813. You should have received a copy of the GNU Lesser General Public
  27814. - License along with the GNU C Library; if not, write to the Free
  27815. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27816. - 02111-1307 USA. */
  27817. + License along with the GNU C Library; if not, see
  27818. + <http://www.gnu.org/licenses/>. */
  27819. /*
  27820. * POSIX Standard: 4.4 System Identification <sys/utsname.h>
  27821. diff -Nur uClibc-0.9.33.2/include/sys/wait.h uClibc-git/include/sys/wait.h
  27822. --- uClibc-0.9.33.2/include/sys/wait.h 2012-05-15 09:20:09.000000000 +0200
  27823. +++ uClibc-git/include/sys/wait.h 2014-06-02 17:40:33.890711299 +0200
  27824. @@ -13,9 +13,8 @@
  27825. Lesser General Public License for more details.
  27826. You should have received a copy of the GNU Lesser General Public
  27827. - License along with the GNU C Library; if not, write to the Free
  27828. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27829. - 02111-1307 USA. */
  27830. + License along with the GNU C Library; if not, see
  27831. + <http://www.gnu.org/licenses/>. */
  27832. /*
  27833. * POSIX Standard: 3.2.1 Wait for Process Termination <sys/wait.h>
  27834. @@ -47,7 +46,7 @@
  27835. (__extension__ (((union { __typeof(status) __in; int __i; }) \
  27836. { .__in = (status) }).__i))
  27837. # else
  27838. -# define __WAIT_INT(status) (*(__const int *) &(status))
  27839. +# define __WAIT_INT(status) (*(const int *) &(status))
  27840. # endif
  27841. /* This is the type of the argument to `wait'. The funky union
  27842. @@ -137,7 +136,10 @@
  27843. This function is a cancellation point and therefore not marked with
  27844. __THROW. */
  27845. extern __pid_t waitpid (__pid_t __pid, int *__stat_loc, int __options);
  27846. +#ifdef _LIBC
  27847. +extern __typeof(waitpid) __waitpid_nocancel attribute_hidden;
  27848. libc_hidden_proto(waitpid)
  27849. +#endif
  27850. #if defined __USE_SVID || defined __USE_XOPEN
  27851. # define __need_siginfo_t
  27852. @@ -158,10 +160,6 @@
  27853. #endif
  27854. #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
  27855. -/* This being here makes the prototypes valid whether or not
  27856. - we have already included <sys/resource.h> to define `struct rusage'. */
  27857. -struct rusage;
  27858. -
  27859. /* Wait for a child to exit. When one does, put its status in *STAT_LOC and
  27860. return its process ID. For errors return (pid_t) -1. If USAGE is not
  27861. nil, store information about the child's resource usage there. If the
  27862. @@ -175,9 +173,12 @@
  27863. /* PID is like waitpid. Other args are like wait3. */
  27864. extern __pid_t wait4 (__pid_t __pid, __WAIT_STATUS __stat_loc, int __options,
  27865. struct rusage *__usage) __THROW;
  27866. -libc_hidden_proto(wait4)
  27867. #endif /* Use BSD. */
  27868. +#ifdef _LIBC
  27869. +extern __pid_t __wait4_nocancel(__pid_t, __WAIT_STATUS, int, struct rusage *) attribute_hidden;
  27870. +#endif
  27871. +
  27872. __END_DECLS
  27873. diff -Nur uClibc-0.9.33.2/include/sys/xattr.h uClibc-git/include/sys/xattr.h
  27874. --- uClibc-0.9.33.2/include/sys/xattr.h 2012-05-15 09:20:09.000000000 +0200
  27875. +++ uClibc-git/include/sys/xattr.h 2014-06-02 17:40:33.890711299 +0200
  27876. @@ -12,9 +12,8 @@
  27877. Lesser General Public License for more details.
  27878. You should have received a copy of the GNU Lesser General Public
  27879. - License along with the GNU C Library; if not, write to the Free
  27880. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27881. - 02111-1307 USA. */
  27882. + License along with the GNU C Library; if not, see
  27883. + <http://www.gnu.org/licenses/>. */
  27884. #ifndef _SYS_XATTR_H
  27885. #define _SYS_XATTR_H 1
  27886. @@ -37,48 +36,48 @@
  27887. /* Set the attribute NAME of the file pointed to by PATH to VALUE (which
  27888. is SIZE bytes long). Return 0 on success, -1 for errors. */
  27889. -extern int setxattr (__const char *__path, __const char *__name,
  27890. - __const void *__value, size_t __size, int __flags)
  27891. +extern int setxattr (const char *__path, const char *__name,
  27892. + const void *__value, size_t __size, int __flags)
  27893. __THROW;
  27894. /* Set the attribute NAME of the file pointed to by PATH to VALUE (which is
  27895. SIZE bytes long), not following symlinks for the last pathname component.
  27896. Return 0 on success, -1 for errors. */
  27897. -extern int lsetxattr (__const char *__path, __const char *__name,
  27898. - __const void *__value, size_t __size, int __flags)
  27899. +extern int lsetxattr (const char *__path, const char *__name,
  27900. + const void *__value, size_t __size, int __flags)
  27901. __THROW;
  27902. /* Set the attribute NAME of the file descriptor FD to VALUE (which is SIZE
  27903. bytes long). Return 0 on success, -1 for errors. */
  27904. -extern int fsetxattr (int __fd, __const char *__name, __const void *__value,
  27905. +extern int fsetxattr (int __fd, const char *__name, const void *__value,
  27906. size_t __size, int __flags) __THROW;
  27907. /* Get the attribute NAME of the file pointed to by PATH to VALUE (which is
  27908. SIZE bytes long). Return 0 on success, -1 for errors. */
  27909. -extern ssize_t getxattr (__const char *__path, __const char *__name,
  27910. +extern ssize_t getxattr (const char *__path, const char *__name,
  27911. void *__value, size_t __size) __THROW;
  27912. /* Get the attribute NAME of the file pointed to by PATH to VALUE (which is
  27913. SIZE bytes long), not following symlinks for the last pathname component.
  27914. Return 0 on success, -1 for errors. */
  27915. -extern ssize_t lgetxattr (__const char *__path, __const char *__name,
  27916. +extern ssize_t lgetxattr (const char *__path, const char *__name,
  27917. void *__value, size_t __size) __THROW;
  27918. /* Get the attribute NAME of the file descriptor FD to VALUE (which is SIZE
  27919. bytes long). Return 0 on success, -1 for errors. */
  27920. -extern ssize_t fgetxattr (int __fd, __const char *__name, void *__value,
  27921. +extern ssize_t fgetxattr (int __fd, const char *__name, void *__value,
  27922. size_t __size) __THROW;
  27923. /* List attributes of the file pointed to by PATH into the user-supplied
  27924. buffer LIST (which is SIZE bytes big). Return 0 on success, -1 for
  27925. errors. */
  27926. -extern ssize_t listxattr (__const char *__path, char *__list, size_t __size)
  27927. +extern ssize_t listxattr (const char *__path, char *__list, size_t __size)
  27928. __THROW;
  27929. /* List attributes of the file pointed to by PATH into the user-supplied
  27930. buffer LIST (which is SIZE bytes big), not following symlinks for the
  27931. last pathname component. Return 0 on success, -1 for errors. */
  27932. -extern ssize_t llistxattr (__const char *__path, char *__list, size_t __size)
  27933. +extern ssize_t llistxattr (const char *__path, char *__list, size_t __size)
  27934. __THROW;
  27935. /* List attributes of the file descriptor FD into the user-supplied buffer
  27936. @@ -88,16 +87,16 @@
  27937. /* Remove the attribute NAME from the file pointed to by PATH. Return 0
  27938. on success, -1 for errors. */
  27939. -extern int removexattr (__const char *__path, __const char *__name) __THROW;
  27940. +extern int removexattr (const char *__path, const char *__name) __THROW;
  27941. /* Remove the attribute NAME from the file pointed to by PATH, not
  27942. following symlinks for the last pathname component. Return 0 on
  27943. success, -1 for errors. */
  27944. -extern int lremovexattr (__const char *__path, __const char *__name) __THROW;
  27945. +extern int lremovexattr (const char *__path, const char *__name) __THROW;
  27946. /* Remove the attribute NAME from the file descriptor FD. Return 0 on
  27947. success, -1 for errors. */
  27948. -extern int fremovexattr (int __fd, __const char *__name) __THROW;
  27949. +extern int fremovexattr (int __fd, const char *__name) __THROW;
  27950. __END_DECLS
  27951. diff -Nur uClibc-0.9.33.2/include/tar.h uClibc-git/include/tar.h
  27952. --- uClibc-0.9.33.2/include/tar.h 2012-05-15 09:20:09.000000000 +0200
  27953. +++ uClibc-git/include/tar.h 2014-06-02 17:40:33.898711343 +0200
  27954. @@ -14,9 +14,8 @@
  27955. Lesser General Public License for more details.
  27956. You should have received a copy of the GNU Lesser General Public
  27957. - License along with the GNU C Library; if not, write to the Free
  27958. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27959. - 02111-1307 USA. */
  27960. + License along with the GNU C Library; if not, see
  27961. + <http://www.gnu.org/licenses/>. */
  27962. #ifndef _TAR_H
  27963. #define _TAR_H 1
  27964. diff -Nur uClibc-0.9.33.2/include/termios.h uClibc-git/include/termios.h
  27965. --- uClibc-0.9.33.2/include/termios.h 2012-05-15 09:20:09.000000000 +0200
  27966. +++ uClibc-git/include/termios.h 2014-06-02 17:40:33.898711343 +0200
  27967. @@ -12,9 +12,8 @@
  27968. Lesser General Public License for more details.
  27969. You should have received a copy of the GNU Lesser General Public
  27970. - License along with the GNU C Library; if not, write to the Free
  27971. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  27972. - 02111-1307 USA. */
  27973. + License along with the GNU C Library; if not, see
  27974. + <http://www.gnu.org/licenses/>. */
  27975. /*
  27976. * POSIX Standard: 7.1-2 General Terminal Interface <termios.h>
  27977. @@ -46,10 +45,10 @@
  27978. #endif
  27979. /* Return the output baud rate stored in *TERMIOS_P. */
  27980. -extern speed_t cfgetospeed (__const struct termios *__termios_p) __THROW;
  27981. +extern speed_t cfgetospeed (const struct termios *__termios_p) __THROW;
  27982. /* Return the input baud rate stored in *TERMIOS_P. */
  27983. -extern speed_t cfgetispeed (__const struct termios *__termios_p) __THROW;
  27984. +extern speed_t cfgetispeed (const struct termios *__termios_p) __THROW;
  27985. /* Set the output baud rate stored in *TERMIOS_P to SPEED. */
  27986. extern int cfsetospeed (struct termios *__termios_p, speed_t __speed) __THROW;
  27987. @@ -72,7 +71,7 @@
  27988. /* Set the state of FD to *TERMIOS_P.
  27989. Values for OPTIONAL_ACTIONS (TCSA*) are in <bits/termios.h>. */
  27990. extern int tcsetattr (int __fd, int __optional_actions,
  27991. - __const struct termios *__termios_p) __THROW;
  27992. + const struct termios *__termios_p) __THROW;
  27993. libc_hidden_proto(tcsetattr)
  27994. diff -Nur uClibc-0.9.33.2/include/tgmath.h uClibc-git/include/tgmath.h
  27995. --- uClibc-0.9.33.2/include/tgmath.h 2012-05-15 09:20:09.000000000 +0200
  27996. +++ uClibc-git/include/tgmath.h 2014-06-02 17:40:33.898711343 +0200
  27997. @@ -1,4 +1,5 @@
  27998. -/* Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
  27999. +/* Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2007
  28000. + Free Software Foundation, Inc.
  28001. This file is part of the GNU C Library.
  28002. The GNU C Library is free software; you can redistribute it and/or
  28003. @@ -12,9 +13,8 @@
  28004. Lesser General Public License for more details.
  28005. You should have received a copy of the GNU Lesser General Public
  28006. - License along with the GNU C Library; if not, write to the Free
  28007. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  28008. - 02111-1307 USA. */
  28009. + License along with the GNU C Library; if not, see
  28010. + <http://www.gnu.org/licenses/>. */
  28011. /*
  28012. * ISO C99 Standard: 7.22 Type-generic math <tgmath.h>
  28013. @@ -47,174 +47,199 @@
  28014. /* 1 if 'type' is a floating type, 0 if 'type' is an integer type.
  28015. Allows for _Bool. Expands to an integer constant expression. */
  28016. -# define __floating_type(type) (((type) 0.25) && ((type) 0.25 - 1))
  28017. +# if 0 /* __GNUC_PREREQ (3, 1) */
  28018. +# define __floating_type(type) \
  28019. + (__builtin_classify_type ((type) 0) == 8 \
  28020. + || (__builtin_classify_type ((type) 0) == 9 \
  28021. + && __builtin_classify_type (__real__ ((type) 0)) == 8))
  28022. +# else
  28023. +# define __floating_type(type) (((type) 0.25) && ((type) 0.25 - 1))
  28024. +# endif
  28025. /* The tgmath real type for T, where E is 0 if T is an integer type and
  28026. 1 for a floating type. */
  28027. # define __tgmath_real_type_sub(T, E) \
  28028. - __typeof__(*(0 ? (__typeof__ (0 ? (double *) 0 : (void *) (E))) 0 \
  28029. - : (__typeof__ (0 ? (T *) 0 : (void *) (!(E)))) 0))
  28030. + __typeof__ (*(0 ? (__typeof__ (0 ? (double *) 0 : (void *) (E))) 0 \
  28031. + : (__typeof__ (0 ? (T *) 0 : (void *) (!(E)))) 0))
  28032. /* The tgmath real type of EXPR. */
  28033. # define __tgmath_real_type(expr) \
  28034. - __tgmath_real_type_sub(__typeof__(expr), __floating_type(__typeof__(expr)))
  28035. + __tgmath_real_type_sub (__typeof__ ((__typeof__ (expr)) 0), \
  28036. + __floating_type (__typeof__ (expr)))
  28037. /* We have two kinds of generic macros: to support functions which are
  28038. only defined on real valued parameters and those which are defined
  28039. for complex functions as well. */
  28040. # define __TGMATH_UNARY_REAL_ONLY(Val, Fct) \
  28041. - (__extension__ ({ __tgmath_real_type (Val) __tgmres; \
  28042. - if (sizeof (Val) == sizeof (double) \
  28043. - || __builtin_classify_type (Val) != 8) \
  28044. - __tgmres = Fct (Val); \
  28045. - else if (sizeof (Val) == sizeof (float)) \
  28046. - __tgmres = Fct##f (Val); \
  28047. - else \
  28048. - __tgmres = __tgml(Fct) (Val); \
  28049. - __tgmres; }))
  28050. + (__extension__ ((sizeof (Val) == sizeof (double) \
  28051. + || __builtin_classify_type (Val) != 8) \
  28052. + ? (__tgmath_real_type (Val)) Fct (Val) \
  28053. + : (sizeof (Val) == sizeof (float)) \
  28054. + ? (__tgmath_real_type (Val)) Fct##f (Val) \
  28055. + : (__tgmath_real_type (Val)) __tgml(Fct) (Val)))
  28056. +
  28057. +# define __TGMATH_UNARY_REAL_RET_ONLY(Val, RetType, Fct) \
  28058. + (__extension__ ((sizeof (Val) == sizeof (double) \
  28059. + || __builtin_classify_type (Val) != 8) \
  28060. + ? (RetType) Fct (Val) \
  28061. + : (sizeof (Val) == sizeof (float)) \
  28062. + ? (RetType) Fct##f (Val) \
  28063. + : (RetType) __tgml(Fct) (Val)))
  28064. # define __TGMATH_BINARY_FIRST_REAL_ONLY(Val1, Val2, Fct) \
  28065. - (__extension__ ({ __tgmath_real_type (Val1) __tgmres; \
  28066. - if (sizeof (Val1) == sizeof (double) \
  28067. - || __builtin_classify_type (Val1) != 8) \
  28068. - __tgmres = Fct (Val1, Val2); \
  28069. - else if (sizeof (Val1) == sizeof (float)) \
  28070. - __tgmres = Fct##f (Val1, Val2); \
  28071. - else \
  28072. - __tgmres = __tgml(Fct) (Val1, Val2); \
  28073. - __tgmres; }))
  28074. + (__extension__ ((sizeof (Val1) == sizeof (double) \
  28075. + || __builtin_classify_type (Val1) != 8) \
  28076. + ? (__tgmath_real_type (Val1)) Fct (Val1, Val2) \
  28077. + : (sizeof (Val1) == sizeof (float)) \
  28078. + ? (__tgmath_real_type (Val1)) Fct##f (Val1, Val2) \
  28079. + : (__tgmath_real_type (Val1)) __tgml(Fct) (Val1, Val2)))
  28080. # define __TGMATH_BINARY_REAL_ONLY(Val1, Val2, Fct) \
  28081. - (__extension__ ({ __tgmath_real_type ((Val1) + (Val2)) __tgmres; \
  28082. - if ((sizeof (Val1) > sizeof (double) \
  28083. - || sizeof (Val2) > sizeof (double)) \
  28084. - && __builtin_classify_type ((Val1) + (Val2)) == 8) \
  28085. - __tgmres = __tgml(Fct) (Val1, Val2); \
  28086. - else if (sizeof (Val1) == sizeof (double) \
  28087. - || sizeof (Val2) == sizeof (double) \
  28088. - || __builtin_classify_type (Val1) != 8 \
  28089. - || __builtin_classify_type (Val2) != 8) \
  28090. - __tgmres = Fct (Val1, Val2); \
  28091. - else \
  28092. - __tgmres = Fct##f (Val1, Val2); \
  28093. - __tgmres; }))
  28094. + (__extension__ (((sizeof (Val1) > sizeof (double) \
  28095. + || sizeof (Val2) > sizeof (double)) \
  28096. + && __builtin_classify_type ((Val1) + (Val2)) == 8) \
  28097. + ? (__typeof ((__tgmath_real_type (Val1)) 0 \
  28098. + + (__tgmath_real_type (Val2)) 0)) \
  28099. + __tgml(Fct) (Val1, Val2) \
  28100. + : (sizeof (Val1) == sizeof (double) \
  28101. + || sizeof (Val2) == sizeof (double) \
  28102. + || __builtin_classify_type (Val1) != 8 \
  28103. + || __builtin_classify_type (Val2) != 8) \
  28104. + ? (__typeof ((__tgmath_real_type (Val1)) 0 \
  28105. + + (__tgmath_real_type (Val2)) 0)) \
  28106. + Fct (Val1, Val2) \
  28107. + : (__typeof ((__tgmath_real_type (Val1)) 0 \
  28108. + + (__tgmath_real_type (Val2)) 0)) \
  28109. + Fct##f (Val1, Val2)))
  28110. # define __TGMATH_TERNARY_FIRST_SECOND_REAL_ONLY(Val1, Val2, Val3, Fct) \
  28111. - (__extension__ ({ __tgmath_real_type ((Val1) + (Val2)) __tgmres; \
  28112. - if ((sizeof (Val1) > sizeof (double) \
  28113. - || sizeof (Val2) > sizeof (double)) \
  28114. - && __builtin_classify_type ((Val1) + (Val2)) == 8) \
  28115. - __tgmres = __tgml(Fct) (Val1, Val2, Val3); \
  28116. - else if (sizeof (Val1) == sizeof (double) \
  28117. - || sizeof (Val2) == sizeof (double) \
  28118. - || __builtin_classify_type (Val1) != 8 \
  28119. - || __builtin_classify_type (Val2) != 8) \
  28120. - __tgmres = Fct (Val1, Val2, Val3); \
  28121. - else \
  28122. - __tgmres = Fct##f (Val1, Val2, Val3); \
  28123. - __tgmres; }))
  28124. + (__extension__ (((sizeof (Val1) > sizeof (double) \
  28125. + || sizeof (Val2) > sizeof (double)) \
  28126. + && __builtin_classify_type ((Val1) + (Val2)) == 8) \
  28127. + ? (__typeof ((__tgmath_real_type (Val1)) 0 \
  28128. + + (__tgmath_real_type (Val2)) 0)) \
  28129. + __tgml(Fct) (Val1, Val2, Val3) \
  28130. + : (sizeof (Val1) == sizeof (double) \
  28131. + || sizeof (Val2) == sizeof (double) \
  28132. + || __builtin_classify_type (Val1) != 8 \
  28133. + || __builtin_classify_type (Val2) != 8) \
  28134. + ? (__typeof ((__tgmath_real_type (Val1)) 0 \
  28135. + + (__tgmath_real_type (Val2)) 0)) \
  28136. + Fct (Val1, Val2, Val3) \
  28137. + : (__typeof ((__tgmath_real_type (Val1)) 0 \
  28138. + + (__tgmath_real_type (Val2)) 0)) \
  28139. + Fct##f (Val1, Val2, Val3)))
  28140. # define __TGMATH_TERNARY_REAL_ONLY(Val1, Val2, Val3, Fct) \
  28141. - (__extension__ ({ __tgmath_real_type ((Val1) + (Val2) + (Val3)) __tgmres;\
  28142. - if ((sizeof (Val1) > sizeof (double) \
  28143. - || sizeof (Val2) > sizeof (double) \
  28144. - || sizeof (Val3) > sizeof (double)) \
  28145. - && __builtin_classify_type ((Val1) + (Val2) \
  28146. - + (Val3)) == 8) \
  28147. - __tgmres = __tgml(Fct) (Val1, Val2, Val3); \
  28148. - else if (sizeof (Val1) == sizeof (double) \
  28149. - || sizeof (Val2) == sizeof (double) \
  28150. - || sizeof (Val3) == sizeof (double) \
  28151. - || __builtin_classify_type (Val1) != 8 \
  28152. - || __builtin_classify_type (Val2) != 8 \
  28153. - || __builtin_classify_type (Val3) != 8) \
  28154. - __tgmres = Fct (Val1, Val2, Val3); \
  28155. - else \
  28156. - __tgmres = Fct##f (Val1, Val2, Val3); \
  28157. - __tgmres; }))
  28158. + (__extension__ (((sizeof (Val1) > sizeof (double) \
  28159. + || sizeof (Val2) > sizeof (double) \
  28160. + || sizeof (Val3) > sizeof (double)) \
  28161. + && __builtin_classify_type ((Val1) + (Val2) + (Val3)) \
  28162. + == 8) \
  28163. + ? (__typeof ((__tgmath_real_type (Val1)) 0 \
  28164. + + (__tgmath_real_type (Val2)) 0 \
  28165. + + (__tgmath_real_type (Val3)) 0)) \
  28166. + __tgml(Fct) (Val1, Val2, Val3) \
  28167. + : (sizeof (Val1) == sizeof (double) \
  28168. + || sizeof (Val2) == sizeof (double) \
  28169. + || sizeof (Val3) == sizeof (double) \
  28170. + || __builtin_classify_type (Val1) != 8 \
  28171. + || __builtin_classify_type (Val2) != 8 \
  28172. + || __builtin_classify_type (Val3) != 8) \
  28173. + ? (__typeof ((__tgmath_real_type (Val1)) 0 \
  28174. + + (__tgmath_real_type (Val2)) 0 \
  28175. + + (__tgmath_real_type (Val3)) 0)) \
  28176. + Fct (Val1, Val2, Val3) \
  28177. + : (__typeof ((__tgmath_real_type (Val1)) 0 \
  28178. + + (__tgmath_real_type (Val2)) 0 \
  28179. + + (__tgmath_real_type (Val3)) 0)) \
  28180. + Fct##f (Val1, Val2, Val3)))
  28181. /* XXX This definition has to be changed as soon as the compiler understands
  28182. the imaginary keyword. */
  28183. # define __TGMATH_UNARY_REAL_IMAG(Val, Fct, Cfct) \
  28184. - (__extension__ ({ __tgmath_real_type (Val) __tgmres; \
  28185. - if (sizeof (__real__ (Val)) > sizeof (double) \
  28186. - && __builtin_classify_type (__real__ (Val)) == 8) \
  28187. - { \
  28188. - if (sizeof (__real__ (Val)) == sizeof (Val)) \
  28189. - __tgmres = __tgml(Fct) (Val); \
  28190. - else \
  28191. - __tgmres = __tgml(Cfct) (Val); \
  28192. - } \
  28193. - else if (sizeof (__real__ (Val)) == sizeof (double) \
  28194. - || __builtin_classify_type (__real__ (Val)) \
  28195. - != 8) \
  28196. - { \
  28197. - if (sizeof (__real__ (Val)) == sizeof (Val)) \
  28198. - __tgmres = Fct (Val); \
  28199. - else \
  28200. - __tgmres = Cfct (Val); \
  28201. - } \
  28202. - else \
  28203. - { \
  28204. - if (sizeof (__real__ (Val)) == sizeof (Val)) \
  28205. - __tgmres = Fct##f (Val); \
  28206. - else \
  28207. - __tgmres = Cfct##f (Val); \
  28208. - } \
  28209. - __tgmres; }))
  28210. + (__extension__ ((sizeof (__real__ (Val)) == sizeof (double) \
  28211. + || __builtin_classify_type (__real__ (Val)) != 8) \
  28212. + ? ((sizeof (__real__ (Val)) == sizeof (Val)) \
  28213. + ? (__tgmath_real_type (Val)) Fct (Val) \
  28214. + : (__tgmath_real_type (Val)) Cfct (Val)) \
  28215. + : (sizeof (__real__ (Val)) == sizeof (float)) \
  28216. + ? ((sizeof (__real__ (Val)) == sizeof (Val)) \
  28217. + ? (__tgmath_real_type (Val)) Fct##f (Val) \
  28218. + : (__tgmath_real_type (Val)) Cfct##f (Val)) \
  28219. + : ((sizeof (__real__ (Val)) == sizeof (Val)) \
  28220. + ? (__tgmath_real_type (Val)) __tgml(Fct) (Val) \
  28221. + : (__tgmath_real_type (Val)) __tgml(Cfct) (Val))))
  28222. +
  28223. +# define __TGMATH_UNARY_IMAG(Val, Cfct) \
  28224. + (__extension__ ((sizeof (__real__ (Val)) == sizeof (double) \
  28225. + || __builtin_classify_type (__real__ (Val)) != 8) \
  28226. + ? (__typeof__ ((__tgmath_real_type (Val)) 0 \
  28227. + + _Complex_I)) Cfct (Val) \
  28228. + : (sizeof (__real__ (Val)) == sizeof (float)) \
  28229. + ? (__typeof__ ((__tgmath_real_type (Val)) 0 \
  28230. + + _Complex_I)) Cfct##f (Val) \
  28231. + : (__typeof__ ((__tgmath_real_type (Val)) 0 \
  28232. + + _Complex_I)) __tgml(Cfct) (Val)))
  28233. /* XXX This definition has to be changed as soon as the compiler understands
  28234. the imaginary keyword. */
  28235. -# define __TGMATH_UNARY_IMAG_ONLY(Val, Fct) \
  28236. - (__extension__ ({ __tgmath_real_type (Val) __tgmres; \
  28237. - if (sizeof (Val) == sizeof (__complex__ double) \
  28238. - || __builtin_classify_type (__real__ (Val)) != 8) \
  28239. - __tgmres = Fct (Val); \
  28240. - else if (sizeof (Val) == sizeof (__complex__ float)) \
  28241. - __tgmres = Fct##f (Val); \
  28242. - else \
  28243. - __tgmres = __tgml(Fct) (Val); \
  28244. - __tgmres; }))
  28245. +# define __TGMATH_UNARY_REAL_IMAG_RET_REAL(Val, Fct, Cfct) \
  28246. + (__extension__ ((sizeof (__real__ (Val)) == sizeof (double) \
  28247. + || __builtin_classify_type (__real__ (Val)) != 8) \
  28248. + ? ((sizeof (__real__ (Val)) == sizeof (Val)) \
  28249. + ? (__typeof__ (__real__ (__tgmath_real_type (Val)) 0))\
  28250. + Fct (Val) \
  28251. + : (__typeof__ (__real__ (__tgmath_real_type (Val)) 0))\
  28252. + Cfct (Val)) \
  28253. + : (sizeof (__real__ (Val)) == sizeof (float)) \
  28254. + ? ((sizeof (__real__ (Val)) == sizeof (Val)) \
  28255. + ? (__typeof__ (__real__ (__tgmath_real_type (Val)) 0))\
  28256. + Fct##f (Val) \
  28257. + : (__typeof__ (__real__ (__tgmath_real_type (Val)) 0))\
  28258. + Cfct##f (Val)) \
  28259. + : ((sizeof (__real__ (Val)) == sizeof (Val)) \
  28260. + ? (__typeof__ (__real__ (__tgmath_real_type (Val)) 0))\
  28261. + __tgml(Fct) (Val) \
  28262. + : (__typeof__ (__real__ (__tgmath_real_type (Val)) 0))\
  28263. + __tgml(Cfct) (Val))))
  28264. /* XXX This definition has to be changed as soon as the compiler understands
  28265. the imaginary keyword. */
  28266. # define __TGMATH_BINARY_REAL_IMAG(Val1, Val2, Fct, Cfct) \
  28267. - (__extension__ ({ __tgmath_real_type ((Val1) + (Val2)) __tgmres; \
  28268. - if ((sizeof (__real__ (Val1)) > sizeof (double) \
  28269. - || sizeof (__real__ (Val2)) > sizeof (double)) \
  28270. - && __builtin_classify_type (__real__ (Val1) \
  28271. - + __real__ (Val2)) \
  28272. - == 8) \
  28273. - { \
  28274. - if (sizeof (__real__ (Val1)) == sizeof (Val1) \
  28275. - && sizeof (__real__ (Val2)) == sizeof (Val2)) \
  28276. - __tgmres = __tgml(Fct) (Val1, Val2); \
  28277. - else \
  28278. - __tgmres = __tgml(Cfct) (Val1, Val2); \
  28279. - } \
  28280. - else if (sizeof (__real__ (Val1)) == sizeof (double) \
  28281. - || sizeof (__real__ (Val2)) == sizeof(double) \
  28282. - || (__builtin_classify_type (__real__ (Val1)) \
  28283. - != 8) \
  28284. - || (__builtin_classify_type (__real__ (Val2)) \
  28285. - != 8)) \
  28286. - { \
  28287. - if (sizeof (__real__ (Val1)) == sizeof (Val1) \
  28288. - && sizeof (__real__ (Val2)) == sizeof (Val2)) \
  28289. - __tgmres = Fct (Val1, Val2); \
  28290. - else \
  28291. - __tgmres = Cfct (Val1, Val2); \
  28292. - } \
  28293. - else \
  28294. - { \
  28295. - if (sizeof (__real__ (Val1)) == sizeof (Val1) \
  28296. - && sizeof (__real__ (Val2)) == sizeof (Val2)) \
  28297. - __tgmres = Fct##f (Val1, Val2); \
  28298. - else \
  28299. - __tgmres = Cfct##f (Val1, Val2); \
  28300. - } \
  28301. - __tgmres; }))
  28302. + (__extension__ (((sizeof (__real__ (Val1)) > sizeof (double) \
  28303. + || sizeof (__real__ (Val2)) > sizeof (double)) \
  28304. + && __builtin_classify_type (__real__ (Val1) \
  28305. + + __real__ (Val2)) == 8) \
  28306. + ? ((sizeof (__real__ (Val1)) == sizeof (Val1) \
  28307. + && sizeof (__real__ (Val2)) == sizeof (Val2)) \
  28308. + ? (__typeof ((__tgmath_real_type (Val1)) 0 \
  28309. + + (__tgmath_real_type (Val2)) 0)) \
  28310. + __tgml(Fct) (Val1, Val2) \
  28311. + : (__typeof ((__tgmath_real_type (Val1)) 0 \
  28312. + + (__tgmath_real_type (Val2)) 0)) \
  28313. + __tgml(Cfct) (Val1, Val2)) \
  28314. + : (sizeof (__real__ (Val1)) == sizeof (double) \
  28315. + || sizeof (__real__ (Val2)) == sizeof (double) \
  28316. + || __builtin_classify_type (__real__ (Val1)) != 8 \
  28317. + || __builtin_classify_type (__real__ (Val2)) != 8) \
  28318. + ? ((sizeof (__real__ (Val1)) == sizeof (Val1) \
  28319. + && sizeof (__real__ (Val2)) == sizeof (Val2)) \
  28320. + ? (__typeof ((__tgmath_real_type (Val1)) 0 \
  28321. + + (__tgmath_real_type (Val2)) 0)) \
  28322. + Fct (Val1, Val2) \
  28323. + : (__typeof ((__tgmath_real_type (Val1)) 0 \
  28324. + + (__tgmath_real_type (Val2)) 0)) \
  28325. + Cfct (Val1, Val2)) \
  28326. + : ((sizeof (__real__ (Val1)) == sizeof (Val1) \
  28327. + && sizeof (__real__ (Val2)) == sizeof (Val2)) \
  28328. + ? (__typeof ((__tgmath_real_type (Val1)) 0 \
  28329. + + (__tgmath_real_type (Val2)) 0)) \
  28330. + Fct##f (Val1, Val2) \
  28331. + : (__typeof ((__tgmath_real_type (Val1)) 0 \
  28332. + + (__tgmath_real_type (Val2)) 0)) \
  28333. + Cfct##f (Val1, Val2))))
  28334. #else
  28335. # error "Unsupported compiler; you cannot use <tgmath.h>"
  28336. #endif
  28337. @@ -317,7 +342,7 @@
  28338. #define ceil(Val) __TGMATH_UNARY_REAL_ONLY (Val, ceil)
  28339. /* Absolute value of X. */
  28340. -#define fabs(Val) __TGMATH_UNARY_REAL_IMAG (Val, fabs, cabs)
  28341. +#define fabs(Val) __TGMATH_UNARY_REAL_IMAG_RET_REAL (Val, fabs, cabs)
  28342. /* Largest integer not greater than X. */
  28343. #define floor(Val) __TGMATH_UNARY_REAL_ONLY (Val, floor)
  28344. @@ -345,13 +370,13 @@
  28345. /* Round X to nearest integral value according to current rounding
  28346. direction. */
  28347. -#define lrint(Val) __TGMATH_UNARY_REAL_ONLY (Val, lrint)
  28348. -#define llrint(Val) __TGMATH_UNARY_REAL_ONLY (Val, llrint)
  28349. +#define lrint(Val) __TGMATH_UNARY_REAL_RET_ONLY (Val, long int, lrint)
  28350. +#define llrint(Val) __TGMATH_UNARY_REAL_RET_ONLY (Val, long long int, llrint)
  28351. /* Round X to nearest integral value, rounding halfway cases away from
  28352. zero. */
  28353. -#define lround(Val) __TGMATH_UNARY_REAL_ONLY (Val, lround)
  28354. -#define llround(Val) __TGMATH_UNARY_REAL_ONLY (Val, llround)
  28355. +#define lround(Val) __TGMATH_UNARY_REAL_RET_ONLY (Val, long int, lround)
  28356. +#define llround(Val) __TGMATH_UNARY_REAL_RET_ONLY (Val, long long int, llround)
  28357. /* Return X with its signed changed to Y's. */
  28358. @@ -376,7 +401,7 @@
  28359. /* Return the remainder of integer divison X / Y with infinite precision. */
  28360. #define remainder(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, remainder)
  28361. -#if defined __UCLIBC_SUSV3_LEGACY__
  28362. +#ifdef __UCLIBC_SUSV3_LEGACY__
  28363. /* Return X times (2 to the Nth power). */
  28364. #if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
  28365. # define scalb(Val1, Val2) __TGMATH_BINARY_REAL_ONLY (Val1, Val2, scalb)
  28366. @@ -388,10 +413,10 @@
  28367. /* Return X times (2 to the Nth power). */
  28368. #define scalbln(Val1, Val2) \
  28369. __TGMATH_BINARY_FIRST_REAL_ONLY (Val1, Val2, scalbln)
  28370. -#endif /* UCLIBC_SUSV3_LEGACY */
  28371. +#endif /* __UCLIBC_SUSV3_LEGACY__ */
  28372. /* Return the binary exponent of X, which must be nonzero. */
  28373. -#define ilogb(Val) __TGMATH_UNARY_REAL_ONLY (Val, ilogb)
  28374. +#define ilogb(Val) __TGMATH_UNARY_REAL_RET_ONLY (Val, int, ilogb)
  28375. /* Return positive difference between X and Y. */
  28376. @@ -412,21 +437,21 @@
  28377. /* Absolute value, conjugates, and projection. */
  28378. /* Argument value of Z. */
  28379. -#define carg(Val) __TGMATH_UNARY_IMAG_ONLY (Val, carg)
  28380. +#define carg(Val) __TGMATH_UNARY_REAL_IMAG_RET_REAL (Val, carg, carg)
  28381. /* Complex conjugate of Z. */
  28382. -#define conj(Val) __TGMATH_UNARY_IMAG_ONLY (Val, conj)
  28383. +#define conj(Val) __TGMATH_UNARY_IMAG (Val, conj)
  28384. /* Projection of Z onto the Riemann sphere. */
  28385. -#define cproj(Val) __TGMATH_UNARY_IMAG_ONLY (Val, cproj)
  28386. +#define cproj(Val) __TGMATH_UNARY_IMAG (Val, cproj)
  28387. /* Decomposing complex values. */
  28388. /* Imaginary part of Z. */
  28389. -#define cimag(Val) __TGMATH_UNARY_IMAG_ONLY (Val, cimag)
  28390. +#define cimag(Val) __TGMATH_UNARY_REAL_IMAG_RET_REAL (Val, cimag, cimag)
  28391. /* Real part of Z. */
  28392. -#define creal(Val) __TGMATH_UNARY_IMAG_ONLY (Val, creal)
  28393. +#define creal(Val) __TGMATH_UNARY_REAL_IMAG_RET_REAL (Val, creal, creal)
  28394. #endif /* tgmath.h */
  28395. diff -Nur uClibc-0.9.33.2/include/time.h uClibc-git/include/time.h
  28396. --- uClibc-0.9.33.2/include/time.h 2012-05-15 09:20:09.000000000 +0200
  28397. +++ uClibc-git/include/time.h 2014-06-02 17:40:33.898711343 +0200
  28398. @@ -1,5 +1,4 @@
  28399. -/* Copyright (C) 1991-1999,2000,2001,2002,2003,2006
  28400. - Free Software Foundation, Inc.
  28401. +/* Copyright (C) 1991-2003,2006,2009 Free Software Foundation, Inc.
  28402. This file is part of the GNU C Library.
  28403. The GNU C Library is free software; you can redistribute it and/or
  28404. @@ -13,9 +12,8 @@
  28405. Lesser General Public License for more details.
  28406. You should have received a copy of the GNU Lesser General Public
  28407. - License along with the GNU C Library; if not, write to the Free
  28408. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  28409. - 02111-1307 USA. */
  28410. + License along with the GNU C Library; if not, see
  28411. + <http://www.gnu.org/licenses/>. */
  28412. /*
  28413. * ISO C99 Standard: 7.23 Date and time <time.h>
  28414. @@ -146,10 +144,10 @@
  28415. #ifdef __UCLIBC_HAS_TM_EXTENSIONS__
  28416. #ifdef __USE_BSD
  28417. long int tm_gmtoff; /* Seconds east of UTC. */
  28418. - __const char *tm_zone; /* Timezone abbreviation. */
  28419. + const char *tm_zone; /* Timezone abbreviation. */
  28420. #else
  28421. long int __tm_gmtoff; /* Seconds east of UTC. */
  28422. - __const char *__tm_zone; /* Timezone abbreviation. */
  28423. + const char *__tm_zone; /* Timezone abbreviation. */
  28424. #endif
  28425. #endif /* __UCLIBC_HAS_TM_EXTENSIONS__ */
  28426. };
  28427. @@ -195,7 +193,9 @@
  28428. __THROW __attribute__ ((__const__));
  28429. #endif /* __UCLIBC_HAS_FLOATS__ */
  28430. -#define CLOCK_IDFIELD_SIZE 3
  28431. +#ifdef _LIBC
  28432. +# define CLOCK_IDFIELD_SIZE 3
  28433. +#endif
  28434. /* Return the `time_t' representation of TP and normalize TP. */
  28435. extern time_t mktime (struct tm *__tp) __THROW;
  28436. @@ -205,32 +205,34 @@
  28437. Write no more than MAXSIZE characters and return the number
  28438. of characters written, or 0 if it would exceed MAXSIZE. */
  28439. extern size_t strftime (char *__restrict __s, size_t __maxsize,
  28440. - __const char *__restrict __format,
  28441. - __const struct tm *__restrict __tp) __THROW;
  28442. + const char *__restrict __format,
  28443. + const struct tm *__restrict __tp) __THROW;
  28444. __END_NAMESPACE_STD
  28445. # ifdef __USE_XOPEN
  28446. /* Parse S according to FORMAT and store binary time information in TP.
  28447. The return value is a pointer to the first unparsed character in S. */
  28448. -extern char *strptime (__const char *__restrict __s,
  28449. - __const char *__restrict __fmt, struct tm *__tp)
  28450. +extern char *strptime (const char *__restrict __s,
  28451. + const char *__restrict __fmt, struct tm *__tp)
  28452. __THROW;
  28453. # endif
  28454. #ifdef __UCLIBC_HAS_XLOCALE__
  28455. -# ifdef __USE_GNU
  28456. +# ifdef __USE_XOPEN2K8
  28457. /* Similar to the two functions above but take the information from
  28458. the provided locale and not the global locale. */
  28459. # include <xlocale.h>
  28460. extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
  28461. - __const char *__restrict __format,
  28462. - __const struct tm *__restrict __tp,
  28463. + const char *__restrict __format,
  28464. + const struct tm *__restrict __tp,
  28465. __locale_t __loc) __THROW;
  28466. libc_hidden_proto(strftime_l)
  28467. +# endif
  28468. -extern char *strptime_l (__const char *__restrict __s,
  28469. - __const char *__restrict __fmt, struct tm *__tp,
  28470. +# ifdef __USE_GNU
  28471. +extern char *strptime_l (const char *__restrict __s,
  28472. + const char *__restrict __fmt, struct tm *__tp,
  28473. __locale_t __loc) __THROW;
  28474. libc_hidden_proto(strptime_l)
  28475. # endif
  28476. @@ -240,23 +242,23 @@
  28477. __BEGIN_NAMESPACE_STD
  28478. /* Return the `struct tm' representation of *TIMER
  28479. in Universal Coordinated Time (aka Greenwich Mean Time). */
  28480. -extern struct tm *gmtime (__const time_t *__timer) __THROW;
  28481. +extern struct tm *gmtime (const time_t *__timer) __THROW;
  28482. /* Return the `struct tm' representation
  28483. of *TIMER in the local timezone. */
  28484. -extern struct tm *localtime (__const time_t *__timer) __THROW;
  28485. +extern struct tm *localtime (const time_t *__timer) __THROW;
  28486. libc_hidden_proto(localtime)
  28487. __END_NAMESPACE_STD
  28488. # if defined __USE_POSIX || defined __USE_MISC
  28489. /* Return the `struct tm' representation of *TIMER in UTC,
  28490. using *TP to store the result. */
  28491. -extern struct tm *gmtime_r (__const time_t *__restrict __timer,
  28492. +extern struct tm *gmtime_r (const time_t *__restrict __timer,
  28493. struct tm *__restrict __tp) __THROW;
  28494. /* Return the `struct tm' representation of *TIMER in local time,
  28495. using *TP to store the result. */
  28496. -extern struct tm *localtime_r (__const time_t *__restrict __timer,
  28497. +extern struct tm *localtime_r (const time_t *__restrict __timer,
  28498. struct tm *__restrict __tp) __THROW;
  28499. libc_hidden_proto(localtime_r)
  28500. # endif /* POSIX or misc */
  28501. @@ -264,11 +266,11 @@
  28502. __BEGIN_NAMESPACE_STD
  28503. /* Return a string of the form "Day Mon dd hh:mm:ss yyyy\n"
  28504. that is the representation of TP in this format. */
  28505. -extern char *asctime (__const struct tm *__tp) __THROW;
  28506. +extern char *asctime (const struct tm *__tp) __THROW;
  28507. libc_hidden_proto(asctime)
  28508. /* Equivalent to `asctime (localtime (timer))'. */
  28509. -extern char *ctime (__const time_t *__timer) __THROW;
  28510. +extern char *ctime (const time_t *__timer) __THROW;
  28511. libc_hidden_proto(ctime)
  28512. __END_NAMESPACE_STD
  28513. @@ -277,12 +279,12 @@
  28514. /* Return in BUF a string of the form "Day Mon dd hh:mm:ss yyyy\n"
  28515. that is the representation of TP in this format. */
  28516. -extern char *asctime_r (__const struct tm *__restrict __tp,
  28517. +extern char *asctime_r (const struct tm *__restrict __tp,
  28518. char *__restrict __buf) __THROW;
  28519. libc_hidden_proto(asctime_r)
  28520. /* Equivalent to `asctime_r (localtime_r (timer, *TMP*), buf)'. */
  28521. -extern char *ctime_r (__const time_t *__restrict __timer,
  28522. +extern char *ctime_r (const time_t *__restrict __timer,
  28523. char *__restrict __buf) __THROW;
  28524. # endif /* POSIX or misc */
  28525. @@ -314,7 +316,8 @@
  28526. # ifdef __USE_SVID
  28527. /* Set the system time to *WHEN.
  28528. This call is restricted to the superuser. */
  28529. -extern int stime (__const time_t *__when) __THROW;
  28530. +extern int stime (const time_t *__when) __THROW;
  28531. +libc_hidden_proto(stime)
  28532. # endif
  28533. @@ -345,7 +348,7 @@
  28534. This function is a cancellation point and therefore not marked with
  28535. __THROW. */
  28536. -extern int nanosleep (__const struct timespec *__requested_time,
  28537. +extern int nanosleep (const struct timespec *__requested_time,
  28538. struct timespec *__remaining);
  28539. libc_hidden_proto(nanosleep)
  28540. @@ -358,23 +361,24 @@
  28541. extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __THROW;
  28542. /* Set clock CLOCK_ID to value TP. */
  28543. -extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
  28544. +extern int clock_settime (clockid_t __clock_id, const struct timespec *__tp)
  28545. __THROW;
  28546. # endif /* __UCLIBC_HAS_REALTIME__ */
  28547. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  28548. -# if defined __USE_XOPEN2K && defined __UCLIBC_HAS_ADVANCED_REALTIME__
  28549. +
  28550. +# if defined __USE_XOPEN2K && defined __UCLIBC_HAS_ADVANCED_REALTIME__
  28551. +# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  28552. /* High-resolution sleep with the specified clock.
  28553. This function is a cancellation point and therefore not marked with
  28554. __THROW. */
  28555. extern int clock_nanosleep (clockid_t __clock_id, int __flags,
  28556. - __const struct timespec *__req,
  28557. + const struct timespec *__req,
  28558. struct timespec *__rem);
  28559. /* Return clock ID for CPU-time clock. */
  28560. extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __THROW;
  28561. -# endif
  28562. -# endif /* __UCLIBC_HAS_THREADS_NATIVE__ */
  28563. +# endif /* __UCLIBC_HAS_THREADS_NATIVE__ */
  28564. +# endif
  28565. # if defined __UCLIBC_HAS_REALTIME__
  28566. /* Create new per-process timer using CLOCK_ID. */
  28567. @@ -387,7 +391,7 @@
  28568. /* Set timer TIMERID to VALUE, returning old value in OVLAUE. */
  28569. extern int timer_settime (timer_t __timerid, int __flags,
  28570. - __const struct itimerspec *__restrict __value,
  28571. + const struct itimerspec *__restrict __value,
  28572. struct itimerspec *__restrict __ovalue) __THROW;
  28573. /* Get current value of timer TIMERID and store it in VLAUE. */
  28574. @@ -423,7 +427,7 @@
  28575. This function is a possible cancellation points and therefore not
  28576. marked with __THROW. */
  28577. -extern struct tm *getdate (__const char *__string);
  28578. +extern struct tm *getdate (const char *__string);
  28579. # endif
  28580. # ifdef __USE_GNU
  28581. @@ -437,7 +441,7 @@
  28582. cancellation point. But due to similarity with an POSIX interface
  28583. or due to the implementation it is a cancellation point and
  28584. therefore not marked with __THROW. */
  28585. -extern int getdate_r (__const char *__restrict __string,
  28586. +extern int getdate_r (const char *__restrict __string,
  28587. struct tm *__restrict __resbufp);
  28588. # endif
  28589. #endif /* __UCLIBC_MJN3_ONLY__ */
  28590. diff -Nur uClibc-0.9.33.2/include/ttyent.h uClibc-git/include/ttyent.h
  28591. --- uClibc-0.9.33.2/include/ttyent.h 2012-05-15 09:20:09.000000000 +0200
  28592. +++ uClibc-git/include/ttyent.h 2014-06-02 17:40:33.898711343 +0200
  28593. @@ -57,7 +57,7 @@
  28594. extern struct ttyent *getttyent (void) __THROW;
  28595. libc_hidden_proto(getttyent)
  28596. -extern struct ttyent *getttynam (__const char *__tty) __THROW;
  28597. +extern struct ttyent *getttynam (const char *__tty) __THROW;
  28598. extern int setttyent (void) __THROW;
  28599. libc_hidden_proto(setttyent)
  28600. extern int endttyent (void) __THROW;
  28601. diff -Nur uClibc-0.9.33.2/include/ucontext.h uClibc-git/include/ucontext.h
  28602. --- uClibc-0.9.33.2/include/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  28603. +++ uClibc-git/include/ucontext.h 2014-06-02 17:40:33.898711343 +0200
  28604. @@ -12,21 +12,46 @@
  28605. Lesser General Public License for more details.
  28606. You should have received a copy of the GNU Lesser General Public
  28607. - License along with the GNU C Library; if not, write to the Free
  28608. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  28609. - 02111-1307 USA. */
  28610. + License along with the GNU C Library; if not, see
  28611. + <http://www.gnu.org/licenses/>. */
  28612. +
  28613. +/* The System V ABI user-level context switching support functions
  28614. + are marked obsolescent by SuSv3. */
  28615. #ifndef _UCONTEXT_H
  28616. #define _UCONTEXT_H 1
  28617. #include <features.h>
  28618. +#ifdef __UCLIBC_HAS_CONTEXT_FUNCS__
  28619. +
  28620. /* Get machine dependent definition of data structures. */
  28621. #include <sys/ucontext.h>
  28622. -/* The System V ABI user-level context switching support functions
  28623. - * are marked obsolescent by SuSv3, and are not implemented by
  28624. - * uClibc. This header is therefore empty. */
  28625. +__BEGIN_DECLS
  28626. +
  28627. +/* Get user context and store it in variable pointed to by UCP. */
  28628. +extern int getcontext (ucontext_t *__ucp) __THROW;
  28629. +
  28630. +/* Set user context from information of variable pointed to by UCP. */
  28631. +extern int setcontext (const ucontext_t *__ucp) __THROW;
  28632. +
  28633. +/* Save current context in context variable pointed to by OUCP and set
  28634. + context from variable pointed to by UCP. */
  28635. +extern int swapcontext (ucontext_t *__restrict __oucp,
  28636. + const ucontext_t *__restrict __ucp) __THROW;
  28637. +
  28638. +/* Manipulate user context UCP to continue with calling functions FUNC
  28639. + and the ARGC-1 parameters following ARGC when the context is used
  28640. + the next time in `setcontext' or `swapcontext'.
  28641. +
  28642. + We cannot say anything about the parameters FUNC takes; `void'
  28643. + is as good as any other choice. */
  28644. +extern void makecontext (ucontext_t *__ucp, void (*__func) (void),
  28645. + int __argc, ...) __THROW;
  28646. +
  28647. +__END_DECLS
  28648. +#endif
  28649. #endif /* ucontext.h */
  28650. diff -Nur uClibc-0.9.33.2/include/ulimit.h uClibc-git/include/ulimit.h
  28651. --- uClibc-0.9.33.2/include/ulimit.h 2012-05-15 09:20:09.000000000 +0200
  28652. +++ uClibc-git/include/ulimit.h 2014-06-02 17:40:33.898711343 +0200
  28653. @@ -12,9 +12,8 @@
  28654. Lesser General Public License for more details.
  28655. You should have received a copy of the GNU Lesser General Public
  28656. - License along with the GNU C Library; if not, write to the Free
  28657. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  28658. - 02111-1307 USA. */
  28659. + License along with the GNU C Library; if not, see
  28660. + <http://www.gnu.org/licenses/>. */
  28661. #ifndef _ULIMIT_H
  28662. #define _ULIMIT_H 1
  28663. diff -Nur uClibc-0.9.33.2/include/unistd.h uClibc-git/include/unistd.h
  28664. --- uClibc-0.9.33.2/include/unistd.h 2012-05-15 09:20:09.000000000 +0200
  28665. +++ uClibc-git/include/unistd.h 2014-06-02 17:40:33.902711365 +0200
  28666. @@ -1,4 +1,4 @@
  28667. -/* Copyright (C) 1991-2002,2003,2004,2005,2006 Free Software Foundation, Inc.
  28668. +/* Copyright (C) 1991-2006, 2007, 2008, 2009 Free Software Foundation, Inc.
  28669. This file is part of the GNU C Library.
  28670. The GNU C Library is free software; you can redistribute it and/or
  28671. @@ -12,9 +12,8 @@
  28672. Lesser General Public License for more details.
  28673. You should have received a copy of the GNU Lesser General Public
  28674. - License along with the GNU C Library; if not, write to the Free
  28675. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  28676. - 02111-1307 USA. */
  28677. + License along with the GNU C Library; if not, see
  28678. + <http://www.gnu.org/licenses/>. */
  28679. /*
  28680. * POSIX Standard: 2.10 Symbolic Constants <unistd.h>
  28681. @@ -30,35 +29,67 @@
  28682. /* These may be used to determine what facilities are present at compile time.
  28683. Their values can be obtained at run time from `sysconf'. */
  28684. +#ifdef __USE_XOPEN2K8
  28685. +/* POSIX Standard approved as ISO/IEC 9945-1 as of September 2008. */
  28686. +# define _POSIX_VERSION 200809L
  28687. +#elif defined __USE_XOPEN2K
  28688. /* POSIX Standard approved as ISO/IEC 9945-1 as of December 2001. */
  28689. -#define _POSIX_VERSION 200112L
  28690. +# define _POSIX_VERSION 200112L
  28691. +#elif defined __USE_POSIX199506
  28692. +/* POSIX Standard approved as ISO/IEC 9945-1 as of June 1995. */
  28693. +# define _POSIX_VERSION 199506L
  28694. +#elif defined __USE_POSIX199309
  28695. +/* POSIX Standard approved as ISO/IEC 9945-1 as of September 1993. */
  28696. +# define _POSIX_VERSION 199309L
  28697. +#else
  28698. +/* POSIX Standard approved as ISO/IEC 9945-1 as of September 1990. */
  28699. +# define _POSIX_VERSION 199009L
  28700. +#endif
  28701. /* These are not #ifdef __USE_POSIX2 because they are
  28702. in the theoretically application-owned namespace. */
  28703. +#ifdef __USE_XOPEN2K8
  28704. +# define __POSIX2_THIS_VERSION 200809L
  28705. +/* The utilities on GNU systems also correspond to this version. */
  28706. +#elif defined __USE_XOPEN2K
  28707. +/* The utilities on GNU systems also correspond to this version. */
  28708. +# define __POSIX2_THIS_VERSION 200112L
  28709. +#elif defined __USE_POSIX199506
  28710. +/* The utilities on GNU systems also correspond to this version. */
  28711. +# define __POSIX2_THIS_VERSION 199506L
  28712. +#else
  28713. +/* The utilities on GNU systems also correspond to this version. */
  28714. +# define __POSIX2_THIS_VERSION 199209L
  28715. +#endif
  28716. +
  28717. /* The utilities on GNU systems also correspond to this version. */
  28718. -#define _POSIX2_VERSION 200112L
  28719. +#define _POSIX2_VERSION __POSIX2_THIS_VERSION
  28720. /* If defined, the implementation supports the
  28721. C Language Bindings Option. */
  28722. -#define _POSIX2_C_BIND 200112L
  28723. +#define _POSIX2_C_BIND __POSIX2_THIS_VERSION
  28724. /* If defined, the implementation supports the
  28725. C Language Development Utilities Option. */
  28726. -#define _POSIX2_C_DEV 200112L
  28727. +#define _POSIX2_C_DEV __POSIX2_THIS_VERSION
  28728. /* If defined, the implementation supports the
  28729. Software Development Utilities Option. */
  28730. -#define _POSIX2_SW_DEV 200112L
  28731. +#define _POSIX2_SW_DEV __POSIX2_THIS_VERSION
  28732. #if 0 /* uClibc does not provide the utility */
  28733. /* If defined, the implementation supports the
  28734. creation of locales with the localedef utility. */
  28735. -#define _POSIX2_LOCALEDEF 200112L
  28736. +#define _POSIX2_LOCALEDEF __POSIX2_THIS_VERSION
  28737. #endif
  28738. /* X/Open version number to which the library conforms. It is selectable. */
  28739. -#ifdef __USE_UNIX98
  28740. +#ifdef __USE_XOPEN2K8
  28741. +# define _XOPEN_VERSION 700
  28742. +#elif defined __USE_XOPEN2K
  28743. +# define _XOPEN_VERSION 600
  28744. +#elif defined __USE_UNIX98
  28745. # define _XOPEN_VERSION 500
  28746. #else
  28747. # define _XOPEN_VERSION 4
  28748. @@ -171,6 +202,8 @@
  28749. */
  28750. #include <bits/posix_opt.h>
  28751. +/* keep it after posix_opt.h, it overwrites based on uClibc's config options */
  28752. +#include <bits/uClibc_posix_opt.h>
  28753. /* Get the environment definitions from Unix98. */
  28754. #ifdef __USE_UNIX98
  28755. @@ -255,16 +288,16 @@
  28756. #define F_OK 0 /* Test for existence. */
  28757. /* Test for access to NAME using the real UID and real GID. */
  28758. -extern int access (__const char *__name, int __type) __THROW __nonnull ((1));
  28759. +extern int access (const char *__name, int __type) __THROW __nonnull ((1));
  28760. #if 0 /*def __USE_GNU*/
  28761. /* Test for access to NAME using the effective UID and GID
  28762. (as normal file operations use). */
  28763. -extern int euidaccess (__const char *__name, int __type)
  28764. +extern int euidaccess (const char *__name, int __type)
  28765. __THROW __nonnull ((1));
  28766. /* An alias for `euidaccess', used by some other systems. */
  28767. -extern int eaccess (__const char *__name, int __type)
  28768. +extern int eaccess (const char *__name, int __type)
  28769. __THROW __nonnull ((1));
  28770. #endif
  28771. @@ -272,8 +305,9 @@
  28772. /* Test for access to FILE relative to the directory FD is open on.
  28773. If AT_EACCESS is set in FLAG, then use effective IDs like `eaccess',
  28774. otherwise use real IDs like `access'. */
  28775. -extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
  28776. +extern int faccessat (int __fd, const char *__file, int __type, int __flag)
  28777. __THROW __nonnull ((2)) __wur;
  28778. +libc_hidden_proto(faccessat)
  28779. #endif /* Use GNU. */
  28780. @@ -299,7 +333,10 @@
  28781. Return the new file position. */
  28782. #ifndef __USE_FILE_OFFSET64
  28783. extern __off_t lseek (int __fd, __off_t __offset, int __whence) __THROW;
  28784. +# ifdef _LIBC
  28785. +extern __typeof(lseek) __lseek_nocancel attribute_hidden;
  28786. libc_hidden_proto(lseek)
  28787. +# endif
  28788. #else
  28789. # ifdef __REDIRECT_NTH
  28790. extern __off64_t __REDIRECT_NTH (lseek,
  28791. @@ -312,7 +349,10 @@
  28792. #ifdef __USE_LARGEFILE64
  28793. extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
  28794. __THROW;
  28795. +# ifdef _LIBC
  28796. +extern __typeof(lseek64) __lseek64_nocancel attribute_hidden;
  28797. libc_hidden_proto(lseek64)
  28798. +# endif
  28799. #endif
  28800. /* Close the file descriptor FD.
  28801. @@ -320,7 +360,11 @@
  28802. This function is a cancellation point and therefore not marked with
  28803. __THROW. */
  28804. extern int close (int __fd);
  28805. +#ifdef _LIBC
  28806. +extern __typeof(close) __close_nocancel attribute_hidden;
  28807. +extern void __close_nocancel_no_status(int) attribute_hidden;
  28808. libc_hidden_proto(close)
  28809. +#endif
  28810. /* Read NBYTES into BUF from FD. Return the
  28811. number read, -1 for errors or 0 for EOF.
  28812. @@ -328,14 +372,20 @@
  28813. This function is a cancellation point and therefore not marked with
  28814. __THROW. */
  28815. extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __wur;
  28816. +#ifdef _LIBC
  28817. +extern __typeof(read) __read_nocancel attribute_hidden;
  28818. libc_hidden_proto(read)
  28819. +#endif
  28820. /* Write N bytes of BUF to FD. Return the number written, or -1.
  28821. This function is a cancellation point and therefore not marked with
  28822. __THROW. */
  28823. -extern ssize_t write (int __fd, __const void *__buf, size_t __n) __wur;
  28824. +extern ssize_t write (int __fd, const void *__buf, size_t __n) __wur;
  28825. +#ifdef _LIBC
  28826. +extern __typeof(write) __write_nocancel attribute_hidden;
  28827. libc_hidden_proto(write)
  28828. +#endif
  28829. #ifdef __USE_UNIX98
  28830. # ifndef __USE_FILE_OFFSET64
  28831. @@ -353,14 +403,14 @@
  28832. This function is a cancellation point and therefore not marked with
  28833. __THROW. */
  28834. -extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
  28835. +extern ssize_t pwrite (int __fd, const void *__buf, size_t __n,
  28836. __off_t __offset) __wur;
  28837. # else
  28838. # ifdef __REDIRECT
  28839. extern ssize_t __REDIRECT (pread, (int __fd, void *__buf, size_t __nbytes,
  28840. __off64_t __offset),
  28841. pread64) __wur;
  28842. -extern ssize_t __REDIRECT (pwrite, (int __fd, __const void *__buf,
  28843. +extern ssize_t __REDIRECT (pwrite, (int __fd, const void *__buf,
  28844. size_t __nbytes, __off64_t __offset),
  28845. pwrite64) __wur;
  28846. # else
  28847. @@ -377,7 +427,7 @@
  28848. __off64_t __offset) __wur;
  28849. /* Write N bytes of BUF to FD at the given position OFFSET without
  28850. changing the file pointer. Return the number written, or -1. */
  28851. -extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
  28852. +extern ssize_t pwrite64 (int __fd, const void *__buf, size_t __n,
  28853. __off64_t __offset) __wur;
  28854. # endif
  28855. #endif
  28856. @@ -446,7 +496,7 @@
  28857. /* Change the owner and group of FILE. */
  28858. -extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
  28859. +extern int chown (const char *__file, __uid_t __owner, __gid_t __group)
  28860. __THROW __nonnull ((1)) __wur;
  28861. libc_hidden_proto(chown)
  28862. @@ -457,7 +507,7 @@
  28863. /* Change owner and group of FILE, if it is a symbolic
  28864. link the ownership of the symbolic link is changed. */
  28865. -extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
  28866. +extern int lchown (const char *__file, __uid_t __owner, __gid_t __group)
  28867. __THROW __nonnull ((1)) __wur;
  28868. #endif /* Use BSD || X/Open Unix. */
  28869. @@ -465,13 +515,14 @@
  28870. #ifdef __USE_ATFILE
  28871. /* Change the owner and group of FILE relative to the directory FD is open
  28872. on. */
  28873. -extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
  28874. +extern int fchownat (int __fd, const char *__file, __uid_t __owner,
  28875. __gid_t __group, int __flag)
  28876. __THROW __nonnull ((2)) __wur;
  28877. +libc_hidden_proto(fchownat)
  28878. #endif /* Use GNU. */
  28879. /* Change the process's working directory to PATH. */
  28880. -extern int chdir (__const char *__path) __THROW __nonnull ((1)) __wur;
  28881. +extern int chdir (const char *__path) __THROW __nonnull ((1)) __wur;
  28882. libc_hidden_proto(chdir)
  28883. #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
  28884. @@ -513,6 +564,13 @@
  28885. extern int dup2 (int __fd, int __fd2) __THROW;
  28886. libc_hidden_proto(dup2)
  28887. +#ifdef __USE_GNU
  28888. +/* Duplicate FD to FD2, closing FD2 and making it open on the same
  28889. + file while setting flags according to FLAGS. */
  28890. +extern int dup3 (int __fd, int __fd2, int __flags) __THROW;
  28891. +libc_hidden_proto(dup3)
  28892. +#endif
  28893. +
  28894. /* NULL-terminated array of "NAME=VALUE" environment variables. */
  28895. extern char **__environ;
  28896. #ifdef __USE_GNU
  28897. @@ -522,48 +580,56 @@
  28898. /* Replace the current process, executing PATH with arguments ARGV and
  28899. environment ENVP. ARGV and ENVP are terminated by NULL pointers. */
  28900. -extern int execve (__const char *__path, char *__const __argv[],
  28901. - char *__const __envp[]) __THROW __nonnull ((1));
  28902. +extern int execve (const char *__path, char *const __argv[],
  28903. + char *const __envp[]) __THROW __nonnull ((1));
  28904. libc_hidden_proto(execve)
  28905. -#if 0 /*def __USE_GNU*/
  28906. +#if 0 /*def __USE_XOPEN2K8*/
  28907. /* Execute the file FD refers to, overlaying the running program image.
  28908. ARGV and ENVP are passed to the new program, as for `execve'. */
  28909. -extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
  28910. +extern int fexecve (int __fd, char *const __argv[], char *const __envp[])
  28911. __THROW;
  28912. #endif
  28913. /* Execute PATH with arguments ARGV and environment from `environ'. */
  28914. -extern int execv (__const char *__path, char *__const __argv[])
  28915. +extern int execv (const char *__path, char *const __argv[])
  28916. __THROW __nonnull ((1));
  28917. libc_hidden_proto(execv)
  28918. /* Execute PATH with all arguments after PATH until a NULL pointer,
  28919. and the argument after that for environment. */
  28920. -extern int execle (__const char *__path, __const char *__arg, ...)
  28921. +extern int execle (const char *__path, const char *__arg, ...)
  28922. __THROW __nonnull ((1));
  28923. libc_hidden_proto(execle)
  28924. /* Execute PATH with all arguments after PATH until
  28925. a NULL pointer and environment from `environ'. */
  28926. -extern int execl (__const char *__path, __const char *__arg, ...)
  28927. +extern int execl (const char *__path, const char *__arg, ...)
  28928. __THROW __nonnull ((1));
  28929. libc_hidden_proto(execl)
  28930. /* Execute FILE, searching in the `PATH' environment variable if it contains
  28931. no slashes, with arguments ARGV and environment from `environ'. */
  28932. -extern int execvp (__const char *__file, char *__const __argv[])
  28933. +extern int execvp (const char *__file, char *const __argv[])
  28934. __THROW __nonnull ((1));
  28935. libc_hidden_proto(execvp)
  28936. /* Execute FILE, searching in the `PATH' environment variable if
  28937. it contains no slashes, with all arguments after FILE until a
  28938. NULL pointer and environment from `environ'. */
  28939. -extern int execlp (__const char *__file, __const char *__arg, ...)
  28940. +extern int execlp (const char *__file, const char *__arg, ...)
  28941. __THROW __nonnull ((1));
  28942. libc_hidden_proto(execlp)
  28943. +#ifdef __USE_GNU
  28944. +/* Execute FILE, searching in the `PATH' environment variable if it contains
  28945. + no slashes, with arguments ARGV and environment from a pointer */
  28946. +extern int execvpe (__const char *__file, char *__const __argv[], char *__const __envp[])
  28947. + __THROW __nonnull ((1));
  28948. +libc_hidden_proto(execvpe)
  28949. +#endif
  28950. +
  28951. #if defined __USE_MISC || defined __USE_XOPEN
  28952. /* Add INC to priority of the current process. */
  28953. @@ -582,7 +648,7 @@
  28954. #include <bits/confname.h>
  28955. /* Get file-specific configuration information about PATH. */
  28956. -extern long int pathconf (__const char *__path, int __name)
  28957. +extern long int pathconf (const char *__path, int __name)
  28958. __THROW __nonnull ((1));
  28959. /* Get file-specific configuration about descriptor FD. */
  28960. @@ -767,7 +833,12 @@
  28961. Return -1 for errors, 0 to the new process,
  28962. and the process ID of the new process to the old process. */
  28963. extern __pid_t fork (void) __THROW;
  28964. +# ifdef _LIBC
  28965. +# ifdef __UCLIBC_HAS_THREADS__
  28966. +extern __typeof(fork) __libc_fork;
  28967. +# endif
  28968. libc_hidden_proto(fork)
  28969. +# endif
  28970. #endif
  28971. #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
  28972. @@ -779,8 +850,10 @@
  28973. libc_hidden_proto(vfork)
  28974. #endif /* Use BSD. */
  28975. +#if 0 /* psm: seems unused , exit-thread.S is not compiled */
  28976. /* Special exit function which only terminates the current thread. */
  28977. extern void __exit_thread (int val) __attribute__ ((__noreturn__));
  28978. +#endif
  28979. /* Return the pathname of the terminal FD is open on, or NULL on errors.
  28980. The returned storage is good only until the next call to this function. */
  28981. @@ -797,7 +870,6 @@
  28982. extern int isatty (int __fd) __THROW;
  28983. libc_hidden_proto(isatty)
  28984. -
  28985. #if 0 /*defined __USE_BSD \
  28986. || (defined __USE_XOPEN_EXTENDED && !defined __USE_UNIX98)*/
  28987. /* Return the index into the active-logins file (utmp) for
  28988. @@ -807,26 +879,27 @@
  28989. /* Make a link to FROM named TO. */
  28990. -extern int link (__const char *__from, __const char *__to)
  28991. +extern int link (const char *__from, const char *__to)
  28992. __THROW __nonnull ((1, 2)) __wur;
  28993. #ifdef __USE_ATFILE
  28994. /* Like link but relative paths in TO and FROM are interpreted relative
  28995. to FROMFD and TOFD respectively. */
  28996. -extern int linkat (int __fromfd, __const char *__from, int __tofd,
  28997. - __const char *__to, int __flags)
  28998. +extern int linkat (int __fromfd, const char *__from, int __tofd,
  28999. + const char *__to, int __flags)
  29000. __THROW __nonnull ((2, 4)) __wur;
  29001. +libc_hidden_proto(linkat)
  29002. #endif
  29003. #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED || defined __USE_XOPEN2K
  29004. /* Make a symbolic link to FROM named TO. */
  29005. -extern int symlink (__const char *__from, __const char *__to)
  29006. +extern int symlink (const char *__from, const char *__to)
  29007. __THROW __nonnull ((1, 2)) __wur;
  29008. /* Read the contents of the symbolic link PATH into no more than
  29009. LEN bytes of BUF. The contents are not null-terminated.
  29010. Returns the number of characters read, or -1 for errors. */
  29011. -extern ssize_t readlink (__const char *__restrict __path,
  29012. +extern ssize_t readlink (const char *__restrict __path,
  29013. char *__restrict __buf, size_t __len)
  29014. __THROW __nonnull ((1, 2)) __wur;
  29015. libc_hidden_proto(readlink)
  29016. @@ -834,27 +907,30 @@
  29017. #ifdef __USE_ATFILE
  29018. /* Like symlink but a relative path in TO is interpreted relative to TOFD. */
  29019. -extern int symlinkat (__const char *__from, int __tofd,
  29020. - __const char *__to) __THROW __nonnull ((1, 3)) __wur;
  29021. +extern int symlinkat (const char *__from, int __tofd,
  29022. + const char *__to) __THROW __nonnull ((1, 3)) __wur;
  29023. +libc_hidden_proto(symlinkat)
  29024. /* Like readlink but a relative PATH is interpreted relative to FD. */
  29025. -extern ssize_t readlinkat (int __fd, __const char *__restrict __path,
  29026. +extern ssize_t readlinkat (int __fd, const char *__restrict __path,
  29027. char *__restrict __buf, size_t __len)
  29028. __THROW __nonnull ((2, 3)) __wur;
  29029. +libc_hidden_proto(readlinkat)
  29030. #endif
  29031. /* Remove the link NAME. */
  29032. -extern int unlink (__const char *__name) __THROW __nonnull ((1));
  29033. +extern int unlink (const char *__name) __THROW __nonnull ((1));
  29034. libc_hidden_proto(unlink)
  29035. #ifdef __USE_ATFILE
  29036. /* Remove the link NAME relative to FD. */
  29037. -extern int unlinkat (int __fd, __const char *__name, int __flag)
  29038. +extern int unlinkat (int __fd, const char *__name, int __flag)
  29039. __THROW __nonnull ((2));
  29040. +libc_hidden_proto(unlinkat)
  29041. #endif
  29042. /* Remove the directory PATH. */
  29043. -extern int rmdir (__const char *__path) __THROW __nonnull ((1));
  29044. +extern int rmdir (const char *__path) __THROW __nonnull ((1));
  29045. libc_hidden_proto(rmdir)
  29046. @@ -884,7 +960,7 @@
  29047. #if 0 /*def __USE_BSD*/
  29048. /* Set the login name returned by `getlogin'. */
  29049. -extern int setlogin (__const char *__name) __THROW __nonnull ((1));
  29050. +extern int setlogin (const char *__name) __THROW __nonnull ((1));
  29051. #endif
  29052. @@ -910,13 +986,14 @@
  29053. #if defined __USE_BSD || (defined __USE_XOPEN && !defined __USE_UNIX98)
  29054. /* Set the name of the current host to NAME, which is LEN bytes long.
  29055. This call is restricted to the super-user. */
  29056. -extern int sethostname (__const char *__name, size_t __len)
  29057. +extern int sethostname (const char *__name, size_t __len)
  29058. __THROW __nonnull ((1)) __wur;
  29059. /* Set the current machine's Internet number to ID.
  29060. This call is restricted to the super-user. */
  29061. extern int sethostid (long int __id) __THROW __wur;
  29062. +
  29063. #if defined __UCLIBC_BSD_SPECIFIC__ || defined _LIBC
  29064. /* Get and set the NIS (aka YP) domain name, if any.
  29065. Called just like `gethostname' and `sethostname'.
  29066. @@ -926,10 +1003,11 @@
  29067. libc_hidden_proto(getdomainname)
  29068. #endif
  29069. #if defined __UCLIBC_BSD_SPECIFIC__
  29070. -extern int setdomainname (__const char *__name, size_t __len)
  29071. +extern int setdomainname (const char *__name, size_t __len)
  29072. __THROW __nonnull ((1)) __wur;
  29073. #endif
  29074. +
  29075. #if defined __UCLIBC_LINUX_SPECIFIC__
  29076. /* Revoke access permissions to all processes currently communicating
  29077. with the control terminal, and then send a SIGHUP signal to the process
  29078. @@ -939,7 +1017,7 @@
  29079. #if 0
  29080. /* Revoke the access of all descriptors currently open on FILE. */
  29081. -extern int revoke (__const char *__file) __THROW __nonnull ((1)) __wur;
  29082. +extern int revoke (const char *__file) __THROW __nonnull ((1)) __wur;
  29083. /* Enable statistical profiling, writing samples of the PC into at most
  29084. @@ -956,7 +1034,7 @@
  29085. /* Turn accounting on if NAME is an existing file. The system will then write
  29086. a record for each process as it terminates, to this file. If NAME is NULL,
  29087. turn accounting off. This call is restricted to the super-user. */
  29088. -extern int acct (__const char *__name) __THROW;
  29089. +extern int acct (const char *__name) __THROW;
  29090. /* Successive calls return the shells listed in `/etc/shells'. */
  29091. @@ -977,21 +1055,21 @@
  29092. #if defined __USE_BSD || (defined __USE_XOPEN && !defined __USE_XOPEN2K)
  29093. /* Make PATH be the root directory (the starting point for absolute paths).
  29094. This call is restricted to the super-user. */
  29095. -extern int chroot (__const char *__path) __THROW __nonnull ((1)) __wur;
  29096. +extern int chroot (const char *__path) __THROW __nonnull ((1)) __wur;
  29097. /* Prompt with PROMPT and read a string from the terminal without echoing.
  29098. Uses /dev/tty if possible; otherwise stderr and stdin. */
  29099. -extern char *getpass (__const char *__prompt) __nonnull ((1));
  29100. +extern char *getpass (const char *__prompt) __nonnull ((1));
  29101. #endif /* Use BSD || X/Open. */
  29102. -#if defined __USE_BSD || defined __USE_XOPEN
  29103. +#if defined __USE_BSD || defined __USE_XOPEN || defined __USE_XOPEN2K
  29104. /* Make all changes done to FD actually appear on disk.
  29105. This function is a cancellation point and therefore not marked with
  29106. __THROW. */
  29107. extern int fsync (int __fd);
  29108. -#endif /* Use BSD || X/Open. */
  29109. +#endif /* Use BSD || X/Open || Unix98. */
  29110. #if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
  29111. @@ -1017,21 +1095,22 @@
  29112. /* Truncate FILE to LENGTH bytes. */
  29113. # ifndef __USE_FILE_OFFSET64
  29114. -extern int truncate (__const char *__file, __off_t __length)
  29115. +extern int truncate (const char *__file, __off_t __length)
  29116. __THROW __nonnull ((1)) __wur;
  29117. libc_hidden_proto(truncate)
  29118. # else
  29119. # ifdef __REDIRECT_NTH
  29120. extern int __REDIRECT_NTH (truncate,
  29121. - (__const char *__file, __off64_t __length),
  29122. + (const char *__file, __off64_t __length),
  29123. truncate64) __nonnull ((1)) __wur;
  29124. # else
  29125. # define truncate truncate64
  29126. # endif
  29127. # endif
  29128. # ifdef __USE_LARGEFILE64
  29129. -extern int truncate64 (__const char *__file, __off64_t __length)
  29130. +extern int truncate64 (const char *__file, __off64_t __length)
  29131. __THROW __nonnull ((1)) __wur;
  29132. +libc_hidden_proto(truncate64)
  29133. # endif
  29134. #endif /* Use BSD || X/Open Unix. */
  29135. @@ -1120,7 +1199,6 @@
  29136. # endif
  29137. # ifdef __USE_LARGEFILE64
  29138. extern int lockf64 (int __fd, int __cmd, __off64_t __len) __wur;
  29139. -libc_hidden_proto(lockf64)
  29140. # endif
  29141. #endif /* Use misc and F_LOCK not already defined. */
  29142. @@ -1142,7 +1220,7 @@
  29143. && defined __UCLIBC_HAS_REALTIME__
  29144. /* Synchronize at least the data part of a file with the underlying
  29145. media. */
  29146. -extern int fdatasync (int __fildes) __THROW;
  29147. +extern int fdatasync (int __fildes);
  29148. #endif /* Use POSIX199309 */
  29149. @@ -1151,7 +1229,7 @@
  29150. #ifdef __USE_XOPEN
  29151. # if defined __UCLIBC_HAS_CRYPT__
  29152. /* Encrypt at most 8 characters from KEY using salt to perturb DES. */
  29153. -extern char *crypt (__const char *__key, __const char *__salt)
  29154. +extern char *crypt (const char *__key, const char *__salt)
  29155. __THROW __nonnull ((1, 2));
  29156. /* Encrypt data in BLOCK in place if EDFLAG is zero; otherwise decrypt
  29157. @@ -1164,7 +1242,7 @@
  29158. FROM and copy the result to TO. The value of TO must not be in the
  29159. range [FROM - N + 1, FROM - 1]. If N is odd the first byte in FROM
  29160. is without partner. */
  29161. -extern void swab (__const void *__restrict __from, void *__restrict __to,
  29162. +extern void swab (const void *__restrict __from, void *__restrict __to,
  29163. ssize_t __n) __THROW __nonnull ((1, 2));
  29164. #endif
  29165. @@ -1178,7 +1256,7 @@
  29166. /* Define some macros helping to catch buffer overflows. */
  29167. -#if __USE_FORTIFY_LEVEL > 0 && !defined __cplusplus
  29168. +#if __USE_FORTIFY_LEVEL > 0 && defined __extern_always_inline
  29169. # include <bits/unistd.h>
  29170. #endif
  29171. @@ -1191,6 +1269,7 @@
  29172. #endif
  29173. typedef signed smallint_type smallint;
  29174. typedef unsigned smallint_type smalluint;
  29175. +extern size_t __pagesize attribute_hidden;
  29176. #endif
  29177. diff -Nur uClibc-0.9.33.2/include/utime.h uClibc-git/include/utime.h
  29178. --- uClibc-0.9.33.2/include/utime.h 2012-05-15 09:20:09.000000000 +0200
  29179. +++ uClibc-git/include/utime.h 2014-06-02 17:40:33.902711365 +0200
  29180. @@ -12,9 +12,8 @@
  29181. Lesser General Public License for more details.
  29182. You should have received a copy of the GNU Lesser General Public
  29183. - License along with the GNU C Library; if not, write to the Free
  29184. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  29185. - 02111-1307 USA. */
  29186. + License along with the GNU C Library; if not, see
  29187. + <http://www.gnu.org/licenses/>. */
  29188. /*
  29189. * POSIX Standard: 5.6.6 Set File Access and Modification Times <utime.h>
  29190. @@ -43,8 +42,8 @@
  29191. /* Set the access and modification times of FILE to those given in
  29192. *FILE_TIMES. If FILE_TIMES is NULL, set them to the current time. */
  29193. -extern int utime (__const char *__file,
  29194. - __const struct utimbuf *__file_times)
  29195. +extern int utime (const char *__file,
  29196. + const struct utimbuf *__file_times)
  29197. __THROW __nonnull ((1));
  29198. libc_hidden_proto(utime)
  29199. diff -Nur uClibc-0.9.33.2/include/utmp.h uClibc-git/include/utmp.h
  29200. --- uClibc-0.9.33.2/include/utmp.h 2012-05-15 09:20:09.000000000 +0200
  29201. +++ uClibc-git/include/utmp.h 2014-06-02 17:40:33.902711365 +0200
  29202. @@ -12,9 +12,8 @@
  29203. Lesser General Public License for more details.
  29204. You should have received a copy of the GNU Lesser General Public
  29205. - License along with the GNU C Library; if not, write to the Free
  29206. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  29207. - 02111-1307 USA. */
  29208. + License along with the GNU C Library; if not, see
  29209. + <http://www.gnu.org/licenses/>. */
  29210. #ifndef _UTMP_H
  29211. #define _UTMP_H 1
  29212. @@ -44,60 +43,52 @@
  29213. /* Write the given entry into utmp and wtmp. */
  29214. -extern void login (__const struct utmp *__entry) __THROW;
  29215. +extern void login (const struct utmp *__entry) __THROW;
  29216. /* Write the utmp entry to say the user on UT_LINE has logged out. */
  29217. -extern int logout (__const char *__ut_line) __THROW;
  29218. +extern int logout (const char *__ut_line) __THROW;
  29219. /* Append to wtmp an entry for the current time and the given info. */
  29220. -extern void logwtmp (__const char *__ut_line, __const char *__ut_name,
  29221. - __const char *__ut_host) __THROW;
  29222. +extern void logwtmp (const char *__ut_line, const char *__ut_name,
  29223. + const char *__ut_host) __THROW;
  29224. #endif
  29225. /* Append entry UTMP to the wtmp-like file WTMP_FILE. */
  29226. -extern void updwtmp (__const char *__wtmp_file, __const struct utmp *__utmp)
  29227. +extern void updwtmp (const char *__wtmp_file, const struct utmp *__utmp)
  29228. __THROW;
  29229. -libc_hidden_proto(updwtmp)
  29230. /* Change name of the utmp file to be examined. */
  29231. -extern int utmpname (__const char *__file) __THROW;
  29232. -libc_hidden_proto(utmpname)
  29233. +extern int utmpname (const char *__file) __THROW;
  29234. /* Read next entry from a utmp-like file. */
  29235. extern struct utmp *getutent (void) __THROW;
  29236. -libc_hidden_proto(getutent)
  29237. /* Reset the input stream to the beginning of the file. */
  29238. extern void setutent (void) __THROW;
  29239. -libc_hidden_proto(setutent)
  29240. /* Close the current open file. */
  29241. extern void endutent (void) __THROW;
  29242. -libc_hidden_proto(endutent)
  29243. /* Search forward from the current point in the utmp file until the
  29244. next entry with a ut_type matching ID->ut_type. */
  29245. -extern struct utmp *getutid (__const struct utmp *__id) __THROW;
  29246. -libc_hidden_proto(getutid)
  29247. +extern struct utmp *getutid (const struct utmp *__id) __THROW;
  29248. /* Search forward from the current point in the utmp file until the
  29249. next entry with a ut_line matching LINE->ut_line. */
  29250. -extern struct utmp *getutline (__const struct utmp *__line) __THROW;
  29251. -libc_hidden_proto(getutline)
  29252. +extern struct utmp *getutline (const struct utmp *__line) __THROW;
  29253. /* Write out entry pointed to by UTMP_PTR into the utmp file. */
  29254. -extern struct utmp *pututline (__const struct utmp *__utmp_ptr) __THROW;
  29255. -libc_hidden_proto(pututline)
  29256. +extern struct utmp *pututline (const struct utmp *__utmp_ptr) __THROW;
  29257. #if 0 /* def __USE_MISC */
  29258. /* Reentrant versions of the file for handling utmp files. */
  29259. extern int getutent_r (struct utmp *__buffer, struct utmp **__result) __THROW;
  29260. -extern int getutid_r (__const struct utmp *__id, struct utmp *__buffer,
  29261. +extern int getutid_r (const struct utmp *__id, struct utmp *__buffer,
  29262. struct utmp **__result) __THROW;
  29263. -extern int getutline_r (__const struct utmp *__line,
  29264. +extern int getutline_r (const struct utmp *__line,
  29265. struct utmp *__buffer, struct utmp **__result) __THROW;
  29266. #endif /* Use misc. */
  29267. diff -Nur uClibc-0.9.33.2/include/utmpx.h uClibc-git/include/utmpx.h
  29268. --- uClibc-0.9.33.2/include/utmpx.h 2012-05-15 09:20:09.000000000 +0200
  29269. +++ uClibc-git/include/utmpx.h 2014-06-02 17:40:33.902711365 +0200
  29270. @@ -12,9 +12,8 @@
  29271. Lesser General Public License for more details.
  29272. You should have received a copy of the GNU Lesser General Public
  29273. - License along with the GNU C Library; if not, write to the Free
  29274. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  29275. - 02111-1307 USA. */
  29276. + License along with the GNU C Library; if not, see
  29277. + <http://www.gnu.org/licenses/>. */
  29278. #ifndef _UTMPX_H
  29279. #define _UTMPX_H 1
  29280. @@ -69,19 +68,19 @@
  29281. This function is a possible cancellation point and therefore not
  29282. marked with __THROW. */
  29283. -extern struct utmpx *getutxid (__const struct utmpx *__id);
  29284. +extern struct utmpx *getutxid (const struct utmpx *__id);
  29285. /* Get the user accounting database entry corresponding to LINE.
  29286. This function is a possible cancellation point and therefore not
  29287. marked with __THROW. */
  29288. -extern struct utmpx *getutxline (__const struct utmpx *__line);
  29289. +extern struct utmpx *getutxline (const struct utmpx *__line);
  29290. /* Write the entry UTMPX into the user accounting database.
  29291. This function is a possible cancellation point and therefore not
  29292. marked with __THROW. */
  29293. -extern struct utmpx *pututxline (__const struct utmpx *__utmpx);
  29294. +extern struct utmpx *pututxline (const struct utmpx *__utmpx);
  29295. #ifdef __USE_GNU
  29296. @@ -91,7 +90,7 @@
  29297. cancellation point. But due to similarity with an POSIX interface
  29298. or due to the implementation it is a cancellation point and
  29299. therefore not marked with __THROW. */
  29300. -extern int utmpxname (__const char *__file);
  29301. +extern int utmpxname (const char *__file);
  29302. /* Append entry UTMP to the wtmpx-like file WTMPX_FILE.
  29303. @@ -99,8 +98,8 @@
  29304. cancellation point. But due to similarity with an POSIX interface
  29305. or due to the implementation it is a cancellation point and
  29306. therefore not marked with __THROW. */
  29307. -extern void updwtmpx (__const char *__wtmpx_file,
  29308. - __const struct utmpx *__utmpx);
  29309. +extern void updwtmpx (const char *__wtmpx_file,
  29310. + const struct utmpx *__utmpx);
  29311. /* Copy the information in UTMPX to UTMP.
  29312. @@ -109,7 +108,7 @@
  29313. cancellation point. But due to similarity with an POSIX interface
  29314. or due to the implementation it is a cancellation point and
  29315. therefore not marked with __THROW. */
  29316. -extern void getutmp (__const struct utmpx *__utmpx,
  29317. +extern void getutmp (const struct utmpx *__utmpx,
  29318. struct utmp *__utmp);
  29319. /* Copy the information in UTMP to UTMPX.
  29320. @@ -118,7 +117,7 @@
  29321. cancellation point. But due to similarity with an POSIX interface
  29322. or due to the implementation it is a cancellation point and
  29323. therefore not marked with __THROW. */
  29324. -extern void getutmpx (__const struct utmp *__utmp,
  29325. +extern void getutmpx (const struct utmp *__utmp,
  29326. struct utmpx *__utmpx);
  29327. #endif
  29328. diff -Nur uClibc-0.9.33.2/include/values.h uClibc-git/include/values.h
  29329. --- uClibc-0.9.33.2/include/values.h 2012-05-15 09:20:09.000000000 +0200
  29330. +++ uClibc-git/include/values.h 2014-06-02 17:40:33.902711365 +0200
  29331. @@ -13,9 +13,8 @@
  29332. Lesser General Public License for more details.
  29333. You should have received a copy of the GNU Lesser General Public
  29334. - License along with the GNU C Library; if not, write to the Free
  29335. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  29336. - 02111-1307 USA. */
  29337. + License along with the GNU C Library; if not, see
  29338. + <http://www.gnu.org/licenses/>. */
  29339. /* This interface is obsolete. New programs should use
  29340. <limits.h> and/or <float.h> instead of <values.h>. */
  29341. diff -Nur uClibc-0.9.33.2/include/wchar.h uClibc-git/include/wchar.h
  29342. --- uClibc-0.9.33.2/include/wchar.h 2012-05-15 09:20:09.000000000 +0200
  29343. +++ uClibc-git/include/wchar.h 2014-06-02 17:40:33.902711365 +0200
  29344. @@ -12,9 +12,8 @@
  29345. Lesser General Public License for more details.
  29346. You should have received a copy of the GNU Lesser General Public
  29347. - License along with the GNU C Library; if not, write to the Free
  29348. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  29349. - 02111-1307 USA. */
  29350. + License along with the GNU C Library; if not, see
  29351. + <http://www.gnu.org/licenses/>. */
  29352. /*
  29353. * ISO C99 Standard: 7.24
  29354. @@ -133,46 +132,46 @@
  29355. /* This incomplete type is defined in <time.h> but needed here because
  29356. of `wcsftime'. */
  29357. struct tm;
  29358. +__END_NAMESPACE_STD
  29359. /* XXX We have to clean this up at some point. Since tm is in the std
  29360. namespace but wcsftime is in __c99 the type wouldn't be found
  29361. without inserting it in the global namespace. */
  29362. __USING_NAMESPACE_STD(tm)
  29363. -__END_NAMESPACE_STD
  29364. __BEGIN_NAMESPACE_C99
  29365. /* Copy SRC to DEST. */
  29366. extern wchar_t *wcscpy (wchar_t *__restrict __dest,
  29367. - __const wchar_t *__restrict __src) __THROW;
  29368. + const wchar_t *__restrict __src) __THROW;
  29369. /* Copy no more than N wide-characters of SRC to DEST. */
  29370. extern wchar_t *wcsncpy (wchar_t *__restrict __dest,
  29371. - __const wchar_t *__restrict __src, size_t __n)
  29372. + const wchar_t *__restrict __src, size_t __n)
  29373. __THROW;
  29374. /* Append SRC onto DEST. */
  29375. extern wchar_t *wcscat (wchar_t *__restrict __dest,
  29376. - __const wchar_t *__restrict __src) __THROW;
  29377. + const wchar_t *__restrict __src) __THROW;
  29378. libc_hidden_proto(wcscat)
  29379. /* Append no more than N wide-characters of SRC onto DEST. */
  29380. extern wchar_t *wcsncat (wchar_t *__restrict __dest,
  29381. - __const wchar_t *__restrict __src, size_t __n)
  29382. + const wchar_t *__restrict __src, size_t __n)
  29383. __THROW;
  29384. /* Compare S1 and S2. */
  29385. -extern int wcscmp (__const wchar_t *__s1, __const wchar_t *__s2)
  29386. +extern int wcscmp (const wchar_t *__s1, const wchar_t *__s2)
  29387. __THROW __attribute_pure__;
  29388. libc_hidden_proto(wcscmp)
  29389. /* Compare N wide-characters of S1 and S2. */
  29390. -extern int wcsncmp (__const wchar_t *__s1, __const wchar_t *__s2, size_t __n)
  29391. +extern int wcsncmp (const wchar_t *__s1, const wchar_t *__s2, size_t __n)
  29392. __THROW __attribute_pure__;
  29393. __END_NAMESPACE_C99
  29394. #ifdef __USE_GNU
  29395. /* Compare S1 and S2, ignoring case. */
  29396. -extern int wcscasecmp (__const wchar_t *__s1, __const wchar_t *__s2) __THROW;
  29397. +extern int wcscasecmp (const wchar_t *__s1, const wchar_t *__s2) __THROW;
  29398. /* Compare no more than N chars of S1 and S2, ignoring case. */
  29399. -extern int wcsncasecmp (__const wchar_t *__s1, __const wchar_t *__s2,
  29400. +extern int wcsncasecmp (const wchar_t *__s1, const wchar_t *__s2,
  29401. size_t __n) __THROW;
  29402. #ifdef __UCLIBC_HAS_XLOCALE__
  29403. @@ -180,11 +179,11 @@
  29404. the provided locale and not the global locale. */
  29405. # include <xlocale.h>
  29406. -extern int wcscasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
  29407. +extern int wcscasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
  29408. __locale_t __loc) __THROW;
  29409. libc_hidden_proto(wcscasecmp_l)
  29410. -extern int wcsncasecmp_l (__const wchar_t *__s1, __const wchar_t *__s2,
  29411. +extern int wcsncasecmp_l (const wchar_t *__s1, const wchar_t *__s2,
  29412. size_t __n, __locale_t __loc) __THROW;
  29413. libc_hidden_proto(wcsncasecmp_l)
  29414. #endif /* __UCLIBC_HAS_XLOCALE__ */
  29415. @@ -193,13 +192,13 @@
  29416. __BEGIN_NAMESPACE_C99
  29417. /* Compare S1 and S2, both interpreted as appropriate to the
  29418. LC_COLLATE category of the current locale. */
  29419. -extern int wcscoll (__const wchar_t *__s1, __const wchar_t *__s2) __THROW;
  29420. +extern int wcscoll (const wchar_t *__s1, const wchar_t *__s2) __THROW;
  29421. libc_hidden_proto(wcscoll)
  29422. /* Transform S2 into array pointed to by S1 such that if wcscmp is
  29423. applied to two transformed strings the result is the as applying
  29424. `wcscoll' to the original strings. */
  29425. extern size_t wcsxfrm (wchar_t *__restrict __s1,
  29426. - __const wchar_t *__restrict __s2, size_t __n) __THROW;
  29427. + const wchar_t *__restrict __s2, size_t __n) __THROW;
  29428. __END_NAMESPACE_C99
  29429. #ifdef __USE_GNU
  29430. @@ -209,76 +208,79 @@
  29431. /* Compare S1 and S2, both interpreted as appropriate to the
  29432. LC_COLLATE category of the given locale. */
  29433. -extern int wcscoll_l (__const wchar_t *__s1, __const wchar_t *__s2,
  29434. +extern int wcscoll_l (const wchar_t *__s1, const wchar_t *__s2,
  29435. __locale_t __loc) __THROW;
  29436. libc_hidden_proto(wcscoll_l)
  29437. /* Transform S2 into array pointed to by S1 such that if wcscmp is
  29438. applied to two transformed strings the result is the as applying
  29439. `wcscoll' to the original strings. */
  29440. -extern size_t wcsxfrm_l (wchar_t *__s1, __const wchar_t *__s2,
  29441. +extern size_t wcsxfrm_l (wchar_t *__s1, const wchar_t *__s2,
  29442. size_t __n, __locale_t __loc) __THROW;
  29443. libc_hidden_proto(wcsxfrm_l)
  29444. #endif /* __UCLIBC_HAS_XLOCALE__ */
  29445. /* Duplicate S, returning an identical malloc'd string. */
  29446. -extern wchar_t *wcsdup (__const wchar_t *__s) __THROW __attribute_malloc__;
  29447. +extern wchar_t *wcsdup (const wchar_t *__s) __THROW __attribute_malloc__;
  29448. #endif
  29449. __BEGIN_NAMESPACE_C99
  29450. /* Find the first occurrence of WC in WCS. */
  29451. -extern wchar_t *wcschr (__const wchar_t *__wcs, wchar_t __wc)
  29452. +extern wchar_t *wcschr (const wchar_t *__wcs, wchar_t __wc)
  29453. __THROW __attribute_pure__;
  29454. /* Find the last occurrence of WC in WCS. */
  29455. -extern wchar_t *wcsrchr (__const wchar_t *__wcs, wchar_t __wc)
  29456. +extern wchar_t *wcsrchr (const wchar_t *__wcs, wchar_t __wc)
  29457. __THROW __attribute_pure__;
  29458. __END_NAMESPACE_C99
  29459. #ifdef __USE_GNU
  29460. /* This function is similar to `wcschr'. But it returns a pointer to
  29461. the closing NUL wide character in case C is not found in S. */
  29462. -extern wchar_t *wcschrnul (__const wchar_t *__s, wchar_t __wc)
  29463. +extern wchar_t *wcschrnul (const wchar_t *__s, wchar_t __wc)
  29464. __THROW __attribute_pure__;
  29465. #endif
  29466. __BEGIN_NAMESPACE_C99
  29467. /* Return the length of the initial segmet of WCS which
  29468. consists entirely of wide characters not in REJECT. */
  29469. -extern size_t wcscspn (__const wchar_t *__wcs, __const wchar_t *__reject)
  29470. +extern size_t wcscspn (const wchar_t *__wcs, const wchar_t *__reject)
  29471. __THROW __attribute_pure__;
  29472. /* Return the length of the initial segmet of WCS which
  29473. consists entirely of wide characters in ACCEPT. */
  29474. -extern size_t wcsspn (__const wchar_t *__wcs, __const wchar_t *__accept)
  29475. +extern size_t wcsspn (const wchar_t *__wcs, const wchar_t *__accept)
  29476. __THROW __attribute_pure__;
  29477. libc_hidden_proto(wcsspn)
  29478. /* Find the first occurrence in WCS of any character in ACCEPT. */
  29479. -extern wchar_t *wcspbrk (__const wchar_t *__wcs, __const wchar_t *__accept)
  29480. +extern wchar_t *wcspbrk (const wchar_t *__wcs, const wchar_t *__accept)
  29481. __THROW __attribute_pure__;
  29482. libc_hidden_proto(wcspbrk)
  29483. /* Find the first occurrence of NEEDLE in HAYSTACK. */
  29484. -extern wchar_t *wcsstr (__const wchar_t *__haystack, __const wchar_t *__needle)
  29485. +/* SuSv uses restrict keyword, glibc does not */
  29486. +extern wchar_t *wcsstr (const wchar_t *__restrict __haystack, const wchar_t *__restrict __needle)
  29487. __THROW __attribute_pure__;
  29488. /* Divide WCS into tokens separated by characters in DELIM. */
  29489. extern wchar_t *wcstok (wchar_t *__restrict __s,
  29490. - __const wchar_t *__restrict __delim,
  29491. + const wchar_t *__restrict __delim,
  29492. wchar_t **__restrict __ptr) __THROW;
  29493. /* Return the number of wide characters in S. */
  29494. -extern size_t wcslen (__const wchar_t *__s) __THROW __attribute_pure__;
  29495. +extern size_t wcslen (const wchar_t *__s) __THROW __attribute_pure__;
  29496. libc_hidden_proto(wcslen)
  29497. __END_NAMESPACE_C99
  29498. #if defined __USE_XOPEN && defined __UCLIBC_SUSV3_LEGACY__
  29499. /* Another name for `wcsstr' from XPG4. */
  29500. -extern wchar_t *wcswcs (__const wchar_t *__haystack, __const wchar_t *__needle)
  29501. +/* SuSv3 did not use restrict keyword, probably because it was marked LEGACY
  29502. + we do to be in sync with wcsstr */
  29503. +extern wchar_t *wcswcs (const wchar_t *__restrict __haystack, const wchar_t *__restrict __needle)
  29504. __THROW __attribute_pure__;
  29505. #endif
  29506. #ifdef __USE_GNU
  29507. /* Return the number of wide characters in S, but at most MAXLEN. */
  29508. -extern size_t wcsnlen (__const wchar_t *__s, size_t __maxlen)
  29509. +extern size_t wcsnlen (const wchar_t *__s, size_t __maxlen)
  29510. __THROW __attribute_pure__;
  29511. libc_hidden_proto(wcsnlen)
  29512. #endif
  29513. @@ -286,23 +288,24 @@
  29514. __BEGIN_NAMESPACE_C99
  29515. /* Search N wide characters of S for C. */
  29516. -extern wchar_t *wmemchr (__const wchar_t *__s, wchar_t __c, size_t __n)
  29517. +extern wchar_t *wmemchr (const wchar_t *__s, wchar_t __c, size_t __n)
  29518. __THROW __attribute_pure__;
  29519. libc_hidden_proto(wmemchr)
  29520. /* Compare N wide characters of S1 and S2. */
  29521. -extern int wmemcmp (__const wchar_t *__restrict __s1,
  29522. - __const wchar_t *__restrict __s2, size_t __n)
  29523. +/* SuSv4 does not use restrict keyword for S1 and S2, glibc does */
  29524. +extern int wmemcmp (const wchar_t *__s1,
  29525. + const wchar_t *__s2, size_t __n)
  29526. __THROW __attribute_pure__;
  29527. /* Copy N wide characters of SRC to DEST. */
  29528. extern wchar_t *wmemcpy (wchar_t *__restrict __s1,
  29529. - __const wchar_t *__restrict __s2, size_t __n) __THROW;
  29530. + const wchar_t *__restrict __s2, size_t __n) __THROW;
  29531. libc_hidden_proto(wmemcpy)
  29532. /* Copy N wide characters of SRC to DEST, guaranteeing
  29533. correct behavior for overlapping strings. */
  29534. -extern wchar_t *wmemmove (wchar_t *__s1, __const wchar_t *__s2, size_t __n)
  29535. +extern wchar_t *wmemmove (wchar_t *__s1, const wchar_t *__s2, size_t __n)
  29536. __THROW;
  29537. /* Set N wide characters of S to C. */
  29538. @@ -313,7 +316,7 @@
  29539. /* Copy N wide characters of SRC to DEST and return pointer to following
  29540. wide character. */
  29541. extern wchar_t *wmempcpy (wchar_t *__restrict __s1,
  29542. - __const wchar_t *__restrict __s2, size_t __n)
  29543. + const wchar_t *__restrict __s2, size_t __n)
  29544. __THROW;
  29545. libc_hidden_proto(wmempcpy)
  29546. #endif
  29547. @@ -331,13 +334,13 @@
  29548. /* Determine whether PS points to an object representing the initial
  29549. state. */
  29550. -extern int mbsinit (__const mbstate_t *__ps) __THROW __attribute_pure__;
  29551. +extern int mbsinit (const mbstate_t *__ps) __THROW __attribute_pure__;
  29552. libc_hidden_proto(mbsinit)
  29553. /* Write wide character representation of multibyte character pointed
  29554. to by S to PWC. */
  29555. extern size_t mbrtowc (wchar_t *__restrict __pwc,
  29556. - __const char *__restrict __s, size_t __n,
  29557. + const char *__restrict __s, size_t __n,
  29558. mbstate_t *__p) __THROW;
  29559. libc_hidden_proto(mbrtowc)
  29560. @@ -348,24 +351,24 @@
  29561. /* Return number of bytes in multibyte character pointed to by S. */
  29562. #if 0 /* uClibc: disabled */
  29563. -extern size_t __mbrlen (__const char *__restrict __s, size_t __n,
  29564. +extern size_t __mbrlen (const char *__restrict __s, size_t __n,
  29565. mbstate_t *__restrict __ps) __THROW;
  29566. #endif
  29567. -extern size_t mbrlen (__const char *__restrict __s, size_t __n,
  29568. +extern size_t mbrlen (const char *__restrict __s, size_t __n,
  29569. mbstate_t *__restrict __ps) __THROW;
  29570. libc_hidden_proto(mbrlen)
  29571. /* Write wide character representation of multibyte character string
  29572. SRC to DST. */
  29573. extern size_t mbsrtowcs (wchar_t *__restrict __dst,
  29574. - __const char **__restrict __src, size_t __len,
  29575. + const char **__restrict __src, size_t __len,
  29576. mbstate_t *__restrict __ps) __THROW;
  29577. libc_hidden_proto(mbsrtowcs)
  29578. /* Write multibyte character representation of wide character string
  29579. SRC to DST. */
  29580. extern size_t wcsrtombs (char *__restrict __dst,
  29581. - __const wchar_t **__restrict __src, size_t __len,
  29582. + const wchar_t **__restrict __src, size_t __len,
  29583. mbstate_t *__restrict __ps) __THROW;
  29584. libc_hidden_proto(wcsrtombs)
  29585. __END_NAMESPACE_C99
  29586. @@ -375,14 +378,14 @@
  29587. /* Write wide character representation of at most NMC bytes of the
  29588. multibyte character string SRC to DST. */
  29589. extern size_t mbsnrtowcs (wchar_t *__restrict __dst,
  29590. - __const char **__restrict __src, size_t __nmc,
  29591. + const char **__restrict __src, size_t __nmc,
  29592. size_t __len, mbstate_t *__restrict __ps) __THROW;
  29593. libc_hidden_proto(mbsnrtowcs)
  29594. /* Write multibyte character representation of at most NWC characters
  29595. from the wide character string SRC to DST. */
  29596. extern size_t wcsnrtombs (char *__restrict __dst,
  29597. - __const wchar_t **__restrict __src,
  29598. + const wchar_t **__restrict __src,
  29599. size_t __nwc, size_t __len,
  29600. mbstate_t *__restrict __ps) __THROW;
  29601. libc_hidden_proto(wcsnrtombs)
  29602. @@ -396,7 +399,7 @@
  29603. /* Determine number of column positions required for first N wide
  29604. characters (or fewer if S ends before this) in S. */
  29605. -extern int wcswidth (__const wchar_t *__s, size_t __n) __THROW;
  29606. +extern int wcswidth (const wchar_t *__s, size_t __n) __THROW;
  29607. libc_hidden_proto(wcswidth)
  29608. #endif /* Use X/Open. */
  29609. @@ -405,14 +408,14 @@
  29610. #ifdef __UCLIBC_HAS_FLOATS__
  29611. /* Convert initial portion of the wide string NPTR to `double'
  29612. representation. */
  29613. -extern double wcstod (__const wchar_t *__restrict __nptr,
  29614. +extern double wcstod (const wchar_t *__restrict __nptr,
  29615. wchar_t **__restrict __endptr) __THROW;
  29616. #ifdef __USE_ISOC99
  29617. /* Likewise for `float' and `long double' sizes of floating-point numbers. */
  29618. -extern float wcstof (__const wchar_t *__restrict __nptr,
  29619. +extern float wcstof (const wchar_t *__restrict __nptr,
  29620. wchar_t **__restrict __endptr) __THROW;
  29621. -extern long double wcstold (__const wchar_t *__restrict __nptr,
  29622. +extern long double wcstold (const wchar_t *__restrict __nptr,
  29623. wchar_t **__restrict __endptr) __THROW;
  29624. #endif /* C99 */
  29625. #endif /* __UCLIBC_HAS_FLOATS__ */
  29626. @@ -420,44 +423,44 @@
  29627. /* Convert initial portion of wide string NPTR to `long int'
  29628. representation. */
  29629. -extern long int wcstol (__const wchar_t *__restrict __nptr,
  29630. +extern long int wcstol (const wchar_t *__restrict __nptr,
  29631. wchar_t **__restrict __endptr, int __base) __THROW;
  29632. /* Convert initial portion of wide string NPTR to `unsigned long int'
  29633. representation. */
  29634. -extern unsigned long int wcstoul (__const wchar_t *__restrict __nptr,
  29635. +extern unsigned long int wcstoul (const wchar_t *__restrict __nptr,
  29636. wchar_t **__restrict __endptr, int __base)
  29637. __THROW;
  29638. #if defined __USE_ISOC99 || (defined __GNUC__ && defined __USE_GNU)
  29639. -/* Convert initial portion of wide string NPTR to `long int'
  29640. +/* Convert initial portion of wide string NPTR to `long long int'
  29641. representation. */
  29642. __extension__
  29643. -extern long long int wcstoll (__const wchar_t *__restrict __nptr,
  29644. +extern long long int wcstoll (const wchar_t *__restrict __nptr,
  29645. wchar_t **__restrict __endptr, int __base)
  29646. __THROW;
  29647. /* Convert initial portion of wide string NPTR to `unsigned long long int'
  29648. representation. */
  29649. __extension__
  29650. -extern unsigned long long int wcstoull (__const wchar_t *__restrict __nptr,
  29651. +extern unsigned long long int wcstoull (const wchar_t *__restrict __nptr,
  29652. wchar_t **__restrict __endptr,
  29653. int __base) __THROW;
  29654. #endif /* ISO C99 or GCC and GNU. */
  29655. __END_NAMESPACE_C99
  29656. #if defined __GNUC__ && defined __USE_GNU
  29657. -/* Convert initial portion of wide string NPTR to `long int'
  29658. +/* Convert initial portion of wide string NPTR to `long long int'
  29659. representation. */
  29660. __extension__
  29661. -extern long long int wcstoq (__const wchar_t *__restrict __nptr,
  29662. +extern long long int wcstoq (const wchar_t *__restrict __nptr,
  29663. wchar_t **__restrict __endptr, int __base)
  29664. __THROW;
  29665. /* Convert initial portion of wide string NPTR to `unsigned long long int'
  29666. representation. */
  29667. __extension__
  29668. -extern unsigned long long int wcstouq (__const wchar_t *__restrict __nptr,
  29669. +extern unsigned long long int wcstouq (const wchar_t *__restrict __nptr,
  29670. wchar_t **__restrict __endptr,
  29671. int __base) __THROW;
  29672. #endif /* GCC and use GNU. */
  29673. @@ -481,35 +484,35 @@
  29674. /* Special versions of the functions above which take the locale to
  29675. use as an additional parameter. */
  29676. -extern long int wcstol_l (__const wchar_t *__restrict __nptr,
  29677. +extern long int wcstol_l (const wchar_t *__restrict __nptr,
  29678. wchar_t **__restrict __endptr, int __base,
  29679. __locale_t __loc) __THROW;
  29680. -extern unsigned long int wcstoul_l (__const wchar_t *__restrict __nptr,
  29681. +extern unsigned long int wcstoul_l (const wchar_t *__restrict __nptr,
  29682. wchar_t **__restrict __endptr,
  29683. int __base, __locale_t __loc) __THROW;
  29684. __extension__
  29685. -extern long long int wcstoll_l (__const wchar_t *__restrict __nptr,
  29686. +extern long long int wcstoll_l (const wchar_t *__restrict __nptr,
  29687. wchar_t **__restrict __endptr,
  29688. int __base, __locale_t __loc) __THROW;
  29689. __extension__
  29690. -extern unsigned long long int wcstoull_l (__const wchar_t *__restrict __nptr,
  29691. +extern unsigned long long int wcstoull_l (const wchar_t *__restrict __nptr,
  29692. wchar_t **__restrict __endptr,
  29693. int __base, __locale_t __loc)
  29694. __THROW;
  29695. #ifdef __UCLIBC_HAS_FLOATS__
  29696. -extern double wcstod_l (__const wchar_t *__restrict __nptr,
  29697. +extern double wcstod_l (const wchar_t *__restrict __nptr,
  29698. wchar_t **__restrict __endptr, __locale_t __loc)
  29699. __THROW;
  29700. -extern float wcstof_l (__const wchar_t *__restrict __nptr,
  29701. +extern float wcstof_l (const wchar_t *__restrict __nptr,
  29702. wchar_t **__restrict __endptr, __locale_t __loc)
  29703. __THROW;
  29704. -extern long double wcstold_l (__const wchar_t *__restrict __nptr,
  29705. +extern long double wcstold_l (const wchar_t *__restrict __nptr,
  29706. wchar_t **__restrict __endptr,
  29707. __locale_t __loc) __THROW;
  29708. #endif /* __UCLIBC_HAS_FLOATS__ */
  29709. @@ -520,11 +523,11 @@
  29710. #ifdef __USE_GNU
  29711. /* Copy SRC to DEST, returning the address of the terminating L'\0' in
  29712. DEST. */
  29713. -extern wchar_t *wcpcpy (wchar_t *__dest, __const wchar_t *__src) __THROW;
  29714. +extern wchar_t *wcpcpy (wchar_t *__dest, const wchar_t *__src) __THROW;
  29715. /* Copy no more than N characters of SRC to DEST, returning the address of
  29716. the last character written into DEST. */
  29717. -extern wchar_t *wcpncpy (wchar_t *__dest, __const wchar_t *__src, size_t __n)
  29718. +extern wchar_t *wcpncpy (wchar_t *__dest, const wchar_t *__src, size_t __n)
  29719. __THROW;
  29720. #endif /* use GNU */
  29721. @@ -542,17 +545,17 @@
  29722. This function is a possible cancellation point and therefore not
  29723. marked with __THROW. */
  29724. extern int fwprintf (__FILE *__restrict __stream,
  29725. - __const wchar_t *__restrict __format, ...)
  29726. + const wchar_t *__restrict __format, ...)
  29727. /* __attribute__ ((__format__ (__wprintf__, 2, 3))) */;
  29728. /* Write formatted output to stdout.
  29729. This function is a possible cancellation point and therefore not
  29730. marked with __THROW. */
  29731. -extern int wprintf (__const wchar_t *__restrict __format, ...)
  29732. +extern int wprintf (const wchar_t *__restrict __format, ...)
  29733. /* __attribute__ ((__format__ (__wprintf__, 1, 2))) */;
  29734. /* Write formatted output of at most N characters to S. */
  29735. extern int swprintf (wchar_t *__restrict __s, size_t __n,
  29736. - __const wchar_t *__restrict __format, ...)
  29737. + const wchar_t *__restrict __format, ...)
  29738. __THROW /* __attribute__ ((__format__ (__wprintf__, 3, 4))) */;
  29739. /* Write formatted output to S from argument list ARG.
  29740. @@ -560,7 +563,7 @@
  29741. This function is a possible cancellation point and therefore not
  29742. marked with __THROW. */
  29743. extern int vfwprintf (__FILE *__restrict __s,
  29744. - __const wchar_t *__restrict __format,
  29745. + const wchar_t *__restrict __format,
  29746. __gnuc_va_list __arg)
  29747. /* __attribute__ ((__format__ (__wprintf__, 2, 0))) */;
  29748. libc_hidden_proto(vfwprintf)
  29749. @@ -568,13 +571,13 @@
  29750. This function is a possible cancellation point and therefore not
  29751. marked with __THROW. */
  29752. -extern int vwprintf (__const wchar_t *__restrict __format,
  29753. +extern int vwprintf (const wchar_t *__restrict __format,
  29754. __gnuc_va_list __arg)
  29755. /* __attribute__ ((__format__ (__wprintf__, 1, 0))) */;
  29756. /* Write formatted output of at most N character to S from argument
  29757. list ARG. */
  29758. extern int vswprintf (wchar_t *__restrict __s, size_t __n,
  29759. - __const wchar_t *__restrict __format,
  29760. + const wchar_t *__restrict __format,
  29761. __gnuc_va_list __arg)
  29762. __THROW /* __attribute__ ((__format__ (__wprintf__, 3, 0))) */;
  29763. libc_hidden_proto(vswprintf)
  29764. @@ -585,17 +588,17 @@
  29765. This function is a possible cancellation point and therefore not
  29766. marked with __THROW. */
  29767. extern int fwscanf (__FILE *__restrict __stream,
  29768. - __const wchar_t *__restrict __format, ...)
  29769. + const wchar_t *__restrict __format, ...)
  29770. /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */;
  29771. /* Read formatted input from stdin.
  29772. This function is a possible cancellation point and therefore not
  29773. marked with __THROW. */
  29774. -extern int wscanf (__const wchar_t *__restrict __format, ...)
  29775. +extern int wscanf (const wchar_t *__restrict __format, ...)
  29776. /* __attribute__ ((__format__ (__wscanf__, 1, 2))) */;
  29777. /* Read formatted input from S. */
  29778. -extern int swscanf (__const wchar_t *__restrict __s,
  29779. - __const wchar_t *__restrict __format, ...)
  29780. +extern int swscanf (const wchar_t *__restrict __s,
  29781. + const wchar_t *__restrict __format, ...)
  29782. __THROW /* __attribute__ ((__format__ (__wscanf__, 2, 3))) */;
  29783. __END_NAMESPACE_C99
  29784. @@ -609,7 +612,7 @@
  29785. This function is a possible cancellation point and therefore not
  29786. marked with __THROW. */
  29787. extern int vfwscanf (__FILE *__restrict __s,
  29788. - __const wchar_t *__restrict __format,
  29789. + const wchar_t *__restrict __format,
  29790. __gnuc_va_list __arg)
  29791. /* __attribute__ ((__format__ (__wscanf__, 2, 0))) */;
  29792. libc_hidden_proto(vfwscanf)
  29793. @@ -617,12 +620,12 @@
  29794. This function is a possible cancellation point and therefore not
  29795. marked with __THROW. */
  29796. -extern int vwscanf (__const wchar_t *__restrict __format,
  29797. +extern int vwscanf (const wchar_t *__restrict __format,
  29798. __gnuc_va_list __arg)
  29799. /* __attribute__ ((__format__ (__wscanf__, 1, 0))) */;
  29800. /* Read formatted input from S into argument list ARG. */
  29801. -extern int vswscanf (__const wchar_t *__restrict __s,
  29802. - __const wchar_t *__restrict __format,
  29803. +extern int vswscanf (const wchar_t *__restrict __s,
  29804. + const wchar_t *__restrict __format,
  29805. __gnuc_va_list __arg)
  29806. __THROW /* __attribute__ ((__format__ (__wscanf__, 2, 0))) */;
  29807. libc_hidden_proto(vswscanf)
  29808. @@ -652,6 +655,7 @@
  29809. These functions are possible cancellation points and therefore not
  29810. marked with __THROW. */
  29811. extern wint_t fputwc (wchar_t __wc, __FILE *__stream);
  29812. +libc_hidden_proto(fputwc)
  29813. extern wint_t putwc (wchar_t __wc, __FILE *__stream);
  29814. /* Write a character to stdout.
  29815. @@ -673,7 +677,7 @@
  29816. This function is a possible cancellation points and therefore not
  29817. marked with __THROW. */
  29818. -extern int fputws (__const wchar_t *__restrict __ws,
  29819. +extern int fputws (const wchar_t *__restrict __ws,
  29820. __FILE *__restrict __stream);
  29821. libc_hidden_proto(fputws)
  29822. @@ -743,7 +747,7 @@
  29823. cancellation point. But due to similarity with an POSIX interface
  29824. or due to the implementation it is a cancellation point and
  29825. therefore not marked with __THROW. */
  29826. -extern int fputws_unlocked (__const wchar_t *__restrict __ws,
  29827. +extern int fputws_unlocked (const wchar_t *__restrict __ws,
  29828. __FILE *__restrict __stream);
  29829. libc_hidden_proto(fputws_unlocked)
  29830. #endif
  29831. @@ -754,8 +758,8 @@
  29832. Write no more than MAXSIZE wide characters and return the number
  29833. of wide characters written, or 0 if it would exceed MAXSIZE. */
  29834. extern size_t wcsftime (wchar_t *__restrict __s, size_t __maxsize,
  29835. - __const wchar_t *__restrict __format,
  29836. - __const struct tm *__restrict __tp) __THROW;
  29837. + const wchar_t *__restrict __format,
  29838. + const struct tm *__restrict __tp) __THROW;
  29839. __END_NAMESPACE_C99
  29840. # if defined __USE_GNU && defined __UCLIBC_HAS_XLOCALE__
  29841. @@ -764,8 +768,8 @@
  29842. /* Similar to `wcsftime' but takes the information from
  29843. the provided locale and not the global locale. */
  29844. extern size_t wcsftime_l (wchar_t *__restrict __s, size_t __maxsize,
  29845. - __const wchar_t *__restrict __format,
  29846. - __const struct tm *__restrict __tp,
  29847. + const wchar_t *__restrict __format,
  29848. + const struct tm *__restrict __tp,
  29849. __locale_t __loc) __THROW;
  29850. libc_hidden_proto(wcsftime_l)
  29851. # endif
  29852. diff -Nur uClibc-0.9.33.2/include/wctype.h uClibc-git/include/wctype.h
  29853. --- uClibc-0.9.33.2/include/wctype.h 2012-05-15 09:20:09.000000000 +0200
  29854. +++ uClibc-git/include/wctype.h 2014-06-02 17:40:33.902711365 +0200
  29855. @@ -12,9 +12,8 @@
  29856. Lesser General Public License for more details.
  29857. You should have received a copy of the GNU Lesser General Public
  29858. - License along with the GNU C Library; if not, write to the Free
  29859. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  29860. - 02111-1307 USA. */
  29861. + License along with the GNU C Library; if not, see
  29862. + <http://www.gnu.org/licenses/>. */
  29863. /*
  29864. * ISO C99 Standard: 7.25
  29865. @@ -183,7 +182,7 @@
  29866. /* Construct value that describes a class of wide characters identified
  29867. by the string argument PROPERTY. */
  29868. -extern wctype_t wctype (__const char *__property) __THROW;
  29869. +extern wctype_t wctype (const char *__property) __THROW;
  29870. libc_hidden_proto(wctype)
  29871. /* Determine whether the wide-character WC has the property described by
  29872. @@ -200,7 +199,7 @@
  29873. __BEGIN_NAMESPACE_C99
  29874. /* Scalar type that can hold values which represent locale-specific
  29875. character mappings. */
  29876. -/* uClibc note: glibc uses - typedef __const __int32_t *wctrans_t; */
  29877. +/* uClibc note: glibc uses - typedef const __int32_t *wctrans_t; */
  29878. typedef unsigned int wctrans_t;
  29879. __END_NAMESPACE_C99
  29880. #ifdef __USE_GNU
  29881. @@ -235,7 +234,7 @@
  29882. __BEGIN_NAMESPACE_C99
  29883. /* Construct value that describes a mapping between wide characters
  29884. identified by the string argument PROPERTY. */
  29885. -extern wctrans_t wctrans (__const char *__property) __THROW;
  29886. +extern wctrans_t wctrans (const char *__property) __THROW;
  29887. libc_hidden_proto(wctrans)
  29888. /* Map the wide character WC using the mapping described by DESC. */
  29889. @@ -304,7 +303,7 @@
  29890. /* Construct value that describes a class of wide characters identified
  29891. by the string argument PROPERTY. */
  29892. -extern wctype_t wctype_l (__const char *__property, __locale_t __locale)
  29893. +extern wctype_t wctype_l (const char *__property, __locale_t __locale)
  29894. __THROW;
  29895. /* Determine whether the wide-character WC has the property described by
  29896. @@ -328,7 +327,7 @@
  29897. /* Construct value that describes a mapping between wide characters
  29898. identified by the string argument PROPERTY. */
  29899. -extern wctrans_t wctrans_l (__const char *__property, __locale_t __locale)
  29900. +extern wctrans_t wctrans_l (const char *__property, __locale_t __locale)
  29901. __THROW;
  29902. /* Map the wide character WC using the mapping described by DESC. */
  29903. diff -Nur uClibc-0.9.33.2/include/wordexp.h uClibc-git/include/wordexp.h
  29904. --- uClibc-0.9.33.2/include/wordexp.h 2012-05-15 09:20:09.000000000 +0200
  29905. +++ uClibc-git/include/wordexp.h 2014-06-02 17:40:33.902711365 +0200
  29906. @@ -12,9 +12,8 @@
  29907. Lesser General Public License for more details.
  29908. You should have received a copy of the GNU Lesser General Public
  29909. - License along with the GNU C Library; if not, write to the Free
  29910. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  29911. - 02111-1307 USA. */
  29912. + License along with the GNU C Library; if not, see
  29913. + <http://www.gnu.org/licenses/>. */
  29914. #ifndef _WORDEXP_H
  29915. #define _WORDEXP_H 1
  29916. @@ -60,7 +59,7 @@
  29917. };
  29918. /* Do word expansion of WORDS into PWORDEXP. */
  29919. -extern int wordexp (__const char *__restrict __words,
  29920. +extern int wordexp (const char *__restrict __words,
  29921. wordexp_t *__restrict __pwordexp, int __flags);
  29922. /* Free the storage allocated by a `wordexp' call. */
  29923. diff -Nur uClibc-0.9.33.2/include/xlocale.h uClibc-git/include/xlocale.h
  29924. --- uClibc-0.9.33.2/include/xlocale.h 2012-05-15 09:20:09.000000000 +0200
  29925. +++ uClibc-git/include/xlocale.h 2014-06-02 17:40:33.902711365 +0200
  29926. @@ -14,9 +14,8 @@
  29927. Lesser General Public License for more details.
  29928. You should have received a copy of the GNU Lesser General Public
  29929. - License along with the GNU C Library; if not, write to the Free
  29930. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  29931. - 02111-1307 USA. */
  29932. + License along with the GNU C Library; if not, see
  29933. + <http://www.gnu.org/licenses/>. */
  29934. #ifndef _XLOCALE_H
  29935. #define _XLOCALE_H 1
  29936. @@ -39,11 +38,11 @@
  29937. /* Note: LC_ALL is not a valid index into this array. */
  29938. const char *__names[13];
  29939. } *__locale_t;
  29940. +#else
  29941. +# include <bits/uClibc_locale.h>
  29942. +#endif
  29943. /* POSIX 2008 makes locale_t official. */
  29944. typedef __locale_t locale_t;
  29945. -#else
  29946. -# include <locale.h>
  29947. -#endif
  29948. #endif /* xlocale.h */
  29949. diff -Nur uClibc-0.9.33.2/ldso/include/dl-defs.h uClibc-git/ldso/include/dl-defs.h
  29950. --- uClibc-0.9.33.2/ldso/include/dl-defs.h 2012-05-15 09:20:09.000000000 +0200
  29951. +++ uClibc-git/ldso/include/dl-defs.h 2014-06-02 17:40:33.902711365 +0200
  29952. @@ -5,8 +5,8 @@
  29953. * GNU Lesser General Public License version 2.1 or later.
  29954. */
  29955. -#ifndef _LD_DEFS_H
  29956. -#define _LD_DEFS_H
  29957. +#ifndef _DL_DEFS_H
  29958. +#define _DL_DEFS_H
  29959. #define FLAG_ANY -1
  29960. #define FLAG_TYPE_MASK 0x00ff
  29961. @@ -72,6 +72,11 @@
  29962. #endif
  29963. +#ifdef _LIBC
  29964. +/* arch specific defines */
  29965. +#include <dl-sysdep.h>
  29966. +#endif
  29967. +
  29968. /* Provide a means for a port to pass additional arguments to the _dl_start
  29969. function. */
  29970. #ifndef DL_START
  29971. @@ -281,4 +286,4 @@
  29972. # define DL_GET_RUN_ADDR(loadaddr, mapaddr) (mapaddr)
  29973. #endif
  29974. -#endif /* _LD_DEFS_H */
  29975. +#endif /* _DL_DEFS_H */
  29976. diff -Nur uClibc-0.9.33.2/ldso/include/dl-elf.h uClibc-git/ldso/include/dl-elf.h
  29977. --- uClibc-0.9.33.2/ldso/include/dl-elf.h 2012-05-15 09:20:09.000000000 +0200
  29978. +++ uClibc-git/ldso/include/dl-elf.h 2014-06-02 17:40:33.902711365 +0200
  29979. @@ -5,19 +5,22 @@
  29980. * GNU Lesser General Public License version 2.1 or later.
  29981. */
  29982. -#ifndef LINUXELF_H
  29983. -#define LINUXELF_H
  29984. +#ifndef _DL_ELF_H
  29985. +#define _DL_ELF_H
  29986. +#include <features.h>
  29987. +#include <bits/wordsize.h>
  29988. #include <dl-string.h> /* before elf.h to get ELF_USES_RELOCA right */
  29989. #include <elf.h>
  29990. #include <link.h>
  29991. +#include <dl-defs.h>
  29992. +#include <dlfcn.h>
  29993. -/* Forward declarations for stuff defined in ld_hash.h */
  29994. +/* Forward declarations for stuff defined in dl-hash.h */
  29995. struct dyn_elf;
  29996. struct elf_resolve;
  29997. struct r_scope_elem;
  29998. -#include <dl-defs.h>
  29999. #ifdef __LDSO_CACHE_SUPPORT__
  30000. extern int _dl_map_cache(void);
  30001. extern int _dl_unmap_cache(void);
  30002. @@ -29,7 +32,7 @@
  30003. #define DL_RESOLVE_SECURE 0x0001
  30004. #define DL_RESOLVE_NOLOAD 0x0002
  30005. -/* Function prototypes for non-static stuff in readelflib1.c */
  30006. +/* Function prototypes for non-static stuff in elfinterp.c */
  30007. extern void _dl_parse_lazy_relocation_information(struct dyn_elf *rpnt,
  30008. unsigned long rel_addr, unsigned long rel_size);
  30009. extern int _dl_parse_relocation_information(struct dyn_elf *rpnt,
  30010. @@ -39,8 +42,6 @@
  30011. int trace_loaded_objects);
  30012. extern struct elf_resolve * _dl_load_elf_shared_library(unsigned rflags,
  30013. struct dyn_elf **rpnt, const char *libname);
  30014. -extern struct elf_resolve *_dl_check_if_named_library_is_loaded(const char *full_libname,
  30015. - int trace_loaded_objects);
  30016. extern int _dl_linux_resolve(void);
  30017. extern int _dl_fixup(struct dyn_elf *rpnt, struct r_scope_elem *scope, int flag);
  30018. extern void _dl_protect_relro (struct elf_resolve *l);
  30019. @@ -222,11 +223,6 @@
  30020. #ifdef __DSBT__
  30021. /* Get the mapped address of the DSBT base. */
  30022. ADJUST_DYN_INFO(DT_DSBT_BASE_IDX, load_off);
  30023. -
  30024. - /* Initialize loadmap dsbt info. */
  30025. - load_off.map->dsbt_table = (void *)dynamic_info[DT_DSBT_BASE_IDX];
  30026. - load_off.map->dsbt_size = dynamic_info[DT_DSBT_SIZE_IDX];
  30027. - load_off.map->dsbt_index = dynamic_info[DT_DSBT_INDEX_IDX];
  30028. #endif
  30029. #undef ADJUST_DYN_INFO
  30030. return rtld_flags;
  30031. @@ -259,4 +255,4 @@
  30032. (((X) & PF_X) ? PROT_EXEC : 0))
  30033. -#endif /* LINUXELF_H */
  30034. +#endif /* _DL_ELF_H */
  30035. diff -Nur uClibc-0.9.33.2/ldso/include/dlfcn.h uClibc-git/ldso/include/dlfcn.h
  30036. --- uClibc-0.9.33.2/ldso/include/dlfcn.h 2012-05-15 09:20:09.000000000 +0200
  30037. +++ uClibc-git/ldso/include/dlfcn.h 2014-06-02 17:40:33.902711365 +0200
  30038. @@ -19,9 +19,9 @@
  30039. `dladdr'. */
  30040. typedef struct
  30041. {
  30042. - __const char *dli_fname; /* File name of defining object. */
  30043. + const char *dli_fname; /* File name of defining object. */
  30044. void *dli_fbase; /* Load address of that object. */
  30045. - __const char *dli_sname; /* Name of nearest symbol. */
  30046. + const char *dli_sname; /* Name of nearest symbol. */
  30047. void *dli_saddr; /* Exact value of nearest symbol. */
  30048. } Dl_info;
  30049. diff -Nur uClibc-0.9.33.2/ldso/include/dl-hash.h uClibc-git/ldso/include/dl-hash.h
  30050. --- uClibc-0.9.33.2/ldso/include/dl-hash.h 2012-05-15 09:20:09.000000000 +0200
  30051. +++ uClibc-git/ldso/include/dl-hash.h 2014-06-02 17:40:33.902711365 +0200
  30052. @@ -5,8 +5,8 @@
  30053. * GNU Lesser General Public License version 2.1 or later.
  30054. */
  30055. -#ifndef _LD_HASH_H_
  30056. -#define _LD_HASH_H_
  30057. +#ifndef _DL_HASH_H
  30058. +#define _DL_HASH_H
  30059. #ifndef RTLD_NEXT
  30060. #define RTLD_NEXT ((void*)-1)
  30061. @@ -139,6 +139,12 @@
  30062. memory when the module is dlclose()d. */
  30063. struct funcdesc_ht *funcdesc_ht;
  30064. #endif
  30065. +#ifdef __DSBT__
  30066. + /* Information for DSBT */
  30067. + void **dsbt_table;
  30068. + unsigned long dsbt_size;
  30069. + unsigned long dsbt_index;
  30070. +#endif
  30071. };
  30072. #define RELOCS_DONE 0x000001
  30073. @@ -160,17 +166,7 @@
  30074. struct elf_resolve *mytpnt, int type_class,
  30075. struct symbol_ref *symbol);
  30076. -extern int _dl_linux_dynamic_link(void);
  30077. -
  30078. extern char * _dl_library_path;
  30079. -extern char * _dl_not_lazy;
  30080. -
  30081. -static __inline__ int _dl_symbol(char * name)
  30082. -{
  30083. - if (name[0] != '_' || name[1] != 'd' || name[2] != 'l' || name[3] != '_')
  30084. - return 0;
  30085. - return 1;
  30086. -}
  30087. #define LD_ERROR_NOFILE 1
  30088. #define LD_ERROR_NOZERO 2
  30089. @@ -184,4 +180,4 @@
  30090. #define LD_BAD_HANDLE 10
  30091. #define LD_NO_SYMBOL 11
  30092. -#endif /* _LD_HASH_H_ */
  30093. +#endif /* _DL_HASH_H */
  30094. diff -Nur uClibc-0.9.33.2/ldso/include/dl-string.h uClibc-git/ldso/include/dl-string.h
  30095. --- uClibc-0.9.33.2/ldso/include/dl-string.h 2012-05-15 09:20:09.000000000 +0200
  30096. +++ uClibc-git/ldso/include/dl-string.h 2014-06-02 17:40:33.902711365 +0200
  30097. @@ -5,12 +5,16 @@
  30098. * GNU Lesser General Public License version 2.1 or later.
  30099. */
  30100. -#ifndef _LINUX_STRING_H_
  30101. -#define _LINUX_STRING_H_
  30102. +#ifndef _DL_STRING_H
  30103. +#define _DL_STRING_H
  30104. -#include <dl-sysdep.h> /* for do_rem */
  30105. #include <features.h>
  30106. +#define __need_NULL
  30107. +#include <stddef.h>
  30108. +
  30109. +#include <dl-defs.h> /* for do_rem by dl-sysdep.h */
  30110. +
  30111. /* provide some sane defaults */
  30112. #ifndef do_rem
  30113. # define do_rem(result, n, base) ((result) = (n) % (base))
  30114. @@ -19,25 +23,7 @@
  30115. # define do_div_10(result, remain) ((result) /= 10)
  30116. #endif
  30117. -static size_t _dl_strlen(const char *str);
  30118. -static char *_dl_strcat(char *dst, const char *src);
  30119. -static char *_dl_strcpy(char *dst, const char *src);
  30120. -static int _dl_strcmp(const char *s1, const char *s2);
  30121. -static int _dl_strncmp(const char *s1, const char *s2, size_t len);
  30122. -static char *_dl_strchr(const char *str, int c);
  30123. -static char *_dl_strrchr(const char *str, int c);
  30124. -static char *_dl_strstr(const char *s1, const char *s2);
  30125. -static void *_dl_memcpy(void *dst, const void *src, size_t len);
  30126. -static int _dl_memcmp(const void *s1, const void *s2, size_t len);
  30127. -static void *_dl_memset(void *str, int c, size_t len);
  30128. -static char *_dl_get_last_path_component(char *path);
  30129. -static char *_dl_simple_ltoa(char *local, unsigned long i);
  30130. -static char *_dl_simple_ltoahex(char *local, unsigned long i);
  30131. -
  30132. -#ifndef NULL
  30133. -#define NULL ((void *) 0)
  30134. -#endif
  30135. -
  30136. +#ifdef IS_IN_rtld
  30137. static __always_inline size_t _dl_strlen(const char *str)
  30138. {
  30139. register const char *ptr = (char *) str-1;
  30140. @@ -84,22 +70,6 @@
  30141. return c1 - c2;
  30142. }
  30143. -static __always_inline int _dl_strncmp(const char *s1, const char *s2, size_t len)
  30144. -{
  30145. - register unsigned char c1 = '\0';
  30146. - register unsigned char c2 = '\0';
  30147. -
  30148. - s1--;s2--;
  30149. - while (len > 0) {
  30150. - c1 = (unsigned char) *++s1;
  30151. - c2 = (unsigned char) *++s2;
  30152. - if (c1 == '\0' || c1 != c2)
  30153. - return c1 - c2;
  30154. - len--;
  30155. - }
  30156. - return c1 - c2;
  30157. -}
  30158. -
  30159. static __always_inline char * _dl_strchr(const char *str, int c)
  30160. {
  30161. register char ch;
  30162. @@ -172,7 +142,7 @@
  30163. return 0;
  30164. }
  30165. -#if defined(powerpc)
  30166. +#if defined(__powerpc__)
  30167. /* Will generate smaller and faster code due to loop unrolling.*/
  30168. static __always_inline void * _dl_memset(void *to, int c, size_t n)
  30169. {
  30170. @@ -228,7 +198,19 @@
  30171. ;/* empty */
  30172. return ptr == path ? ptr : ptr+1;
  30173. }
  30174. +#else /* IS_IN_rtld */
  30175. +# include <string.h>
  30176. +# define _dl_strlen strlen
  30177. +# define _dl_strcat strcat
  30178. +# define _dl_strcpy strcpy
  30179. +# define _dl_strcmp strcmp
  30180. +# define _dl_strrchr strrchr
  30181. +# define _dl_memcpy memcpy
  30182. +# define _dl_memcmp memcmp
  30183. +# define _dl_memset memset
  30184. +#endif /* IS_IN_rtld */
  30185. +#if defined IS_IN_rtld || defined __SUPPORT_LD_DEBUG__
  30186. /* Early on, we can't call printf, so use this to print out
  30187. * numbers using the SEND_STDERR() macro. Avoid using mod
  30188. * or using long division */
  30189. @@ -246,7 +228,9 @@
  30190. } while (i > 0);
  30191. return p;
  30192. }
  30193. +#endif
  30194. +#ifdef IS_IN_rtld
  30195. static __always_inline char * _dl_simple_ltoahex(char *local, unsigned long i)
  30196. {
  30197. /* 16 digits plus a leading "0x" plus a null terminator,
  30198. @@ -266,9 +250,6 @@
  30199. return p;
  30200. }
  30201. -
  30202. -
  30203. -
  30204. /* The following macros may be used in dl-startup.c to debug
  30205. * ldso before ldso has fixed itself up to make function calls */
  30206. @@ -285,7 +266,7 @@
  30207. /* On some arches constant strings are referenced through the GOT.
  30208. * This requires that load_addr must already be defined... */
  30209. #if defined(mc68000) || defined(__arm__) || defined(__thumb__) || \
  30210. - defined(__mips__) || defined(__sh__) || defined(__powerpc__) || \
  30211. + defined(__sh__) || defined(__powerpc__) || \
  30212. defined(__avr32__) || defined(__xtensa__) || defined(__sparc__) || defined(__microblaze__)
  30213. # define CONSTANT_STRING_GOT_FIXUP(X) \
  30214. if ((X) < (const char *) load_addr) (X) += load_addr
  30215. @@ -362,4 +343,6 @@
  30216. # define SEND_ADDRESS_STDERR_DEBUG(X, add_a_newline)
  30217. #endif
  30218. -#endif
  30219. +#endif /* IS_IN_rtld */
  30220. +
  30221. +#endif /* _DL_STRING_H */
  30222. diff -Nur uClibc-0.9.33.2/ldso/include/dl-syscall.h uClibc-git/ldso/include/dl-syscall.h
  30223. --- uClibc-0.9.33.2/ldso/include/dl-syscall.h 2012-05-15 09:20:09.000000000 +0200
  30224. +++ uClibc-git/ldso/include/dl-syscall.h 2014-06-02 17:40:33.902711365 +0200
  30225. @@ -5,8 +5,8 @@
  30226. * GNU Lesser General Public License version 2.1 or later.
  30227. */
  30228. -#ifndef _LD_SYSCALL_H_
  30229. -#define _LD_SYSCALL_H_
  30230. +#ifndef _DL_SYSCALL_H
  30231. +#define _DL_SYSCALL_H
  30232. /* We can't use the real errno in ldso, since it has not yet
  30233. * been dynamicly linked in yet. */
  30234. @@ -20,6 +20,8 @@
  30235. /* For MAP_ANONYMOUS -- differs between platforms */
  30236. #define _SYS_MMAN_H 1
  30237. #include <bits/mman.h>
  30238. +
  30239. +#ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
  30240. /* Pull in whatever this particular arch's kernel thinks the kernel version of
  30241. * struct stat should look like. It turns out that each arch has a different
  30242. * opinion on the subject, and different kernel revs use different names... */
  30243. @@ -35,6 +37,13 @@
  30244. #define S_ISUID 04000 /* Set user ID on execution. */
  30245. #define S_ISGID 02000 /* Set group ID on execution. */
  30246. +#else
  30247. +/* 1. common-generic ABI doesn't need kernel_stat translation
  30248. + * 3. S_IS?ID already provided by stat.h
  30249. + */
  30250. +#include <sys/stat.h>
  30251. +#endif
  30252. +
  30253. /* Here are the definitions for some syscalls that are used
  30254. by the dynamic linker. The idea is that we want to be able
  30255. @@ -48,9 +57,18 @@
  30256. #define __NR__dl_close __NR_close
  30257. static __always_inline _syscall1(int, _dl_close, int, fd)
  30258. -#define __NR__dl_open __NR_open
  30259. +#if defined __NR_openat && !defined __NR_open
  30260. +static __always_inline int _dl_open(const char *fn,
  30261. + int flags, __kernel_mode_t mode)
  30262. +{
  30263. + return INLINE_SYSCALL(openat, 4, AT_FDCWD, fn, flags, mode);
  30264. +}
  30265. +
  30266. +#elif defined __NR_open
  30267. +# define __NR__dl_open __NR_open
  30268. static __always_inline _syscall3(int, _dl_open, const char *, fn, int, flags,
  30269. __kernel_mode_t, mode)
  30270. +#endif
  30271. #define __NR__dl_write __NR_write
  30272. static __always_inline _syscall3(unsigned long, _dl_write, int, fd,
  30273. @@ -64,11 +82,27 @@
  30274. static __always_inline _syscall3(int, _dl_mprotect, const void *, addr,
  30275. unsigned long, len, int, prot)
  30276. -#define __NR__dl_stat __NR_stat
  30277. +#if defined __NR_fstatat64 && !defined __NR_stat
  30278. +# define __NR__dl_fstatat64 __NR_fstatat64
  30279. +static __always_inline _syscall4(int, _dl_fstatat64, int, fd, const char *,
  30280. + fn, struct stat *, stat, int, flags)
  30281. +
  30282. +static __always_inline int _dl_stat(const char *file_name,
  30283. + struct stat *buf)
  30284. +{
  30285. + return _dl_fstatat64(AT_FDCWD, file_name, buf, 0);
  30286. +}
  30287. +#elif defined __NR_stat
  30288. +# define __NR__dl_stat __NR_stat
  30289. static __always_inline _syscall2(int, _dl_stat, const char *, file_name,
  30290. struct stat *, buf)
  30291. +#endif
  30292. -#define __NR__dl_fstat __NR_fstat
  30293. +#if defined __NR_fstat64 && !defined __NR_fstat
  30294. +# define __NR__dl_fstat __NR_fstat64
  30295. +#elif defined __NR_fstat
  30296. +# define __NR__dl_fstat __NR_fstat
  30297. +#endif
  30298. static __always_inline _syscall2(int, _dl_fstat, int, fd, struct stat *, buf)
  30299. #define __NR__dl_munmap __NR_munmap
  30300. @@ -104,9 +138,15 @@
  30301. #define __NR__dl_getpid __NR_getpid
  30302. static __always_inline _syscall0(gid_t, _dl_getpid)
  30303. -#define __NR__dl_readlink __NR_readlink
  30304. +#if defined __NR_readlinkat && !defined __NR_readlink
  30305. +# define __NR__dl_readlink __NR_readlinkat
  30306. +static __always_inline _syscall4(int, _dl_readlink, int, id, const char *, path,
  30307. + char *, buf, size_t, bufsiz)
  30308. +#elif defined __NR_readlink
  30309. +# define __NR__dl_readlink __NR_readlink
  30310. static __always_inline _syscall3(int, _dl_readlink, const char *, path, char *, buf,
  30311. size_t, bufsiz)
  30312. +#endif
  30313. #ifdef __NR_pread64
  30314. #define __NR___syscall_pread __NR_pread64
  30315. @@ -187,4 +227,4 @@
  30316. #endif
  30317. }
  30318. -#endif /* _LD_SYSCALL_H_ */
  30319. +#endif /* _DL_SYSCALL_H */
  30320. diff -Nur uClibc-0.9.33.2/ldso/include/ldsodefs.h uClibc-git/ldso/include/ldsodefs.h
  30321. --- uClibc-0.9.33.2/ldso/include/ldsodefs.h 2012-05-15 09:20:09.000000000 +0200
  30322. +++ uClibc-git/ldso/include/ldsodefs.h 2014-06-02 17:40:33.922711475 +0200
  30323. @@ -66,7 +66,7 @@
  30324. /* Taken from glibc/elf/dl-reloc.c */
  30325. #define CHECK_STATIC_TLS(sym_map) \
  30326. do { \
  30327. - if (__builtin_expect ((sym_map)->l_tls_offset == NO_TLS_OFFSET, 0)) \
  30328. + if (unlikely((sym_map)->l_tls_offset == NO_TLS_OFFSET)) \
  30329. _dl_allocate_static_tls (sym_map); \
  30330. } while (0)
  30331. diff -Nur uClibc-0.9.33.2/ldso/include/ldso.h uClibc-git/ldso/include/ldso.h
  30332. --- uClibc-0.9.33.2/ldso/include/ldso.h 2012-05-15 09:20:09.000000000 +0200
  30333. +++ uClibc-git/ldso/include/ldso.h 2014-06-02 17:40:33.902711365 +0200
  30334. @@ -5,8 +5,8 @@
  30335. * GNU Lesser General Public License version 2.1 or later.
  30336. */
  30337. -#ifndef _LDSO_H_
  30338. -#define _LDSO_H_
  30339. +#ifndef _LDSO_H
  30340. +#define _LDSO_H
  30341. #include <features.h>
  30342. @@ -30,6 +30,10 @@
  30343. #include <stddef.h> /* for ptrdiff_t */
  30344. #include <stdbool.h>
  30345. #define _FCNTL_H
  30346. +/* We need this if arch has only new syscalls defined */
  30347. +#ifndef AT_FDCWD
  30348. +#define AT_FDCWD -100
  30349. +#endif /* AT_FDCWD */
  30350. #include <bits/fcntl.h>
  30351. #include <bits/wordsize.h>
  30352. /* Pull in the arch specific type information */
  30353. @@ -42,7 +46,6 @@
  30354. #ifndef __ARCH_HAS_NO_SHARED__
  30355. #include <dl-syscall.h>
  30356. #include <dl-string.h>
  30357. -#include <dlfcn.h>
  30358. /* Now the ldso specific headers */
  30359. #include <dl-elf.h>
  30360. #ifdef __UCLIBC_HAS_TLS__
  30361. @@ -84,16 +87,15 @@
  30362. #else
  30363. #define _dl_trace_prelink 0
  30364. #endif
  30365. +#ifdef __DSBT__
  30366. +extern void **_dl_ldso_dsbt;
  30367. +#endif
  30368. #if defined(USE_TLS) && USE_TLS
  30369. extern void _dl_add_to_slotinfo (struct link_map *l);
  30370. extern void ** __attribute__ ((const)) _dl_initial_error_catch_tsd (void);
  30371. #endif
  30372. -#ifdef USE_TLS
  30373. -void _dl_add_to_slotinfo (struct link_map *l);
  30374. -void ** __attribute__ ((const)) _dl_initial_error_catch_tsd (void);
  30375. -#endif
  30376. #ifdef __SUPPORT_LD_DEBUG__
  30377. extern char *_dl_debug;
  30378. extern char *_dl_debug_symbols;
  30379. @@ -110,7 +112,8 @@
  30380. #else
  30381. # define __dl_debug_dprint(fmt, args...) do {} while (0)
  30382. # define _dl_if_debug_dprint(fmt, args...) do {} while (0)
  30383. -# define _dl_debug_file 2
  30384. +/* disabled on purpose, _dl_debug_file should be guarded by __SUPPORT_LD_DEBUG__
  30385. +# define _dl_debug_file 2*/
  30386. #endif /* __SUPPORT_LD_DEBUG__ */
  30387. #ifdef IS_IN_rtld
  30388. @@ -146,8 +149,19 @@
  30389. extern void _dl_free(void *);
  30390. extern char *_dl_getenv(const char *symbol, char **envp);
  30391. extern void _dl_unsetenv(const char *symbol, char **envp);
  30392. +#ifdef IS_IN_rtld
  30393. extern char *_dl_strdup(const char *string);
  30394. extern void _dl_dprintf(int, const char *, ...);
  30395. +#else
  30396. +# include <string.h>
  30397. +# define _dl_strdup strdup
  30398. +# include <stdio.h>
  30399. +# ifdef __USE_GNU
  30400. +# define _dl_dprintf dprintf
  30401. +# else
  30402. +# define _dl_dprintf(fd, fmt, args...) fprintf(stderr, fmt, ## args)
  30403. +# endif
  30404. +#endif
  30405. #ifndef DL_GET_READY_TO_RUN_EXTRA_PARMS
  30406. # define DL_GET_READY_TO_RUN_EXTRA_PARMS
  30407. @@ -168,4 +182,4 @@
  30408. #include <dl-defs.h>
  30409. #endif
  30410. -#endif /* _LDSO_H_ */
  30411. +#endif /* _LDSO_H */
  30412. diff -Nur uClibc-0.9.33.2/ldso/ldso/arc/dl-debug.h uClibc-git/ldso/ldso/arc/dl-debug.h
  30413. --- uClibc-0.9.33.2/ldso/ldso/arc/dl-debug.h 1970-01-01 01:00:00.000000000 +0100
  30414. +++ uClibc-git/ldso/ldso/arc/dl-debug.h 2014-06-02 17:40:33.926711497 +0200
  30415. @@ -0,0 +1,68 @@
  30416. +/*
  30417. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  30418. + *
  30419. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  30420. + */
  30421. +static const char *_dl_reltypes_tab[] =
  30422. +{
  30423. + "R_ARC_NONE", /* 0 */
  30424. + "R_ARC_8",
  30425. + "R_ARC_16",
  30426. + "R_ARC_24",
  30427. + "R_ARC_32",
  30428. + "R_ARC_B26", /* 5 */
  30429. + "R_ARC_B22_PCREL",
  30430. + "R_ARC_H30",
  30431. + "R_ARC_N8",
  30432. + "R_ARC_N16",
  30433. + "R_ARC_N24", /* 10 */
  30434. + "R_ARC_N32",
  30435. + "R_ARC_SDA",
  30436. + "R_ARC_SECTOFF",
  30437. + "R_ARC_S21H_PCREL",
  30438. + "R_ARC_S21W_PCREL", /* 15 */
  30439. + "R_ARC_S25H_PCREL",
  30440. + "R_ARC_S25W_PCREL",
  30441. + "R_ARC_SDA32",
  30442. + "R_ARC_SDA_LDST",
  30443. + "R_ARC_SDA_LDST1", /* 20 */
  30444. + "R_ARC_SDA_LDST2",
  30445. + "R_ARC_SDA16_LD",
  30446. + "R_ARC_SDA16_LD1",
  30447. + "R_ARC_SDA16_LD2",
  30448. + "R_ARC_S13_PCREL", /* 25 */
  30449. + "R_ARC_W",
  30450. + "R_ARC_32_ME",
  30451. + "R_ARC_N32_ME",
  30452. + "R_ARC_SECTOFF_ME",
  30453. + "R_ARC_SDA32_ME", /* 30 */
  30454. + "R_ARC_W_ME",
  30455. + "R_ARC_H30_ME",
  30456. + "R_ARC_SECTOFF_U8",
  30457. + "R_ARC_SECTOFF_S9",
  30458. + "R_AC_SECTOFF_U8", /* 35 */
  30459. + "R_AC_SECTOFF_U8_1",
  30460. + "R_AC_SECTOFF_U8_2",
  30461. + "R_AC_SECTOFF_S9",
  30462. + "R_AC_SECTOFF_S9_1",
  30463. + "R_AC_SECTOFF_S9_2", /* 40 */
  30464. + "R_ARC_SECTOFF_ME_1",
  30465. + "R_ARC_SECTOFF_ME_2",
  30466. + "R_ARC_SECTOFF_1",
  30467. + "R_ARC_SECTOFF_2",
  30468. + "", /* 45 */
  30469. + "",
  30470. + "",
  30471. + "",
  30472. + "",
  30473. + "R_ARC_PC32", /* 50 */
  30474. + "R_ARC_GOTPC32",
  30475. + "R_ARC_PLT32",
  30476. + "R_ARC_COPY",
  30477. + "R_ARC_GLOB_DAT",
  30478. + "R_ARC_JMP_SLOT", /* 55 */
  30479. + "R_ARC_RELATIVE",
  30480. + "R_ARC_GOTOFF",
  30481. + "R_ARC_GOTPC",
  30482. + "R_ARC_GOT32",
  30483. +};
  30484. diff -Nur uClibc-0.9.33.2/ldso/ldso/arc/dl-startup.h uClibc-git/ldso/ldso/arc/dl-startup.h
  30485. --- uClibc-0.9.33.2/ldso/ldso/arc/dl-startup.h 1970-01-01 01:00:00.000000000 +0100
  30486. +++ uClibc-git/ldso/ldso/arc/dl-startup.h 2014-06-02 17:40:33.926711497 +0200
  30487. @@ -0,0 +1,89 @@
  30488. +/*
  30489. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  30490. + *
  30491. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  30492. + */
  30493. +
  30494. +/*
  30495. + * vineetg: Refactoring/cleanup of loader entry point
  30496. + * Removed 6 useless insns
  30497. + * Joern Improved it even further:
  30498. + * -better insn scheduling
  30499. + * -no need for conditional code for _dl_skip_args
  30500. + * -use of assembler .&2 expressions vs. @gotpc refs (avoids need for GP)
  30501. + *
  30502. + * What this code does:
  30503. + * -ldso starts execution here when kernel returns from execve()
  30504. + * -calls into generic ldso entry point _dl_start( )
  30505. + * -optionally adjusts argc for executable if exec passed as cmd
  30506. + * -calls into app main with address of finaliser
  30507. + */
  30508. +__asm__(
  30509. + ".section .text \n"
  30510. + ".align 4 \n"
  30511. + ".global _start \n"
  30512. + ".hidden _start \n"
  30513. + ".type _start,@function \n"
  30514. +
  30515. + "_start: \n"
  30516. + " ; ldso entry point, returns app entry point \n"
  30517. + " bl.d _dl_start \n"
  30518. + " mov_s r0, sp ; pass ptr to aux vector tbl \n"
  30519. +
  30520. + " ; If ldso ran as cmd with executable file nm as arg \n"
  30521. + " ; skip the extra args calc by dl_start() \n"
  30522. + " ld_s r1, [sp] ; orig argc from aux-vec Tbl \n"
  30523. +#ifdef STAR_9000535888_FIXED
  30524. + " ld r12, [pcl, _dl_skip_args-.+(.&2)] \n"
  30525. +#else
  30526. + " add r12, pcl, _dl_skip_args-.+(.&2) \n"
  30527. + " ld r12, [r12] \n"
  30528. +#endif
  30529. +
  30530. + " add r2, pcl, _dl_fini-.+(.&2) ; finalizer \n"
  30531. +
  30532. + " add2 sp, sp, r12 ; discard argv entries from stack\n"
  30533. + " sub_s r1, r1, r12 ; adjusted argc, on stack \n"
  30534. + " st_s r1, [sp] \n"
  30535. +
  30536. + " j_s.d [r0] ; app entry point \n"
  30537. + " mov_s r0, r2 ; ptr to finalizer _dl_fini \n"
  30538. +
  30539. + ".size _start,.-_start \n"
  30540. + ".previous \n"
  30541. +);
  30542. +
  30543. +/*
  30544. + * Get a pointer to the argv array. On many platforms this can be just
  30545. + * the address if the first argument, on other platforms we need to
  30546. + * do something a little more subtle here.
  30547. + */
  30548. +#define GET_ARGV(ARGVP, ARGS) ARGVP = ((unsigned long*) ARGS + 1)
  30549. +
  30550. +/*
  30551. + * Dynamic loader bootstrapping:
  30552. + * Since we don't modify text at runtime, these can only be data relos
  30553. + * (so safe to assume that they are word aligned).
  30554. + * And also they HAVE to be RELATIVE relos only
  30555. + * @RELP is the relo entry being processed
  30556. + * @REL is the pointer to the address we are relocating.
  30557. + * @SYMBOL is the symbol involved in the relocation
  30558. + * @LOAD is the load address.
  30559. + */
  30560. +
  30561. +#define PERFORM_BOOTSTRAP_RELOC(RELP,REL,SYMBOL,LOAD,SYMTAB) \
  30562. +do { \
  30563. + int type = ELF32_R_TYPE((RELP)->r_info); \
  30564. + if (likely(type == R_ARC_RELATIVE)) \
  30565. + *REL += (unsigned long) LOAD; \
  30566. + else \
  30567. + _dl_exit(1); \
  30568. +}while(0)
  30569. +
  30570. +/*
  30571. + * This will go away once we have DT_RELACOUNT
  30572. + */
  30573. +#define ARCH_NEEDS_BOOTSTRAP_RELOCS
  30574. +
  30575. +/* we dont need to spit out argc, argv etc for debugging */
  30576. +#define NO_EARLY_SEND_STDERR 1
  30577. diff -Nur uClibc-0.9.33.2/ldso/ldso/arc/dl-syscalls.h uClibc-git/ldso/ldso/arc/dl-syscalls.h
  30578. --- uClibc-0.9.33.2/ldso/ldso/arc/dl-syscalls.h 1970-01-01 01:00:00.000000000 +0100
  30579. +++ uClibc-git/ldso/ldso/arc/dl-syscalls.h 2014-06-02 17:40:33.926711497 +0200
  30580. @@ -0,0 +1,7 @@
  30581. +/*
  30582. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  30583. + *
  30584. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  30585. + */
  30586. +
  30587. +/* stub for arch-specific syscall issues */
  30588. diff -Nur uClibc-0.9.33.2/ldso/ldso/arc/dl-sysdep.h uClibc-git/ldso/ldso/arc/dl-sysdep.h
  30589. --- uClibc-0.9.33.2/ldso/ldso/arc/dl-sysdep.h 1970-01-01 01:00:00.000000000 +0100
  30590. +++ uClibc-git/ldso/ldso/arc/dl-sysdep.h 2014-06-02 17:40:33.926711497 +0200
  30591. @@ -0,0 +1,150 @@
  30592. +/*
  30593. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  30594. + *
  30595. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  30596. + */
  30597. +
  30598. +#include "elf.h"
  30599. +
  30600. +/*
  30601. + * Define this if the system uses RELOCA.
  30602. + */
  30603. +#define ELF_USES_RELOCA
  30604. +
  30605. +/*
  30606. + * Dynamic Linking ABI for ARCompact ISA
  30607. + *
  30608. + * PLT
  30609. + * --------------------------------
  30610. + * | ld r11, [pcl, off-to-GOT[1] | 0 (20 bytes)
  30611. + * | | 4
  30612. + * plt0 | ld r10, [pcl, off-to-GOT[2] | 8
  30613. + * | | 12
  30614. + * | j [r10] | 16
  30615. + * --------------------------------
  30616. + * | Base address of GOT | 20
  30617. + * --------------------------------
  30618. + * | ld r12, [pcl, off-to-GOT[3] | 24 (12 bytes each)
  30619. + * plt1 | |
  30620. + * | j_s.d [r12] | 32
  30621. + * | mov_s r12, pcl | 34
  30622. + * --------------------------------
  30623. + * | | 36
  30624. + * ~ ~
  30625. + * ~ ~
  30626. + * | |
  30627. + * --------------------------------
  30628. + *
  30629. + * GOT
  30630. + * --------------
  30631. + * | [0] |
  30632. + * --------------
  30633. + * | [1] | Module info - setup by ldso
  30634. + * --------------
  30635. + * | [2] | resolver entry point
  30636. + * --------------
  30637. + * | [3] |
  30638. + * | ... | Runtime address for function symbols
  30639. + * | [f] |
  30640. + * --------------
  30641. + * | [f+1] |
  30642. + * | ... | Runtime address for data symbols
  30643. + * | [last] |
  30644. + * --------------
  30645. + */
  30646. +
  30647. +/*
  30648. + * Initialization sequence for a GOT.
  30649. + * Caller elf_resolve() seeds @GOT_BASE from DT_PLTGOT - which essentially is
  30650. + * pointer to first PLT entry. The actual GOT base is 5th word in PLT
  30651. + *
  30652. + */
  30653. +#define INIT_GOT(GOT_BASE,MODULE) \
  30654. +do { \
  30655. + unsigned long *__plt_base = (unsigned long *)GOT_BASE; \
  30656. + GOT_BASE = (unsigned long *)(__plt_base[5] + \
  30657. + (unsigned long)MODULE->loadaddr); \
  30658. + GOT_BASE[1] = (unsigned long) MODULE; \
  30659. + GOT_BASE[2] = (unsigned long) _dl_linux_resolve; \
  30660. +} while(0)
  30661. +
  30662. +/* Here we define the magic numbers that this dynamic loader should accept */
  30663. +#define MAGIC1 EM_ARCOMPACT
  30664. +#undef MAGIC2
  30665. +
  30666. +/* Used for error messages */
  30667. +#define ELF_TARGET "ARC"
  30668. +
  30669. +struct elf_resolve;
  30670. +extern unsigned long _dl_linux_resolver(struct elf_resolve * tpnt,
  30671. + unsigned int plt_pc);
  30672. +
  30673. +extern unsigned __udivmodsi4(unsigned, unsigned) attribute_hidden;
  30674. +
  30675. +#define do_rem(result, n, base) ((result) = \
  30676. + \
  30677. + __builtin_constant_p (base) ? (n) % (unsigned) (base) : \
  30678. + __extension__ ({ \
  30679. + register unsigned r1 __asm__ ("r1") = (base); \
  30680. + \
  30681. + __asm__("bl.d @__udivmodsi4` mov r0,%1" \
  30682. + : "=r" (r1) \
  30683. + : "r" (n), "r" (r1) \
  30684. + : "r0", "r2", "r3", "r4", "lp_count", "blink", "cc"); \
  30685. + \
  30686. + r1; \
  30687. + }) \
  30688. +)
  30689. +
  30690. +/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry, so
  30691. + PLT entries should not be allowed to define the value.
  30692. + ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
  30693. + of the main executable's symbols, as for a COPY reloc. */
  30694. +#define elf_machine_type_class(type) \
  30695. + ((((type) == R_ARC_JMP_SLOT) * ELF_RTYPE_CLASS_PLT) \
  30696. + | (((type) == R_ARC_COPY) * ELF_RTYPE_CLASS_COPY))
  30697. +
  30698. +/*
  30699. + * Get the runtime address of GOT[0]
  30700. + */
  30701. +static __always_inline Elf32_Addr elf_machine_dynamic(void)
  30702. +{
  30703. + Elf32_Addr dyn;
  30704. +
  30705. + __asm__("ld %0,[pcl,_DYNAMIC@gotpc]\n\t" : "=r" (dyn));
  30706. + return dyn;
  30707. +
  30708. +/*
  30709. + * Another way would have been to simply return GP, which due to some
  30710. + * PIC reference would be automatically setup by gcc in caller
  30711. + * register Elf32_Addr *got __asm__ ("gp"); return *got;
  30712. + */
  30713. +}
  30714. +
  30715. +/* Return the run-time load address of the shared object. */
  30716. +static __always_inline Elf32_Addr elf_machine_load_address(void)
  30717. +{
  30718. + /* To find the loadaddr we subtract the runtime addr of any symbol
  30719. + * say _dl_start from it's build-time addr.
  30720. + */
  30721. + Elf32_Addr addr, tmp;
  30722. + __asm__ (
  30723. + "ld %1, [pcl, _dl_start@gotpc] ;build addr of _dl_start \n"
  30724. + "add %0, pcl, _dl_start-.+(.&2) ;runtime addr of _dl_start \n"
  30725. + "sub %0, %0, %1 ;delta \n"
  30726. + : "=&r" (addr), "=r"(tmp)
  30727. + );
  30728. + return addr;
  30729. +}
  30730. +
  30731. +static __always_inline void
  30732. +elf_machine_relative (Elf32_Addr load_off, const Elf32_Addr rel_addr,
  30733. + Elf32_Word relative_count)
  30734. +{
  30735. + Elf32_Rel * rpnt = (void *) rel_addr;
  30736. + --rpnt;
  30737. + do {
  30738. + Elf32_Addr *const reloc_addr = (void *) (load_off + (++rpnt)->r_offset);
  30739. + *reloc_addr += load_off;
  30740. + } while (--relative_count);
  30741. +}
  30742. diff -Nur uClibc-0.9.33.2/ldso/ldso/arc/elfinterp.c uClibc-git/ldso/ldso/arc/elfinterp.c
  30743. --- uClibc-0.9.33.2/ldso/ldso/arc/elfinterp.c 1970-01-01 01:00:00.000000000 +0100
  30744. +++ uClibc-git/ldso/ldso/arc/elfinterp.c 2014-06-02 17:40:33.926711497 +0200
  30745. @@ -0,0 +1,279 @@
  30746. +/*
  30747. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  30748. + *
  30749. + * Lots of code copied from ../i386/elfinterp.c, so:
  30750. + * Copyright (c) 1994-2000 Eric Youngdale, Peter MacDonald,
  30751. + * David Engel, Hongjiu Lu and Mitch D'Souza
  30752. + * Copyright (C) 2001-2002, Erik Andersen
  30753. + * All rights reserved.
  30754. + *
  30755. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  30756. + */
  30757. +#include "ldso.h"
  30758. +
  30759. +#define ARC_PLT_SIZE 12
  30760. +
  30761. +unsigned long
  30762. +_dl_linux_resolver(struct elf_resolve *tpnt, unsigned int plt_pc)
  30763. +{
  30764. + ELF_RELOC *this_reloc, *rel_base;
  30765. + char *strtab, *symname, *new_addr;
  30766. + ElfW(Sym) *symtab;
  30767. + int symtab_index;
  30768. + unsigned int *got_addr;
  30769. + unsigned long plt_base;
  30770. + int plt_idx;
  30771. +
  30772. + /* start of .rela.plt */
  30773. + rel_base = (ELF_RELOC *)(tpnt->dynamic_info[DT_JMPREL]);
  30774. +
  30775. + /* starts of .plt (addr of PLT0) */
  30776. + plt_base = tpnt->dynamic_info[DT_PLTGOT];
  30777. +
  30778. + /*
  30779. + * compute the idx of the yet-unresolved PLT entry in .plt
  30780. + * Same idx will be used to find the relo entry in .rela.plt
  30781. + */
  30782. + plt_idx = (plt_pc - plt_base)/ARC_PLT_SIZE - 2; /* ignoring 2 dummy PLTs */
  30783. +
  30784. + this_reloc = rel_base + plt_idx;
  30785. +
  30786. + symtab_index = ELF_R_SYM(this_reloc->r_info);
  30787. + symtab = (ElfW(Sym) *)(intptr_t) (tpnt->dynamic_info[DT_SYMTAB]);
  30788. + strtab = (char *) (tpnt->dynamic_info[DT_STRTAB]);
  30789. + symname= strtab + symtab[symtab_index].st_name;
  30790. +
  30791. + /* relo-offset to fixup, shd be a .got entry */
  30792. + got_addr = (unsigned int *)(this_reloc->r_offset + tpnt->loadaddr);
  30793. +
  30794. + /* Get the address of the GOT entry */
  30795. + new_addr = _dl_find_hash(symname, &_dl_loaded_modules->symbol_scope, tpnt,
  30796. + ELF_RTYPE_CLASS_PLT, NULL);
  30797. +
  30798. + if (unlikely(!new_addr)) {
  30799. + _dl_dprintf(2, "%s: can't resolve symbol '%s'\n", _dl_progname, symname);
  30800. + _dl_exit(1);
  30801. + }
  30802. +
  30803. +
  30804. +#if defined __SUPPORT_LD_DEBUG__
  30805. + if (_dl_debug_bindings) {
  30806. + _dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
  30807. + if (_dl_debug_detail)
  30808. + _dl_dprintf(_dl_debug_file, "\n\tpatched %x ==> %pc @ %pl\n",
  30809. + *got_addr, new_addr, got_addr);
  30810. + }
  30811. +
  30812. + if (!_dl_debug_nofixups)
  30813. + *got_addr = (unsigned int)new_addr;
  30814. +#else
  30815. + /* Update the .got entry with the runtime address of symbol */
  30816. + *got_addr = (unsigned int)new_addr;
  30817. +#endif
  30818. +
  30819. + /*
  30820. + * Return the new addres, where the asm trampoline will jump to
  30821. + * after re-setting up the orig args
  30822. + */
  30823. + return (unsigned long) new_addr;
  30824. +}
  30825. +
  30826. +
  30827. +static int
  30828. +_dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
  30829. + ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab)
  30830. +{
  30831. + int reloc_type;
  30832. + int symtab_index;
  30833. + char *symname;
  30834. + unsigned long *reloc_addr;
  30835. + unsigned long symbol_addr;
  30836. +#if defined __SUPPORT_LD_DEBUG__
  30837. + unsigned long old_val = 0;
  30838. +#endif
  30839. + struct symbol_ref sym_ref;
  30840. +
  30841. + reloc_addr = (unsigned long *)(tpnt->loadaddr + rpnt->r_offset);
  30842. + reloc_type = ELF_R_TYPE(rpnt->r_info);
  30843. + symtab_index = ELF_R_SYM(rpnt->r_info);
  30844. + symbol_addr = 0;
  30845. +
  30846. + sym_ref.sym = &symtab[symtab_index];
  30847. + sym_ref.tpnt = NULL;
  30848. +
  30849. +#if defined __SUPPORT_LD_DEBUG__
  30850. + if (reloc_addr)
  30851. + old_val = *reloc_addr;
  30852. +#endif
  30853. +
  30854. + if (symtab_index) {
  30855. + symname = strtab + symtab[symtab_index].st_name;
  30856. + symbol_addr = (unsigned long) _dl_find_hash(symname, scope, tpnt,
  30857. + elf_machine_type_class(reloc_type), &sym_ref);
  30858. +
  30859. + /*
  30860. + * We want to allow undefined references to weak symbols,
  30861. + * this might have been intentional. We should not be linking
  30862. + * local symbols here, so all bases should be covered.
  30863. + */
  30864. +
  30865. + if (unlikely(!symbol_addr
  30866. + && ELF_ST_BIND(symtab[symtab_index].st_info) != STB_WEAK)) {
  30867. + /* Non-fatal if called from dlopen, hence different ret code */
  30868. + return 1;
  30869. + }
  30870. + } else if (reloc_type == R_ARC_RELATIVE ) {
  30871. + *reloc_addr += tpnt->loadaddr;
  30872. + goto log_entry;
  30873. + }
  30874. +
  30875. + switch (reloc_type) {
  30876. + case R_ARC_32:
  30877. + *reloc_addr += symbol_addr + rpnt->r_addend;
  30878. + break;
  30879. + case R_ARC_PC32:
  30880. + *reloc_addr += symbol_addr + rpnt->r_addend - (unsigned long) reloc_addr;
  30881. + break;
  30882. + case R_ARC_GLOB_DAT:
  30883. + case R_ARC_JMP_SLOT:
  30884. + *reloc_addr = symbol_addr;
  30885. + break;
  30886. + case R_ARC_COPY:
  30887. + _dl_memcpy((void *) reloc_addr,(void *) symbol_addr,
  30888. + symtab[symtab_index].st_size);
  30889. + break;
  30890. + default:
  30891. + return -1;
  30892. + }
  30893. +
  30894. +log_entry:
  30895. +#if defined __SUPPORT_LD_DEBUG__
  30896. + if (_dl_debug_detail)
  30897. + _dl_dprintf(_dl_debug_file,"\tpatched: %lx ==> %lx @ %pl: addend %x ",
  30898. + old_val, *reloc_addr, reloc_addr, rpnt->r_addend);
  30899. +#endif
  30900. +
  30901. + return 0;
  30902. +}
  30903. +
  30904. +static int
  30905. +_dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
  30906. + ELF_RELOC *rpnt)
  30907. +{
  30908. + int reloc_type;
  30909. + unsigned long *reloc_addr;
  30910. +#if defined __SUPPORT_LD_DEBUG__
  30911. + unsigned long old_val;
  30912. +#endif
  30913. +
  30914. + reloc_addr = (unsigned long *)(tpnt->loadaddr + rpnt->r_offset);
  30915. + reloc_type = ELF_R_TYPE(rpnt->r_info);
  30916. +
  30917. +#if defined __SUPPORT_LD_DEBUG__
  30918. + old_val = *reloc_addr;
  30919. +#endif
  30920. +
  30921. + switch (reloc_type) {
  30922. + case R_ARC_JMP_SLOT:
  30923. + *reloc_addr += tpnt->loadaddr;
  30924. + break;
  30925. + default:
  30926. + return -1;
  30927. + }
  30928. +
  30929. +#if defined __SUPPORT_LD_DEBUG__
  30930. + if (_dl_debug_reloc && _dl_debug_detail)
  30931. + _dl_dprintf(_dl_debug_file, "\tpatched: %lx ==> %lx @ %pl\n",
  30932. + old_val, *reloc_addr, reloc_addr);
  30933. +#endif
  30934. +
  30935. + return 0;
  30936. +}
  30937. +
  30938. +#define ___DO_LAZY 1
  30939. +#define ___DO_NOW 2
  30940. +
  30941. +static int _dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
  30942. + unsigned long rel_addr, unsigned long rel_size, int type)
  30943. +{
  30944. + unsigned int i;
  30945. + char *strtab;
  30946. + ElfW(Sym) *symtab;
  30947. + ELF_RELOC *rpnt;
  30948. + int symtab_index;
  30949. + int res = 0;
  30950. +
  30951. + /* Now parse the relocation information */
  30952. + rpnt = (ELF_RELOC *)(intptr_t) (rel_addr);
  30953. + rel_size = rel_size / sizeof(ELF_RELOC);
  30954. +
  30955. + symtab = (ElfW(Sym) *)(intptr_t) (tpnt->dynamic_info[DT_SYMTAB]);
  30956. + strtab = (char *) (tpnt->dynamic_info[DT_STRTAB]);
  30957. +
  30958. + for (i = 0; i < rel_size; i++, rpnt++) {
  30959. +
  30960. + symtab_index = ELF_R_SYM(rpnt->r_info);
  30961. +
  30962. + debug_sym(symtab,strtab,symtab_index);
  30963. + debug_reloc(symtab,strtab,rpnt);
  30964. +
  30965. + /* constant propagation subsumes the 'if' */
  30966. + if (type == ___DO_LAZY)
  30967. + res = _dl_do_lazy_reloc(tpnt, scope, rpnt);
  30968. + else
  30969. + res = _dl_do_reloc(tpnt, scope, rpnt, symtab, strtab);
  30970. +
  30971. + if (res != 0)
  30972. + break;
  30973. + }
  30974. +
  30975. + if (unlikely(res != 0)) {
  30976. + if (res < 0) {
  30977. + int reloc_type = ELF_R_TYPE(rpnt->r_info);
  30978. +#if defined __SUPPORT_LD_DEBUG__
  30979. + _dl_dprintf(2, "can't handle reloc type %s\n ",
  30980. + _dl_reltypes(reloc_type));
  30981. +#else
  30982. + _dl_dprintf(2, "can't handle reloc type %x\n",
  30983. + reloc_type);
  30984. +#endif
  30985. + _dl_exit(-res);
  30986. + } else {
  30987. + _dl_dprintf(2, "can't resolve symbol\n");
  30988. + /* Fall thru to return res */
  30989. + }
  30990. + }
  30991. +
  30992. + return res;
  30993. +}
  30994. +
  30995. +void
  30996. +_dl_parse_lazy_relocation_information(struct dyn_elf *rpnt,
  30997. + unsigned long rel_addr,
  30998. + unsigned long rel_size)
  30999. +{
  31000. + /* This func is called for processing .rela.plt of loaded module(s)
  31001. + * The relo entries handled are JMP_SLOT type for fixing up .got slots
  31002. + * for external function calls.
  31003. + * This function doesn't resolve the slots: that is done lazily at
  31004. + * runtime. The build linker (at least thats what happens for ARC) had
  31005. + * pre-init the .got slots to point to PLT0. All that is done here is
  31006. + * to fix them up to point to load value of PLT0 (as opposed to the
  31007. + * build value).
  31008. + * On ARC, the loadaddr of dyn exec is zero, thus elfaddr == loadaddr
  31009. + * Thus there is no point in adding "0" to values and un-necessarily
  31010. + * stir up the caches and TLB.
  31011. + * For ldso processing busybox binary, this skips over 380 relo entries
  31012. + */
  31013. + if (rpnt->dyn->loadaddr != 0)
  31014. + _dl_parse(rpnt->dyn, NULL, rel_addr, rel_size, ___DO_LAZY);
  31015. +}
  31016. +
  31017. +int
  31018. +_dl_parse_relocation_information(struct dyn_elf *rpnt,
  31019. + struct r_scope_elem *scope,
  31020. + unsigned long rel_addr,
  31021. + unsigned long rel_size)
  31022. +{
  31023. + return _dl_parse(rpnt->dyn, scope, rel_addr, rel_size, ___DO_NOW);
  31024. +}
  31025. diff -Nur uClibc-0.9.33.2/ldso/ldso/arc/resolve.S uClibc-git/ldso/ldso/arc/resolve.S
  31026. --- uClibc-0.9.33.2/ldso/ldso/arc/resolve.S 1970-01-01 01:00:00.000000000 +0100
  31027. +++ uClibc-git/ldso/ldso/arc/resolve.S 2014-06-02 17:40:33.926711497 +0200
  31028. @@ -0,0 +1,57 @@
  31029. +/*
  31030. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  31031. + *
  31032. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  31033. + */
  31034. +
  31035. +#include <sysdep.h>
  31036. +#include <sys/syscall.h>
  31037. +
  31038. +; Save the registers which resolver could possibly clobber
  31039. +; r0-r9: args to the function - symbol being resolved
  31040. +; r10-r12 are already clobbered by PLTn, PLT0 thus neednot be saved
  31041. +
  31042. +.macro SAVE_CALLER_SAVED
  31043. + push_s r0
  31044. + push_s r1
  31045. + push_s r2
  31046. + push_s r3
  31047. + st.a r4, [sp, -4]
  31048. + st.a r5, [sp, -4]
  31049. + st.a r6, [sp, -4]
  31050. + st.a r7, [sp, -4]
  31051. + st.a r8, [sp, -4]
  31052. + st.a r9, [sp, -4]
  31053. + push_s blink
  31054. +.endm
  31055. +
  31056. +.macro RESTORE_CALLER_SAVED_BUT_R0
  31057. + ld.ab blink,[sp, 4]
  31058. + ld.ab r9, [sp, 4]
  31059. + ld.ab r8, [sp, 4]
  31060. + ld.ab r7, [sp, 4]
  31061. + ld.ab r6, [sp, 4]
  31062. + ld.ab r5, [sp, 4]
  31063. + ld.ab r4, [sp, 4]
  31064. + pop_s r3
  31065. + pop_s r2
  31066. + pop_s r1
  31067. +.endm
  31068. +
  31069. +; Upon entry, PLTn, which led us here, sets up the following regs
  31070. +; r11 = Module info (tpnt pointer as expected by resolver)
  31071. +; r12 = PC of the PLTn itself - needed by resolver to find
  31072. +; corresponding .rela.plt entry
  31073. +
  31074. +ENTRY(_dl_linux_resolve)
  31075. + ; args to func being resolved, which resolver might clobber
  31076. + SAVE_CALLER_SAVED
  31077. +
  31078. + mov_s r1, r12
  31079. + bl.d _dl_linux_resolver
  31080. + mov r0, r11
  31081. +
  31082. + RESTORE_CALLER_SAVED_BUT_R0
  31083. + j_s.d [r0] ; r0 has resolved function addr
  31084. + pop_s r0 ; restore first arg to resolved call
  31085. +END(_dl_linux_resolve)
  31086. diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/aeabi_read_tp.S uClibc-git/ldso/ldso/arm/aeabi_read_tp.S
  31087. --- uClibc-0.9.33.2/ldso/ldso/arm/aeabi_read_tp.S 2012-05-15 09:20:09.000000000 +0200
  31088. +++ uClibc-git/ldso/ldso/arm/aeabi_read_tp.S 2014-06-02 17:40:33.926711497 +0200
  31089. @@ -29,9 +29,8 @@
  31090. Lesser General Public License for more details.
  31091. You should have received a copy of the GNU Lesser General Public
  31092. - License along with the GNU C Library; if not, write to the Free
  31093. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  31094. - 02111-1307 USA. */
  31095. + License along with the GNU C Library; if not, see
  31096. + <http://www.gnu.org/licenses/>. */
  31097. #include <features.h>
  31098. diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/dl-startup.h uClibc-git/ldso/ldso/arm/dl-startup.h
  31099. --- uClibc-0.9.33.2/ldso/ldso/arm/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  31100. +++ uClibc-git/ldso/ldso/arm/dl-startup.h 2014-06-02 17:40:33.926711497 +0200
  31101. @@ -14,6 +14,7 @@
  31102. " .text\n"
  31103. " .globl _start\n"
  31104. " .type _start,%function\n"
  31105. + " .hidden _start\n"
  31106. "_start:\n"
  31107. " @ at start time, all the args are on the stack\n"
  31108. " mov r0, sp\n"
  31109. diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/dl-sysdep.h uClibc-git/ldso/ldso/arm/dl-sysdep.h
  31110. --- uClibc-0.9.33.2/ldso/ldso/arm/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
  31111. +++ uClibc-git/ldso/ldso/arm/dl-sysdep.h 2014-06-02 17:40:33.926711497 +0200
  31112. @@ -58,11 +58,6 @@
  31113. struct elf_resolve;
  31114. unsigned long _dl_linux_resolver(struct elf_resolve * tpnt, int reloc_entry);
  31115. -/* 4096 bytes alignment */
  31116. -#define PAGE_ALIGN 0xfffff000
  31117. -#define ADDR_ALIGN 0xfff
  31118. -#define OFFS_ALIGN 0x7ffff000
  31119. -
  31120. /* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or
  31121. TLS variable, so undefined references should not be allowed to
  31122. define the value.
  31123. diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/elfinterp.c uClibc-git/ldso/ldso/arm/elfinterp.c
  31124. --- uClibc-0.9.33.2/ldso/ldso/arm/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
  31125. +++ uClibc-git/ldso/ldso/arm/elfinterp.c 2014-06-02 17:40:33.926711497 +0200
  31126. @@ -77,9 +77,9 @@
  31127. _dl_exit(1);
  31128. }
  31129. #if defined (__SUPPORT_LD_DEBUG__)
  31130. -#if !defined __SUPPORT_LD_DEBUG_EARLY__
  31131. +# if !defined __SUPPORT_LD_DEBUG_EARLY__
  31132. if ((unsigned long) got_addr < 0x40000000)
  31133. -#endif
  31134. +# endif
  31135. {
  31136. if (_dl_debug_bindings)
  31137. {
  31138. diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/resolve.S uClibc-git/ldso/ldso/arm/resolve.S
  31139. --- uClibc-0.9.33.2/ldso/ldso/arm/resolve.S 2012-05-15 09:20:09.000000000 +0200
  31140. +++ uClibc-git/ldso/ldso/arm/resolve.S 2014-06-02 17:40:33.926711497 +0200
  31141. @@ -101,7 +101,7 @@
  31142. .text
  31143. .align 4 @ 16 byte boundary and there are 32 bytes below (arm case)
  31144. - #if !defined(__thumb__) || defined(__thumb2__)
  31145. +#if 1 /*(!defined(__thumb__) || defined __THUMB_INTERWORK__) || defined(__thumb2__)*/
  31146. .arm
  31147. .globl _dl_linux_resolve
  31148. .type _dl_linux_resolve,%function
  31149. diff -Nur uClibc-0.9.33.2/ldso/ldso/arm/thumb_atomics.S uClibc-git/ldso/ldso/arm/thumb_atomics.S
  31150. --- uClibc-0.9.33.2/ldso/ldso/arm/thumb_atomics.S 2012-05-15 09:20:09.000000000 +0200
  31151. +++ uClibc-git/ldso/ldso/arm/thumb_atomics.S 2014-06-02 17:40:33.926711497 +0200
  31152. @@ -29,9 +29,8 @@
  31153. Lesser General Public License for more details.
  31154. You should have received a copy of the GNU Lesser General Public
  31155. - License along with the GNU C Library; if not, write to the Free
  31156. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  31157. - 02111-1307 USA. */
  31158. + License along with the GNU C Library; if not, see
  31159. + <http://www.gnu.org/licenses/>. */
  31160. #include <features.h>
  31161. diff -Nur uClibc-0.9.33.2/ldso/ldso/avr32/dl-startup.h uClibc-git/ldso/ldso/avr32/dl-startup.h
  31162. --- uClibc-0.9.33.2/ldso/ldso/avr32/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  31163. +++ uClibc-git/ldso/ldso/avr32/dl-startup.h 2014-06-02 17:40:33.926711497 +0200
  31164. @@ -12,6 +12,7 @@
  31165. __asm__(" .text\n"
  31166. " .global _start\n"
  31167. " .type _start,@function\n"
  31168. + " .hidden _start\n"
  31169. "_start:\n"
  31170. /* All arguments are on the stack initially */
  31171. " mov r12, sp\n"
  31172. diff -Nur uClibc-0.9.33.2/ldso/ldso/avr32/dl-sysdep.h uClibc-git/ldso/ldso/avr32/dl-sysdep.h
  31173. --- uClibc-0.9.33.2/ldso/ldso/avr32/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
  31174. +++ uClibc-git/ldso/ldso/avr32/dl-sysdep.h 2014-06-02 17:40:33.926711497 +0200
  31175. @@ -35,8 +35,6 @@
  31176. GOT_BASE[_i] += (unsigned long)MODULE->loadaddr; \
  31177. } while (0)
  31178. -#define do_rem(result, n, base) ((result) = (n) % (base))
  31179. -
  31180. /* Here we define the magic numbers that this dynamic loader should accept */
  31181. #define MAGIC1 EM_AVR32
  31182. #undef MAGIC2
  31183. diff -Nur uClibc-0.9.33.2/ldso/ldso/bfin/dl-startup.h uClibc-git/ldso/ldso/bfin/dl-startup.h
  31184. --- uClibc-0.9.33.2/ldso/ldso/bfin/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  31185. +++ uClibc-git/ldso/ldso/bfin/dl-startup.h 2014-06-02 17:40:33.930711520 +0200
  31186. @@ -14,9 +14,8 @@
  31187. Library General Public License for more details.
  31188. You should have received a copy of the GNU Lesser General Public
  31189. -License along with uClibc; see the file COPYING.LIB. If not, write to
  31190. -the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
  31191. -USA. */
  31192. +License along with uClibc; see the file COPYING.LIB. If not, see
  31193. +<http://www.gnu.org/licenses/>. */
  31194. /* Any assembly language/system dependent hacks needed to setup
  31195. * boot1.c so it will work as expected and cope with whatever platform
  31196. @@ -40,10 +39,7 @@
  31197. " .text\n"
  31198. " .global __start\n"
  31199. " .type __start,@function\n"
  31200. - /* Build system expects a "_start" for the entry point;
  31201. - provide it as it's free to do so with aliases. */
  31202. - " .set _start, __start\n"
  31203. - " .global _start\n"
  31204. + " .hidden __start\n"
  31205. "__start:\n"
  31206. " call .Lcall\n"
  31207. ".Lcall:\n"
  31208. diff -Nur uClibc-0.9.33.2/ldso/ldso/bfin/dl-syscalls.h uClibc-git/ldso/ldso/bfin/dl-syscalls.h
  31209. --- uClibc-0.9.33.2/ldso/ldso/bfin/dl-syscalls.h 2012-05-15 09:20:09.000000000 +0200
  31210. +++ uClibc-git/ldso/ldso/bfin/dl-syscalls.h 2014-06-02 17:40:33.930711520 +0200
  31211. @@ -14,9 +14,8 @@
  31212. Library General Public License for more details.
  31213. You should have received a copy of the GNU Lesser General Public
  31214. -License along with uClibc; see the file COPYING.LIB. If not, write to
  31215. -the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
  31216. -USA. */
  31217. +License along with uClibc; see the file COPYING.LIB. If not, see
  31218. +<http://www.gnu.org/licenses/>. */
  31219. #ifdef __NR_sram_alloc
  31220. #define __NR__dl_sram_alloc __NR_sram_alloc
  31221. diff -Nur uClibc-0.9.33.2/ldso/ldso/bfin/elfinterp.c uClibc-git/ldso/ldso/bfin/elfinterp.c
  31222. --- uClibc-0.9.33.2/ldso/ldso/bfin/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
  31223. +++ uClibc-git/ldso/ldso/bfin/elfinterp.c 2014-06-02 17:40:33.930711520 +0200
  31224. @@ -20,9 +20,8 @@
  31225. Library General Public License for more details.
  31226. You should have received a copy of the GNU Lesser General Public
  31227. -License along with uClibc; see the file COPYING.LIB. If not, write to
  31228. -the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
  31229. -USA. */
  31230. +License along with uClibc; see the file COPYING.LIB. If not, see
  31231. +<http://www.gnu.org/licenses/>. */
  31232. #include <sys/cdefs.h> /* __attribute_used__ */
  31233. diff -Nur uClibc-0.9.33.2/ldso/ldso/bfin/resolve.S uClibc-git/ldso/ldso/bfin/resolve.S
  31234. --- uClibc-0.9.33.2/ldso/ldso/bfin/resolve.S 2012-05-15 09:20:09.000000000 +0200
  31235. +++ uClibc-git/ldso/ldso/bfin/resolve.S 2014-06-02 17:40:33.930711520 +0200
  31236. @@ -14,9 +14,8 @@
  31237. Library General Public License for more details.
  31238. You should have received a copy of the GNU Lesser General Public
  31239. -License along with uClibc; see the file COPYING.LIB. If not, write to
  31240. -the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
  31241. -USA. */
  31242. +License along with uClibc; see the file COPYING.LIB. If not, see
  31243. +<http://www.gnu.org/licenses/>. */
  31244. /* The function below is tail-called by resolver stubs when a
  31245. lazily-bound function is called. It must preserve all
  31246. diff -Nur uClibc-0.9.33.2/ldso/ldso/c6x/dl-startup.h uClibc-git/ldso/ldso/c6x/dl-startup.h
  31247. --- uClibc-0.9.33.2/ldso/ldso/c6x/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  31248. +++ uClibc-git/ldso/ldso/c6x/dl-startup.h 2014-06-02 17:40:33.930711520 +0200
  31249. @@ -6,10 +6,9 @@
  31250. *
  31251. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  31252. */
  31253. -
  31254. #undef DL_START
  31255. #define DL_START(X) \
  31256. -int \
  31257. +static void * __attribute_used__ \
  31258. _dl_start (unsigned placeholder, \
  31259. struct elf32_dsbt_loadmap *dl_boot_progmap, \
  31260. struct elf32_dsbt_loadmap *dl_boot_ldsomap, \
  31261. @@ -34,7 +33,6 @@
  31262. * B4 --> executable loadmap address
  31263. * A6 --> interpreter loadmap address
  31264. * B6 --> dynamic section address
  31265. - * B14 --> our DP setup by kernel
  31266. *
  31267. * NB: DSBT index is always 0 for the executable
  31268. * and 1 for the interpreter
  31269. @@ -42,7 +40,76 @@
  31270. __asm__(" .text\n"
  31271. ".globl _start\n"
  31272. + ".hidden _start\n"
  31273. "_start:\n"
  31274. + /* Find interpreter DSBT base in dynamic section */
  31275. + " MV .S2 B6,B2\n"
  31276. + " || ADD .D1X B6,4,A2\n"
  31277. + " LDW .D2T2 *B2++[2],B0\n"
  31278. + " || LDW .D1T1 *A2++[2],A0\n"
  31279. + " MVKL .S2 " __stringify(DT_C6000_DSBT_BASE) ",B7\n"
  31280. + " MVKH .S2 " __stringify(DT_C6000_DSBT_BASE) ",B7\n"
  31281. + " NOP\n"
  31282. + " NOP\n"
  31283. + /*
  31284. + * B0 now holds dynamic tag and A0 holds tag value.
  31285. + * Loop through looking for DSBT base tag
  31286. + */
  31287. + "0:\n"
  31288. + " [B0] CMPEQ .L2 B0,B7,B1\n"
  31289. + " || [!B0] MVK .S2 1,B1\n"
  31290. + " [!B1] BNOP .S1 0b,5\n"
  31291. + " ||[!B1] LDW .D2T2 *B2++[2],B0\n"
  31292. + " ||[!B1] LDW .D1T1 *A2++[2],A0\n"
  31293. + /*
  31294. + * DSBT base in A0 needs to be relocated.
  31295. + * Search through our loadmap to find where it got loaded.
  31296. + *
  31297. + * struct elf32_dsbt_loadmap {
  31298. + * Elf32_Half version;
  31299. + * Elf32_Half nsegs;
  31300. + * struct {
  31301. + * Elf32_Addr addr;
  31302. + * Elf32_Addr p_vaddr;
  31303. + * Elf32_Word p_memsz;
  31304. + * } segments[];
  31305. + * }
  31306. + *
  31307. + */
  31308. + " MV .S1 A6,A1\n"
  31309. + " [!A1] MV .S1X B4,A1\n"
  31310. + " ADD .D1 A1,2,A3\n"
  31311. + " LDHU .D1T2 *A3++[1],B0\n" /* nsegs */
  31312. + " LDW .D1T1 *A3++[1],A10\n" /* addr */
  31313. + " LDW .D1T1 *A3++[1],A11\n" /* p_vaddr */
  31314. + " LDW .D1T1 *A3++[1],A12\n" /* p_memsz */
  31315. + " NOP\n"
  31316. + " NOP\n"
  31317. + /*
  31318. + * Here we have:
  31319. + * B0 -> number of segments to search.
  31320. + * A3 -> pointer to next segment to check
  31321. + * A10 -> segment load address
  31322. + * A11 -> ELF segment virt address
  31323. + * A12 -> ELF segment size
  31324. + */
  31325. + "0:\n"
  31326. + " [!B0] B .S2 0f\n"
  31327. + " SUB .D2 B0,1,B0\n"
  31328. + " CMPLTU .L1 A0,A11,A13\n"
  31329. + " || SUB .S1 A12,1,A12\n"
  31330. + " ADD .D1 A11,A12,A12\n"
  31331. + " CMPGTU .L1 A0,A12,A14\n"
  31332. + " OR .L1 A13,A14,A2\n"
  31333. + " [A2] B .S2 0b\n"
  31334. + " || [!A2] SUB .L1 A0,A11,A0\n"
  31335. + " [B0] LDW .D1T1 *A3++[1],A10\n" /* addr */
  31336. + " || [!A2] ADD .L1 A0,A10,A0\n"
  31337. + " [B0] LDW .D1T1 *A3++[1],A11\n" /* p_vaddr */
  31338. + " [B0] LDW .D1T1 *A3++[1],A12\n" /* p_memsz */
  31339. + " MV .S2X A0,B14\n"
  31340. + " NOP\n"
  31341. + "0:\n"
  31342. " B .S2 _dl_start\n"
  31343. " STW .D2T2 B14, *+B14[1]\n"
  31344. " ADD .D1X B15,8,A8\n"
  31345. diff -Nur uClibc-0.9.33.2/ldso/ldso/c6x/dl-sysdep.h uClibc-git/ldso/ldso/c6x/dl-sysdep.h
  31346. --- uClibc-0.9.33.2/ldso/ldso/c6x/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
  31347. +++ uClibc-git/ldso/ldso/c6x/dl-sysdep.h 2014-06-02 17:40:33.930711520 +0200
  31348. @@ -52,13 +52,13 @@
  31349. struct funcdesc_ht;
  31350. struct elf32_dsbt_loadaddr;
  31351. -/* We must force strings used early in the bootstrap into the text
  31352. - segment (const data), such that they are referenced relative to
  31353. - the DP register rather than through the GOT which will not have
  31354. - been relocated when these are used. */
  31355. +/* Current toolchains access constant strings via unrelocated GOT
  31356. + entries. Fortunately, we have enough in place to just call the
  31357. + relocation function early on. */
  31358. #undef SEND_EARLY_STDERR
  31359. #define SEND_EARLY_STDERR(S) \
  31360. - do { static char __s[] = (S); SEND_STDERR (__s); } while (0)
  31361. + do { char *__p = __reloc_pointer((S), dl_boot_ldsomap?:dl_boot_progmap);\
  31362. + SEND_STDERR (__p); } while (0)
  31363. #define DL_LOADADDR_TYPE struct elf32_dsbt_loadaddr
  31364. @@ -114,7 +114,7 @@
  31365. (__dl_loadaddr_unmap ((LIB)->loadaddr))
  31366. #define DL_LOADADDR_BASE(LOADADDR) \
  31367. - ((LOADADDR).map->dsbt_table)
  31368. + ((LOADADDR).map)
  31369. #define DL_ADDR_IN_LOADADDR(ADDR, TPNT, TFROM) \
  31370. (! (TFROM) && __dl_addr_in_loadaddr ((void*)(ADDR), (TPNT)->loadaddr))
  31371. @@ -150,18 +150,28 @@
  31372. /*
  31373. - * Compute the GOT address.
  31374. - * Also setup program and interpreter DSBT table entries.
  31375. + * C6X doesn't really need the GOT here.
  31376. + * The GOT is placed just past the DSBT table, so we could find it by
  31377. + * using the DSBT register + table size found in the dynamic section.
  31378. + *
  31379. + * do { \
  31380. + * unsigned long *ldso_dsbt; \
  31381. + * ElfW(Dyn) *d = dl_boot_ldso_dyn_pointer; \
  31382. + * while (d->d_tag != DT_NULL) { \
  31383. + * if (d->d_tag == DT_C6000_DSBT_SIZE) { \
  31384. + * __asm__ (" MV .S2 B14,%0\n" \
  31385. + * : "=b" (ldso_dsbt)); \
  31386. + * (GOT) = ldso_dsbt + d->d_un.d_val; \
  31387. + * break; \
  31388. + * } \
  31389. + * d++; \
  31390. + * } \
  31391. + * } while(0)
  31392. + *
  31393. + * Instead, just point it to the DSBT table to avoid unused variable warning.
  31394. */
  31395. #define DL_BOOT_COMPUTE_GOT(GOT) \
  31396. - do { \
  31397. - unsigned long *ldso_dsbt, *prog_dsbt; \
  31398. - ldso_dsbt = dl_boot_ldsomap->dsbt_table; \
  31399. - prog_dsbt = dl_boot_progmap->dsbt_table; \
  31400. - ldso_dsbt[0] = prog_dsbt[0] = (unsigned long)prog_dsbt; \
  31401. - ldso_dsbt[1] = prog_dsbt[1] = (unsigned long)ldso_dsbt; \
  31402. - (GOT) = ldso_dsbt + dl_boot_ldsomap->dsbt_size; \
  31403. - } while(0)
  31404. + __asm__ (" MV .S2 B14,%0\n" : "=b" (GOT))
  31405. #define DL_BOOT_COMPUTE_DYN(dpnt, got, load_addr) \
  31406. ((dpnt) = dl_boot_ldso_dyn_pointer)
  31407. @@ -186,12 +196,9 @@
  31408. # undef __USE_GNU
  31409. #endif
  31410. -static __always_inline Elf32_Addr
  31411. -elf_machine_load_address (void)
  31412. -{
  31413. - /* this is never an issue on DSBT systems */
  31414. - return 0;
  31415. -}
  31416. +/* we need this for __LDSO_STANDALONE_SUPPORT__ */
  31417. +#define elf_machine_load_address() \
  31418. + (dl_boot_ldsomap ?: dl_boot_progmap)->segs[0].addr
  31419. static __always_inline void
  31420. elf_machine_relative (DL_LOADADDR_TYPE load_off, const Elf32_Addr rel_addr,
  31421. diff -Nur uClibc-0.9.33.2/ldso/ldso/c6x/elfinterp.c uClibc-git/ldso/ldso/c6x/elfinterp.c
  31422. --- uClibc-0.9.33.2/ldso/ldso/c6x/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
  31423. +++ uClibc-git/ldso/ldso/c6x/elfinterp.c 2014-06-02 17:40:33.930711520 +0200
  31424. @@ -69,14 +69,12 @@
  31425. got_addr = (char **) DL_RELOC_ADDR(tpnt->loadaddr, this_reloc->r_offset);
  31426. /* Get the address to be used to fill in the GOT entry. */
  31427. - new_addr = _dl_find_hash(symname, tpnt->symbol_scope, tpnt,
  31428. - ELF_RTYPE_CLASS_PLT, NULL);
  31429. + new_addr = _dl_find_hash(symname, &_dl_loaded_modules->symbol_scope, tpnt, ELF_RTYPE_CLASS_PLT, NULL);
  31430. if (unlikely(!new_addr)) {
  31431. _dl_dprintf(2, "%s: can't resolve symbol '%s' in lib '%s'.\n", _dl_progname, symname, tpnt->libname);
  31432. _dl_exit(1);
  31433. }
  31434. -
  31435. #if defined (__SUPPORT_LD_DEBUG__)
  31436. if (_dl_debug_bindings) {
  31437. _dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
  31438. @@ -96,9 +94,9 @@
  31439. }
  31440. static int
  31441. -_dl_parse(struct elf_resolve *tpnt, struct dyn_elf *scope,
  31442. +_dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
  31443. unsigned long rel_addr, unsigned long rel_size,
  31444. - int (*reloc_fnc) (struct elf_resolve *tpnt, struct dyn_elf *scope,
  31445. + int (*reloc_fnc) (struct elf_resolve *tpnt, struct r_scope_elem *scope,
  31446. ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab))
  31447. {
  31448. unsigned int i;
  31449. @@ -148,7 +146,7 @@
  31450. }
  31451. static int
  31452. -_dl_do_reloc (struct elf_resolve *tpnt,struct dyn_elf *scope,
  31453. +_dl_do_reloc (struct elf_resolve *tpnt,struct r_scope_elem *scope,
  31454. ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab)
  31455. {
  31456. int reloc_type;
  31457. @@ -157,7 +155,9 @@
  31458. unsigned long *reloc_addr;
  31459. unsigned long symbol_addr, sym_val;
  31460. long reloc_addend;
  31461. - unsigned long old_val, new_val;
  31462. + unsigned long old_val, new_val = 0;
  31463. + struct symbol_ref sym_ref;
  31464. + struct elf_resolve *symbol_tpnt;
  31465. reloc_addr = (unsigned long *)(intptr_t)
  31466. DL_RELOC_ADDR (tpnt->loadaddr, rpnt->r_offset);
  31467. @@ -167,14 +167,17 @@
  31468. symtab_index = ELF_R_SYM(rpnt->r_info);
  31469. symbol_addr = 0;
  31470. symname = strtab + symtab[symtab_index].st_name;
  31471. + sym_ref.sym = &symtab[symtab_index];
  31472. + sym_ref.tpnt = NULL;
  31473. if (ELF_ST_BIND (symtab[symtab_index].st_info) == STB_LOCAL) {
  31474. symbol_addr = (unsigned long)
  31475. DL_RELOC_ADDR (tpnt->loadaddr, symtab[symtab_index].st_value);
  31476. + symbol_tpnt = tpnt;
  31477. } else {
  31478. - symbol_addr = (unsigned long) _dl_find_hash(strtab + symtab[symtab_index].st_name,
  31479. - scope, tpnt, elf_machine_type_class(reloc_type),
  31480. - NULL);
  31481. + symbol_addr = (unsigned long) _dl_find_hash(symname,
  31482. + scope, NULL, elf_machine_type_class(reloc_type),
  31483. + &sym_ref);
  31484. /*
  31485. * We want to allow undefined references to weak symbols - this might
  31486. * have been intentional. We should not be linking local symbols
  31487. @@ -186,6 +189,7 @@
  31488. _dl_progname, strtab + symtab[symtab_index].st_name);
  31489. _dl_exit (1);
  31490. }
  31491. + symbol_tpnt = sym_ref.tpnt;
  31492. }
  31493. old_val = *reloc_addr;
  31494. sym_val = symbol_addr + reloc_addend;
  31495. @@ -199,7 +203,7 @@
  31496. *reloc_addr = sym_val;
  31497. break;
  31498. case R_C6000_DSBT_INDEX:
  31499. - new_val = (old_val & ~0x007fff00) | ((tpnt->loadaddr.map->dsbt_index & 0x7fff) << 8);
  31500. + new_val = (old_val & ~0x007fff00) | ((symbol_tpnt->dsbt_index & 0x7fff) << 8);
  31501. *reloc_addr = new_val;
  31502. break;
  31503. case R_C6000_ABS_L16:
  31504. @@ -242,7 +246,7 @@
  31505. static int
  31506. _dl_do_lazy_reloc (struct elf_resolve *tpnt,
  31507. - struct dyn_elf *scope attribute_unused,
  31508. + struct r_scope_elem *scope attribute_unused,
  31509. ELF_RELOC *rpnt, ElfW(Sym) *symtab attribute_unused,
  31510. char *strtab attribute_unused)
  31511. {
  31512. @@ -283,9 +287,9 @@
  31513. int
  31514. _dl_parse_relocation_information
  31515. -(struct dyn_elf *rpnt, unsigned long rel_addr, unsigned long rel_size)
  31516. +(struct dyn_elf *rpnt, struct r_scope_elem *scope, unsigned long rel_addr, unsigned long rel_size)
  31517. {
  31518. - return _dl_parse(rpnt->dyn, rpnt->dyn->symbol_scope, rel_addr, rel_size, _dl_do_reloc);
  31519. + return _dl_parse(rpnt->dyn, scope, rel_addr, rel_size, _dl_do_reloc);
  31520. }
  31521. /* We don't have copy relocs. */
  31522. diff -Nur uClibc-0.9.33.2/ldso/ldso/cris/dl-startup.h uClibc-git/ldso/ldso/cris/dl-startup.h
  31523. --- uClibc-0.9.33.2/ldso/ldso/cris/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  31524. +++ uClibc-git/ldso/ldso/cris/dl-startup.h 2014-06-02 17:40:33.946711608 +0200
  31525. @@ -10,6 +10,7 @@
  31526. " .text\n" \
  31527. " .globl _start\n" \
  31528. " .type _start,@function\n" \
  31529. +" .hidden _start\n" \
  31530. "_start:\n" \
  31531. " move.d $sp,$r10\n" \
  31532. " lapc _dl_start,$r9\n" \
  31533. @@ -28,6 +29,7 @@
  31534. " .text\n" \
  31535. " .globl _start\n" \
  31536. " .type _start,@function\n" \
  31537. +" .hidden _start\n" \
  31538. "_start:\n" \
  31539. " move.d $sp,$r10\n" \
  31540. " move.d $pc,$r9\n" \
  31541. diff -Nur uClibc-0.9.33.2/ldso/ldso/dl-elf.c uClibc-git/ldso/ldso/dl-elf.c
  31542. --- uClibc-0.9.33.2/ldso/ldso/dl-elf.c 2012-05-15 09:20:09.000000000 +0200
  31543. +++ uClibc-git/ldso/ldso/dl-elf.c 2014-06-02 17:40:33.946711608 +0200
  31544. @@ -174,8 +174,11 @@
  31545. _dl_strcpy(mylibname, "."); /* Assume current dir if empty path */
  31546. _dl_strcat(mylibname, "/");
  31547. _dl_strcat(mylibname, name);
  31548. - if ((tpnt = _dl_load_elf_shared_library(rflags, rpnt, mylibname)) != NULL)
  31549. - return tpnt;
  31550. +#ifdef __LDSO_SAFE_RUNPATH__
  31551. + if (*mylibname == '/')
  31552. +#endif
  31553. + if ((tpnt = _dl_load_elf_shared_library(rflags, rpnt, mylibname)) != NULL)
  31554. + return tpnt;
  31555. path_n = path+1;
  31556. }
  31557. path++;
  31558. @@ -500,7 +503,7 @@
  31559. return NULL;
  31560. }
  31561. header = _dl_mmap((void *) 0, _dl_pagesize, PROT_READ | PROT_WRITE,
  31562. - MAP_PRIVATE | MAP_ANONYMOUS | MAP_UNINITIALIZE, -1, 0);
  31563. + MAP_PRIVATE | MAP_ANONYMOUS | MAP_UNINITIALIZED, -1, 0);
  31564. if (_dl_mmap_check_error(header)) {
  31565. _dl_dprintf(2, "%s:%i: can't map '%s'\n", _dl_progname, __LINE__, libname);
  31566. _dl_internal_error_number = LD_ERROR_MMAP_FAILED;
  31567. @@ -739,7 +742,7 @@
  31568. }
  31569. }
  31570. #else
  31571. - _dl_dprintf(_dl_debug_file, "Can't modify %s's text section."
  31572. + _dl_dprintf(2, "Can't modify %s's text section."
  31573. " Use GCC option -fPIC for shared objects, please.\n",
  31574. libname);
  31575. _dl_exit(1);
  31576. @@ -791,7 +794,7 @@
  31577. #endif
  31578. {
  31579. # ifdef __SUPPORT_LD_DEBUG_EARLY__
  31580. - unsigned int tmp = (unsigned int) tpnt->l_tls_initimage;
  31581. + char *tmp = (char *) tpnt->l_tls_initimage;
  31582. tpnt->l_tls_initimage = (char *) tlsppnt->p_vaddr + tpnt->loadaddr;
  31583. _dl_debug_early("Relocated TLS initial image from %x to %x (size = %x)\n", tmp, tpnt->l_tls_initimage, tpnt->l_tls_initimage_size);
  31584. tmp = 0;
  31585. @@ -851,10 +854,15 @@
  31586. /* Handle DSBT initialization */
  31587. {
  31588. struct elf_resolve *t, *ref;
  31589. - int idx = tpnt->loadaddr.map->dsbt_index;
  31590. - unsigned *dsbt = tpnt->loadaddr.map->dsbt_table;
  31591. + int idx = tpnt->dsbt_index;
  31592. + void **dsbt = tpnt->dsbt_table;
  31593. - if (idx == 0) {
  31594. + /*
  31595. + * It is okay (required actually) to have zero idx for an executable.
  31596. + * This is the case when running ldso standalone and the program
  31597. + * is being mapped in via _dl_load_shared_library().
  31598. + */
  31599. + if (idx == 0 && tpnt->libtype != elf_executable) {
  31600. if (!dynamic_info[DT_TEXTREL]) {
  31601. /* This DSO has not been assigned an index. */
  31602. _dl_dprintf(2, "%s: '%s' is missing a dsbt index assignment!\n",
  31603. @@ -869,9 +877,9 @@
  31604. break;
  31605. }
  31606. }
  31607. - idx = tpnt->loadaddr.map->dsbt_size;
  31608. + idx = tpnt->dsbt_size;
  31609. while (idx-- > 0)
  31610. - if (!ref || ref->loadaddr.map->dsbt_table[idx] == NULL)
  31611. + if (!ref || ref->dsbt_table[idx] == NULL)
  31612. break;
  31613. if (idx <= 0) {
  31614. _dl_dprintf(2, "%s: '%s' caused DSBT table overflow!\n",
  31615. @@ -880,43 +888,36 @@
  31616. }
  31617. _dl_if_debug_dprint("\n\tfile='%s'; assigned index %d\n",
  31618. libname, idx);
  31619. - tpnt->loadaddr.map->dsbt_index = idx;
  31620. + tpnt->dsbt_index = idx;
  31621. + }
  31622. + /* make sure index is not already used */
  31623. + if (_dl_ldso_dsbt[idx]) {
  31624. + struct elf_resolve *dup;
  31625. + const char *dup_name;
  31626. +
  31627. + for (dup = _dl_loaded_modules; dup; dup = dup->next)
  31628. + if (dup != tpnt && dup->dsbt_index == idx)
  31629. + break;
  31630. + if (dup)
  31631. + dup_name = dup->libname;
  31632. + else if (idx == 1)
  31633. + dup_name = "runtime linker";
  31634. + else
  31635. + dup_name = "unknown library";
  31636. + _dl_dprintf(2, "%s: '%s' dsbt index %d already used by %s!\n",
  31637. + _dl_progname, libname, idx, dup_name);
  31638. + _dl_exit(1);
  31639. }
  31640. /*
  31641. * Setup dsbt slot for this module in dsbt of all modules.
  31642. */
  31643. - ref = NULL;
  31644. - for (t = _dl_loaded_modules; t; t = t->next) {
  31645. - /* find a dsbt table from another module */
  31646. - if (ref == NULL && t != tpnt) {
  31647. - ref = t;
  31648. -
  31649. - /* make sure index is not already used */
  31650. - if (t->loadaddr.map->dsbt_table[idx]) {
  31651. - struct elf_resolve *dup;
  31652. - char *dup_name;
  31653. -
  31654. - for (dup = _dl_loaded_modules; dup; dup = dup->next)
  31655. - if (dup != tpnt && dup->loadaddr.map->dsbt_index == idx)
  31656. - break;
  31657. - if (dup)
  31658. - dup_name = dup->libname;
  31659. - else if (idx == 1)
  31660. - dup_name = "runtime linker";
  31661. - else
  31662. - dup_name = "unknown library";
  31663. - _dl_dprintf(2, "%s: '%s' dsbt index %d already used by %s!\n",
  31664. - _dl_progname, libname, idx, dup_name);
  31665. - _dl_exit(1);
  31666. - }
  31667. - }
  31668. - t->loadaddr.map->dsbt_table[idx] = (unsigned)dsbt;
  31669. - }
  31670. - if (ref)
  31671. - _dl_memcpy(dsbt, ref->loadaddr.map->dsbt_table,
  31672. - tpnt->loadaddr.map->dsbt_size * sizeof(unsigned *));
  31673. + for (t = _dl_loaded_modules; t; t = t->next)
  31674. + t->dsbt_table[idx] = dsbt;
  31675. + _dl_ldso_dsbt[idx] = dsbt;
  31676. + _dl_memcpy(dsbt, _dl_ldso_dsbt,
  31677. + tpnt->dsbt_size * sizeof(tpnt->dsbt_table[0]));
  31678. }
  31679. #endif
  31680. _dl_if_debug_dprint("\n\tfile='%s'; generating link map\n", libname);
  31681. @@ -1006,6 +1007,7 @@
  31682. return goof;
  31683. }
  31684. +#ifdef IS_IN_rtld
  31685. /* Minimal printf which handles only %s, %d, and %x */
  31686. void _dl_dprintf(int fd, const char *fmt, ...)
  31687. {
  31688. @@ -1071,7 +1073,7 @@
  31689. break;
  31690. }
  31691. case 'x':
  31692. - case 'X':
  31693. + case 'p':
  31694. {
  31695. char tmp[22];
  31696. #if __WORDSIZE > 32
  31697. @@ -1108,6 +1110,7 @@
  31698. _dl_strcpy(retval, string);
  31699. return retval;
  31700. }
  31701. +#endif
  31702. unsigned int _dl_parse_dynamic_info(ElfW(Dyn) *dpnt, unsigned long dynamic_info[],
  31703. void *debug_addr, DL_LOADADDR_TYPE load_off)
  31704. diff -Nur uClibc-0.9.33.2/ldso/ldso/dl-hash.c uClibc-git/ldso/ldso/dl-hash.c
  31705. --- uClibc-0.9.33.2/ldso/ldso/dl-hash.c 2012-05-15 09:20:09.000000000 +0200
  31706. +++ uClibc-git/ldso/ldso/dl-hash.c 2014-06-02 17:40:33.946711608 +0200
  31707. @@ -115,6 +115,15 @@
  31708. tpnt->dynamic_addr = (ElfW(Dyn) *)dynamic_addr;
  31709. tpnt->libtype = loaded_file;
  31710. +#ifdef __DSBT__
  31711. + if (dynamic_info[DT_DSBT_BASE_IDX] != 0)
  31712. + tpnt->dsbt_table = (void *)dynamic_info[DT_DSBT_BASE_IDX];
  31713. + if (dynamic_info[DT_DSBT_SIZE_IDX] != 0)
  31714. + tpnt->dsbt_size = dynamic_info[DT_DSBT_SIZE_IDX];
  31715. + if (dynamic_info[DT_DSBT_INDEX_IDX] != 0)
  31716. + tpnt->dsbt_index = dynamic_info[DT_DSBT_INDEX_IDX];
  31717. +#endif /* __DSBT__ */
  31718. +
  31719. #ifdef __LDSO_GNU_HASH_SUPPORT__
  31720. if (dynamic_info[DT_GNU_HASH_IDX] != 0) {
  31721. Elf32_Word *hash32 = (Elf_Symndx*)dynamic_info[DT_GNU_HASH_IDX];
  31722. @@ -355,7 +364,6 @@
  31723. #if defined(USE_TLS) && USE_TLS
  31724. if (ELF_ST_TYPE(sym->st_info) == STT_TLS) {
  31725. _dl_assert(sym_ref != NULL);
  31726. - sym_ref->tpnt = tpnt;
  31727. return (char *)sym->st_value;
  31728. }
  31729. #endif
  31730. diff -Nur uClibc-0.9.33.2/ldso/ldso/dl-tls.c uClibc-git/ldso/ldso/dl-tls.c
  31731. --- uClibc-0.9.33.2/ldso/ldso/dl-tls.c 2012-05-15 09:20:09.000000000 +0200
  31732. +++ uClibc-git/ldso/ldso/dl-tls.c 2014-06-02 17:40:33.946711608 +0200
  31733. @@ -922,8 +922,7 @@
  31734. generation. */
  31735. ++_dl_tls_generation;
  31736. - _dl_dprintf (_dl_debug_file,
  31737. - "cannot create TLS data structures: ABORT\n");
  31738. + _dl_dprintf(2, "cannot create TLS data structures: ABORT\n");
  31739. _dl_exit (127);
  31740. }
  31741. diff -Nur uClibc-0.9.33.2/ldso/ldso/i386/dl-startup.h uClibc-git/ldso/ldso/i386/dl-startup.h
  31742. --- uClibc-0.9.33.2/ldso/ldso/i386/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  31743. +++ uClibc-git/ldso/ldso/i386/dl-startup.h 2014-06-02 17:40:33.950711630 +0200
  31744. @@ -7,6 +7,7 @@
  31745. " .text\n"
  31746. " .globl _start\n"
  31747. " .type _start,@function\n"
  31748. + " .hidden _start\n"
  31749. "_start:\n"
  31750. " call _dl_start\n"
  31751. " # Save the user entry point address in %edi.\n"
  31752. diff -Nur uClibc-0.9.33.2/ldso/ldso/ldso.c uClibc-git/ldso/ldso/ldso.c
  31753. --- uClibc-0.9.33.2/ldso/ldso/ldso.c 2012-05-15 09:20:09.000000000 +0200
  31754. +++ uClibc-git/ldso/ldso/ldso.c 2014-06-02 17:40:33.950711630 +0200
  31755. @@ -64,7 +64,7 @@
  31756. bool _dl_verbose = true; /* On by default */
  31757. bool prelinked = false;
  31758. #endif
  31759. -static int _dl_secure = 1; /* Are we dealing with setuid stuff? */
  31760. +int _dl_secure = 1; /* Are we dealing with setuid stuff? */
  31761. #ifdef __SUPPORT_LD_DEBUG__
  31762. char *_dl_debug = NULL;
  31763. @@ -77,17 +77,11 @@
  31764. int _dl_debug_file = 2;
  31765. #endif
  31766. -#if defined (__LDSO_STANDALONE_SUPPORT__) && defined (__sh__)
  31767. -/* Not hidden, needed for standalone execution. */
  31768. -/*
  31769. - * FIXME: align dl_start for SH to other archs so that we can keep this symbol
  31770. - * hidden and we don't need to handle in __uClibc_main
  31771. - */
  31772. +#ifdef __DSBT__
  31773. +void **_dl_ldso_dsbt = NULL;
  31774. +#endif
  31775. -unsigned long _dl_skip_args = 0;
  31776. -#else
  31777. unsigned long attribute_hidden _dl_skip_args = 0;
  31778. -#endif
  31779. const char *_dl_progname = UCLIBC_LDSO; /* The name of the executable being run */
  31780. #include "dl-startup.c"
  31781. @@ -245,9 +239,9 @@
  31782. _dl_debug_early("mmapping more memory\n");
  31783. _dl_mmap_zero = _dl_malloc_addr = _dl_mmap((void *) 0, rounded_size,
  31784. - PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_UNINITIALIZE, -1, 0);
  31785. + PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_UNINITIALIZED, -1, 0);
  31786. if (_dl_mmap_check_error(_dl_mmap_zero)) {
  31787. - _dl_dprintf(_dl_debug_file, "%s: mmap of a spare page failed!\n", _dl_progname);
  31788. + _dl_dprintf(2, "%s: mmap of a spare page failed!\n", _dl_progname);
  31789. _dl_exit(20);
  31790. }
  31791. }
  31792. @@ -464,9 +458,14 @@
  31793. _dl_progname = argv[0];
  31794. }
  31795. +#ifdef __DSBT__
  31796. + _dl_ldso_dsbt = (void *)tpnt->dynamic_info[DT_DSBT_BASE_IDX];
  31797. + _dl_ldso_dsbt[tpnt->dynamic_info[DT_DSBT_INDEX_IDX]] = _dl_ldso_dsbt;
  31798. +#endif
  31799. +
  31800. #ifndef __LDSO_STANDALONE_SUPPORT__
  31801. if (_start == (void *) auxvt[AT_ENTRY].a_un.a_val) {
  31802. - _dl_dprintf(_dl_debug_file, "Standalone execution is not enabled\n");
  31803. + _dl_dprintf(2, "Standalone execution is not enabled\n");
  31804. _dl_exit(1);
  31805. }
  31806. #endif
  31807. @@ -504,15 +503,15 @@
  31808. const char *nextp;
  31809. _dl_secure = 1;
  31810. +#ifdef __LDSO_PRELOAD_ENV_SUPPORT__
  31811. + _dl_preload = _dl_getenv("LD_PRELOAD", envp);
  31812. +#endif
  31813. nextp = unsecure_envvars;
  31814. do {
  31815. _dl_unsetenv (nextp, envp);
  31816. /* We could use rawmemchr but this need not be fast. */
  31817. nextp = _dl_strchr(nextp, '\0') + 1;
  31818. } while (*nextp != '\0');
  31819. -#ifdef __LDSO_PRELOAD_ENV_SUPPORT__
  31820. - _dl_preload = NULL;
  31821. -#endif
  31822. #ifdef __LDSO_LD_LIBRARY_PATH__
  31823. _dl_library_path = NULL;
  31824. #endif
  31825. @@ -527,8 +526,8 @@
  31826. #ifdef __LDSO_STANDALONE_SUPPORT__
  31827. if (_start == (void *) auxvt[AT_ENTRY].a_un.a_val) {
  31828. - unsigned int *aux_dat = (unsigned int *) argv;
  31829. - int argc = aux_dat[-1];
  31830. + ElfW(Addr) *aux_dat = (ElfW(Addr) *) argv;
  31831. + int argc = (int) aux_dat[-1];
  31832. tpnt->libname = argv[0];
  31833. while (argc > 1)
  31834. @@ -580,7 +579,7 @@
  31835. */
  31836. app_tpnt = _dl_load_elf_shared_library(_dl_secure, &rpnt, _dl_progname);
  31837. if (!app_tpnt) {
  31838. - _dl_dprintf(_dl_debug_file, "can't load '%s'\n", _dl_progname);
  31839. + _dl_dprintf(2, "can't load '%s'\n", _dl_progname);
  31840. _dl_exit(16);
  31841. }
  31842. /*
  31843. @@ -675,7 +674,7 @@
  31844. }
  31845. #else
  31846. if (app_tpnt->dynamic_info[DT_TEXTREL]) {
  31847. - _dl_dprintf(_dl_debug_file, "Can't modify application's text section; use the GCC option -fPIE for position-independent executables.\n");
  31848. + _dl_dprintf(2, "Can't modify application's text section; use the GCC option -fPIE for position-independent executables.\n");
  31849. _dl_exit(1);
  31850. }
  31851. #endif
  31852. @@ -698,6 +697,11 @@
  31853. app_tpnt->mapaddr = app_mapaddr;
  31854. app_tpnt->rtld_flags = unlazy | RTLD_GLOBAL;
  31855. app_tpnt->usage_count++;
  31856. +#ifdef __DSBT__
  31857. + _dl_ldso_dsbt[0] = app_tpnt->dsbt_table;
  31858. + _dl_memcpy(app_tpnt->dsbt_table, _dl_ldso_dsbt,
  31859. + app_tpnt->dsbt_size * sizeof(tpnt->dsbt_table[0]));
  31860. +#endif
  31861. lpnt = (unsigned long *) (app_tpnt->dynamic_info[DT_PLTGOT]);
  31862. #ifdef ALLOW_ZERO_PLTGOT
  31863. if (lpnt)
  31864. @@ -733,7 +737,7 @@
  31865. _dl_debug_early("Found TLS header for application program\n");
  31866. break;
  31867. #else
  31868. - _dl_dprintf(_dl_debug_file, "Program uses unsupported TLS data!\n");
  31869. + _dl_dprintf(2, "Program uses unsupported TLS data!\n");
  31870. _dl_exit(1);
  31871. #endif
  31872. }
  31873. @@ -747,7 +751,8 @@
  31874. * case the executable is actually an ET_DYN object.
  31875. */
  31876. if (app_tpnt->l_tls_initimage != NULL) {
  31877. - unsigned int tmp = (unsigned int) app_tpnt->l_tls_initimage;
  31878. + char *tmp attribute_unused =
  31879. + (char *) app_tpnt->l_tls_initimage;
  31880. app_tpnt->l_tls_initimage =
  31881. (char *) app_tpnt->l_tls_initimage + app_tpnt->loadaddr;
  31882. _dl_debug_early("Relocated TLS initial image from %x to %x (size = %x)\n",
  31883. @@ -823,7 +828,7 @@
  31884. #ifndef __LDSO_LDD_SUPPORT__
  31885. if (trace_loaded_objects) {
  31886. - _dl_dprintf(_dl_debug_file, "Use the ldd provided by uClibc\n");
  31887. + _dl_dprintf(2, "Use the ldd provided by uClibc\n");
  31888. _dl_exit(1);
  31889. }
  31890. #endif
  31891. @@ -879,8 +884,9 @@
  31892. else
  31893. #endif
  31894. {
  31895. - _dl_dprintf(_dl_debug_file, "%s: can't load " "library '%s'\n", _dl_progname, str);
  31896. - _dl_exit(15);
  31897. + _dl_dprintf(2, "%s: library '%s' "
  31898. + "from LD_PRELOAD can't be preloaded: ignored.\n",
  31899. + _dl_progname, str);
  31900. }
  31901. } else {
  31902. tpnt1->rtld_flags = unlazy | RTLD_GLOBAL;
  31903. @@ -923,7 +929,7 @@
  31904. }
  31905. if ((fd = _dl_open(LDSO_PRELOAD, O_RDONLY, 0)) < 0) {
  31906. - _dl_dprintf(_dl_debug_file, "%s: can't open file '%s'\n",
  31907. + _dl_dprintf(2, "%s: can't open file '%s'\n",
  31908. _dl_progname, LDSO_PRELOAD);
  31909. break;
  31910. }
  31911. @@ -932,7 +938,7 @@
  31912. PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
  31913. _dl_close(fd);
  31914. if (preload == (caddr_t) -1) {
  31915. - _dl_dprintf(_dl_debug_file, "%s:%i: can't map '%s'\n",
  31916. + _dl_dprintf(2, "%s:%i: can't map '%s'\n",
  31917. _dl_progname, __LINE__, LDSO_PRELOAD);
  31918. break;
  31919. }
  31920. @@ -971,7 +977,7 @@
  31921. else
  31922. # endif
  31923. {
  31924. - _dl_dprintf(_dl_debug_file, "%s: can't load library '%s'\n", _dl_progname, cp2);
  31925. + _dl_dprintf(2, "%s: can't load library '%s'\n", _dl_progname, cp2);
  31926. _dl_exit(15);
  31927. }
  31928. } else {
  31929. @@ -1032,7 +1038,7 @@
  31930. } else
  31931. #endif
  31932. {
  31933. - _dl_dprintf(_dl_debug_file, "%s: can't load library '%s'\n", _dl_progname, lpntstr);
  31934. + _dl_dprintf(2, "%s: can't load library '%s'\n", _dl_progname, lpntstr);
  31935. _dl_exit(16);
  31936. }
  31937. }
  31938. diff -Nur uClibc-0.9.33.2/ldso/ldso/m68k/dl-startup.h uClibc-git/ldso/ldso/m68k/dl-startup.h
  31939. --- uClibc-0.9.33.2/ldso/ldso/m68k/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  31940. +++ uClibc-git/ldso/ldso/m68k/dl-startup.h 2014-06-02 17:40:33.950711630 +0200
  31941. @@ -19,6 +19,7 @@
  31942. .text\n\
  31943. .globl _start\n\
  31944. .type _start,@function\n\
  31945. + .hidden _start\n\
  31946. _start:\n\
  31947. move.l %sp, -(%sp)\n\
  31948. jbsr _dl_start\n\
  31949. diff -Nur uClibc-0.9.33.2/ldso/ldso/m68k/elfinterp.c uClibc-git/ldso/ldso/m68k/elfinterp.c
  31950. --- uClibc-0.9.33.2/ldso/ldso/m68k/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
  31951. +++ uClibc-git/ldso/ldso/m68k/elfinterp.c 2014-06-02 17:40:33.950711630 +0200
  31952. @@ -241,8 +241,11 @@
  31953. _dl_memcpy ((void *) reloc_addr,
  31954. (void *) symbol_addr,
  31955. sym_ref.sym->st_size);
  31956. - } else
  31957. + }
  31958. +#if defined (__SUPPORT_LD_DEBUG__)
  31959. + else
  31960. _dl_dprintf(_dl_debug_file, "no symbol_addr to copy !?\n");
  31961. +#endif
  31962. break;
  31963. default:
  31964. diff -Nur uClibc-0.9.33.2/ldso/ldso/Makefile.in uClibc-git/ldso/ldso/Makefile.in
  31965. --- uClibc-0.9.33.2/ldso/ldso/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  31966. +++ uClibc-git/ldso/ldso/Makefile.in 2014-06-02 17:40:33.926711497 +0200
  31967. @@ -36,7 +36,7 @@
  31968. else
  31969. LDFLAGS-$(UCLIBC_LDSO_NAME).so := $(LDFLAGS_NOSTRIP) -Wl,-z,defs
  31970. endif
  31971. -LDFLAGS-$(UCLIBC_LDSO_NAME).so += -Wl,-e,_start -Wl,-z,now -Wl,-Bsymbolic \
  31972. +LDFLAGS-$(UCLIBC_LDSO_NAME).so += -Wl,-e,$(SYMBOL_PREFIX)_start -Wl,-z,now -Wl,-Bsymbolic \
  31973. -Wl,--export-dynamic $(CFLAG_-Wl--sort-common) -Wl,--discard-locals \
  31974. $(CFLAG_-Wl--discard-all) -Wl,--no-undefined
  31975. diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/dl-debug.h uClibc-git/ldso/ldso/metag/dl-debug.h
  31976. --- uClibc-0.9.33.2/ldso/ldso/metag/dl-debug.h 1970-01-01 01:00:00.000000000 +0100
  31977. +++ uClibc-git/ldso/ldso/metag/dl-debug.h 2014-06-02 17:40:33.950711630 +0200
  31978. @@ -0,0 +1,33 @@
  31979. +/*
  31980. + * Meta ELF shared library loader support.
  31981. + *
  31982. + * Program to load an elf binary on a linux system, and run it.
  31983. + * References to symbols in sharable libraries can be resolved
  31984. + * by either an ELF sharable library or a linux style of shared
  31985. + * library.
  31986. + *
  31987. + * Copyright (C) 2013, Imagination Technologies Ltd.
  31988. + *
  31989. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  31990. + */
  31991. +
  31992. +static const char *_dl_reltypes_tab[] = {
  31993. + [0] "R_METAG_HIADDR16", "R_METAG_LOADDR16", "R_METAG_ADDR32",
  31994. + [3] "R_METAG_NONE", "R_METAG_RELBRANCH", "R_METAG_GETSETOFF",
  31995. + [6] "R_METAG_REG32OP1", "R_METAG_REG32OP2", "R_METAG_REG32OP3",
  31996. + [9] "R_METAG_REG16OP1", "R_METAG_REG16OP2", "R_METAG_REG16OP3",
  31997. + [12] "R_METAG_REG32OP4", "R_METAG_HIOG", "R_METAG_LOOG",
  31998. + [30] "R_METAG_GNU_VTINHERIT", "R_METAG_GNU_VTENTRY",
  31999. + [32] "R_METAG_HI16_GOTOFF", "R_METAG_LO16_GOTOFF",
  32000. + [34] "R_METAG_GETSET_GOTOFF", "R_METAG_GETSET_GOT",
  32001. + [36] "R_METAG_HI16_GOTPC", "R_METAG_LO16_GOTPC",
  32002. + [38] "R_METAG_HI16_PLT", "R_METAG_LO16_PLT",
  32003. + [40] "R_METAG_RELBRANCH_PLT", "R_METAG_GOTOFF",
  32004. + [42] "R_METAG_PLT", "R_METAG_COPY", "R_METAG_JMP_SLOT",
  32005. + [45] "R_METAG_RELATIVE", "R_METAG_GLOB_DAT", "R_METAG_TLS_GD",
  32006. + [48] "R_METAG_TLS_LDM", "R_METAG_TLS_LDO_HI16", "R_METAG_TLS_LDO_LO16",
  32007. + [51] "R_METAG_TLS_LDO", "R_METAG_TLS_IE", "R_METAG_TLS_IENONPIC",
  32008. + [54] "R_METAG_TLS_IENONPIC_HI16", "R_METAG_TLS_IENONPIC_LO16",
  32009. + [56] "R_METAG_TLS_TPOFF", "R_METAG_TLS_DTPMOD", "R_METAG_TLS_DTPOFF",
  32010. + [59] "R_METAG_TLS_LE", "R_METAG_TLS_LE_HI16", "R_METAG_TLS_LE_LO16"
  32011. +};
  32012. diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/dl-inlines.h uClibc-git/ldso/ldso/metag/dl-inlines.h
  32013. --- uClibc-0.9.33.2/ldso/ldso/metag/dl-inlines.h 1970-01-01 01:00:00.000000000 +0100
  32014. +++ uClibc-git/ldso/ldso/metag/dl-inlines.h 2014-06-02 17:40:33.950711630 +0200
  32015. @@ -0,0 +1,39 @@
  32016. +/*
  32017. + * Copyright (C) 2013, Imagination Technologies Ltd.
  32018. + *
  32019. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  32020. + */
  32021. +
  32022. +static __always_inline int
  32023. +__dl_is_special_segment (Elf32_Ehdr *epnt,
  32024. + Elf32_Phdr *ppnt)
  32025. +{
  32026. + if (ppnt->p_type != PT_LOAD &&
  32027. + ppnt->p_type != PT_DYNAMIC)
  32028. + return 0;
  32029. +
  32030. + if (ppnt->p_vaddr >= 0x80000000 &&
  32031. + ppnt->p_vaddr < 0x82060000)
  32032. + return 1;
  32033. +
  32034. + if (ppnt->p_vaddr >= 0xe0200000 &&
  32035. + ppnt->p_vaddr < 0xe0260000)
  32036. + return 1;
  32037. +
  32038. + return 0;
  32039. +}
  32040. +
  32041. +static __always_inline char *
  32042. +__dl_map_segment (Elf32_Ehdr *epnt,
  32043. + Elf32_Phdr *ppnt,
  32044. + int infile,
  32045. + int flags)
  32046. +{
  32047. + char *addr = (char *)ppnt->p_vaddr;
  32048. +
  32049. + if (_DL_PREAD (infile, addr, ppnt->p_filesz, ppnt->p_offset) != ppnt->p_filesz) {
  32050. + return 0;
  32051. + }
  32052. +
  32053. + return addr;
  32054. +}
  32055. diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/dl-startup.h uClibc-git/ldso/ldso/metag/dl-startup.h
  32056. --- uClibc-0.9.33.2/ldso/ldso/metag/dl-startup.h 1970-01-01 01:00:00.000000000 +0100
  32057. +++ uClibc-git/ldso/ldso/metag/dl-startup.h 2014-06-02 17:40:33.950711630 +0200
  32058. @@ -0,0 +1,68 @@
  32059. +/*
  32060. + * Copyright (C) 2013 Imagination Technologies Ltd.
  32061. + *
  32062. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  32063. + */
  32064. +
  32065. +/*
  32066. + * This code fixes the stack pointer so that the dynamic linker
  32067. + * can find argc, argv and auxvt (Auxillary Vector Table).
  32068. + */
  32069. +
  32070. +__asm__ (
  32071. +" .text\n"
  32072. +" .global __start\n"
  32073. +" .type __start,@function\n"
  32074. +" .hidden __start\n"
  32075. +"_start:\n"
  32076. +"__start:\n"
  32077. +" MSETL [A0StP++],D0Ar4,D0Ar2\n"
  32078. +" MOV D1Ar1,D0Ar2\n"
  32079. +" CALLR D1RtP,__dl_start\n"
  32080. +" GETL D0Ar2,D1Ar1,[A0StP+#-(1*8)]\n"
  32081. +" GETL D0Ar4,D1Ar3,[A0StP+#-(2*8)]\n"
  32082. +" ADDT A1LbP,CPC1,#HI(__GLOBAL_OFFSET_TABLE__)\n"
  32083. +" ADD A1LbP,A1LbP,#LO(__GLOBAL_OFFSET_TABLE__+4)\n"
  32084. +" ADDT A1LbP,A1LbP,#HI(__dl_fini@GOTOFF)\n"
  32085. +" ADD A1LbP,A1LbP,#LO(__dl_fini@GOTOFF)\n"
  32086. +" MOV D0Ar4, A1LbP\n"
  32087. +" SUB A0StP,A0StP,#(2*8)\n"
  32088. +" MOV PC,D0Re0\n"
  32089. +" .size __start,.-__start\n"
  32090. +" .previous\n"
  32091. +);
  32092. +
  32093. +
  32094. +/*
  32095. + * Get a pointer to the argv array. On many platforms this can be just
  32096. + * the address if the first argument, on other platforms we need to
  32097. + * do something a little more subtle here.
  32098. + */
  32099. +
  32100. +#define GET_ARGV(ARGVP, ARGS) ARGVP = (((unsigned long *) ARGS))
  32101. +
  32102. +
  32103. +/* Handle relocation of the symbols in the dynamic loader. */
  32104. +static inline
  32105. +void PERFORM_BOOTSTRAP_RELOC(ELF_RELOC *rpnt, unsigned long *reloc_addr,
  32106. + unsigned long symbol_addr, unsigned long load_addr, Elf32_Sym *symtab)
  32107. +{
  32108. + switch (ELF32_R_TYPE(rpnt->r_info)) {
  32109. + case R_METAG_GLOB_DAT:
  32110. + case R_METAG_JMP_SLOT:
  32111. + case R_METAG_ADDR32:
  32112. + *reloc_addr = symbol_addr;
  32113. + break;
  32114. + case R_METAG_RELATIVE:
  32115. + *reloc_addr = load_addr + rpnt->r_addend;
  32116. + break;
  32117. + case R_METAG_RELBRANCH:
  32118. + *reloc_addr = symbol_addr + rpnt->r_addend - *reloc_addr - 4;
  32119. + break;
  32120. + case R_METAG_NONE:
  32121. + break;
  32122. + default:
  32123. + _dl_exit(1);
  32124. + break;
  32125. + }
  32126. +}
  32127. diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/dl-syscalls.h uClibc-git/ldso/ldso/metag/dl-syscalls.h
  32128. --- uClibc-0.9.33.2/ldso/ldso/metag/dl-syscalls.h 1970-01-01 01:00:00.000000000 +0100
  32129. +++ uClibc-git/ldso/ldso/metag/dl-syscalls.h 2014-06-02 17:40:33.950711630 +0200
  32130. @@ -0,0 +1,6 @@
  32131. +/* stub for arch-specific syscall issues
  32132. + *
  32133. + * Copyright (C) 2013, Imagination Technologies Ltd.
  32134. + *
  32135. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  32136. + */
  32137. diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/dl-sysdep.h uClibc-git/ldso/ldso/metag/dl-sysdep.h
  32138. --- uClibc-0.9.33.2/ldso/ldso/metag/dl-sysdep.h 1970-01-01 01:00:00.000000000 +0100
  32139. +++ uClibc-git/ldso/ldso/metag/dl-sysdep.h 2014-06-02 17:40:33.950711630 +0200
  32140. @@ -0,0 +1,121 @@
  32141. +/*
  32142. + * Meta can never use Elf32_Rel relocations.
  32143. + *
  32144. + * Copyright (C) 2013, Imagination Technologies Ltd.
  32145. + *
  32146. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  32147. + */
  32148. +
  32149. +#define ELF_USES_RELOCA
  32150. +
  32151. +#include <elf.h>
  32152. +
  32153. +/* Initialization sequence for the GOT. */
  32154. +#define INIT_GOT(GOT_BASE,MODULE) \
  32155. +{ \
  32156. + GOT_BASE[1] = (unsigned long) MODULE; \
  32157. + GOT_BASE[2] = (unsigned long) _dl_linux_resolve; \
  32158. +}
  32159. +
  32160. +/* Maximum unsigned GOT [GS]ETD offset size, ie. 2^(11+2). */
  32161. +#define GOT_REG_OFFSET 0x2000
  32162. +
  32163. +/* Defined some magic numbers that this ld.so should accept. */
  32164. +#define MAGIC1 EM_METAG
  32165. +#undef MAGIC2
  32166. +#define ELF_TARGET "META"
  32167. +
  32168. +/* Need bootstrap relocations */
  32169. +#define ARCH_NEEDS_BOOTSTRAP_RELOCS
  32170. +
  32171. +struct elf_resolve;
  32172. +extern unsigned long _dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry);
  32173. +
  32174. +/* ELF_RTYPE_CLASS_PLT iff TYPE describes relocation of a PLT entry or
  32175. + TLS variable, so undefined references should not be allowed to
  32176. + define the value.
  32177. +
  32178. + ELF_RTYPE_CLASS_NOCOPY iff TYPE should not be allowed to resolve to one
  32179. + of the main executable's symbols, as for a COPY reloc. */
  32180. +#define elf_machine_type_class(type) \
  32181. + ((((type) == R_METAG_JMP_SLOT || (type) == R_METAG_TLS_DTPMOD \
  32182. + || (type) == R_METAG_TLS_DTPOFF || (type) == R_METAG_TLS_TPOFF) \
  32183. + * ELF_RTYPE_CLASS_PLT) \
  32184. + | (((type) == R_METAG_COPY) * ELF_RTYPE_CLASS_COPY))
  32185. +
  32186. +static inline Elf32_Addr
  32187. +elf_machine_dynamic(Elf32_Ehdr *header)
  32188. +{
  32189. + Elf32_Addr *got;
  32190. +
  32191. + __asm__ ("MOV %0,A1LbP" : "=r" (got));
  32192. +
  32193. + if (header->e_ident[EI_ABIVERSION] >= 1) {
  32194. + /* GOT register offset was introduced with ABI v1 */
  32195. + got = (Elf32_Addr*)((void*)got - GOT_REG_OFFSET);
  32196. + }
  32197. + return *got;
  32198. +}
  32199. +
  32200. +#define DL_BOOT_COMPUTE_GOT(GOT) \
  32201. + ((GOT) = elf_machine_dynamic(header))
  32202. +
  32203. +static inline Elf32_Addr
  32204. +elf_machine_load_address(void)
  32205. +{
  32206. + Elf32_Addr addr;
  32207. + __asm__ ("MOV D1Ar1,A1LbP\n"
  32208. + "ADDT D1Ar1,D1Ar1,#HI(__dl_start@GOTOFF)\n"
  32209. + "ADD D1Ar1,D1Ar1,#LO(__dl_start@GOTOFF)\n"
  32210. + "ADDT D0Ar2,D0Ar2,#HI(__dl_start_addr@GOTOFF)\n"
  32211. + "ADD D0Ar2,D0Ar2,#LO(__dl_start_addr@GOTOFF)\n"
  32212. + "GETD D0Ar2,[D0Ar2]\n"
  32213. + "SUB %0,D1Ar1,D0Ar2\n"
  32214. + ".section .data\n"
  32215. + "__dl_start_addr: .long __dl_start\n"
  32216. + ".previous\n"
  32217. + : "=d" (addr) : : "D1Ar1", "D0Ar2");
  32218. + return addr;
  32219. +}
  32220. +
  32221. +static inline void
  32222. +elf_machine_relative(Elf32_Addr load_off, const Elf32_Addr rel_addr,
  32223. + Elf32_Word relative_count)
  32224. +{
  32225. + Elf32_Rela *rpnt = (void *)rel_addr;
  32226. +
  32227. + --rpnt;
  32228. + do {
  32229. + Elf32_Addr *const reloc_addr =
  32230. + (void *)(load_off + (++rpnt)->r_offset);
  32231. +
  32232. + *reloc_addr = load_off + rpnt->r_addend;
  32233. + } while (--relative_count);
  32234. +}
  32235. +
  32236. +#define DL_MALLOC_ALIGN 8
  32237. +
  32238. +#define HAVE_DL_INLINES_H
  32239. +
  32240. +#define DL_IS_SPECIAL_SEGMENT(EPNT, PPNT) \
  32241. + __dl_is_special_segment(EPNT, PPNT)
  32242. +#define DL_MAP_SEGMENT(EPNT, PPNT, INFILE, FLAGS) \
  32243. + __dl_map_segment (EPNT, PPNT, INFILE, FLAGS)
  32244. +
  32245. +#define DL_CHECK_LIB_TYPE(epnt, piclib, _dl_progname, libname) \
  32246. +do \
  32247. +{ \
  32248. + ElfW(Phdr) *ppnt_; \
  32249. + char *header_ = (char *)epnt; \
  32250. + ppnt_ = (ElfW(Phdr) *)(intptr_t) & header_[epnt->e_phoff]; \
  32251. + if (ppnt_->p_vaddr >= 0x80000000 && \
  32252. + ppnt_->p_vaddr < 0x82060000) \
  32253. + (piclib) = 2; \
  32254. + if (ppnt_->p_vaddr >= 0xe0200000 && \
  32255. + ppnt_->p_vaddr < 0xe0260000) \
  32256. + (piclib) = 2; \
  32257. +} \
  32258. +while (0)
  32259. +
  32260. +#define _DL_PREAD(FD, BUF, SIZE, OFFSET) \
  32261. + (_dl_pread((FD), (BUF), (SIZE), (OFFSET)))
  32262. diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/elfinterp.c uClibc-git/ldso/ldso/metag/elfinterp.c
  32263. --- uClibc-0.9.33.2/ldso/ldso/metag/elfinterp.c 1970-01-01 01:00:00.000000000 +0100
  32264. +++ uClibc-git/ldso/ldso/metag/elfinterp.c 2014-06-02 17:40:33.954711653 +0200
  32265. @@ -0,0 +1,318 @@
  32266. +/*
  32267. + * Meta ELF shared library loader support.
  32268. + *
  32269. + * Program to load an elf binary on a linux system, and run it.
  32270. + * References to symbols in sharable libraries can be resolved
  32271. + * by either an ELF sharable library or a linux style of shared
  32272. + * library.
  32273. + *
  32274. + * Copyright (C) 2013, Imagination Technologies Ltd.
  32275. + *
  32276. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  32277. + */
  32278. +
  32279. +#include "ldso.h"
  32280. +
  32281. +/* Defined in resolve.S. */
  32282. +extern int _dl_linux_resolve(void);
  32283. +
  32284. +static inline unsigned long __get_unaligned_reloc(unsigned long *addr)
  32285. +{
  32286. + char *rel_addr = (char *)addr;
  32287. + unsigned long val;
  32288. +
  32289. + val = *rel_addr++ & 0xff;
  32290. + val |= (*rel_addr++ << 8) & 0x0000ff00;
  32291. + val |= (*rel_addr++ << 16) & 0x00ff0000;
  32292. + val |= (*rel_addr++ << 24) & 0xff000000;
  32293. +
  32294. + return val;
  32295. +}
  32296. +
  32297. +static inline void __put_unaligned_reloc(unsigned long *addr,
  32298. + unsigned long val)
  32299. +{
  32300. + char *rel_addr = (char *)addr;
  32301. +
  32302. + *rel_addr++ = (val & 0x000000ff);
  32303. + *rel_addr++ = ((val & 0x0000ff00) >> 8);
  32304. + *rel_addr++ = ((val & 0x00ff0000) >> 16);
  32305. + *rel_addr++ = ((val & 0xff000000) >> 24);
  32306. +}
  32307. +
  32308. +unsigned long
  32309. +_dl_linux_resolver(struct elf_resolve *tpnt, int reloc_entry)
  32310. +{
  32311. + int symtab_index;
  32312. + char *strtab;
  32313. + char *symname;
  32314. + char *new_addr;
  32315. + char *rel_addr;
  32316. + char **got_addr;
  32317. + ElfW(Sym) *symtab;
  32318. + ELF_RELOC *this_reloc;
  32319. + unsigned long instr_addr;
  32320. +
  32321. + rel_addr = (char *)tpnt->dynamic_info[DT_JMPREL];
  32322. +
  32323. + this_reloc = (ELF_RELOC *)(intptr_t)(rel_addr + reloc_entry);
  32324. + symtab_index = ELF_R_SYM(this_reloc->r_info);
  32325. +
  32326. + symtab = (ElfW(Sym) *)(intptr_t)tpnt->dynamic_info[DT_SYMTAB];
  32327. + strtab = (char *)tpnt->dynamic_info[DT_STRTAB];
  32328. + symname = strtab + symtab[symtab_index].st_name;
  32329. +
  32330. + /* Address of the jump instruction to fix up. */
  32331. + instr_addr = ((unsigned long)this_reloc->r_offset +
  32332. + (unsigned long)tpnt->loadaddr);
  32333. + got_addr = (char **)instr_addr;
  32334. +
  32335. + /* Get the address of the GOT entry. */
  32336. + new_addr = _dl_find_hash(symname, &_dl_loaded_modules->symbol_scope, tpnt,
  32337. + ELF_RTYPE_CLASS_PLT, NULL);
  32338. + if (unlikely(!new_addr)) {
  32339. + _dl_dprintf(2, "%s: Can't resolve symbol '%s'\n",
  32340. + _dl_progname, symname);
  32341. + _dl_exit(1);
  32342. + }
  32343. +
  32344. +#if defined (__SUPPORT_LD_DEBUG__)
  32345. + if (_dl_debug_bindings) {
  32346. + _dl_dprintf(_dl_debug_file, "\nresolve function: %s", symname);
  32347. + if (_dl_debug_detail)
  32348. + _dl_dprintf(_dl_debug_file,
  32349. + "\n\tpatched: %x ==> %x @ %x\n",
  32350. + *got_addr, new_addr, got_addr);
  32351. + }
  32352. + if (!_dl_debug_nofixups) {
  32353. + *got_addr = new_addr;
  32354. + }
  32355. +#else
  32356. + *got_addr = new_addr;
  32357. +#endif
  32358. +
  32359. + return (unsigned long)new_addr;
  32360. +}
  32361. +
  32362. +static int
  32363. +_dl_parse(struct elf_resolve *tpnt, struct r_scope_elem *scope,
  32364. + unsigned long rel_addr, unsigned long rel_size,
  32365. + int (*reloc_fnc)(struct elf_resolve *tpnt, struct r_scope_elem *scope,
  32366. + ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab))
  32367. +{
  32368. + int symtab_index;
  32369. + unsigned int i;
  32370. + char *strtab;
  32371. + ElfW(Sym) *symtab;
  32372. + ELF_RELOC *rpnt;
  32373. +
  32374. + /* Parse the relocation information. */
  32375. + rpnt = (ELF_RELOC *)(intptr_t)rel_addr;
  32376. + rel_size /= sizeof(ELF_RELOC);
  32377. +
  32378. + symtab = (ElfW(Sym) *)(intptr_t)tpnt->dynamic_info[DT_SYMTAB];
  32379. + strtab = (char *)tpnt->dynamic_info[DT_STRTAB];
  32380. +
  32381. + for (i = 0; i < rel_size; i++, rpnt++) {
  32382. + int res;
  32383. +
  32384. + symtab_index = ELF_R_SYM(rpnt->r_info);
  32385. +
  32386. + debug_sym(symtab, strtab, symtab_index);
  32387. + debug_reloc(symtab, strtab, rpnt);
  32388. +
  32389. + /* Pass over to actual relocation function. */
  32390. + res = reloc_fnc(tpnt, scope, rpnt, symtab, strtab);
  32391. +
  32392. + if (res == 0)
  32393. + continue;
  32394. +
  32395. + _dl_dprintf(2, "\n%s: ", _dl_progname);
  32396. +
  32397. + if (symtab_index)
  32398. + _dl_dprintf(2, "symbol '%s': ",
  32399. + strtab + symtab[symtab_index].st_name);
  32400. +
  32401. + if (unlikely(res < 0)) {
  32402. + int reloc_type = ELF_R_TYPE(rpnt->r_info);
  32403. +
  32404. +#if defined (__SUPPORT_LD_DEBUG__)
  32405. + _dl_dprintf(2, "can't handle reloc type %s\n",
  32406. + _dl_reltypes(reloc_type));
  32407. +#else
  32408. + _dl_dprintf(2, "can't handle reloc type %x\n",
  32409. + reloc_type);
  32410. +#endif
  32411. + _dl_exit(-res);
  32412. + } else if (unlikely(res > 0)) {
  32413. + _dl_dprintf(2, "can't resolve symbol\n");
  32414. + return res;
  32415. + }
  32416. + }
  32417. +
  32418. + return 0;
  32419. +}
  32420. +
  32421. +static int
  32422. +_dl_do_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
  32423. + ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab)
  32424. +{
  32425. + int reloc_type;
  32426. + int symtab_index;
  32427. + char *symname = NULL;
  32428. + unsigned long *reloc_addr;
  32429. + unsigned long symbol_addr;
  32430. +#if defined (__SUPPORT_LD_DEBUG__)
  32431. + unsigned long old_val = 0;
  32432. +#endif
  32433. + struct elf_resolve *tls_tpnt = NULL;
  32434. + struct symbol_ref sym_ref;
  32435. +
  32436. + reloc_addr = (unsigned long *)(tpnt->loadaddr + rpnt->r_offset);
  32437. + reloc_type = ELF_R_TYPE(rpnt->r_info);
  32438. + symtab_index = ELF_R_SYM(rpnt->r_info);
  32439. + symbol_addr = 0;
  32440. + sym_ref.sym = &symtab[symtab_index];
  32441. + sym_ref.tpnt = NULL;
  32442. +
  32443. + if (symtab_index) {
  32444. + symname = strtab + symtab[symtab_index].st_name;
  32445. + symbol_addr = (unsigned long)_dl_find_hash(symname, scope, tpnt,
  32446. + elf_machine_type_class(reloc_type), &sym_ref);
  32447. +
  32448. + if (!symbol_addr
  32449. + && ELF_ST_TYPE(symtab[symtab_index].st_info) != STT_TLS
  32450. + && ELF_ST_BIND(symtab[symtab_index].st_info) != STB_WEAK) {
  32451. + _dl_dprintf(2, "%s: can't resolve symbol '%s'\n",
  32452. + _dl_progname, symname);
  32453. + return 1;
  32454. + };
  32455. + if (_dl_trace_prelink) {
  32456. + _dl_debug_lookup(symname, tpnt, &symtab[symtab_index],
  32457. + &sym_ref, elf_machine_type_class(reloc_type));
  32458. + }
  32459. + tls_tpnt = sym_ref.tpnt;
  32460. + }
  32461. +
  32462. +#if defined (__SUPPORT_LD_DEBUG__)
  32463. + if (reloc_type != R_METAG_NONE)
  32464. + old_val = __get_unaligned_reloc(reloc_addr);
  32465. +#endif
  32466. +
  32467. +#if defined USE_TLS && USE_TLS
  32468. + /* In case of a TLS reloc, tls_tpnt NULL means we have an 'anonymous'
  32469. + symbol. This is the case for a static tls variable, so the lookup
  32470. + module is just that one is referencing the tls variable. */
  32471. + if (!tls_tpnt)
  32472. + tls_tpnt = tpnt;
  32473. +#endif
  32474. + switch (reloc_type) {
  32475. + case R_METAG_NONE:
  32476. + break;
  32477. + case R_METAG_GLOB_DAT:
  32478. + case R_METAG_JMP_SLOT:
  32479. + case R_METAG_ADDR32:
  32480. + __put_unaligned_reloc(reloc_addr,
  32481. + symbol_addr + rpnt->r_addend);
  32482. + break;
  32483. + case R_METAG_COPY:
  32484. +#if defined (__SUPPORT_LD_DEBUG__)
  32485. + if (_dl_debug_move)
  32486. + _dl_dprintf(_dl_debug_file,
  32487. + "\t%s move %d bytes from %x to %x\n",
  32488. + symname, symtab[symtab_index].st_size,
  32489. + symbol_addr + rpnt->r_addend,
  32490. + reloc_addr);
  32491. +#endif
  32492. +
  32493. + _dl_memcpy((char *)reloc_addr,
  32494. + (char *)symbol_addr + rpnt->r_addend,
  32495. + symtab[symtab_index].st_size);
  32496. + break;
  32497. + case R_METAG_RELATIVE:
  32498. + __put_unaligned_reloc(reloc_addr,
  32499. + (unsigned long)tpnt->loadaddr +
  32500. + rpnt->r_addend);
  32501. + break;
  32502. +#if defined USE_TLS && USE_TLS
  32503. + case R_METAG_TLS_DTPMOD:
  32504. + *reloc_addr = tls_tpnt->l_tls_modid;
  32505. + break;
  32506. + case R_METAG_TLS_DTPOFF:
  32507. + *reloc_addr = symbol_addr;
  32508. + break;
  32509. + case R_METAG_TLS_TPOFF:
  32510. + CHECK_STATIC_TLS ((struct link_map *) tls_tpnt);
  32511. + *reloc_addr = tls_tpnt->l_tls_offset + symbol_addr + rpnt->r_addend;
  32512. + break;
  32513. +#endif
  32514. + default:
  32515. + return -1; /* Calls _dl_exit(1). */
  32516. + }
  32517. +
  32518. +#if defined (__SUPPORT_LD_DEBUG__)
  32519. + if (_dl_debug_reloc && _dl_debug_detail && reloc_type != R_METAG_NONE) {
  32520. + unsigned long new_val = __get_unaligned_reloc(reloc_addr);
  32521. + _dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
  32522. + old_val, new_val, reloc_addr);
  32523. + }
  32524. +#endif
  32525. +
  32526. + return 0;
  32527. +}
  32528. +
  32529. +static int
  32530. +_dl_do_lazy_reloc(struct elf_resolve *tpnt, struct r_scope_elem *scope,
  32531. + ELF_RELOC *rpnt, ElfW(Sym) *symtab, char *strtab)
  32532. +{
  32533. + int reloc_type;
  32534. + unsigned long *reloc_addr;
  32535. +#if defined (__SUPPORT_LD_DEBUG__)
  32536. + unsigned long old_val;
  32537. +#endif
  32538. +
  32539. + reloc_addr = (unsigned long *)(tpnt->loadaddr + rpnt->r_offset);
  32540. + reloc_type = ELF_R_TYPE(rpnt->r_info);
  32541. +
  32542. +#if defined (__SUPPORT_LD_DEBUG__)
  32543. + old_val = *reloc_addr;
  32544. +#endif
  32545. +
  32546. + switch (reloc_type) {
  32547. + case R_METAG_NONE:
  32548. + break;
  32549. + case R_METAG_JMP_SLOT:
  32550. + *reloc_addr += (unsigned long)tpnt->loadaddr;
  32551. + break;
  32552. + default:
  32553. + return -1; /* Calls _dl_exit(1). */
  32554. + }
  32555. +
  32556. +#if defined (__SUPPORT_LD_DEBUG__)
  32557. + if (_dl_debug_reloc && _dl_debug_detail)
  32558. + _dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n",
  32559. + old_val, *reloc_addr, reloc_addr);
  32560. +#endif
  32561. +
  32562. + return 0;
  32563. +}
  32564. +
  32565. +/* External interface to the generic part of the dynamic linker. */
  32566. +
  32567. +void
  32568. +_dl_parse_lazy_relocation_information(struct dyn_elf *rpnt,
  32569. + unsigned long rel_addr,
  32570. + unsigned long rel_size)
  32571. +{
  32572. + _dl_parse(rpnt->dyn, NULL, rel_addr, rel_size, _dl_do_lazy_reloc);
  32573. +}
  32574. +
  32575. +int
  32576. +_dl_parse_relocation_information(struct dyn_elf *rpnt,
  32577. + struct r_scope_elem *scope,
  32578. + unsigned long rel_addr,
  32579. + unsigned long rel_size)
  32580. +{
  32581. + return _dl_parse(rpnt->dyn, scope, rel_addr,
  32582. + rel_size, _dl_do_reloc);
  32583. +}
  32584. diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/metag_load_tp.S uClibc-git/ldso/ldso/metag/metag_load_tp.S
  32585. --- uClibc-0.9.33.2/ldso/ldso/metag/metag_load_tp.S 1970-01-01 01:00:00.000000000 +0100
  32586. +++ uClibc-git/ldso/ldso/metag/metag_load_tp.S 2014-06-02 17:40:33.954711653 +0200
  32587. @@ -0,0 +1,20 @@
  32588. +! Copyright (C) 2013 Imagination Technologies Ltd.
  32589. +
  32590. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  32591. +
  32592. +#include <features.h>
  32593. +
  32594. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  32595. +
  32596. +#include <sysdep.h>
  32597. +
  32598. + .text
  32599. + .global ___metag_load_tp
  32600. + .type ___metag_load_tp,@function
  32601. +
  32602. +___metag_load_tp:
  32603. + MOVT D1Ar1,#HI(0x6ffff000)
  32604. + JUMP D1Ar1,#LO(0x6ffff000)
  32605. + .size ___metag_load_tp,.-___metag_load_tp
  32606. +
  32607. +#endif /* __UCLIBC_HAS_THREADS_NATIVE__ */
  32608. diff -Nur uClibc-0.9.33.2/ldso/ldso/metag/resolve.S uClibc-git/ldso/ldso/metag/resolve.S
  32609. --- uClibc-0.9.33.2/ldso/ldso/metag/resolve.S 1970-01-01 01:00:00.000000000 +0100
  32610. +++ uClibc-git/ldso/ldso/metag/resolve.S 2014-06-02 17:40:33.954711653 +0200
  32611. @@ -0,0 +1,51 @@
  32612. +/*
  32613. + * Meta dynamic resolver
  32614. + *
  32615. + * Copyright (C) 2013 Imagination Technologies Ltd.
  32616. + *
  32617. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  32618. + *
  32619. + * This function is _not_ called directly. It is jumped to (so no return
  32620. + * address is on the stack) when attempting to use a symbol that has not yet
  32621. + * been resolved. The first time a jump symbol (such as a function call inside
  32622. + * a shared library) is used (before it gets resolved) it will jump here to
  32623. + * _dl_linux_resolve. When we get called the stack looks like this:
  32624. + * reloc_entry
  32625. + * tpnt
  32626. + *
  32627. + * This function saves all the registers then makes the function call
  32628. + * _dl_linux_resolver(tpnt, reloc_entry). _dl_linux_resolver() figures out
  32629. + * where the jump symbol is _really_ supposed to have jumped to and returns
  32630. + * that to us. Once we have that, we overwrite tpnt with this fixed up
  32631. + * address. We then clean up after ourselves, put all the registers back how we
  32632. + * found them, then we jump to the fixed up address, which is where the jump
  32633. + * symbol that got us here really wanted to jump to in the first place.
  32634. + * -Erik Andersen
  32635. + */
  32636. +
  32637. + .text
  32638. + .global __dl_linux_resolve
  32639. + .type __dl_linux_resolve,@function
  32640. +
  32641. +__dl_linux_resolve:
  32642. + !! Save registers on the stack. Do we need to save any more here?
  32643. + MSETL [A0StP++],D0Ar6,D0Ar4,D0Ar2,D0FrT
  32644. + SETL [A0StP++],A0FrP,A1LbP
  32645. + !! Get the args for _dl_linux_resolver off the stack
  32646. + GETL D0Re0,D1Re0,[A0StP+#-(6*8)]
  32647. + GETD D1Ar1,[D0Re0]
  32648. + MOV D0Ar2,D1Re0
  32649. + !! Multiply plt_index by sizeof(Elf32_Rela)
  32650. + MULW D0Ar2,D0Ar2,#12
  32651. + !! Call the resolver
  32652. + CALLR D1RtP,__dl_linux_resolver
  32653. + !! Restore the registers from the stack
  32654. + SUB A0.2,A0StP,#(1*8)
  32655. + GETL A0FrP,A1LbP,[A0.2]
  32656. + SUB A0.2,A0.2,#(4*8)
  32657. + MGETL D0Ar6,D0Ar4,D0Ar2,D0FrT,[A0.2]
  32658. + !! Also take into account args pushed by PLT
  32659. + SUB A0StP,A0StP,#(6*8)
  32660. + !! Jump to the resolved address
  32661. + MOV PC,D0Re0
  32662. + .size __dl_linux_resolve, .-__dl_linux_resolve
  32663. diff -Nur uClibc-0.9.33.2/ldso/ldso/microblaze/dl-startup.h uClibc-git/ldso/ldso/microblaze/dl-startup.h
  32664. --- uClibc-0.9.33.2/ldso/ldso/microblaze/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  32665. +++ uClibc-git/ldso/ldso/microblaze/dl-startup.h 2014-06-02 17:40:33.954711653 +0200
  32666. @@ -12,14 +12,14 @@
  32667. Lesser General Public License for more details.
  32668. You should have received a copy of the GNU Lesser General Public
  32669. - License along with the GNU C Library; if not, write to the Free
  32670. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  32671. - 02111-1307 USA. */
  32672. + License along with the GNU C Library; if not, see
  32673. + <http://www.gnu.org/licenses/>. */
  32674. __asm__ ("\
  32675. .text\n\
  32676. .globl _start\n\
  32677. .type _start,@function\n\
  32678. + .hidden _start\n\
  32679. _start:\n\
  32680. addk r5,r0,r1\n\
  32681. addk r3,r0,r0\n\
  32682. diff -Nur uClibc-0.9.33.2/ldso/ldso/microblaze/dl-sysdep.h uClibc-git/ldso/ldso/microblaze/dl-sysdep.h
  32683. --- uClibc-0.9.33.2/ldso/ldso/microblaze/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
  32684. +++ uClibc-git/ldso/ldso/microblaze/dl-sysdep.h 2014-06-02 17:40:33.954711653 +0200
  32685. @@ -12,9 +12,8 @@
  32686. Lesser General Public License for more details.
  32687. You should have received a copy of the GNU Lesser General Public
  32688. - License along with the GNU C Library; if not, write to the Free
  32689. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  32690. - 02111-1307 USA. */
  32691. + License along with the GNU C Library; if not, see
  32692. + <http://www.gnu.org/licenses/>. */
  32693. /* Use reloca */
  32694. #define ELF_USES_RELOCA
  32695. diff -Nur uClibc-0.9.33.2/ldso/ldso/microblaze/resolve.S uClibc-git/ldso/ldso/microblaze/resolve.S
  32696. --- uClibc-0.9.33.2/ldso/ldso/microblaze/resolve.S 2012-05-15 09:20:09.000000000 +0200
  32697. +++ uClibc-git/ldso/ldso/microblaze/resolve.S 2014-06-02 17:40:33.954711653 +0200
  32698. @@ -18,9 +18,8 @@
  32699. Lesser General Public License for more details.
  32700. You should have received a copy of the GNU Lesser General Public
  32701. - License along with the GNU C Library; if not, write to the Free
  32702. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  32703. - 02111-1307 USA. */
  32704. + License along with the GNU C Library; if not, see
  32705. + <http://www.gnu.org/licenses/>. */
  32706. .text
  32707. .align 4
  32708. diff -Nur uClibc-0.9.33.2/ldso/ldso/mips/dl-debug.h uClibc-git/ldso/ldso/mips/dl-debug.h
  32709. --- uClibc-0.9.33.2/ldso/ldso/mips/dl-debug.h 2012-05-15 09:20:09.000000000 +0200
  32710. +++ uClibc-git/ldso/ldso/mips/dl-debug.h 2014-06-02 17:40:33.954711653 +0200
  32711. @@ -40,6 +40,15 @@
  32712. [25] "R_MIPS_INSERT_A", "R_MIPS_INSERT_B", "R_MIPS_DELETE",
  32713. [28] "R_MIPS_HIGHER", "R_MIPS_HIGHEST", "R_MIPS_CALL_HI16",
  32714. [31] "R_MIPS_CALL_LO16", "R_MIPS_SCN_DISP", "R_MIPS_REL16",
  32715. - [34] "R_MIPS_ADD_IMMEDIATE", "R_MIPS_PJUMP", "R_MIPS_RELGOT",
  32716. - [37] "R_MIPS_JALR",
  32717. + [34] "R_MIPS_ADD_IMMEDIATE", "R_MIPS_PJUMP", "R_MIPS_RELGOT",
  32718. + [37] "R_MIPS_JALR", "R_MIPS_TLS_DTPMOD32", "R_MIPS_TLS_DTPREL32",
  32719. + [40] "R_MIPS_TLS_DTPMOD64", "R_MIPS_TLS_DTPREL64", "R_MIPS_TLS_GD",
  32720. + [43] "R_MIPS_TLS_LDM", "R_MIPS_TLS_DTPREL_HI16",
  32721. + [45] "R_MIPS_TLS_DTPREL_LO16",
  32722. + [46] "R_MIPS_TLS_GOTTPREL", "R_MIPS_TLS_TPREL32", "R_MIPS_TLS_TPREL64",
  32723. + [49] "R_MIPS_TLS_TPREL_HI16",
  32724. + [50] "R_MIPS_TLS_TPREL_LO16",
  32725. + [51] "R_MIPS_GLOB_DAT",
  32726. + [126] "R_MIPS_COPY", "R_MIPS_JUMP_SLOT",
  32727. +
  32728. };
  32729. diff -Nur uClibc-0.9.33.2/ldso/ldso/mips/dl-startup.h uClibc-git/ldso/ldso/mips/dl-startup.h
  32730. --- uClibc-0.9.33.2/ldso/ldso/mips/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  32731. +++ uClibc-git/ldso/ldso/mips/dl-startup.h 2014-06-02 17:40:33.954711653 +0200
  32732. @@ -12,6 +12,7 @@
  32733. " .globl _start\n"
  32734. " .ent _start\n"
  32735. " .type _start,@function\n"
  32736. + " .hidden _start\n"
  32737. "_start:\n"
  32738. " .set noreorder\n"
  32739. " move $25, $31\n"
  32740. diff -Nur uClibc-0.9.33.2/ldso/ldso/mips/elfinterp.c uClibc-git/ldso/ldso/mips/elfinterp.c
  32741. --- uClibc-0.9.33.2/ldso/ldso/mips/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
  32742. +++ uClibc-git/ldso/ldso/mips/elfinterp.c 2014-06-02 17:40:33.954711653 +0200
  32743. @@ -240,31 +240,19 @@
  32744. case R_MIPS_TLS_DTPMOD32:
  32745. if (tls_tpnt)
  32746. *(ElfW(Word) *)reloc_addr = tls_tpnt->l_tls_modid;
  32747. -#ifdef __SUPPORT_LD_DEBUG__
  32748. - _dl_dprintf(2, "TLS_DTPMOD : %s, %d, %d\n",
  32749. - symname, old_val, *((unsigned int *)reloc_addr));
  32750. -#endif
  32751. break;
  32752. case R_MIPS_TLS_DTPREL64:
  32753. case R_MIPS_TLS_DTPREL32:
  32754. *(ElfW(Word) *)reloc_addr +=
  32755. TLS_DTPREL_VALUE (symbol_addr);
  32756. -#ifdef __SUPPORT_LD_DEBUG__
  32757. - _dl_dprintf(2, "TLS_DTPREL : %s, %x, %x\n",
  32758. - symname, old_val, *((unsigned int *)reloc_addr));
  32759. -#endif
  32760. break;
  32761. case R_MIPS_TLS_TPREL32:
  32762. case R_MIPS_TLS_TPREL64:
  32763. CHECK_STATIC_TLS((struct link_map *)tls_tpnt);
  32764. - *(ElfW(Word) *)reloc_addr +=
  32765. + *(ElfW(Addr) *)reloc_addr +=
  32766. TLS_TPREL_VALUE (tls_tpnt, symbol_addr);
  32767. -#ifdef __SUPPORT_LD_DEBUG__
  32768. - _dl_dprintf(2, "TLS_TPREL : %s, %x, %x\n",
  32769. - symname, old_val, *((unsigned int *)reloc_addr));
  32770. -#endif
  32771. break;
  32772. }
  32773. @@ -325,11 +313,11 @@
  32774. _dl_exit(1);
  32775. }
  32776. }
  32777. - }
  32778. #if defined (__SUPPORT_LD_DEBUG__)
  32779. - if (_dl_debug_reloc && _dl_debug_detail && reloc_addr)
  32780. - _dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, *reloc_addr, reloc_addr);
  32781. + if (_dl_debug_reloc && _dl_debug_detail && reloc_addr)
  32782. + _dl_dprintf(_dl_debug_file, "\tpatched: %x ==> %x @ %x\n", old_val, *reloc_addr, reloc_addr);
  32783. #endif
  32784. + }
  32785. return 0;
  32786. }
  32787. diff -Nur uClibc-0.9.33.2/ldso/ldso/mips/README uClibc-git/ldso/ldso/mips/README
  32788. --- uClibc-0.9.33.2/ldso/ldso/mips/README 2012-05-15 09:20:09.000000000 +0200
  32789. +++ uClibc-git/ldso/ldso/mips/README 2014-06-02 17:40:33.954711653 +0200
  32790. @@ -13,7 +13,7 @@
  32791. elfinterp.c
  32792. -----------
  32793. Contains the runtime resolver code taken from the function
  32794. -'__dl_runtime_resolve' in 'sysdeps/mips/dl-machine.h'. Also
  32795. +'__dl_runtime_resolve' in 'sysdeps/mips/dl-trampoline.h'. Also
  32796. contains the function to perform relocations for objects
  32797. other than the linker itself. The code was taken from the
  32798. function 'elf_machine_rel' in 'sysdeps/mips/dl-machine.h'.
  32799. @@ -47,6 +47,6 @@
  32800. ---------
  32801. Contains the low-level assembly code for the dynamic runtime
  32802. resolver. The code is taken from the assembly code function
  32803. -'_dl_runtime_resolve' in the file 'sysdeps/mips/dl-machine.h'.
  32804. +'_dl_runtime_resolve' in the file 'sysdeps/mips/dl-trampoline.h'.
  32805. The code looks a bit different since we only need to pass the
  32806. symbol index and the old GP register.
  32807. diff -Nur uClibc-0.9.33.2/ldso/ldso/powerpc/dl-startup.h uClibc-git/ldso/ldso/powerpc/dl-startup.h
  32808. --- uClibc-0.9.33.2/ldso/ldso/powerpc/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  32809. +++ uClibc-git/ldso/ldso/powerpc/dl-startup.h 2014-06-02 17:40:33.954711653 +0200
  32810. @@ -8,6 +8,7 @@
  32811. " .text\n"
  32812. " .globl _start\n"
  32813. " .type _start,@function\n"
  32814. + " .hidden _start\n"
  32815. "_start:\n"
  32816. " mr 3,1\n" /* Pass SP to _dl_start in r3 */
  32817. " li 0,0\n"
  32818. diff -Nur uClibc-0.9.33.2/ldso/ldso/powerpc/elfinterp.c uClibc-git/ldso/ldso/powerpc/elfinterp.c
  32819. --- uClibc-0.9.33.2/ldso/ldso/powerpc/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
  32820. +++ uClibc-git/ldso/ldso/powerpc/elfinterp.c 2014-06-02 17:40:33.954711653 +0200
  32821. @@ -234,12 +234,12 @@
  32822. case R_PPC_ADDR32:
  32823. case R_PPC_GLOB_DAT:
  32824. *reloc_addr = finaladdr;
  32825. - goto out_nocode; /* No code code modified */
  32826. + goto out_nocode; /* No code modified */
  32827. case R_PPC_JMP_SLOT:
  32828. {
  32829. if (tpnt->dynamic_info[DT_PPC_GOT_IDX] != 0) {
  32830. *reloc_addr = finaladdr;
  32831. - goto out_nocode; /* No code code modified */
  32832. + goto out_nocode; /* No code modified */
  32833. } else {
  32834. Elf32_Sword delta = finaladdr - (Elf32_Word)reloc_addr;
  32835. if (delta<<6>>6 == delta) {
  32836. @@ -275,7 +275,7 @@
  32837. symbol_addr, reloc_addr);
  32838. #endif
  32839. _dl_memcpy((char *) reloc_addr, (char *) finaladdr, sym_ref.sym->st_size);
  32840. - goto out_nocode; /* No code code modified */
  32841. + goto out_nocode; /* No code modified */
  32842. case R_PPC_ADDR16_HA:
  32843. finaladdr += 0x8000; /* fall through. */
  32844. case R_PPC_ADDR16_HI:
  32845. @@ -314,7 +314,7 @@
  32846. return -1;
  32847. #endif
  32848. case R_PPC_NONE:
  32849. - goto out_nocode; /* No code code modified */
  32850. + goto out_nocode; /* No code modified */
  32851. default:
  32852. _dl_dprintf(2, "%s: can't handle reloc type ", _dl_progname);
  32853. #if defined (__SUPPORT_LD_DEBUG__)
  32854. diff -Nur uClibc-0.9.33.2/ldso/ldso/sh/dl-startup.h uClibc-git/ldso/ldso/sh/dl-startup.h
  32855. --- uClibc-0.9.33.2/ldso/ldso/sh/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  32856. +++ uClibc-git/ldso/ldso/sh/dl-startup.h 2014-06-02 17:40:33.954711653 +0200
  32857. @@ -6,6 +6,7 @@
  32858. " .text\n"
  32859. " .globl _start\n"
  32860. " .type _start,@function\n"
  32861. + " .hidden _start\n"
  32862. "_start:\n"
  32863. " mov r15, r4\n"
  32864. " mov.l .L_dl_start, r0\n"
  32865. @@ -16,12 +17,22 @@
  32866. " mov.l .L_got, r12 ! Load the GOT on r12\n"
  32867. " mova .L_got, r0\n"
  32868. " add r0, r12\n"
  32869. + " mov.l .L_dl_skip_args,r0\n"
  32870. + " mov.l @(r0,r12),r0\n"
  32871. + " mov.l @r0,r0\n"
  32872. + " mov.l @r15,r5 ! Get the original argument count\n"
  32873. + " sub r0,r5 ! Subtract _dl_skip_args from it\n"
  32874. + " shll2 r0\n"
  32875. + " add r0,r15 ! Adjust the stack pointer to skip _dl_skip_args words\n"
  32876. + " mov.l r5,@r15 ! Store back the modified argument count\n"
  32877. " mov.l .L_dl_fini, r0\n"
  32878. " mov.l @(r0,r12), r4 ! Pass the finalizer in r4\n"
  32879. " jmp @r8\n"
  32880. " nop\n"
  32881. ".L_dl_start:\n"
  32882. " .long _dl_start-.jmp_loc\n"
  32883. + ".L_dl_skip_args:\n"
  32884. + " .long _dl_skip_args@GOT\n"
  32885. ".L_dl_fini:\n"
  32886. " .long _dl_fini@GOT\n"
  32887. ".L_got:\n"
  32888. diff -Nur uClibc-0.9.33.2/ldso/ldso/sh/elfinterp.c uClibc-git/ldso/ldso/sh/elfinterp.c
  32889. --- uClibc-0.9.33.2/ldso/ldso/sh/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
  32890. +++ uClibc-git/ldso/ldso/sh/elfinterp.c 2014-06-02 17:40:33.954711653 +0200
  32891. @@ -160,7 +160,9 @@
  32892. unsigned long old_val;
  32893. #endif
  32894. +#if defined USE_TLS && USE_TLS
  32895. struct elf_resolve *tls_tpnt = NULL;
  32896. +#endif
  32897. struct symbol_ref sym_ref;
  32898. reloc_addr = (unsigned long *)(intptr_t) (tpnt->loadaddr + (unsigned long) rpnt->r_offset);
  32899. @@ -193,7 +195,9 @@
  32900. _dl_debug_lookup (symname, tpnt, &symtab[symtab_index],
  32901. &sym_ref, elf_machine_type_class(reloc_type));
  32902. }
  32903. +#if defined USE_TLS && USE_TLS
  32904. tls_tpnt = sym_ref.tpnt;
  32905. +#endif
  32906. }
  32907. #if defined (__SUPPORT_LD_DEBUG__)
  32908. diff -Nur uClibc-0.9.33.2/ldso/ldso/sh64/dl-startup.h uClibc-git/ldso/ldso/sh64/dl-startup.h
  32909. --- uClibc-0.9.33.2/ldso/ldso/sh64/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  32910. +++ uClibc-git/ldso/ldso/sh64/dl-startup.h 2014-06-02 17:40:33.954711653 +0200
  32911. @@ -7,6 +7,7 @@
  32912. " .section .text..SHmedia32,\"ax\"\n" \
  32913. " .globl _start\n" \
  32914. " .type _start, @function\n" \
  32915. +" .hidden _start\n" \
  32916. " .align 5\n" \
  32917. "_start:\n" \
  32918. " ! Set r12 to point to GOT\n" \
  32919. diff -Nur uClibc-0.9.33.2/ldso/ldso/sparc/dl-startup.h uClibc-git/ldso/ldso/sparc/dl-startup.h
  32920. --- uClibc-0.9.33.2/ldso/ldso/sparc/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  32921. +++ uClibc-git/ldso/ldso/sparc/dl-startup.h 2014-06-02 17:40:33.954711653 +0200
  32922. @@ -8,6 +8,7 @@
  32923. .text\n\
  32924. .global _start\n\
  32925. .type _start,%function\n\
  32926. + .hidden _start\n\
  32927. .align 32\n\
  32928. .register %g2, #scratch\n\
  32929. _start:\n\
  32930. diff -Nur uClibc-0.9.33.2/ldso/ldso/sparc/elfinterp.c uClibc-git/ldso/ldso/sparc/elfinterp.c
  32931. --- uClibc-0.9.33.2/ldso/ldso/sparc/elfinterp.c 2012-05-15 09:20:09.000000000 +0200
  32932. +++ uClibc-git/ldso/ldso/sparc/elfinterp.c 2014-06-02 17:40:33.958711675 +0200
  32933. @@ -275,8 +275,11 @@
  32934. _dl_memcpy((char *)reloc_addr,
  32935. (char *)symbol_addr,
  32936. sym_ref.sym->st_size);
  32937. - } else
  32938. + }
  32939. +#if defined (__SUPPORT_LD_DEBUG__)
  32940. + else
  32941. _dl_dprintf(_dl_debug_file, "no symbol_addr to copy !?\n");
  32942. +#endif
  32943. break;
  32944. #if defined USE_TLS && USE_TLS
  32945. case R_SPARC_TLS_DTPMOD32:
  32946. diff -Nur uClibc-0.9.33.2/ldso/ldso/x86_64/dl-startup.h uClibc-git/ldso/ldso/x86_64/dl-startup.h
  32947. --- uClibc-0.9.33.2/ldso/ldso/x86_64/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  32948. +++ uClibc-git/ldso/ldso/x86_64/dl-startup.h 2014-06-02 17:40:33.958711675 +0200
  32949. @@ -10,6 +10,7 @@
  32950. " .text\n"
  32951. " .global _start\n"
  32952. " .type _start,%function\n"
  32953. + " .hidden _start\n"
  32954. "_start:\n"
  32955. " movq %rsp, %rdi\n"
  32956. " call _dl_start\n"
  32957. diff -Nur uClibc-0.9.33.2/ldso/ldso/x86_64/dl-sysdep.h uClibc-git/ldso/ldso/x86_64/dl-sysdep.h
  32958. --- uClibc-0.9.33.2/ldso/ldso/x86_64/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
  32959. +++ uClibc-git/ldso/ldso/x86_64/dl-sysdep.h 2014-06-02 17:40:33.958711675 +0200
  32960. @@ -16,9 +16,8 @@
  32961. Lesser General Public License for more details.
  32962. You should have received a copy of the GNU Lesser General Public
  32963. - License along with the GNU C Library; if not, write to the Free
  32964. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  32965. - 02111-1307 USA. */
  32966. + License along with the GNU C Library; if not, see
  32967. + <http://www.gnu.org/licenses/>. */
  32968. /* Define this if the system uses RELOCA. */
  32969. #define ELF_USES_RELOCA
  32970. diff -Nur uClibc-0.9.33.2/ldso/ldso/xtensa/dl-startup.h uClibc-git/ldso/ldso/xtensa/dl-startup.h
  32971. --- uClibc-0.9.33.2/ldso/ldso/xtensa/dl-startup.h 2012-05-15 09:20:09.000000000 +0200
  32972. +++ uClibc-git/ldso/ldso/xtensa/dl-startup.h 2014-06-02 17:40:33.958711675 +0200
  32973. @@ -11,8 +11,10 @@
  32974. __asm__ (
  32975. " .text\n"
  32976. " .align 4\n"
  32977. + " .literal_position\n"
  32978. " .global _start\n"
  32979. " .type _start, @function\n"
  32980. + " .hidden _start\n"
  32981. "_start:\n"
  32982. " # Compute load offset in a2: the GOT has not yet been relocated\n"
  32983. " # but the entries for local symbols contain the relative offsets\n"
  32984. diff -Nur uClibc-0.9.33.2/ldso/ldso/xtensa/dl-sysdep.h uClibc-git/ldso/ldso/xtensa/dl-sysdep.h
  32985. --- uClibc-0.9.33.2/ldso/ldso/xtensa/dl-sysdep.h 2012-05-15 09:20:09.000000000 +0200
  32986. +++ uClibc-git/ldso/ldso/xtensa/dl-sysdep.h 2014-06-02 17:40:33.958711675 +0200
  32987. @@ -14,9 +14,8 @@
  32988. Lesser General Public License for more details.
  32989. You should have received a copy of the GNU Lesser General Public
  32990. - License along with the GNU C Library; if not, write to the Free
  32991. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  32992. - Boston, MA 02110-1301, USA. */
  32993. + License along with the GNU C Library; if not, see
  32994. + <http://www.gnu.org/licenses/>. */
  32995. /* Define this if the system uses RELOCA. */
  32996. #define ELF_USES_RELOCA
  32997. diff -Nur uClibc-0.9.33.2/ldso/ldso/xtensa/resolve.S uClibc-git/ldso/ldso/xtensa/resolve.S
  32998. --- uClibc-0.9.33.2/ldso/ldso/xtensa/resolve.S 2012-05-15 09:20:09.000000000 +0200
  32999. +++ uClibc-git/ldso/ldso/xtensa/resolve.S 2014-06-02 17:40:33.958711675 +0200
  33000. @@ -14,9 +14,8 @@
  33001. Lesser General Public License for more details.
  33002. You should have received a copy of the GNU Lesser General Public
  33003. - License along with the GNU C Library; if not, write to the Free
  33004. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  33005. - Boston, MA 02110-1301, USA. */
  33006. + License along with the GNU C Library; if not, see
  33007. + <http://www.gnu.org/licenses/>. */
  33008. #define MIN_FRAME_SIZE 32
  33009. @@ -28,6 +27,7 @@
  33010. .text
  33011. .align 4
  33012. + .literal_position
  33013. .global _dl_linux_resolve
  33014. .type _dl_linux_resolve, @function
  33015. _dl_linux_resolve:
  33016. diff -Nur uClibc-0.9.33.2/ldso/libdl/libdl.c uClibc-git/ldso/libdl/libdl.c
  33017. --- uClibc-0.9.33.2/ldso/libdl/libdl.c 2012-05-15 09:20:09.000000000 +0200
  33018. +++ uClibc-git/ldso/libdl/libdl.c 2014-06-02 17:40:33.958711675 +0200
  33019. @@ -32,7 +32,7 @@
  33020. #include <ldso.h>
  33021. #include <stdio.h>
  33022. -#include <string.h> /* Needed for 'strstr' prototype' */
  33023. +#include <string.h>
  33024. #include <stdbool.h>
  33025. #include <bits/uClibc_mutex.h>
  33026. @@ -42,6 +42,7 @@
  33027. #if defined(USE_TLS) && USE_TLS
  33028. #include <ldsodefs.h>
  33029. +#include <dl-tls.h>
  33030. extern void _dl_add_to_slotinfo(struct link_map *l);
  33031. #endif
  33032. @@ -51,7 +52,6 @@
  33033. #ifdef SHARED
  33034. # if defined(USE_TLS) && USE_TLS
  33035. -# include <dl-tls.h>
  33036. extern struct link_map *_dl_update_slotinfo(unsigned long int req_modid);
  33037. # endif
  33038. @@ -269,7 +269,7 @@
  33039. #endif
  33040. #ifndef __LDSO_NO_CLEANUP__
  33041. -void dl_cleanup(void) __attribute__ ((destructor));
  33042. +void dl_cleanup(void) attribute_hidden __attribute__ ((destructor));
  33043. void dl_cleanup(void)
  33044. {
  33045. struct dyn_elf *h, *n;
  33046. @@ -296,11 +296,10 @@
  33047. return p - list;
  33048. }
  33049. -static void *do_dlopen(const char *libname, int flag)
  33050. +static void *do_dlopen(const char *libname, int flag, ElfW(Addr) from)
  33051. {
  33052. struct elf_resolve *tpnt, *tfrom;
  33053. struct dyn_elf *dyn_chain, *rpnt = NULL, *dyn_ptr, *relro_ptr, *handle;
  33054. - ElfW(Addr) from;
  33055. struct elf_resolve *tpnt1;
  33056. void (*dl_brk) (void);
  33057. int now_flag;
  33058. @@ -309,7 +308,9 @@
  33059. struct elf_resolve **init_fini_list;
  33060. static bool _dl_init;
  33061. struct elf_resolve **local_scope;
  33062. +#ifdef SHARED
  33063. struct r_scope_elem *ls;
  33064. +#endif
  33065. #if defined(USE_TLS) && USE_TLS
  33066. bool any_tls = false;
  33067. #endif
  33068. @@ -320,8 +321,6 @@
  33069. return NULL;
  33070. }
  33071. - from = (ElfW(Addr)) __builtin_return_address(0);
  33072. -
  33073. if (!_dl_init) {
  33074. _dl_init = true;
  33075. _dl_malloc_function = malloc;
  33076. @@ -335,7 +334,7 @@
  33077. # ifdef __SUPPORT_LD_DEBUG__
  33078. _dl_debug = getenv("LD_DEBUG");
  33079. if (_dl_debug) {
  33080. - if (_dl_strstr(_dl_debug, "all")) {
  33081. + if (strstr(_dl_debug, "all")) {
  33082. _dl_debug_detail = _dl_debug_move = _dl_debug_symbols
  33083. = _dl_debug_reloc = _dl_debug_bindings = _dl_debug_nofixups = (void*)1;
  33084. } else {
  33085. @@ -377,7 +376,7 @@
  33086. if (getenv("LD_BIND_NOW"))
  33087. now_flag = RTLD_NOW;
  33088. -#if !defined SHARED && defined __LDSO_LIBRARY_PATH__
  33089. +#if !defined SHARED && defined __LDSO_LD_LIBRARY_PATH__
  33090. /* When statically linked, the _dl_library_path is not yet initialized */
  33091. _dl_library_path = getenv("LD_LIBRARY_PATH");
  33092. #endif
  33093. @@ -393,7 +392,7 @@
  33094. return NULL;
  33095. }
  33096. dyn_chain = (struct dyn_elf *) malloc(sizeof(struct dyn_elf));
  33097. - _dl_memset(dyn_chain, 0, sizeof(struct dyn_elf));
  33098. + memset(dyn_chain, 0, sizeof(struct dyn_elf));
  33099. dyn_chain->dyn = tpnt;
  33100. tpnt->rtld_flags |= (flag & RTLD_GLOBAL);
  33101. @@ -444,7 +443,7 @@
  33102. /* This list is for dlsym() and relocation */
  33103. dyn_ptr->next = (struct dyn_elf *) malloc(sizeof(struct dyn_elf));
  33104. - _dl_memset (dyn_ptr->next, 0, sizeof (struct dyn_elf));
  33105. + memset (dyn_ptr->next, 0, sizeof (struct dyn_elf));
  33106. dyn_ptr = dyn_ptr->next;
  33107. dyn_ptr->dyn = tpnt1;
  33108. /* Used to record RTLD_LOCAL scope */
  33109. @@ -544,11 +543,18 @@
  33110. * to the GOT tables. We need to do this in reverse order so that COPY
  33111. * directives work correctly */
  33112. - /* Get the tail of the list */
  33113. +#ifdef SHARED
  33114. + /*
  33115. + * Get the tail of the list.
  33116. + * In the static case doesn't need to extend the global scope, it is
  33117. + * ready to be used as it is, because _dl_loaded_modules already points
  33118. + * to the dlopened library.
  33119. + */
  33120. for (ls = &_dl_loaded_modules->symbol_scope; ls && ls->next; ls = ls->next);
  33121. /* Extend the global scope by adding the local scope of the dlopened DSO. */
  33122. ls->next = &dyn_chain->dyn->symbol_scope;
  33123. +#endif
  33124. #ifdef __mips__
  33125. /*
  33126. * Relocation of the GOT entries for MIPS have to be done
  33127. @@ -661,7 +667,8 @@
  33128. void *ret;
  33129. __UCLIBC_MUTEX_CONDITIONAL_LOCK(_dl_mutex, 1);
  33130. - ret = do_dlopen(libname, flag);
  33131. + ret = do_dlopen(libname, flag,
  33132. + (ElfW(Addr)) __builtin_return_address(0));
  33133. __UCLIBC_MUTEX_CONDITIONAL_UNLOCK(_dl_mutex, 1);
  33134. return ret;
  33135. @@ -671,7 +678,7 @@
  33136. {
  33137. struct elf_resolve *tpnt, *tfrom;
  33138. struct dyn_elf *handle;
  33139. - ElfW(Addr) from;
  33140. + ElfW(Addr) from = 0;
  33141. struct dyn_elf *rpnt;
  33142. void *ret;
  33143. struct symbol_ref sym_ref = { NULL, NULL };
  33144. @@ -729,7 +736,13 @@
  33145. tpnt = NULL;
  33146. if (handle == _dl_symbol_tables)
  33147. tpnt = handle->dyn; /* Only search RTLD_GLOBAL objs if global object */
  33148. - ret = _dl_find_hash(name2, &handle->dyn->symbol_scope, tpnt, ELF_RTYPE_CLASS_DLSYM, &sym_ref);
  33149. +
  33150. + do {
  33151. + ret = _dl_find_hash(name2, &handle->dyn->symbol_scope, tpnt, ELF_RTYPE_CLASS_DLSYM, &sym_ref);
  33152. + if (ret != NULL)
  33153. + break;
  33154. + handle = handle->next;
  33155. + } while (from && handle);
  33156. #if defined(USE_TLS) && USE_TLS && defined SHARED
  33157. if (sym_ref.sym && (ELF_ST_TYPE(sym_ref.sym->st_info) == STT_TLS) && (sym_ref.tpnt)) {
  33158. @@ -1081,8 +1094,10 @@
  33159. * Dump information to stderr about the current loaded modules
  33160. */
  33161. #ifdef __USE_GNU
  33162. +# if 0
  33163. static const char type[][4] = { "Lib", "Exe", "Int", "Mod" };
  33164. +/* reimplement this, being a GNU extension it should be the same as on glibc */
  33165. int dlinfo(void)
  33166. {
  33167. struct elf_resolve *tpnt;
  33168. @@ -1109,6 +1124,7 @@
  33169. }
  33170. return 0;
  33171. }
  33172. +#endif
  33173. static int do_dladdr(const void *__address, Dl_info * __info)
  33174. {
  33175. diff -Nur uClibc-0.9.33.2/ldso/libdl/Makefile.in uClibc-git/ldso/libdl/Makefile.in
  33176. --- uClibc-0.9.33.2/ldso/libdl/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  33177. +++ uClibc-git/ldso/libdl/Makefile.in 2014-06-02 17:40:33.958711675 +0200
  33178. @@ -23,7 +23,7 @@
  33179. LDFLAGS-libdl.so := $(LDFLAGS)
  33180. ifeq ($(LDSO_NO_CLEANUP),)
  33181. -LDFLAGS-libdl.so += -Wl,-fini,dl_cleanup
  33182. +LDFLAGS-libdl.so += -Wl,-fini,$(SYMBOL_PREFIX)dl_cleanup
  33183. endif
  33184. LIBS-libdl.so := $(LIBS) $(ldso)
  33185. diff -Nur uClibc-0.9.33.2/ldso/man/dlopen.3 uClibc-git/ldso/man/dlopen.3
  33186. --- uClibc-0.9.33.2/ldso/man/dlopen.3 2012-05-15 09:20:09.000000000 +0200
  33187. +++ uClibc-git/ldso/man/dlopen.3 2014-06-02 17:40:33.958711675 +0200
  33188. @@ -19,9 +19,8 @@
  33189. .\" GNU General Public License for more details.
  33190. .\"
  33191. .\" You should have received a copy of the GNU General Public
  33192. -.\" License along with this manual; if not, write to the Free
  33193. -.\" Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
  33194. -.\" USA.
  33195. +.\" License along with this manual; if not, see
  33196. +.\" <http://www.gnu.org/licenses/>.
  33197. .\"
  33198. .TH DLOPEN 3 "16 May 1995" "Linux" "Linux Programmer's Manual"
  33199. .SH NAME
  33200. diff -Nur uClibc-0.9.33.2/libc/.gitignore uClibc-git/libc/.gitignore
  33201. --- uClibc-0.9.33.2/libc/.gitignore 1970-01-01 01:00:00.000000000 +0100
  33202. +++ uClibc-git/libc/.gitignore 2014-06-02 17:40:33.958711675 +0200
  33203. @@ -0,0 +1 @@
  33204. +ucontext_i.[chs]
  33205. diff -Nur uClibc-0.9.33.2/libc/inet/addr.c uClibc-git/libc/inet/addr.c
  33206. --- uClibc-0.9.33.2/libc/inet/addr.c 2012-05-15 09:20:09.000000000 +0200
  33207. +++ uClibc-git/libc/inet/addr.c 2014-06-02 17:40:33.962711697 +0200
  33208. @@ -17,8 +17,6 @@
  33209. * Changed to use _int10tostr.
  33210. */
  33211. -#define __FORCE_GLIBC
  33212. -#include <features.h>
  33213. #include <stdio.h>
  33214. #include <string.h>
  33215. #include <ctype.h>
  33216. @@ -114,7 +112,7 @@
  33217. #define INET_NTOA_MAX_LEN 16 /* max 12 digits + 3 '.'s + 1 nul */
  33218. -char *inet_ntoa_r(struct in_addr in, char buf[INET_NTOA_MAX_LEN])
  33219. +static char *__inet_ntoa_r(struct in_addr in, char buf[INET_NTOA_MAX_LEN])
  33220. {
  33221. in_addr_t addr = ntohl(in.s_addr);
  33222. int i;
  33223. @@ -133,12 +131,12 @@
  33224. return p+1;
  33225. }
  33226. -libc_hidden_def(inet_ntoa_r)
  33227. +strong_alias(__inet_ntoa_r,inet_ntoa_r)
  33228. char *inet_ntoa(struct in_addr in)
  33229. {
  33230. static char buf[INET_NTOA_MAX_LEN];
  33231. - return inet_ntoa_r(in, buf);
  33232. + return __inet_ntoa_r(in, buf);
  33233. }
  33234. libc_hidden_def(inet_ntoa)
  33235. #endif
  33236. @@ -153,18 +151,18 @@
  33237. */
  33238. struct in_addr inet_makeaddr(in_addr_t net, in_addr_t host)
  33239. {
  33240. - in_addr_t addr;
  33241. + struct in_addr in;
  33242. if (net < 128)
  33243. - addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST);
  33244. + in.s_addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST);
  33245. else if (net < 65536)
  33246. - addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST);
  33247. + in.s_addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST);
  33248. else if (net < 16777216UL)
  33249. - addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST);
  33250. + in.s_addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST);
  33251. else
  33252. - addr = net | host;
  33253. - addr = htonl(addr);
  33254. - return *(struct in_addr *)&addr;
  33255. + in.s_addr = net | host;
  33256. + in.s_addr = htonl(in.s_addr);
  33257. + return in;
  33258. }
  33259. libc_hidden_def(inet_makeaddr)
  33260. #endif
  33261. diff -Nur uClibc-0.9.33.2/libc/inet/ether_addr.c uClibc-git/libc/inet/ether_addr.c
  33262. --- uClibc-0.9.33.2/libc/inet/ether_addr.c 2012-05-15 09:20:09.000000000 +0200
  33263. +++ uClibc-git/libc/inet/ether_addr.c 2014-06-02 17:40:33.962711697 +0200
  33264. @@ -13,9 +13,8 @@
  33265. Lesser General Public License for more details.
  33266. You should have received a copy of the GNU Lesser General Public
  33267. - License along with the GNU C Library; if not, write to the Free
  33268. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  33269. - 02111-1307 USA.
  33270. + License along with the GNU C Library; see the file COPYING.LIB. If
  33271. + not, see <http://www.gnu.org/licenses/>.
  33272. */
  33273. /*
  33274. @@ -23,8 +22,6 @@
  33275. * - initial uClibc port
  33276. */
  33277. -#define __FORCE_GLIBC
  33278. -#include <features.h>
  33279. #include <ctype.h>
  33280. #include <stdio.h>
  33281. #include <stdlib.h>
  33282. diff -Nur uClibc-0.9.33.2/libc/inet/gai_strerror.c uClibc-git/libc/inet/gai_strerror.c
  33283. --- uClibc-0.9.33.2/libc/inet/gai_strerror.c 2012-05-15 09:20:09.000000000 +0200
  33284. +++ uClibc-git/libc/inet/gai_strerror.c 2014-06-02 17:40:33.962711697 +0200
  33285. @@ -13,17 +13,13 @@
  33286. Lesser General Public License for more details.
  33287. You should have received a copy of the GNU Lesser General Public
  33288. - License along with the GNU C Library; if not, write to the Free
  33289. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  33290. - 02111-1307 USA. */
  33291. + License along with the GNU C Library; if not, see
  33292. + <http://www.gnu.org/licenses/>. */
  33293. -#define __FORCE_GLIBC
  33294. -#include <features.h>
  33295. #include <stdio.h>
  33296. #include <netdb.h>
  33297. +#include <libintl.h>
  33298. -#define N_(x) x
  33299. -#define _(x) x
  33300. static const struct
  33301. {
  33302. int code;
  33303. diff -Nur uClibc-0.9.33.2/libc/inet/getaddrinfo.c uClibc-git/libc/inet/getaddrinfo.c
  33304. --- uClibc-0.9.33.2/libc/inet/getaddrinfo.c 2012-05-15 09:20:09.000000000 +0200
  33305. +++ uClibc-git/libc/inet/getaddrinfo.c 2014-06-02 17:40:33.962711697 +0200
  33306. @@ -51,8 +51,6 @@
  33307. If these license terms cause you a real problem, contact the author. */
  33308. -#define __FORCE_GLIBC
  33309. -#include <features.h>
  33310. #include <assert.h>
  33311. #include <errno.h>
  33312. #include <netdb.h>
  33313. @@ -283,7 +281,7 @@
  33314. ai->ai_protocol = req->ai_protocol;
  33315. ai->ai_addrlen = sizeof(struct sockaddr_un);
  33316. ai->ai_addr = (void *)ai + sizeof(struct addrinfo);
  33317. -#if SALEN
  33318. +#if 0 /* SALEN */
  33319. ((struct sockaddr_un *)ai->ai_addr)->sun_len = sizeof(struct sockaddr_un);
  33320. #endif /* SALEN */
  33321. @@ -713,7 +711,7 @@
  33322. (*pai)->ai_protocol = st2->protocol;
  33323. (*pai)->ai_addrlen = socklen;
  33324. (*pai)->ai_addr = (void *) (*pai) + sizeof(struct addrinfo);
  33325. -#if defined SALEN
  33326. +#if 0 /* SALEN */
  33327. (*pai)->ai_addr->sa_len = socklen;
  33328. #endif
  33329. (*pai)->ai_addr->sa_family = family;
  33330. diff -Nur uClibc-0.9.33.2/libc/inet/herror.c uClibc-git/libc/inet/herror.c
  33331. --- uClibc-0.9.33.2/libc/inet/herror.c 2012-05-15 09:20:09.000000000 +0200
  33332. +++ uClibc-git/libc/inet/herror.c 2014-06-02 17:40:33.962711697 +0200
  33333. @@ -17,8 +17,6 @@
  33334. * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  33335. */
  33336. -#define __FORCE_GLIBC
  33337. -#include <features.h>
  33338. #include <stdio.h>
  33339. #include <string.h>
  33340. #include <netdb.h>
  33341. diff -Nur uClibc-0.9.33.2/libc/inet/hostid.c uClibc-git/libc/inet/hostid.c
  33342. --- uClibc-0.9.33.2/libc/inet/hostid.c 2012-05-15 09:20:09.000000000 +0200
  33343. +++ uClibc-git/libc/inet/hostid.c 2014-06-02 17:40:33.962711697 +0200
  33344. @@ -5,8 +5,6 @@
  33345. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  33346. */
  33347. -#define __FORCE_GLIBC
  33348. -#include <features.h>
  33349. #include <errno.h>
  33350. #include <unistd.h>
  33351. #include <sys/types.h>
  33352. diff -Nur uClibc-0.9.33.2/libc/inet/ifaddrs.c uClibc-git/libc/inet/ifaddrs.c
  33353. --- uClibc-0.9.33.2/libc/inet/ifaddrs.c 2012-05-15 09:20:09.000000000 +0200
  33354. +++ uClibc-git/libc/inet/ifaddrs.c 2014-06-02 17:40:33.962711697 +0200
  33355. @@ -13,12 +13,9 @@
  33356. Lesser General Public License for more details.
  33357. You should have received a copy of the GNU Lesser General Public
  33358. - License along with the GNU C Library; if not, write to the Free
  33359. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  33360. - 02111-1307 USA. */
  33361. + License along with the GNU C Library; if not, see
  33362. + <http://www.gnu.org/licenses/>. */
  33363. -#define __FORCE_GLIBC
  33364. -#include <features.h>
  33365. #include <alloca.h>
  33366. #include <assert.h>
  33367. #include <errno.h>
  33368. @@ -33,7 +30,6 @@
  33369. #include <string.h>
  33370. #include <sys/ioctl.h>
  33371. #include <sys/socket.h>
  33372. -#include <libc-internal.h>
  33373. #include <time.h>
  33374. #include <unistd.h>
  33375. diff -Nur uClibc-0.9.33.2/libc/inet/if_index.c uClibc-git/libc/inet/if_index.c
  33376. --- uClibc-0.9.33.2/libc/inet/if_index.c 2012-05-15 09:20:09.000000000 +0200
  33377. +++ uClibc-git/libc/inet/if_index.c 2014-06-02 17:40:33.962711697 +0200
  33378. @@ -13,15 +13,12 @@
  33379. Lesser General Public License for more details.
  33380. You should have received a copy of the GNU Lesser General Public
  33381. - License along with the GNU C Library; if not, write to the Free
  33382. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  33383. - 02111-1307 USA.
  33384. + License along with the GNU C Library; see the file COPYING.LIB. If
  33385. + not, see <http://www.gnu.org/licenses/>.
  33386. Reworked Dec 2002 by Erik Andersen <andersen@codepoet.org>
  33387. */
  33388. -#define __FORCE_GLIBC
  33389. -#include <features.h>
  33390. #include <string.h>
  33391. #include <alloca.h>
  33392. #include <errno.h>
  33393. @@ -31,7 +28,6 @@
  33394. #include <net/if.h>
  33395. #include <sys/socket.h>
  33396. #include <sys/ioctl.h>
  33397. -#include <libc-internal.h>
  33398. #include <not-cancel.h>
  33399. #include "netlinkaccess.h"
  33400. diff -Nur uClibc-0.9.33.2/libc/inet/in6_addr.c uClibc-git/libc/inet/in6_addr.c
  33401. --- uClibc-0.9.33.2/libc/inet/in6_addr.c 2012-05-15 09:20:09.000000000 +0200
  33402. +++ uClibc-git/libc/inet/in6_addr.c 2014-06-02 17:40:33.962711697 +0200
  33403. @@ -13,12 +13,9 @@
  33404. Lesser General Public License for more details.
  33405. You should have received a copy of the GNU Lesser General Public
  33406. - License along with the GNU C Library; if not, write to the Free
  33407. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  33408. - 02111-1307 USA. */
  33409. + License along with the GNU C Library; if not, see
  33410. + <http://www.gnu.org/licenses/>. */
  33411. -#define __FORCE_GLIBC
  33412. -#include <features.h>
  33413. #include <netinet/in.h>
  33414. #ifdef __UCLIBC_HAS_IPV6__
  33415. diff -Nur uClibc-0.9.33.2/libc/inet/inet_addr.c uClibc-git/libc/inet/inet_addr.c
  33416. --- uClibc-0.9.33.2/libc/inet/inet_addr.c 2012-05-15 09:20:09.000000000 +0200
  33417. +++ uClibc-git/libc/inet/inet_addr.c 2014-06-02 17:40:33.962711697 +0200
  33418. @@ -4,5 +4,5 @@
  33419. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  33420. */
  33421. -#define L_inet_makeaddr
  33422. +#define L_inet_addr
  33423. #include "addr.c"
  33424. diff -Nur uClibc-0.9.33.2/libc/inet/inet_makeaddr.c uClibc-git/libc/inet/inet_makeaddr.c
  33425. --- uClibc-0.9.33.2/libc/inet/inet_makeaddr.c 2012-05-15 09:20:09.000000000 +0200
  33426. +++ uClibc-git/libc/inet/inet_makeaddr.c 2014-06-02 17:40:33.962711697 +0200
  33427. @@ -4,5 +4,5 @@
  33428. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  33429. */
  33430. -#define L_inet_addr
  33431. +#define L_inet_makeaddr
  33432. #include "addr.c"
  33433. diff -Nur uClibc-0.9.33.2/libc/inet/inet_net.c uClibc-git/libc/inet/inet_net.c
  33434. --- uClibc-0.9.33.2/libc/inet/inet_net.c 2012-05-15 09:20:09.000000000 +0200
  33435. +++ uClibc-git/libc/inet/inet_net.c 2014-06-02 17:40:33.962711697 +0200
  33436. @@ -32,8 +32,6 @@
  33437. * SUCH DAMAGE.
  33438. */
  33439. -#define __FORCE_GLIBC
  33440. -#include <features.h>
  33441. #include <ctype.h>
  33442. #include <netinet/in.h>
  33443. #include <arpa/inet.h>
  33444. diff -Nur uClibc-0.9.33.2/libc/inet/Makefile.in uClibc-git/libc/inet/Makefile.in
  33445. --- uClibc-0.9.33.2/libc/inet/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  33446. +++ uClibc-git/libc/inet/Makefile.in 2014-06-02 17:40:33.958711675 +0200
  33447. @@ -11,33 +11,34 @@
  33448. INET_DIR := $(top_srcdir)libc/inet
  33449. INET_OUT := $(top_builddir)libc/inet
  33450. +V4_OR_V6 := $(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6))
  33451. CFLAGS-inet := -DRESOLVER="\"resolv.c\""
  33452. CSRC-y :=
  33453. # des uses ntohl
  33454. -CSRC-$(findstring y,$(UCLIBC_HAS_CRYPT_IMPL)$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += ntohl.c
  33455. -CSRC-$(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += \
  33456. +CSRC-$(findstring y,$(UCLIBC_HAS_CRYPT_IMPL)$(V4_OR_V6)) += ntohl.c
  33457. +CSRC-$(V4_OR_V6) += \
  33458. getservice.c getproto.c getnet.c hostid.c \
  33459. inet_net.c herror.c if_index.c gai_strerror.c getaddrinfo.c \
  33460. ifaddrs.c ntop.c
  33461. CSRC-$(UCLIBC_HAS_IPV6) += in6_addr.c
  33462. # multi source addr.c
  33463. -CSRC-$(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += \
  33464. +CSRC-$(V4_OR_V6) += \
  33465. inet_aton.c inet_addr.c inet_ntoa.c inet_makeaddr.c \
  33466. inet_lnaof.c inet_netof.c
  33467. # multi source resolv.c
  33468. -CSRC-$(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += \
  33469. +CSRC-$(V4_OR_V6) += \
  33470. encodeh.c decodeh.c encoded.c decoded.c \
  33471. encodeq.c encodea.c \
  33472. read_etc_hosts_r.c \
  33473. dnslookup.c opennameservers.c closenameservers.c \
  33474. getnameinfo.c \
  33475. gethostent.c gethostent_r.c
  33476. -CSRC-$(findstring y,$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += \
  33477. +CSRC-$(V4_OR_V6) += \
  33478. get_hosts_byaddr_r.c get_hosts_byname_r.c \
  33479. gethostbyaddr_r.c gethostbyname_r.c gethostbyname2_r.c \
  33480. gethostbyaddr.c gethostbyname.c gethostbyname2.c
  33481. -CSRC-$(findstring y,$(UCLIBC_HAS_RESOLVER_SUPPORT)) += \
  33482. +CSRC-$(UCLIBC_HAS_RESOLVER_SUPPORT) += \
  33483. ns_netint.c ns_parse.c res_data.c \
  33484. res_init.c res_query.c res_comp.c ns_name.c \
  33485. _res_state.c
  33486. @@ -52,7 +53,7 @@
  33487. socketcalls_CSRC-$(UCLIBC_LINUX_SPECIFIC) += accept4.c
  33488. CSRC-$(UCLIBC_HAS_SOCKET) += $(socketcalls_CSRC-y) opensock.c
  33489. -CSRC-$(findstring y,$(UCLIBC_HAS_SOCKET)$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6)) += ethers.c ether_addr.c
  33490. +CSRC-$(findstring y,$(UCLIBC_HAS_SOCKET)$(V4_OR_V6)) += ethers.c ether_addr.c
  33491. INET_SRC := $(patsubst %.c,$(INET_DIR)/%.c,$(CSRC-y))
  33492. INET_OBJ := $(patsubst %.c,$(INET_OUT)/%.o,$(CSRC-y))
  33493. diff -Nur uClibc-0.9.33.2/libc/inet/netlinkaccess.h uClibc-git/libc/inet/netlinkaccess.h
  33494. --- uClibc-0.9.33.2/libc/inet/netlinkaccess.h 2012-05-15 09:20:09.000000000 +0200
  33495. +++ uClibc-git/libc/inet/netlinkaccess.h 2014-06-02 17:40:33.962711697 +0200
  33496. @@ -12,9 +12,8 @@
  33497. Lesser General Public License for more details.
  33498. You should have received a copy of the GNU Lesser General Public
  33499. - License along with the GNU C Library; if not, write to the Free
  33500. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  33501. - 02111-1307 USA. */
  33502. + License along with the GNU C Library; if not, see
  33503. + <http://www.gnu.org/licenses/>. */
  33504. #ifndef _NETLINKACCESS_H
  33505. #define _NETLINKACCESS_H 1
  33506. diff -Nur uClibc-0.9.33.2/libc/inet/ntohl.c uClibc-git/libc/inet/ntohl.c
  33507. --- uClibc-0.9.33.2/libc/inet/ntohl.c 2012-05-15 09:20:09.000000000 +0200
  33508. +++ uClibc-git/libc/inet/ntohl.c 2014-06-02 17:40:33.966711719 +0200
  33509. @@ -6,9 +6,6 @@
  33510. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  33511. */
  33512. -#include <stdint.h>
  33513. -#include <endian.h>
  33514. -#include <byteswap.h>
  33515. #include <netinet/in.h>
  33516. #undef ntohl
  33517. @@ -16,51 +13,30 @@
  33518. #undef htonl
  33519. #undef htons
  33520. -#if __BYTE_ORDER == __BIG_ENDIAN
  33521. -uint32_t ntohl (uint32_t x)
  33522. -{
  33523. - return x;
  33524. -}
  33525. -
  33526. -uint16_t ntohs (uint16_t x)
  33527. -{
  33528. - return x;
  33529. -}
  33530. -
  33531. -uint32_t htonl (uint32_t x)
  33532. -{
  33533. - return x;
  33534. -}
  33535. +#if __BYTE_ORDER != __BIG_ENDIAN && __BYTE_ORDER != __LITTLE_ENDIAN
  33536. +# error "You seem to have an unsupported byteorder"
  33537. +#endif
  33538. -uint16_t htons (uint16_t x)
  33539. -{
  33540. - return x;
  33541. -}
  33542. -#elif __BYTE_ORDER == __LITTLE_ENDIAN
  33543. uint32_t ntohl (uint32_t x)
  33544. {
  33545. +#if __BYTE_ORDER == __BIG_ENDIAN
  33546. + return x;
  33547. +#else
  33548. return __bswap_32(x);
  33549. +#endif
  33550. }
  33551. +libc_hidden_def(ntohl)
  33552. +strong_alias(ntohl,htonl)
  33553. +libc_hidden_def(htonl)
  33554. uint16_t ntohs (uint16_t x)
  33555. {
  33556. - return __bswap_16(x);
  33557. -}
  33558. -
  33559. -uint32_t htonl (uint32_t x)
  33560. -{
  33561. - return __bswap_32(x);
  33562. -}
  33563. -
  33564. -uint16_t htons (uint16_t x)
  33565. -{
  33566. - return __bswap_16(x);
  33567. -}
  33568. +#if __BYTE_ORDER == __BIG_ENDIAN
  33569. + return x;
  33570. #else
  33571. -#error "You seem to have an unsupported byteorder"
  33572. + return __bswap_16(x);
  33573. #endif
  33574. -
  33575. -libc_hidden_def(ntohl)
  33576. +}
  33577. libc_hidden_def(ntohs)
  33578. -libc_hidden_def(htonl)
  33579. +strong_alias(ntohs,htons)
  33580. libc_hidden_def(htons)
  33581. diff -Nur uClibc-0.9.33.2/libc/inet/ntop.c uClibc-git/libc/inet/ntop.c
  33582. --- uClibc-0.9.33.2/libc/inet/ntop.c 2012-05-15 09:20:09.000000000 +0200
  33583. +++ uClibc-git/libc/inet/ntop.c 2014-06-02 17:40:33.966711719 +0200
  33584. @@ -15,8 +15,6 @@
  33585. * SOFTWARE.
  33586. */
  33587. -#define __FORCE_GLIBC
  33588. -#include <features.h>
  33589. #include <sys/param.h>
  33590. #include <sys/types.h>
  33591. #include <sys/socket.h>
  33592. diff -Nur uClibc-0.9.33.2/libc/inet/opensock.c uClibc-git/libc/inet/opensock.c
  33593. --- uClibc-0.9.33.2/libc/inet/opensock.c 2012-05-15 09:20:09.000000000 +0200
  33594. +++ uClibc-git/libc/inet/opensock.c 2014-06-02 17:40:33.966711719 +0200
  33595. @@ -12,18 +12,11 @@
  33596. Lesser General Public License for more details.
  33597. You should have received a copy of the GNU Lesser General Public
  33598. - License along with the GNU C Library; if not, write to the Free
  33599. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  33600. - 02111-1307 USA. */
  33601. + License along with the GNU C Library; if not, see
  33602. + <http://www.gnu.org/licenses/>. */
  33603. -#include <assert.h>
  33604. -#include <errno.h>
  33605. -#include <stdio.h>
  33606. -#include <string.h>
  33607. -#include <unistd.h>
  33608. #include <sys/socket.h>
  33609. -#include <features.h>
  33610. -#include <libc-internal.h>
  33611. +#include <bits/kernel-features.h>
  33612. /* Return a socket of any type. The socket can be used in subsequent
  33613. ioctl calls to talk to the kernel. */
  33614. diff -Nur uClibc-0.9.33.2/libc/inet/resolv.c uClibc-git/libc/inet/resolv.c
  33615. --- uClibc-0.9.33.2/libc/inet/resolv.c 2012-05-15 09:20:09.000000000 +0200
  33616. +++ uClibc-git/libc/inet/resolv.c 2014-06-02 17:40:33.966711719 +0200
  33617. @@ -293,8 +293,6 @@
  33618. - a sequence of labels ending with a pointer
  33619. */
  33620. -#define __FORCE_GLIBC
  33621. -#include <features.h>
  33622. #include <string.h>
  33623. #include <stdio.h>
  33624. #include <stdio_ext.h>
  33625. @@ -317,6 +315,7 @@
  33626. #include <sys/utsname.h>
  33627. #include <sys/un.h>
  33628. #include <sys/stat.h>
  33629. +#include <sys/param.h>
  33630. #include <bits/uClibc_mutex.h>
  33631. #include "internal/parse_config.h"
  33632. @@ -406,7 +405,7 @@
  33633. } sockaddr46_t;
  33634. -__UCLIBC_MUTEX_EXTERN(__resolv_lock);
  33635. +__UCLIBC_MUTEX_EXTERN(__resolv_lock) attribute_hidden;
  33636. /* Protected by __resolv_lock */
  33637. extern void (*__res_sync)(void) attribute_hidden;
  33638. @@ -566,7 +565,7 @@
  33639. #ifdef L_encodeh
  33640. -int attribute_hidden __encode_header(struct resolv_header *h, unsigned char *dest, int maxlen)
  33641. +int __encode_header(struct resolv_header *h, unsigned char *dest, int maxlen)
  33642. {
  33643. if (maxlen < HFIXEDSZ)
  33644. return -1;
  33645. @@ -595,7 +594,7 @@
  33646. #ifdef L_decodeh
  33647. -void attribute_hidden __decode_header(unsigned char *data,
  33648. +void __decode_header(unsigned char *data,
  33649. struct resolv_header *h)
  33650. {
  33651. h->id = (data[0] << 8) | data[1];
  33652. @@ -619,7 +618,7 @@
  33653. /* Encode a dotted string into nameserver transport-level encoding.
  33654. This routine is fairly dumb, and doesn't attempt to compress
  33655. the data */
  33656. -int attribute_hidden __encode_dotted(const char *dotted, unsigned char *dest, int maxlen)
  33657. +int __encode_dotted(const char *dotted, unsigned char *dest, int maxlen)
  33658. {
  33659. unsigned used = 0;
  33660. @@ -657,7 +656,7 @@
  33661. /* Decode a dotted string from nameserver transport-level encoding.
  33662. This routine understands compressed data. */
  33663. -int attribute_hidden __decode_dotted(const unsigned char *packet,
  33664. +int __decode_dotted(const unsigned char *packet,
  33665. int offset,
  33666. int packet_len,
  33667. char *dest,
  33668. @@ -722,7 +721,7 @@
  33669. #ifdef L_encodeq
  33670. -int attribute_hidden __encode_question(const struct resolv_question *q,
  33671. +int __encode_question(const struct resolv_question *q,
  33672. unsigned char *dest,
  33673. int maxlen)
  33674. {
  33675. @@ -750,7 +749,7 @@
  33676. #ifdef L_encodea
  33677. -int attribute_hidden __encode_answer(struct resolv_answer *a, unsigned char *dest, int maxlen)
  33678. +int __encode_answer(struct resolv_answer *a, unsigned char *dest, int maxlen)
  33679. {
  33680. int i;
  33681. @@ -864,7 +863,7 @@
  33682. const char *name,
  33683. int type,
  33684. unsigned char *packet,
  33685. - int maxlen);
  33686. + int maxlen) attribute_hidden;
  33687. int __form_query(int id,
  33688. const char *name,
  33689. int type,
  33690. @@ -956,7 +955,7 @@
  33691. }
  33692. /* Must be called under __resolv_lock. */
  33693. -void attribute_hidden __open_nameservers(void)
  33694. +void __open_nameservers(void)
  33695. {
  33696. static uint32_t resolv_conf_mtime;
  33697. @@ -1122,7 +1121,7 @@
  33698. #ifdef L_closenameservers
  33699. /* Must be called under __resolv_lock. */
  33700. -void attribute_hidden __close_nameservers(void)
  33701. +void __close_nameservers(void)
  33702. {
  33703. if (__nameserver != (void*) &__local_nameserver)
  33704. free(__nameserver);
  33705. @@ -1230,7 +1229,7 @@
  33706. * appended. (why the filed is called "dotted" I have no idea)
  33707. * This is a malloced string. May be NULL because strdup failed.
  33708. */
  33709. -int attribute_hidden __dns_lookup(const char *name,
  33710. +int __dns_lookup(const char *name,
  33711. int type,
  33712. unsigned char **outpacket,
  33713. struct resolv_answer *a)
  33714. @@ -1472,9 +1471,11 @@
  33715. }
  33716. /* no more search domains to try */
  33717. }
  33718. - /* dont loop, this is "no such host" situation */
  33719. - h_errno = HOST_NOT_FOUND;
  33720. - goto fail1;
  33721. + if (h.rcode != SERVFAIL) {
  33722. + /* dont loop, this is "no such host" situation */
  33723. + h_errno = HOST_NOT_FOUND;
  33724. + goto fail1;
  33725. + }
  33726. }
  33727. /* Insert other non-fatal errors here, which do not warrant
  33728. * switching to next nameserver */
  33729. @@ -1594,7 +1595,7 @@
  33730. #define HALISTOFF (sizeof(char*) * MAXTOKENS)
  33731. #define INADDROFF (HALISTOFF + 2 * sizeof(char*))
  33732. -int attribute_hidden __read_etc_hosts_r(
  33733. +int __read_etc_hosts_r(
  33734. parser_t * parser,
  33735. const char *name,
  33736. int type,
  33737. @@ -1708,7 +1709,7 @@
  33738. #ifdef L_get_hosts_byname_r
  33739. -int attribute_hidden __get_hosts_byname_r(const char *name,
  33740. +int __get_hosts_byname_r(const char *name,
  33741. int type,
  33742. struct hostent *result_buf,
  33743. char *buf,
  33744. @@ -1724,7 +1725,7 @@
  33745. #ifdef L_get_hosts_byaddr_r
  33746. -int attribute_hidden __get_hosts_byaddr_r(const char *addr,
  33747. +int __get_hosts_byaddr_r(const char *addr,
  33748. int len,
  33749. int type,
  33750. struct hostent *result_buf,
  33751. @@ -1775,7 +1776,7 @@
  33752. unsigned flags)
  33753. {
  33754. int serrno = errno;
  33755. - unsigned ok;
  33756. + bool ok = 0;
  33757. struct hostent *hoste = NULL;
  33758. char domain[256];
  33759. @@ -1785,16 +1786,15 @@
  33760. if (sa == NULL || addrlen < sizeof(sa_family_t))
  33761. return EAI_FAMILY;
  33762. - ok = sa->sa_family;
  33763. - if (ok == AF_LOCAL) /* valid */;
  33764. + if (sa->sa_family == AF_LOCAL) /* valid */;
  33765. #ifdef __UCLIBC_HAS_IPV4__
  33766. - else if (ok == AF_INET) {
  33767. + else if (sa->sa_family == AF_INET) {
  33768. if (addrlen < sizeof(struct sockaddr_in))
  33769. return EAI_FAMILY;
  33770. }
  33771. #endif
  33772. #ifdef __UCLIBC_HAS_IPV6__
  33773. - else if (ok == AF_INET6) {
  33774. + else if (sa->sa_family == AF_INET6) {
  33775. if (addrlen < sizeof(struct sockaddr_in6))
  33776. return EAI_FAMILY;
  33777. }
  33778. @@ -1802,7 +1802,6 @@
  33779. else
  33780. return EAI_FAMILY;
  33781. - ok = 0;
  33782. if (host != NULL && hostlen > 0)
  33783. switch (sa->sa_family) {
  33784. case AF_INET:
  33785. @@ -1826,21 +1825,18 @@
  33786. if (hoste) {
  33787. char *c;
  33788. -#undef min
  33789. -#define min(x,y) (((x) > (y)) ? (y) : (x))
  33790. if ((flags & NI_NOFQDN)
  33791. && (getdomainname(domain, sizeof(domain)) == 0)
  33792. && (c = strstr(hoste->h_name, domain)) != NULL
  33793. && (c != hoste->h_name) && (*(--c) == '.')
  33794. ) {
  33795. strncpy(host, hoste->h_name,
  33796. - min(hostlen, (size_t) (c - hoste->h_name)));
  33797. - host[min(hostlen - 1, (size_t) (c - hoste->h_name))] = '\0';
  33798. + MIN(hostlen, (size_t) (c - hoste->h_name)));
  33799. + host[MIN(hostlen - 1, (size_t) (c - hoste->h_name))] = '\0';
  33800. } else {
  33801. strncpy(host, hoste->h_name, hostlen);
  33802. }
  33803. ok = 1;
  33804. -#undef min
  33805. }
  33806. }
  33807. @@ -3432,6 +3428,7 @@
  33808. */
  33809. }
  33810. +/* has to be called under __resolv_lock */
  33811. static int
  33812. __res_vinit(res_state rp, int preinit)
  33813. {
  33814. @@ -3440,7 +3437,6 @@
  33815. int m = 0;
  33816. #endif
  33817. - __UCLIBC_MUTEX_LOCK(__resolv_lock);
  33818. __close_nameservers();
  33819. __open_nameservers();
  33820. @@ -3532,29 +3528,87 @@
  33821. rp->options |= RES_INIT;
  33822. + return 0;
  33823. +}
  33824. +
  33825. +static unsigned int
  33826. +res_randomid(void)
  33827. +{
  33828. + return 0xffff & getpid();
  33829. +}
  33830. +
  33831. +/* Our res_init never fails (always returns 0) */
  33832. +int
  33833. +res_init(void)
  33834. +{
  33835. + /*
  33836. + * These three fields used to be statically initialized. This made
  33837. + * it hard to use this code in a shared library. It is necessary,
  33838. + * now that we're doing dynamic initialization here, that we preserve
  33839. + * the old semantics: if an application modifies one of these three
  33840. + * fields of _res before res_init() is called, res_init() will not
  33841. + * alter them. Of course, if an application is setting them to
  33842. + * _zero_ before calling res_init(), hoping to override what used
  33843. + * to be the static default, we can't detect it and unexpected results
  33844. + * will follow. Zero for any of these fields would make no sense,
  33845. + * so one can safely assume that the applications were already getting
  33846. + * unexpected results.
  33847. + *
  33848. + * _res.options is tricky since some apps were known to diddle the bits
  33849. + * before res_init() was first called. We can't replicate that semantic
  33850. + * with dynamic initialization (they may have turned bits off that are
  33851. + * set in RES_DEFAULT). Our solution is to declare such applications
  33852. + * "broken". They could fool us by setting RES_INIT but none do (yet).
  33853. + */
  33854. +
  33855. + __UCLIBC_MUTEX_LOCK(__resolv_lock);
  33856. +
  33857. + if (!_res.retrans)
  33858. + _res.retrans = RES_TIMEOUT;
  33859. + if (!_res.retry)
  33860. + _res.retry = 4;
  33861. + if (!(_res.options & RES_INIT))
  33862. + _res.options = RES_DEFAULT;
  33863. +
  33864. + /*
  33865. + * This one used to initialize implicitly to zero, so unless the app
  33866. + * has set it to something in particular, we can randomize it now.
  33867. + */
  33868. + if (!_res.id)
  33869. + _res.id = res_randomid();
  33870. +
  33871. + __res_sync = NULL;
  33872. + __res_vinit(&_res, 1);
  33873. + __res_sync = res_sync_func;
  33874. +
  33875. __UCLIBC_MUTEX_UNLOCK(__resolv_lock);
  33876. +
  33877. return 0;
  33878. }
  33879. +libc_hidden_def(res_init)
  33880. static void
  33881. -__res_iclose(void)
  33882. +__res_iclose(res_state statp)
  33883. {
  33884. + struct __res_state * rp = statp;
  33885. __UCLIBC_MUTEX_LOCK(__resolv_lock);
  33886. + if (rp == NULL)
  33887. + rp = __res_state();
  33888. __close_nameservers();
  33889. __res_sync = NULL;
  33890. #ifdef __UCLIBC_HAS_IPV6__
  33891. {
  33892. - char *p1 = (char*) &(_res.nsaddr_list[0]);
  33893. - int m = 0;
  33894. + char *p1 = (char*) &(rp->nsaddr_list[0]);
  33895. + unsigned int m = 0;
  33896. /* free nsaddrs[m] if they do not point to nsaddr_list[x] */
  33897. - while (m < ARRAY_SIZE(_res._u._ext.nsaddrs)) {
  33898. - char *p2 = (char*)(_res._u._ext.nsaddrs[m++]);
  33899. - if (p2 < p1 || (p2 - p1) > sizeof(_res.nsaddr_list))
  33900. + while (m < ARRAY_SIZE(rp->_u._ext.nsaddrs)) {
  33901. + char *p2 = (char*)(rp->_u._ext.nsaddrs[m++]);
  33902. + if (p2 < p1 || (p2 - p1) > (signed)sizeof(rp->nsaddr_list))
  33903. free(p2);
  33904. }
  33905. }
  33906. #endif
  33907. - memset(&_res, 0, sizeof(_res));
  33908. + memset(rp, 0, sizeof(struct __res_state));
  33909. __UCLIBC_MUTEX_UNLOCK(__resolv_lock);
  33910. }
  33911. @@ -3569,13 +3623,13 @@
  33912. void
  33913. res_nclose(res_state statp)
  33914. {
  33915. - __res_iclose();
  33916. + __res_iclose(statp);
  33917. }
  33918. #ifdef __UCLIBC_HAS_BSD_RES_CLOSE__
  33919. void res_close(void)
  33920. {
  33921. - __res_iclose();
  33922. + __res_iclose(NULL);
  33923. }
  33924. #endif
  33925. @@ -3595,74 +3649,14 @@
  33926. # if defined __UCLIBC_HAS_TLS__
  33927. # undef __resp
  33928. __thread struct __res_state *__resp = &_res;
  33929. -/*
  33930. - * FIXME: Add usage of hidden attribute for this when used in the shared
  33931. - * library. It currently crashes the linker when doing section
  33932. - * relocations.
  33933. - */
  33934. extern __thread struct __res_state *__libc_resp
  33935. - __attribute__ ((alias ("__resp"))) attribute_hidden;
  33936. + __attribute__ ((alias ("__resp"))) attribute_hidden attribute_tls_model_ie;
  33937. # else
  33938. # undef __resp
  33939. struct __res_state *__resp = &_res;
  33940. # endif
  33941. #endif /* !__UCLIBC_HAS_THREADS__ */
  33942. -static unsigned int
  33943. -res_randomid(void)
  33944. -{
  33945. - return 0xffff & getpid();
  33946. -}
  33947. -
  33948. -/* Our res_init never fails (always returns 0) */
  33949. -int
  33950. -res_init(void)
  33951. -{
  33952. - /*
  33953. - * These three fields used to be statically initialized. This made
  33954. - * it hard to use this code in a shared library. It is necessary,
  33955. - * now that we're doing dynamic initialization here, that we preserve
  33956. - * the old semantics: if an application modifies one of these three
  33957. - * fields of _res before res_init() is called, res_init() will not
  33958. - * alter them. Of course, if an application is setting them to
  33959. - * _zero_ before calling res_init(), hoping to override what used
  33960. - * to be the static default, we can't detect it and unexpected results
  33961. - * will follow. Zero for any of these fields would make no sense,
  33962. - * so one can safely assume that the applications were already getting
  33963. - * unexpected results.
  33964. - *
  33965. - * _res.options is tricky since some apps were known to diddle the bits
  33966. - * before res_init() was first called. We can't replicate that semantic
  33967. - * with dynamic initialization (they may have turned bits off that are
  33968. - * set in RES_DEFAULT). Our solution is to declare such applications
  33969. - * "broken". They could fool us by setting RES_INIT but none do (yet).
  33970. - */
  33971. -
  33972. - __UCLIBC_MUTEX_LOCK(__resolv_lock);
  33973. -
  33974. - if (!_res.retrans)
  33975. - _res.retrans = RES_TIMEOUT;
  33976. - if (!_res.retry)
  33977. - _res.retry = 4;
  33978. - if (!(_res.options & RES_INIT))
  33979. - _res.options = RES_DEFAULT;
  33980. -
  33981. - /*
  33982. - * This one used to initialize implicitly to zero, so unless the app
  33983. - * has set it to something in particular, we can randomize it now.
  33984. - */
  33985. - if (!_res.id)
  33986. - _res.id = res_randomid();
  33987. - __res_sync = res_sync_func;
  33988. -
  33989. - __UCLIBC_MUTEX_UNLOCK(__resolv_lock);
  33990. -
  33991. - __res_vinit(&_res, 1);
  33992. -
  33993. - return 0;
  33994. -}
  33995. -libc_hidden_def(res_init)
  33996. -
  33997. /*
  33998. * Set up default settings. If the configuration file exist, the values
  33999. * there will have precedence. Otherwise, the server address is set to
  34000. @@ -3687,7 +3681,11 @@
  34001. int
  34002. res_ninit(res_state statp)
  34003. {
  34004. - return __res_vinit(statp, 0);
  34005. + int ret;
  34006. + __UCLIBC_MUTEX_LOCK(__resolv_lock);
  34007. + ret = __res_vinit(statp, 0);
  34008. + __UCLIBC_MUTEX_UNLOCK(__resolv_lock);
  34009. + return ret;
  34010. }
  34011. #endif /* L_res_init */
  34012. @@ -3740,11 +3738,10 @@
  34013. free(a.dotted);
  34014. - if (a.atype == type) { /* CNAME */
  34015. - if (i > anslen)
  34016. - i = anslen;
  34017. - memcpy(answer, packet, i);
  34018. - }
  34019. + if (i > anslen)
  34020. + i = anslen;
  34021. + memcpy(answer, packet, i);
  34022. +
  34023. free(packet);
  34024. return i;
  34025. }
  34026. @@ -4227,7 +4224,7 @@
  34027. hp = (HEADER *) buf;
  34028. hp->id = getpid() & 0xffff;
  34029. hp->opcode = op;
  34030. - hp->rd = (_res.options & RES_RECURSE) != 0U;
  34031. + hp->rd = (_res_options & RES_RECURSE) != 0U;
  34032. hp->rcode = NOERROR;
  34033. cp = buf + HFIXEDSZ;
  34034. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/auth_none.c uClibc-git/libc/inet/rpc/auth_none.c
  34035. --- uClibc-0.9.33.2/libc/inet/rpc/auth_none.c 2012-05-15 09:20:09.000000000 +0200
  34036. +++ uClibc-git/libc/inet/rpc/auth_none.c 2014-06-02 17:40:33.966711719 +0200
  34037. @@ -35,8 +35,6 @@
  34038. * credentials and verifiers to remote systems.
  34039. */
  34040. -#define __FORCE_GLIBC
  34041. -#include <features.h>
  34042. #include "rpc_private.h"
  34043. @@ -66,49 +64,54 @@
  34044. char marshalled_client[MAX_MARSHAL_SIZE];
  34045. u_int mcnt;
  34046. };
  34047. +
  34048. +static struct authnone_private_s authnone_private;
  34049. #ifdef __UCLIBC_HAS_THREADS__
  34050. -#define authnone_private (*(struct authnone_private_s **)&RPC_THREAD_VARIABLE(authnone_private_s))
  34051. -#else
  34052. -static struct authnone_private_s *authnone_private;
  34053. +__libc_once_define(static, authnone_private_guard);
  34054. #endif
  34055. -AUTH *
  34056. -authnone_create (void)
  34057. +static void authnone_create_once (void);
  34058. +
  34059. +static void
  34060. +authnone_create_once (void)
  34061. {
  34062. struct authnone_private_s *ap;
  34063. XDR xdr_stream;
  34064. XDR *xdrs;
  34065. - ap = (struct authnone_private_s *) authnone_private;
  34066. - if (ap == NULL)
  34067. - {
  34068. - ap = (struct authnone_private_s *) calloc (1, sizeof (*ap));
  34069. - if (ap == NULL)
  34070. - return NULL;
  34071. - authnone_private = ap;
  34072. - }
  34073. - if (!ap->mcnt)
  34074. - {
  34075. - ap->no_client.ah_cred = ap->no_client.ah_verf = _null_auth;
  34076. - ap->no_client.ah_ops = (struct auth_ops *)&ops;
  34077. - xdrs = &xdr_stream;
  34078. - xdrmem_create (xdrs, ap->marshalled_client, (u_int) MAX_MARSHAL_SIZE,
  34079. - XDR_ENCODE);
  34080. - (void) xdr_opaque_auth (xdrs, &ap->no_client.ah_cred);
  34081. - (void) xdr_opaque_auth (xdrs, &ap->no_client.ah_verf);
  34082. - ap->mcnt = XDR_GETPOS (xdrs);
  34083. - XDR_DESTROY (xdrs);
  34084. - }
  34085. - return (&ap->no_client);
  34086. + ap = &authnone_private;
  34087. +
  34088. + ap->no_client.ah_cred = ap->no_client.ah_verf = _null_auth;
  34089. + ap->no_client.ah_ops = (struct auth_ops *) &ops;
  34090. + xdrs = &xdr_stream;
  34091. + xdrmem_create(xdrs, ap->marshalled_client,
  34092. + (u_int) MAX_MARSHAL_SIZE, XDR_ENCODE);
  34093. + (void) xdr_opaque_auth(xdrs, &ap->no_client.ah_cred);
  34094. + (void) xdr_opaque_auth(xdrs, &ap->no_client.ah_verf);
  34095. + ap->mcnt = XDR_GETPOS (xdrs);
  34096. + XDR_DESTROY (xdrs);
  34097. +}
  34098. +
  34099. +AUTH *
  34100. +authnone_create (void)
  34101. +{
  34102. +#ifdef __UCLIBC_HAS_THREADS__
  34103. + __libc_once (authnone_private_guard, authnone_create_once);
  34104. +#else
  34105. + authnone_create_once();
  34106. +#endif
  34107. + return &authnone_private.no_client;
  34108. }
  34109. libc_hidden_def(authnone_create)
  34110. static bool_t
  34111. -authnone_marshal (AUTH *client attribute_unused, XDR *xdrs)
  34112. +authnone_marshal (AUTH *client, XDR *xdrs)
  34113. {
  34114. struct authnone_private_s *ap;
  34115. - ap = authnone_private;
  34116. + /* authnone_create returned authnone_private->no_client, which is
  34117. + the first field of struct authnone_private_s. */
  34118. + ap = (struct authnone_private_s *) client;
  34119. if (ap == NULL)
  34120. return FALSE;
  34121. return (*xdrs->x_ops->x_putbytes) (xdrs, ap->marshalled_client, ap->mcnt);
  34122. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/auth_unix.c uClibc-git/libc/inet/rpc/auth_unix.c
  34123. --- uClibc-0.9.33.2/libc/inet/rpc/auth_unix.c 2012-05-15 09:20:09.000000000 +0200
  34124. +++ uClibc-git/libc/inet/rpc/auth_unix.c 2014-06-02 17:40:33.966711719 +0200
  34125. @@ -38,13 +38,11 @@
  34126. * for the credentials.
  34127. */
  34128. -#define __FORCE_GLIBC
  34129. -#include <features.h>
  34130. -
  34131. #include <limits.h>
  34132. #include <stdio.h>
  34133. #include <string.h>
  34134. #include <unistd.h>
  34135. +#include <libintl.h>
  34136. #include <sys/param.h>
  34137. #include <rpc/types.h>
  34138. @@ -52,10 +50,6 @@
  34139. #include <rpc/auth.h>
  34140. #include <rpc/auth_unix.h>
  34141. -#ifdef USE_IN_LIBIO
  34142. -# include <wchar.h>
  34143. -#endif
  34144. -
  34145. /*
  34146. * Unix authenticator operations vector
  34147. */
  34148. @@ -65,7 +59,7 @@
  34149. static bool_t authunix_refresh (AUTH *);
  34150. static void authunix_destroy (AUTH *);
  34151. -static struct auth_ops auth_unix_ops = {
  34152. +static const struct auth_ops auth_unix_ops = {
  34153. authunix_nextverf,
  34154. authunix_marshal,
  34155. authunix_validate,
  34156. @@ -111,13 +105,7 @@
  34157. if (auth == NULL || au == NULL)
  34158. {
  34159. no_memory:
  34160. -#ifdef USE_IN_LIBIO
  34161. - if (_IO_fwide (stderr, 0) > 0)
  34162. - (void) fwprintf (stderr, L"%s",
  34163. - _("authunix_create: out of memory\n"));
  34164. - else
  34165. -#endif
  34166. - (void) fputs (_("authunix_create: out of memory\n"), stderr);
  34167. + (void) fputs (_("authunix_create: out of memory\n"), stderr);
  34168. mem_free (auth, sizeof (*auth));
  34169. mem_free (au, sizeof (*au));
  34170. return NULL;
  34171. @@ -326,7 +314,7 @@
  34172. xdrmem_create (xdrs, au->au_marshed, MAX_AUTH_BYTES, XDR_ENCODE);
  34173. if ((!xdr_opaque_auth (xdrs, &(auth->ah_cred))) ||
  34174. (!xdr_opaque_auth (xdrs, &(auth->ah_verf))))
  34175. - perror (_("auth_none.c - Fatal marshalling problem"));
  34176. + perror (_("auth_unix.c - Fatal marshalling problem"));
  34177. else
  34178. au->au_mpos = XDR_GETPOS (xdrs);
  34179. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/bindresvport.c uClibc-git/libc/inet/rpc/bindresvport.c
  34180. --- uClibc-0.9.33.2/libc/inet/rpc/bindresvport.c 2012-05-15 09:20:09.000000000 +0200
  34181. +++ uClibc-git/libc/inet/rpc/bindresvport.c 2014-06-02 17:40:33.982711808 +0200
  34182. @@ -30,9 +30,6 @@
  34183. * Copyright (c) 1987 by Sun Microsystems, Inc.
  34184. */
  34185. -#define __FORCE_GLIBC
  34186. -#include <features.h>
  34187. -
  34188. #include <errno.h>
  34189. #include <unistd.h>
  34190. #include <string.h>
  34191. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_generic.c uClibc-git/libc/inet/rpc/clnt_generic.c
  34192. --- uClibc-0.9.33.2/libc/inet/rpc/clnt_generic.c 2012-05-15 09:20:09.000000000 +0200
  34193. +++ uClibc-git/libc/inet/rpc/clnt_generic.c 2014-06-02 17:40:33.982711808 +0200
  34194. @@ -30,9 +30,6 @@
  34195. * Copyright (C) 1987, Sun Microsystems, Inc.
  34196. */
  34197. -#define __FORCE_GLIBC
  34198. -#include <features.h>
  34199. -
  34200. #include <alloca.h>
  34201. #include <errno.h>
  34202. #include <string.h>
  34203. @@ -119,7 +116,7 @@
  34204. prttmpbuf = alloca (prtbuflen);
  34205. while (getprotobyname_r (proto, &protobuf, prttmpbuf, prtbuflen, &p) != 0
  34206. || p == NULL)
  34207. - if (errno != ERANGE)
  34208. + if (errno != ERANGE)
  34209. {
  34210. struct rpc_createerr *ce = &get_rpc_createerr ();
  34211. ce->cf_stat = RPC_UNKNOWNPROTO;
  34212. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_perror.c uClibc-git/libc/inet/rpc/clnt_perror.c
  34213. --- uClibc-0.9.33.2/libc/inet/rpc/clnt_perror.c 2012-05-15 09:20:09.000000000 +0200
  34214. +++ uClibc-git/libc/inet/rpc/clnt_perror.c 2014-06-02 17:40:33.982711808 +0200
  34215. @@ -38,19 +38,10 @@
  34216. *
  34217. */
  34218. -#define __FORCE_GLIBC
  34219. -#include <features.h>
  34220. -
  34221. #include <stdio.h>
  34222. #include <string.h>
  34223. #include "rpc_private.h"
  34224. -#ifdef USE_IN_LIBIO
  34225. -# include <wchar.h>
  34226. -# include <libio/iolibio.h>
  34227. -# define fputs(s, f) _IO_fputs (s, f)
  34228. -#endif
  34229. -
  34230. static char *auth_errmsg (enum auth_stat stat) internal_function;
  34231. #ifdef __UCLIBC_HAS_THREADS__
  34232. @@ -81,74 +72,74 @@
  34233. static const char rpc_errstr[] =
  34234. {
  34235. #define RPC_SUCCESS_IDX 0
  34236. - _("RPC: Success")
  34237. + N_("RPC: Success")
  34238. "\0"
  34239. #define RPC_CANTENCODEARGS_IDX (RPC_SUCCESS_IDX + sizeof "RPC: Success")
  34240. - _("RPC: Can't encode arguments")
  34241. + N_("RPC: Can't encode arguments")
  34242. "\0"
  34243. #define RPC_CANTDECODERES_IDX (RPC_CANTENCODEARGS_IDX \
  34244. + sizeof "RPC: Can't encode arguments")
  34245. - _("RPC: Can't decode result")
  34246. + N_("RPC: Can't decode result")
  34247. "\0"
  34248. #define RPC_CANTSEND_IDX (RPC_CANTDECODERES_IDX \
  34249. + sizeof "RPC: Can't decode result")
  34250. - _("RPC: Unable to send")
  34251. + N_("RPC: Unable to send")
  34252. "\0"
  34253. #define RPC_CANTRECV_IDX (RPC_CANTSEND_IDX \
  34254. + sizeof "RPC: Unable to send")
  34255. - _("RPC: Unable to receive")
  34256. + N_("RPC: Unable to receive")
  34257. "\0"
  34258. #define RPC_TIMEDOUT_IDX (RPC_CANTRECV_IDX \
  34259. + sizeof "RPC: Unable to receive")
  34260. - _("RPC: Timed out")
  34261. + N_("RPC: Timed out")
  34262. "\0"
  34263. #define RPC_VERSMISMATCH_IDX (RPC_TIMEDOUT_IDX \
  34264. + sizeof "RPC: Timed out")
  34265. - _("RPC: Incompatible versions of RPC")
  34266. + N_("RPC: Incompatible versions of RPC")
  34267. "\0"
  34268. #define RPC_AUTHERROR_IDX (RPC_VERSMISMATCH_IDX \
  34269. + sizeof "RPC: Incompatible versions of RPC")
  34270. - _("RPC: Authentication error")
  34271. + N_("RPC: Authentication error")
  34272. "\0"
  34273. #define RPC_PROGUNAVAIL_IDX (RPC_AUTHERROR_IDX \
  34274. + sizeof "RPC: Authentication error")
  34275. - _("RPC: Program unavailable")
  34276. + N_("RPC: Program unavailable")
  34277. "\0"
  34278. #define RPC_PROGVERSMISMATCH_IDX (RPC_PROGUNAVAIL_IDX \
  34279. + sizeof "RPC: Program unavailable")
  34280. - _("RPC: Program/version mismatch")
  34281. + N_("RPC: Program/version mismatch")
  34282. "\0"
  34283. #define RPC_PROCUNAVAIL_IDX (RPC_PROGVERSMISMATCH_IDX \
  34284. + sizeof "RPC: Program/version mismatch")
  34285. - _("RPC: Procedure unavailable")
  34286. + N_("RPC: Procedure unavailable")
  34287. "\0"
  34288. #define RPC_CANTDECODEARGS_IDX (RPC_PROCUNAVAIL_IDX \
  34289. + sizeof "RPC: Procedure unavailable")
  34290. - _("RPC: Server can't decode arguments")
  34291. + N_("RPC: Server can't decode arguments")
  34292. "\0"
  34293. #define RPC_SYSTEMERROR_IDX (RPC_CANTDECODEARGS_IDX \
  34294. + sizeof "RPC: Server can't decode arguments")
  34295. - _("RPC: Remote system error")
  34296. + N_("RPC: Remote system error")
  34297. "\0"
  34298. #define RPC_UNKNOWNHOST_IDX (RPC_SYSTEMERROR_IDX \
  34299. + sizeof "RPC: Remote system error")
  34300. - _("RPC: Unknown host")
  34301. + N_("RPC: Unknown host")
  34302. "\0"
  34303. #define RPC_UNKNOWNPROTO_IDX (RPC_UNKNOWNHOST_IDX \
  34304. + sizeof "RPC: Unknown host")
  34305. - _("RPC: Unknown protocol")
  34306. + N_("RPC: Unknown protocol")
  34307. "\0"
  34308. #define RPC_PMAPFAILURE_IDX (RPC_UNKNOWNPROTO_IDX \
  34309. + sizeof "RPC: Unknown protocol")
  34310. - _("RPC: Port mapper failure")
  34311. + N_("RPC: Port mapper failure")
  34312. "\0"
  34313. #define RPC_PROGNOTREGISTERED_IDX (RPC_PMAPFAILURE_IDX \
  34314. + sizeof "RPC: Port mapper failure")
  34315. - _("RPC: Program not registered")
  34316. + N_("RPC: Program not registered")
  34317. "\0"
  34318. #define RPC_FAILED_IDX (RPC_PROGNOTREGISTERED_IDX \
  34319. + sizeof "RPC: Program not registered")
  34320. - _("RPC: Failed (unspecified error)")
  34321. + N_("RPC: Failed (unspecified error)")
  34322. };
  34323. static const struct rpc_errtab rpc_errlist[] =
  34324. @@ -189,19 +180,14 @@
  34325. return (char*)_(rpc_errstr + rpc_errlist[i].message_off);
  34326. }
  34327. }
  34328. - return _("RPC: (unknown error code)");
  34329. + return N_("RPC: (unknown error code)");
  34330. }
  34331. libc_hidden_def(clnt_sperrno)
  34332. void
  34333. clnt_perrno (enum clnt_stat num)
  34334. {
  34335. -#ifdef USE_IN_LIBIO
  34336. - if (_IO_fwide (stderr, 0) > 0)
  34337. - (void) fwprintf (stderr, L"%s", clnt_sperrno (num));
  34338. - else
  34339. -#endif
  34340. - (void) fputs (clnt_sperrno (num), stderr);
  34341. + (void) fputs (clnt_sperrno (num), stderr);
  34342. }
  34343. /*
  34344. @@ -295,12 +281,7 @@
  34345. void
  34346. clnt_perror (CLIENT * rpch, const char *msg)
  34347. {
  34348. -#ifdef USE_IN_LIBIO
  34349. - if (_IO_fwide (stderr, 0) > 0)
  34350. - (void) fwprintf (stderr, L"%s", clnt_sperror (rpch, msg));
  34351. - else
  34352. -#endif
  34353. - (void) fputs (clnt_sperror (rpch, msg), stderr);
  34354. + (void) fputs (clnt_sperror (rpch, msg), stderr);
  34355. }
  34356. libc_hidden_def(clnt_perror)
  34357. @@ -352,12 +333,7 @@
  34358. void
  34359. clnt_pcreateerror (const char *msg)
  34360. {
  34361. -#ifdef USE_IN_LIBIO
  34362. - if (_IO_fwide (stderr, 0) > 0)
  34363. - (void) fwprintf (stderr, L"%s", clnt_spcreateerror (msg));
  34364. - else
  34365. -#endif
  34366. - (void) fputs (clnt_spcreateerror (msg), stderr);
  34367. + (void) fputs (clnt_spcreateerror (msg), stderr);
  34368. }
  34369. struct auth_errtab
  34370. @@ -369,34 +345,34 @@
  34371. static const char auth_errstr[] =
  34372. {
  34373. #define AUTH_OK_IDX 0
  34374. - _("Authentication OK")
  34375. + N_("Authentication OK")
  34376. "\0"
  34377. #define AUTH_BADCRED_IDX (AUTH_OK_IDX + sizeof "Authentication OK")
  34378. - _("Invalid client credential")
  34379. + N_("Invalid client credential")
  34380. "\0"
  34381. #define AUTH_REJECTEDCRED_IDX (AUTH_BADCRED_IDX \
  34382. + sizeof "Invalid client credential")
  34383. - _("Server rejected credential")
  34384. + N_("Server rejected credential")
  34385. "\0"
  34386. #define AUTH_BADVERF_IDX (AUTH_REJECTEDCRED_IDX \
  34387. + sizeof "Server rejected credential")
  34388. - _("Invalid client verifier")
  34389. + N_("Invalid client verifier")
  34390. "\0"
  34391. #define AUTH_REJECTEDVERF_IDX (AUTH_BADVERF_IDX \
  34392. + sizeof "Invalid client verifier")
  34393. - _("Server rejected verifier")
  34394. + N_("Server rejected verifier")
  34395. "\0"
  34396. #define AUTH_TOOWEAK_IDX (AUTH_REJECTEDVERF_IDX \
  34397. + sizeof "Server rejected verifier")
  34398. - _("Client credential too weak")
  34399. + N_("Client credential too weak")
  34400. "\0"
  34401. #define AUTH_INVALIDRESP_IDX (AUTH_TOOWEAK_IDX \
  34402. + sizeof "Client credential too weak")
  34403. - _("Invalid server verifier")
  34404. + N_("Invalid server verifier")
  34405. "\0"
  34406. #define AUTH_FAILED_IDX (AUTH_INVALIDRESP_IDX \
  34407. + sizeof "Invalid server verifier")
  34408. - _("Failed (unspecified error)")
  34409. + N_("Failed (unspecified error)")
  34410. };
  34411. static const struct auth_errtab auth_errlist[] =
  34412. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_raw.c uClibc-git/libc/inet/rpc/clnt_raw.c
  34413. --- uClibc-0.9.33.2/libc/inet/rpc/clnt_raw.c 2012-05-15 09:20:09.000000000 +0200
  34414. +++ uClibc-git/libc/inet/rpc/clnt_raw.c 2014-06-02 17:40:33.982711808 +0200
  34415. @@ -42,7 +42,6 @@
  34416. * any interference from the kernel.
  34417. */
  34418. -#define __FORCE_GLIBC
  34419. #include <features.h>
  34420. #include "rpc_private.h"
  34421. #include <rpc/svc.h>
  34422. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_simple.c uClibc-git/libc/inet/rpc/clnt_simple.c
  34423. --- uClibc-0.9.33.2/libc/inet/rpc/clnt_simple.c 2012-05-15 09:20:09.000000000 +0200
  34424. +++ uClibc-git/libc/inet/rpc/clnt_simple.c 2014-06-02 17:40:33.982711808 +0200
  34425. @@ -38,9 +38,6 @@
  34426. * Copyright (C) 1984, Sun Microsystems, Inc.
  34427. */
  34428. -#define __FORCE_GLIBC
  34429. -#include <features.h>
  34430. -
  34431. #include <alloca.h>
  34432. #include <errno.h>
  34433. #include <stdio.h>
  34434. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_tcp.c uClibc-git/libc/inet/rpc/clnt_tcp.c
  34435. --- uClibc-0.9.33.2/libc/inet/rpc/clnt_tcp.c 2012-05-15 09:20:09.000000000 +0200
  34436. +++ uClibc-git/libc/inet/rpc/clnt_tcp.c 2014-06-02 17:40:33.982711808 +0200
  34437. @@ -50,22 +50,14 @@
  34438. * Now go hang yourself.
  34439. */
  34440. -#define __FORCE_GLIBC
  34441. -#include <features.h>
  34442. -
  34443. #include <netdb.h>
  34444. #include <errno.h>
  34445. #include <stdio.h>
  34446. #include <unistd.h>
  34447. -#include <rpc/rpc.h>
  34448. +#include "rpc_private.h"
  34449. #include <sys/poll.h>
  34450. #include <sys/socket.h>
  34451. #include <rpc/pmap_clnt.h>
  34452. -#ifdef USE_IN_LIBIO
  34453. -# include <wchar.h>
  34454. -#endif
  34455. -
  34456. -extern u_long _create_xid (void) attribute_hidden;
  34457. #define MCALL_MSG_SIZE 24
  34458. @@ -130,13 +122,7 @@
  34459. if (h == NULL || ct == NULL)
  34460. {
  34461. struct rpc_createerr *ce = &get_rpc_createerr ();
  34462. -#ifdef USE_IN_LIBIO
  34463. - if (_IO_fwide (stderr, 0) > 0)
  34464. - (void) fwprintf (stderr, L"%s",
  34465. - _("clnttcp_create: out of memory\n"));
  34466. - else
  34467. -#endif
  34468. - (void) fputs (_("clnttcp_create: out of memory\n"), stderr);
  34469. + (void) fputs (_("clnttcp_create: out of memory\n"), stderr);
  34470. ce->cf_stat = RPC_SYSTEMERROR;
  34471. ce->cf_error.re_errno = ENOMEM;
  34472. goto fooy;
  34473. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_udp.c uClibc-git/libc/inet/rpc/clnt_udp.c
  34474. --- uClibc-0.9.33.2/libc/inet/rpc/clnt_udp.c 2012-05-15 09:20:09.000000000 +0200
  34475. +++ uClibc-git/libc/inet/rpc/clnt_udp.c 2014-06-02 17:40:33.982711808 +0200
  34476. @@ -37,12 +37,9 @@
  34477. * Copyright (C) 1984, Sun Microsystems, Inc.
  34478. */
  34479. -#define __FORCE_GLIBC
  34480. -#include <features.h>
  34481. -
  34482. #include <stdio.h>
  34483. #include <unistd.h>
  34484. -#include <rpc/rpc.h>
  34485. +#include "rpc_private.h"
  34486. #include <rpc/xdr.h>
  34487. #include <rpc/clnt.h>
  34488. #include <sys/poll.h>
  34489. @@ -52,20 +49,12 @@
  34490. #include <errno.h>
  34491. #include <rpc/pmap_clnt.h>
  34492. #include <net/if.h>
  34493. -#ifdef USE_IN_LIBIO
  34494. -# include <wchar.h>
  34495. -#endif
  34496. #ifdef IP_RECVERR
  34497. #include "errqueue.h"
  34498. #include <sys/uio.h>
  34499. #endif
  34500. -/* CMSG_NXTHDR is using it */
  34501. -
  34502. -
  34503. -extern u_long _create_xid (void) attribute_hidden;
  34504. -
  34505. /*
  34506. * UDP bases client side rpc operations
  34507. */
  34508. @@ -116,7 +105,7 @@
  34509. * NB: The rpch->cl_auth is initialized to null authentication.
  34510. * Caller may wish to set this something more useful.
  34511. *
  34512. - * wait is the amount of time used between retransmitting a call if
  34513. + * _wait is the amount of time used between retransmitting a call if
  34514. * no response has been heard; retransmission occurs until the actual
  34515. * rpc call times out.
  34516. *
  34517. @@ -125,7 +114,7 @@
  34518. */
  34519. CLIENT *
  34520. clntudp_bufcreate (struct sockaddr_in *raddr, u_long program, u_long version,
  34521. - struct timeval wait, int *sockp, u_int sendsz,
  34522. + struct timeval _wait, int *sockp, u_int sendsz,
  34523. u_int recvsz)
  34524. {
  34525. CLIENT *cl;
  34526. @@ -139,13 +128,7 @@
  34527. if (cl == NULL || cu == NULL)
  34528. {
  34529. struct rpc_createerr *ce = &get_rpc_createerr ();
  34530. -#ifdef USE_IN_LIBIO
  34531. - if (_IO_fwide (stderr, 0) > 0)
  34532. - (void) fwprintf (stderr, L"%s",
  34533. - _("clntudp_create: out of memory\n"));
  34534. - else
  34535. -#endif
  34536. - (void) fputs (_("clntudp_create: out of memory\n"), stderr);
  34537. + (void) fputs (_("clntudp_create: out of memory\n"), stderr);
  34538. ce->cf_stat = RPC_SYSTEMERROR;
  34539. ce->cf_error.re_errno = ENOMEM;
  34540. goto fooy;
  34541. @@ -166,7 +149,7 @@
  34542. cl->cl_private = (caddr_t) cu;
  34543. cu->cu_raddr = *raddr;
  34544. cu->cu_rlen = sizeof (cu->cu_raddr);
  34545. - cu->cu_wait = wait;
  34546. + cu->cu_wait = _wait;
  34547. cu->cu_total.tv_sec = -1;
  34548. cu->cu_total.tv_usec = -1;
  34549. cu->cu_sendsz = sendsz;
  34550. @@ -224,10 +207,10 @@
  34551. libc_hidden_def(clntudp_bufcreate)
  34552. CLIENT *
  34553. -clntudp_create (struct sockaddr_in *raddr, u_long program, u_long version, struct timeval wait, int *sockp)
  34554. +clntudp_create (struct sockaddr_in *raddr, u_long program, u_long version, struct timeval _wait, int *sockp)
  34555. {
  34556. - return clntudp_bufcreate (raddr, program, version, wait, sockp,
  34557. + return clntudp_bufcreate (raddr, program, version, _wait, sockp,
  34558. UDPMSGSIZE, UDPMSGSIZE);
  34559. }
  34560. libc_hidden_def(clntudp_create)
  34561. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/clnt_unix.c uClibc-git/libc/inet/rpc/clnt_unix.c
  34562. --- uClibc-0.9.33.2/libc/inet/rpc/clnt_unix.c 2012-05-15 09:20:09.000000000 +0200
  34563. +++ uClibc-git/libc/inet/rpc/clnt_unix.c 2014-06-02 17:40:33.982711808 +0200
  34564. @@ -46,24 +46,15 @@
  34565. * Now go hang yourself.
  34566. */
  34567. -#define __FORCE_GLIBC
  34568. -#include <features.h>
  34569. -
  34570. #include <netdb.h>
  34571. #include <errno.h>
  34572. #include <stdio.h>
  34573. #include <unistd.h>
  34574. -#include <rpc/rpc.h>
  34575. +#include "rpc_private.h"
  34576. #include <sys/uio.h>
  34577. #include <sys/poll.h>
  34578. #include <sys/socket.h>
  34579. #include <rpc/pmap_clnt.h>
  34580. -#ifdef USE_IN_LIBIO
  34581. -# include <wchar.h>
  34582. -#endif
  34583. -
  34584. -
  34585. -extern u_long _create_xid (void) attribute_hidden;
  34586. #define MCALL_MSG_SIZE 24
  34587. @@ -128,13 +119,7 @@
  34588. if (h == NULL || ct == NULL)
  34589. {
  34590. struct rpc_createerr *ce = &get_rpc_createerr ();
  34591. -#ifdef USE_IN_LIBIO
  34592. - if (_IO_fwide (stderr, 0) > 0)
  34593. - (void) fwprintf (stderr, L"%s",
  34594. - _("clntunix_create: out of memory\n"));
  34595. - else
  34596. -#endif
  34597. - (void) fputs (_("clntunix_create: out of memory\n"), stderr);
  34598. + (void) fputs (_("clntunix_create: out of memory\n"), stderr);
  34599. ce->cf_stat = RPC_SYSTEMERROR;
  34600. ce->cf_error.re_errno = ENOMEM;
  34601. goto fooy;
  34602. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/create_xid.c uClibc-git/libc/inet/rpc/create_xid.c
  34603. --- uClibc-0.9.33.2/libc/inet/rpc/create_xid.c 2012-05-15 09:20:09.000000000 +0200
  34604. +++ uClibc-git/libc/inet/rpc/create_xid.c 2014-06-02 17:40:33.982711808 +0200
  34605. @@ -13,17 +13,13 @@
  34606. Lesser General Public License for more details.
  34607. You should have received a copy of the GNU Lesser General Public
  34608. - License along with the GNU C Library; if not, write to the Free
  34609. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  34610. - 02111-1307 USA. */
  34611. -
  34612. -#define __FORCE_GLIBC
  34613. -#include <features.h>
  34614. + License along with the GNU C Library; if not, see
  34615. + <http://www.gnu.org/licenses/>. */
  34616. #include <unistd.h>
  34617. #include <stdlib.h>
  34618. #include <sys/time.h>
  34619. -#include <rpc/rpc.h>
  34620. +#include "rpc_private.h"
  34621. /* The RPC code is not threadsafe, but new code should be threadsafe. */
  34622. @@ -34,7 +30,6 @@
  34623. static smallint is_initialized;
  34624. static struct drand48_data __rpc_lrand48_data;
  34625. -u_long _create_xid (void) attribute_hidden;
  34626. u_long _create_xid (void)
  34627. {
  34628. long res;
  34629. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/errqueue.h uClibc-git/libc/inet/rpc/errqueue.h
  34630. --- uClibc-0.9.33.2/libc/inet/rpc/errqueue.h 2012-05-15 09:20:09.000000000 +0200
  34631. +++ uClibc-git/libc/inet/rpc/errqueue.h 2014-06-02 17:40:33.982711808 +0200
  34632. @@ -12,9 +12,8 @@
  34633. Lesser General Public License for more details.
  34634. You should have received a copy of the GNU Lesser General Public
  34635. - License along with the GNU C Library; if not, write to the Free
  34636. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  34637. - 02111-1307 USA. */
  34638. + License along with the GNU C Library; if not, see
  34639. + <http://www.gnu.org/licenses/>. */
  34640. /* Linux version. */
  34641. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/get_myaddress.c uClibc-git/libc/inet/rpc/get_myaddress.c
  34642. --- uClibc-0.9.33.2/libc/inet/rpc/get_myaddress.c 2012-05-15 09:20:09.000000000 +0200
  34643. +++ uClibc-git/libc/inet/rpc/get_myaddress.c 2014-06-02 17:40:33.982711808 +0200
  34644. @@ -44,6 +44,7 @@
  34645. #include <sys/socket.h>
  34646. #include <stdio.h>
  34647. #include <unistd.h>
  34648. +#include <libintl.h>
  34649. #include <net/if.h>
  34650. #include <sys/ioctl.h>
  34651. /* Order of following two #includes reversed by roland@gnu */
  34652. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/getrpcent.c uClibc-git/libc/inet/rpc/getrpcent.c
  34653. --- uClibc-0.9.33.2/libc/inet/rpc/getrpcent.c 2012-05-15 09:20:09.000000000 +0200
  34654. +++ uClibc-git/libc/inet/rpc/getrpcent.c 2014-06-02 17:40:33.982711808 +0200
  34655. @@ -33,8 +33,6 @@
  34656. * Copyright (c) 1985 by Sun Microsystems, Inc.
  34657. */
  34658. -#define __FORCE_GLIBC
  34659. -#include <features.h>
  34660. #include <stdio.h>
  34661. #include <string.h>
  34662. #include <sys/types.h>
  34663. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/getrpcport.c uClibc-git/libc/inet/rpc/getrpcport.c
  34664. --- uClibc-0.9.33.2/libc/inet/rpc/getrpcport.c 2012-05-15 09:20:09.000000000 +0200
  34665. +++ uClibc-git/libc/inet/rpc/getrpcport.c 2014-06-02 17:40:33.982711808 +0200
  34666. @@ -35,9 +35,6 @@
  34667. * Copyright (c) 1985 by Sun Microsystems, Inc.
  34668. */
  34669. -#define __FORCE_GLIBC
  34670. -#include <features.h>
  34671. -
  34672. #include <alloca.h>
  34673. #include <errno.h>
  34674. #include <stdio.h>
  34675. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/Makefile.in uClibc-git/libc/inet/rpc/Makefile.in
  34676. --- uClibc-0.9.33.2/libc/inet/rpc/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  34677. +++ uClibc-git/libc/inet/rpc/Makefile.in 2014-06-02 17:40:33.966711719 +0200
  34678. @@ -9,9 +9,8 @@
  34679. CFLAGS-rpc := -fno-strict-aliasing
  34680. -ifneq ($(UCLIBC_HAS_FULL_RPC),y)
  34681. # For now, only compile the stuff needed to do an NFS mount....
  34682. -CSRC:= authunix_prot.c auth_none.c auth_unix.c bindresvport.c \
  34683. +CSRC_NFS = authunix_prot.c auth_none.c auth_unix.c bindresvport.c \
  34684. clnt_perror.c clnt_simple.c clnt_tcp.c clnt_udp.c \
  34685. create_xid.c getrpcent.c \
  34686. pmap_clnt.c pm_getmaps.c pm_getport.c pmap_prot.c pmap_prot2.c \
  34687. @@ -19,27 +18,23 @@
  34688. rpc_prot.c rpc_thread.c rtime.c ruserpass.c sa_len.c \
  34689. svc.c svc_auth.c svc_authux.c \
  34690. xdr.c xdr_array.c xdr_mem.c xdr_rec.c xdr_reference.c
  34691. -endif
  34692. INET_RPC_DIR:=$(top_srcdir)libc/inet/rpc
  34693. INET_RPC_OUT:=$(top_builddir)libc/inet/rpc
  34694. -ifeq ($(UCLIBC_HAS_FULL_RPC),y)
  34695. -INET_RPC_SRC:=$(wildcard $(INET_RPC_DIR)/*.c)
  34696. -else
  34697. -INET_RPC_SRC:=$(patsubst %.c,$(INET_RPC_DIR)/%.c,$(CSRC))
  34698. -endif
  34699. -# rpc_thread.oS is better, because the header adds unneeded references to __pthread_internal_tsd*
  34700. -INET_RPC_SRC:=$(filter-out $(INET_RPC_DIR)/rpc_thread.c,$(INET_RPC_SRC))
  34701. +CSRC_ALL = $(notdir $(wildcard $(INET_RPC_DIR)/*.c))
  34702. +CSRC-y := $(if $(UCLIBC_HAS_FULL_RPC),$(CSRC_ALL),$(CSRC_NFS))
  34703. +# rpc_thread.oS is better, because the header adds unneeded references
  34704. +# to __pthread_internal_tsd*
  34705. +CSRC-y := $(filter-out rpc_thread.c,$(CSRC-y))
  34706. -INET_RPC_OBJ:=$(patsubst $(INET_RPC_DIR)/%.c,$(INET_RPC_OUT)/%.o,$(INET_RPC_SRC))
  34707. -
  34708. -libc-static-$(UCLIBC_HAS_RPC)+=$(INET_RPC_OUT)/rpc_thread.o
  34709. -libc-shared-$(UCLIBC_HAS_RPC)+=$(INET_RPC_OUT)/rpc_thread.oS
  34710. +INET_RPC_SRC:=$(patsubst %.c,$(INET_RPC_DIR)/%.c,$(CSRC-y))
  34711. +INET_RPC_OBJ:=$(patsubst %.c,$(INET_RPC_OUT)/%.o,$(CSRC-y))
  34712. +libc-static-$(UCLIBC_HAS_RPC) += $(INET_RPC_OUT)/rpc_thread.o
  34713. +libc-shared-$(UCLIBC_HAS_RPC) += $(INET_RPC_OUT)/rpc_thread.oS
  34714. libc-nomulti-$(UCLIBC_HAS_RPC) += $(INET_RPC_OUT)/rpc_thread.o
  34715. -
  34716. -libc-$(UCLIBC_HAS_RPC)+=$(INET_RPC_OBJ)
  34717. +libc-$(UCLIBC_HAS_RPC) += $(INET_RPC_OBJ)
  34718. objclean-y+=CLEAN_libc/inet/rpc
  34719. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/pmap_clnt.c uClibc-git/libc/inet/rpc/pmap_clnt.c
  34720. --- uClibc-0.9.33.2/libc/inet/rpc/pmap_clnt.c 2012-05-15 09:20:09.000000000 +0200
  34721. +++ uClibc-git/libc/inet/rpc/pmap_clnt.c 2014-06-02 17:40:33.982711808 +0200
  34722. @@ -34,9 +34,6 @@
  34723. * Client interface to pmap rpc service.
  34724. */
  34725. -#define __FORCE_GLIBC
  34726. -#include <features.h>
  34727. -
  34728. #include <stdio.h>
  34729. #include <unistd.h>
  34730. #include <net/if.h>
  34731. @@ -44,7 +41,7 @@
  34732. #include <sys/socket.h>
  34733. #include <netinet/in.h>
  34734. #include <arpa/inet.h>
  34735. -#include <rpc/rpc.h>
  34736. +#include "rpc_private.h"
  34737. #include <rpc/pmap_prot.h>
  34738. #include <rpc/pmap_clnt.h>
  34739. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/pmap_rmt.c uClibc-git/libc/inet/rpc/pmap_rmt.c
  34740. --- uClibc-0.9.33.2/libc/inet/rpc/pmap_rmt.c 2012-05-15 09:20:09.000000000 +0200
  34741. +++ uClibc-git/libc/inet/rpc/pmap_rmt.c 2014-06-02 17:40:33.982711808 +0200
  34742. @@ -39,12 +39,9 @@
  34743. * Copyright (C) 1984, Sun Microsystems, Inc.
  34744. */
  34745. -#define __FORCE_GLIBC
  34746. -#include <features.h>
  34747. -
  34748. #include <unistd.h>
  34749. #include <string.h>
  34750. -#include <rpc/rpc.h>
  34751. +#include "rpc_private.h"
  34752. #include <rpc/pmap_prot.h>
  34753. #include <rpc/pmap_clnt.h>
  34754. #include <rpc/pmap_rmt.h>
  34755. @@ -52,17 +49,12 @@
  34756. #include <sys/socket.h>
  34757. #include <stdio.h>
  34758. #include <errno.h>
  34759. -#undef _POSIX_SOURCE /* Ultrix <sys/param.h> needs --roland@gnu */
  34760. #include <sys/param.h> /* Ultrix needs before net/if --roland@gnu */
  34761. #include <net/if.h>
  34762. #include <sys/ioctl.h>
  34763. #include <arpa/inet.h>
  34764. #define MAX_BROADCAST_SIZE 1400
  34765. -
  34766. -
  34767. -extern u_long _create_xid (void) attribute_hidden;
  34768. -
  34769. static const struct timeval timeout = {3, 0};
  34770. /*
  34771. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/pm_getmaps.c uClibc-git/libc/inet/rpc/pm_getmaps.c
  34772. --- uClibc-0.9.33.2/libc/inet/rpc/pm_getmaps.c 2012-05-15 09:20:09.000000000 +0200
  34773. +++ uClibc-git/libc/inet/rpc/pm_getmaps.c 2014-06-02 17:40:33.982711808 +0200
  34774. @@ -39,7 +39,7 @@
  34775. * Copyright (C) 1984, Sun Microsystems, Inc.
  34776. */
  34777. -#include <rpc/rpc.h>
  34778. +#include "rpc_private.h"
  34779. #include <rpc/pmap_prot.h>
  34780. #include <rpc/pmap_clnt.h>
  34781. #include <netdb.h>
  34782. @@ -78,7 +78,7 @@
  34783. }
  34784. CLNT_DESTROY (client);
  34785. }
  34786. - /* (void)__close(_socket); CLNT_DESTROY already closed it */
  34787. + /* (void)close(_socket); CLNT_DESTROY already closed it */
  34788. address->sin_port = 0;
  34789. return head;
  34790. }
  34791. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/pm_getport.c uClibc-git/libc/inet/rpc/pm_getport.c
  34792. --- uClibc-0.9.33.2/libc/inet/rpc/pm_getport.c 2012-05-15 09:20:09.000000000 +0200
  34793. +++ uClibc-git/libc/inet/rpc/pm_getport.c 2014-06-02 17:40:33.982711808 +0200
  34794. @@ -65,7 +65,19 @@
  34795. struct pmap parms;
  34796. address->sin_port = htons (PMAPPORT);
  34797. - client = clntudp_bufcreate (address, PMAPPROG,
  34798. + if (protocol == IPPROTO_TCP)
  34799. + {
  34800. + // glibc does this:
  34801. + ///* Don't need a reserved port to get ports from the portmapper. */
  34802. + //socket = __get_socket(address); // does socket(TCP),bind(),connect(address)
  34803. + //if (_socket != -1)
  34804. + // closeit = true;
  34805. + // do we need/want to do the same?
  34806. + client = clnttcp_create (address, PMAPPROG,
  34807. + PMAPVERS, &_socket, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE);
  34808. + }
  34809. + else
  34810. + client = clntudp_bufcreate (address, PMAPPROG,
  34811. PMAPVERS, timeout, &_socket, RPCSMALLMSGSIZE, RPCSMALLMSGSIZE);
  34812. if (client != (CLIENT *) NULL)
  34813. {
  34814. @@ -87,7 +99,7 @@
  34815. }
  34816. CLNT_DESTROY (client);
  34817. }
  34818. - /* (void)__close(_socket); CLNT_DESTROY already closed it */
  34819. + /* (void)close(_socket); CLNT_DESTROY already closed it */
  34820. address->sin_port = 0;
  34821. return port;
  34822. }
  34823. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rcmd.c uClibc-git/libc/inet/rpc/rcmd.c
  34824. --- uClibc-0.9.33.2/libc/inet/rpc/rcmd.c 2012-05-15 09:20:09.000000000 +0200
  34825. +++ uClibc-git/libc/inet/rpc/rcmd.c 2014-06-02 17:40:33.982711808 +0200
  34826. @@ -76,7 +76,6 @@
  34827. #include <pwd.h>
  34828. #include <errno.h>
  34829. #include <stdio.h>
  34830. -#include <stdio_ext.h>
  34831. #include <ctype.h>
  34832. #include <string.h>
  34833. #include <libintl.h>
  34834. @@ -87,6 +86,11 @@
  34835. #include <sys/uio.h>
  34836. #include <bits/uClibc_alloc.h>
  34837. +/* sigsetmask and sigblock are not provided anymore, until this file is corrected,
  34838. + * include the sources */
  34839. +#include "../../signal/sigblock.c"
  34840. +#include "../../signal/sigsetmask.c"
  34841. +
  34842. /* some forward declarations */
  34843. static int __ivaliduser2(FILE *hostf, u_int32_t raddr,
  34844. @@ -146,7 +150,7 @@
  34845. pfd[1].events = POLLIN;
  34846. *ahost = hp->h_name;
  34847. - oldmask = sigblock(sigmask(SIGURG)); /* __sigblock */
  34848. + oldmask = sigblock(__sigmask(SIGURG)); /* sigblock */
  34849. for (timo = 1, lport = IPPORT_RESERVED - 1;;) {
  34850. s = rresvport(&lport);
  34851. if (s < 0) {
  34852. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rexec.c uClibc-git/libc/inet/rpc/rexec.c
  34853. --- uClibc-0.9.33.2/libc/inet/rpc/rexec.c 2012-05-15 09:20:09.000000000 +0200
  34854. +++ uClibc-git/libc/inet/rpc/rexec.c 2014-06-02 17:40:33.982711808 +0200
  34855. @@ -27,8 +27,6 @@
  34856. * SUCH DAMAGE.
  34857. */
  34858. -#define __FORCE_GLIBC
  34859. -#include <features.h>
  34860. #include <sys/types.h>
  34861. #include <sys/socket.h>
  34862. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rpc_cmsg.c uClibc-git/libc/inet/rpc/rpc_cmsg.c
  34863. --- uClibc-0.9.33.2/libc/inet/rpc/rpc_cmsg.c 2012-05-15 09:20:09.000000000 +0200
  34864. +++ uClibc-git/libc/inet/rpc/rpc_cmsg.c 2014-06-02 17:40:33.982711808 +0200
  34865. @@ -38,9 +38,6 @@
  34866. *
  34867. */
  34868. -#define __FORCE_GLIBC
  34869. -#include <features.h>
  34870. -
  34871. #include <string.h>
  34872. #include <sys/param.h>
  34873. #include <rpc/rpc.h>
  34874. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rpc_dtablesize.c uClibc-git/libc/inet/rpc/rpc_dtablesize.c
  34875. --- uClibc-0.9.33.2/libc/inet/rpc/rpc_dtablesize.c 2012-05-15 09:20:09.000000000 +0200
  34876. +++ uClibc-git/libc/inet/rpc/rpc_dtablesize.c 2014-06-02 17:40:33.982711808 +0200
  34877. @@ -31,10 +31,6 @@
  34878. static char sccsid[] = "@(#)rpc_dtablesize.c 1.2 87/08/11 Copyr 1987 Sun Micro";
  34879. #endif
  34880. -#define __FORCE_GLIBC
  34881. -#define __USE_BSD
  34882. -#include <features.h>
  34883. -
  34884. #include <unistd.h>
  34885. #include <rpc/clnt.h>
  34886. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rpc_private.h uClibc-git/libc/inet/rpc/rpc_private.h
  34887. --- uClibc-0.9.33.2/libc/inet/rpc/rpc_private.h 2012-05-15 09:20:09.000000000 +0200
  34888. +++ uClibc-git/libc/inet/rpc/rpc_private.h 2014-06-02 17:40:33.982711808 +0200
  34889. @@ -1,5 +1,7 @@
  34890. -#ifndef _RPC_RPC_H
  34891. +#ifndef _RPC_PRIVATE_H
  34892. +#define _RPC_PRIVATE_H
  34893. #include <rpc/rpc.h>
  34894. +#include <libintl.h>
  34895. /* Now define the internal interfaces. */
  34896. extern u_long _create_xid (void) attribute_hidden;
  34897. @@ -12,14 +14,13 @@
  34898. */
  34899. #ifdef __UCLIBC_HAS_THREADS__
  34900. #include <pthread.h>
  34901. +#include <bits/libc-lock.h>
  34902. struct rpc_thread_variables {
  34903. fd_set svc_fdset_s; /* Global, rpc_common.c */
  34904. struct rpc_createerr rpc_createerr_s; /* Global, rpc_common.c */
  34905. struct pollfd *svc_pollfd_s; /* Global, rpc_common.c */
  34906. int svc_max_pollfd_s; /* Global, rpc_common.c */
  34907. - void *authnone_private_s; /* auth_none.c */
  34908. -
  34909. void *clnt_perr_buf_s; /* clnt_perr.c */
  34910. void *clntraw_private_s; /* clnt_raw.c */
  34911. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rpc_prot.c uClibc-git/libc/inet/rpc/rpc_prot.c
  34912. --- uClibc-0.9.33.2/libc/inet/rpc/rpc_prot.c 2012-05-15 09:20:09.000000000 +0200
  34913. +++ uClibc-git/libc/inet/rpc/rpc_prot.c 2014-06-02 17:40:33.982711808 +0200
  34914. @@ -44,9 +44,6 @@
  34915. * routines are also in this program.
  34916. */
  34917. -#define __FORCE_GLIBC
  34918. -#include <features.h>
  34919. -
  34920. #include <sys/param.h>
  34921. #include <rpc/rpc.h>
  34922. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rpc_thread.c uClibc-git/libc/inet/rpc/rpc_thread.c
  34923. --- uClibc-0.9.33.2/libc/inet/rpc/rpc_thread.c 2012-05-15 09:20:09.000000000 +0200
  34924. +++ uClibc-git/libc/inet/rpc/rpc_thread.c 2014-06-02 17:40:33.982711808 +0200
  34925. @@ -4,8 +4,6 @@
  34926. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  34927. */
  34928. -#define __FORCE_GLIBC
  34929. -#include <features.h>
  34930. #include <stdio.h>
  34931. #include <assert.h>
  34932. #include "rpc_private.h"
  34933. @@ -32,7 +30,6 @@
  34934. __rpc_thread_svc_cleanup ();
  34935. __rpc_thread_clnt_cleanup ();
  34936. /*__rpc_thread_key_cleanup (); */
  34937. - free (tvp->authnone_private_s);
  34938. free (tvp->clnt_perr_buf_s);
  34939. free (tvp->clntraw_private_s);
  34940. free (tvp->svcraw_private_s);
  34941. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/rtime.c uClibc-git/libc/inet/rpc/rtime.c
  34942. --- uClibc-0.9.33.2/libc/inet/rpc/rtime.c 2012-05-15 09:20:09.000000000 +0200
  34943. +++ uClibc-git/libc/inet/rpc/rtime.c 2014-06-02 17:40:33.982711808 +0200
  34944. @@ -43,9 +43,6 @@
  34945. * what unix uses.
  34946. */
  34947. -#define __FORCE_GLIBC
  34948. -#include <features.h>
  34949. -
  34950. #include <stdio.h>
  34951. #include <unistd.h>
  34952. #include <rpc/rpc.h>
  34953. @@ -150,4 +147,3 @@
  34954. timep->tv_usec = 0;
  34955. return 0;
  34956. }
  34957. -libc_hidden_def (rtime)
  34958. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/ruserpass.c uClibc-git/libc/inet/rpc/ruserpass.c
  34959. --- uClibc-0.9.33.2/libc/inet/rpc/ruserpass.c 2012-05-15 09:20:09.000000000 +0200
  34960. +++ uClibc-git/libc/inet/rpc/ruserpass.c 2014-06-02 17:40:33.982711808 +0200
  34961. @@ -27,8 +27,6 @@
  34962. * SUCH DAMAGE.
  34963. */
  34964. -#define __FORCE_GLIBC
  34965. -#include <features.h>
  34966. #include <sys/types.h>
  34967. #include <sys/stat.h>
  34968. @@ -37,13 +35,14 @@
  34969. #include <errno.h>
  34970. #include <netdb.h>
  34971. #include <stdio.h>
  34972. -#include <stdio_ext.h>
  34973. +#ifdef __UCLIBC_HAS_THREADS__
  34974. +# include <stdio_ext.h>
  34975. +#endif
  34976. #include <stdlib.h>
  34977. #include <string.h>
  34978. #include <unistd.h>
  34979. +#include <libintl.h>
  34980. -
  34981. -#define _(X) (X)
  34982. /* #include "ftp_var.h" */
  34983. static int token (void);
  34984. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/sa_len.c uClibc-git/libc/inet/rpc/sa_len.c
  34985. --- uClibc-0.9.33.2/libc/inet/rpc/sa_len.c 2012-05-15 09:20:09.000000000 +0200
  34986. +++ uClibc-git/libc/inet/rpc/sa_len.c 2014-06-02 17:40:33.982711808 +0200
  34987. @@ -12,17 +12,14 @@
  34988. Lesser General Public License for more details.
  34989. You should have received a copy of the GNU Lesser General Public
  34990. - License along with the GNU C Library; if not, write to the Free
  34991. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  34992. - 02111-1307 USA. */
  34993. + License along with the GNU C Library; if not, see
  34994. + <http://www.gnu.org/licenses/>. */
  34995. -#define __FORCE_GLIBC
  34996. -#include <features.h>
  34997. #include <sys/socket.h>
  34998. #include <netinet/in.h>
  34999. -#include <netipx/ipx.h>
  35000. #include <sys/un.h>
  35001. #if 0
  35002. +#include <netipx/ipx.h>
  35003. #include <netash/ash.h>
  35004. #include <netatalk/at.h>
  35005. #include <netax25/ax25.h>
  35006. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_auth.c uClibc-git/libc/inet/rpc/svc_auth.c
  35007. --- uClibc-0.9.33.2/libc/inet/rpc/svc_auth.c 2012-05-15 09:20:09.000000000 +0200
  35008. +++ uClibc-git/libc/inet/rpc/svc_auth.c 2014-06-02 17:40:33.982711808 +0200
  35009. @@ -58,9 +58,9 @@
  35010. static enum auth_stat _svcauth_null (struct svc_req *, struct rpc_msg *);
  35011. /* no authentication */
  35012. -extern enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *);
  35013. +extern enum auth_stat _svcauth_unix (struct svc_req *, struct rpc_msg *) attribute_hidden;
  35014. /* unix style (uid, gids) */
  35015. -extern enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *);
  35016. +extern enum auth_stat _svcauth_short (struct svc_req *, struct rpc_msg *) attribute_hidden;
  35017. /* short hand unix style */
  35018. #ifdef CONFIG_AUTH_DES
  35019. extern enum auth_stat _svcauth_des (struct svc_req *, struct rpc_msg *);
  35020. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_authux.c uClibc-git/libc/inet/rpc/svc_authux.c
  35021. --- uClibc-0.9.33.2/libc/inet/rpc/svc_authux.c 2012-05-15 09:20:09.000000000 +0200
  35022. +++ uClibc-git/libc/inet/rpc/svc_authux.c 2014-06-02 17:40:33.982711808 +0200
  35023. @@ -38,9 +38,6 @@
  35024. * Copyright (C) 1984, Sun Microsystems, Inc.
  35025. */
  35026. -#define __FORCE_GLIBC
  35027. -#include <features.h>
  35028. -
  35029. #include <stdio.h>
  35030. #include <string.h>
  35031. #include <rpc/rpc.h>
  35032. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc.c uClibc-git/libc/inet/rpc/svc.c
  35033. --- uClibc-0.9.33.2/libc/inet/rpc/svc.c 2012-05-15 09:20:09.000000000 +0200
  35034. +++ uClibc-git/libc/inet/rpc/svc.c 2014-06-02 17:40:33.982711808 +0200
  35035. @@ -36,9 +36,6 @@
  35036. * Copyright (C) 1984, Sun Microsystems, Inc.
  35037. */
  35038. -#define __FORCE_GLIBC
  35039. -#include <features.h>
  35040. -
  35041. #include <errno.h>
  35042. #include <unistd.h>
  35043. #include <string.h>
  35044. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_raw.c uClibc-git/libc/inet/rpc/svc_raw.c
  35045. --- uClibc-0.9.33.2/libc/inet/rpc/svc_raw.c 2012-05-15 09:20:09.000000000 +0200
  35046. +++ uClibc-git/libc/inet/rpc/svc_raw.c 2014-06-02 17:40:33.982711808 +0200
  35047. @@ -40,8 +40,6 @@
  35048. * Copyright (C) 1984, Sun Microsystems, Inc.
  35049. */
  35050. -#define __FORCE_GLIBC
  35051. -#include <features.h>
  35052. #include "rpc_private.h"
  35053. #include <rpc/svc.h>
  35054. @@ -69,7 +67,7 @@
  35055. static bool_t svcraw_freeargs (SVCXPRT *, xdrproc_t, caddr_t);
  35056. static void svcraw_destroy (SVCXPRT *);
  35057. -static struct xp_ops server_ops =
  35058. +static const struct xp_ops server_ops =
  35059. {
  35060. svcraw_recv,
  35061. svcraw_stat,
  35062. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_run.c uClibc-git/libc/inet/rpc/svc_run.c
  35063. --- uClibc-0.9.33.2/libc/inet/rpc/svc_run.c 2012-05-15 09:20:09.000000000 +0200
  35064. +++ uClibc-git/libc/inet/rpc/svc_run.c 2014-06-02 17:40:33.982711808 +0200
  35065. @@ -31,13 +31,10 @@
  35066. * Wait for input, call server program.
  35067. */
  35068. -#define __FORCE_GLIBC
  35069. -#include <features.h>
  35070. -
  35071. #include <errno.h>
  35072. #include <unistd.h>
  35073. #include <sys/poll.h>
  35074. -#include <rpc/rpc.h>
  35075. +#include "rpc_private.h"
  35076. /* used by svc_[max_]pollfd */
  35077. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_simple.c uClibc-git/libc/inet/rpc/svc_simple.c
  35078. --- uClibc-0.9.33.2/libc/inet/rpc/svc_simple.c 2012-05-15 09:20:09.000000000 +0200
  35079. +++ uClibc-git/libc/inet/rpc/svc_simple.c 2014-06-02 17:40:33.982711808 +0200
  35080. @@ -38,9 +38,6 @@
  35081. * Copyright (C) 1984, Sun Microsystems, Inc.
  35082. */
  35083. -#define __FORCE_GLIBC
  35084. -#include <features.h>
  35085. -
  35086. #include <stdio.h>
  35087. #include <string.h>
  35088. #include <unistd.h>
  35089. @@ -49,13 +46,6 @@
  35090. #include <sys/socket.h>
  35091. #include <netdb.h>
  35092. -#ifdef USE_IN_LIBIO
  35093. -# include <wchar.h>
  35094. -# include <libio/iolibio.h>
  35095. -# define fputs(s, f) _IO_fputs (s, f)
  35096. -#endif
  35097. -
  35098. -
  35099. struct proglst_
  35100. {
  35101. char *(*p_progname) (char *);
  35102. @@ -127,12 +117,7 @@
  35103. return 0;
  35104. err_out:
  35105. -#ifdef USE_IN_LIBIO
  35106. - if (_IO_fwide (stderr, 0) > 0)
  35107. - (void) __fwprintf (stderr, L"%s", buf);
  35108. - else
  35109. -#endif
  35110. - (void) fputs (buf, stderr);
  35111. + (void) fputs (buf, stderr);
  35112. free (buf);
  35113. return -1;
  35114. }
  35115. @@ -186,12 +171,7 @@
  35116. return;
  35117. }
  35118. (void) asprintf (&buf, _("never registered prog %d\n"), prog);
  35119. -#ifdef USE_IN_LIBIO
  35120. - if (_IO_fwide (stderr, 0) > 0)
  35121. - __fwprintf (stderr, L"%s", buf);
  35122. - else
  35123. -#endif
  35124. - fputs (buf, stderr);
  35125. + fputs (buf, stderr);
  35126. free (buf);
  35127. exit (1);
  35128. }
  35129. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_tcp.c uClibc-git/libc/inet/rpc/svc_tcp.c
  35130. --- uClibc-0.9.33.2/libc/inet/rpc/svc_tcp.c 2012-05-15 09:20:09.000000000 +0200
  35131. +++ uClibc-git/libc/inet/rpc/svc_tcp.c 2014-06-02 17:40:33.982711808 +0200
  35132. @@ -41,25 +41,15 @@
  35133. * and a record/tcp stream.
  35134. */
  35135. -#define __FORCE_GLIBC
  35136. -#include <features.h>
  35137. -
  35138. #include <stdio.h>
  35139. #include <unistd.h>
  35140. #include <string.h>
  35141. -#include <rpc/rpc.h>
  35142. +#include "rpc_private.h"
  35143. #include <sys/socket.h>
  35144. #include <sys/poll.h>
  35145. #include <errno.h>
  35146. #include <stdlib.h>
  35147. -#ifdef USE_IN_LIBIO
  35148. -# include <wchar.h>
  35149. -# include <libio/iolibio.h>
  35150. -# define fputs(s, f) _IO_fputs (s, f)
  35151. -#endif
  35152. -
  35153. -
  35154. /*
  35155. * Ops vector for TCP/IP based rpc service handle
  35156. */
  35157. @@ -180,12 +170,7 @@
  35158. xprt = (SVCXPRT *) mem_alloc (sizeof (SVCXPRT));
  35159. if (r == NULL || xprt == NULL)
  35160. {
  35161. -#ifdef USE_IN_LIBIO
  35162. - if (_IO_fwide (stderr, 0) > 0)
  35163. - (void) __fwprintf (stderr, L"%s", _("svctcp_create: out of memory\n"));
  35164. - else
  35165. -#endif
  35166. - (void) fputs (_("svctcp_create: out of memory\n"), stderr);
  35167. + (void) fputs (_("svctcp_create: out of memory\n"), stderr);
  35168. mem_free (r, sizeof (*r));
  35169. mem_free (xprt, sizeof (SVCXPRT));
  35170. return NULL;
  35171. @@ -225,13 +210,7 @@
  35172. cd = (struct tcp_conn *) mem_alloc (sizeof (struct tcp_conn));
  35173. if (xprt == (SVCXPRT *) NULL || cd == NULL)
  35174. {
  35175. -#ifdef USE_IN_LIBIO
  35176. - if (_IO_fwide (stderr, 0) > 0)
  35177. - (void) __fwprintf (stderr, L"%s",
  35178. - _("svc_tcp: makefd_xprt: out of memory\n"));
  35179. - else
  35180. -#endif
  35181. - (void) fputs (_("svc_tcp: makefd_xprt: out of memory\n"), stderr);
  35182. + (void) fputs (_("svc_tcp: makefd_xprt: out of memory\n"), stderr);
  35183. mem_free (xprt, sizeof (SVCXPRT));
  35184. mem_free (cd, sizeof (struct tcp_conn));
  35185. return NULL;
  35186. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_udp.c uClibc-git/libc/inet/rpc/svc_udp.c
  35187. --- uClibc-0.9.33.2/libc/inet/rpc/svc_udp.c 2012-05-15 09:20:09.000000000 +0200
  35188. +++ uClibc-git/libc/inet/rpc/svc_udp.c 2014-06-02 17:40:33.986711829 +0200
  35189. @@ -39,13 +39,10 @@
  35190. * Copyright (C) 1984, Sun Microsystems, Inc.
  35191. */
  35192. -#define __FORCE_GLIBC
  35193. -#include <features.h>
  35194. -
  35195. #include <stdio.h>
  35196. #include <unistd.h>
  35197. #include <string.h>
  35198. -#include <rpc/rpc.h>
  35199. +#include "rpc_private.h"
  35200. #include <sys/socket.h>
  35201. #include <errno.h>
  35202. @@ -53,13 +50,6 @@
  35203. #include <sys/uio.h>
  35204. #endif
  35205. -#ifdef USE_IN_LIBIO
  35206. -# include <wchar.h>
  35207. -# include <libio/iolibio.h>
  35208. -# define fputs(s, f) _IO_fputs (s, f)
  35209. -#endif
  35210. -
  35211. -
  35212. #define rpc_buffer(xprt) ((xprt)->xp_p1)
  35213. #ifndef MAX
  35214. #define MAX(a, b) ((a > b) ? a : b)
  35215. @@ -151,12 +141,7 @@
  35216. buf = mem_alloc (((MAX (sendsz, recvsz) + 3) / 4) * 4);
  35217. if (xprt == NULL || su == NULL || buf == NULL)
  35218. {
  35219. -#ifdef USE_IN_LIBIO
  35220. - if (_IO_fwide (stderr, 0) > 0)
  35221. - (void) fwprintf (stderr, L"%s", _("svcudp_create: out of memory\n"));
  35222. - else
  35223. -#endif
  35224. - (void) fputs (_("svcudp_create: out of memory\n"), stderr);
  35225. + (void) fputs (_("svcudp_create: out of memory\n"), stderr);
  35226. mem_free (xprt, sizeof (SVCXPRT));
  35227. mem_free (su, sizeof (*su));
  35228. mem_free (buf, ((MAX (sendsz, recvsz) + 3) / 4) * 4);
  35229. @@ -177,13 +162,7 @@
  35230. + sizeof(struct cmsghdr) + sizeof (struct in_pktinfo))
  35231. > sizeof (xprt->xp_pad))
  35232. {
  35233. -# ifdef USE_IN_LIBIO
  35234. - if (_IO_fwide (stderr, 0) > 0)
  35235. - (void) fwprintf (stderr, L"%s",
  35236. - _("svcudp_create: xp_pad is too small for IP_PKTINFO\n"));
  35237. - else
  35238. -# endif
  35239. - (void) fputs (_("svcudp_create: xp_pad is too small for IP_PKTINFO\n"),
  35240. + (void) fputs (_("svcudp_create: xp_pad is too small for IP_PKTINFO\n"),
  35241. stderr);
  35242. return NULL;
  35243. }
  35244. @@ -378,16 +357,8 @@
  35245. #define SPARSENESS 4 /* 75% sparse */
  35246. -#ifdef USE_IN_LIBIO
  35247. -# define CACHE_PERROR(msg) \
  35248. - if (_IO_fwide (stderr, 0) > 0) \
  35249. - (void) __fwprintf(stderr, L"%s\n", msg); \
  35250. - else \
  35251. - (void) fprintf(stderr, "%s\n", msg)
  35252. -#else
  35253. -# define CACHE_PERROR(msg) \
  35254. +#define CACHE_PERROR(msg) \
  35255. (void) fprintf(stderr,"%s\n", msg)
  35256. -#endif
  35257. #define ALLOC(type, size) \
  35258. (type *) mem_alloc((unsigned) (sizeof(type) * (size)))
  35259. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/svc_unix.c uClibc-git/libc/inet/rpc/svc_unix.c
  35260. --- uClibc-0.9.33.2/libc/inet/rpc/svc_unix.c 2012-05-15 09:20:09.000000000 +0200
  35261. +++ uClibc-git/libc/inet/rpc/svc_unix.c 2014-06-02 17:40:33.986711829 +0200
  35262. @@ -37,13 +37,10 @@
  35263. * and a record/unix stream.
  35264. */
  35265. -#define __FORCE_GLIBC
  35266. -#include <features.h>
  35267. -
  35268. #include <stdio.h>
  35269. #include <unistd.h>
  35270. #include <string.h>
  35271. -#include <rpc/rpc.h>
  35272. +#include "rpc_private.h"
  35273. #include <rpc/svc.h>
  35274. #include <sys/socket.h>
  35275. #include <sys/uio.h>
  35276. @@ -51,11 +48,6 @@
  35277. #include <errno.h>
  35278. #include <stdlib.h>
  35279. -#ifdef USE_IN_LIBIO
  35280. -# include <wchar.h>
  35281. -#endif
  35282. -
  35283. -
  35284. /*
  35285. * Ops vector for AF_UNIX based rpc service handle
  35286. */
  35287. @@ -176,12 +168,7 @@
  35288. xprt = (SVCXPRT *) mem_alloc (sizeof (SVCXPRT));
  35289. if (r == NULL || xprt == NULL)
  35290. {
  35291. -#ifdef USE_IN_LIBIO
  35292. - if (_IO_fwide (stderr, 0) > 0)
  35293. - __fwprintf (stderr, L"%s", _("svcunix_create: out of memory\n"));
  35294. - else
  35295. -#endif
  35296. - fputs (_("svcunix_create: out of memory\n"), stderr);
  35297. + fputs (_("svcunix_create: out of memory\n"), stderr);
  35298. mem_free (r, sizeof (*r));
  35299. mem_free (xprt, sizeof (SVCXPRT));
  35300. return NULL;
  35301. @@ -221,13 +208,7 @@
  35302. cd = (struct unix_conn *) mem_alloc (sizeof (struct unix_conn));
  35303. if (xprt == (SVCXPRT *) NULL || cd == (struct unix_conn *) NULL)
  35304. {
  35305. -#ifdef USE_IN_LIBIO
  35306. - if (_IO_fwide (stderr, 0) > 0)
  35307. - (void) __fwprintf (stderr, L"%s",
  35308. - _("svc_unix: makefd_xprt: out of memory\n"));
  35309. - else
  35310. -#endif
  35311. - (void) fputs (_("svc_unix: makefd_xprt: out of memory\n"), stderr);
  35312. + (void) fputs (_("svc_unix: makefd_xprt: out of memory\n"), stderr);
  35313. mem_free (xprt, sizeof (SVCXPRT));
  35314. mem_free (cd, sizeof (struct unix_conn));
  35315. return NULL;
  35316. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_array.c uClibc-git/libc/inet/rpc/xdr_array.c
  35317. --- uClibc-0.9.33.2/libc/inet/rpc/xdr_array.c 2012-05-15 09:20:09.000000000 +0200
  35318. +++ uClibc-git/libc/inet/rpc/xdr_array.c 2014-06-02 17:40:33.986711829 +0200
  35319. @@ -40,23 +40,15 @@
  35320. * arrays. See xdr.h for more info on the interface to xdr.
  35321. */
  35322. -#define __FORCE_GLIBC
  35323. -#include <features.h>
  35324. -
  35325. #include <stdio.h>
  35326. #include <string.h>
  35327. #include <rpc/types.h>
  35328. #include <rpc/xdr.h>
  35329. #include <limits.h>
  35330. -
  35331. -#ifdef USE_IN_LIBIO
  35332. -# include <wchar.h>
  35333. -#endif
  35334. -
  35335. +#include <libintl.h>
  35336. #define LASTUNSIGNED ((u_int)0-1)
  35337. -
  35338. /*
  35339. * XDR an array of arbitrary elements
  35340. * *addrp is a pointer to the array, *sizep is the number of elements.
  35341. @@ -102,13 +94,7 @@
  35342. *addrp = target = mem_alloc (nodesize);
  35343. if (target == NULL)
  35344. {
  35345. -#ifdef USE_IN_LIBIO
  35346. - if (_IO_fwide (stderr, 0) > 0)
  35347. - (void) fwprintf (stderr, L"%s",
  35348. - _("xdr_array: out of memory\n"));
  35349. - else
  35350. -#endif
  35351. - (void) fputs (_("xdr_array: out of memory\n"), stderr);
  35352. + (void) fputs (_("xdr_array: out of memory\n"), stderr);
  35353. return FALSE;
  35354. }
  35355. memset (target, 0, nodesize);
  35356. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr.c uClibc-git/libc/inet/rpc/xdr.c
  35357. --- uClibc-0.9.33.2/libc/inet/rpc/xdr.c 2012-05-15 09:20:09.000000000 +0200
  35358. +++ uClibc-git/libc/inet/rpc/xdr.c 2014-06-02 17:40:33.986711829 +0200
  35359. @@ -41,21 +41,14 @@
  35360. * xdr.
  35361. */
  35362. -#define __FORCE_GLIBC
  35363. -#include <features.h>
  35364. -
  35365. #include <stdio.h>
  35366. #include <limits.h>
  35367. #include <string.h>
  35368. +#include <libintl.h>
  35369. #include <rpc/types.h>
  35370. #include <rpc/xdr.h>
  35371. -#ifdef USE_IN_LIBIO
  35372. -# include <wchar.h>
  35373. -#endif
  35374. -
  35375. -
  35376. /*
  35377. * constants specific to the xdr "protocol"
  35378. */
  35379. @@ -564,12 +557,7 @@
  35380. }
  35381. if (sp == NULL)
  35382. {
  35383. -#ifdef USE_IN_LIBIO
  35384. - if (_IO_fwide (stderr, 0) > 0)
  35385. - (void) fwprintf (stderr, L"%s", _("xdr_bytes: out of memory\n"));
  35386. - else
  35387. -#endif
  35388. - (void) fputs (_("xdr_bytes: out of memory\n"), stderr);
  35389. + (void) fputs (_("xdr_bytes: out of memory\n"), stderr);
  35390. return FALSE;
  35391. }
  35392. /* fall into ... */
  35393. @@ -706,13 +694,7 @@
  35394. *cpp = sp = (char *) mem_alloc (nodesize);
  35395. if (sp == NULL)
  35396. {
  35397. -#ifdef USE_IN_LIBIO
  35398. - if (_IO_fwide (stderr, 0) > 0)
  35399. - (void) fwprintf (stderr, L"%s",
  35400. - _("xdr_string: out of memory\n"));
  35401. - else
  35402. -#endif
  35403. - (void) fputs (_("xdr_string: out of memory\n"), stderr);
  35404. + (void) fputs (_("xdr_string: out of memory\n"), stderr);
  35405. return FALSE;
  35406. }
  35407. sp[size] = 0;
  35408. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_float.c uClibc-git/libc/inet/rpc/xdr_float.c
  35409. --- uClibc-0.9.33.2/libc/inet/rpc/xdr_float.c 2012-05-15 09:20:09.000000000 +0200
  35410. +++ uClibc-git/libc/inet/rpc/xdr_float.c 2014-06-02 17:40:33.986711829 +0200
  35411. @@ -41,9 +41,6 @@
  35412. * xdr.
  35413. */
  35414. -#define __FORCE_GLIBC
  35415. -#include <features.h>
  35416. -
  35417. #include <stdio.h>
  35418. #include <endian.h>
  35419. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_intXX_t.c uClibc-git/libc/inet/rpc/xdr_intXX_t.c
  35420. --- uClibc-0.9.33.2/libc/inet/rpc/xdr_intXX_t.c 2012-05-15 09:20:09.000000000 +0200
  35421. +++ uClibc-git/libc/inet/rpc/xdr_intXX_t.c 2014-06-02 17:40:33.986711829 +0200
  35422. @@ -13,9 +13,8 @@
  35423. Lesser General Public License for more details.
  35424. You should have received a copy of the GNU Lesser General Public
  35425. - License along with the GNU C Library; if not, write to the Free
  35426. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  35427. - 02111-1307 USA. */
  35428. + License along with the GNU C Library; if not, see
  35429. + <http://www.gnu.org/licenses/>. */
  35430. #include <rpc/types.h>
  35431. #include <rpc/xdr.h>
  35432. @@ -47,6 +46,7 @@
  35433. return FALSE;
  35434. }
  35435. }
  35436. +strong_alias_untyped(xdr_int64_t,xdr_quad_t)
  35437. /* XDR 64bit unsigned integers */
  35438. bool_t
  35439. @@ -75,6 +75,7 @@
  35440. return FALSE;
  35441. }
  35442. }
  35443. +strong_alias_untyped(xdr_uint64_t,xdr_u_quad_t)
  35444. /* XDR 32bit integers */
  35445. bool_t
  35446. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_mem.c uClibc-git/libc/inet/rpc/xdr_mem.c
  35447. --- uClibc-0.9.33.2/libc/inet/rpc/xdr_mem.c 2012-05-15 09:20:09.000000000 +0200
  35448. +++ uClibc-git/libc/inet/rpc/xdr_mem.c 2014-06-02 17:40:33.986711829 +0200
  35449. @@ -77,9 +77,7 @@
  35450. xdrmem_create (XDR *xdrs, const caddr_t addr, u_int size, enum xdr_op op)
  35451. {
  35452. xdrs->x_op = op;
  35453. - /* We have to add the const since the `struct xdr_ops' in `struct XDR'
  35454. - is not `const'. */
  35455. - xdrs->x_ops = (struct xdr_ops *) &xdrmem_ops;
  35456. + xdrs->x_ops = &xdrmem_ops;
  35457. xdrs->x_private = xdrs->x_base = addr;
  35458. xdrs->x_handy = size;
  35459. }
  35460. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_rec.c uClibc-git/libc/inet/rpc/xdr_rec.c
  35461. --- uClibc-0.9.33.2/libc/inet/rpc/xdr_rec.c 2012-05-15 09:20:09.000000000 +0200
  35462. +++ uClibc-git/libc/inet/rpc/xdr_rec.c 2014-06-02 17:40:33.986711829 +0200
  35463. @@ -44,21 +44,10 @@
  35464. * The other 31 bits encode the byte length of the fragment.
  35465. */
  35466. -#define __FORCE_GLIBC
  35467. -#include <features.h>
  35468. -
  35469. -
  35470. #include <stdio.h>
  35471. #include <string.h>
  35472. #include <unistd.h>
  35473. -#include <rpc/rpc.h>
  35474. -
  35475. -#ifdef USE_IN_LIBIO
  35476. -# include <wchar.h>
  35477. -# include <libio/iolibio.h>
  35478. -# define fputs(s, f) _IO_fputs (s, f)
  35479. -#endif
  35480. -
  35481. +#include "rpc_private.h"
  35482. static bool_t xdrrec_getbytes (XDR *, caddr_t, u_int);
  35483. static bool_t xdrrec_putbytes (XDR *, const char *, u_int);
  35484. @@ -165,12 +154,7 @@
  35485. if (rstrm == NULL || buf == NULL)
  35486. {
  35487. -#ifdef USE_IN_LIBIO
  35488. - if (_IO_fwide (stderr, 0) > 0)
  35489. - (void) fwprintf (stderr, L"%s", _("xdrrec_create: out of memory\n"));
  35490. - else
  35491. -#endif
  35492. - (void) fputs (_("xdrrec_create: out of memory\n"), stderr);
  35493. + (void) fputs (_("xdrrec_create: out of memory\n"), stderr);
  35494. mem_free (rstrm, sizeof (RECSTREAM));
  35495. mem_free (buf, sendsize + recvsize + BYTES_PER_XDR_UNIT);
  35496. /*
  35497. @@ -193,9 +177,7 @@
  35498. /*
  35499. * now the rest ...
  35500. */
  35501. - /* We have to add the const since the `struct xdr_ops' in `struct XDR'
  35502. - is not `const'. */
  35503. - xdrs->x_ops = (struct xdr_ops *) &xdrrec_ops;
  35504. + xdrs->x_ops = &xdrrec_ops;
  35505. xdrs->x_private = (caddr_t) rstrm;
  35506. rstrm->tcp_handle = tcp_handle;
  35507. rstrm->readit = readit;
  35508. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_reference.c uClibc-git/libc/inet/rpc/xdr_reference.c
  35509. --- uClibc-0.9.33.2/libc/inet/rpc/xdr_reference.c 2012-05-15 09:20:09.000000000 +0200
  35510. +++ uClibc-git/libc/inet/rpc/xdr_reference.c 2014-06-02 17:40:33.986711829 +0200
  35511. @@ -40,20 +40,11 @@
  35512. * "pointers". See xdr.h for more info on the interface to xdr.
  35513. */
  35514. -#define __FORCE_GLIBC
  35515. -#include <features.h>
  35516. -
  35517. #include <stdio.h>
  35518. #include <string.h>
  35519. #include <rpc/types.h>
  35520. #include <rpc/xdr.h>
  35521. -
  35522. -#ifdef USE_IN_LIBIO
  35523. -# include <wchar.h>
  35524. -# include <libio/iolibio.h>
  35525. -# define fputs(s, f) _IO_fputs (s, f)
  35526. -#endif
  35527. -
  35528. +#include <libintl.h>
  35529. #define LASTUNSIGNED ((u_int)0-1)
  35530. @@ -82,13 +73,7 @@
  35531. *pp = loc = (caddr_t) mem_alloc (size);
  35532. if (loc == NULL)
  35533. {
  35534. -#ifdef USE_IN_LIBIO
  35535. - if (_IO_fwide (stderr, 0) > 0)
  35536. - (void) fwprintf (stderr, L"%s",
  35537. - _("xdr_reference: out of memory\n"));
  35538. - else
  35539. -#endif
  35540. - (void) fputs (_("xdr_reference: out of memory\n"), stderr);
  35541. + (void) fputs (_("xdr_reference: out of memory\n"), stderr);
  35542. return FALSE;
  35543. }
  35544. memset (loc, 0, (int) size);
  35545. diff -Nur uClibc-0.9.33.2/libc/inet/rpc/xdr_stdio.c uClibc-git/libc/inet/rpc/xdr_stdio.c
  35546. --- uClibc-0.9.33.2/libc/inet/rpc/xdr_stdio.c 2012-05-15 09:20:09.000000000 +0200
  35547. +++ uClibc-git/libc/inet/rpc/xdr_stdio.c 2014-06-02 17:40:33.986711829 +0200
  35548. @@ -41,15 +41,6 @@
  35549. #include <stdio.h>
  35550. #include <rpc/xdr.h>
  35551. -#ifdef USE_IN_LIBIO
  35552. -# include <libio/iolibio.h>
  35553. -# define fflush(s) _IO_fflush (s)
  35554. -# define fread(p, m, n, s) _IO_fread (p, m, n, s)
  35555. -# define ftell(s) _IO_ftell (s)
  35556. -# define fwrite(p, m, n, s) _IO_fwrite (p, m, n, s)
  35557. -#endif
  35558. -
  35559. -
  35560. static bool_t xdrstdio_getlong (XDR *, long *);
  35561. static bool_t xdrstdio_putlong (XDR *, const long *);
  35562. static bool_t xdrstdio_getbytes (XDR *, caddr_t, u_int);
  35563. @@ -87,9 +78,7 @@
  35564. xdrstdio_create (XDR *xdrs, FILE *file, enum xdr_op op)
  35565. {
  35566. xdrs->x_op = op;
  35567. - /* We have to add the const since the `struct xdr_ops' in `struct XDR'
  35568. - is not `const'. */
  35569. - xdrs->x_ops = (struct xdr_ops *) &xdrstdio_ops;
  35570. + xdrs->x_ops = &xdrstdio_ops;
  35571. xdrs->x_private = (caddr_t) file;
  35572. xdrs->x_handy = 0;
  35573. xdrs->x_base = 0;
  35574. diff -Nur uClibc-0.9.33.2/libc/inet/socketcalls.c uClibc-git/libc/inet/socketcalls.c
  35575. --- uClibc-0.9.33.2/libc/inet/socketcalls.c 2012-05-15 09:20:09.000000000 +0200
  35576. +++ uClibc-git/libc/inet/socketcalls.c 2014-06-02 17:40:33.986711829 +0200
  35577. @@ -4,15 +4,12 @@
  35578. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  35579. */
  35580. -#define __FORCE_GLIBC
  35581. -#include <features.h>
  35582. -#include <errno.h>
  35583. -#include <syscall.h>
  35584. +#include <stddef.h>
  35585. +#include <sys/syscall.h>
  35586. #include <sys/socket.h>
  35587. +#include <cancel.h>
  35588. #ifdef __NR_socketcall
  35589. -extern int __socketcall(int call, unsigned long *args) attribute_hidden;
  35590. -
  35591. /* Various socketcall numbers */
  35592. #define SYS_SOCKET 1
  35593. #define SYS_BIND 2
  35594. @@ -34,53 +31,24 @@
  35595. #define SYS_ACCEPT4 18
  35596. #endif
  35597. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35598. -#include <sysdep-cancel.h>
  35599. -#include <pthreadP.h>
  35600. -#else
  35601. -#define SINGLE_THREAD_P 1
  35602. -#endif
  35603. -
  35604. #ifdef L_accept
  35605. -extern __typeof(accept) __libc_accept;
  35606. -#ifdef __NR_accept
  35607. -#define __NR___sys_accept __NR_accept
  35608. -static
  35609. -_syscall3(int, __sys_accept, int, call, struct sockaddr *, addr, socklen_t *,addrlen)
  35610. -int __libc_accept(int s, struct sockaddr *addr, socklen_t * addrlen)
  35611. -{
  35612. - if (SINGLE_THREAD_P)
  35613. - return __sys_accept(s, addr, addrlen);
  35614. -
  35615. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35616. - int oldtype = LIBC_CANCEL_ASYNC ();
  35617. - int result = __sys_accept(s, addr, addrlen);
  35618. - LIBC_CANCEL_RESET (oldtype);
  35619. - return result;
  35620. -#endif
  35621. -}
  35622. -#elif defined(__NR_socketcall)
  35623. -int __libc_accept(int s, struct sockaddr *addr, socklen_t * addrlen)
  35624. +static int __NC(accept)(int sockfd, struct sockaddr *addr, socklen_t *addrlen)
  35625. {
  35626. +# ifdef __NR_accept
  35627. + return INLINE_SYSCALL(accept, 3, sockfd, addr, addrlen);
  35628. +# else
  35629. unsigned long args[3];
  35630. - args[0] = s;
  35631. + args[0] = sockfd;
  35632. args[1] = (unsigned long) addr;
  35633. args[2] = (unsigned long) addrlen;
  35634. - if (SINGLE_THREAD_P)
  35635. - return __socketcall(SYS_ACCEPT, args);
  35636. -
  35637. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35638. - int oldtype = LIBC_CANCEL_ASYNC ();
  35639. - int result = __socketcall(SYS_ACCEPT, args);
  35640. - LIBC_CANCEL_RESET (oldtype);
  35641. - return result;
  35642. -#endif
  35643. + return __socketcall(SYS_ACCEPT, args);
  35644. +# endif
  35645. }
  35646. -#endif
  35647. -weak_alias(__libc_accept,accept)
  35648. -libc_hidden_weak(accept)
  35649. +CANCELLABLE_SYSCALL(int, accept, (int sockfd, struct sockaddr *addr, socklen_t *addrlen),
  35650. + (sockfd, addr, addrlen))
  35651. +lt_libc_hidden(accept)
  35652. #endif
  35653. #ifdef L_accept4
  35654. @@ -124,104 +92,81 @@
  35655. #endif
  35656. #ifdef L_bind
  35657. -#ifdef __NR_bind
  35658. -_syscall3(int, bind, int, sockfd, const struct sockaddr *, myaddr, socklen_t, addrlen)
  35659. -#elif defined(__NR_socketcall)
  35660. int bind(int sockfd, const struct sockaddr *myaddr, socklen_t addrlen)
  35661. {
  35662. +# ifdef __NR_bind
  35663. + return INLINE_SYSCALL(bind, 3, sockfd, myaddr, addrlen);
  35664. +# else
  35665. unsigned long args[3];
  35666. args[0] = sockfd;
  35667. args[1] = (unsigned long) myaddr;
  35668. args[2] = addrlen;
  35669. return __socketcall(SYS_BIND, args);
  35670. +# endif
  35671. }
  35672. -#endif
  35673. libc_hidden_def(bind)
  35674. #endif
  35675. #ifdef L_connect
  35676. -extern __typeof(connect) __libc_connect;
  35677. -#ifdef __NR_connect
  35678. -#define __NR___sys_connect __NR_connect
  35679. -static
  35680. -_syscall3(int, __sys_connect, int, sockfd, const struct sockaddr *, saddr, socklen_t, addrlen)
  35681. -int __libc_connect(int sockfd, const struct sockaddr *saddr, socklen_t addrlen)
  35682. -{
  35683. - if (SINGLE_THREAD_P)
  35684. - return __sys_connect(sockfd, saddr, addrlen);
  35685. -
  35686. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35687. - int oldtype = LIBC_CANCEL_ASYNC ();
  35688. - int result = __sys_connect(sockfd, saddr, addrlen);
  35689. - LIBC_CANCEL_RESET (oldtype);
  35690. - return result;
  35691. -#endif
  35692. -}
  35693. -#elif defined(__NR_socketcall)
  35694. -int __libc_connect(int sockfd, const struct sockaddr *saddr, socklen_t addrlen)
  35695. +static int __NC(connect)(int sockfd, const struct sockaddr *saddr, socklen_t addrlen)
  35696. {
  35697. +# ifdef __NR_connect
  35698. + return INLINE_SYSCALL(connect, 3, sockfd, saddr, addrlen);
  35699. +# else
  35700. unsigned long args[3];
  35701. args[0] = sockfd;
  35702. args[1] = (unsigned long) saddr;
  35703. args[2] = addrlen;
  35704. -
  35705. - if (SINGLE_THREAD_P)
  35706. - return __socketcall(SYS_CONNECT, args);
  35707. -
  35708. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35709. - int oldtype = LIBC_CANCEL_ASYNC ();
  35710. - int result = __socketcall(SYS_CONNECT, args);
  35711. - LIBC_CANCEL_RESET (oldtype);
  35712. - return result;
  35713. -#endif
  35714. + return __socketcall(SYS_CONNECT, args);
  35715. +# endif
  35716. }
  35717. -#endif
  35718. -weak_alias(__libc_connect,connect)
  35719. -libc_hidden_weak(connect)
  35720. +CANCELLABLE_SYSCALL(int, connect, (int sockfd, const struct sockaddr *saddr, socklen_t addrlen),
  35721. + (sockfd, saddr, addrlen))
  35722. +lt_libc_hidden(connect)
  35723. #endif
  35724. #ifdef L_getpeername
  35725. -#ifdef __NR_getpeername
  35726. -_syscall3(int, getpeername, int, sockfd, struct sockaddr *, addr, socklen_t *,paddrlen)
  35727. -#elif defined(__NR_socketcall)
  35728. -int getpeername(int sockfd, struct sockaddr *addr, socklen_t * paddrlen)
  35729. +int getpeername(int sockfd, struct sockaddr *addr, socklen_t *paddrlen)
  35730. {
  35731. +# ifdef __NR_getpeername
  35732. + return INLINE_SYSCALL(getpeername, 3, sockfd, addr, paddrlen);
  35733. +# else
  35734. unsigned long args[3];
  35735. args[0] = sockfd;
  35736. args[1] = (unsigned long) addr;
  35737. args[2] = (unsigned long) paddrlen;
  35738. return __socketcall(SYS_GETPEERNAME, args);
  35739. +# endif
  35740. }
  35741. #endif
  35742. -#endif
  35743. #ifdef L_getsockname
  35744. -#ifdef __NR_getsockname
  35745. -_syscall3(int, getsockname, int, sockfd, struct sockaddr *, addr, socklen_t *,paddrlen)
  35746. -#elif defined(__NR_socketcall)
  35747. int getsockname(int sockfd, struct sockaddr *addr, socklen_t * paddrlen)
  35748. {
  35749. +# ifdef __NR_getsockname
  35750. + return INLINE_SYSCALL(getsockname, 3, sockfd, addr, paddrlen);
  35751. +# else
  35752. unsigned long args[3];
  35753. args[0] = sockfd;
  35754. args[1] = (unsigned long) addr;
  35755. args[2] = (unsigned long) paddrlen;
  35756. return __socketcall(SYS_GETSOCKNAME, args);
  35757. +# endif
  35758. }
  35759. -#endif
  35760. libc_hidden_def(getsockname)
  35761. #endif
  35762. #ifdef L_getsockopt
  35763. -#ifdef __NR_getsockopt
  35764. -_syscall5(int, getsockopt, int, fd, int, level, int, optname, __ptr_t, optval, socklen_t *, optlen)
  35765. -#elif defined(__NR_socketcall)
  35766. -int getsockopt(int fd, int level, int optname, __ptr_t optval,
  35767. - socklen_t * optlen)
  35768. +int getsockopt(int fd, int level, int optname, void *optval,
  35769. + socklen_t *optlen)
  35770. {
  35771. +# ifdef __NR_getsockopt
  35772. + return INLINE_SYSCALL(getsockopt, 5, fd, level, optname, optval, optlen);
  35773. +# else
  35774. unsigned long args[5];
  35775. args[0] = fd;
  35776. @@ -230,101 +175,56 @@
  35777. args[3] = (unsigned long) optval;
  35778. args[4] = (unsigned long) optlen;
  35779. return (__socketcall(SYS_GETSOCKOPT, args));
  35780. +# endif
  35781. }
  35782. #endif
  35783. -#endif
  35784. #ifdef L_listen
  35785. -#ifdef __NR_listen
  35786. -_syscall2(int, listen, int, sockfd, int, backlog)
  35787. -#elif defined(__NR_socketcall)
  35788. int listen(int sockfd, int backlog)
  35789. {
  35790. +# ifdef __NR_listen
  35791. + return INLINE_SYSCALL(listen, 2, sockfd, backlog);
  35792. +# else
  35793. unsigned long args[2];
  35794. args[0] = sockfd;
  35795. args[1] = backlog;
  35796. return __socketcall(SYS_LISTEN, args);
  35797. +# endif
  35798. }
  35799. -#endif
  35800. libc_hidden_def(listen)
  35801. #endif
  35802. #ifdef L_recv
  35803. -extern __typeof(recv) __libc_recv;
  35804. -#ifdef __NR_recv
  35805. -#define __NR___sys_recv __NR_recv
  35806. -static
  35807. -_syscall4(ssize_t, __sys_recv, int, sockfd, __ptr_t, buffer, size_t, len,
  35808. - int, flags)
  35809. -ssize_t __libc_recv(int sockfd, __ptr_t buffer, size_t len, int flags)
  35810. -{
  35811. - if (SINGLE_THREAD_P)
  35812. - return __sys_recv(sockfd, buffer, len, flags);
  35813. -
  35814. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35815. - int oldtype = LIBC_CANCEL_ASYNC ();
  35816. - int result = __sys_recv(sockfd, buffer, len, flags);
  35817. - LIBC_CANCEL_RESET (oldtype);
  35818. - return result;
  35819. -#endif
  35820. -}
  35821. -#elif defined(__NR_socketcall)
  35822. -/* recv, recvfrom added by bir7@leland.stanford.edu */
  35823. -ssize_t __libc_recv(int sockfd, __ptr_t buffer, size_t len, int flags)
  35824. +static ssize_t __NC(recv)(int sockfd, void *buffer, size_t len, int flags)
  35825. {
  35826. +# ifdef __NR_recv
  35827. + return (ssize_t)INLINE_SYSCALL(recv, 4, sockfd, buffer, len, flags);
  35828. +# elif defined __NR_recvfrom && defined _syscall6
  35829. + return __NC(recvfrom)(sockfd, buffer, len, flags, NULL, NULL);
  35830. +# else
  35831. unsigned long args[4];
  35832. args[0] = sockfd;
  35833. args[1] = (unsigned long) buffer;
  35834. args[2] = len;
  35835. args[3] = flags;
  35836. -
  35837. - if (SINGLE_THREAD_P)
  35838. - return (__socketcall(SYS_RECV, args));
  35839. -
  35840. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35841. - int oldtype = LIBC_CANCEL_ASYNC ();
  35842. - int result = __socketcall(SYS_RECV, args);
  35843. - LIBC_CANCEL_RESET (oldtype);
  35844. - return result;
  35845. -#endif
  35846. -}
  35847. -#elif defined(__NR_recvfrom)
  35848. -ssize_t __libc_recv(int sockfd, __ptr_t buffer, size_t len, int flags)
  35849. -{
  35850. - return (recvfrom(sockfd, buffer, len, flags, NULL, NULL));
  35851. + return (ssize_t)__socketcall(SYS_RECV, args);
  35852. +# endif
  35853. }
  35854. -#endif
  35855. -weak_alias(__libc_recv,recv)
  35856. -libc_hidden_weak(recv)
  35857. +CANCELLABLE_SYSCALL(ssize_t, recv, (int sockfd, void *buffer, size_t len, int flags),
  35858. + (sockfd, buffer, len, flags))
  35859. +lt_libc_hidden(recv)
  35860. #endif
  35861. #ifdef L_recvfrom
  35862. -extern __typeof(recvfrom) __libc_recvfrom;
  35863. -#ifdef __NR_recvfrom
  35864. -#define __NR___sys_recvfrom __NR_recvfrom
  35865. -static
  35866. -_syscall6(ssize_t, __sys_recvfrom, int, sockfd, __ptr_t, buffer, size_t, len,
  35867. - int, flags, struct sockaddr *, to, socklen_t *, tolen)
  35868. -ssize_t __libc_recvfrom(int sockfd, __ptr_t buffer, size_t len, int flags,
  35869. - struct sockaddr *to, socklen_t * tolen)
  35870. -{
  35871. - if (SINGLE_THREAD_P)
  35872. - return __sys_recvfrom(sockfd, buffer, len, flags, to, tolen);
  35873. -
  35874. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35875. - int oldtype = LIBC_CANCEL_ASYNC ();
  35876. - int result = __sys_recvfrom(sockfd, buffer, len, flags, to, tolen);
  35877. - LIBC_CANCEL_RESET (oldtype);
  35878. - return result;
  35879. -#endif
  35880. -}
  35881. -#elif defined(__NR_socketcall)
  35882. -/* recv, recvfrom added by bir7@leland.stanford.edu */
  35883. -ssize_t __libc_recvfrom(int sockfd, __ptr_t buffer, size_t len, int flags,
  35884. - struct sockaddr *to, socklen_t * tolen)
  35885. +ssize_t __NC(recvfrom)(int sockfd, void *buffer, size_t len, int flags,
  35886. + struct sockaddr *to, socklen_t *tolen)
  35887. {
  35888. +# if defined __NR_recvfrom && defined _syscall6
  35889. + return (ssize_t)INLINE_SYSCALL(recvfrom, 6, sockfd, buffer, len,
  35890. + flags, to, tolen);
  35891. +# else
  35892. unsigned long args[6];
  35893. args[0] = sockfd;
  35894. @@ -333,180 +233,82 @@
  35895. args[3] = flags;
  35896. args[4] = (unsigned long) to;
  35897. args[5] = (unsigned long) tolen;
  35898. -
  35899. - if (SINGLE_THREAD_P)
  35900. - return (__socketcall(SYS_RECVFROM, args));
  35901. -
  35902. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35903. - int oldtype = LIBC_CANCEL_ASYNC ();
  35904. - int result = __socketcall(SYS_RECVFROM, args);
  35905. - LIBC_CANCEL_RESET (oldtype);
  35906. - return result;
  35907. -#endif
  35908. + return (ssize_t)__socketcall(SYS_RECVFROM, args);
  35909. +# endif
  35910. }
  35911. -#endif
  35912. -weak_alias(__libc_recvfrom,recvfrom)
  35913. -libc_hidden_weak(recvfrom)
  35914. +CANCELLABLE_SYSCALL(ssize_t, recvfrom, (int sockfd, void *buffer, size_t len,
  35915. + int flags, struct sockaddr *to, socklen_t *tolen),
  35916. + (sockfd, buffer, len, flags, to, tolen))
  35917. +lt_libc_hidden(recvfrom)
  35918. #endif
  35919. #ifdef L_recvmsg
  35920. -extern __typeof(recvmsg) __libc_recvmsg;
  35921. -#ifdef __NR_recvmsg
  35922. -#define __NR___sys_recvmsg __NR_recvmsg
  35923. -static
  35924. -_syscall3(ssize_t, __sys_recvmsg, int, sockfd, struct msghdr *, msg, int, flags)
  35925. -ssize_t __libc_recvmsg(int sockfd, struct msghdr *msg, int flags)
  35926. -{
  35927. - if (SINGLE_THREAD_P)
  35928. - return __sys_recvmsg(sockfd, msg, flags);
  35929. -
  35930. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35931. - int oldtype = LIBC_CANCEL_ASYNC ();
  35932. - int result = __sys_recvmsg(sockfd, msg, flags);
  35933. - LIBC_CANCEL_RESET (oldtype);
  35934. - return result;
  35935. -#endif
  35936. -}
  35937. -#elif defined(__NR_socketcall)
  35938. -ssize_t __libc_recvmsg(int sockfd, struct msghdr *msg, int flags)
  35939. +static ssize_t __NC(recvmsg)(int sockfd, struct msghdr *msg, int flags)
  35940. {
  35941. +# ifdef __NR_recvmsg
  35942. + return (ssize_t)INLINE_SYSCALL(recvmsg, 3, sockfd, msg, flags);
  35943. +# else
  35944. unsigned long args[3];
  35945. args[0] = sockfd;
  35946. args[1] = (unsigned long) msg;
  35947. args[2] = flags;
  35948. -
  35949. - if (SINGLE_THREAD_P)
  35950. - return (__socketcall(SYS_RECVMSG, args));
  35951. -
  35952. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35953. - int oldtype = LIBC_CANCEL_ASYNC ();
  35954. - int result = __socketcall(SYS_RECVMSG, args);
  35955. - LIBC_CANCEL_RESET (oldtype);
  35956. - return result;
  35957. -#endif
  35958. + return (ssize_t)__socketcall(SYS_RECVMSG, args);
  35959. +# endif
  35960. }
  35961. -#endif
  35962. -weak_alias(__libc_recvmsg,recvmsg)
  35963. -libc_hidden_weak(recvmsg)
  35964. +CANCELLABLE_SYSCALL(ssize_t, recvmsg, (int sockfd, struct msghdr *msg, int flags),
  35965. + (sockfd, msg, flags))
  35966. +lt_libc_hidden(recvmsg)
  35967. #endif
  35968. #ifdef L_send
  35969. -extern __typeof(send) __libc_send;
  35970. -#ifdef __NR_send
  35971. -#define __NR___sys_send __NR_send
  35972. -static
  35973. -_syscall4(ssize_t, __sys_send, int, sockfd, const void *, buffer, size_t, len, int, flags)
  35974. -ssize_t __libc_send(int sockfd, const void *buffer, size_t len, int flags)
  35975. -{
  35976. - if (SINGLE_THREAD_P)
  35977. - return __sys_send(sockfd, buffer, len, flags);
  35978. -
  35979. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  35980. - int oldtype = LIBC_CANCEL_ASYNC ();
  35981. - int result = __sys_send(sockfd, buffer, len, flags);
  35982. - LIBC_CANCEL_RESET (oldtype);
  35983. - return result;
  35984. -#endif
  35985. -}
  35986. -#elif defined(__NR_socketcall)
  35987. -/* send, sendto added by bir7@leland.stanford.edu */
  35988. -ssize_t __libc_send(int sockfd, const void *buffer, size_t len, int flags)
  35989. +static ssize_t __NC(send)(int sockfd, const void *buffer, size_t len, int flags)
  35990. {
  35991. +# ifdef __NR_send
  35992. + return (ssize_t)INLINE_SYSCALL(send, 4, sockfd, buffer, len, flags);
  35993. +# elif defined __NR_sendto && defined _syscall6
  35994. + return __NC(sendto)(sockfd, buffer, len, flags, NULL, 0);
  35995. +# else
  35996. unsigned long args[4];
  35997. args[0] = sockfd;
  35998. args[1] = (unsigned long) buffer;
  35999. args[2] = len;
  36000. args[3] = flags;
  36001. -
  36002. - if (SINGLE_THREAD_P)
  36003. - return (__socketcall(SYS_SEND, args));
  36004. -
  36005. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  36006. - int oldtype = LIBC_CANCEL_ASYNC ();
  36007. - int result = __socketcall(SYS_SEND, args);
  36008. - LIBC_CANCEL_RESET (oldtype);
  36009. - return result;
  36010. -#endif
  36011. -}
  36012. -
  36013. -#elif defined(__NR_sendto)
  36014. -ssize_t __libc_send(int sockfd, const void *buffer, size_t len, int flags)
  36015. -{
  36016. - return (sendto(sockfd, buffer, len, flags, NULL, 0));
  36017. + return (ssize_t)__socketcall(SYS_SEND, args);
  36018. +# endif
  36019. }
  36020. -#endif
  36021. -weak_alias(__libc_send,send)
  36022. -libc_hidden_weak(send)
  36023. +CANCELLABLE_SYSCALL(ssize_t, send, (int sockfd, const void *buffer, size_t len, int flags),
  36024. + (sockfd, buffer, len, flags))
  36025. +lt_libc_hidden(send)
  36026. #endif
  36027. #ifdef L_sendmsg
  36028. -extern __typeof(sendmsg) __libc_sendmsg;
  36029. -#ifdef __NR_sendmsg
  36030. -#define __NR___sys_sendmsg __NR_sendmsg
  36031. -static
  36032. -_syscall3(ssize_t, __sys_sendmsg, int, sockfd, const struct msghdr *, msg, int, flags)
  36033. -ssize_t __libc_sendmsg(int sockfd, const struct msghdr *msg, int flags)
  36034. -{
  36035. - if (SINGLE_THREAD_P)
  36036. - return __sys_sendmsg(sockfd, msg, flags);
  36037. -
  36038. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  36039. - int oldtype = LIBC_CANCEL_ASYNC ();
  36040. - int result = __sys_sendmsg(sockfd, msg, flags);
  36041. - LIBC_CANCEL_RESET (oldtype);
  36042. - return result;
  36043. -#endif
  36044. -}
  36045. -#elif defined(__NR_socketcall)
  36046. -ssize_t __libc_sendmsg(int sockfd, const struct msghdr *msg, int flags)
  36047. +static ssize_t __NC(sendmsg)(int sockfd, const struct msghdr *msg, int flags)
  36048. {
  36049. +# ifdef __NR_sendmsg
  36050. + return (ssize_t)INLINE_SYSCALL(sendmsg, 3, sockfd, msg, flags);
  36051. +# else
  36052. unsigned long args[3];
  36053. args[0] = sockfd;
  36054. args[1] = (unsigned long) msg;
  36055. args[2] = flags;
  36056. -
  36057. - if (SINGLE_THREAD_P)
  36058. - return (__socketcall(SYS_SENDMSG, args));
  36059. -
  36060. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  36061. - int oldtype = LIBC_CANCEL_ASYNC ();
  36062. - int result = __socketcall(SYS_SENDMSG, args);
  36063. - LIBC_CANCEL_RESET (oldtype);
  36064. - return result;
  36065. -#endif
  36066. + return (ssize_t)__socketcall(SYS_SENDMSG, args);
  36067. +# endif
  36068. }
  36069. -#endif
  36070. -weak_alias(__libc_sendmsg,sendmsg)
  36071. -libc_hidden_weak(sendmsg)
  36072. +CANCELLABLE_SYSCALL(ssize_t, sendmsg, (int sockfd, const struct msghdr *msg, int flags),
  36073. + (sockfd, msg, flags))
  36074. +lt_libc_hidden(sendmsg)
  36075. #endif
  36076. #ifdef L_sendto
  36077. -extern __typeof(sendto) __libc_sendto;
  36078. -#ifdef __NR_sendto
  36079. -#define __NR___sys_sendto __NR_sendto
  36080. -static
  36081. -_syscall6(ssize_t, __sys_sendto, int, sockfd, const void *, buffer,
  36082. - size_t, len, int, flags, const struct sockaddr *, to, socklen_t, tolen)
  36083. -ssize_t __libc_sendto(int sockfd, const void *buffer, size_t len, int flags,const struct sockaddr *to, socklen_t tolen)
  36084. -{
  36085. - if (SINGLE_THREAD_P)
  36086. - return __sys_sendto(sockfd, buffer, len, flags, to, tolen);
  36087. -
  36088. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  36089. - int oldtype = LIBC_CANCEL_ASYNC ();
  36090. - int result = __sys_sendto(sockfd, buffer, len, flags, to, tolen);
  36091. - LIBC_CANCEL_RESET (oldtype);
  36092. - return result;
  36093. -#endif
  36094. -}
  36095. -#elif defined(__NR_socketcall)
  36096. -/* send, sendto added by bir7@leland.stanford.edu */
  36097. -ssize_t __libc_sendto(int sockfd, const void *buffer, size_t len, int flags,
  36098. - const struct sockaddr *to, socklen_t tolen)
  36099. +ssize_t __NC(sendto)(int sockfd, const void *buffer, size_t len, int flags,
  36100. + const struct sockaddr *to, socklen_t tolen)
  36101. {
  36102. +# if defined __NR_sendto && defined _syscall6
  36103. + return (ssize_t)INLINE_SYSCALL(sendto, 6, sockfd, buffer, len, flags, to, tolen);
  36104. +# else
  36105. unsigned long args[6];
  36106. args[0] = sockfd;
  36107. @@ -515,30 +317,21 @@
  36108. args[3] = flags;
  36109. args[4] = (unsigned long) to;
  36110. args[5] = tolen;
  36111. -
  36112. - if (SINGLE_THREAD_P)
  36113. - return (__socketcall(SYS_SENDTO, args));
  36114. -
  36115. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  36116. - int oldtype = LIBC_CANCEL_ASYNC ();
  36117. - int result = __socketcall(SYS_SENDTO, args);
  36118. - LIBC_CANCEL_RESET (oldtype);
  36119. - return result;
  36120. -#endif
  36121. + return (ssize_t)__socketcall(SYS_SENDTO, args);
  36122. +# endif
  36123. }
  36124. -#endif
  36125. -weak_alias(__libc_sendto,sendto)
  36126. -libc_hidden_weak(sendto)
  36127. +CANCELLABLE_SYSCALL(ssize_t, sendto, (int sockfd, const void *buffer, size_t len,
  36128. + int flags, const struct sockaddr *to, socklen_t tolen),
  36129. + (sockfd, buffer, len, flags, to, tolen))
  36130. +lt_libc_hidden(sendto)
  36131. #endif
  36132. #ifdef L_setsockopt
  36133. -#ifdef __NR_setsockopt
  36134. -_syscall5(int, setsockopt, int, fd, int, level, int, optname, const void *, optval, socklen_t, optlen)
  36135. -#elif defined(__NR_socketcall)
  36136. -/* [sg]etsockoptions by bir7@leland.stanford.edu */
  36137. -int setsockopt(int fd, int level, int optname, const void *optval,
  36138. - socklen_t optlen)
  36139. +int setsockopt(int fd, int level, int optname, const void *optval, socklen_t optlen)
  36140. {
  36141. +# ifdef __NR_setsockopt
  36142. + return INLINE_SYSCALL(setsockopt, 5, fd, level, optname, optval, optlen);
  36143. +# else
  36144. unsigned long args[5];
  36145. args[0] = fd;
  36146. @@ -546,51 +339,50 @@
  36147. args[2] = optname;
  36148. args[3] = (unsigned long) optval;
  36149. args[4] = optlen;
  36150. - return (__socketcall(SYS_SETSOCKOPT, args));
  36151. + return __socketcall(SYS_SETSOCKOPT, args);
  36152. +# endif
  36153. }
  36154. -#endif
  36155. libc_hidden_def(setsockopt)
  36156. #endif
  36157. #ifdef L_shutdown
  36158. -#ifdef __NR_shutdown
  36159. -_syscall2(int, shutdown, int, sockfd, int, how)
  36160. -#elif defined(__NR_socketcall)
  36161. -/* shutdown by bir7@leland.stanford.edu */
  36162. int shutdown(int sockfd, int how)
  36163. {
  36164. +# ifdef __NR_shutdown
  36165. + return INLINE_SYSCALL(shutdown, 2, sockfd, how);
  36166. +# else
  36167. unsigned long args[2];
  36168. args[0] = sockfd;
  36169. args[1] = how;
  36170. - return (__socketcall(SYS_SHUTDOWN, args));
  36171. + return __socketcall(SYS_SHUTDOWN, args);
  36172. +# endif
  36173. }
  36174. #endif
  36175. -#endif
  36176. #ifdef L_socket
  36177. -#ifdef __NR_socket
  36178. -_syscall3(int, socket, int, family, int, type, int, protocol)
  36179. -#elif defined(__NR_socketcall)
  36180. int socket(int family, int type, int protocol)
  36181. {
  36182. +# ifdef __NR_socket
  36183. + return INLINE_SYSCALL(socket, 3, family, type, protocol);
  36184. +# else
  36185. unsigned long args[3];
  36186. args[0] = family;
  36187. args[1] = type;
  36188. args[2] = (unsigned long) protocol;
  36189. return __socketcall(SYS_SOCKET, args);
  36190. +# endif
  36191. }
  36192. -#endif
  36193. libc_hidden_def(socket)
  36194. #endif
  36195. #ifdef L_socketpair
  36196. -#ifdef __NR_socketpair
  36197. -_syscall4(int, socketpair, int, family, int, type, int, protocol, int *, sockvec)
  36198. -#elif defined(__NR_socketcall)
  36199. int socketpair(int family, int type, int protocol, int sockvec[2])
  36200. {
  36201. +# ifdef __NR_socketpair
  36202. + return INLINE_SYSCALL(socketpair, 4, family, type, protocol, sockvec);
  36203. +# else
  36204. unsigned long args[4];
  36205. args[0] = family;
  36206. @@ -598,7 +390,6 @@
  36207. args[2] = protocol;
  36208. args[3] = (unsigned long) sockvec;
  36209. return __socketcall(SYS_SOCKETPAIR, args);
  36210. +# endif
  36211. }
  36212. #endif
  36213. -#endif
  36214. -
  36215. diff -Nur uClibc-0.9.33.2/libc/misc/assert/__assert.c uClibc-git/libc/misc/assert/__assert.c
  36216. --- uClibc-0.9.33.2/libc/misc/assert/__assert.c 2012-05-15 09:20:09.000000000 +0200
  36217. +++ uClibc-git/libc/misc/assert/__assert.c 2014-06-02 17:40:33.986711829 +0200
  36218. @@ -13,8 +13,8 @@
  36219. * Library General Public License for more details.
  36220. *
  36221. * You should have received a copy of the GNU Library General Public
  36222. - * License along with this library; if not, write to the Free
  36223. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  36224. + * License along with this library; if not, see
  36225. + * <http://www.gnu.org/licenses/>.
  36226. */
  36227. /* Oct 28, 2002
  36228. diff -Nur uClibc-0.9.33.2/libc/misc/assert/Makefile.in uClibc-git/libc/misc/assert/Makefile.in
  36229. --- uClibc-0.9.33.2/libc/misc/assert/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  36230. +++ uClibc-git/libc/misc/assert/Makefile.in 2014-06-02 17:40:33.986711829 +0200
  36231. @@ -7,13 +7,13 @@
  36232. subdirs += libc/misc/assert
  36233. -CSRC := __assert.c
  36234. +CSRC-y := __assert.c
  36235. MISC_ASSERT_DIR := $(top_srcdir)libc/misc/assert
  36236. MISC_ASSERT_OUT := $(top_builddir)libc/misc/assert
  36237. -MISC_ASSERT_SRC := $(MISC_ASSERT_DIR)/__assert.c
  36238. -MISC_ASSERT_OBJ := $(MISC_ASSERT_OUT)/__assert.o
  36239. +MISC_ASSERT_SRC := $(patsubst %.c,$(MISC_ASSERT_DIR)/%.c,$(CSRC-y))
  36240. +MISC_ASSERT_OBJ := $(patsubst %.c,$(MISC_ASSERT_OUT)/%.o,$(CSRC-y))
  36241. libc-y += $(MISC_ASSERT_OBJ)
  36242. diff -Nur uClibc-0.9.33.2/libc/misc/ctype/ctype.c uClibc-git/libc/misc/ctype/ctype.c
  36243. --- uClibc-0.9.33.2/libc/misc/ctype/ctype.c 2012-05-15 09:20:09.000000000 +0200
  36244. +++ uClibc-git/libc/misc/ctype/ctype.c 2014-06-02 17:40:33.986711829 +0200
  36245. @@ -11,8 +11,8 @@
  36246. * Library General Public License for more details.
  36247. *
  36248. * You should have received a copy of the GNU Library General Public
  36249. - * License along with this library; if not, write to the Free
  36250. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  36251. + * License along with this library; if not, see
  36252. + * <http://www.gnu.org/licenses/>.
  36253. */
  36254. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  36255. @@ -36,10 +36,6 @@
  36256. #include <assert.h>
  36257. #include <locale.h>
  36258. -#ifdef __UCLIBC_HAS_XLOCALE__
  36259. -# include <xlocale.h>
  36260. -#endif
  36261. -
  36262. /**********************************************************************/
  36263. #ifdef __UCLIBC_HAS_CTYPE_TABLES__
  36264. diff -Nur uClibc-0.9.33.2/libc/misc/ctype/Makefile.in uClibc-git/libc/misc/ctype/Makefile.in
  36265. --- uClibc-0.9.33.2/libc/misc/ctype/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  36266. +++ uClibc-git/libc/misc/ctype/Makefile.in 2014-06-02 17:40:33.986711829 +0200
  36267. @@ -8,31 +8,25 @@
  36268. subdirs += libc/misc/ctype
  36269. # multi source ctype.c
  36270. -COM_SRC := \
  36271. +COM_SRC-y := \
  36272. isalnum.c isalpha.c iscntrl.c isdigit.c \
  36273. isgraph.c islower.c isprint.c ispunct.c isspace.c \
  36274. isupper.c isxdigit.c tolower.c toupper.c \
  36275. isblank.c
  36276. -ifeq ($(UCLIBC_SUSV4_LEGACY),y)
  36277. -COM_SRC += isascii.c toascii.c
  36278. -endif
  36279. -CSRC := $(COM_SRC)
  36280. +COM_SRC-$(UCLIBC_SUSV4_LEGACY) += isascii.c toascii.c
  36281. +CSRC-y := $(COM_SRC-y)
  36282. -ifeq ($(UCLIBC_HAS_CTYPE_TABLES),y)
  36283. -CSRC += __C_ctype_b.c __C_ctype_tolower.c __C_ctype_toupper.c \
  36284. +CSRC-$(UCLIBC_HAS_CTYPE_TABLES) += \
  36285. + __C_ctype_b.c __C_ctype_tolower.c __C_ctype_toupper.c \
  36286. __ctype_b_loc.c __ctype_tolower_loc.c __ctype_toupper_loc.c \
  36287. __ctype_assert.c isctype.c
  36288. -endif
  36289. -
  36290. -ifeq ($(UCLIBC_HAS_XLOCALE),y)
  36291. -CSRC += $(patsubst %.c,%_l.c,$(COM_SRC))
  36292. -endif
  36293. +CSRC-$(UCLIBC_HAS_XLOCALE) += $(patsubst %.c,%_l.c,$(COM_SRC-y))
  36294. MISC_CTYPE_DIR := $(top_srcdir)libc/misc/ctype
  36295. MISC_CTYPE_OUT := $(top_builddir)libc/misc/ctype
  36296. -MISC_CTYPE_SRC := $(patsubst %.c,$(MISC_CTYPE_DIR)/%.c,$(CSRC))
  36297. -MISC_CTYPE_OBJ := $(patsubst %.c,$(MISC_CTYPE_OUT)/%.o,$(CSRC))
  36298. +MISC_CTYPE_SRC := $(patsubst %.c,$(MISC_CTYPE_DIR)/%.c,$(CSRC-y))
  36299. +MISC_CTYPE_OBJ := $(patsubst %.c,$(MISC_CTYPE_OUT)/%.o,$(CSRC-y))
  36300. libc-y += $(MISC_CTYPE_OBJ)
  36301. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/alphasort64.c uClibc-git/libc/misc/dirent/alphasort64.c
  36302. --- uClibc-0.9.33.2/libc/misc/dirent/alphasort64.c 2012-05-15 09:20:09.000000000 +0200
  36303. +++ uClibc-git/libc/misc/dirent/alphasort64.c 2014-06-02 17:40:33.990711852 +0200
  36304. @@ -5,12 +5,14 @@
  36305. */
  36306. #include <_lfs_64.h>
  36307. -
  36308. #include <dirent.h>
  36309. -#include <string.h>
  36310. -#include "dirstream.h"
  36311. +
  36312. +#if __WORDSIZE != 64
  36313. +# include <string.h>
  36314. +# include "dirstream.h"
  36315. int alphasort64(const struct dirent64 **a, const struct dirent64 **b)
  36316. {
  36317. - return strcmp((*a)->d_name, (*b)->d_name);
  36318. + return strcoll((*a)->d_name, (*b)->d_name);
  36319. }
  36320. +#endif
  36321. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/alphasort.c uClibc-git/libc/misc/dirent/alphasort.c
  36322. --- uClibc-0.9.33.2/libc/misc/dirent/alphasort.c 2012-05-15 09:20:09.000000000 +0200
  36323. +++ uClibc-git/libc/misc/dirent/alphasort.c 2014-06-02 17:40:33.990711852 +0200
  36324. @@ -10,6 +10,8 @@
  36325. int alphasort(const struct dirent **a, const struct dirent **b)
  36326. {
  36327. - return strcmp((*a)->d_name, (*b)->d_name);
  36328. + return strcoll((*a)->d_name, (*b)->d_name);
  36329. }
  36330. -
  36331. +#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  36332. +strong_alias_untyped(alphasort,alphasort64)
  36333. +#endif
  36334. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/dirstream.h uClibc-git/libc/misc/dirent/dirstream.h
  36335. --- uClibc-0.9.33.2/libc/misc/dirent/dirstream.h 2012-05-15 09:20:09.000000000 +0200
  36336. +++ uClibc-git/libc/misc/dirent/dirstream.h 2014-06-02 17:40:33.990711852 +0200
  36337. @@ -13,8 +13,7 @@
  36338. You should have received a copy of the GNU Library General Public
  36339. License along with the GNU C Library; see the file COPYING.LIB. If
  36340. -not, write to the, 1992 Free Software Foundation, Inc., 675 Mass Ave,
  36341. -Cambridge, MA 02139, USA. */
  36342. +not, see <http://www.gnu.org/licenses/>. */
  36343. /*
  36344. * POSIX Standard: 5.1.2 Directory Operations <dirent.h>
  36345. @@ -29,18 +28,6 @@
  36346. #include <bits/uClibc_mutex.h>
  36347. -/* For now, syscall readdir () only supports one entry at a time. It
  36348. - * will be changed in the future.
  36349. -#define NUMENT 3
  36350. -*/
  36351. -#ifndef NUMENT
  36352. -#define NUMENT 1
  36353. -#endif
  36354. -
  36355. -#define SINGLE_READDIR 11
  36356. -#define MULTI_READDIR 12
  36357. -#define NEW_READDIR 13
  36358. -
  36359. /* Directory stream type. */
  36360. struct __dirstream {
  36361. /* file descriptor */
  36362. @@ -65,10 +52,4 @@
  36363. __UCLIBC_MUTEX(dd_lock);
  36364. }; /* stream data from opendir() */
  36365. -
  36366. -extern ssize_t __getdents(int fd, char *buf, size_t count) attribute_hidden;
  36367. -#ifdef __UCLIBC_HAS_LFS__
  36368. -extern ssize_t __getdents64 (int fd, char *buf, size_t count) attribute_hidden;
  36369. -#endif
  36370. -
  36371. #endif /* dirent.h */
  36372. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/Makefile.in uClibc-git/libc/misc/dirent/Makefile.in
  36373. --- uClibc-0.9.33.2/libc/misc/dirent/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  36374. +++ uClibc-git/libc/misc/dirent/Makefile.in 2014-06-02 17:40:33.990711852 +0200
  36375. @@ -7,18 +7,18 @@
  36376. subdirs += libc/misc/dirent
  36377. -CSRC := alphasort.c closedir.c dirfd.c opendir.c readdir.c rewinddir.c \
  36378. - scandir.c seekdir.c telldir.c readdir_r.c versionsort.c
  36379. -
  36380. -ifeq ($(UCLIBC_HAS_LFS),y)
  36381. -CSRC += readdir64.c alphasort64.c scandir64.c readdir64_r.c versionsort64.c
  36382. -endif
  36383. +CSRC := alphasort.c readdir.c scandir.c versionsort.c
  36384. +CSRC_R := readdir_r.c
  36385. +CSRC-y := closedir.c dirfd.c opendir.c rewinddir.c seekdir.c telldir.c $(CSRC) \
  36386. + $(CSRC_R)
  36387. +CSRC-$(UCLIBC_HAS_LFS) += $(patsubst %.c,%64.c,$(CSRC))
  36388. +CSRC-$(UCLIBC_HAS_LFS) += $(patsubst %_r.c,%64_r.c,$(CSRC_R))
  36389. MISC_DIRENT_DIR := $(top_srcdir)libc/misc/dirent
  36390. MISC_DIRENT_OUT := $(top_builddir)libc/misc/dirent
  36391. -MISC_DIRENT_SRC := $(patsubst %.c,$(MISC_DIRENT_DIR)/%.c,$(CSRC))
  36392. -MISC_DIRENT_OBJ := $(patsubst %.c,$(MISC_DIRENT_OUT)/%.o,$(CSRC))
  36393. +MISC_DIRENT_SRC := $(patsubst %.c,$(MISC_DIRENT_DIR)/%.c,$(CSRC-y))
  36394. +MISC_DIRENT_OBJ := $(patsubst %.c,$(MISC_DIRENT_OUT)/%.o,$(CSRC-y))
  36395. libc-y += $(MISC_DIRENT_OBJ)
  36396. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/readdir64.c uClibc-git/libc/misc/dirent/readdir64.c
  36397. --- uClibc-0.9.33.2/libc/misc/dirent/readdir64.c 2012-05-15 09:20:09.000000000 +0200
  36398. +++ uClibc-git/libc/misc/dirent/readdir64.c 2014-06-02 17:40:33.998711896 +0200
  36399. @@ -5,52 +5,12 @@
  36400. */
  36401. #include <_lfs_64.h>
  36402. -
  36403. -#include <errno.h>
  36404. -#include <stdlib.h>
  36405. -#include <string.h>
  36406. -#include <unistd.h>
  36407. #include <dirent.h>
  36408. -#include "dirstream.h"
  36409. -
  36410. -struct dirent64 *readdir64(DIR * dir)
  36411. -{
  36412. - ssize_t bytes;
  36413. - struct dirent64 *de;
  36414. -
  36415. - if (!dir) {
  36416. - __set_errno(EBADF);
  36417. - return NULL;
  36418. - }
  36419. -
  36420. - __UCLIBC_MUTEX_LOCK(dir->dd_lock);
  36421. -
  36422. - do {
  36423. - if (dir->dd_size <= dir->dd_nextloc) {
  36424. - /* read dir->dd_max bytes of directory entries. */
  36425. - bytes = __getdents64(dir->dd_fd, dir->dd_buf, dir->dd_max);
  36426. - if (bytes <= 0) {
  36427. - de = NULL;
  36428. - goto all_done;
  36429. - }
  36430. - dir->dd_size = bytes;
  36431. - dir->dd_nextloc = 0;
  36432. - }
  36433. -
  36434. - de = (struct dirent64 *) (((char *) dir->dd_buf) + dir->dd_nextloc);
  36435. -
  36436. - /* Am I right? H.J. */
  36437. - dir->dd_nextloc += de->d_reclen;
  36438. -
  36439. - /* We have to save the next offset here. */
  36440. - dir->dd_nextoff = de->d_off;
  36441. -
  36442. - /* Skip deleted files. */
  36443. - } while (de->d_ino == 0);
  36444. -all_done:
  36445. - __UCLIBC_MUTEX_UNLOCK(dir->dd_lock);
  36446. +#if __WORDSIZE != 64
  36447. +# define __READDIR readdir64
  36448. +# define __DIRENT_TYPE struct dirent64
  36449. +# define __GETDENTS __getdents64
  36450. - return de;
  36451. -}
  36452. -libc_hidden_def(readdir64)
  36453. +# include "readdir.c"
  36454. +#endif
  36455. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/readdir64_r.c uClibc-git/libc/misc/dirent/readdir64_r.c
  36456. --- uClibc-0.9.33.2/libc/misc/dirent/readdir64_r.c 2012-05-15 09:20:09.000000000 +0200
  36457. +++ uClibc-git/libc/misc/dirent/readdir64_r.c 2014-06-02 17:40:33.998711896 +0200
  36458. @@ -5,62 +5,12 @@
  36459. */
  36460. #include <_lfs_64.h>
  36461. -
  36462. -#include <errno.h>
  36463. -#include <stdlib.h>
  36464. -#include <string.h>
  36465. -#include <unistd.h>
  36466. #include <dirent.h>
  36467. -#include "dirstream.h"
  36468. -
  36469. -
  36470. -int readdir64_r(DIR *dir, struct dirent64 *entry, struct dirent64 **result)
  36471. -{
  36472. - int ret;
  36473. - ssize_t bytes;
  36474. - struct dirent64 *de;
  36475. -
  36476. - if (!dir) {
  36477. - __set_errno(EBADF);
  36478. - return(EBADF);
  36479. - }
  36480. - de = NULL;
  36481. -
  36482. - __UCLIBC_MUTEX_LOCK(dir->dd_lock);
  36483. -
  36484. - do {
  36485. - if (dir->dd_size <= dir->dd_nextloc) {
  36486. - /* read dir->dd_max bytes of directory entries. */
  36487. - bytes = __getdents64(dir->dd_fd, dir->dd_buf, dir->dd_max);
  36488. - if (bytes <= 0) {
  36489. - *result = NULL;
  36490. - ret = (bytes==0)? 0 : errno;
  36491. - goto all_done;
  36492. - }
  36493. - dir->dd_size = bytes;
  36494. - dir->dd_nextloc = 0;
  36495. - }
  36496. -
  36497. - de = (struct dirent64 *) (((char *) dir->dd_buf) + dir->dd_nextloc);
  36498. -
  36499. - /* Am I right? H.J. */
  36500. - dir->dd_nextloc += de->d_reclen;
  36501. -
  36502. - /* We have to save the next offset here. */
  36503. - dir->dd_nextoff = de->d_off;
  36504. - /* Skip deleted files. */
  36505. - } while (de->d_ino == 0);
  36506. -
  36507. - if (de == NULL) {
  36508. - *result = NULL;
  36509. - } else {
  36510. - *result = memcpy (entry, de, de->d_reclen);
  36511. - }
  36512. - ret = 0;
  36513. -all_done:
  36514. +#if __WORDSIZE != 64
  36515. +# define __READDIR_R readdir64_r
  36516. +# define __DIRENT_TYPE struct dirent64
  36517. +# define __GETDENTS __getdents64
  36518. - __UCLIBC_MUTEX_UNLOCK(dir->dd_lock);
  36519. - return((de != NULL)? 0 : ret);
  36520. -}
  36521. -libc_hidden_def(readdir64_r)
  36522. +# include "readdir_r.c"
  36523. +#endif
  36524. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/readdir.c uClibc-git/libc/misc/dirent/readdir.c
  36525. --- uClibc-0.9.33.2/libc/misc/dirent/readdir.c 2012-05-15 09:20:09.000000000 +0200
  36526. +++ uClibc-git/libc/misc/dirent/readdir.c 2014-06-02 17:40:33.998711896 +0200
  36527. @@ -4,20 +4,22 @@
  36528. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  36529. */
  36530. -#include <features.h>
  36531. -
  36532. -#include <errno.h>
  36533. -#include <stdlib.h>
  36534. -#include <string.h>
  36535. -#include <unistd.h>
  36536. #include <dirent.h>
  36537. +#include <errno.h>
  36538. +#define __need_NULL
  36539. +#include <stddef.h>
  36540. #include "dirstream.h"
  36541. +#ifndef __READDIR
  36542. +# define __READDIR readdir
  36543. +# define __DIRENT_TYPE struct dirent
  36544. +# define __GETDENTS __getdents
  36545. +#endif
  36546. -struct dirent *readdir(DIR * dir)
  36547. +__DIRENT_TYPE *__READDIR(DIR * dir)
  36548. {
  36549. ssize_t bytes;
  36550. - struct dirent *de;
  36551. + __DIRENT_TYPE *de;
  36552. if (!dir) {
  36553. __set_errno(EBADF);
  36554. @@ -29,7 +31,7 @@
  36555. do {
  36556. if (dir->dd_size <= dir->dd_nextloc) {
  36557. /* read dir->dd_max bytes of directory entries. */
  36558. - bytes = __getdents(dir->dd_fd, dir->dd_buf, dir->dd_max);
  36559. + bytes = __GETDENTS(dir->dd_fd, dir->dd_buf, dir->dd_max);
  36560. if (bytes <= 0) {
  36561. de = NULL;
  36562. goto all_done;
  36563. @@ -38,7 +40,7 @@
  36564. dir->dd_nextloc = 0;
  36565. }
  36566. - de = (struct dirent *) (((char *) dir->dd_buf) + dir->dd_nextloc);
  36567. + de = (__DIRENT_TYPE *) (((char *) dir->dd_buf) + dir->dd_nextloc);
  36568. /* Am I right? H.J. */
  36569. dir->dd_nextloc += de->d_reclen;
  36570. @@ -53,4 +55,8 @@
  36571. __UCLIBC_MUTEX_UNLOCK(dir->dd_lock);
  36572. return de;
  36573. }
  36574. -libc_hidden_def(readdir)
  36575. +libc_hidden_def(__READDIR)
  36576. +#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  36577. +strong_alias_untyped(readdir,readdir64)
  36578. +libc_hidden_def(readdir64)
  36579. +#endif
  36580. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/readdir_r.c uClibc-git/libc/misc/dirent/readdir_r.c
  36581. --- uClibc-0.9.33.2/libc/misc/dirent/readdir_r.c 2012-05-15 09:20:09.000000000 +0200
  36582. +++ uClibc-git/libc/misc/dirent/readdir_r.c 2014-06-02 17:40:33.998711896 +0200
  36583. @@ -4,19 +4,24 @@
  36584. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  36585. */
  36586. +#include <dirent.h>
  36587. #include <errno.h>
  36588. -#include <stdlib.h>
  36589. #include <string.h>
  36590. -#include <unistd.h>
  36591. -#include <dirent.h>
  36592. +#define __need_NULL
  36593. +#include <stddef.h>
  36594. #include "dirstream.h"
  36595. +#ifndef __READDIR_R
  36596. +# define __READDIR_R readdir_r
  36597. +# define __DIRENT_TYPE struct dirent
  36598. +# define __GETDENTS __getdents
  36599. +#endif
  36600. -int readdir_r(DIR *dir, struct dirent *entry, struct dirent **result)
  36601. +int __READDIR_R(DIR *dir, __DIRENT_TYPE *entry, __DIRENT_TYPE **result)
  36602. {
  36603. int ret;
  36604. ssize_t bytes;
  36605. - struct dirent *de;
  36606. + __DIRENT_TYPE *de;
  36607. if (!dir) {
  36608. __set_errno(EBADF);
  36609. @@ -29,7 +34,7 @@
  36610. do {
  36611. if (dir->dd_size <= dir->dd_nextloc) {
  36612. /* read dir->dd_max bytes of directory entries. */
  36613. - bytes = __getdents(dir->dd_fd, dir->dd_buf, dir->dd_max);
  36614. + bytes = __GETDENTS(dir->dd_fd, dir->dd_buf, dir->dd_max);
  36615. if (bytes <= 0) {
  36616. *result = NULL;
  36617. ret = (bytes==0)? 0 : errno;
  36618. @@ -39,7 +44,7 @@
  36619. dir->dd_nextloc = 0;
  36620. }
  36621. - de = (struct dirent *) (((char *) dir->dd_buf) + dir->dd_nextloc);
  36622. + de = (__DIRENT_TYPE *) (((char *) dir->dd_buf) + dir->dd_nextloc);
  36623. /* Am I right? H.J. */
  36624. dir->dd_nextloc += de->d_reclen;
  36625. @@ -61,4 +66,8 @@
  36626. __UCLIBC_MUTEX_UNLOCK(dir->dd_lock);
  36627. return((de != NULL)? 0 : ret);
  36628. }
  36629. -libc_hidden_def(readdir_r)
  36630. +libc_hidden_def(__READDIR_R)
  36631. +#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  36632. +strong_alias_untyped(readdir_r,readdir64_r)
  36633. +libc_hidden_def(readdir64_r)
  36634. +#endif
  36635. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/scandir64.c uClibc-git/libc/misc/dirent/scandir64.c
  36636. --- uClibc-0.9.33.2/libc/misc/dirent/scandir64.c 2012-05-15 09:20:09.000000000 +0200
  36637. +++ uClibc-git/libc/misc/dirent/scandir64.c 2014-06-02 17:40:33.998711896 +0200
  36638. @@ -1,111 +1,16 @@
  36639. -/* Copyright (C) 1992-1998, 2000 Free Software Foundation, Inc.
  36640. - This file is part of the GNU C Library.
  36641. -
  36642. - The GNU C Library is free software; you can redistribute it and/or
  36643. - modify it under the terms of the GNU Lesser General Public
  36644. - License as published by the Free Software Foundation; either
  36645. - version 2.1 of the License, or (at your option) any later version.
  36646. -
  36647. - The GNU C Library is distributed in the hope that it will be useful,
  36648. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  36649. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  36650. - Lesser General Public License for more details.
  36651. -
  36652. - You should have received a copy of the GNU Lesser General Public
  36653. - License along with the GNU C Library; if not, write to the Free
  36654. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  36655. - 02111-1307 USA.
  36656. - */
  36657. -
  36658. -/* Modified for uClibc by Erik Andersen
  36659. - */
  36660. +/*
  36661. + * Copyright (C) 2000-2011 Erik Andersen <andersen@uclibc.org>
  36662. + *
  36663. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  36664. + */
  36665. #include <_lfs_64.h>
  36666. -
  36667. #include <dirent.h>
  36668. -#include <stdio.h>
  36669. -#include <string.h>
  36670. -#include <stdlib.h>
  36671. -#include <errno.h>
  36672. -#include <sys/types.h>
  36673. -#include "dirstream.h"
  36674. -
  36675. -int scandir64(const char *dir, struct dirent64 ***namelist,
  36676. - int (*selector) (const struct dirent64 *),
  36677. - int (*compar) (const struct dirent64 **, const struct dirent64 **))
  36678. -{
  36679. - DIR *dp = opendir (dir);
  36680. - struct dirent64 *current;
  36681. - struct dirent64 **names = NULL;
  36682. - size_t names_size = 0, pos;
  36683. - int save;
  36684. -
  36685. - if (dp == NULL)
  36686. - return -1;
  36687. -
  36688. - save = errno;
  36689. - __set_errno (0);
  36690. -
  36691. - pos = 0;
  36692. - while ((current = readdir64 (dp)) != NULL) {
  36693. - int use_it = selector == NULL;
  36694. -
  36695. - if (! use_it)
  36696. - {
  36697. - use_it = (*selector) (current);
  36698. - /* The selector function might have changed errno.
  36699. - * It was zero before and it need to be again to make
  36700. - * the latter tests work. */
  36701. - if (! use_it)
  36702. - __set_errno (0);
  36703. - }
  36704. - if (use_it)
  36705. - {
  36706. - struct dirent64 *vnew;
  36707. - size_t dsize;
  36708. -
  36709. - /* Ignore errors from selector or readdir64 */
  36710. - __set_errno (0);
  36711. -
  36712. - if (unlikely(pos == names_size))
  36713. - {
  36714. - struct dirent64 **new;
  36715. - if (names_size == 0)
  36716. - names_size = 10;
  36717. - else
  36718. - names_size *= 2;
  36719. - new = (struct dirent64 **) realloc (names,
  36720. - names_size * sizeof (struct dirent64 *));
  36721. - if (new == NULL)
  36722. - break;
  36723. - names = new;
  36724. - }
  36725. -
  36726. - dsize = &current->d_name[_D_ALLOC_NAMLEN(current)] - (char*)current;
  36727. - vnew = (struct dirent64 *) malloc (dsize);
  36728. - if (vnew == NULL)
  36729. - break;
  36730. -
  36731. - names[pos++] = (struct dirent64 *) memcpy (vnew, current, dsize);
  36732. - }
  36733. - }
  36734. - if (unlikely(errno != 0))
  36735. - {
  36736. - save = errno;
  36737. - closedir (dp);
  36738. - while (pos > 0)
  36739. - free (names[--pos]);
  36740. - free (names);
  36741. - __set_errno (save);
  36742. - return -1;
  36743. - }
  36744. - closedir (dp);
  36745. - __set_errno (save);
  36746. +#if __WORDSIZE != 64
  36747. +# define __SCANDIR scandir64
  36748. +# define __DIRENT_TYPE struct dirent64
  36749. +# define __READDIR readdir64
  36750. - /* Sort the list if we have a comparison function to sort with. */
  36751. - if (compar != NULL)
  36752. - qsort (names, pos, sizeof (struct dirent64 *), (comparison_fn_t) compar);
  36753. - *namelist = names;
  36754. - return pos;
  36755. -}
  36756. +# include "scandir.c"
  36757. +#endif
  36758. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/scandir.c uClibc-git/libc/misc/dirent/scandir.c
  36759. --- uClibc-0.9.33.2/libc/misc/dirent/scandir.c 2012-05-15 09:20:09.000000000 +0200
  36760. +++ uClibc-git/libc/misc/dirent/scandir.c 2014-06-02 17:40:33.998711896 +0200
  36761. @@ -1,24 +1,29 @@
  36762. +/* vi: set sw=4 ts=4: */
  36763. /*
  36764. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  36765. + * Copyright (C) 2000-2011 Erik Andersen <andersen@uclibc.org>
  36766. *
  36767. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  36768. */
  36769. #include <dirent.h>
  36770. -#include <stdio.h>
  36771. #include <string.h>
  36772. #include <stdlib.h>
  36773. #include <errno.h>
  36774. -#include <sys/types.h>
  36775. #include "dirstream.h"
  36776. -int scandir(const char *dir, struct dirent ***namelist,
  36777. - int (*selector) (const struct dirent *),
  36778. - int (*compar) (const struct dirent **, const struct dirent **))
  36779. +#ifndef __SCANDIR
  36780. +# define __SCANDIR scandir
  36781. +# define __DIRENT_TYPE struct dirent
  36782. +# define __READDIR readdir
  36783. +#endif
  36784. +
  36785. +int __SCANDIR(const char *dir, __DIRENT_TYPE ***namelist,
  36786. + int (*selector) (const __DIRENT_TYPE *),
  36787. + int (*compar) (const __DIRENT_TYPE **, const __DIRENT_TYPE **))
  36788. {
  36789. DIR *dp = opendir (dir);
  36790. - struct dirent *current;
  36791. - struct dirent **names = NULL;
  36792. + __DIRENT_TYPE *current;
  36793. + __DIRENT_TYPE **names = NULL;
  36794. size_t names_size = 0, pos;
  36795. int save;
  36796. @@ -29,7 +34,7 @@
  36797. __set_errno (0);
  36798. pos = 0;
  36799. - while ((current = readdir (dp)) != NULL) {
  36800. + while ((current = __READDIR (dp)) != NULL) {
  36801. int use_it = selector == NULL;
  36802. if (! use_it)
  36803. @@ -43,7 +48,7 @@
  36804. }
  36805. if (use_it)
  36806. {
  36807. - struct dirent *vnew;
  36808. + __DIRENT_TYPE *vnew;
  36809. size_t dsize;
  36810. /* Ignore errors from selector or readdir */
  36811. @@ -51,24 +56,24 @@
  36812. if (unlikely(pos == names_size))
  36813. {
  36814. - struct dirent **new;
  36815. + __DIRENT_TYPE **new;
  36816. if (names_size == 0)
  36817. names_size = 10;
  36818. else
  36819. names_size *= 2;
  36820. - new = (struct dirent **) realloc (names,
  36821. - names_size * sizeof (struct dirent *));
  36822. + new = (__DIRENT_TYPE **) realloc (names,
  36823. + names_size * sizeof (__DIRENT_TYPE *));
  36824. if (new == NULL)
  36825. break;
  36826. names = new;
  36827. }
  36828. dsize = &current->d_name[_D_ALLOC_NAMLEN(current)] - (char*)current;
  36829. - vnew = (struct dirent *) malloc (dsize);
  36830. + vnew = (__DIRENT_TYPE *) malloc (dsize);
  36831. if (vnew == NULL)
  36832. break;
  36833. - names[pos++] = (struct dirent *) memcpy (vnew, current, dsize);
  36834. + names[pos++] = (__DIRENT_TYPE *) memcpy (vnew, current, dsize);
  36835. }
  36836. }
  36837. @@ -88,7 +93,10 @@
  36838. /* Sort the list if we have a comparison function to sort with. */
  36839. if (compar != NULL)
  36840. - qsort (names, pos, sizeof (struct dirent *), (comparison_fn_t) compar);
  36841. + qsort (names, pos, sizeof (__DIRENT_TYPE *), (comparison_fn_t) compar);
  36842. *namelist = names;
  36843. return pos;
  36844. }
  36845. +#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  36846. +strong_alias_untyped(scandir,scandir64)
  36847. +#endif
  36848. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/versionsort64.c uClibc-git/libc/misc/dirent/versionsort64.c
  36849. --- uClibc-0.9.33.2/libc/misc/dirent/versionsort64.c 2012-05-15 09:20:09.000000000 +0200
  36850. +++ uClibc-git/libc/misc/dirent/versionsort64.c 2014-06-02 17:40:33.998711896 +0200
  36851. @@ -5,12 +5,14 @@
  36852. */
  36853. #include <_lfs_64.h>
  36854. -
  36855. #include <dirent.h>
  36856. -#include <string.h>
  36857. -#include "dirstream.h"
  36858. +
  36859. +#if __WORDSIZE != 64
  36860. +# include <string.h>
  36861. +# include "dirstream.h"
  36862. int versionsort64(const struct dirent64 **a, const struct dirent64 **b)
  36863. {
  36864. return strverscmp((*a)->d_name, (*b)->d_name);
  36865. }
  36866. +#endif
  36867. diff -Nur uClibc-0.9.33.2/libc/misc/dirent/versionsort.c uClibc-git/libc/misc/dirent/versionsort.c
  36868. --- uClibc-0.9.33.2/libc/misc/dirent/versionsort.c 2012-05-15 09:20:09.000000000 +0200
  36869. +++ uClibc-git/libc/misc/dirent/versionsort.c 2014-06-02 17:40:33.998711896 +0200
  36870. @@ -12,3 +12,6 @@
  36871. {
  36872. return strverscmp((*a)->d_name, (*b)->d_name);
  36873. }
  36874. +#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  36875. +strong_alias_untyped(versionsort,versionsort64)
  36876. +#endif
  36877. diff -Nur uClibc-0.9.33.2/libc/misc/elf/dl-iterate-phdr.c uClibc-git/libc/misc/elf/dl-iterate-phdr.c
  36878. --- uClibc-0.9.33.2/libc/misc/elf/dl-iterate-phdr.c 2012-05-15 09:20:09.000000000 +0200
  36879. +++ uClibc-git/libc/misc/elf/dl-iterate-phdr.c 2014-06-02 17:40:33.998711896 +0200
  36880. @@ -18,10 +18,7 @@
  36881. /* we want this in libc but nowhere else */
  36882. #ifdef __USE_GNU
  36883. -extern __typeof(dl_iterate_phdr) __dl_iterate_phdr;
  36884. -
  36885. -hidden_proto(__dl_iterate_phdr)
  36886. -int
  36887. +static int
  36888. __dl_iterate_phdr (int (*callback) (struct dl_phdr_info *info, size_t size, void *data), void *data)
  36889. {
  36890. int ret = 0;
  36891. @@ -41,7 +38,6 @@
  36892. #endif
  36893. return ret;
  36894. }
  36895. -hidden_def (__dl_iterate_phdr)
  36896. # ifdef SHARED
  36897. diff -Nur uClibc-0.9.33.2/libc/misc/elf/dl-support.c uClibc-git/libc/misc/elf/dl-support.c
  36898. --- uClibc-0.9.33.2/libc/misc/elf/dl-support.c 2012-05-15 09:20:09.000000000 +0200
  36899. +++ uClibc-git/libc/misc/elf/dl-support.c 2014-06-02 17:40:33.998711896 +0200
  36900. @@ -19,6 +19,7 @@
  36901. #include <ldsodefs.h>
  36902. #include <string.h>
  36903. #endif
  36904. +#include <bits/uClibc_page.h>
  36905. #if defined(USE_TLS) && USE_TLS
  36906. @@ -28,6 +29,7 @@
  36907. ElfW(Phdr) *_dl_phdr;
  36908. size_t _dl_phnum;
  36909. +size_t _dl_pagesize;
  36910. void internal_function _dl_aux_init (ElfW(auxv_t) *av);
  36911. void internal_function _dl_aux_init (ElfW(auxv_t) *av)
  36912. @@ -37,6 +39,9 @@
  36913. /* Get the number of program headers from the aux vect */
  36914. _dl_phnum = (size_t) av[AT_PHNUM].a_un.a_val;
  36915. +
  36916. + /* Get the pagesize from the aux vect */
  36917. + _dl_pagesize = (av[AT_PAGESZ].a_un.a_val) ? (size_t) av[AT_PAGESZ].a_un.a_val : PAGE_SIZE;
  36918. }
  36919. #if defined(USE_TLS) && USE_TLS
  36920. diff -Nur uClibc-0.9.33.2/libc/misc/error/err.c uClibc-git/libc/misc/error/err.c
  36921. --- uClibc-0.9.33.2/libc/misc/error/err.c 2012-05-15 09:20:09.000000000 +0200
  36922. +++ uClibc-git/libc/misc/error/err.c 2014-06-02 17:40:33.998711896 +0200
  36923. @@ -11,9 +11,6 @@
  36924. #include <stdarg.h>
  36925. #include <errno.h>
  36926. #include <err.h>
  36927. -#ifdef __UCLIBC_HAS_THREADS__
  36928. -#include <pthread.h>
  36929. -#endif
  36930. #ifdef __UCLIBC_MJN3_ONLY__
  36931. #warning REMINDER: Deal with wide oriented stderr case.
  36932. @@ -50,68 +47,68 @@
  36933. __STDIO_AUTO_THREADUNLOCK(stderr);
  36934. }
  36935. -void vwarn(const char *format, va_list args)
  36936. +static void __vwarn(const char *format, va_list args)
  36937. {
  36938. vwarn_work(format, args, 1);
  36939. }
  36940. -libc_hidden_def(vwarn)
  36941. +strong_alias(__vwarn,vwarn)
  36942. void warn(const char *format, ...)
  36943. {
  36944. va_list args;
  36945. va_start(args, format);
  36946. - vwarn(format, args);
  36947. + __vwarn(format, args);
  36948. va_end(args);
  36949. }
  36950. -void vwarnx(const char *format, va_list args)
  36951. +static void __vwarnx(const char *format, va_list args)
  36952. {
  36953. vwarn_work(format, args, 0);
  36954. }
  36955. -libc_hidden_def(vwarnx)
  36956. +strong_alias(__vwarnx,vwarnx)
  36957. void warnx(const char *format, ...)
  36958. {
  36959. va_list args;
  36960. va_start(args, format);
  36961. - vwarnx(format, args);
  36962. + __vwarnx(format, args);
  36963. va_end(args);
  36964. }
  36965. -void verr(int status, const char *format, va_list args)
  36966. +static void attribute_noreturn __verr(int status, const char *format, va_list args)
  36967. {
  36968. - vwarn(format, args);
  36969. + __vwarn(format, args);
  36970. exit(status);
  36971. }
  36972. -libc_hidden_def(verr)
  36973. +strong_alias(__verr,verr)
  36974. -void attribute_noreturn err(int status, const char *format, ...)
  36975. +void err(int status, const char *format, ...)
  36976. {
  36977. va_list args;
  36978. va_start(args, format);
  36979. - verr(status, format, args);
  36980. + __verr(status, format, args);
  36981. /* This should get optimized away. We'll leave it now for safety. */
  36982. /* The loop is added only to keep gcc happy. */
  36983. while(1)
  36984. va_end(args);
  36985. }
  36986. -void verrx(int status, const char *format, va_list args)
  36987. +static void attribute_noreturn __verrx(int status, const char *format, va_list args)
  36988. {
  36989. - vwarnx(format, args);
  36990. + __vwarnx(format, args);
  36991. exit(status);
  36992. }
  36993. -libc_hidden_def(verrx)
  36994. +strong_alias(__verrx,verrx)
  36995. -void attribute_noreturn errx(int status, const char *format, ...)
  36996. +void errx(int status, const char *format, ...)
  36997. {
  36998. va_list args;
  36999. va_start(args, format);
  37000. - verrx(status, format, args);
  37001. + __verrx(status, format, args);
  37002. /* This should get optimized away. We'll leave it now for safety. */
  37003. /* The loop is added only to keep gcc happy. */
  37004. while(1)
  37005. diff -Nur uClibc-0.9.33.2/libc/misc/error/error.c uClibc-git/libc/misc/error/error.c
  37006. --- uClibc-0.9.33.2/libc/misc/error/error.c 2012-05-15 09:20:09.000000000 +0200
  37007. +++ uClibc-git/libc/misc/error/error.c 2014-06-02 17:40:33.998711896 +0200
  37008. @@ -13,9 +13,8 @@
  37009. Lesser General Public License for more details.
  37010. You should have received a copy of the GNU Lesser General Public
  37011. - License along with the GNU C Library; if not, write to the Free
  37012. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  37013. - 02111-1307 USA. */
  37014. + License along with the GNU C Library; if not, see
  37015. + <http://www.gnu.org/licenses/>. */
  37016. /* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
  37017. /* Adjusted slightly by Erik Andersen <andersen@uclibc.org> */
  37018. @@ -37,8 +36,7 @@
  37019. function without parameters instead. */
  37020. void (*error_print_progname) (void) = NULL;
  37021. -extern __typeof(error) __error attribute_hidden;
  37022. -void __error (int status, int errnum, const char *message, ...)
  37023. +void error (int status, int errnum, const char *message, ...)
  37024. {
  37025. va_list args;
  37026. @@ -60,11 +58,9 @@
  37027. if (status)
  37028. exit (status);
  37029. }
  37030. -weak_alias(__error,error)
  37031. -extern __typeof(error_at_line) __error_at_line attribute_hidden;
  37032. -void __error_at_line (int status, int errnum, const char *file_name,
  37033. - unsigned int line_number, const char *message, ...)
  37034. +void error_at_line (int status, int errnum, const char *file_name,
  37035. + unsigned int line_number, const char *message, ...)
  37036. {
  37037. va_list args;
  37038. @@ -103,4 +99,3 @@
  37039. if (status)
  37040. exit (status);
  37041. }
  37042. -weak_alias(__error_at_line,error_at_line)
  37043. diff -Nur uClibc-0.9.33.2/libc/misc/error/Makefile.in uClibc-git/libc/misc/error/Makefile.in
  37044. --- uClibc-0.9.33.2/libc/misc/error/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  37045. +++ uClibc-git/libc/misc/error/Makefile.in 2014-06-02 17:40:33.998711896 +0200
  37046. @@ -7,19 +7,15 @@
  37047. subdirs += libc/misc/error
  37048. -CSRC :=
  37049. -ifeq ($(UCLIBC_HAS_BSD_ERR),y)
  37050. -CSRC += err.c
  37051. -endif
  37052. -ifeq ($(UCLIBC_HAS_GNU_ERROR),y)
  37053. -CSRC += error.c
  37054. -endif
  37055. +CSRC-y :=
  37056. +CSRC-$(UCLIBC_HAS_BSD_ERR) += err.c
  37057. +CSRC-$(UCLIBC_HAS_GNU_ERROR) += error.c
  37058. MISC_ERROR_DIR := $(top_srcdir)libc/misc/error
  37059. MISC_ERROR_OUT := $(top_builddir)libc/misc/error
  37060. -MISC_ERROR_SRC := $(patsubst %.c,$(MISC_ERROR_DIR)/%.c,$(CSRC))
  37061. -MISC_ERROR_OBJ := $(patsubst %.c,$(MISC_ERROR_OUT)/%.o,$(CSRC))
  37062. +MISC_ERROR_SRC := $(patsubst %.c,$(MISC_ERROR_DIR)/%.c,$(CSRC-y))
  37063. +MISC_ERROR_OBJ := $(patsubst %.c,$(MISC_ERROR_OUT)/%.o,$(CSRC-y))
  37064. libc-y += $(MISC_ERROR_OBJ)
  37065. diff -Nur uClibc-0.9.33.2/libc/misc/file/isfdtype.c uClibc-git/libc/misc/file/isfdtype.c
  37066. --- uClibc-0.9.33.2/libc/misc/file/isfdtype.c 1970-01-01 01:00:00.000000000 +0100
  37067. +++ uClibc-git/libc/misc/file/isfdtype.c 2014-06-02 17:40:33.998711896 +0200
  37068. @@ -0,0 +1,40 @@
  37069. +/* Determine whether descriptor has given property.
  37070. + Copyright (C) 1996-2013 Free Software Foundation, Inc.
  37071. + This file is part of the GNU C Library.
  37072. +
  37073. + The GNU C Library is free software; you can redistribute it and/or
  37074. + modify it under the terms of the GNU Lesser General Public
  37075. + License as published by the Free Software Foundation; either
  37076. + version 2.1 of the License, or (at your option) any later version.
  37077. +
  37078. + The GNU C Library is distributed in the hope that it will be useful,
  37079. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  37080. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  37081. + Lesser General Public License for more details.
  37082. +
  37083. + You should have received a copy of the GNU Lesser General Public
  37084. + License along with the GNU C Library; if not, see
  37085. + <http://www.gnu.org/licenses/>. */
  37086. +
  37087. +#include <errno.h>
  37088. +#include <sys/stat.h>
  37089. +#include <sys/socket.h>
  37090. +#include <sys/types.h>
  37091. +#ifdef __UCLIBC_HAS_LFS__
  37092. +# include <_lfs_64.h>
  37093. +#else
  37094. +# define stat64 stat
  37095. +# define fstat64 fstat
  37096. +#endif
  37097. +
  37098. +int
  37099. +isfdtype (int fildes, int fdtype)
  37100. +{
  37101. + struct stat64 st;
  37102. + int save_error = errno;
  37103. + int result = fstat64 (fildes, &st);
  37104. + __set_errno (save_error);
  37105. + if (result)
  37106. + return result;
  37107. + return (st.st_mode & S_IFMT) == (mode_t) fdtype;
  37108. +}
  37109. diff -Nur uClibc-0.9.33.2/libc/misc/file/lockf64.c uClibc-git/libc/misc/file/lockf64.c
  37110. --- uClibc-0.9.33.2/libc/misc/file/lockf64.c 2012-05-15 09:20:09.000000000 +0200
  37111. +++ uClibc-git/libc/misc/file/lockf64.c 2014-06-02 17:40:33.998711896 +0200
  37112. @@ -13,8 +13,7 @@
  37113. You should have received a copy of the GNU Library General Public
  37114. License along with the GNU C Library; see the file COPYING.LIB. If not,
  37115. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  37116. - Boston, MA 02111-1307, USA. */
  37117. + see <http://www.gnu.org/licenses/>. */
  37118. #include <_lfs_64.h>
  37119. @@ -90,4 +89,3 @@
  37120. return fcntl(fd, cmd, &fl);
  37121. }
  37122. -libc_hidden_def(lockf64)
  37123. diff -Nur uClibc-0.9.33.2/libc/misc/file/lockf.c uClibc-git/libc/misc/file/lockf.c
  37124. --- uClibc-0.9.33.2/libc/misc/file/lockf.c 2012-05-15 09:20:09.000000000 +0200
  37125. +++ uClibc-git/libc/misc/file/lockf.c 2014-06-02 17:40:33.998711896 +0200
  37126. @@ -13,19 +13,15 @@
  37127. You should have received a copy of the GNU Library General Public
  37128. License along with the GNU C Library; see the file COPYING.LIB. If not,
  37129. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  37130. - Boston, MA 02111-1307, USA. */
  37131. + see <http://www.gnu.org/licenses/>. */
  37132. #include <features.h>
  37133. -
  37134. #include <sys/types.h>
  37135. -#include <unistd.h>
  37136. #include <fcntl.h>
  37137. +#include <unistd.h>
  37138. #include <errno.h>
  37139. #include <string.h>
  37140. -
  37141. -
  37142. /* lockf is a simplified interface to fcntl's locking facilities. */
  37143. int lockf (int fd, int cmd, off_t len)
  37144. diff -Nur uClibc-0.9.33.2/libc/misc/file/Makefile.in uClibc-git/libc/misc/file/Makefile.in
  37145. --- uClibc-0.9.33.2/libc/misc/file/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  37146. +++ uClibc-git/libc/misc/file/Makefile.in 2014-06-02 17:40:33.998711896 +0200
  37147. @@ -10,12 +10,12 @@
  37148. MISC_FILE_DIR := $(top_srcdir)libc/misc/file
  37149. MISC_FILE_OUT := $(top_builddir)libc/misc/file
  37150. -MISC_FILE_SRC := $(wildcard $(MISC_FILE_DIR)/*.c)
  37151. -ifneq ($(UCLIBC_HAS_LFS),y)
  37152. -MISC_FILE_SRC := $(filter-out $(MISC_FILE_DIR)/lockf64.c,$(MISC_FILE_SRC))
  37153. -endif
  37154. -MISC_FILE_OBJ := $(patsubst $(MISC_FILE_DIR)/%.c,$(MISC_FILE_OUT)/%.o,$(MISC_FILE_SRC))
  37155. +CSRC-y := $(wildcard $(MISC_FILE_DIR)/*.c)
  37156. +CSRC_LFS := $(wildcard $(MISC_FILE_DIR)/*64.c)
  37157. +CSRC-y := $(filter-out $(CSRC_LFS),$(CSRC-y))
  37158. +CSRC-$(UCLIBC_HAS_LFS) += $(CSRC_LFS)
  37159. +MISC_FILE_OBJ := $(patsubst $(MISC_FILE_DIR)/%.c,$(MISC_FILE_OUT)/%.o,$(CSRC-y))
  37160. libc-y += $(MISC_FILE_OBJ)
  37161. libc-nomulti-$(UCLIBC_HAS_LFS) += $(MISC_FILE_OUT)/lockf64.o
  37162. diff -Nur uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch.c uClibc-git/libc/misc/fnmatch/fnmatch.c
  37163. --- uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch.c 2012-05-15 09:20:09.000000000 +0200
  37164. +++ uClibc-git/libc/misc/fnmatch/fnmatch.c 2014-06-02 17:40:34.002711919 +0200
  37165. @@ -13,9 +13,8 @@
  37166. Lesser General Public License for more details.
  37167. You should have received a copy of the GNU Lesser General Public
  37168. - License along with the GNU C Library; if not, write to the Free
  37169. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  37170. - 02111-1307 USA. */
  37171. + License along with the GNU C Library; if not, see
  37172. + <http://www.gnu.org/licenses/>. */
  37173. #ifdef HAVE_CONFIG_H
  37174. # include <config.h>
  37175. @@ -54,10 +53,6 @@
  37176. # include <stdlib.h>
  37177. #endif
  37178. -#ifdef __UCLIBC__
  37179. -# define __memset memset
  37180. -#endif
  37181. -
  37182. /* For platform which support the ISO C amendement 1 functionality we
  37183. support user defined character classes. */
  37184. #if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H)
  37185. @@ -347,7 +342,7 @@
  37186. wchar_t *wstring = NULL;
  37187. /* Convert the strings into wide characters. */
  37188. - __memset (&ps, '\0', sizeof (ps));
  37189. + memset (&ps, '\0', sizeof (ps));
  37190. p = pattern;
  37191. #ifdef _LIBC
  37192. n = strnlen (pattern, 1024);
  37193. @@ -364,7 +359,7 @@
  37194. already done? */
  37195. return -1;
  37196. if (p)
  37197. - __memset (&ps, '\0', sizeof (ps));
  37198. + memset (&ps, '\0', sizeof (ps));
  37199. }
  37200. if (__builtin_expect (p != NULL, 0))
  37201. {
  37202. @@ -396,7 +391,7 @@
  37203. already done? */
  37204. return -1;
  37205. if (p)
  37206. - __memset (&ps, '\0', sizeof (ps));
  37207. + memset (&ps, '\0', sizeof (ps));
  37208. }
  37209. if (__builtin_expect (p != NULL, 0))
  37210. {
  37211. diff -Nur uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch_loop.c uClibc-git/libc/misc/fnmatch/fnmatch_loop.c
  37212. --- uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch_loop.c 2012-05-15 09:20:09.000000000 +0200
  37213. +++ uClibc-git/libc/misc/fnmatch/fnmatch_loop.c 2014-06-02 17:40:34.002711919 +0200
  37214. @@ -13,9 +13,8 @@
  37215. Lesser General Public License for more details.
  37216. You should have received a copy of the GNU Lesser General Public
  37217. - License along with the GNU C Library; if not, write to the Free
  37218. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  37219. - 02111-1307 USA. */
  37220. + License along with the GNU C Library; if not, see
  37221. + <http://www.gnu.org/licenses/>. */
  37222. /* Match STRING against the filename pattern PATTERN, returning zero if
  37223. it matches, nonzero if not. */
  37224. @@ -508,7 +507,7 @@
  37225. if (symb_table[2 * elem] == hash
  37226. && (c1
  37227. == extra[symb_table[2 * elem + 1]])
  37228. - && __memcmp (str,
  37229. + && memcmp (str,
  37230. &extra[symb_table[2 * elem
  37231. + 1]
  37232. + 1], c1) == 0)
  37233. @@ -729,7 +728,7 @@
  37234. if (symb_table[2 * elem] == hash
  37235. && (c1
  37236. == extra[symb_table[2 * elem + 1]])
  37237. - && __memcmp (str,
  37238. + && memcmp (str,
  37239. &extra[symb_table[2 * elem + 1]
  37240. + 1], c1) == 0)
  37241. {
  37242. diff -Nur uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch_old.c uClibc-git/libc/misc/fnmatch/fnmatch_old.c
  37243. --- uClibc-0.9.33.2/libc/misc/fnmatch/fnmatch_old.c 2012-05-15 09:20:09.000000000 +0200
  37244. +++ uClibc-git/libc/misc/fnmatch/fnmatch_old.c 2014-06-02 17:40:34.002711919 +0200
  37245. @@ -12,8 +12,7 @@
  37246. You should have received a copy of the GNU Library General Public
  37247. License along with this library; see the file COPYING.LIB. If
  37248. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  37249. -Cambridge, MA 02139, USA. */
  37250. +not, see <http://www.gnu.org/licenses/>. */
  37251. #ifdef HAVE_CONFIG_H
  37252. # include <config.h>
  37253. diff -Nur uClibc-0.9.33.2/libc/misc/fnmatch/Makefile.in uClibc-git/libc/misc/fnmatch/Makefile.in
  37254. --- uClibc-0.9.33.2/libc/misc/fnmatch/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  37255. +++ uClibc-git/libc/misc/fnmatch/Makefile.in 2014-06-02 17:40:34.002711919 +0200
  37256. @@ -7,17 +7,13 @@
  37257. subdirs += libc/misc/fnmatch
  37258. -ifeq ($(UCLIBC_HAS_FNMATCH_OLD),y)
  37259. -CSRC := fnmatch_old.c
  37260. -else
  37261. -CSRC := fnmatch.c
  37262. -endif
  37263. +CSRC-y := $(if $(UCLIBC_HAS_FNMATCH_OLD),fnmatch_old.c,fnmatch.c)
  37264. MISC_FNMATCH_DIR := $(top_srcdir)libc/misc/fnmatch
  37265. MISC_FNMATCH_OUT := $(top_builddir)libc/misc/fnmatch
  37266. -MISC_FNMATCH_SRC := $(patsubst %.c,$(MISC_FNMATCH_DIR)/%.c,$(CSRC))
  37267. -MISC_FNMATCH_OBJ := $(patsubst %.c,$(MISC_FNMATCH_OUT)/%.o,$(CSRC))
  37268. +MISC_FNMATCH_SRC := $(patsubst %.c,$(MISC_FNMATCH_DIR)/%.c,$(CSRC-y))
  37269. +MISC_FNMATCH_OBJ := $(patsubst %.c,$(MISC_FNMATCH_OUT)/%.o,$(CSRC-y))
  37270. libc-$(UCLIBC_HAS_FNMATCH) += $(MISC_FNMATCH_OBJ)
  37271. diff -Nur uClibc-0.9.33.2/libc/misc/fts/fts.c uClibc-git/libc/misc/fts/fts.c
  37272. --- uClibc-0.9.33.2/libc/misc/fts/fts.c 2012-05-15 09:20:09.000000000 +0200
  37273. +++ uClibc-git/libc/misc/fts/fts.c 2014-06-02 17:40:34.002711919 +0200
  37274. @@ -38,6 +38,7 @@
  37275. #include <unistd.h>
  37276. #ifdef __UCLIBC_HAS_LFS__
  37277. +/* this is wrong, either you include this header as first, or not at all */
  37278. # include <_lfs_64.h>
  37279. #else
  37280. # define stat64 stat
  37281. @@ -576,7 +577,7 @@
  37282. FTSENT *cur, *tail;
  37283. DIR *dirp;
  37284. void *oldaddr;
  37285. - int cderrno, descend, len, level, nlinks, saved_errno,
  37286. + int /*cderrno,*/ descend, len, level, nlinks, saved_errno,
  37287. nostat, doadjust;
  37288. size_t maxlen;
  37289. char *cp;
  37290. @@ -641,14 +642,14 @@
  37291. * needed sorted entries or stat information, they had better be
  37292. * checking FTS_NS on the returned nodes.
  37293. */
  37294. - cderrno = 0;
  37295. + /* cderrno = 0; */
  37296. if (nlinks || type == BREAD) {
  37297. if (fts_safe_changedir(sp, cur, dirfd(dirp), NULL)) {
  37298. if (nlinks && type == BREAD)
  37299. cur->fts_errno = errno;
  37300. cur->fts_flags |= FTS_DONTCHDIR;
  37301. descend = 0;
  37302. - cderrno = errno;
  37303. + /* cderrno = errno; */
  37304. (void)closedir(dirp);
  37305. dirp = NULL;
  37306. } else
  37307. diff -Nur uClibc-0.9.33.2/libc/misc/fts/Makefile.in uClibc-git/libc/misc/fts/Makefile.in
  37308. --- uClibc-0.9.33.2/libc/misc/fts/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  37309. +++ uClibc-git/libc/misc/fts/Makefile.in 2014-06-02 17:40:34.002711919 +0200
  37310. @@ -7,13 +7,13 @@
  37311. #
  37312. subdirs += libc/misc/fts
  37313. -CSRC := fts.c
  37314. +CSRC-y := fts.c
  37315. MISC_FTS_DIR := $(top_srcdir)libc/misc/fts
  37316. MISC_FTS_OUT := $(top_builddir)libc/misc/fts
  37317. -MISC_FTS_SRC := $(patsubst %.c,$(MISC_FTS_DIR)/%.c,$(CSRC))
  37318. -MISC_FTS_OBJ := $(patsubst %.c,$(MISC_FTS_OUT)/%.o,$(CSRC))
  37319. +MISC_FTS_SRC := $(patsubst %.c,$(MISC_FTS_DIR)/%.c,$(CSRC-y))
  37320. +MISC_FTS_OBJ := $(patsubst %.c,$(MISC_FTS_OUT)/%.o,$(CSRC-y))
  37321. libc-$(UCLIBC_HAS_FTS) += $(MISC_FTS_OBJ)
  37322. diff -Nur uClibc-0.9.33.2/libc/misc/ftw/ftw64.c uClibc-git/libc/misc/ftw/ftw64.c
  37323. --- uClibc-0.9.33.2/libc/misc/ftw/ftw64.c 2012-05-15 09:20:09.000000000 +0200
  37324. +++ uClibc-git/libc/misc/ftw/ftw64.c 2014-06-02 17:40:34.002711919 +0200
  37325. @@ -14,9 +14,8 @@
  37326. Lesser General Public License for more details.
  37327. You should have received a copy of the GNU Lesser General Public
  37328. - License along with the GNU C Library; if not, write to the Free
  37329. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  37330. - 02111-1307 USA. */
  37331. + License along with the GNU C Library; if not, see
  37332. + <http://www.gnu.org/licenses/>. */
  37333. #define FTW_NAME ftw64
  37334. #define NFTW_NAME nftw64
  37335. diff -Nur uClibc-0.9.33.2/libc/misc/ftw/ftw.c uClibc-git/libc/misc/ftw/ftw.c
  37336. --- uClibc-0.9.33.2/libc/misc/ftw/ftw.c 2012-05-15 09:20:09.000000000 +0200
  37337. +++ uClibc-git/libc/misc/ftw/ftw.c 2014-06-02 17:40:34.002711919 +0200
  37338. @@ -14,15 +14,16 @@
  37339. Lesser General Public License for more details.
  37340. You should have received a copy of the GNU Lesser General Public
  37341. - License along with the GNU C Library; if not, write to the Free
  37342. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  37343. - 02111-1307 USA. */
  37344. + License along with the GNU C Library; if not, see
  37345. + <http://www.gnu.org/licenses/>. */
  37346. #ifdef HAVE_CONFIG_H
  37347. # include <config.h>
  37348. #endif
  37349. #include <features.h>
  37350. +/* need errno.h before undefining _LIBC */
  37351. +#include <errno.h>
  37352. #ifdef __UCLIBC__
  37353. #undef _LIBC
  37354. #define HAVE_DIRENT_H 1
  37355. @@ -32,6 +33,7 @@
  37356. #endif
  37357. #if __GNUC__
  37358. +# undef alloca
  37359. # define alloca __builtin_alloca
  37360. #else
  37361. # if HAVE_ALLOCA_H
  37362. @@ -67,7 +69,6 @@
  37363. # endif
  37364. #endif
  37365. -#include <errno.h>
  37366. #include <ftw.h>
  37367. #include <limits.h>
  37368. #include <search.h>
  37369. @@ -77,11 +78,7 @@
  37370. #if HAVE_SYS_PARAM_H || defined _LIBC
  37371. # include <sys/param.h>
  37372. #endif
  37373. -#ifdef _LIBC
  37374. -# include <include/sys/stat.h>
  37375. -#else
  37376. -# include <sys/stat.h>
  37377. -#endif
  37378. +#include <sys/stat.h>
  37379. #if !defined _LIBC && !HAVE_DECL_STPCPY && !defined stpcpy
  37380. char *stpcpy ();
  37381. diff -Nur uClibc-0.9.33.2/libc/misc/ftw/Makefile.in uClibc-git/libc/misc/ftw/Makefile.in
  37382. --- uClibc-0.9.33.2/libc/misc/ftw/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  37383. +++ uClibc-git/libc/misc/ftw/Makefile.in 2014-06-02 17:40:34.002711919 +0200
  37384. @@ -7,16 +7,14 @@
  37385. subdirs += libc/misc/ftw
  37386. -CSRC := ftw.c
  37387. -ifeq ($(UCLIBC_HAS_LFS),y)
  37388. -CSRC += ftw64.c
  37389. -endif
  37390. +CSRC-y := ftw.c
  37391. +CSRC-$(UCLIBC_HAS_LFS) += ftw64.c
  37392. MISC_FTW_DIR := $(top_srcdir)libc/misc/ftw
  37393. MISC_FTW_OUT := $(top_builddir)libc/misc/ftw
  37394. -MISC_FTW_SRC := $(patsubst %.c,$(MISC_FTW_DIR)/%.c,$(CSRC))
  37395. -MISC_FTW_OBJ := $(patsubst %.c,$(MISC_FTW_OUT)/%.o,$(CSRC))
  37396. +MISC_FTW_SRC := $(patsubst %.c,$(MISC_FTW_DIR)/%.c,$(CSRC-y))
  37397. +MISC_FTW_OBJ := $(patsubst %.c,$(MISC_FTW_OUT)/%.o,$(CSRC-y))
  37398. libc-$(findstring y,$(UCLIBC_HAS_FTW)$(UCLIBC_HAS_NFTW)) += $(MISC_FTW_OBJ)
  37399. diff -Nur uClibc-0.9.33.2/libc/misc/glob/glob.c uClibc-git/libc/misc/glob/glob.c
  37400. --- uClibc-0.9.33.2/libc/misc/glob/glob.c 2012-05-15 09:20:09.000000000 +0200
  37401. +++ uClibc-git/libc/misc/glob/glob.c 2014-06-02 17:40:34.002711919 +0200
  37402. @@ -12,9 +12,8 @@
  37403. Lesser General Public License for more details.
  37404. You should have received a copy of the GNU Lesser General Public
  37405. - License along with the GNU C Library; if not, write to the Free
  37406. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  37407. - 02111-1307 USA. */
  37408. + License along with the GNU C Library; if not, see
  37409. + <http://www.gnu.org/licenses/>. */
  37410. #undef ENABLE_GLOB_BRACE_EXPANSION
  37411. #undef ENABLE_GLOB_TILDE_EXPANSION
  37412. diff -Nur uClibc-0.9.33.2/libc/misc/glob/Makefile.in uClibc-git/libc/misc/glob/Makefile.in
  37413. --- uClibc-0.9.33.2/libc/misc/glob/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  37414. +++ uClibc-git/libc/misc/glob/Makefile.in 2014-06-02 17:40:34.002711919 +0200
  37415. @@ -7,23 +7,15 @@
  37416. subdirs += libc/misc/glob
  37417. -ifeq ($(UCLIBC_HAS_GNU_GLOB),y)
  37418. -CSRC := glob.c
  37419. -ifeq ($(UCLIBC_HAS_LFS),y)
  37420. -CSRC += glob64.c
  37421. -endif
  37422. -else
  37423. -CSRC := glob-susv3.c
  37424. -ifeq ($(UCLIBC_HAS_LFS),y)
  37425. -CSRC += glob64-susv3.c
  37426. -endif
  37427. -endif
  37428. +VARIANT := $(if $(UCLIBC_HAS_GNU_GLOB),,-susv3)
  37429. +CSRC-y := glob$(VARIANT).c
  37430. +CSRC-$(UCLIBC_HAS_LFS) += glob64$(VARIANT).c
  37431. MISC_GLOB_DIR := $(top_srcdir)libc/misc/glob
  37432. MISC_GLOB_OUT := $(top_builddir)libc/misc/glob
  37433. -MISC_GLOB_SRC := $(patsubst %.c,$(MISC_GLOB_DIR)/%.c,$(CSRC))
  37434. -MISC_GLOB_OBJ := $(patsubst %.c,$(MISC_GLOB_OUT)/%.o,$(CSRC))
  37435. +MISC_GLOB_SRC := $(patsubst %.c,$(MISC_GLOB_DIR)/%.c,$(CSRC-y))
  37436. +MISC_GLOB_OBJ := $(patsubst %.c,$(MISC_GLOB_OUT)/%.o,$(CSRC-y))
  37437. libc-$(UCLIBC_HAS_GLOB) += $(MISC_GLOB_OBJ)
  37438. diff -Nur uClibc-0.9.33.2/libc/misc/gnu/Makefile.in uClibc-git/libc/misc/gnu/Makefile.in
  37439. --- uClibc-0.9.33.2/libc/misc/gnu/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  37440. +++ uClibc-git/libc/misc/gnu/Makefile.in 2014-06-02 17:40:34.002711919 +0200
  37441. @@ -7,13 +7,14 @@
  37442. subdirs += libc/misc/gnu
  37443. -CSRC := obstack.c
  37444. +CSRC-y :=
  37445. +CSRC-$(UCLIBC_HAS_OBSTACK) := obstack.c obprintf.c
  37446. MISC_GNU_DIR := $(top_srcdir)libc/misc/gnu
  37447. MISC_GNU_OUT := $(top_builddir)libc/misc/gnu
  37448. -MISC_GNU_SRC := $(MISC_GNU_DIR)/obstack.c
  37449. -MISC_GNU_OBJ := $(MISC_GNU_OUT)/obstack.o
  37450. +MISC_GNU_SRC := $(patsubst %.c,$(MISC_GNU_DIR)/%.c,$(CSRC-y))
  37451. +MISC_GNU_OBJ := $(patsubst %.c,$(MISC_GNU_OUT)/%.o,$(CSRC-y))
  37452. libc-y += $(MISC_GNU_OBJ)
  37453. diff -Nur uClibc-0.9.33.2/libc/misc/gnu/obprintf.c uClibc-git/libc/misc/gnu/obprintf.c
  37454. --- uClibc-0.9.33.2/libc/misc/gnu/obprintf.c 1970-01-01 01:00:00.000000000 +0100
  37455. +++ uClibc-git/libc/misc/gnu/obprintf.c 2014-06-02 17:40:34.002711919 +0200
  37456. @@ -0,0 +1,29 @@
  37457. +/* Copyright (C) 2013 Gentoo Foundation
  37458. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  37459. + */
  37460. +
  37461. +#include <stdio.h>
  37462. +#include <stdarg.h>
  37463. +#include <obstack.h>
  37464. +
  37465. +int
  37466. +obstack_vprintf (struct obstack *obstack, const char *format, va_list args)
  37467. +{
  37468. + int n;
  37469. + char *s;
  37470. + n = vasprintf(&s, format, args);
  37471. + obstack_grow(obstack, s, n);
  37472. + return n;
  37473. +}
  37474. +libc_hidden_def(obstack_vprintf)
  37475. +
  37476. +int
  37477. +obstack_printf (struct obstack *obstack, const char *format, ...)
  37478. +{
  37479. + int n;
  37480. + va_list ap;
  37481. + va_start (ap, format);
  37482. + n = obstack_vprintf (obstack, format, ap);
  37483. + va_end (ap);
  37484. + return n;
  37485. +}
  37486. diff -Nur uClibc-0.9.33.2/libc/misc/gnu/obstack.c uClibc-git/libc/misc/gnu/obstack.c
  37487. --- uClibc-0.9.33.2/libc/misc/gnu/obstack.c 2012-05-15 09:20:09.000000000 +0200
  37488. +++ uClibc-git/libc/misc/gnu/obstack.c 2014-06-02 17:40:34.002711919 +0200
  37489. @@ -14,9 +14,8 @@
  37490. Lesser General Public License for more details.
  37491. You should have received a copy of the GNU Lesser General Public
  37492. - License along with the GNU C Library; if not, write to the Free
  37493. - Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  37494. - Boston, MA 02110-1301, USA. */
  37495. + License along with the GNU C Library; if not, see
  37496. + <http://www.gnu.org/licenses/>. */
  37497. #ifdef HAVE_CONFIG_H
  37498. @@ -30,11 +29,6 @@
  37499. #else
  37500. # define HAVE_INTTYPES_H 1
  37501. # define HAVE_STDINT_H 1
  37502. -# define SHLIB_COMPAT(x,y,z) 0
  37503. -# undef libc_hidden_def
  37504. -# define libc_hidden_def(x)
  37505. -# undef strong_alias
  37506. -# define strong_alias(x,y)
  37507. #endif
  37508. #else
  37509. # include "obstack.h"
  37510. @@ -112,19 +106,19 @@
  37511. `print_and_abort'. */
  37512. static void print_and_abort (void);
  37513. static void (*__obstack_alloc_failed_handler) (void) = print_and_abort;
  37514. -weak_alias(__obstack_alloc_failed_handler,obstack_alloc_failed_handler)
  37515. +strong_alias(__obstack_alloc_failed_handler,obstack_alloc_failed_handler)
  37516. /* Exit value used when `print_and_abort' is used. */
  37517. # include <stdlib.h>
  37518. # ifdef _LIBC
  37519. static int __obstack_exit_failure = EXIT_FAILURE;
  37520. -weak_alias(__obstack_exit_failure,obstack_exit_failure)
  37521. +strong_alias(__obstack_exit_failure,obstack_exit_failure)
  37522. # else
  37523. # include "exitfail.h"
  37524. # define __obstack_exit_failure exit_failure
  37525. # endif
  37526. -# ifdef _LIBC
  37527. +# if 0
  37528. # if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_3_4)
  37529. /* A looong time ago (before 1994, anyway; we're not sure) this global variable
  37530. was used by non-GNU-C macros to avoid multiple evaluation. The GNU C
  37531. @@ -328,9 +322,7 @@
  37532. /* The new chunk certainly contains no empty object yet. */
  37533. h->maybe_empty_object = 0;
  37534. }
  37535. -# ifdef _LIBC
  37536. -libc_hidden_def (_obstack_newchunk)
  37537. -# endif
  37538. +libc_hidden_def(_obstack_newchunk)
  37539. /* Return nonzero if object OBJ has been allocated from obstack H.
  37540. This is here for debugging.
  37541. @@ -393,7 +385,7 @@
  37542. abort ();
  37543. }
  37544. -# ifdef _LIBC
  37545. +# if 0
  37546. /* Older versions of libc used a function _obstack_free intended to be
  37547. called by non-GCC compilers. */
  37548. strong_alias (obstack_free, _obstack_free)
  37549. @@ -418,9 +410,6 @@
  37550. # else
  37551. # include "gettext.h"
  37552. # endif
  37553. -/* NLS: Disable gettext in obstack for now: */
  37554. -# undef _
  37555. -# define _(Str) (Str)
  37556. # ifndef _
  37557. # define _(msgid) gettext (msgid)
  37558. # endif
  37559. diff -Nur uClibc-0.9.33.2/libc/misc/internals/errno.c uClibc-git/libc/misc/internals/errno.c
  37560. --- uClibc-0.9.33.2/libc/misc/internals/errno.c 2012-05-15 09:20:09.000000000 +0200
  37561. +++ uClibc-git/libc/misc/internals/errno.c 2014-06-02 17:40:34.006711940 +0200
  37562. @@ -1,21 +1,14 @@
  37563. #include <features.h>
  37564. +#include <errno.h>
  37565. +#undef errno
  37566. #ifdef __UCLIBC_HAS_TLS__
  37567. __thread int errno;
  37568. -__thread int h_errno;
  37569. -
  37570. extern __thread int __libc_errno __attribute__ ((alias ("errno"))) attribute_hidden;
  37571. -extern __thread int __libc_h_errno __attribute__ ((alias ("h_errno"))) attribute_hidden;
  37572. -#define h_errno __libc_h_errno
  37573. -
  37574. #else
  37575. -#include "internal_errno.h"
  37576. +extern int errno;
  37577. int errno = 0;
  37578. -int h_errno = 0;
  37579. -#ifdef __UCLIBC_HAS_THREADS__
  37580. -libc_hidden_def(errno)
  37581. -weak_alias(errno, _errno)
  37582. -libc_hidden_def(h_errno)
  37583. -weak_alias(h_errno, _h_errno)
  37584. -#endif
  37585. +# ifdef __UCLIBC_HAS_THREADS__
  37586. +strong_alias(errno,_errno)
  37587. +# endif
  37588. #endif
  37589. diff -Nur uClibc-0.9.33.2/libc/misc/internals/__errno_location.c uClibc-git/libc/misc/internals/__errno_location.c
  37590. --- uClibc-0.9.33.2/libc/misc/internals/__errno_location.c 2012-05-15 09:20:09.000000000 +0200
  37591. +++ uClibc-git/libc/misc/internals/__errno_location.c 2014-06-02 17:40:34.002711919 +0200
  37592. @@ -4,17 +4,15 @@
  37593. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  37594. */
  37595. -#include "internal_errno.h"
  37596. +#include <features.h>
  37597. +#include <errno.h>
  37598. -/* psm: moved to bits/errno.h: */
  37599. -int *
  37600. -#ifndef __UCLIBC_HAS_THREADS__
  37601. -weak_const_function
  37602. +#ifndef __UCLIBC_HAS_TLS__
  37603. +# undef errno
  37604. +extern int errno;
  37605. #endif
  37606. -__errno_location (void)
  37607. +
  37608. +int weak_const_function *__errno_location(void)
  37609. {
  37610. return &errno;
  37611. }
  37612. -#ifdef IS_IN_libc /* not really need, only to keep in sync w/ libc_hidden_proto */
  37613. -libc_hidden_weak(__errno_location)
  37614. -#endif
  37615. diff -Nur uClibc-0.9.33.2/libc/misc/internals/h_errno.c uClibc-git/libc/misc/internals/h_errno.c
  37616. --- uClibc-0.9.33.2/libc/misc/internals/h_errno.c 1970-01-01 01:00:00.000000000 +0100
  37617. +++ uClibc-git/libc/misc/internals/h_errno.c 2014-06-02 17:40:34.006711940 +0200
  37618. @@ -0,0 +1,14 @@
  37619. +#include <features.h>
  37620. +#include <netdb.h>
  37621. +#undef h_errno
  37622. +
  37623. +#ifdef __UCLIBC_HAS_TLS__
  37624. +__thread int h_errno;
  37625. +extern __thread int __libc_h_errno __attribute__ ((alias ("h_errno"))) attribute_hidden;
  37626. +#else
  37627. +extern int h_errno;
  37628. +int h_errno = 0;
  37629. +# ifdef __UCLIBC_HAS_THREADS__
  37630. +strong_alias(h_errno,_h_errno)
  37631. +# endif
  37632. +#endif
  37633. diff -Nur uClibc-0.9.33.2/libc/misc/internals/__h_errno_location.c uClibc-git/libc/misc/internals/__h_errno_location.c
  37634. --- uClibc-0.9.33.2/libc/misc/internals/__h_errno_location.c 2012-05-15 09:20:09.000000000 +0200
  37635. +++ uClibc-git/libc/misc/internals/__h_errno_location.c 2014-06-02 17:40:34.006711940 +0200
  37636. @@ -4,10 +4,15 @@
  37637. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  37638. */
  37639. -#include "internal_errno.h"
  37640. +#include <features.h>
  37641. +#include <netdb.h>
  37642. -int * weak_const_function __h_errno_location (void)
  37643. +#ifndef __UCLIBC_HAS_TLS__
  37644. +# undef h_errno
  37645. +extern int h_errno;
  37646. +#endif
  37647. +
  37648. +int weak_const_function *__h_errno_location(void)
  37649. {
  37650. return &h_errno;
  37651. }
  37652. -libc_hidden_weak(__h_errno_location)
  37653. diff -Nur uClibc-0.9.33.2/libc/misc/internals/internal_errno.h uClibc-git/libc/misc/internals/internal_errno.h
  37654. --- uClibc-0.9.33.2/libc/misc/internals/internal_errno.h 2012-05-15 09:20:09.000000000 +0200
  37655. +++ uClibc-git/libc/misc/internals/internal_errno.h 1970-01-01 01:00:00.000000000 +0100
  37656. @@ -1,21 +0,0 @@
  37657. -/*
  37658. - *
  37659. - */
  37660. -
  37661. -#include <features.h>
  37662. -#include <errno.h>
  37663. -#include <netdb.h>
  37664. -
  37665. -#ifndef __UCLIBC_HAS_TLS__
  37666. -
  37667. -#undef errno
  37668. -#undef h_errno
  37669. -
  37670. -extern int h_errno;
  37671. -extern int errno;
  37672. -
  37673. -#ifdef __UCLIBC_HAS_THREADS__
  37674. -libc_hidden_proto(h_errno)
  37675. -libc_hidden_proto(errno)
  37676. -#endif
  37677. -#endif
  37678. diff -Nur uClibc-0.9.33.2/libc/misc/internals/Makefile.in uClibc-git/libc/misc/internals/Makefile.in
  37679. --- uClibc-0.9.33.2/libc/misc/internals/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  37680. +++ uClibc-git/libc/misc/internals/Makefile.in 2014-06-02 17:40:34.002711919 +0200
  37681. @@ -7,14 +7,14 @@
  37682. subdirs += libc/misc/internals
  37683. -CSRC := tempname.c errno.c __errno_location.c __h_errno_location.c \
  37684. +CSRC-y := tempname.c errno.c h_errno.c __errno_location.c __h_errno_location.c \
  37685. parse_config.c
  37686. MISC_INTERNALS_DIR := $(top_srcdir)libc/misc/internals
  37687. MISC_INTERNALS_OUT := $(top_builddir)libc/misc/internals
  37688. -MISC_INTERNALS_SRC := $(patsubst %.c,$(MISC_INTERNALS_DIR)/%.c,$(CSRC))
  37689. -MISC_INTERNALS_OBJ := $(patsubst %.c,$(MISC_INTERNALS_OUT)/%.o,$(CSRC))
  37690. +MISC_INTERNALS_SRC := $(patsubst %.c,$(MISC_INTERNALS_DIR)/%.c,$(CSRC-y))
  37691. +MISC_INTERNALS_OBJ := $(patsubst %.c,$(MISC_INTERNALS_OUT)/%.o,$(CSRC-y))
  37692. CFLAGS-__uClibc_main.c := $(SSP_DISABLE_FLAGS)
  37693. diff -Nur uClibc-0.9.33.2/libc/misc/internals/parse_config.c uClibc-git/libc/misc/internals/parse_config.c
  37694. --- uClibc-0.9.33.2/libc/misc/internals/parse_config.c 2012-05-15 09:20:09.000000000 +0200
  37695. +++ uClibc-git/libc/misc/internals/parse_config.c 2014-06-02 17:40:34.006711940 +0200
  37696. @@ -129,7 +129,7 @@
  37697. return parser;
  37698. }
  37699. -parser_t attribute_hidden * FAST_FUNC config_open(const char *filename)
  37700. +parser_t * FAST_FUNC config_open(const char *filename)
  37701. {
  37702. return config_open2(filename, fopen_or_warn_stdin);
  37703. }
  37704. @@ -142,7 +142,7 @@
  37705. }
  37706. #endif
  37707. -void attribute_hidden FAST_FUNC config_close(parser_t *parser)
  37708. +void FAST_FUNC config_close(parser_t *parser)
  37709. {
  37710. if (parser) {
  37711. fclose(parser->fp);
  37712. @@ -176,7 +176,7 @@
  37713. (but more than 0) are found. Empty lines are always skipped (not warned about).
  37714. */
  37715. #undef config_read
  37716. -int attribute_hidden FAST_FUNC config_read(parser_t *parser, char ***tokens,
  37717. +int FAST_FUNC config_read(parser_t *parser, char ***tokens,
  37718. unsigned flags, const char *delims)
  37719. {
  37720. char *line;
  37721. diff -Nur uClibc-0.9.33.2/libc/misc/internals/tempname.c uClibc-git/libc/misc/internals/tempname.c
  37722. --- uClibc-0.9.33.2/libc/misc/internals/tempname.c 2012-05-15 09:20:09.000000000 +0200
  37723. +++ uClibc-git/libc/misc/internals/tempname.c 2014-06-02 17:40:34.006711940 +0200
  37724. @@ -13,8 +13,7 @@
  37725. You should have received a copy of the GNU Library General Public
  37726. License along with the GNU C Library; see the file COPYING.LIB. If not,
  37727. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  37728. - Boston, MA 02111-1307, USA. */
  37729. + see <http://www.gnu.org/licenses/>. */
  37730. /* March 11, 2002 Manuel Novoa III
  37731. *
  37732. @@ -58,7 +57,7 @@
  37733. for use with mk[s]temp. Will fail (-1) if DIR is non-null and
  37734. doesn't exist, none of the searched dirs exists, or there's not
  37735. enough space in TMPL. */
  37736. -int attribute_hidden ___path_search (char *tmpl, size_t tmpl_len, const char *dir,
  37737. +int ___path_search (char *tmpl, size_t tmpl_len, const char *dir,
  37738. const char *pfx /*, int try_tmpdir*/)
  37739. {
  37740. /*const char *d; */
  37741. diff -Nur uClibc-0.9.33.2/libc/misc/internals/__uClibc_main.c uClibc-git/libc/misc/internals/__uClibc_main.c
  37742. --- uClibc-0.9.33.2/libc/misc/internals/__uClibc_main.c 2012-05-15 09:20:09.000000000 +0200
  37743. +++ uClibc-git/libc/misc/internals/__uClibc_main.c 2014-06-02 17:40:34.006711940 +0200
  37744. @@ -15,9 +15,6 @@
  37745. */
  37746. #include <features.h>
  37747. -#ifndef __UCLIBC_HAS_THREADS_NATIVE__
  37748. -#define _ERRNO_H
  37749. -#endif
  37750. #include <unistd.h>
  37751. #include <stdlib.h>
  37752. #include <string.h>
  37753. @@ -25,20 +22,23 @@
  37754. #include <link.h>
  37755. #include <bits/uClibc_page.h>
  37756. #include <paths.h>
  37757. -#include <unistd.h>
  37758. -#include <asm/errno.h>
  37759. +#include <errno.h>
  37760. +#include <netdb.h>
  37761. +#include <stdio.h>
  37762. +#ifndef __ARCH_HAS_NO_LDSO__
  37763. #include <fcntl.h>
  37764. -#include <sys/stat.h>
  37765. -#include <sys/sysmacros.h>
  37766. +#endif
  37767. #ifdef __UCLIBC_HAS_THREADS_NATIVE__
  37768. -#include <errno.h>
  37769. #include <pthread-functions.h>
  37770. #include <not-cancel.h>
  37771. #include <atomic.h>
  37772. #endif
  37773. #ifdef __UCLIBC_HAS_THREADS__
  37774. #include <pthread.h>
  37775. -#endif
  37776. +#endif
  37777. +#ifdef __UCLIBC_HAS_LOCALE__
  37778. +#include <locale.h>
  37779. +#endif
  37780. #ifndef SHARED
  37781. void *__libc_stack_end = NULL;
  37782. @@ -116,12 +116,6 @@
  37783. /*
  37784. * Prototypes.
  37785. */
  37786. -extern int *weak_const_function __errno_location(void);
  37787. -extern int *weak_const_function __h_errno_location(void);
  37788. -extern void weak_function _stdio_init(void) attribute_hidden;
  37789. -#ifdef __UCLIBC_HAS_LOCALE__
  37790. -extern void weak_function _locale_init(void) attribute_hidden;
  37791. -#endif
  37792. #ifdef __UCLIBC_HAS_THREADS__
  37793. #if !defined (__UCLIBC_HAS_THREADS_NATIVE__) || defined (SHARED)
  37794. extern void weak_function __pthread_initialize_minimal(void);
  37795. @@ -146,18 +140,24 @@
  37796. # endif
  37797. #endif
  37798. -#if defined (__LDSO_STANDALONE_SUPPORT__) && defined (SHARED) && defined __sh__
  37799. -extern unsigned long _dl_skip_args;
  37800. +#ifdef SHARED
  37801. +extern int _dl_secure;
  37802. #endif
  37803. +extern size_t _dl_pagesize;
  37804. -attribute_hidden const char *__uclibc_progname = "";
  37805. -#ifdef __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__
  37806. -const char *program_invocation_short_name = "";
  37807. -const char *program_invocation_name = "";
  37808. -#endif
  37809. -#ifdef __UCLIBC_HAS___PROGNAME__
  37810. -weak_alias (program_invocation_short_name, __progname)
  37811. -weak_alias (program_invocation_name, __progname_full)
  37812. +const char *__uclibc_progname = "";
  37813. +#if !defined __UCLIBC_HAS___PROGNAME__ && defined __USE_GNU && defined __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__
  37814. +# define __progname program_invocation_short_name
  37815. +# define __progname_full program_invocation_name
  37816. +#endif
  37817. +#if defined __UCLIBC_HAS___PROGNAME__ || (defined __USE_GNU && defined __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__)
  37818. +const char *__progname = "";
  37819. +/* psm: why have a visible __progname_full? */
  37820. +const char *__progname_full = "";
  37821. +# if defined __UCLIBC_HAS___PROGNAME__ && defined __USE_GNU && defined __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__
  37822. +weak_alias (__progname, program_invocation_short_name)
  37823. +weak_alias (__progname_full, program_invocation_name)
  37824. +# endif
  37825. #endif
  37826. /*
  37827. @@ -167,7 +167,6 @@
  37828. char **__environ = 0;
  37829. weak_alias(__environ, environ)
  37830. -/* TODO: don't export __pagesize; we cant now because libpthread uses it */
  37831. size_t __pagesize = 0;
  37832. #ifndef O_NOFOLLOW
  37833. @@ -192,6 +191,7 @@
  37834. }
  37835. }
  37836. +#ifndef SHARED
  37837. static int __check_suid(void)
  37838. {
  37839. uid_t uid, euid;
  37840. @@ -208,6 +208,7 @@
  37841. return 0; /* we are not suid */
  37842. }
  37843. #endif
  37844. +#endif
  37845. /* __uClibc_init completely initialize uClibc so it is ready to use.
  37846. *
  37847. @@ -222,8 +223,7 @@
  37848. * __uClibc_main.
  37849. */
  37850. -extern void __uClibc_init(void);
  37851. -libc_hidden_proto(__uClibc_init)
  37852. +extern void __uClibc_init(void) attribute_hidden;
  37853. void __uClibc_init(void)
  37854. {
  37855. /* Don't recurse */
  37856. @@ -276,7 +276,6 @@
  37857. _stdio_init();
  37858. }
  37859. -libc_hidden_def(__uClibc_init)
  37860. #ifdef __UCLIBC_CTOR_DTOR__
  37861. void attribute_hidden (*__app_fini)(void) = NULL;
  37862. @@ -284,8 +283,7 @@
  37863. void attribute_hidden (*__rtld_fini)(void) = NULL;
  37864. -extern void __uClibc_fini(void);
  37865. -libc_hidden_proto(__uClibc_fini)
  37866. +extern void __uClibc_fini(void) attribute_hidden;
  37867. void __uClibc_fini(void)
  37868. {
  37869. #ifdef __UCLIBC_CTOR_DTOR__
  37870. @@ -304,7 +302,6 @@
  37871. if (__rtld_fini != NULL)
  37872. (__rtld_fini)();
  37873. }
  37874. -libc_hidden_def(__uClibc_fini)
  37875. #ifndef SHARED
  37876. extern void __nptl_deallocate_tsd (void) __attribute ((weak));
  37877. @@ -323,7 +320,7 @@
  37878. char **argv, void (*app_init)(void), void (*app_fini)(void),
  37879. void (*rtld_fini)(void), void *stack_end attribute_unused)
  37880. {
  37881. -#ifndef __ARCH_HAS_NO_LDSO__
  37882. +#if !defined __ARCH_HAS_NO_LDSO__ && !defined SHARED
  37883. unsigned long *aux_dat;
  37884. ElfW(auxv_t) auxvt[AT_EGID + 1];
  37885. #endif
  37886. @@ -339,18 +336,6 @@
  37887. __rtld_fini = rtld_fini;
  37888. -#if defined __LDSO_STANDALONE_SUPPORT__ && defined SHARED && defined __sh__
  37889. - /*
  37890. - * Skip ld.so and its arguments
  37891. - * Other archs except for SH do this in _dl_start before passing
  37892. - * control to the application.
  37893. - * FIXME: align SH _dl_start to other archs and remove this from here,
  37894. - * so that we can keep the visibility hidden.
  37895. - */
  37896. - argc -= _dl_skip_args;
  37897. - argv += _dl_skip_args;
  37898. -#endif
  37899. -
  37900. /* The environment begins right after argv. */
  37901. __environ = &argv[argc + 1];
  37902. @@ -361,7 +346,7 @@
  37903. __environ = &argv[argc];
  37904. }
  37905. -#ifndef __ARCH_HAS_NO_LDSO__
  37906. +#if !defined __ARCH_HAS_NO_LDSO__ && !defined SHARED
  37907. /* Pull stuff from the ELF header when possible */
  37908. memset(auxvt, 0x00, sizeof(auxvt));
  37909. aux_dat = (unsigned long*)__environ;
  37910. @@ -376,13 +361,11 @@
  37911. }
  37912. aux_dat += 2;
  37913. }
  37914. -#ifndef SHARED
  37915. /* Get the program headers (_dl_phdr) from the aux vector
  37916. It will be used into __libc_setup_tls. */
  37917. _dl_aux_init (auxvt);
  37918. #endif
  37919. -#endif
  37920. /* We need to initialize uClibc. If we are dynamically linked this
  37921. * may have already been completed by the shared lib loader. We call
  37922. @@ -390,15 +373,20 @@
  37923. __uClibc_init();
  37924. #ifndef __ARCH_HAS_NO_LDSO__
  37925. - /* Make certain getpagesize() gives the correct answer */
  37926. - __pagesize = (auxvt[AT_PAGESZ].a_un.a_val)? auxvt[AT_PAGESZ].a_un.a_val : PAGE_SIZE;
  37927. + /* Make certain getpagesize() gives the correct answer.
  37928. + * _dl_pagesize is defined into ld.so if SHARED or into libc.a otherwise. */
  37929. + __pagesize = _dl_pagesize;
  37930. +#ifndef SHARED
  37931. /* Prevent starting SUID binaries where the stdin. stdout, and
  37932. * stderr file descriptors are not already opened. */
  37933. if ((auxvt[AT_UID].a_un.a_val == (size_t)-1 && __check_suid()) ||
  37934. (auxvt[AT_UID].a_un.a_val != (size_t)-1 &&
  37935. (auxvt[AT_UID].a_un.a_val != auxvt[AT_EUID].a_un.a_val ||
  37936. auxvt[AT_GID].a_un.a_val != auxvt[AT_EGID].a_un.a_val)))
  37937. +#else
  37938. + if (_dl_secure)
  37939. +#endif
  37940. {
  37941. __check_one_fd (STDIN_FILENO, O_RDONLY | O_NOFOLLOW);
  37942. __check_one_fd (STDOUT_FILENO, O_RDWR | O_NOFOLLOW);
  37943. @@ -407,14 +395,14 @@
  37944. #endif
  37945. __uclibc_progname = *argv;
  37946. -#ifdef __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__
  37947. +#if defined __UCLIBC_HAS___PROGNAME__ || (defined __USE_GNU && defined __UCLIBC_HAS_PROGRAM_INVOCATION_NAME__)
  37948. if (*argv != NULL) {
  37949. - program_invocation_name = *argv;
  37950. - program_invocation_short_name = strrchr(*argv, '/');
  37951. - if (program_invocation_short_name != NULL)
  37952. - ++program_invocation_short_name;
  37953. + __progname_full = *argv;
  37954. + __progname = strrchr(*argv, '/');
  37955. + if (__progname != NULL)
  37956. + ++__progname;
  37957. else
  37958. - program_invocation_short_name = program_invocation_name;
  37959. + __progname = *argv;
  37960. }
  37961. #endif
  37962. diff -Nur uClibc-0.9.33.2/libc/misc/locale/locale.c uClibc-git/libc/misc/locale/locale.c
  37963. --- uClibc-0.9.33.2/libc/misc/locale/locale.c 2012-05-15 09:20:09.000000000 +0200
  37964. +++ uClibc-git/libc/misc/locale/locale.c 2014-06-02 17:40:34.006711940 +0200
  37965. @@ -11,8 +11,8 @@
  37966. * Library General Public License for more details.
  37967. *
  37968. * You should have received a copy of the GNU Library General Public
  37969. - * License along with this library; if not, write to the Free
  37970. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  37971. + * License along with this library; if not, see
  37972. + * <http://www.gnu.org/licenses/>.
  37973. */
  37974. /* Nov. 1, 2002
  37975. @@ -85,19 +85,17 @@
  37976. #endif
  37977. #endif
  37978. -/* Need to include this before locale.h and xlocale.h! */
  37979. +/* Need to include this before locale.h! */
  37980. #include <bits/uClibc_locale.h>
  37981. #undef CODESET_LIST
  37982. #define CODESET_LIST (__locale_mmap->codeset_list)
  37983. #ifdef __UCLIBC_HAS_XLOCALE__
  37984. -#include <xlocale.h>
  37985. #include <locale.h>
  37986. #else /* __UCLIBC_HAS_XLOCALE__ */
  37987. /* We need this internally... */
  37988. #define __UCLIBC_HAS_XLOCALE__ 1
  37989. -#include <xlocale.h>
  37990. #include <locale.h>
  37991. #undef __UCLIBC_HAS_XLOCALE__
  37992. #endif /* __UCLIBC_HAS_XLOCALE__ */
  37993. @@ -908,7 +906,6 @@
  37994. _locale_set_l((unsigned char*) C_LOCALE_SELECTOR, base);
  37995. }
  37996. -void _locale_init(void) attribute_hidden;
  37997. void _locale_init(void)
  37998. {
  37999. /* TODO: mmap the locale file */
  38000. @@ -1396,6 +1393,7 @@
  38001. {
  38002. return __curlocale_var; /* This is overriden by the thread version. */
  38003. }
  38004. +libc_hidden_weak(__curlocale)
  38005. __locale_t weak_function __curlocale_set(__locale_t newloc)
  38006. {
  38007. @@ -1404,6 +1402,7 @@
  38008. __curlocale_var = newloc;
  38009. return oldloc;
  38010. }
  38011. +libc_hidden_weak(__curlocale_set)
  38012. #endif
  38013. diff -Nur uClibc-0.9.33.2/libc/misc/locale/Makefile.in uClibc-git/libc/misc/locale/Makefile.in
  38014. --- uClibc-0.9.33.2/libc/misc/locale/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  38015. +++ uClibc-git/libc/misc/locale/Makefile.in 2014-06-02 17:40:34.006711940 +0200
  38016. @@ -8,19 +8,16 @@
  38017. subdirs += libc/misc/locale
  38018. # multi source locale.c
  38019. -CSRC := setlocale.c localeconv.c _locale_init.c nl_langinfo.c
  38020. -ifeq ($(UCLIBC_HAS_LOCALE),y)
  38021. -CSRC += newlocale.c __locale_mbrtowc_l.c
  38022. -endif
  38023. -ifeq ($(UCLIBC_HAS_XLOCALE),y)
  38024. -CSRC += nl_langinfo_l.c duplocale.c freelocale.c uselocale.c __curlocale.c
  38025. -endif
  38026. +CSRC-y := setlocale.c localeconv.c _locale_init.c nl_langinfo.c
  38027. +CSRC-$(UCLIBC_HAS_LOCALE) += newlocale.c __locale_mbrtowc_l.c
  38028. +CSRC-$(UCLIBC_HAS_XLOCALE) += nl_langinfo_l.c duplocale.c freelocale.c \
  38029. + uselocale.c __curlocale.c
  38030. MISC_LOCALE_DIR := $(top_srcdir)libc/misc/locale
  38031. MISC_LOCALE_OUT := $(top_builddir)libc/misc/locale
  38032. -MISC_LOCALE_SRC := $(patsubst %.c,$(MISC_LOCALE_DIR)/%.c,$(CSRC))
  38033. -MISC_LOCALE_OBJ := $(patsubst %.c,$(MISC_LOCALE_OUT)/%.o,$(CSRC))
  38034. +MISC_LOCALE_SRC := $(patsubst %.c,$(MISC_LOCALE_DIR)/%.c,$(CSRC-y))
  38035. +MISC_LOCALE_OBJ := $(patsubst %.c,$(MISC_LOCALE_OUT)/%.o,$(CSRC-y))
  38036. libc-y += $(MISC_LOCALE_OBJ)
  38037. diff -Nur uClibc-0.9.33.2/libc/misc/mntent/Makefile.in uClibc-git/libc/misc/mntent/Makefile.in
  38038. --- uClibc-0.9.33.2/libc/misc/mntent/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  38039. +++ uClibc-git/libc/misc/mntent/Makefile.in 2014-06-02 17:40:34.022712029 +0200
  38040. @@ -7,13 +7,13 @@
  38041. subdirs += libc/misc/mntent
  38042. -CSRC := mntent.c
  38043. +CSRC-y := mntent.c
  38044. MISC_MNTENT_DIR := $(top_srcdir)libc/misc/mntent
  38045. MISC_MNTENT_OUT := $(top_builddir)libc/misc/mntent
  38046. -MISC_MNTENT_SRC := $(MISC_MNTENT_DIR)/mntent.c
  38047. -MISC_MNTENT_OBJ := $(MISC_MNTENT_OUT)/mntent.o
  38048. +MISC_MNTENT_SRC := $(patsubst %.c,$(MISC_MNTENT_DIR)/%.c,$(CSRC-y))
  38049. +MISC_MNTENT_OBJ := $(patsubst %.c,$(MISC_MNTENT_OUT)/%.o,$(CSRC-y))
  38050. libc-y += $(MISC_MNTENT_OBJ)
  38051. diff -Nur uClibc-0.9.33.2/libc/misc/pthread/tsd.c uClibc-git/libc/misc/pthread/tsd.c
  38052. --- uClibc-0.9.33.2/libc/misc/pthread/tsd.c 2012-05-15 09:20:09.000000000 +0200
  38053. +++ uClibc-git/libc/misc/pthread/tsd.c 2014-06-02 17:40:34.022712029 +0200
  38054. @@ -1,5 +1,5 @@
  38055. /* libpthread sets _dl_error_catch_tsd to point to this function.
  38056. - We define it here instead of in libpthread so t here instead of in libpthread so that it doesn't
  38057. + We define it here instead of in libpthread so that it doesn't
  38058. need to have a TLS segment of its own just for this one pointer. */
  38059. void **__libc_dl_error_tsd(void) __attribute__ ((const));
  38060. diff -Nur uClibc-0.9.33.2/libc/misc/regex/Makefile.in uClibc-git/libc/misc/regex/Makefile.in
  38061. --- uClibc-0.9.33.2/libc/misc/regex/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  38062. +++ uClibc-git/libc/misc/regex/Makefile.in 2014-06-02 17:40:34.022712029 +0200
  38063. @@ -7,17 +7,14 @@
  38064. subdirs += libc/misc/regex
  38065. -ifeq ($(UCLIBC_HAS_REGEX_OLD),y)
  38066. -CSRC := regex_old.c
  38067. -else
  38068. -CSRC := regex.c
  38069. -endif
  38070. +VARIANT := $(if $(UCLIBC_HAS_REGEX_OLD),_old)
  38071. +CSRC-y := regex$(VARIANT).c
  38072. MISC_REGEX_DIR := $(top_srcdir)libc/misc/regex
  38073. MISC_REGEX_OUT := $(top_builddir)libc/misc/regex
  38074. -MISC_REGEX_SRC := $(patsubst %.c,$(MISC_REGEX_DIR)/%.c,$(CSRC))
  38075. -MISC_REGEX_OBJ := $(patsubst %.c,$(MISC_REGEX_OUT)/%.o,$(CSRC))
  38076. +MISC_REGEX_SRC := $(patsubst %.c,$(MISC_REGEX_DIR)/%.c,$(CSRC-y))
  38077. +MISC_REGEX_OBJ := $(patsubst %.c,$(MISC_REGEX_OUT)/%.o,$(CSRC-y))
  38078. libc-$(UCLIBC_HAS_REGEX) += $(MISC_REGEX_OBJ)
  38079. diff -Nur uClibc-0.9.33.2/libc/misc/regex/regcomp.c uClibc-git/libc/misc/regex/regcomp.c
  38080. --- uClibc-0.9.33.2/libc/misc/regex/regcomp.c 2012-05-15 09:20:09.000000000 +0200
  38081. +++ uClibc-git/libc/misc/regex/regcomp.c 2014-06-02 17:40:34.022712029 +0200
  38082. @@ -14,9 +14,8 @@
  38083. Lesser General Public License for more details.
  38084. You should have received a copy of the GNU Lesser General Public
  38085. - License along with the GNU C Library; if not, write to the Free
  38086. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38087. - 02111-1307 USA. */
  38088. + License along with the GNU C Library; if not, see
  38089. + <http://www.gnu.org/licenses/>. */
  38090. static reg_errcode_t re_compile_internal (regex_t *preg, const char * pattern,
  38091. size_t length, reg_syntax_t syntax);
  38092. @@ -91,7 +90,7 @@
  38093. re_charset_t *mbcset,
  38094. int *equiv_class_alloc,
  38095. const unsigned char *name);
  38096. -static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
  38097. +static reg_errcode_t build_charclass (__RE_TRANSLATE_TYPE trans,
  38098. bitset_t sbcset,
  38099. re_charset_t *mbcset,
  38100. int *char_class_alloc,
  38101. @@ -100,13 +99,13 @@
  38102. #else /* not RE_ENABLE_I18N */
  38103. static reg_errcode_t build_equiv_class (bitset_t sbcset,
  38104. const unsigned char *name);
  38105. -static reg_errcode_t build_charclass (RE_TRANSLATE_TYPE trans,
  38106. +static reg_errcode_t build_charclass (__RE_TRANSLATE_TYPE trans,
  38107. bitset_t sbcset,
  38108. const unsigned char *class_name,
  38109. reg_syntax_t syntax);
  38110. #endif /* not RE_ENABLE_I18N */
  38111. static bin_tree_t *build_charclass_op (re_dfa_t *dfa,
  38112. - RE_TRANSLATE_TYPE trans,
  38113. + __RE_TRANSLATE_TYPE trans,
  38114. const unsigned char *class_name,
  38115. const unsigned char *extra,
  38116. int non_match, reg_errcode_t *err);
  38117. @@ -3414,11 +3413,11 @@
  38118. static reg_errcode_t
  38119. #ifdef RE_ENABLE_I18N
  38120. -build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
  38121. +build_charclass (__RE_TRANSLATE_TYPE trans, bitset_t sbcset,
  38122. re_charset_t *mbcset, int *char_class_alloc,
  38123. const unsigned char *class_name, reg_syntax_t syntax)
  38124. #else
  38125. -build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset,
  38126. +build_charclass (__RE_TRANSLATE_TYPE trans, bitset_t sbcset,
  38127. const unsigned char *class_name, reg_syntax_t syntax)
  38128. #endif
  38129. {
  38130. @@ -3496,7 +3495,7 @@
  38131. }
  38132. static bin_tree_t *
  38133. -build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans,
  38134. +build_charclass_op (re_dfa_t *dfa, __RE_TRANSLATE_TYPE trans,
  38135. const unsigned char *class_name,
  38136. const unsigned char *extra, int non_match,
  38137. reg_errcode_t *err)
  38138. diff -Nur uClibc-0.9.33.2/libc/misc/regex/regex.c uClibc-git/libc/misc/regex/regex.c
  38139. --- uClibc-0.9.33.2/libc/misc/regex/regex.c 2012-05-15 09:20:09.000000000 +0200
  38140. +++ uClibc-git/libc/misc/regex/regex.c 2014-06-02 17:40:34.022712029 +0200
  38141. @@ -14,9 +14,8 @@
  38142. Lesser General Public License for more details.
  38143. You should have received a copy of the GNU Lesser General Public
  38144. - License along with the GNU C Library; if not, write to the Free
  38145. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38146. - 02111-1307 USA. */
  38147. + License along with the GNU C Library; if not, see
  38148. + <http://www.gnu.org/licenses/>. */
  38149. #include <features.h>
  38150. @@ -30,7 +29,12 @@
  38151. # include <stdlib.h>
  38152. # ifdef __UCLIBC_HAS_WCHAR__
  38153. # define RE_ENABLE_I18N
  38154. +# define HAVE_WCHAR_H 1
  38155. +# define HAVE_WCRTOMB 1
  38156. +# define HAVE_MBRTOWC 1
  38157. +# define HAVE_WCSCOLL 1
  38158. # include <wchar.h>
  38159. +# define HAVE_WCTYPE_H 1
  38160. # include <wctype.h>
  38161. # define __iswctype iswctype
  38162. # define __wcrtomb wcrtomb
  38163. @@ -38,6 +42,9 @@
  38164. # define __wctype wctype
  38165. # endif
  38166. # include <ctype.h>
  38167. +# ifdef __UCLIBC_HAS_LOCALE__
  38168. +# define HAVE_LOCALE_H 1
  38169. +# endif
  38170. #endif
  38171. /* Make sure noone compiles this code with a C++ compiler. */
  38172. diff -Nur uClibc-0.9.33.2/libc/misc/regex/regexec.c uClibc-git/libc/misc/regex/regexec.c
  38173. --- uClibc-0.9.33.2/libc/misc/regex/regexec.c 2012-05-15 09:20:09.000000000 +0200
  38174. +++ uClibc-git/libc/misc/regex/regexec.c 2014-06-02 17:40:34.026712051 +0200
  38175. @@ -14,9 +14,8 @@
  38176. Lesser General Public License for more details.
  38177. You should have received a copy of the GNU Lesser General Public
  38178. - License along with the GNU C Library; if not, write to the Free
  38179. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38180. - 02111-1307 USA. */
  38181. + License along with the GNU C Library; if not, see
  38182. + <http://www.gnu.org/licenses/>. */
  38183. static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags,
  38184. int n) internal_function;
  38185. @@ -564,7 +563,7 @@
  38186. re_match_context_t mctx;
  38187. char *fastmap = (preg->fastmap != NULL && preg->fastmap_accurate
  38188. && range && !preg->can_be_null) ? preg->fastmap : NULL;
  38189. - RE_TRANSLATE_TYPE t = preg->translate;
  38190. + __RE_TRANSLATE_TYPE t = preg->translate;
  38191. memset (&mctx, '\0', sizeof (re_match_context_t));
  38192. mctx.dfa = dfa;
  38193. diff -Nur uClibc-0.9.33.2/libc/misc/regex/regex_internal.c uClibc-git/libc/misc/regex/regex_internal.c
  38194. --- uClibc-0.9.33.2/libc/misc/regex/regex_internal.c 2012-05-15 09:20:09.000000000 +0200
  38195. +++ uClibc-git/libc/misc/regex/regex_internal.c 2014-06-02 17:40:34.022712029 +0200
  38196. @@ -14,13 +14,12 @@
  38197. Lesser General Public License for more details.
  38198. You should have received a copy of the GNU Lesser General Public
  38199. - License along with the GNU C Library; if not, write to the Free
  38200. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38201. - 02111-1307 USA. */
  38202. + License along with the GNU C Library; if not, see
  38203. + <http://www.gnu.org/licenses/>. */
  38204. static void re_string_construct_common (const char *str, int len,
  38205. re_string_t *pstr,
  38206. - RE_TRANSLATE_TYPE trans, int icase,
  38207. + __RE_TRANSLATE_TYPE trans, int icase,
  38208. const re_dfa_t *dfa) internal_function;
  38209. static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa,
  38210. const re_node_set *nodes,
  38211. @@ -38,7 +37,7 @@
  38212. static reg_errcode_t
  38213. internal_function
  38214. re_string_allocate (re_string_t *pstr, const char *str, int len, int init_len,
  38215. - RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa)
  38216. + __RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa)
  38217. {
  38218. reg_errcode_t ret;
  38219. int init_buf_len;
  38220. @@ -66,7 +65,7 @@
  38221. static reg_errcode_t
  38222. internal_function
  38223. re_string_construct (re_string_t *pstr, const char *str, int len,
  38224. - RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa)
  38225. + __RE_TRANSLATE_TYPE trans, int icase, const re_dfa_t *dfa)
  38226. {
  38227. reg_errcode_t ret;
  38228. memset (pstr, '\0', sizeof (re_string_t));
  38229. @@ -162,7 +161,7 @@
  38230. static void
  38231. internal_function
  38232. re_string_construct_common (const char *str, int len, re_string_t *pstr,
  38233. - RE_TRANSLATE_TYPE trans, int icase,
  38234. + __RE_TRANSLATE_TYPE trans, int icase,
  38235. const re_dfa_t *dfa)
  38236. {
  38237. pstr->raw_mbs = (const unsigned char *) str;
  38238. diff -Nur uClibc-0.9.33.2/libc/misc/regex/regex_internal.h uClibc-git/libc/misc/regex/regex_internal.h
  38239. --- uClibc-0.9.33.2/libc/misc/regex/regex_internal.h 2012-05-15 09:20:09.000000000 +0200
  38240. +++ uClibc-git/libc/misc/regex/regex_internal.h 2014-06-02 17:40:34.022712029 +0200
  38241. @@ -14,16 +14,14 @@
  38242. Lesser General Public License for more details.
  38243. You should have received a copy of the GNU Lesser General Public
  38244. - License along with the GNU C Library; if not, write to the Free
  38245. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38246. - 02111-1307 USA. */
  38247. + License along with the GNU C Library; if not, see
  38248. + <http://www.gnu.org/licenses/>. */
  38249. #ifndef _REGEX_INTERNAL_H
  38250. #define _REGEX_INTERNAL_H 1
  38251. #include <assert.h>
  38252. #include <ctype.h>
  38253. -#include <stdio.h>
  38254. #include <stdlib.h>
  38255. #include <string.h>
  38256. @@ -315,7 +313,7 @@
  38257. the beginning of the input string. */
  38258. unsigned int tip_context;
  38259. /* The translation passed as a part of an argument of re_compile_pattern. */
  38260. - RE_TRANSLATE_TYPE trans;
  38261. + __RE_TRANSLATE_TYPE trans;
  38262. /* Copy of re_dfa_t's word_char. */
  38263. re_const_bitset_ptr_t word_char;
  38264. /* 1 if REG_ICASE. */
  38265. diff -Nur uClibc-0.9.33.2/libc/misc/regex/regex_old.c uClibc-git/libc/misc/regex/regex_old.c
  38266. --- uClibc-0.9.33.2/libc/misc/regex/regex_old.c 2012-05-15 09:20:09.000000000 +0200
  38267. +++ uClibc-git/libc/misc/regex/regex_old.c 2014-06-02 17:40:34.026712051 +0200
  38268. @@ -16,25 +16,25 @@
  38269. Lesser General Public License for more details.
  38270. You should have received a copy of the GNU Lesser General Public
  38271. - License along with the GNU C Library; if not, write to the Free
  38272. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38273. - 02111-1307 USA. */
  38274. + License along with the GNU C Library; if not, see
  38275. + <http://www.gnu.org/licenses/>. */
  38276. /* To exclude some unwanted junk.... */
  38277. #undef emacs
  38278. #include <features.h>
  38279. /* unistd.h must be included with _LIBC defined: we need smallint */
  38280. #include <unistd.h>
  38281. +#include <stdio.h>
  38282. #ifdef __UCLIBC__
  38283. # undef _LIBC
  38284. # define _REGEX_RE_COMP
  38285. # define STDC_HEADERS
  38286. -# define RE_TRANSLATE_TYPE char *
  38287. +# define __RE_TRANSLATE_TYPE char *
  38288. +# define RE_TRANSLATE_TYPE __RE_TRANSLATE_TYPE
  38289. #endif
  38290. #include <stdlib.h>
  38291. #include <stdint.h>
  38292. #include <string.h>
  38293. -#include <stdio.h>
  38294. /* AIX requires this to be the first thing in the file. */
  38295. #if defined _AIX && !defined REGEX_MALLOC
  38296. @@ -64,10 +64,9 @@
  38297. # include <wctype.h>
  38298. # endif
  38299. -# if defined _LIBC || defined __UCLIBC__
  38300. +# ifdef _LIBC
  38301. /* We have to keep the namespace clean. */
  38302. -# ifndef __UCLIBC__
  38303. # define btowc __btowc
  38304. /* We are also using some library internals. */
  38305. @@ -76,7 +75,6 @@
  38306. # include <langinfo.h>
  38307. # include <locale/coll-lookup.h>
  38308. # endif
  38309. -# endif
  38310. /* This is for other GNU distributions with internationalized messages. */
  38311. # if defined HAVE_LIBINTL_H || defined _LIBC
  38312. @@ -177,6 +175,7 @@
  38313. /* Get the interface, including the syntax bits. */
  38314. # include <regex.h>
  38315. +# define translate __REPB_PREFIX(translate)
  38316. /* isalpha etc. are used for the character classes. */
  38317. # include <ctype.h>
  38318. @@ -1896,7 +1895,7 @@
  38319. static reg_errcode_t wcs_compile_range (CHAR_T range_start,
  38320. const CHAR_T **p_ptr,
  38321. const CHAR_T *pend,
  38322. - char *translate,
  38323. + __RE_TRANSLATE_TYPE translate,
  38324. reg_syntax_t syntax,
  38325. UCHAR_T *b,
  38326. CHAR_T *char_set);
  38327. @@ -1905,7 +1904,7 @@
  38328. static reg_errcode_t byte_compile_range (unsigned int range_start,
  38329. const char **p_ptr,
  38330. const char *pend,
  38331. - char *translate,
  38332. + __RE_TRANSLATE_TYPE translate,
  38333. reg_syntax_t syntax,
  38334. unsigned char *b);
  38335. # endif /* WCHAR */
  38336. @@ -2338,7 +2337,7 @@
  38337. #endif /* WCHAR */
  38338. /* How to translate the characters in the pattern. */
  38339. - RE_TRANSLATE_TYPE translate = bufp->translate;
  38340. + __RE_TRANSLATE_TYPE translate = bufp->translate;
  38341. /* Address of the count-byte of the most recently inserted `exactn'
  38342. command. This makes it possible to tell if a new exact-match
  38343. @@ -4402,7 +4401,7 @@
  38344. wcs_compile_range (
  38345. CHAR_T range_start_char,
  38346. const CHAR_T **p_ptr, const CHAR_T *pend,
  38347. - RE_TRANSLATE_TYPE translate,
  38348. + __RE_TRANSLATE_TYPE translate,
  38349. reg_syntax_t syntax,
  38350. CHAR_T *b, CHAR_T *char_set)
  38351. {
  38352. @@ -4488,7 +4487,7 @@
  38353. byte_compile_range (
  38354. unsigned int range_start_char,
  38355. const char **p_ptr, const char *pend,
  38356. - RE_TRANSLATE_TYPE translate,
  38357. + __RE_TRANSLATE_TYPE translate,
  38358. reg_syntax_t syntax,
  38359. unsigned char *b)
  38360. {
  38361. @@ -5060,7 +5059,7 @@
  38362. {
  38363. int val;
  38364. register char *fastmap = bufp->fastmap;
  38365. - register RE_TRANSLATE_TYPE translate = bufp->translate;
  38366. + register __RE_TRANSLATE_TYPE translate = bufp->translate;
  38367. int total_size = size1 + size2;
  38368. int endpos = startpos + range;
  38369. #ifdef WCHAR
  38370. @@ -5477,7 +5476,7 @@
  38371. UCHAR_T *end,
  38372. PREFIX(register_info_type) *reg_info);
  38373. static int PREFIX(bcmp_translate) (const CHAR_T *s1, const CHAR_T *s2,
  38374. - int len, char *translate);
  38375. + int len, __RE_TRANSLATE_TYPE translate);
  38376. #else /* not INSIDE_RECURSION */
  38377. /* re_match_2 matches the compiled pattern in BUFP against the
  38378. @@ -5637,7 +5636,7 @@
  38379. UCHAR_T *just_past_start_mem = 0;
  38380. /* We use this to map every character in the string. */
  38381. - RE_TRANSLATE_TYPE translate = bufp->translate;
  38382. + __RE_TRANSLATE_TYPE translate = bufp->translate;
  38383. /* Failure point stack. Each place that can handle a failure further
  38384. down the line pushes a failure point on this stack. It consists of
  38385. @@ -7212,6 +7211,10 @@
  38386. POP_FAILURE_POINT (sdummy, pdummy,
  38387. dummy_low_reg, dummy_high_reg,
  38388. reg_dummy, reg_dummy, reg_info_dummy);
  38389. +
  38390. + /* Silence 'set but not used' warnings. */
  38391. + (void) pdummy;
  38392. + (void) sdummy;
  38393. }
  38394. /* Note fall through. */
  38395. @@ -7802,7 +7805,7 @@
  38396. PREFIX(bcmp_translate) (
  38397. const CHAR_T *s1, const CHAR_T *s2,
  38398. register int len,
  38399. - RE_TRANSLATE_TYPE translate)
  38400. + __RE_TRANSLATE_TYPE translate)
  38401. {
  38402. register const UCHAR_T *p1 = (const UCHAR_T *) s1;
  38403. register const UCHAR_T *p2 = (const UCHAR_T *) s2;
  38404. @@ -8002,8 +8005,8 @@
  38405. unsigned i;
  38406. preg->translate
  38407. - = (RE_TRANSLATE_TYPE) malloc (CHAR_SET_SIZE
  38408. - * sizeof (*(RE_TRANSLATE_TYPE)0));
  38409. + = (__RE_TRANSLATE_TYPE) malloc (CHAR_SET_SIZE
  38410. + * sizeof (*(__RE_TRANSLATE_TYPE)0));
  38411. if (preg->translate == NULL)
  38412. return (int) REG_ESPACE;
  38413. diff -Nur uClibc-0.9.33.2/libc/misc/search/hsearch.c uClibc-git/libc/misc/search/hsearch.c
  38414. --- uClibc-0.9.33.2/libc/misc/search/hsearch.c 2012-05-15 09:20:09.000000000 +0200
  38415. +++ uClibc-git/libc/misc/search/hsearch.c 2014-06-02 17:40:34.026712051 +0200
  38416. @@ -13,9 +13,8 @@
  38417. Lesser General Public License for more details.
  38418. You should have received a copy of the GNU Lesser General Public
  38419. - License along with the GNU C Library; if not, write to the Free
  38420. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38421. - 02111-1307 USA. */
  38422. + License along with the GNU C Library; if not, see
  38423. + <http://www.gnu.org/licenses/>. */
  38424. #include <search.h>
  38425. diff -Nur uClibc-0.9.33.2/libc/misc/search/_hsearch_r.c uClibc-git/libc/misc/search/_hsearch_r.c
  38426. --- uClibc-0.9.33.2/libc/misc/search/_hsearch_r.c 2012-05-15 09:20:09.000000000 +0200
  38427. +++ uClibc-git/libc/misc/search/_hsearch_r.c 2014-06-02 17:40:34.026712051 +0200
  38428. @@ -13,12 +13,11 @@
  38429. Lesser General Public License for more details.
  38430. You should have received a copy of the GNU Lesser General Public
  38431. - License along with the GNU C Library; if not, write to the Free
  38432. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38433. - 02111-1307 USA. */
  38434. + License along with the GNU C Library; if not, see
  38435. + <http://www.gnu.org/licenses/>. */
  38436. #include <errno.h>
  38437. -#include <malloc.h>
  38438. +#include <stdlib.h>
  38439. #include <string.h>
  38440. #include <search.h>
  38441. diff -Nur uClibc-0.9.33.2/libc/misc/search/insremque.c uClibc-git/libc/misc/search/insremque.c
  38442. --- uClibc-0.9.33.2/libc/misc/search/insremque.c 2012-05-15 09:20:09.000000000 +0200
  38443. +++ uClibc-git/libc/misc/search/insremque.c 2014-06-02 17:40:34.026712051 +0200
  38444. @@ -13,8 +13,7 @@
  38445. You should have received a copy of the GNU Library General Public
  38446. License along with the GNU C Library; see the file COPYING.LIB. If not,
  38447. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  38448. - Boston, MA 02111-1307, USA. */
  38449. + see <http://www.gnu.org/licenses/>. */
  38450. #include <features.h>
  38451. #include <stddef.h>
  38452. @@ -27,12 +26,20 @@
  38453. void
  38454. insque (void *elem, void *prev)
  38455. {
  38456. - struct qelem *next = ((struct qelem *) prev)->q_forw;
  38457. - ((struct qelem *) prev)->q_forw = (struct qelem *) elem;
  38458. - if (next != NULL)
  38459. - next->q_back = (struct qelem *) elem;
  38460. - ((struct qelem *) elem)->q_forw = next;
  38461. - ((struct qelem *) elem)->q_back = (struct qelem *) prev;
  38462. + if (prev == NULL)
  38463. + {
  38464. + ((struct qelem *) elem)->q_forw = NULL;
  38465. + ((struct qelem *) elem)->q_back = NULL;
  38466. + }
  38467. + else
  38468. + {
  38469. + struct qelem *next = ((struct qelem *) prev)->q_forw;
  38470. + ((struct qelem *) prev)->q_forw = (struct qelem *) elem;
  38471. + if (next != NULL)
  38472. + next->q_back = (struct qelem *) elem;
  38473. + ((struct qelem *) elem)->q_forw = next;
  38474. + ((struct qelem *) elem)->q_back = (struct qelem *) prev;
  38475. + }
  38476. }
  38477. #endif
  38478. diff -Nur uClibc-0.9.33.2/libc/misc/search/Makefile.in uClibc-git/libc/misc/search/Makefile.in
  38479. --- uClibc-0.9.33.2/libc/misc/search/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  38480. +++ uClibc-git/libc/misc/search/Makefile.in 2014-06-02 17:40:34.026712051 +0200
  38481. @@ -7,25 +7,25 @@
  38482. subdirs += libc/misc/search
  38483. -CSRC := hsearch.c
  38484. +CSRC-y := hsearch.c
  38485. # multi source _tsearch.c
  38486. -CSRC += tsearch.c tfind.c tdelete.c twalk.c tdestroy.c
  38487. +CSRC-y += tsearch.c tfind.c tdelete.c twalk.c tdestroy.c
  38488. # multi source _lsearch.c
  38489. -CSRC += lfind.c lsearch.c
  38490. +CSRC-y += lfind.c lsearch.c
  38491. # multi source insremque.c
  38492. -CSRC += insque.c remque.c
  38493. +CSRC-y += insque.c remque.c
  38494. # multi source _hsearch_r.c
  38495. -CSRC += hcreate_r.c hdestroy_r.c hsearch_r.c
  38496. +CSRC-y += hcreate_r.c hdestroy_r.c hsearch_r.c
  38497. MISC_SEARCH_DIR := $(top_srcdir)libc/misc/search
  38498. MISC_SEARCH_OUT := $(top_builddir)libc/misc/search
  38499. -MISC_SEARCH_SRC := $(patsubst %.c,$(MISC_SEARCH_DIR)/%.c,$(CSRC))
  38500. -MISC_SEARCH_OBJ := $(patsubst %.c,$(MISC_SEARCH_OUT)/%.o,$(CSRC))
  38501. +MISC_SEARCH_SRC := $(patsubst %.c,$(MISC_SEARCH_DIR)/%.c,$(CSRC-y))
  38502. +MISC_SEARCH_OBJ := $(patsubst %.c,$(MISC_SEARCH_OUT)/%.o,$(CSRC-y))
  38503. libc-y += $(MISC_SEARCH_OBJ)
  38504. diff -Nur uClibc-0.9.33.2/libc/misc/search/_tsearch.c uClibc-git/libc/misc/search/_tsearch.c
  38505. --- uClibc-0.9.33.2/libc/misc/search/_tsearch.c 2012-05-15 09:20:09.000000000 +0200
  38506. +++ uClibc-git/libc/misc/search/_tsearch.c 2014-06-02 17:40:34.026712051 +0200
  38507. @@ -13,8 +13,7 @@
  38508. You should have received a copy of the GNU Library General Public
  38509. License along with the GNU C Library; see the file COPYING.LIB. If
  38510. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  38511. -Cambridge, MA 02139, USA. */
  38512. +not, see <http://www.gnu.org/licenses/>. */
  38513. /*
  38514. * Tree search generalized from Knuth (6.2.2) Algorithm T just like
  38515. @@ -50,7 +49,7 @@
  38516. int (*compar)(); ordering function
  38517. */
  38518. -void *tsearch(__const void *key, void **vrootp, __compar_fn_t compar)
  38519. +void *tsearch(const void *key, void **vrootp, __compar_fn_t compar)
  38520. {
  38521. register node *q;
  38522. register node **rootp = (node **) vrootp;
  38523. @@ -80,7 +79,7 @@
  38524. #endif
  38525. #ifdef L_tfind
  38526. -void *tfind(__const void *key, void * __const *vrootp, __compar_fn_t compar)
  38527. +void *tfind(const void *key, void * const *vrootp, __compar_fn_t compar)
  38528. {
  38529. register node **rootp = (node **) vrootp;
  38530. @@ -107,7 +106,7 @@
  38531. register node **rootp; address of the root of tree
  38532. int (*compar)(); comparison function
  38533. */
  38534. -void *tdelete(__const void *key, void ** vrootp, __compar_fn_t compar)
  38535. +void *tdelete(const void *key, void ** vrootp, __compar_fn_t compar)
  38536. {
  38537. node *p;
  38538. register node *q;
  38539. @@ -157,7 +156,7 @@
  38540. register void (*action)(); Function to be called at each node
  38541. register int level;
  38542. */
  38543. -static void trecurse(__const void *vroot, __action_fn_t action, int level)
  38544. +static void trecurse(const void *vroot, __action_fn_t action, int level)
  38545. {
  38546. register node *root = (node *) vroot;
  38547. @@ -180,9 +179,9 @@
  38548. void (*action)(); Function to be called at each node
  38549. PTR
  38550. */
  38551. -void twalk(__const void *vroot, __action_fn_t action)
  38552. +void twalk(const void *vroot, __action_fn_t action)
  38553. {
  38554. - register __const node *root = (node *) vroot;
  38555. + register const node *root = (node *) vroot;
  38556. if (root != (node *)0 && action != (__action_fn_t) 0)
  38557. trecurse(root, action, 0);
  38558. diff -Nur uClibc-0.9.33.2/libc/misc/statfs/fstatfs64.c uClibc-git/libc/misc/statfs/fstatfs64.c
  38559. --- uClibc-0.9.33.2/libc/misc/statfs/fstatfs64.c 2012-05-15 09:20:09.000000000 +0200
  38560. +++ uClibc-git/libc/misc/statfs/fstatfs64.c 2014-06-02 17:40:34.026712051 +0200
  38561. @@ -13,9 +13,8 @@
  38562. Lesser General Public License for more details.
  38563. You should have received a copy of the GNU Lesser General Public
  38564. - License along with the GNU C Library; if not, write to the Free
  38565. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38566. - 02111-1307 USA. */
  38567. + License along with the GNU C Library; if not, see
  38568. + <http://www.gnu.org/licenses/>. */
  38569. #include <_lfs_64.h>
  38570. @@ -23,8 +22,10 @@
  38571. #include <string.h>
  38572. #include <sys/statfs.h>
  38573. #include <sys/statvfs.h>
  38574. +#include <sys/syscall.h>
  38575. #include <stddef.h>
  38576. +#if defined __NR_fstatfs
  38577. extern __typeof(fstatfs) __libc_fstatfs;
  38578. /* Return information about the filesystem on which FD resides. */
  38579. @@ -43,9 +44,24 @@
  38580. buf->f_files = buf32.f_files;
  38581. buf->f_ffree = buf32.f_ffree;
  38582. buf->f_fsid = buf32.f_fsid;
  38583. +# ifdef _STATFS_F_FRSIZE
  38584. + buf->f_frsize = buf32.f_frsize;
  38585. +# endif
  38586. buf->f_namelen = buf32.f_namelen;
  38587. memcpy (buf->f_spare, buf32.f_spare, sizeof (buf32.f_spare));
  38588. return 0;
  38589. }
  38590. +#else
  38591. +/*
  38592. + * Use the fstatfs64 system call if fstatfs is not defined
  38593. + * This is for backwards compatibility and it should be
  38594. + * made default in the future
  38595. + */
  38596. +int fstatfs64(int fd, struct statfs64 *buf)
  38597. +{
  38598. + /* Signature has 2 arguments but syscalls wants 3 */
  38599. + return INLINE_SYSCALL(fstatfs64, 3, fd, sizeof(*buf), buf);
  38600. +}
  38601. +#endif
  38602. libc_hidden_def(fstatfs64)
  38603. diff -Nur uClibc-0.9.33.2/libc/misc/statfs/fstatvfs64.c uClibc-git/libc/misc/statfs/fstatvfs64.c
  38604. --- uClibc-0.9.33.2/libc/misc/statfs/fstatvfs64.c 2012-05-15 09:20:09.000000000 +0200
  38605. +++ uClibc-git/libc/misc/statfs/fstatvfs64.c 2014-06-02 17:40:34.026712051 +0200
  38606. @@ -13,9 +13,8 @@
  38607. Lesser General Public License for more details.
  38608. You should have received a copy of the GNU Lesser General Public
  38609. - License along with the GNU C Library; if not, write to the Free
  38610. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38611. - 02111-1307 USA. */
  38612. + License along with the GNU C Library; if not, see
  38613. + <http://www.gnu.org/licenses/>. */
  38614. #include <_lfs_64.h>
  38615. diff -Nur uClibc-0.9.33.2/libc/misc/statfs/fstatvfs.c uClibc-git/libc/misc/statfs/fstatvfs.c
  38616. --- uClibc-0.9.33.2/libc/misc/statfs/fstatvfs.c 2012-05-15 09:20:09.000000000 +0200
  38617. +++ uClibc-git/libc/misc/statfs/fstatvfs.c 2014-06-02 17:40:34.026712051 +0200
  38618. @@ -13,9 +13,8 @@
  38619. Lesser General Public License for more details.
  38620. You should have received a copy of the GNU Lesser General Public
  38621. - License along with the GNU C Library; if not, write to the Free
  38622. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38623. - 02111-1307 USA. */
  38624. + License along with the GNU C Library; if not, see
  38625. + <http://www.gnu.org/licenses/>. */
  38626. #include <features.h>
  38627. #include <errno.h>
  38628. diff -Nur uClibc-0.9.33.2/libc/misc/statfs/internal_statvfs.c uClibc-git/libc/misc/statfs/internal_statvfs.c
  38629. --- uClibc-0.9.33.2/libc/misc/statfs/internal_statvfs.c 2012-05-15 09:20:09.000000000 +0200
  38630. +++ uClibc-git/libc/misc/statfs/internal_statvfs.c 2014-06-02 17:40:34.026712051 +0200
  38631. @@ -13,14 +13,20 @@
  38632. Lesser General Public License for more details.
  38633. You should have received a copy of the GNU Lesser General Public
  38634. - License along with the GNU C Library; if not, write to the Free
  38635. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38636. - 02111-1307 USA. */
  38637. + License along with the GNU C Library; if not, see
  38638. + <http://www.gnu.org/licenses/>. */
  38639. +
  38640. +/* The kernel hints us if the f_flags is valid */
  38641. +#define ST_VALID 0x0020
  38642. /* Now fill in the fields we have information for. */
  38643. buf->f_bsize = fsbuf.f_bsize;
  38644. - /* Linux does not support f_frsize, so set it to the full block size. */
  38645. +#ifdef _STATFS_F_FRSIZE
  38646. + buf->f_frsize = fsbuf.f_frsize;
  38647. +#else
  38648. + /* No support for f_frsize so set it to the full block size. */
  38649. buf->f_frsize = fsbuf.f_bsize;
  38650. +#endif
  38651. buf->f_blocks = fsbuf.f_blocks;
  38652. buf->f_bfree = fsbuf.f_bfree;
  38653. buf->f_bavail = fsbuf.f_bavail;
  38654. @@ -28,7 +34,7 @@
  38655. buf->f_ffree = fsbuf.f_ffree;
  38656. if (sizeof (buf->f_fsid) == sizeof (fsbuf.f_fsid))
  38657. buf->f_fsid = (fsbuf.f_fsid.__val[0]
  38658. - | ((unsigned long int) fsbuf.f_fsid.__val[1]
  38659. + | ((unsigned long long int) fsbuf.f_fsid.__val[1]
  38660. << (8 * (sizeof (buf->f_fsid)
  38661. - sizeof (fsbuf.f_fsid.__val[0])))));
  38662. else
  38663. @@ -39,10 +45,7 @@
  38664. buf->__f_unused = 0;
  38665. #endif
  38666. buf->f_namemax = fsbuf.f_namelen;
  38667. - memset (buf->__f_spare, '\0', 6 * sizeof (int));
  38668. -
  38669. - /* What remains to do is to fill the fields f_favail and f_flag. */
  38670. -
  38671. + memset (buf->__f_spare, '\0', sizeof(buf->__f_spare));
  38672. /* XXX I have no idea how to compute f_favail. Any idea??? */
  38673. buf->f_favail = buf->f_ffree;
  38674. @@ -51,61 +54,63 @@
  38675. file. The way we can test for matching filesystem is using the
  38676. device number. */
  38677. buf->f_flag = 0;
  38678. - if (STAT (&st) >= 0)
  38679. - {
  38680. - int save_errno = errno;
  38681. - struct mntent mntbuf;
  38682. - FILE *mtab;
  38683. -
  38684. - mtab = setmntent ("/proc/mounts", "r");
  38685. - if (mtab == NULL)
  38686. - mtab = setmntent (_PATH_MOUNTED, "r");
  38687. -
  38688. - if (mtab != NULL)
  38689. - {
  38690. - char tmpbuf[1024];
  38691. -
  38692. - while (getmntent_r (mtab, &mntbuf, tmpbuf, sizeof (tmpbuf)))
  38693. - {
  38694. - struct stat fsst;
  38695. -
  38696. - /* Find out about the device the current entry is for. */
  38697. - if (stat (mntbuf.mnt_dir, &fsst) >= 0
  38698. - && st.st_dev == fsst.st_dev)
  38699. - {
  38700. - /* Bingo, we found the entry for the device FD is on.
  38701. - Now interpret the option string. */
  38702. - char *cp = mntbuf.mnt_opts;
  38703. - char *opt;
  38704. -
  38705. - while ((opt = strsep (&cp, ",")) != NULL)
  38706. - if (strcmp (opt, "ro") == 0)
  38707. - buf->f_flag |= ST_RDONLY;
  38708. - else if (strcmp (opt, "nosuid") == 0)
  38709. - buf->f_flag |= ST_NOSUID;
  38710. + if (STAT (&st) >= 0
  38711. +#ifdef _STATFS_F_FLAGS
  38712. + && (fsbuf.f_flags & ST_VALID) == 0
  38713. +#endif
  38714. + ) {
  38715. + int save_errno = errno;
  38716. + struct mntent mntbuf;
  38717. + FILE *mtab;
  38718. +
  38719. + mtab = setmntent ("/proc/mounts", "r");
  38720. + if (mtab == NULL)
  38721. + mtab = setmntent (_PATH_MOUNTED, "r");
  38722. + if (mtab != NULL) {
  38723. + char tmpbuf[1024];
  38724. +
  38725. + while (getmntent_r (mtab, &mntbuf, tmpbuf, sizeof (tmpbuf))) {
  38726. + struct stat fsst;
  38727. +
  38728. + /* Find out about the device the current entry is for. */
  38729. + if (stat (mntbuf.mnt_dir, &fsst) >= 0
  38730. + && st.st_dev == fsst.st_dev) {
  38731. + /* Bingo, we found the entry for the device FD is on.
  38732. + Now interpret the option string. */
  38733. + char *cp = mntbuf.mnt_opts;
  38734. + char *opt;
  38735. +
  38736. + while ((opt = strsep (&cp, ",")) != NULL)
  38737. + if (strcmp (opt, "ro") == 0)
  38738. + buf->f_flag |= ST_RDONLY;
  38739. + else if (strcmp (opt, "nosuid") == 0)
  38740. + buf->f_flag |= ST_NOSUID;
  38741. #ifdef __USE_GNU
  38742. - else if (strcmp (opt, "noexec") == 0)
  38743. - buf->f_flag |= ST_NOEXEC;
  38744. - else if (strcmp (opt, "nodev") == 0)
  38745. - buf->f_flag |= ST_NODEV;
  38746. - else if (strcmp (opt, "sync") == 0)
  38747. - buf->f_flag |= ST_SYNCHRONOUS;
  38748. - else if (strcmp (opt, "mand") == 0)
  38749. - buf->f_flag |= ST_MANDLOCK;
  38750. - else if (strcmp (opt, "noatime") == 0)
  38751. - buf->f_flag |= ST_NOATIME;
  38752. - else if (strcmp (opt, "nodiratime") == 0)
  38753. - buf->f_flag |= ST_NODIRATIME;
  38754. + else if (strcmp (opt, "noexec") == 0)
  38755. + buf->f_flag |= ST_NOEXEC;
  38756. + else if (strcmp (opt, "nodev") == 0)
  38757. + buf->f_flag |= ST_NODEV;
  38758. + else if (strcmp (opt, "sync") == 0)
  38759. + buf->f_flag |= ST_SYNCHRONOUS;
  38760. + else if (strcmp (opt, "mand") == 0)
  38761. + buf->f_flag |= ST_MANDLOCK;
  38762. + else if (strcmp (opt, "noatime") == 0)
  38763. + buf->f_flag |= ST_NOATIME;
  38764. + else if (strcmp (opt, "nodiratime") == 0)
  38765. + buf->f_flag |= ST_NODIRATIME;
  38766. + else if (strcmp (opt, "relatime") == 0)
  38767. + buf->f_flag |= ST_RELATIME;
  38768. #endif
  38769. -
  38770. - /* We can stop looking for more entries. */
  38771. - break;
  38772. + /* We can stop looking for more entries. */
  38773. + break;
  38774. + }
  38775. }
  38776. - }
  38777. -
  38778. - /* Close the file. */
  38779. - endmntent (mtab);
  38780. - }
  38781. -
  38782. - __set_errno (save_errno);
  38783. - }
  38784. + /* Close the file. */
  38785. + endmntent (mtab);
  38786. + }
  38787. + __set_errno (save_errno);
  38788. + }
  38789. +#ifdef _STATFS_F_FLAGS
  38790. + else
  38791. + buf->f_flag = fsbuf.f_flags ^ ST_VALID;
  38792. +#endif
  38793. diff -Nur uClibc-0.9.33.2/libc/misc/statfs/Makefile.in uClibc-git/libc/misc/statfs/Makefile.in
  38794. --- uClibc-0.9.33.2/libc/misc/statfs/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  38795. +++ uClibc-git/libc/misc/statfs/Makefile.in 2014-06-02 17:40:34.026712051 +0200
  38796. @@ -7,19 +7,16 @@
  38797. subdirs += libc/misc/statfs
  38798. -CSRC := statvfs.c fstatvfs.c
  38799. -ifeq ($(UCLIBC_HAS_LFS),y)
  38800. -ifeq ($(UCLIBC_LINUX_SPECIFIC),y)
  38801. -CSRC += fstatfs64.c statfs64.c
  38802. -endif
  38803. -CSRC += statvfs64.c fstatvfs64.c
  38804. -endif
  38805. +CSRC-y := statvfs.c fstatvfs.c
  38806. +CSRC-$(UCLIBC_HAS_LFS) += $(patsubst %.c,%64.c,$(CSRC-y))
  38807. +CSRC-$(if $(findstring yy,$(UCLIBC_HAS_LFS)$(UCLIBC_LINUX_SPECIFIC)),y) += \
  38808. + fstatfs64.c statfs64.c
  38809. MISC_STATFS_DIR := $(top_srcdir)libc/misc/statfs
  38810. MISC_STATFS_OUT := $(top_builddir)libc/misc/statfs
  38811. -MISC_STATFS_SRC := $(patsubst %.c,$(MISC_STATFS_DIR)/%.c,$(CSRC))
  38812. -MISC_STATFS_OBJ := $(patsubst %.c,$(MISC_STATFS_OUT)/%.o,$(CSRC))
  38813. +MISC_STATFS_SRC := $(patsubst %.c,$(MISC_STATFS_DIR)/%.c,$(CSRC-y))
  38814. +MISC_STATFS_OBJ := $(patsubst %.c,$(MISC_STATFS_OUT)/%.o,$(CSRC-y))
  38815. libc-y += $(MISC_STATFS_OBJ)
  38816. diff -Nur uClibc-0.9.33.2/libc/misc/statfs/statfs64.c uClibc-git/libc/misc/statfs/statfs64.c
  38817. --- uClibc-0.9.33.2/libc/misc/statfs/statfs64.c 2012-05-15 09:20:09.000000000 +0200
  38818. +++ uClibc-git/libc/misc/statfs/statfs64.c 2014-06-02 17:40:34.026712051 +0200
  38819. @@ -13,18 +13,19 @@
  38820. Lesser General Public License for more details.
  38821. You should have received a copy of the GNU Lesser General Public
  38822. - License along with the GNU C Library; if not, write to the Free
  38823. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38824. - 02111-1307 USA. */
  38825. + License along with the GNU C Library; if not, see
  38826. + <http://www.gnu.org/licenses/>. */
  38827. #include <_lfs_64.h>
  38828. #include <string.h>
  38829. #include <stddef.h>
  38830. #include <sys/statfs.h>
  38831. +#include <sys/syscall.h>
  38832. extern __typeof(statfs) __libc_statfs;
  38833. +#if defined __NR_statfs
  38834. /* Return information about the filesystem on which FILE resides. */
  38835. int statfs64 (const char *file, struct statfs64 *buf)
  38836. {
  38837. @@ -42,8 +43,21 @@
  38838. buf->f_ffree = buf32.f_ffree;
  38839. buf->f_fsid = buf32.f_fsid;
  38840. buf->f_namelen = buf32.f_namelen;
  38841. +#ifdef _STATFS_F_FRSIZE
  38842. + buf->f_frsize = buf32.f_frsize;
  38843. +#endif
  38844. +#ifdef _STATFS_F_FLAGS
  38845. + buf->f_flags = buf32.f_flags;
  38846. +#endif
  38847. memcpy (buf->f_spare, buf32.f_spare, sizeof (buf32.f_spare));
  38848. return 0;
  38849. }
  38850. +#else
  38851. +int statfs64 (const char *file, struct statfs64 *buf)
  38852. +{
  38853. + return INLINE_SYSCALL(statfs64, 3, file, sizeof(*buf), buf);
  38854. +}
  38855. +#endif
  38856. +
  38857. libc_hidden_def(statfs64)
  38858. diff -Nur uClibc-0.9.33.2/libc/misc/statfs/statvfs64.c uClibc-git/libc/misc/statfs/statvfs64.c
  38859. --- uClibc-0.9.33.2/libc/misc/statfs/statvfs64.c 2012-05-15 09:20:09.000000000 +0200
  38860. +++ uClibc-git/libc/misc/statfs/statvfs64.c 2014-06-02 17:40:34.030712073 +0200
  38861. @@ -13,9 +13,8 @@
  38862. Lesser General Public License for more details.
  38863. You should have received a copy of the GNU Lesser General Public
  38864. - License along with the GNU C Library; if not, write to the Free
  38865. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38866. - 02111-1307 USA. */
  38867. + License along with the GNU C Library; if not, see
  38868. + <http://www.gnu.org/licenses/>. */
  38869. #include <_lfs_64.h>
  38870. diff -Nur uClibc-0.9.33.2/libc/misc/statfs/statvfs.c uClibc-git/libc/misc/statfs/statvfs.c
  38871. --- uClibc-0.9.33.2/libc/misc/statfs/statvfs.c 2012-05-15 09:20:09.000000000 +0200
  38872. +++ uClibc-git/libc/misc/statfs/statvfs.c 2014-06-02 17:40:34.026712051 +0200
  38873. @@ -13,9 +13,8 @@
  38874. Lesser General Public License for more details.
  38875. You should have received a copy of the GNU Lesser General Public
  38876. - License along with the GNU C Library; if not, write to the Free
  38877. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  38878. - 02111-1307 USA. */
  38879. + License along with the GNU C Library; if not, see
  38880. + <http://www.gnu.org/licenses/>. */
  38881. #include <features.h>
  38882. #include <errno.h>
  38883. diff -Nur uClibc-0.9.33.2/libc/misc/syslog/Makefile.in uClibc-git/libc/misc/syslog/Makefile.in
  38884. --- uClibc-0.9.33.2/libc/misc/syslog/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  38885. +++ uClibc-git/libc/misc/syslog/Makefile.in 2014-06-02 17:40:34.030712073 +0200
  38886. @@ -7,13 +7,13 @@
  38887. subdirs += libc/misc/syslog
  38888. -CSRC := syslog.c
  38889. +CSRC-y := syslog.c
  38890. MISC_SYSLOG_DIR := $(top_srcdir)libc/misc/syslog
  38891. MISC_SYSLOG_OUT := $(top_builddir)libc/misc/syslog
  38892. -MISC_SYSLOG_SRC := $(patsubst %.c,$(MISC_SYSLOG_DIR)/%.c,$(CSRC))
  38893. -MISC_SYSLOG_OBJ := $(patsubst %.c,$(MISC_SYSLOG_OUT)/%.o,$(CSRC))
  38894. +MISC_SYSLOG_SRC := $(patsubst %.c,$(MISC_SYSLOG_DIR)/%.c,$(CSRC-y))
  38895. +MISC_SYSLOG_OBJ := $(patsubst %.c,$(MISC_SYSLOG_OUT)/%.o,$(CSRC-y))
  38896. ifeq ($(UCLIBC_HAS_SYSLOG),y)
  38897. libc-y += $(MISC_SYSLOG_OBJ)
  38898. diff -Nur uClibc-0.9.33.2/libc/misc/syslog/syslog.c uClibc-git/libc/misc/syslog/syslog.c
  38899. --- uClibc-0.9.33.2/libc/misc/syslog/syslog.c 2012-05-15 09:20:09.000000000 +0200
  38900. +++ uClibc-git/libc/misc/syslog/syslog.c 2014-06-02 17:40:34.030712073 +0200
  38901. @@ -58,8 +58,6 @@
  38902. * - Major code cleanup.
  38903. */
  38904. -#define __FORCE_GLIBC
  38905. -#include <features.h>
  38906. #include <sys/types.h>
  38907. #include <sys/socket.h>
  38908. #include <sys/file.h>
  38909. @@ -177,14 +175,17 @@
  38910. openlog_intern(ident, logstat, logfac);
  38911. __UCLIBC_MUTEX_UNLOCK(mylock);
  38912. }
  38913. -libc_hidden_def(openlog)
  38914. /*
  38915. * syslog, vsyslog --
  38916. * print message on log file; output is intended for syslogd(8).
  38917. */
  38918. +static
  38919. +#ifndef __USE_BSD
  38920. +__always_inline
  38921. +#endif
  38922. void
  38923. -vsyslog(int pri, const char *fmt, va_list ap)
  38924. +__vsyslog(int pri, const char *fmt, va_list ap)
  38925. {
  38926. register char *p;
  38927. char *last_chr, *head_end, *end, *stdp;
  38928. @@ -303,7 +304,9 @@
  38929. getout:
  38930. __UCLIBC_MUTEX_UNLOCK(mylock);
  38931. }
  38932. -libc_hidden_def(vsyslog)
  38933. +#ifdef __USE_BSD
  38934. +strong_alias(__vsyslog,vsyslog)
  38935. +#endif
  38936. void
  38937. syslog(int pri, const char *fmt, ...)
  38938. @@ -311,7 +314,7 @@
  38939. va_list ap;
  38940. va_start(ap, fmt);
  38941. - vsyslog(pri, fmt, ap);
  38942. + __vsyslog(pri, fmt, ap);
  38943. va_end(ap);
  38944. }
  38945. libc_hidden_def(syslog)
  38946. @@ -326,7 +329,6 @@
  38947. closelog_intern(0); /* 0: reset LogXXX globals to default */
  38948. __UCLIBC_MUTEX_UNLOCK(mylock);
  38949. }
  38950. -libc_hidden_def(closelog)
  38951. /* setlogmask -- set the log mask level */
  38952. int setlogmask(int pmask)
  38953. @@ -335,9 +337,9 @@
  38954. omask = LogMask;
  38955. if (pmask != 0) {
  38956. - __UCLIBC_MUTEX_LOCK(mylock);
  38957. +/* __UCLIBC_MUTEX_LOCK(mylock);*/
  38958. LogMask = pmask;
  38959. - __UCLIBC_MUTEX_UNLOCK(mylock);
  38960. +/* __UCLIBC_MUTEX_UNLOCK(mylock);*/
  38961. }
  38962. return omask;
  38963. }
  38964. diff -Nur uClibc-0.9.33.2/libc/misc/sysvipc/ftok.c uClibc-git/libc/misc/sysvipc/ftok.c
  38965. --- uClibc-0.9.33.2/libc/misc/sysvipc/ftok.c 2012-05-15 09:20:09.000000000 +0200
  38966. +++ uClibc-git/libc/misc/sysvipc/ftok.c 2014-06-02 17:40:34.030712073 +0200
  38967. @@ -14,8 +14,7 @@
  38968. You should have received a copy of the GNU Library General Public
  38969. License along with the GNU C Library; see the file COPYING.LIB. If not,
  38970. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  38971. - Boston, MA 02111-1307, USA. */
  38972. + see <http://www.gnu.org/licenses/>. */
  38973. #include <sys/ipc.h>
  38974. #include <sys/stat.h>
  38975. diff -Nur uClibc-0.9.33.2/libc/misc/sysvipc/ipc.h uClibc-git/libc/misc/sysvipc/ipc.h
  38976. --- uClibc-0.9.33.2/libc/misc/sysvipc/ipc.h 2012-05-15 09:20:09.000000000 +0200
  38977. +++ uClibc-git/libc/misc/sysvipc/ipc.h 2014-06-02 17:40:34.030712073 +0200
  38978. @@ -3,10 +3,14 @@
  38979. #include <syscall.h>
  38980. #include <bits/wordsize.h>
  38981. -#if __WORDSIZE == 32 || defined __alpha__ || defined __mips__
  38982. -# define __IPC_64 0x100
  38983. +#ifndef __ARCH_HAS_DEPRECATED_SYSCALLS__
  38984. +# define __IPC_64 0x0
  38985. #else
  38986. -# define __IPC_64 0x0
  38987. +# if __WORDSIZE == 32 || defined __alpha__ || defined __mips__
  38988. +# define __IPC_64 0x100
  38989. +# else
  38990. +# define __IPC_64 0x0
  38991. +# endif
  38992. #endif
  38993. #ifdef __NR_ipc
  38994. diff -Nur uClibc-0.9.33.2/libc/misc/sysvipc/Makefile.in uClibc-git/libc/misc/sysvipc/Makefile.in
  38995. --- uClibc-0.9.33.2/libc/misc/sysvipc/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  38996. +++ uClibc-git/libc/misc/sysvipc/Makefile.in 2014-06-02 17:40:34.030712073 +0200
  38997. @@ -7,22 +7,22 @@
  38998. subdirs += libc/misc/sysvipc
  38999. -CSRC := ftok.c __syscall_ipc.c
  39000. +CSRC-y := ftok.c __syscall_ipc.c
  39001. # multi source sem.c
  39002. -CSRC += semget.c semctl.c semop.c semtimedop.c
  39003. +CSRC-y += semget.c semctl.c semop.c semtimedop.c
  39004. # multi source shm.c
  39005. -CSRC += shmat.c shmctl.c shmdt.c shmget.c
  39006. +CSRC-y += shmat.c shmctl.c shmdt.c shmget.c
  39007. # multi source msgq.c
  39008. -CSRC += msgctl.c msgget.c msgrcv.c msgsnd.c
  39009. +CSRC-y += msgctl.c msgget.c msgrcv.c msgsnd.c
  39010. MISC_SYSVIPC_DIR := $(top_srcdir)libc/misc/sysvipc
  39011. MISC_SYSVIPC_OUT := $(top_builddir)libc/misc/sysvipc
  39012. -MISC_SYSVIPC_SRC := $(patsubst %.c,$(MISC_SYSVIPC_DIR)/%.c,$(CSRC))
  39013. -MISC_SYSVIPC_OBJ := $(patsubst %.c,$(MISC_SYSVIPC_OUT)/%.o,$(CSRC))
  39014. +MISC_SYSVIPC_SRC := $(patsubst %.c,$(MISC_SYSVIPC_DIR)/%.c,$(CSRC-y))
  39015. +MISC_SYSVIPC_OBJ := $(patsubst %.c,$(MISC_SYSVIPC_OUT)/%.o,$(CSRC-y))
  39016. libc-y += $(MISC_SYSVIPC_OBJ)
  39017. diff -Nur uClibc-0.9.33.2/libc/misc/sysvipc/sem.c uClibc-git/libc/misc/sysvipc/sem.c
  39018. --- uClibc-0.9.33.2/libc/misc/sysvipc/sem.c 2012-05-15 09:20:09.000000000 +0200
  39019. +++ uClibc-git/libc/misc/sysvipc/sem.c 2014-06-02 17:40:34.046712162 +0200
  39020. @@ -14,8 +14,7 @@
  39021. You should have received a copy of the GNU Library General Public
  39022. License along with the GNU C Library; see the file COPYING.LIB. If not,
  39023. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  39024. - Boston, MA 02111-1307, USA. */
  39025. + see <http://www.gnu.org/licenses/>. */
  39026. #include <errno.h>
  39027. #include <sys/sem.h>
  39028. diff -Nur uClibc-0.9.33.2/libc/misc/sysvipc/shm.c uClibc-git/libc/misc/sysvipc/shm.c
  39029. --- uClibc-0.9.33.2/libc/misc/sysvipc/shm.c 2012-05-15 09:20:09.000000000 +0200
  39030. +++ uClibc-git/libc/misc/sysvipc/shm.c 2014-06-02 17:40:34.046712162 +0200
  39031. @@ -14,8 +14,7 @@
  39032. You should have received a copy of the GNU Library General Public
  39033. License along with the GNU C Library; see the file COPYING.LIB. If not,
  39034. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  39035. - Boston, MA 02111-1307, USA. */
  39036. + see <http://www.gnu.org/licenses/>. */
  39037. /* SHMLBA uses it on most of the archs (not mips) */
  39038. #define __getpagesize getpagesize
  39039. @@ -54,13 +53,13 @@
  39040. #ifdef L_shmctl
  39041. /* Provide operations to control over shared memory segments. */
  39042. #ifdef __NR_shmctl
  39043. -#define __NR___libc_shmctl __NR_shmctl
  39044. -static __inline__ _syscall3(int, __libc_shmctl, int, shmid, int, cmd, struct shmid_ds *, buf)
  39045. +#define __NR___syscall_shmctl __NR_shmctl
  39046. +static __always_inline _syscall3(int, __syscall_shmctl, int, shmid, int, cmd, struct shmid_ds *, buf)
  39047. #endif
  39048. int shmctl(int shmid, int cmd, struct shmid_ds *buf)
  39049. {
  39050. #ifdef __NR_shmctl
  39051. - return __libc_shmctl(shmid, cmd | __IPC_64, buf);
  39052. + return __syscall_shmctl(shmid, cmd | __IPC_64, buf);
  39053. #else
  39054. return __syscall_ipc(IPCOP_shmctl, shmid, cmd | __IPC_64, 0, buf, 0);
  39055. #endif
  39056. diff -Nur uClibc-0.9.33.2/libc/misc/time/ftime.c uClibc-git/libc/misc/time/ftime.c
  39057. --- uClibc-0.9.33.2/libc/misc/time/ftime.c 2012-05-15 09:20:09.000000000 +0200
  39058. +++ uClibc-git/libc/misc/time/ftime.c 2014-06-02 17:40:34.062712251 +0200
  39059. @@ -12,9 +12,8 @@
  39060. Lesser General Public License for more details.
  39061. You should have received a copy of the GNU Lesser General Public
  39062. - License along with the GNU C Library; if not, write to the Free
  39063. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39064. - 02111-1307 USA. */
  39065. + License along with the GNU C Library; if not, see
  39066. + <http://www.gnu.org/licenses/>. */
  39067. #include <sys/timeb.h>
  39068. #include <sys/time.h>
  39069. diff -Nur uClibc-0.9.33.2/libc/misc/time/Makefile.in uClibc-git/libc/misc/time/Makefile.in
  39070. --- uClibc-0.9.33.2/libc/misc/time/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  39071. +++ uClibc-git/libc/misc/time/Makefile.in 2014-06-02 17:40:34.046712162 +0200
  39072. @@ -7,33 +7,24 @@
  39073. subdirs += libc/misc/time
  39074. -CSRC := adjtime.c
  39075. -ifeq ($(UCLIBC_SUSV3_LEGACY),y)
  39076. -CSRC += ftime.c
  39077. -endif
  39078. +CSRC-y := adjtime.c
  39079. +CSRC-$(UCLIBC_SUSV3_LEGACY) += ftime.c
  39080. # multi source time.c
  39081. -CSRC += asctime.c asctime_r.c clock.c ctime.c ctime_r.c gmtime.c gmtime_r.c \
  39082. +CSRC-y += asctime.c asctime_r.c clock.c ctime.c ctime_r.c gmtime.c gmtime_r.c \
  39083. localtime.c localtime_r.c mktime.c strftime.c strptime.c tzset.c \
  39084. _time_t2tm.c __time_tm.c _time_mktime.c dysize.c timegm.c \
  39085. _time_mktime_tzi.c _time_localtime_tzi.c
  39086. -ifeq ($(UCLIBC_HAS_FLOATS),y)
  39087. -CSRC += difftime.c
  39088. -endif
  39089. -ifeq ($(UCLIBC_HAS_XLOCALE),y)
  39090. -CSRC += strftime_l.c strptime_l.c
  39091. -endif
  39092. -ifeq ($(UCLIBC_HAS_WCHAR),y)
  39093. -CSRC += wcsftime.c
  39094. -ifeq ($(UCLIBC_HAS_XLOCALE),y)
  39095. -CSRC += wcsftime_l.c
  39096. -endif
  39097. -endif
  39098. +CSRC-$(UCLIBC_HAS_FLOATS) += difftime.c
  39099. +CSRC-$(UCLIBC_HAS_XLOCALE) += strftime_l.c strptime_l.c
  39100. +CSRC-$(UCLIBC_HAS_WCHAR) += wcsftime.c
  39101. +CSRC-$(if $(findstring yy,$(UCLIBC_HAS_WCHAR)$(UCLIBC_HAS_XLOCALE)),y) += \
  39102. + wcsftime_l.c
  39103. MISC_TIME_DIR := $(top_srcdir)libc/misc/time
  39104. MISC_TIME_OUT := $(top_builddir)libc/misc/time
  39105. -MISC_TIME_SRC := $(patsubst %.c,$(MISC_TIME_DIR)/%.c,$(CSRC))
  39106. -MISC_TIME_OBJ := $(patsubst %.c,$(MISC_TIME_OUT)/%.o,$(CSRC))
  39107. +MISC_TIME_SRC := $(patsubst %.c,$(MISC_TIME_DIR)/%.c,$(CSRC-y))
  39108. +MISC_TIME_OBJ := $(patsubst %.c,$(MISC_TIME_OUT)/%.o,$(CSRC-y))
  39109. libc-y += $(MISC_TIME_OBJ)
  39110. diff -Nur uClibc-0.9.33.2/libc/misc/time/time.c uClibc-git/libc/misc/time/time.c
  39111. --- uClibc-0.9.33.2/libc/misc/time/time.c 2012-05-15 09:20:09.000000000 +0200
  39112. +++ uClibc-git/libc/misc/time/time.c 2014-06-02 17:40:34.062712251 +0200
  39113. @@ -149,10 +149,6 @@
  39114. #ifdef __UCLIBC_HAS_WCHAR__
  39115. #include <wchar.h>
  39116. #endif
  39117. -#ifdef __UCLIBC_HAS_XLOCALE__
  39118. -#include <xlocale.h>
  39119. -#endif
  39120. -
  39121. #ifndef __isleap
  39122. #define __isleap(y) ( !((y) % 4) && ( ((y) % 100) || !((y) % 400) ) )
  39123. @@ -212,7 +208,7 @@
  39124. char tzname[TZNAME_MAX+1];
  39125. } rule_struct;
  39126. -__UCLIBC_MUTEX_EXTERN(_time_tzlock);
  39127. +__UCLIBC_MUTEX_EXTERN(_time_tzlock) attribute_hidden;
  39128. extern rule_struct _time_tzinfo[2] attribute_hidden;
  39129. @@ -605,11 +601,11 @@
  39130. } ll_tzname_item_t;
  39131. /* Structures form a list "UTC" -> "???" -> "tzname1" -> "tzname2"... */
  39132. -struct {
  39133. +static struct {
  39134. struct ll_tzname_item *next;
  39135. char tzname[4];
  39136. } ll_tzname_UNKNOWN = { NULL, "???" };
  39137. -const struct {
  39138. +static const struct {
  39139. struct ll_tzname_item *next;
  39140. char tzname[4];
  39141. } ll_tzname_UTC = { (void*)&ll_tzname_UNKNOWN, "UTC" };
  39142. @@ -671,7 +667,7 @@
  39143. isleap = __isleap(i);
  39144. --i;
  39145. day0 = (1
  39146. - + i /* Normal years increment 1 wday. */
  39147. + + i /* Normal years increment 1 wday. */
  39148. + (i/4)
  39149. - (i/100)
  39150. + (i/400) ) % 7;
  39151. @@ -684,20 +680,22 @@
  39152. }
  39153. } else if (r->rule_type == 'M') {
  39154. /* Find 0-based day number for 1st of the month. */
  39155. - day = 31*r->month - day_cor[r->month -1];
  39156. + day = 31 * r->month - day_cor[r->month - 1];
  39157. if (isleap && (day >= 59)) {
  39158. ++day;
  39159. }
  39160. - monlen = 31 + day_cor[r->month -1] - day_cor[r->month];
  39161. + monlen = 31 + day_cor[r->month - 1] - day_cor[r->month];
  39162. if (isleap && (r->month == 2)) {
  39163. ++monlen;
  39164. }
  39165. - /* Wweekday (0 is Sunday) of 1st of the month
  39166. + /* Weekday (0 is Sunday) of 1st of the month
  39167. * is (day0 + day) % 7. */
  39168. - if ((mday = r->day - ((day0 + day) % 7)) >= 0) {
  39169. - mday -= 7; /* Back up into prev month since r->week>0. */
  39170. + mday = r->day - ((day0 + day) % 7);
  39171. + if (mday >= 0) {
  39172. + mday -= 7; /* Back up into prev month since r->week > 0. */
  39173. }
  39174. - if ((mday += 7 * r->week) >= monlen) {
  39175. + mday += 7 * r->week;
  39176. + if (mday >= monlen) {
  39177. mday -= 7;
  39178. }
  39179. /* So, 0-based day number is... */
  39180. @@ -2100,7 +2098,8 @@
  39181. daylight = !!_time_tzinfo[1].tzname[0];
  39182. timezone = _time_tzinfo[0].gmt_offset;
  39183. -#if defined(__UCLIBC_HAS_TZ_FILE__) || defined(__UCLIBC_HAS_TZ_CACHING__)
  39184. +#if (defined(__UCLIBC_HAS_TZ_FILE__) && !defined(__UCLIBC_HAS_TZ_FILE_READ_MANY__)) || \
  39185. + defined(__UCLIBC_HAS_TZ_CACHING__)
  39186. FAST_DONE:
  39187. #endif
  39188. __UCLIBC_MUTEX_UNLOCK(_time_tzlock);
  39189. diff -Nur uClibc-0.9.33.2/libc/misc/ttyent/getttyent.c uClibc-git/libc/misc/ttyent/getttyent.c
  39190. --- uClibc-0.9.33.2/libc/misc/ttyent/getttyent.c 2012-05-15 09:20:09.000000000 +0200
  39191. +++ uClibc-git/libc/misc/ttyent/getttyent.c 2014-06-02 17:40:34.082712361 +0200
  39192. @@ -30,12 +30,11 @@
  39193. #include <features.h>
  39194. #include <ttyent.h>
  39195. #include <stdio.h>
  39196. -#include <stdio_ext.h>
  39197. #include <ctype.h>
  39198. #include <string.h>
  39199. #include <stdlib.h>
  39200. #ifdef __UCLIBC_HAS_THREADS__
  39201. -# include <pthread.h>
  39202. +# include <stdio_ext.h>
  39203. #endif
  39204. static char zapchar;
  39205. diff -Nur uClibc-0.9.33.2/libc/misc/ttyent/Makefile.in uClibc-git/libc/misc/ttyent/Makefile.in
  39206. --- uClibc-0.9.33.2/libc/misc/ttyent/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  39207. +++ uClibc-git/libc/misc/ttyent/Makefile.in 2014-06-02 17:40:34.082712361 +0200
  39208. @@ -7,13 +7,13 @@
  39209. subdirs += libc/misc/ttyent
  39210. -CSRC := getttyent.c
  39211. +CSRC-y := getttyent.c
  39212. MISC_TTYENT_DIR := $(top_srcdir)libc/misc/ttyent
  39213. MISC_TTYENT_OUT := $(top_builddir)libc/misc/ttyent
  39214. -MISC_TTYENT_SRC := $(patsubst %.c,$(MISC_TTYENT_DIR)/%.c,$(CSRC))
  39215. -MISC_TTYENT_OBJ := $(patsubst %.c,$(MISC_TTYENT_OUT)/%.o,$(CSRC))
  39216. +MISC_TTYENT_SRC := $(patsubst %.c,$(MISC_TTYENT_DIR)/%.c,$(CSRC-y))
  39217. +MISC_TTYENT_OBJ := $(patsubst %.c,$(MISC_TTYENT_OUT)/%.o,$(CSRC-y))
  39218. libc-y += $(MISC_TTYENT_OBJ)
  39219. diff -Nur uClibc-0.9.33.2/libc/misc/utmp/Makefile.in uClibc-git/libc/misc/utmp/Makefile.in
  39220. --- uClibc-0.9.33.2/libc/misc/utmp/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  39221. +++ uClibc-git/libc/misc/utmp/Makefile.in 2014-06-02 17:40:34.082712361 +0200
  39222. @@ -7,17 +7,14 @@
  39223. subdirs += libc/misc/utmp
  39224. -CSRC := utent.c wtent.c
  39225. -
  39226. -ifeq ($(UCLIBC_HAS_UTMPX),y)
  39227. -CSRC += utxent.c
  39228. -endif
  39229. +CSRC-y := utent.c wtent.c
  39230. +CSRC-$(UCLIBC_HAS_UTMPX) += utxent.c
  39231. MISC_UTMP_DIR := $(top_srcdir)libc/misc/utmp
  39232. MISC_UTMP_OUT := $(top_builddir)libc/misc/utmp
  39233. -MISC_UTMP_SRC := $(patsubst %.c,$(MISC_UTMP_DIR)/%.c,$(CSRC))
  39234. -MISC_UTMP_OBJ := $(patsubst %.c,$(MISC_UTMP_OUT)/%.o,$(CSRC))
  39235. +MISC_UTMP_SRC := $(patsubst %.c,$(MISC_UTMP_DIR)/%.c,$(CSRC-y))
  39236. +MISC_UTMP_OBJ := $(patsubst %.c,$(MISC_UTMP_OUT)/%.o,$(CSRC-y))
  39237. libc-y += $(MISC_UTMP_OBJ)
  39238. diff -Nur uClibc-0.9.33.2/libc/misc/utmp/utent.c uClibc-git/libc/misc/utmp/utent.c
  39239. --- uClibc-0.9.33.2/libc/misc/utmp/utent.c 2012-05-15 09:20:09.000000000 +0200
  39240. +++ uClibc-git/libc/misc/utmp/utent.c 2014-06-02 17:40:34.082712361 +0200
  39241. @@ -19,32 +19,22 @@
  39242. #include <errno.h>
  39243. #include <string.h>
  39244. #include <utmp.h>
  39245. +#ifdef __UCLIBC_HAS_UTMPX__
  39246. +# include <utmpx.h>
  39247. +#endif
  39248. #include <not-cancel.h>
  39249. #include <bits/uClibc_mutex.h>
  39250. __UCLIBC_MUTEX_STATIC(utmplock, PTHREAD_MUTEX_INITIALIZER);
  39251. -
  39252. -/* Do not create extra unlocked functions if no locking is needed */
  39253. -#if defined __UCLIBC_HAS_THREADS__
  39254. -# define static_if_threaded static
  39255. -#else
  39256. -# define static_if_threaded /* nothing */
  39257. -# define __setutent setutent
  39258. -# define __getutent getutent
  39259. -# define __getutid getutid
  39260. -#endif
  39261. -
  39262. -
  39263. /* Some global crap */
  39264. static int static_fd = -1;
  39265. static struct utmp static_utmp;
  39266. static const char default_file_name[] = _PATH_UTMP;
  39267. static const char *static_ut_name = default_file_name;
  39268. -
  39269. /* This function must be called with the LOCK held */
  39270. -static_if_threaded void __setutent(void)
  39271. +static void __setutent_unlocked(void)
  39272. {
  39273. if (static_fd < 0) {
  39274. static_fd = open_not_cancel_2(static_ut_name, O_RDWR | O_CLOEXEC);
  39275. @@ -63,17 +53,24 @@
  39276. lseek(static_fd, 0, SEEK_SET);
  39277. }
  39278. #if defined __UCLIBC_HAS_THREADS__
  39279. -void setutent(void)
  39280. +static void __setutent(void)
  39281. {
  39282. __UCLIBC_MUTEX_LOCK(utmplock);
  39283. - __setutent();
  39284. + __setutent_unlocked();
  39285. __UCLIBC_MUTEX_UNLOCK(utmplock);
  39286. }
  39287. +#else
  39288. +static void __setutent(void);
  39289. +strong_alias(__setutent_unlocked,__setutent)
  39290. +#endif
  39291. +strong_alias(__setutent,setutent)
  39292. +
  39293. +#ifdef __UCLIBC_HAS_UTMPX__
  39294. +strong_alias(__setutent,setutxent)
  39295. #endif
  39296. -libc_hidden_def(setutent)
  39297. /* This function must be called with the LOCK held */
  39298. -static_if_threaded struct utmp *__getutent(void)
  39299. +static struct utmp *__getutent_unlocked(void)
  39300. {
  39301. if (static_fd < 0) {
  39302. __setutent();
  39303. @@ -89,19 +86,29 @@
  39304. return NULL;
  39305. }
  39306. #if defined __UCLIBC_HAS_THREADS__
  39307. -struct utmp *getutent(void)
  39308. +static struct utmp *__getutent(void)
  39309. {
  39310. struct utmp *ret;
  39311. __UCLIBC_MUTEX_LOCK(utmplock);
  39312. - ret = __getutent();
  39313. + ret = __getutent_unlocked();
  39314. __UCLIBC_MUTEX_UNLOCK(utmplock);
  39315. return ret;
  39316. }
  39317. +#else
  39318. +static struct utmp *__getutent(void);
  39319. +strong_alias(__getutent_unlocked,__getutent)
  39320. +#endif
  39321. +strong_alias(__getutent,getutent)
  39322. +
  39323. +#ifdef __UCLIBC_HAS_UTMPX__
  39324. +struct utmpx *getutxent(void)
  39325. +{
  39326. + return (struct utmpx *) __getutent ();
  39327. +}
  39328. #endif
  39329. -libc_hidden_def(getutent)
  39330. -void endutent(void)
  39331. +static void __endutent(void)
  39332. {
  39333. __UCLIBC_MUTEX_LOCK(utmplock);
  39334. if (static_fd >= 0)
  39335. @@ -109,10 +116,14 @@
  39336. static_fd = -1;
  39337. __UCLIBC_MUTEX_UNLOCK(utmplock);
  39338. }
  39339. -libc_hidden_def(endutent)
  39340. +strong_alias(__endutent,endutent)
  39341. +
  39342. +#ifdef __UCLIBC_HAS_UTMPX__
  39343. +strong_alias(__endutent,endutxent)
  39344. +#endif
  39345. /* This function must be called with the LOCK held */
  39346. -static_if_threaded struct utmp *__getutid(const struct utmp *utmp_entry)
  39347. +static struct utmp *__getutid_unlocked(const struct utmp *utmp_entry)
  39348. {
  39349. struct utmp *lutmp;
  39350. unsigned type;
  39351. @@ -122,7 +133,7 @@
  39352. type = utmp_entry->ut_type - 1;
  39353. type /= 4;
  39354. - while ((lutmp = __getutent()) != NULL) {
  39355. + while ((lutmp = __getutent_unlocked()) != NULL) {
  39356. if (type == 0 && lutmp->ut_type == utmp_entry->ut_type) {
  39357. /* one of RUN_LVL, BOOT_TIME, NEW_TIME, OLD_TIME */
  39358. return lutmp;
  39359. @@ -136,24 +147,34 @@
  39360. return NULL;
  39361. }
  39362. #if defined __UCLIBC_HAS_THREADS__
  39363. -struct utmp *getutid(const struct utmp *utmp_entry)
  39364. +static struct utmp *__getutid(const struct utmp *utmp_entry)
  39365. {
  39366. struct utmp *ret;
  39367. __UCLIBC_MUTEX_LOCK(utmplock);
  39368. - ret = __getutid(utmp_entry);
  39369. + ret = __getutid_unlocked(utmp_entry);
  39370. __UCLIBC_MUTEX_UNLOCK(utmplock);
  39371. return ret;
  39372. }
  39373. +#else
  39374. +static struct utmp *__getutid(const struct utmp *utmp_entry);
  39375. +strong_alias(__getutid_unlocked,__getutid)
  39376. +#endif
  39377. +strong_alias(__getutid,getutid)
  39378. +
  39379. +#ifdef __UCLIBC_HAS_UTMPX__
  39380. +struct utmpx *getutxid(const struct utmpx *utmp_entry)
  39381. +{
  39382. + return (struct utmpx *) __getutid ((const struct utmp *) utmp_entry);
  39383. +}
  39384. #endif
  39385. -libc_hidden_def(getutid)
  39386. -struct utmp *getutline(const struct utmp *utmp_entry)
  39387. +static struct utmp *__getutline(const struct utmp *utmp_entry)
  39388. {
  39389. struct utmp *lutmp;
  39390. __UCLIBC_MUTEX_LOCK(utmplock);
  39391. - while ((lutmp = __getutent()) != NULL) {
  39392. + while ((lutmp = __getutent_unlocked()) != NULL) {
  39393. if (lutmp->ut_type == USER_PROCESS || lutmp->ut_type == LOGIN_PROCESS) {
  39394. if (strncmp(lutmp->ut_line, utmp_entry->ut_line, sizeof(lutmp->ut_line)) == 0) {
  39395. break;
  39396. @@ -163,16 +184,23 @@
  39397. __UCLIBC_MUTEX_UNLOCK(utmplock);
  39398. return lutmp;
  39399. }
  39400. -libc_hidden_def(getutline)
  39401. +strong_alias(__getutline,getutline)
  39402. +
  39403. +#ifdef __UCLIBC_HAS_UTMPX__
  39404. +struct utmpx *getutxline(const struct utmpx *utmp_entry)
  39405. +{
  39406. + return (struct utmpx *) __getutline ((const struct utmp *) utmp_entry);
  39407. +}
  39408. +#endif
  39409. -struct utmp *pututline(const struct utmp *utmp_entry)
  39410. +static struct utmp *__pututline(const struct utmp *utmp_entry)
  39411. {
  39412. __UCLIBC_MUTEX_LOCK(utmplock);
  39413. /* Ignore the return value. That way, if they've already positioned
  39414. the file pointer where they want it, everything will work out. */
  39415. lseek(static_fd, (off_t) - sizeof(struct utmp), SEEK_CUR);
  39416. - if (__getutid(utmp_entry) != NULL)
  39417. + if (__getutid_unlocked(utmp_entry) != NULL)
  39418. lseek(static_fd, (off_t) - sizeof(struct utmp), SEEK_CUR);
  39419. else
  39420. lseek(static_fd, (off_t) 0, SEEK_END);
  39421. @@ -182,9 +210,16 @@
  39422. __UCLIBC_MUTEX_UNLOCK(utmplock);
  39423. return (struct utmp *)utmp_entry;
  39424. }
  39425. -libc_hidden_def(pututline)
  39426. +strong_alias(__pututline,pututline)
  39427. +
  39428. +#ifdef __UCLIBC_HAS_UTMPX__
  39429. +struct utmpx *pututxline (const struct utmpx *utmp_entry)
  39430. +{
  39431. + return (struct utmpx *) __pututline ((const struct utmp *) utmp_entry);
  39432. +}
  39433. +#endif
  39434. -int utmpname(const char *new_ut_name)
  39435. +static int __utmpname(const char *new_ut_name)
  39436. {
  39437. __UCLIBC_MUTEX_LOCK(utmplock);
  39438. if (new_ut_name != NULL) {
  39439. @@ -205,4 +240,8 @@
  39440. __UCLIBC_MUTEX_UNLOCK(utmplock);
  39441. return 0; /* or maybe return -(static_ut_name != new_ut_name)? */
  39442. }
  39443. -libc_hidden_def(utmpname)
  39444. +strong_alias(__utmpname,utmpname)
  39445. +
  39446. +#ifdef __UCLIBC_HAS_UTMPX__
  39447. +strong_alias(__utmpname,utmpxname)
  39448. +#endif
  39449. diff -Nur uClibc-0.9.33.2/libc/misc/utmp/utxent.c uClibc-git/libc/misc/utmp/utxent.c
  39450. --- uClibc-0.9.33.2/libc/misc/utmp/utxent.c 2012-05-15 09:20:09.000000000 +0200
  39451. +++ uClibc-git/libc/misc/utmp/utxent.c 2014-06-02 17:40:34.082712361 +0200
  39452. @@ -13,6 +13,7 @@
  39453. #include <utmpx.h>
  39454. #include <utmp.h>
  39455. +#if 0 /* moved to utent.c */
  39456. void setutxent(void)
  39457. {
  39458. setutent ();
  39459. @@ -48,10 +49,12 @@
  39460. return utmpname (new_ut_name);
  39461. }
  39462. +/* moved to wtent.c */
  39463. void updwtmpx (const char *wtmpx_file, const struct utmpx *utmpx)
  39464. {
  39465. updwtmp (wtmpx_file, (const struct utmp *) utmpx);
  39466. }
  39467. +#endif
  39468. /* Copy the information in UTMPX to UTMP. */
  39469. void getutmp (const struct utmpx *utmpx, struct utmp *utmp)
  39470. @@ -104,4 +107,3 @@
  39471. utmpx->ut_time = utmp->ut_time;
  39472. #endif
  39473. }
  39474. -
  39475. diff -Nur uClibc-0.9.33.2/libc/misc/utmp/wtent.c uClibc-git/libc/misc/utmp/wtent.c
  39476. --- uClibc-0.9.33.2/libc/misc/utmp/wtent.c 2012-05-15 09:20:09.000000000 +0200
  39477. +++ uClibc-git/libc/misc/utmp/wtent.c 2014-06-02 17:40:34.082712361 +0200
  39478. @@ -11,6 +11,9 @@
  39479. #include <time.h>
  39480. #include <unistd.h>
  39481. #include <utmp.h>
  39482. +#ifdef __UCLIBC_HAS_UTMPX__
  39483. +# include <utmpx.h>
  39484. +#endif
  39485. #include <fcntl.h>
  39486. #include <sys/file.h>
  39487. #include <not-cancel.h>
  39488. @@ -33,11 +36,11 @@
  39489. }
  39490. #endif
  39491. -void updwtmp(const char *wtmp_file, const struct utmp *lutmp)
  39492. +static void __updwtmp(const char *wtmp_file, const struct utmp *lutmp)
  39493. {
  39494. int fd;
  39495. - fd = open_not_cancel(wtmp_file, O_APPEND | O_WRONLY, 0);
  39496. + fd = open_not_cancel_2(wtmp_file, O_APPEND | O_WRONLY);
  39497. if (fd >= 0) {
  39498. if (lockf(fd, F_LOCK, 0) == 0) {
  39499. write_not_cancel(fd, lutmp, sizeof(struct utmp));
  39500. @@ -46,4 +49,11 @@
  39501. }
  39502. }
  39503. }
  39504. -libc_hidden_def(updwtmp)
  39505. +strong_alias(__updwtmp,updwtmp)
  39506. +
  39507. +#ifdef __UCLIBC_HAS_UTMPX__
  39508. +void updwtmpx (const char *wtmpx_file, const struct utmpx *utmpx)
  39509. +{
  39510. + __updwtmp (wtmpx_file, (const struct utmp *) utmpx);
  39511. +}
  39512. +#endif
  39513. diff -Nur uClibc-0.9.33.2/libc/misc/wchar/Makefile.in uClibc-git/libc/misc/wchar/Makefile.in
  39514. --- uClibc-0.9.33.2/libc/misc/wchar/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  39515. +++ uClibc-git/libc/misc/wchar/Makefile.in 2014-06-02 17:40:34.082712361 +0200
  39516. @@ -19,19 +19,17 @@
  39517. subdirs += libc/misc/wchar
  39518. # multi source wchar.c
  39519. -CSRC := btowc.c wctob.c mbsinit.c mbrlen.c mbrtowc.c wcrtomb.c mbsrtowcs.c \
  39520. +CSRC-y := btowc.c wctob.c mbsinit.c mbrlen.c mbrtowc.c wcrtomb.c mbsrtowcs.c \
  39521. wcsrtombs.c _wchar_utf8sntowcs.c _wchar_wcsntoutf8s.c \
  39522. mbsnrtowcs.c wcsnrtombs.c wcwidth.c wcswidth.c
  39523. -ifeq ($(UCLIBC_HAS_LOCALE),y)
  39524. -CSRC += iconv.c
  39525. -endif
  39526. +CSRC-$(UCLIBC_HAS_LOCALE) += iconv.c
  39527. MISC_WCHAR_DIR := $(top_srcdir)libc/misc/wchar
  39528. MISC_WCHAR_OUT := $(top_builddir)libc/misc/wchar
  39529. -MISC_WCHAR_SRC := $(patsubst %.c,$(MISC_WCHAR_DIR)/%.c,$(CSRC))
  39530. -MISC_WCHAR_OBJ := $(patsubst %.c,$(MISC_WCHAR_OUT)/%.o,$(CSRC))
  39531. +MISC_WCHAR_SRC := $(patsubst %.c,$(MISC_WCHAR_DIR)/%.c,$(CSRC-y))
  39532. +MISC_WCHAR_OBJ := $(patsubst %.c,$(MISC_WCHAR_OUT)/%.o,$(CSRC-y))
  39533. libc-$(UCLIBC_HAS_WCHAR) += $(MISC_WCHAR_OBJ)
  39534. diff -Nur uClibc-0.9.33.2/libc/misc/wchar/wchar.c uClibc-git/libc/misc/wchar/wchar.c
  39535. --- uClibc-0.9.33.2/libc/misc/wchar/wchar.c 2012-05-15 09:20:09.000000000 +0200
  39536. +++ uClibc-git/libc/misc/wchar/wchar.c 2014-06-02 17:40:34.082712361 +0200
  39537. @@ -12,8 +12,8 @@
  39538. * Library General Public License for more details.
  39539. *
  39540. * You should have received a copy of the GNU Library General Public
  39541. - * License along with this library; if not, write to the Free
  39542. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  39543. + * License along with this library; if not, see
  39544. + * <http://www.gnu.org/licenses/>.
  39545. */
  39546. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  39547. @@ -1196,6 +1196,9 @@
  39548. #endif
  39549. #if defined L_iconv || defined L_iconv_main
  39550. +# ifdef L_iconv_main
  39551. +static
  39552. +# endif
  39553. const unsigned char __iconv_codesets[] =
  39554. "\x0a\xe0""WCHAR_T\x00" /* superset of UCS-4 but platform-endian */
  39555. #if __BYTE_ORDER == __BIG_ENDIAN
  39556. diff -Nur uClibc-0.9.33.2/libc/misc/wctype/Makefile.in uClibc-git/libc/misc/wctype/Makefile.in
  39557. --- uClibc-0.9.33.2/libc/misc/wctype/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  39558. +++ uClibc-git/libc/misc/wctype/Makefile.in 2014-06-02 17:40:34.082712361 +0200
  39559. @@ -14,19 +14,15 @@
  39560. iswxdigit.c iswblank.c wctrans.c towctrans.c \
  39561. wctype.c iswctype.c towlower.c towupper.c
  39562. -CSRC :=
  39563. -ifeq ($(UCLIBC_HAS_WCHAR),y)
  39564. -CSRC += $(COM_SRC)
  39565. -endif
  39566. -ifeq ($(UCLIBC_HAS_XLOCALE),y)
  39567. -CSRC += $(patsubst %.c,%_l.c,$(COM_SRC))
  39568. -endif
  39569. +CSRC-y :=
  39570. +CSRC-$(UCLIBC_HAS_WCHAR) += $(COM_SRC)
  39571. +CSRC-$(UCLIBC_HAS_XLOCALE) += $(patsubst %.c,%_l.c,$(COM_SRC))
  39572. MISC_WCTYPE_DIR := $(top_srcdir)libc/misc/wctype
  39573. MISC_WCTYPE_OUT := $(top_builddir)libc/misc/wctype
  39574. -MISC_WCTYPE_SRC := $(patsubst %.c,$(MISC_WCTYPE_DIR)/%.c,$(CSRC))
  39575. -MISC_WCTYPE_OBJ := $(patsubst %.c,$(MISC_WCTYPE_OUT)/%.o,$(CSRC))
  39576. +MISC_WCTYPE_SRC := $(patsubst %.c,$(MISC_WCTYPE_DIR)/%.c,$(CSRC-y))
  39577. +MISC_WCTYPE_OBJ := $(patsubst %.c,$(MISC_WCTYPE_OUT)/%.o,$(CSRC-y))
  39578. libc-y += $(MISC_WCTYPE_OBJ)
  39579. diff -Nur uClibc-0.9.33.2/libc/misc/wctype/_wctype.c uClibc-git/libc/misc/wctype/_wctype.c
  39580. --- uClibc-0.9.33.2/libc/misc/wctype/_wctype.c 2012-05-15 09:20:09.000000000 +0200
  39581. +++ uClibc-git/libc/misc/wctype/_wctype.c 2014-06-02 17:40:34.082712361 +0200
  39582. @@ -11,8 +11,8 @@
  39583. * Library General Public License for more details.
  39584. *
  39585. * You should have received a copy of the GNU Library General Public
  39586. - * License along with this library; if not, write to the Free
  39587. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  39588. + * License along with this library; if not, see
  39589. + * <http://www.gnu.org/licenses/>.
  39590. */
  39591. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  39592. @@ -41,10 +41,6 @@
  39593. # error xlocale functionality is not supported in stub locale mode.
  39594. #endif
  39595. -#ifdef __UCLIBC_HAS_XLOCALE__
  39596. -# include <xlocale.h>
  39597. -#endif
  39598. -
  39599. /* We know wide char support is enabled. We wouldn't be here otherwise. */
  39600. /* Define this if you want to unify the towupper and towlower code in the
  39601. diff -Nur uClibc-0.9.33.2/libc/misc/wordexp/Makefile.in uClibc-git/libc/misc/wordexp/Makefile.in
  39602. --- uClibc-0.9.33.2/libc/misc/wordexp/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  39603. +++ uClibc-git/libc/misc/wordexp/Makefile.in 2014-06-02 17:40:34.086712384 +0200
  39604. @@ -7,13 +7,13 @@
  39605. subdirs += libc/misc/wordexp
  39606. -CSRC := wordexp.c
  39607. +CSRC-y := wordexp.c
  39608. MISC_WORDEXP_DIR := $(top_srcdir)libc/misc/wordexp
  39609. MISC_WORDEXP_OUT := $(top_builddir)libc/misc/wordexp
  39610. -MISC_WORDEXP_SRC := $(patsubst %.c,$(MISC_WORDEXP_DIR)/%.c,$(CSRC))
  39611. -MISC_WORDEXP_OBJ := $(patsubst %.c,$(MISC_WORDEXP_OUT)/%.o,$(CSRC))
  39612. +MISC_WORDEXP_SRC := $(patsubst %.c,$(MISC_WORDEXP_DIR)/%.c,$(CSRC-y))
  39613. +MISC_WORDEXP_OBJ := $(patsubst %.c,$(MISC_WORDEXP_OUT)/%.o,$(CSRC-y))
  39614. libc-$(UCLIBC_HAS_WORDEXP) += $(MISC_WORDEXP_OBJ)
  39615. diff -Nur uClibc-0.9.33.2/libc/misc/wordexp/wordexp.c uClibc-git/libc/misc/wordexp/wordexp.c
  39616. --- uClibc-0.9.33.2/libc/misc/wordexp/wordexp.c 2012-05-15 09:20:09.000000000 +0200
  39617. +++ uClibc-git/libc/misc/wordexp/wordexp.c 2014-06-02 17:40:34.086712384 +0200
  39618. @@ -16,11 +16,11 @@
  39619. You should have received a copy of the GNU Library General Public
  39620. License along with the GNU C Library; see the file COPYING.LIB. If not,
  39621. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  39622. - Boston, MA 02111-1307, USA. */
  39623. + see <http://www.gnu.org/licenses/>. */
  39624. #include <features.h>
  39625. #include <bits/kernel-features.h>
  39626. +#include <ctype.h>
  39627. #include <sys/types.h>
  39628. #include <sys/wait.h>
  39629. #include <fcntl.h>
  39630. @@ -36,6 +36,10 @@
  39631. #include <glob.h>
  39632. #include <wordexp.h>
  39633. +#ifndef __ARCH_USE_MMU__
  39634. +# define fork vfork
  39635. +#endif
  39636. +
  39637. #define __WORDEXP_FULL
  39638. /*
  39639. diff -Nur uClibc-0.9.33.2/libc/pwd_grp/lckpwdf.c uClibc-git/libc/pwd_grp/lckpwdf.c
  39640. --- uClibc-0.9.33.2/libc/pwd_grp/lckpwdf.c 2012-05-15 09:20:09.000000000 +0200
  39641. +++ uClibc-git/libc/pwd_grp/lckpwdf.c 2014-06-02 17:40:34.114712538 +0200
  39642. @@ -15,9 +15,8 @@
  39643. Lesser General Public License for more details.
  39644. You should have received a copy of the GNU Lesser General Public
  39645. - License along with the GNU C Library; if not, write to the Free
  39646. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39647. - 02111-1307 USA. */
  39648. + License along with the GNU C Library; if not, see
  39649. + <http://www.gnu.org/licenses/>. */
  39650. #include <features.h>
  39651. #include <fcntl.h>
  39652. @@ -51,6 +50,7 @@
  39653. struct sigaction new_act; /* New signal action. */
  39654. struct flock fl; /* Information struct for locking. */
  39655. int result;
  39656. + int rv = -1;
  39657. if (lock_fd != -1)
  39658. /* Still locked by own process. */
  39659. @@ -111,11 +111,13 @@
  39660. if (result < 0) {
  39661. close(lock_fd);
  39662. lock_fd = -1;
  39663. + goto DONE;
  39664. }
  39665. + rv = 0;
  39666. DONE:
  39667. __UCLIBC_MUTEX_UNLOCK(mylock);
  39668. - return 0; /* TODO: return result? */
  39669. + return rv;
  39670. }
  39671. diff -Nur uClibc-0.9.33.2/libc/pwd_grp/Makefile.in uClibc-git/libc/pwd_grp/Makefile.in
  39672. --- uClibc-0.9.33.2/libc/pwd_grp/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  39673. +++ uClibc-git/libc/pwd_grp/Makefile.in 2014-06-02 17:40:34.086712384 +0200
  39674. @@ -10,20 +10,17 @@
  39675. PWDGRP_DIR := $(top_srcdir)libc/pwd_grp
  39676. PWDGRP_OUT := $(top_builddir)libc/pwd_grp
  39677. -CSRC := $(notdir $(wildcard $(PWDGRP_DIR)/*.c))
  39678. -CSRC := $(filter-out pwd_grp.c pwd_grp_internal.c,$(CSRC))
  39679. -
  39680. -ifneq ($(UCLIBC_HAS_SHADOW),y)
  39681. -SHADOW_CSRC := \
  39682. - fgetspent_r.c fgetspent.c getspent_r.c getspent.c \
  39683. +CSRC-y := $(notdir $(wildcard $(PWDGRP_DIR)/*.c))
  39684. +CSRC- := pwd_grp.c pwd_grp_internal.c # multi-source and helper
  39685. +CSRC-$(UCLIBC_HAS_SHADOW) += fgetspent_r.c fgetspent.c getspent_r.c getspent.c \
  39686. getspnam_r.c getspnam.c lckpwdf.c putspent.c \
  39687. sgetspent_r.c sgetspent.c __parsespent.c
  39688. # getspuid_r.c getspuid.c
  39689. -CSRC := $(filter-out $(SHADOW_CSRC),$(CSRC))
  39690. -endif
  39691. -PWDGRP_SRC := $(patsubst %.c,$(PWDGRP_DIR)/%.c,$(CSRC))
  39692. -PWDGRP_OBJ := $(patsubst %.c,$(PWDGRP_OUT)/%.o,$(CSRC))
  39693. +CSRC-y := $(filter-out $(CSRC-),$(CSRC-y))
  39694. +
  39695. +PWDGRP_SRC := $(patsubst %.c,$(PWDGRP_DIR)/%.c,$(CSRC-y))
  39696. +PWDGRP_OBJ := $(patsubst %.c,$(PWDGRP_OUT)/%.o,$(CSRC-y))
  39697. libc-y += $(PWDGRP_OBJ)
  39698. diff -Nur uClibc-0.9.33.2/libc/pwd_grp/pwd_grp.c uClibc-git/libc/pwd_grp/pwd_grp.c
  39699. --- uClibc-0.9.33.2/libc/pwd_grp/pwd_grp.c 2012-05-15 09:20:09.000000000 +0200
  39700. +++ uClibc-git/libc/pwd_grp/pwd_grp.c 2014-06-02 17:40:34.114712538 +0200
  39701. @@ -354,6 +354,7 @@
  39702. getpwnam_r(name, &resultbuf, buffer, sizeof(buffer), &result);
  39703. return result;
  39704. }
  39705. +libc_hidden_def(getpwnam)
  39706. #endif
  39707. /**********************************************************************/
  39708. diff -Nur uClibc-0.9.33.2/libc/pwd_grp/pwd_grp_internal.c uClibc-git/libc/pwd_grp/pwd_grp_internal.c
  39709. --- uClibc-0.9.33.2/libc/pwd_grp/pwd_grp_internal.c 2012-05-15 09:20:09.000000000 +0200
  39710. +++ uClibc-git/libc/pwd_grp/pwd_grp_internal.c 2014-06-02 17:40:34.114712538 +0200
  39711. @@ -34,9 +34,6 @@
  39712. #ifdef __UCLIBC_HAS_SHADOW__
  39713. #include <shadow.h>
  39714. #endif
  39715. -#ifdef __UCLIBC_HAS_THREADS__
  39716. -#include <pthread.h>
  39717. -#endif
  39718. /**********************************************************************/
  39719. /* Sizes for statically allocated buffers. */
  39720. diff -Nur uClibc-0.9.33.2/libc/signal/allocrtsig.c uClibc-git/libc/signal/allocrtsig.c
  39721. --- uClibc-0.9.33.2/libc/signal/allocrtsig.c 2012-05-15 09:20:09.000000000 +0200
  39722. +++ uClibc-git/libc/signal/allocrtsig.c 2014-06-02 17:40:34.118712560 +0200
  39723. @@ -14,13 +14,11 @@
  39724. Lesser General Public License for more details.
  39725. You should have received a copy of the GNU Lesser General Public
  39726. - License along with the GNU C Library; if not, write to the Free
  39727. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39728. - 02111-1307 USA. */
  39729. + License along with the GNU C Library; if not, see
  39730. + <http://www.gnu.org/licenses/>. */
  39731. #include <features.h>
  39732. #include <signal.h>
  39733. -#include <sys/types.h>
  39734. #include <sys/syscall.h>
  39735. /* Only enable rt signals when it is supported at compile time */
  39736. @@ -34,6 +32,13 @@
  39737. #else
  39738. # ifdef __UCLIBC_HAS_THREADS_NATIVE__
  39739. static int current_rtmin = __SIGRTMIN + 2;
  39740. +# elif defined __UCLIBC_HAS_THREADS__ && !defined __LINUXTHREADS_OLD__
  39741. +/* psm: might be good for LT old as well, do not want to break it for now */
  39742. +/* Sanity check */
  39743. +# if !defined __SIGRTMIN || (__SIGRTMAX - __SIGRTMIN) < 3
  39744. +# error "This must not happen"
  39745. +# endif
  39746. +static int current_rtmin = __SIGRTMIN + 3;
  39747. # else
  39748. static int current_rtmin = __SIGRTMIN;
  39749. # endif
  39750. @@ -52,6 +57,7 @@
  39751. return current_rtmax;
  39752. }
  39753. +#if 0
  39754. /* Allocate real-time signal with highest/lowest available
  39755. priority. Please note that we don't use a lock since we assume
  39756. this function to be called at program start. */
  39757. @@ -64,3 +70,4 @@
  39758. return high ? current_rtmin++ : current_rtmax--;
  39759. }
  39760. +#endif
  39761. diff -Nur uClibc-0.9.33.2/libc/signal/killpg.c uClibc-git/libc/signal/killpg.c
  39762. --- uClibc-0.9.33.2/libc/signal/killpg.c 2012-05-15 09:20:09.000000000 +0200
  39763. +++ uClibc-git/libc/signal/killpg.c 2014-06-02 17:40:34.118712560 +0200
  39764. @@ -12,14 +12,12 @@
  39765. Lesser General Public License for more details.
  39766. You should have received a copy of the GNU Lesser General Public
  39767. - License along with the GNU C Library; if not, write to the Free
  39768. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39769. - 02111-1307 USA. */
  39770. + License along with the GNU C Library; if not, see
  39771. + <http://www.gnu.org/licenses/>. */
  39772. #include <errno.h>
  39773. #include <signal.h>
  39774. -
  39775. /* Send SIG to all processes in process group PGRP.
  39776. If PGRP is zero, send SIG to all processes in
  39777. the current process's process group. */
  39778. diff -Nur uClibc-0.9.33.2/libc/signal/Makefile.in uClibc-git/libc/signal/Makefile.in
  39779. --- uClibc-0.9.33.2/libc/signal/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  39780. +++ uClibc-git/libc/signal/Makefile.in 2014-06-02 17:40:34.114712538 +0200
  39781. @@ -8,20 +8,18 @@
  39782. subdirs += libc/signal
  39783. CSRC-y := allocrtsig.c killpg.c raise.c sigaction.c sigaddset.c sigandset.c \
  39784. - sigblock.c sigdelset.c sigempty.c sigfillset.c siggetmask.c \
  39785. + sigdelset.c sigempty.c sigfillset.c \
  39786. sigisempty.c sigismem.c sigjmp.c signal.c \
  39787. - sigorset.c sigsetmask.c sigsetops.c sigwait.c
  39788. + sigorset.c sigsetops.c sigwait.c
  39789. CSRC-$(UCLIBC_HAS_OBSOLETE_BSD_SIGNAL) += \
  39790. sighold.c sigignore.c sigrelse.c sigset.c
  39791. CSRC-$(UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL) += sysv_signal.c
  39792. CSRC-$(UCLIBC_SUSV4_LEGACY) += sigintr.c sigpause.c
  39793. -ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  39794. -CSRC-y:=$(filter-out raise.c,$(CSRC-y))
  39795. -endif
  39796. +CSRC-$(UCLIBC_HAS_THREADS_NATIVE):=$(filter-out raise.c,$(CSRC-y))
  39797. -ifneq ($(strip $(ARCH_OBJS)),)
  39798. -CSRC-y := $(filter-out $(notdir $(ARCH_OBJS:.o=.c)),$(CSRC-y))
  39799. +ifneq ($(strip $(ARCH_OBJS-y)),)
  39800. +CSRC-y := $(filter-out $(notdir $(ARCH_OBJS-y:.o=.c)),$(CSRC-y))
  39801. endif
  39802. ifneq ($(UCLIBC_HAS_BACKTRACE),)
  39803. diff -Nur uClibc-0.9.33.2/libc/signal/raise.c uClibc-git/libc/signal/raise.c
  39804. --- uClibc-0.9.33.2/libc/signal/raise.c 2012-05-15 09:20:09.000000000 +0200
  39805. +++ uClibc-git/libc/signal/raise.c 2014-06-02 17:40:34.118712560 +0200
  39806. @@ -3,9 +3,7 @@
  39807. */
  39808. #include <unistd.h>
  39809. -#include <string.h>
  39810. #include <signal.h>
  39811. -#include <sys/types.h>
  39812. int raise(int signo)
  39813. {
  39814. diff -Nur uClibc-0.9.33.2/libc/signal/sigaction.c uClibc-git/libc/signal/sigaction.c
  39815. --- uClibc-0.9.33.2/libc/signal/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  39816. +++ uClibc-git/libc/signal/sigaction.c 2014-06-02 17:40:34.118712560 +0200
  39817. @@ -12,23 +12,12 @@
  39818. Lesser General Public License for more details.
  39819. You should have received a copy of the GNU Lesser General Public
  39820. - License along with the GNU C Library; if not, write to the Free
  39821. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39822. - 02111-1307 USA. */
  39823. + License along with the GNU C Library; if not, see
  39824. + <http://www.gnu.org/licenses/>. */
  39825. -#include <features.h>
  39826. -#include <errno.h>
  39827. #include <signal.h>
  39828. -#include <string.h>
  39829. #include <sys/syscall.h>
  39830. -#include <bits/kernel_sigaction.h>
  39831. -
  39832. -#ifndef LIBC_SIGACTION
  39833. -extern __typeof(sigaction) __libc_sigaction;
  39834. -#endif
  39835. -
  39836. -
  39837. #if defined __NR_rt_sigaction
  39838. /* If ACT is not NULL, change the action for SIG to *ACT.
  39839. @@ -47,6 +36,9 @@
  39840. }
  39841. #else
  39842. +# define __need_NULL
  39843. +# include <stddef.h>
  39844. +# include <bits/kernel_sigaction.h>
  39845. /* If ACT is not NULL, change the action for SIG to *ACT.
  39846. If OACT is not NULL, put the old action for SIG in *OACT. */
  39847. diff -Nur uClibc-0.9.33.2/libc/signal/sigaddset.c uClibc-git/libc/signal/sigaddset.c
  39848. --- uClibc-0.9.33.2/libc/signal/sigaddset.c 2012-05-15 09:20:09.000000000 +0200
  39849. +++ uClibc-git/libc/signal/sigaddset.c 2014-06-02 17:40:34.118712560 +0200
  39850. @@ -12,11 +12,13 @@
  39851. Lesser General Public License for more details.
  39852. You should have received a copy of the GNU Lesser General Public
  39853. - License along with the GNU C Library; if not, write to the Free
  39854. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39855. - 02111-1307 USA. */
  39856. + License along with the GNU C Library; if not, see
  39857. + <http://www.gnu.org/licenses/>. */
  39858. -#include "sigsetops.h"
  39859. +#define __need_NULL
  39860. +#include <stddef.h>
  39861. +#include <signal.h>
  39862. +#include <errno.h>
  39863. /* Add SIGNO to SET. */
  39864. int
  39865. diff -Nur uClibc-0.9.33.2/libc/signal/sigandset.c uClibc-git/libc/signal/sigandset.c
  39866. --- uClibc-0.9.33.2/libc/signal/sigandset.c 2012-05-15 09:20:09.000000000 +0200
  39867. +++ uClibc-git/libc/signal/sigandset.c 2014-06-02 17:40:34.118712560 +0200
  39868. @@ -12,9 +12,8 @@
  39869. Lesser General Public License for more details.
  39870. You should have received a copy of the GNU Lesser General Public
  39871. - License along with the GNU C Library; if not, write to the Free
  39872. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39873. - 02111-1307 USA. */
  39874. + License along with the GNU C Library; if not, see
  39875. + <http://www.gnu.org/licenses/>. */
  39876. #include <errno.h>
  39877. #include <signal.h>
  39878. diff -Nur uClibc-0.9.33.2/libc/signal/sigblock.c uClibc-git/libc/signal/sigblock.c
  39879. --- uClibc-0.9.33.2/libc/signal/sigblock.c 2012-05-15 09:20:09.000000000 +0200
  39880. +++ uClibc-git/libc/signal/sigblock.c 2014-06-02 17:40:34.118712560 +0200
  39881. @@ -12,18 +12,16 @@
  39882. Lesser General Public License for more details.
  39883. You should have received a copy of the GNU Lesser General Public
  39884. - License along with the GNU C Library; if not, write to the Free
  39885. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39886. - 02111-1307 USA. */
  39887. + License along with the GNU C Library; if not, see
  39888. + <http://www.gnu.org/licenses/>. */
  39889. -#define __UCLIBC_HIDE_DEPRECATED__
  39890. -#include <errno.h>
  39891. +/*#define __UCLIBC_HIDE_DEPRECATED__*/
  39892. #include <signal.h>
  39893. #include "sigset-cvt-mask.h"
  39894. /* Block signals in MASK, returning the old mask. */
  39895. -int sigblock (int mask)
  39896. +static int sigblock (int mask)
  39897. {
  39898. sigset_t set, oset;
  39899. @@ -31,4 +29,3 @@
  39900. sigprocmask (SIG_BLOCK, &set, &oset); /* can't fail */
  39901. return sigset_get_old_mask (&oset);
  39902. }
  39903. -libc_hidden_def(sigblock)
  39904. diff -Nur uClibc-0.9.33.2/libc/signal/sigdelset.c uClibc-git/libc/signal/sigdelset.c
  39905. --- uClibc-0.9.33.2/libc/signal/sigdelset.c 2012-05-15 09:20:09.000000000 +0200
  39906. +++ uClibc-git/libc/signal/sigdelset.c 2014-06-02 17:40:34.118712560 +0200
  39907. @@ -12,11 +12,13 @@
  39908. Lesser General Public License for more details.
  39909. You should have received a copy of the GNU Lesser General Public
  39910. - License along with the GNU C Library; if not, write to the Free
  39911. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39912. - 02111-1307 USA. */
  39913. + License along with the GNU C Library; if not, see
  39914. + <http://www.gnu.org/licenses/>. */
  39915. -#include "sigsetops.h"
  39916. +#define __need_NULL
  39917. +#include <stddef.h>
  39918. +#include <signal.h>
  39919. +#include <errno.h>
  39920. /* Add SIGNO to SET. */
  39921. int sigdelset (sigset_t *set, int signo)
  39922. diff -Nur uClibc-0.9.33.2/libc/signal/sigempty.c uClibc-git/libc/signal/sigempty.c
  39923. --- uClibc-0.9.33.2/libc/signal/sigempty.c 2012-05-15 09:20:09.000000000 +0200
  39924. +++ uClibc-git/libc/signal/sigempty.c 2014-06-02 17:40:34.118712560 +0200
  39925. @@ -12,14 +12,15 @@
  39926. Lesser General Public License for more details.
  39927. You should have received a copy of the GNU Lesser General Public
  39928. - License along with the GNU C Library; if not, write to the Free
  39929. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39930. - 02111-1307 USA. */
  39931. + License along with the GNU C Library; if not, see
  39932. + <http://www.gnu.org/licenses/>. */
  39933. -#include <errno.h>
  39934. #include <signal.h>
  39935. -#include <string.h>
  39936. -
  39937. +#if 0
  39938. +#define __need_NULL
  39939. +#include <stddef.h>
  39940. +#include <errno.h>
  39941. +#endif
  39942. /* Clear all signals from SET. */
  39943. int sigemptyset (sigset_t *set)
  39944. @@ -36,4 +37,3 @@
  39945. return 0;
  39946. }
  39947. -libc_hidden_def(sigemptyset)
  39948. diff -Nur uClibc-0.9.33.2/libc/signal/sigfillset.c uClibc-git/libc/signal/sigfillset.c
  39949. --- uClibc-0.9.33.2/libc/signal/sigfillset.c 2012-05-15 09:20:09.000000000 +0200
  39950. +++ uClibc-git/libc/signal/sigfillset.c 2014-06-02 17:40:34.118712560 +0200
  39951. @@ -12,17 +12,18 @@
  39952. Lesser General Public License for more details.
  39953. You should have received a copy of the GNU Lesser General Public
  39954. - License along with the GNU C Library; if not, write to the Free
  39955. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39956. - 02111-1307 USA. */
  39957. + License along with the GNU C Library; if not, see
  39958. + <http://www.gnu.org/licenses/>. */
  39959. -#include <errno.h>
  39960. #include <signal.h>
  39961. -#include <string.h>
  39962. #ifdef __UCLIBC_HAS_THREADS_NATIVE__
  39963. # include <pthreadP.h> /* SIGCANCEL */
  39964. #endif
  39965. -
  39966. +#if 0
  39967. +#define __need_NULL
  39968. +#include <stddef.h>
  39969. +#include <errno.h>
  39970. +#endif
  39971. /* Set all signals in SET. */
  39972. int
  39973. @@ -49,4 +50,3 @@
  39974. return 0;
  39975. }
  39976. -libc_hidden_def(sigfillset)
  39977. diff -Nur uClibc-0.9.33.2/libc/signal/siggetmask.c uClibc-git/libc/signal/siggetmask.c
  39978. --- uClibc-0.9.33.2/libc/signal/siggetmask.c 2012-05-15 09:20:09.000000000 +0200
  39979. +++ uClibc-git/libc/signal/siggetmask.c 2014-06-02 17:40:34.118712560 +0200
  39980. @@ -13,14 +13,12 @@
  39981. Lesser General Public License for more details.
  39982. You should have received a copy of the GNU Lesser General Public
  39983. - License along with the GNU C Library; if not, write to the Free
  39984. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  39985. - 02111-1307 USA. */
  39986. + License along with the GNU C Library; if not, see
  39987. + <http://www.gnu.org/licenses/>. */
  39988. #define __UCLIBC_HIDE_DEPRECATED__
  39989. #include <signal.h>
  39990. -
  39991. int
  39992. siggetmask (void)
  39993. {
  39994. diff -Nur uClibc-0.9.33.2/libc/signal/sighold.c uClibc-git/libc/signal/sighold.c
  39995. --- uClibc-0.9.33.2/libc/signal/sighold.c 2012-05-15 09:20:09.000000000 +0200
  39996. +++ uClibc-git/libc/signal/sighold.c 2014-06-02 17:40:34.118712560 +0200
  39997. @@ -14,15 +14,13 @@
  39998. Lesser General Public License for more details.
  39999. You should have received a copy of the GNU Lesser General Public
  40000. - License along with the GNU C Library; if not, write to the Free
  40001. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40002. - 02111-1307 USA. */
  40003. + License along with the GNU C Library; if not, see
  40004. + <http://www.gnu.org/licenses/>. */
  40005. #define __need_NULL
  40006. #include <stddef.h>
  40007. #include <signal.h>
  40008. -
  40009. int sighold (int sig)
  40010. {
  40011. sigset_t set;
  40012. diff -Nur uClibc-0.9.33.2/libc/signal/sigignore.c uClibc-git/libc/signal/sigignore.c
  40013. --- uClibc-0.9.33.2/libc/signal/sigignore.c 2012-05-15 09:20:09.000000000 +0200
  40014. +++ uClibc-git/libc/signal/sigignore.c 2014-06-02 17:40:34.118712560 +0200
  40015. @@ -14,16 +14,13 @@
  40016. Lesser General Public License for more details.
  40017. You should have received a copy of the GNU Lesser General Public
  40018. - License along with the GNU C Library; if not, write to the Free
  40019. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40020. - 02111-1307 USA. */
  40021. + License along with the GNU C Library; if not, see
  40022. + <http://www.gnu.org/licenses/>. */
  40023. -#include <errno.h>
  40024. #define __need_NULL
  40025. #include <stddef.h>
  40026. #include <signal.h>
  40027. -#include <string.h> /* For the real memset prototype. */
  40028. -
  40029. +#include <string.h>
  40030. int sigignore (int sig)
  40031. {
  40032. diff -Nur uClibc-0.9.33.2/libc/signal/sigintr.c uClibc-git/libc/signal/sigintr.c
  40033. --- uClibc-0.9.33.2/libc/signal/sigintr.c 2012-05-15 09:20:09.000000000 +0200
  40034. +++ uClibc-git/libc/signal/sigintr.c 2014-06-02 17:40:34.118712560 +0200
  40035. @@ -12,20 +12,19 @@
  40036. Lesser General Public License for more details.
  40037. You should have received a copy of the GNU Lesser General Public
  40038. - License along with the GNU C Library; if not, write to the Free
  40039. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40040. - 02111-1307 USA. */
  40041. + License along with the GNU C Library; if not, see
  40042. + <http://www.gnu.org/licenses/>. */
  40043. -#include <stddef.h>
  40044. #include <signal.h>
  40045. -#include <errno.h>
  40046. -
  40047. /* If INTERRUPT is nonzero, make signal SIG interrupt system calls
  40048. (causing them to fail with EINTR); if INTERRUPT is zero, make system
  40049. calls be restarted after signal SIG. */
  40050. #ifdef SA_RESTART
  40051. -extern sigset_t _sigintr attribute_hidden; /* Defined in signal.c. */
  40052. +# define __need_NULL
  40053. +# include <stddef.h>
  40054. +#else
  40055. +# include <errno.h>
  40056. #endif
  40057. int siginterrupt (int sig, int interrupt)
  40058. diff -Nur uClibc-0.9.33.2/libc/signal/sigisempty.c uClibc-git/libc/signal/sigisempty.c
  40059. --- uClibc-0.9.33.2/libc/signal/sigisempty.c 2012-05-15 09:20:09.000000000 +0200
  40060. +++ uClibc-git/libc/signal/sigisempty.c 2014-06-02 17:40:34.118712560 +0200
  40061. @@ -12,9 +12,8 @@
  40062. Lesser General Public License for more details.
  40063. You should have received a copy of the GNU Lesser General Public
  40064. - License along with the GNU C Library; if not, write to the Free
  40065. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40066. - 02111-1307 USA. */
  40067. + License along with the GNU C Library; if not, see
  40068. + <http://www.gnu.org/licenses/>. */
  40069. #include <errno.h>
  40070. #include <signal.h>
  40071. diff -Nur uClibc-0.9.33.2/libc/signal/sigismem.c uClibc-git/libc/signal/sigismem.c
  40072. --- uClibc-0.9.33.2/libc/signal/sigismem.c 2012-05-15 09:20:09.000000000 +0200
  40073. +++ uClibc-git/libc/signal/sigismem.c 2014-06-02 17:40:34.118712560 +0200
  40074. @@ -12,11 +12,13 @@
  40075. Lesser General Public License for more details.
  40076. You should have received a copy of the GNU Lesser General Public
  40077. - License along with the GNU C Library; if not, write to the Free
  40078. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40079. - 02111-1307 USA. */
  40080. + License along with the GNU C Library; if not, see
  40081. + <http://www.gnu.org/licenses/>. */
  40082. -#include "sigsetops.h"
  40083. +#define __need_NULL
  40084. +#include <stddef.h>
  40085. +#include <signal.h>
  40086. +#include <errno.h>
  40087. /* Return 1 if SIGNO is in SET, 0 if not. */
  40088. int sigismember (const sigset_t *set, int signo)
  40089. diff -Nur uClibc-0.9.33.2/libc/signal/sigjmp.c uClibc-git/libc/signal/sigjmp.c
  40090. --- uClibc-0.9.33.2/libc/signal/sigjmp.c 2012-05-15 09:20:09.000000000 +0200
  40091. +++ uClibc-git/libc/signal/sigjmp.c 2014-06-02 17:40:34.118712560 +0200
  40092. @@ -12,21 +12,18 @@
  40093. Lesser General Public License for more details.
  40094. You should have received a copy of the GNU Lesser General Public
  40095. - License along with the GNU C Library; if not, write to the Free
  40096. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40097. - 02111-1307 USA. */
  40098. + License along with the GNU C Library; if not, see
  40099. + <http://www.gnu.org/licenses/>. */
  40100. +#define __need_NULL
  40101. #include <stddef.h>
  40102. #include <setjmp.h>
  40103. #include <signal.h>
  40104. -#include <libc-internal.h>
  40105. -
  40106. /* This function is called by the `sigsetjmp' macro
  40107. before doing a `__setjmp' on ENV[0].__jmpbuf.
  40108. Always return zero. */
  40109. -int __sigjmp_save (sigjmp_buf env, int savemask) attribute_hidden;
  40110. int __sigjmp_save (sigjmp_buf env, int savemask)
  40111. {
  40112. env[0].__mask_was_saved = (savemask &&
  40113. diff -Nur uClibc-0.9.33.2/libc/signal/signal.c uClibc-git/libc/signal/signal.c
  40114. --- uClibc-0.9.33.2/libc/signal/signal.c 2012-05-15 09:20:09.000000000 +0200
  40115. +++ uClibc-git/libc/signal/signal.c 2014-06-02 17:40:34.118712560 +0200
  40116. @@ -14,15 +14,14 @@
  40117. Lesser General Public License for more details.
  40118. You should have received a copy of the GNU Lesser General Public
  40119. - License along with the GNU C Library; if not, write to the Free
  40120. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40121. - 02111-1307 USA. */
  40122. + License along with the GNU C Library; if not, see
  40123. + <http://www.gnu.org/licenses/>. */
  40124. #include <errno.h>
  40125. #include <signal.h>
  40126. #include <string.h> /* For the real memset prototype. */
  40127. -sigset_t _sigintr attribute_hidden; /* Set by siginterrupt. */
  40128. +sigset_t _sigintr; /* Set by siginterrupt. */
  40129. /* Set the handler for the signal SIG to HANDLER,
  40130. returning the old handler, or SIG_ERR on error. */
  40131. diff -Nur uClibc-0.9.33.2/libc/signal/sigorset.c uClibc-git/libc/signal/sigorset.c
  40132. --- uClibc-0.9.33.2/libc/signal/sigorset.c 2012-05-15 09:20:09.000000000 +0200
  40133. +++ uClibc-git/libc/signal/sigorset.c 2014-06-02 17:40:34.118712560 +0200
  40134. @@ -12,9 +12,8 @@
  40135. Lesser General Public License for more details.
  40136. You should have received a copy of the GNU Lesser General Public
  40137. - License along with the GNU C Library; if not, write to the Free
  40138. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40139. - 02111-1307 USA. */
  40140. + License along with the GNU C Library; if not, see
  40141. + <http://www.gnu.org/licenses/>. */
  40142. #include <errno.h>
  40143. #include <signal.h>
  40144. diff -Nur uClibc-0.9.33.2/libc/signal/sigpause.c uClibc-git/libc/signal/sigpause.c
  40145. --- uClibc-0.9.33.2/libc/signal/sigpause.c 2012-05-15 09:20:09.000000000 +0200
  40146. +++ uClibc-git/libc/signal/sigpause.c 2014-06-02 17:40:34.118712560 +0200
  40147. @@ -13,25 +13,19 @@
  40148. Lesser General Public License for more details.
  40149. You should have received a copy of the GNU Lesser General Public
  40150. - License along with the GNU C Library; if not, write to the Free
  40151. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40152. - 02111-1307 USA. */
  40153. -
  40154. -#define __UCLIBC_HIDE_DEPRECATED__
  40155. -/* psm: need the BSD version of sigpause here */
  40156. -#include <errno.h>
  40157. -#define __FAVOR_BSD
  40158. + License along with the GNU C Library; if not, see
  40159. + <http://www.gnu.org/licenses/>. */
  40160. +
  40161. #include <signal.h>
  40162. -#include <stddef.h> /* For NULL. */
  40163. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  40164. -#include <sysdep-cancel.h>
  40165. -#endif
  40166. +#define __need_NULL
  40167. +#include <stddef.h>
  40168. +#include <cancel.h>
  40169. #include "sigset-cvt-mask.h"
  40170. /* Set the mask of blocked signals to MASK,
  40171. wait for a signal to arrive, and then restore the mask. */
  40172. -int __sigpause (int sig_or_mask, int is_sig)
  40173. +static int __sigpause (int sig_or_mask, int is_sig)
  40174. {
  40175. sigset_t set;
  40176. @@ -49,29 +43,21 @@
  40177. /* Note the sigpause() is a cancellation point. But since we call
  40178. sigsuspend() which itself is a cancellation point we do not have
  40179. to do anything here. */
  40180. - return sigsuspend (&set);
  40181. + /* uClibc note: not true on uClibc, we call the non-cancellable version */
  40182. + return __NC(sigsuspend)(&set);
  40183. }
  40184. -libc_hidden_def(__sigpause)
  40185. -#undef sigpause
  40186. +int __bsd_sigpause(int mask);
  40187. +int __bsd_sigpause(int mask)
  40188. +{
  40189. + return __sigpause(mask, 0);
  40190. +}
  40191. /* We have to provide a default version of this function since the
  40192. standards demand it. The version which is a bit more reasonable is
  40193. the BSD version. So make this the default. */
  40194. -int sigpause (int mask)
  40195. +static int __NC(sigpause)(int sig)
  40196. {
  40197. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  40198. - if (SINGLE_THREAD_P)
  40199. - return __sigpause (mask, 0);
  40200. -
  40201. - int oldtype = LIBC_CANCEL_ASYNC ();
  40202. -
  40203. - int result = __sigpause (mask, 0);
  40204. -
  40205. - LIBC_CANCEL_RESET (oldtype);
  40206. -
  40207. - return result;
  40208. -#else
  40209. - return __sigpause (mask, 0);
  40210. -#endif
  40211. + return __sigpause(sig, 1);
  40212. }
  40213. +CANCELLABLE_SYSCALL(int, sigpause, (int sig), (sig))
  40214. diff -Nur uClibc-0.9.33.2/libc/signal/sigrelse.c uClibc-git/libc/signal/sigrelse.c
  40215. --- uClibc-0.9.33.2/libc/signal/sigrelse.c 2012-05-15 09:20:09.000000000 +0200
  40216. +++ uClibc-git/libc/signal/sigrelse.c 2014-06-02 17:40:34.118712560 +0200
  40217. @@ -14,15 +14,13 @@
  40218. Lesser General Public License for more details.
  40219. You should have received a copy of the GNU Lesser General Public
  40220. - License along with the GNU C Library; if not, write to the Free
  40221. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40222. - 02111-1307 USA. */
  40223. + License along with the GNU C Library; if not, see
  40224. + <http://www.gnu.org/licenses/>. */
  40225. #define __need_NULL
  40226. #include <stddef.h>
  40227. #include <signal.h>
  40228. -
  40229. int sigrelse (int sig)
  40230. {
  40231. sigset_t set;
  40232. diff -Nur uClibc-0.9.33.2/libc/signal/sigset.c uClibc-git/libc/signal/sigset.c
  40233. --- uClibc-0.9.33.2/libc/signal/sigset.c 2012-05-15 09:20:09.000000000 +0200
  40234. +++ uClibc-git/libc/signal/sigset.c 2014-06-02 17:40:34.118712560 +0200
  40235. @@ -12,16 +12,14 @@
  40236. Lesser General Public License for more details.
  40237. You should have received a copy of the GNU Lesser General Public
  40238. - License along with the GNU C Library; if not, write to the Free
  40239. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40240. - 02111-1307 USA. */
  40241. + License along with the GNU C Library; if not, see
  40242. + <http://www.gnu.org/licenses/>. */
  40243. #include <errno.h>
  40244. #define __need_NULL
  40245. #include <stddef.h>
  40246. #include <signal.h>
  40247. -#include <string.h> /* For the real memset prototype. */
  40248. -
  40249. +#include <string.h>
  40250. /* Set the disposition for SIG. */
  40251. __sighandler_t sigset (int sig, __sighandler_t disp)
  40252. diff -Nur uClibc-0.9.33.2/libc/signal/sigset-cvt-mask.h uClibc-git/libc/signal/sigset-cvt-mask.h
  40253. --- uClibc-0.9.33.2/libc/signal/sigset-cvt-mask.h 2012-05-15 09:20:09.000000000 +0200
  40254. +++ uClibc-git/libc/signal/sigset-cvt-mask.h 2014-06-02 17:40:34.118712560 +0200
  40255. @@ -15,9 +15,11 @@
  40256. Lesser General Public License for more details.
  40257. You should have received a copy of the GNU Lesser General Public
  40258. - License along with the GNU C Library; if not, write to the Free
  40259. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40260. - 02111-1307 USA. */
  40261. + License along with the GNU C Library; if not, see
  40262. + <http://www.gnu.org/licenses/>. */
  40263. +
  40264. +#ifndef _SIGSET_CVT_MASK_H
  40265. +#define _SIGSET_CVT_MASK_H
  40266. #include <string.h>
  40267. @@ -36,3 +38,5 @@
  40268. {
  40269. return (unsigned int) set->__val[0];
  40270. }
  40271. +
  40272. +#endif
  40273. diff -Nur uClibc-0.9.33.2/libc/signal/sigsetmask.c uClibc-git/libc/signal/sigsetmask.c
  40274. --- uClibc-0.9.33.2/libc/signal/sigsetmask.c 2012-05-15 09:20:09.000000000 +0200
  40275. +++ uClibc-git/libc/signal/sigsetmask.c 2014-06-02 17:40:34.118712560 +0200
  40276. @@ -12,18 +12,16 @@
  40277. Lesser General Public License for more details.
  40278. You should have received a copy of the GNU Lesser General Public
  40279. - License along with the GNU C Library; if not, write to the Free
  40280. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40281. - 02111-1307 USA. */
  40282. + License along with the GNU C Library; if not, see
  40283. + <http://www.gnu.org/licenses/>. */
  40284. -#define __UCLIBC_HIDE_DEPRECATED__
  40285. -#include <errno.h>
  40286. +/*#define __UCLIBC_HIDE_DEPRECATED__*/
  40287. #include <signal.h>
  40288. #include "sigset-cvt-mask.h"
  40289. /* Set the mask of blocked signals to MASK, returning the old mask. */
  40290. -int
  40291. +static int
  40292. sigsetmask (int mask)
  40293. {
  40294. sigset_t set, oset;
  40295. @@ -32,4 +30,3 @@
  40296. sigprocmask (SIG_SETMASK, &set, &oset); /* can't fail */
  40297. return sigset_get_old_mask (&oset);
  40298. }
  40299. -libc_hidden_def(sigsetmask)
  40300. diff -Nur uClibc-0.9.33.2/libc/signal/sigsetops.h uClibc-git/libc/signal/sigsetops.h
  40301. --- uClibc-0.9.33.2/libc/signal/sigsetops.h 2012-05-15 09:20:09.000000000 +0200
  40302. +++ uClibc-git/libc/signal/sigsetops.h 1970-01-01 01:00:00.000000000 +0100
  40303. @@ -1,33 +0,0 @@
  40304. -/* Copyright (C) 1991, 1995, 1996 Free Software Foundation, Inc.
  40305. - This file is part of the GNU C Library.
  40306. -
  40307. - The GNU C Library is free software; you can redistribute it and/or
  40308. - modify it under the terms of the GNU Lesser General Public
  40309. - License as published by the Free Software Foundation; either
  40310. - version 2.1 of the License, or (at your option) any later version.
  40311. -
  40312. - The GNU C Library is distributed in the hope that it will be useful,
  40313. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  40314. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  40315. - Lesser General Public License for more details.
  40316. -
  40317. - You should have received a copy of the GNU Lesser General Public
  40318. - License along with the GNU C Library; if not, write to the Free
  40319. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40320. - 02111-1307 USA. */
  40321. -
  40322. -/* Definitions relevant to functions that operate on `sigset_t's. */
  40323. -
  40324. -#include <errno.h>
  40325. -#include <signal.h>
  40326. -#include <string.h>
  40327. -
  40328. -#define BITS (_NSIG - 1)
  40329. -#define ELT(signo) (((signo) - 1) / BITS)
  40330. -#define MASK(signo) (1 << (((signo) - 1) % BITS))
  40331. -
  40332. -#undef sigemptyset
  40333. -#undef sigfillset
  40334. -#undef sigaddset
  40335. -#undef sigdelset
  40336. -#undef sigismember
  40337. diff -Nur uClibc-0.9.33.2/libc/signal/sigwait.c uClibc-git/libc/signal/sigwait.c
  40338. --- uClibc-0.9.33.2/libc/signal/sigwait.c 2012-05-15 09:20:09.000000000 +0200
  40339. +++ uClibc-git/libc/signal/sigwait.c 2014-06-02 17:40:34.118712560 +0200
  40340. @@ -15,96 +15,42 @@
  40341. * Lesser General Public License for more details.
  40342. *
  40343. * You should have received a copy of the GNU Lesser General Public
  40344. - * License along with the GNU C Library; if not, write to the Free
  40345. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40346. - * 02111-1307 USA. */
  40347. -
  40348. -#include <errno.h>
  40349. + * License along with the GNU C Library; see the file COPYING.LIB. If
  40350. + * not, see <http://www.gnu.org/licenses/>.
  40351. + */
  40352. +
  40353. +#define __need_NULL
  40354. +#include <stddef.h>
  40355. +#include <sys/syscall.h>
  40356. #include <signal.h>
  40357. -#include <string.h>
  40358. -#include <unistd.h>
  40359. +#include <cancel.h>
  40360. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  40361. -# include <sysdep-cancel.h>
  40362. +#if defined __NR_rt_sigtimedwait && defined __UCLIBC_HAS_REALTIME__
  40363. -# ifdef __NR_rt_sigtimedwait
  40364. +#include <string.h>
  40365. /* Return any pending signal or wait for one for the given time. */
  40366. -static int do_sigwait(const sigset_t *set, int *sig)
  40367. +static int __NC(sigwait)(const sigset_t *set, int *sig)
  40368. {
  40369. int ret;
  40370. -# ifdef SIGCANCEL
  40371. - sigset_t tmpset;
  40372. - if (set != NULL
  40373. - && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
  40374. -# ifdef SIGSETXID
  40375. - || __builtin_expect (__sigismember (set, SIGSETXID), 0)
  40376. -# endif
  40377. - ))
  40378. - {
  40379. - /* Create a temporary mask without the bit for SIGCANCEL set. */
  40380. - // We are not copying more than we have to.
  40381. - memcpy(&tmpset, set, _NSIG / 8);
  40382. - __sigdelset(&tmpset, SIGCANCEL);
  40383. -# ifdef SIGSETXID
  40384. - __sigdelset(&tmpset, SIGSETXID);
  40385. -# endif
  40386. - set = &tmpset;
  40387. - }
  40388. -# endif
  40389. -
  40390. - /* XXX The size argument hopefully will have to be changed to the
  40391. - real size of the user-level sigset_t. */
  40392. - INTERNAL_SYSCALL_DECL(err);
  40393. do
  40394. - ret = INTERNAL_SYSCALL (rt_sigtimedwait, err, 4, set, NULL,
  40395. - NULL, _NSIG / 8);
  40396. - while (INTERNAL_SYSCALL_ERROR_P (ret, err)
  40397. - && INTERNAL_SYSCALL_ERRNO (ret, err) == EINTR);
  40398. - if (! INTERNAL_SYSCALL_ERROR_P (ret, err))
  40399. - {
  40400. + /* we might as well use sigtimedwait and do not care about cancellation */
  40401. + ret = __NC(sigtimedwait)(set, NULL, NULL);
  40402. + while (ret == -1 && errno == EINTR);
  40403. + if (ret != -1) {
  40404. *sig = ret;
  40405. ret = 0;
  40406. - }
  40407. -else
  40408. - ret = INTERNAL_SYSCALL_ERRNO (ret, err);
  40409. + } else
  40410. + ret = errno;
  40411. return ret;
  40412. }
  40413. -int sigwait (const sigset_t *set, int *sig)
  40414. -{
  40415. - if(SINGLE_THREAD_P)
  40416. - return do_sigwait(set, sig);
  40417. -
  40418. - int oldtype = LIBC_CANCEL_ASYNC();
  40419. -
  40420. - int result = do_sigwait(set, sig);
  40421. +#else /* __NR_rt_sigtimedwait */
  40422. - LIBC_CANCEL_RESET(oldtype);
  40423. -
  40424. - return result;
  40425. -}
  40426. -# else /* __NR_rt_sigtimedwait */
  40427. -# error We must have rt_sigtimedwait defined!!!
  40428. -# endif
  40429. -#else /* __UCLIBC_HAS_THREADS_NATIVE__ */
  40430. -
  40431. -# if defined __UCLIBC_HAS_REALTIME__
  40432. -
  40433. -int sigwait (const sigset_t *set, int *sig)
  40434. -{
  40435. - int ret = 1;
  40436. - if ((ret = sigwaitinfo(set, NULL)) != -1) {
  40437. - *sig = ret;
  40438. - return 0;
  40439. - }
  40440. - return 1;
  40441. -}
  40442. -
  40443. -# else /* __UCLIBC_HAS_REALTIME__ */
  40444. /* variant without REALTIME extensions */
  40445. +#include <unistd.h> /* smallint */
  40446. static smallint was_sig; /* obviously not thread-safe */
  40447. @@ -113,7 +59,7 @@
  40448. was_sig = sig;
  40449. }
  40450. -int sigwait (const sigset_t *set, int *sig)
  40451. +static int __NC(sigwait)(const sigset_t *set, int *sig)
  40452. {
  40453. sigset_t tmp_mask;
  40454. struct sigaction saved[NSIG];
  40455. @@ -147,7 +93,7 @@
  40456. }
  40457. /* Now we can wait for signals. */
  40458. - sigsuspend (&tmp_mask);
  40459. + __NC(sigsuspend)(&tmp_mask);
  40460. restore_handler:
  40461. save_errno = errno;
  40462. @@ -163,5 +109,6 @@
  40463. *sig = was_sig;
  40464. return was_sig == -1 ? -1 : 0;
  40465. }
  40466. -# endif /* __UCLIBC_HAS_REALTIME__ */
  40467. -#endif /* __UCLIBC_HAS_THREADS_NATIVE__ */
  40468. +#endif /* __NR_rt_sigtimedwait */
  40469. +
  40470. +CANCELLABLE_SYSCALL(int, sigwait, (const sigset_t *set, int *sig), (set, sig))
  40471. diff -Nur uClibc-0.9.33.2/libc/signal/sysv_signal.c uClibc-git/libc/signal/sysv_signal.c
  40472. --- uClibc-0.9.33.2/libc/signal/sysv_signal.c 2012-05-15 09:20:09.000000000 +0200
  40473. +++ uClibc-git/libc/signal/sysv_signal.c 2014-06-02 17:40:34.118712560 +0200
  40474. @@ -12,14 +12,11 @@
  40475. Lesser General Public License for more details.
  40476. You should have received a copy of the GNU Lesser General Public
  40477. - License along with the GNU C Library; if not, write to the Free
  40478. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  40479. - 02111-1307 USA. */
  40480. + License along with the GNU C Library; if not, see
  40481. + <http://www.gnu.org/licenses/>. */
  40482. #include <errno.h>
  40483. #include <signal.h>
  40484. -#include <string.h> /* For the real memset prototype. */
  40485. -
  40486. /* Tolerate non-threads versions of Posix */
  40487. #ifndef SA_ONESHOT
  40488. diff -Nur uClibc-0.9.33.2/libc/stdio/_fpmaxtostr.c uClibc-git/libc/stdio/_fpmaxtostr.c
  40489. --- uClibc-0.9.33.2/libc/stdio/_fpmaxtostr.c 2012-05-15 09:20:09.000000000 +0200
  40490. +++ uClibc-git/libc/stdio/_fpmaxtostr.c 2014-06-02 17:40:34.118712560 +0200
  40491. @@ -1,6 +1,7 @@
  40492. -/* Copyright (C) 2004 Manuel Novoa III <mjn3@codepoet.org>
  40493. +/*
  40494. + * Copyright (C) 2000,2001,2003,2004 Manuel Novoa III <mjn3@codepoet.org>
  40495. *
  40496. - * GNU Library General Public License (LGPL) version 2 or later.
  40497. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  40498. *
  40499. * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details.
  40500. */
  40501. @@ -9,15 +10,9 @@
  40502. #include <printf.h>
  40503. #include <float.h>
  40504. #include <locale.h>
  40505. -#include <bits/uClibc_fpmax.h>
  40506. +#include "_fpmaxtostr.h"
  40507. -
  40508. -typedef size_t (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len,
  40509. - intptr_t buf);
  40510. -
  40511. -
  40512. -/* Copyright (C) 2000, 2001, 2003 Manuel Novoa III
  40513. - *
  40514. +/*
  40515. * Function:
  40516. *
  40517. * ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
  40518. @@ -40,7 +35,6 @@
  40519. * It should also be fairly portable, as no assumptions are made about the
  40520. * bit-layout of doubles. Of course, that does make it less efficient than
  40521. * it could be.
  40522. - *
  40523. */
  40524. /*****************************************************************************/
  40525. @@ -67,9 +61,6 @@
  40526. #define NUM_HEX_DIGITS ((FPMAX_MANT_DIG + 3)/ 4)
  40527. -/* WARNING: Adjust _fp_out_wide() below if this changes! */
  40528. -/* With 32 bit ints, we can get 9 decimal digits per block. */
  40529. -#define DIGITS_PER_BLOCK 9
  40530. #define HEX_DIGITS_PER_BLOCK 8
  40531. /* Maximum number of subcases to output double is...
  40532. @@ -87,15 +78,9 @@
  40533. /*****************************************************************************/
  40534. -#define NUM_DIGIT_BLOCKS ((DECIMAL_DIG+DIGITS_PER_BLOCK-1)/DIGITS_PER_BLOCK)
  40535. #define NUM_HEX_DIGIT_BLOCKS \
  40536. ((NUM_HEX_DIGITS+HEX_DIGITS_PER_BLOCK-1)/HEX_DIGITS_PER_BLOCK)
  40537. -/* WARNING: Adjust _fp_out_wide() below if this changes! */
  40538. -
  40539. -/* extra space for '-', '.', 'e+###', and nul */
  40540. -#define BUF_SIZE ( 3 + NUM_DIGIT_BLOCKS * DIGITS_PER_BLOCK )
  40541. -
  40542. /*****************************************************************************/
  40543. static const char fmt[] = "inf\0INF\0nan\0NAN\0.\0,";
  40544. @@ -200,8 +185,6 @@
  40545. #define FPO_STR_PREC 'p'
  40546. ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
  40547. - __fp_outfunc_t fp_outfunc) attribute_hidden;
  40548. -ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
  40549. __fp_outfunc_t fp_outfunc)
  40550. {
  40551. #ifdef __UCLIBC_HAS_HEXADECIMAL_FLOATS__
  40552. @@ -219,8 +202,8 @@
  40553. #ifdef __UCLIBC_HAS_GLIBC_DIGIT_GROUPING__
  40554. int num_groups = 0;
  40555. int initial_group; /* This does not need to be initialized. */
  40556. - int tslen; /* This does not need to be initialized. */
  40557. - int nblk2; /* This does not need to be initialized. */
  40558. + int tslen; /* This does not need to be initialized. */
  40559. + int nblk2; /* This does not need to be initialized. */
  40560. const char *ts; /* This does not need to be initialized. */
  40561. #endif /* __UCLIBC_HAS_GLIBC_DIGIT_GROUPING__ */
  40562. int round, o_exp;
  40563. diff -Nur uClibc-0.9.33.2/libc/stdio/_fpmaxtostr.h uClibc-git/libc/stdio/_fpmaxtostr.h
  40564. --- uClibc-0.9.33.2/libc/stdio/_fpmaxtostr.h 1970-01-01 01:00:00.000000000 +0100
  40565. +++ uClibc-git/libc/stdio/_fpmaxtostr.h 2014-06-02 17:40:34.118712560 +0200
  40566. @@ -0,0 +1,49 @@
  40567. +/* vi: set sw=4 ts=4: */
  40568. +/*
  40569. + * Copyright (C) 2000,2001,2003,2004 Manuel Novoa III <mjn3@codepoet.org>
  40570. + *
  40571. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  40572. + *
  40573. + * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details.
  40574. + */
  40575. +
  40576. +#ifndef _FPMAXTOSTR_H
  40577. +#define _FPMAXTOSTR_H 1
  40578. +
  40579. +#include <features.h>
  40580. +#ifdef __UCLIBC_HAS_FLOATS__
  40581. +
  40582. +#define __need_size_t
  40583. +#include <stddef.h>
  40584. +#include <stdint.h>
  40585. +#include <stdio.h>
  40586. +#include <printf.h>
  40587. +#include <sys/types.h>
  40588. +#include <float.h>
  40589. +#include <bits/uClibc_fpmax.h>
  40590. +
  40591. +/* WARNING: Adjust _fp_out_wide() in _vfprintf.c if this changes! */
  40592. +/* With 32 bit ints, we can get 9 decimal digits per block. */
  40593. +#define DIGITS_PER_BLOCK 9
  40594. +
  40595. +#define NUM_DIGIT_BLOCKS ((DECIMAL_DIG+DIGITS_PER_BLOCK-1)/DIGITS_PER_BLOCK)
  40596. +
  40597. +/* WARNING: Adjust _fp_out_wide() in _vfprintf.c if this changes! */
  40598. +/* extra space for '-', '.', 'e+###', and nul */
  40599. +#define BUF_SIZE ( 3 + NUM_DIGIT_BLOCKS * DIGITS_PER_BLOCK )
  40600. +
  40601. +/* psm: why do these internals differ? */
  40602. +#ifdef __USE_OLD_VFPRINTF__
  40603. +typedef void (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len, intptr_t buf);
  40604. +
  40605. +extern size_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
  40606. + __fp_outfunc_t fp_outfunc) attribute_hidden;
  40607. +#else
  40608. +typedef size_t (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len, intptr_t buf);
  40609. +
  40610. +extern ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
  40611. + __fp_outfunc_t fp_outfunc) attribute_hidden;
  40612. +#endif
  40613. +
  40614. +#endif /* __UCLIBC_HAS_FLOATS__ */
  40615. +#endif /* _FPMAXTOSTR_H */
  40616. diff -Nur uClibc-0.9.33.2/libc/stdio/fputc.c uClibc-git/libc/stdio/fputc.c
  40617. --- uClibc-0.9.33.2/libc/stdio/fputc.c 2012-05-15 09:20:09.000000000 +0200
  40618. +++ uClibc-git/libc/stdio/fputc.c 2014-06-02 17:40:34.122712582 +0200
  40619. @@ -72,16 +72,13 @@
  40620. libc_hidden_def(__fputc_unlocked)
  40621. strong_alias(__fputc_unlocked,fputc_unlocked)
  40622. -libc_hidden_def(fputc_unlocked)
  40623. strong_alias(__fputc_unlocked,putc_unlocked)
  40624. -libc_hidden_def(putc_unlocked)
  40625. #ifndef __UCLIBC_HAS_THREADS__
  40626. strong_alias(__fputc_unlocked,fputc)
  40627. libc_hidden_def(fputc)
  40628. strong_alias(__fputc_unlocked,putc)
  40629. -libc_hidden_def(putc)
  40630. #endif
  40631. #elif defined __UCLIBC_HAS_THREADS__
  40632. @@ -101,6 +98,5 @@
  40633. libc_hidden_def(fputc)
  40634. strong_alias(fputc,putc)
  40635. -libc_hidden_def(putc)
  40636. #endif
  40637. diff -Nur uClibc-0.9.33.2/libc/stdio/fputwc.c uClibc-git/libc/stdio/fputwc.c
  40638. --- uClibc-0.9.33.2/libc/stdio/fputwc.c 2012-05-15 09:20:09.000000000 +0200
  40639. +++ uClibc-git/libc/stdio/fputwc.c 2014-06-02 17:40:34.122712582 +0200
  40640. @@ -19,6 +19,7 @@
  40641. strong_alias(fputwc_unlocked,putwc_unlocked)
  40642. #ifndef __UCLIBC_HAS_THREADS__
  40643. strong_alias(fputwc_unlocked,fputwc)
  40644. +libc_hidden_def(fputwc)
  40645. strong_alias(fputwc_unlocked,putwc)
  40646. #endif
  40647. @@ -37,6 +38,7 @@
  40648. return retval;
  40649. }
  40650. +libc_hidden_def(fputwc)
  40651. strong_alias(fputwc,putwc)
  40652. diff -Nur uClibc-0.9.33.2/libc/stdio/fseeko.c uClibc-git/libc/stdio/fseeko.c
  40653. --- uClibc-0.9.33.2/libc/stdio/fseeko.c 2012-05-15 09:20:09.000000000 +0200
  40654. +++ uClibc-git/libc/stdio/fseeko.c 2014-06-02 17:40:34.126712605 +0200
  40655. @@ -77,5 +77,5 @@
  40656. libc_hidden_def(fseeko64)
  40657. #else
  40658. libc_hidden_def(fseek)
  40659. -strong_alias(fseek,fseeko)
  40660. +strong_alias_untyped(fseek,fseeko)
  40661. #endif
  40662. diff -Nur uClibc-0.9.33.2/libc/stdio/ftello.c uClibc-git/libc/stdio/ftello.c
  40663. --- uClibc-0.9.33.2/libc/stdio/ftello.c 2012-05-15 09:20:09.000000000 +0200
  40664. +++ uClibc-git/libc/stdio/ftello.c 2014-06-02 17:40:34.126712605 +0200
  40665. @@ -53,5 +53,5 @@
  40666. libc_hidden_def(ftello64)
  40667. #else
  40668. libc_hidden_def(ftell)
  40669. -strong_alias(ftell,ftello)
  40670. +strong_alias_untyped(ftell,ftello)
  40671. #endif
  40672. diff -Nur uClibc-0.9.33.2/libc/stdio/_load_inttype.c uClibc-git/libc/stdio/_load_inttype.c
  40673. --- uClibc-0.9.33.2/libc/stdio/_load_inttype.c 2012-05-15 09:20:09.000000000 +0200
  40674. +++ uClibc-git/libc/stdio/_load_inttype.c 2014-06-02 17:40:34.118712560 +0200
  40675. @@ -8,7 +8,6 @@
  40676. #include "_stdio.h"
  40677. #include <printf.h>
  40678. -uintmax_t _load_inttype(int desttype, register const void *src, int uflag) attribute_hidden;
  40679. uintmax_t _load_inttype(int desttype, register const void *src, int uflag)
  40680. {
  40681. if (uflag >= 0) { /* unsigned */
  40682. diff -Nur uClibc-0.9.33.2/libc/stdio/Makefile.in uClibc-git/libc/stdio/Makefile.in
  40683. --- uClibc-0.9.33.2/libc/stdio/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  40684. +++ uClibc-git/libc/stdio/Makefile.in 2014-06-02 17:40:34.118712560 +0200
  40685. @@ -11,7 +11,7 @@
  40686. subdirs += libc/stdio
  40687. # SUSv3 functions
  40688. -CSRC := \
  40689. +CSRC-y := \
  40690. fclose.c fcloseall.c fdopen.c fgetpos.c fopen.c freopen.c \
  40691. fseeko.c fsetpos.c ftello.c getdelim.c getline.c gets.c getw.c \
  40692. perror.c puts.c putw.c remove.c rewind.c setbuf.c setbuffer.c \
  40693. @@ -19,92 +19,80 @@
  40694. printf.c vprintf.c vsprintf.c fprintf.c snprintf.c dprintf.c \
  40695. asprintf.c sprintf.c vasprintf.c vdprintf.c vsnprintf.c \
  40696. tmpfile.c popen.c ctermid.c
  40697. +CSRC-$(UCLIBC_HAS_LFS) += fgetpos64.c fopen64.c freopen64.c \
  40698. + fseeko64.c fsetpos64.c ftello64.c
  40699. +CSRC-$(UCLIBC_SUSV4_LEGACY) += tmpnam.c tmpnam_r.c tempnam.c
  40700. -ifeq ($(UCLIBC_HAS_LFS),y)
  40701. -CSRC += fgetpos64.c fopen64.c freopen64.c fseeko64.c fsetpos64.c ftello64.c
  40702. -endif
  40703. -ifeq ($(UCLIBC_SUSV4_LEGACY),y)
  40704. -CSRC += tmpnam.c tmpnam_r.c tempnam.c
  40705. -endif
  40706. -
  40707. -# getc -> alias for fgetc
  40708. -# putc -> alias for fputc
  40709. -# rename is a syscall
  40710. -
  40711. -# Implementation support functions
  40712. -CSRC += \
  40713. +# internal support functions
  40714. +CSRC-y += \
  40715. _READ.c _WRITE.c _adjust_pos.c _fopen.c _fwrite.c \
  40716. _rfill.c _stdio.c _trans2r.c _trans2w.c _wcommit.c \
  40717. _cs_funcs.c _load_inttype.c _store_inttype.c _uintmaxtostr.c
  40718. -ifeq ($(UCLIBC_HAS_FLOATS),y)
  40719. -CSRC += _fpmaxtostr.c
  40720. -endif
  40721. +CSRC-$(UCLIBC_HAS_FLOATS) += _fpmaxtostr.c
  40722. # stdio_ext.h functions
  40723. -CSRC += \
  40724. +CSRC-y += \
  40725. __fbufsize.c __flbf.c __fpending.c __fpurge.c __freadable.c \
  40726. __freading.c __fsetlocking.c __fwritable.c __fwriting.c _flushlbf.c
  40727. # Other glibc extensions
  40728. -ifeq ($(UCLIBC_HAS_GLIBC_CUSTOM_STREAMS),y)
  40729. -CSRC += fopencookie.c fmemopen.c open_memstream.c
  40730. -endif
  40731. +CSRC-$(UCLIBC_HAS_GLIBC_CUSTOM_STREAMS) += fopencookie.c fmemopen.c \
  40732. + open_memstream.c
  40733. # pthread functions
  40734. -CSRC += flockfile.c ftrylockfile.c funlockfile.c
  40735. +CSRC-y += flockfile.c ftrylockfile.c funlockfile.c
  40736. # Functions with unlocked versions
  40737. -CUSRC := \
  40738. +CUSRC-y := \
  40739. clearerr.c feof.c ferror.c fflush.c fgetc.c fgets.c fileno.c \
  40740. fputc.c fputs.c fread.c fwrite.c getchar.c putchar.c
  40741. # getc_unlocked -> alias for fgetc_unlocked
  40742. # putc_unlocked -> alias for fputc_unlocked
  40743. # vfprintf and support functions
  40744. -ifneq ($(USE_OLD_VFPRINTF),y)
  40745. +ifeq ($(USE_OLD_VFPRINTF),y)
  40746. +VF_CSRC := old_vfprintf.c
  40747. +else
  40748. +# multi source _vfprintf.c
  40749. VF_CSRC := \
  40750. vfprintf.c \
  40751. _vfprintf_internal.c \
  40752. _ppfs_init.c _ppfs_prepargs.c _ppfs_setargs.c _ppfs_parsespec.c \
  40753. register_printf_function.c parse_printf_format.c
  40754. -CSRC += $(VF_CSRC)
  40755. -else
  40756. -CSRC += old_vfprintf.c
  40757. endif
  40758. +CSRC-y += $(VF_CSRC)
  40759. # vfscanf and support functions plus other *scanf funcs
  40760. -CSRC += \
  40761. +CSRC-y += \
  40762. vfscanf.c __scan_cookie.c __psfs_parse_spec.c __psfs_do_numeric.c \
  40763. scanf.c sscanf.c fscanf.c vscanf.c vsscanf.c
  40764. -ifeq ($(UCLIBC_HAS_WCHAR),y)
  40765. -CSRC += _wfwrite.c fwprintf.c swprintf.c vswprintf.c vwprintf.c wprintf.c \
  40766. +CSRC-$(UCLIBC_HAS_WCHAR) += \
  40767. + _wfwrite.c fwprintf.c swprintf.c vswprintf.c vwprintf.c wprintf.c \
  40768. fwide.c ungetwc.c
  40769. -CUSRC += fgetwc.c getwchar.c fgetws.c fputwc.c putwchar.c fputws.c
  40770. +CUSRC-$(UCLIBC_HAS_WCHAR) += \
  40771. + fgetwc.c getwchar.c fgetws.c fputwc.c putwchar.c fputws.c
  40772. # getwc (fgetwc alias) getwc_unlocked (fgetwc_unlocked alias)
  40773. # putwc (fputwc alias) putwc_unlocked (fputwc_unlocked alias)
  40774. -CSRC += vfwprintf.c _vfwprintf_internal.c
  40775. -CSRC += wscanf.c swscanf.c fwscanf.c vwscanf.c vswscanf.c vfwscanf.c
  40776. -endif
  40777. -
  40778. -CUSRC_UNLOCKED := $(patsubst %.c,%_unlocked.c,$(CUSRC))
  40779. +CSRC-$(UCLIBC_HAS_WCHAR) += vfwprintf.c _vfwprintf_internal.c \
  40780. + wscanf.c swscanf.c fwscanf.c vwscanf.c vswscanf.c vfwscanf.c
  40781. -CSRC += $(CUSRC) $(CUSRC_UNLOCKED)
  40782. +CUSRC_UNLOCKED := $(patsubst %.c,%_unlocked.c,$(CUSRC-y))
  40783. +CSRC-y += $(CUSRC-y) $(CUSRC_UNLOCKED)
  40784. STDIO_DIR := $(top_srcdir)libc/stdio
  40785. STDIO_OUT := $(top_builddir)libc/stdio
  40786. -STDIO_SRC := $(patsubst %.c,$(STDIO_DIR)/%.c,$(CSRC))
  40787. -STDIO_OBJ := $(patsubst %.c,$(STDIO_OUT)/%.o,$(CSRC))
  40788. +STDIO_SRC := $(patsubst %.c,$(STDIO_DIR)/%.c,$(CSRC-y))
  40789. +STDIO_OBJ := $(patsubst %.c,$(STDIO_OUT)/%.o,$(CSRC-y))
  40790. libc-y += $(STDIO_OBJ)
  40791. ifneq ($(USE_OLD_VFPRINTF),y)
  40792. libc-nomulti-y += $(patsubst %.c,$(STDIO_OUT)/%.o,$(VF_CSRC))
  40793. endif
  40794. -ifeq ($(UCLIBC_HAS_WCHAR),y)
  40795. -libc-nomulti-y += $(STDIO_OUT)/vfwprintf.o $(STDIO_OUT)/vfwscanf.o
  40796. -endif
  40797. +libc-nomulti-$(UCLIBC_HAS_WCHAR) += $(STDIO_OUT)/vfwprintf.o \
  40798. + $(STDIO_OUT)/vfwscanf.o
  40799. objclean-y += CLEAN_libc/stdio
  40800. diff -Nur uClibc-0.9.33.2/libc/stdio/old_vfprintf.c uClibc-git/libc/stdio/old_vfprintf.c
  40801. --- uClibc-0.9.33.2/libc/stdio/old_vfprintf.c 2012-05-15 09:20:09.000000000 +0200
  40802. +++ uClibc-git/libc/stdio/old_vfprintf.c 2014-06-02 17:40:34.126712605 +0200
  40803. @@ -127,9 +127,7 @@
  40804. /**************************************************************************/
  40805. -#define _ISOC99_SOURCE /* for ULLONG primarily... */
  40806. #include "_stdio.h"
  40807. -/* #include <stdio.h> */
  40808. #include <stdarg.h>
  40809. #include <limits.h>
  40810. #include <stdint.h>
  40811. @@ -137,14 +135,9 @@
  40812. #include <errno.h>
  40813. #include <ctype.h>
  40814. #include <bits/uClibc_uintmaxtostr.h>
  40815. -#include <printf.h>
  40816. -#ifdef __UCLIBC_HAS_THREADS__
  40817. -#include <pthread.h>
  40818. -#endif /* __UCLIBC_HAS_THREADS__ */
  40819. +#include "_fpmaxtostr.h"
  40820. -
  40821. -/* #undef __UCLIBC_HAS_FLOATS__ */
  40822. /* #undef WANT_FLOAT_ERROR */
  40823. /* #define WANT_FLOAT_ERROR 1 */
  40824. @@ -208,14 +201,6 @@
  40825. #endif /* __STDIO_BUFFERS */
  40826. #ifdef __UCLIBC_HAS_FLOATS__
  40827. -#include <float.h>
  40828. -#include <bits/uClibc_fpmax.h>
  40829. -
  40830. -typedef void (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len,
  40831. - intptr_t buf);
  40832. -
  40833. -extern size_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
  40834. - __fp_outfunc_t fp_outfunc) attribute_hidden;
  40835. static void _charpad(FILE * __restrict stream, int padchar, size_t numpad)
  40836. {
  40837. @@ -259,9 +244,6 @@
  40838. /**********************************************************************/
  40839. -extern void _store_inttype(void *dest, int desttype, uintmax_t val) attribute_hidden;
  40840. -extern uintmax_t _load_inttype(int desttype, const void *src, int uflag) attribute_hidden;
  40841. -
  40842. /*
  40843. * In order to ease translation to what arginfo and _print_info._flags expect,
  40844. * we map: 0:int 1:char 2:longlong 4:long 8:short
  40845. diff -Nur uClibc-0.9.33.2/libc/stdio/open_memstream.c uClibc-git/libc/stdio/open_memstream.c
  40846. --- uClibc-0.9.33.2/libc/stdio/open_memstream.c 2012-05-15 09:20:09.000000000 +0200
  40847. +++ uClibc-git/libc/stdio/open_memstream.c 2014-06-02 17:40:34.126712605 +0200
  40848. @@ -128,7 +128,7 @@
  40849. * (ie replace the FILE buffer with the cookie buffer and update FILE bufstart,
  40850. * etc. whenever we seek). */
  40851. -FILE *open_memstream(char **__restrict bufloc, size_t *__restrict sizeloc)
  40852. +FILE *open_memstream(char **bufloc, size_t *sizeloc)
  40853. {
  40854. register __oms_cookie *cookie;
  40855. register FILE *fp;
  40856. diff -Nur uClibc-0.9.33.2/libc/stdio/popen.c uClibc-git/libc/stdio/popen.c
  40857. --- uClibc-0.9.33.2/libc/stdio/popen.c 2012-05-15 09:20:09.000000000 +0200
  40858. +++ uClibc-git/libc/stdio/popen.c 2014-06-02 17:40:34.126712605 +0200
  40859. @@ -26,15 +26,6 @@
  40860. #warning "hmm... susv3 says Pipe streams are byte-oriented."
  40861. #endif /* __UCLIBC_MJN3_ONLY__ */
  40862. -
  40863. -/* uClinux-2.0 has vfork, but Linux 2.0 doesn't */
  40864. -#include <sys/syscall.h>
  40865. -#if ! defined __NR_vfork
  40866. -# define vfork fork
  40867. -# define VFORK_LOCK ((void) 0)
  40868. -# define VFORK_UNLOCK ((void) 0)
  40869. -#endif
  40870. -
  40871. #ifndef VFORK_LOCK
  40872. __UCLIBC_MUTEX_STATIC(mylock, PTHREAD_MUTEX_INITIALIZER);
  40873. # define VFORK_LOCK __UCLIBC_MUTEX_LOCK(mylock)
  40874. @@ -138,7 +129,7 @@
  40875. int pclose(FILE *stream)
  40876. {
  40877. struct popen_list_item *p;
  40878. - int stat;
  40879. + int status;
  40880. pid_t pid;
  40881. /* First, find the list entry corresponding to stream and remove it
  40882. @@ -173,8 +164,8 @@
  40883. /* SUSv3 specificly requires that pclose not return before the child
  40884. * terminates, in order to disallow pclose from returning on EINTR. */
  40885. do {
  40886. - if (waitpid(pid, &stat, 0) >= 0) {
  40887. - return stat;
  40888. + if (waitpid(pid, &status, 0) >= 0) {
  40889. + return status;
  40890. }
  40891. if (errno != EINTR) {
  40892. break;
  40893. diff -Nur uClibc-0.9.33.2/libc/stdio/putwchar.c uClibc-git/libc/stdio/putwchar.c
  40894. --- uClibc-0.9.33.2/libc/stdio/putwchar.c 2012-05-15 09:20:09.000000000 +0200
  40895. +++ uClibc-git/libc/stdio/putwchar.c 2014-06-02 17:40:34.126712605 +0200
  40896. @@ -9,7 +9,6 @@
  40897. #ifdef __DO_UNLOCKED
  40898. -
  40899. wint_t putwchar_unlocked(wchar_t wc)
  40900. {
  40901. return fputwc_unlocked(wc, stdout);
  40902. @@ -21,11 +20,9 @@
  40903. #elif defined __UCLIBC_HAS_THREADS__
  40904. -/* psm: should this be fputwc? */
  40905. -
  40906. wint_t putwchar(wchar_t wc)
  40907. {
  40908. - return fputc(wc, stdout);
  40909. + return fputwc(wc, stdout);
  40910. }
  40911. #endif
  40912. diff -Nur uClibc-0.9.33.2/libc/stdio/_scanf.c uClibc-git/libc/stdio/_scanf.c
  40913. --- uClibc-0.9.33.2/libc/stdio/_scanf.c 2012-05-15 09:20:09.000000000 +0200
  40914. +++ uClibc-git/libc/stdio/_scanf.c 2014-06-02 17:40:34.122712582 +0200
  40915. @@ -11,8 +11,8 @@
  40916. * Library General Public License for more details.
  40917. *
  40918. * You should have received a copy of the GNU Library General Public
  40919. - * License along with this library; if not, write to the Free
  40920. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  40921. + * License along with this library; if not, see
  40922. + * <http://www.gnu.org/licenses/>.
  40923. */
  40924. /* Aug 1, 2003
  40925. @@ -43,7 +43,6 @@
  40926. * standards and from an official C standard defect report.
  40927. */
  40928. -#define _ISOC99_SOURCE /* for LLONG_MAX primarily... */
  40929. #include <features.h>
  40930. #include "_stdio.h"
  40931. #include <stdlib.h>
  40932. @@ -77,14 +76,6 @@
  40933. #include <bits/uClibc_fpmax.h>
  40934. #endif /* __UCLIBC_HAS_FLOATS__ */
  40935. -#ifdef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__
  40936. -#ifdef L_vfscanf
  40937. -/* only emit this once */
  40938. -#warning Forcing undef of __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ until implemented!
  40939. -#endif
  40940. -#undef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__
  40941. -#endif
  40942. -
  40943. #undef __STDIO_HAS_VSSCANF
  40944. #if defined(__STDIO_BUFFERS) || !defined(__UCLIBC_HAS_WCHAR__) || defined(__UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__)
  40945. #define __STDIO_HAS_VSSCANF 1
  40946. @@ -99,8 +90,6 @@
  40947. #endif
  40948. -extern void _store_inttype(void *dest, int desttype, uintmax_t val);
  40949. -
  40950. #if defined(ULLONG_MAX) && (LLONG_MAX > LONG_MAX)
  40951. extern unsigned long long
  40952. @@ -209,7 +198,7 @@
  40953. #ifdef __STDIO_BUFFERS
  40954. -int vsscanf(__const char *sp, __const char *fmt, va_list ap)
  40955. +int vsscanf(const char *sp, const char *fmt, va_list ap)
  40956. {
  40957. FILE f;
  40958. @@ -253,7 +242,7 @@
  40959. #elif !defined(__UCLIBC_HAS_WCHAR__)
  40960. -int vsscanf(__const char *sp, __const char *fmt, va_list ap)
  40961. +int vsscanf(const char *sp, const char *fmt, va_list ap)
  40962. {
  40963. __FILE_vsscanf f;
  40964. @@ -292,7 +281,7 @@
  40965. #elif defined(__UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__)
  40966. -int vsscanf(__const char *sp, __const char *fmt, va_list ap)
  40967. +int vsscanf(const char *sp, const char *fmt, va_list ap)
  40968. {
  40969. FILE *f;
  40970. int rv = EOF;
  40971. @@ -388,9 +377,9 @@
  40972. FILE f;
  40973. f.__bufstart =
  40974. - f.__bufpos = (char *) str;
  40975. + f.__bufpos = (unsigned char *) str;
  40976. f.__bufread =
  40977. - f.__bufend = (char *)(str + wcslen(str));
  40978. + f.__bufend = (unsigned char *)(str + wcslen(str));
  40979. __STDIO_STREAM_DISABLE_GETC(&f);
  40980. __STDIO_STREAM_DISABLE_PUTC(&f);
  40981. @@ -433,18 +422,19 @@
  40982. /* float layout 0123456789012345678901 repeat n for "l[" */
  40983. -#define SPEC_CHARS "npxXoudifFeEgGaACSncs["
  40984. -/* npxXoudif eEgG CS cs[ */
  40985. +#define SPEC_CHARS "npxXoudifFeEgGaACSnmcs["
  40986. +/* npxXoudif eEgG CS cs[ */
  40987. +/* NOTE: the 'm' flag must come before any convs that support it */
  40988. -/* NOTE: Ordering is important! In particular, CONV_LEFTBRACKET
  40989. - * must immediately precede CONV_c. */
  40990. +/* NOTE: Ordering is important! The CONV_{C,S,LEFTBRACKET} must map
  40991. + simply to their lowercase equivalents. */
  40992. enum {
  40993. CONV_n = 0,
  40994. CONV_p,
  40995. CONV_x, CONV_X, CONV_o, CONV_u, CONV_d, CONV_i,
  40996. CONV_f, CONV_F, CONV_e, CONV_E, CONV_g, CONV_G, CONV_a, CONV_A,
  40997. - CONV_C, CONV_S, CONV_LEFTBRACKET, CONV_c, CONV_s, CONV_leftbracket,
  40998. + CONV_C, CONV_S, CONV_LEFTBRACKET, CONV_m, CONV_c, CONV_s, CONV_leftbracket,
  40999. CONV_percent, CONV_whitespace /* not in SPEC_* and no flags */
  41000. };
  41001. @@ -474,7 +464,7 @@
  41002. FLAG_SURPRESS = 0x10, /* MUST BE 1ST!! See DO_FLAGS. */
  41003. FLAG_THOUSANDS = 0x20,
  41004. FLAG_I18N = 0x40, /* only works for d, i, u */
  41005. - FLAG_MALLOC = 0x80, /* only works for s, S, and [ (and l[)*/
  41006. + FLAG_MALLOC = 0x80, /* only works for c, s, S, and [ (and l[)*/
  41007. };
  41008. @@ -491,7 +481,7 @@
  41009. /* fFeEgGaA */ (0x0c|FLAG_SURPRESS|FLAG_THOUSANDS|FLAG_I18N), \
  41010. /* C */ ( 0|FLAG_SURPRESS), \
  41011. /* S and l[ */ ( 0|FLAG_SURPRESS|FLAG_MALLOC), \
  41012. - /* c */ (0x04|FLAG_SURPRESS), \
  41013. + /* c */ (0x04|FLAG_SURPRESS|FLAG_MALLOC), \
  41014. /* s and [ */ (0x04|FLAG_SURPRESS|FLAG_MALLOC), \
  41015. }
  41016. @@ -904,17 +894,17 @@
  41017. if (*psfs->fmt == *p) {
  41018. int p_m_spec_chars = p - spec_chars;
  41019. -#ifdef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__
  41020. -#error implement gnu a flag
  41021. - if ((*p == 'a')
  41022. - && ((psfs->fmt[1] == '[') || ((psfs->fmt[1]|0x20) == 's'))
  41023. - ) { /* Assumes ascii for 's' and 'S' test. */
  41024. - psfs->flags |= FLAG_MALLOC;
  41025. + if (*p == 'm' &&
  41026. + (psfs->fmt[1] == '[' || psfs->fmt[1] == 'c' ||
  41027. + /* Assumes ascii for 's' and 'S' test. */
  41028. + (psfs->fmt[1] | 0x20) == 's'))
  41029. + {
  41030. + if (psfs->store)
  41031. + psfs->flags |= FLAG_MALLOC;
  41032. ++psfs->fmt;
  41033. ++p;
  41034. - continue; /* The related conversions follow 'a'. */
  41035. + continue; /* The related conversions follow 'm'. */
  41036. }
  41037. -#endif /* __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ */
  41038. for (p = spec_ranges; p_m_spec_chars > *p ; ++p) {}
  41039. if (((psfs->dataargtype >> 8) | psfs->flags)
  41040. @@ -928,7 +918,7 @@
  41041. psfs->dataargtype = PA_FLAG_LONG;
  41042. } else if ((p_m_spec_chars >= CONV_c)
  41043. && (psfs->dataargtype & PA_FLAG_LONG)) {
  41044. - p_m_spec_chars -= 3; /* lc -> C, ls -> S, l[ -> ?? */
  41045. + p_m_spec_chars -= CONV_c - CONV_C; /* lc -> C, ls -> S, l[ -> ?? */
  41046. }
  41047. psfs->conv_num = p_m_spec_chars;
  41048. @@ -1265,12 +1255,6 @@
  41049. while (*wf && __isascii(*wf) && (b < buf + sizeof(buf) - 1)) {
  41050. *b++ = *wf++;
  41051. }
  41052. -#ifdef __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__
  41053. -#error this is wrong... we need to ched in __psfs_parse_spec instead since this checks last char in buffer and conversion my have stopped before it.
  41054. - if ((*b == 'a') && ((*wf == '[') || ((*wf|0x20) == 's'))) {
  41055. - goto DONE; /* Spec was excessively long. */
  41056. - }
  41057. -#endif /* __UCLIBC_HAS_SCANF_GLIBC_A_FLAG__ */
  41058. *b = 0;
  41059. if (b == buf) { /* Bad conversion specifier! */
  41060. goto DONE;
  41061. @@ -1390,13 +1374,36 @@
  41062. }
  41063. if (psfs.conv_num == CONV_s) {
  41064. + /* We might have to handle the allocation ourselves */
  41065. + int len;
  41066. + /* With 'm', we actually got a pointer to a pointer */
  41067. + unsigned char **ptr = (void *)b;
  41068. +
  41069. + i = 0;
  41070. + if (psfs.flags & FLAG_MALLOC) {
  41071. + len = 0;
  41072. + b = NULL;
  41073. + } else
  41074. + len = -1;
  41075. +
  41076. /* Yes, believe it or not, a %s conversion can store nuls. */
  41077. while ((__scan_getc(&sc) >= 0) && !isspace(sc.cc)) {
  41078. zero_conversions = 0;
  41079. - *b = sc.cc;
  41080. - b += psfs.store;
  41081. + if (i == len) {
  41082. + /* Pick a size that won't trigger a lot of
  41083. + * mallocs early on ... */
  41084. + len += 256;
  41085. + b = realloc(b, len + 1);
  41086. + }
  41087. + b[i] = sc.cc;
  41088. + i += psfs.store;
  41089. fail = 0;
  41090. }
  41091. +
  41092. + if (psfs.flags & FLAG_MALLOC)
  41093. + *ptr = b;
  41094. + /* The code below takes care of terminating NUL */
  41095. + b += i;
  41096. } else {
  41097. #ifdef __UCLIBC_HAS_WCHAR__
  41098. assert((psfs.conv_num == CONV_LEFTBRACKET) || \
  41099. diff -Nur uClibc-0.9.33.2/libc/stdio/_stdio.c uClibc-git/libc/stdio/_stdio.c
  41100. --- uClibc-0.9.33.2/libc/stdio/_stdio.c 2012-05-15 09:20:09.000000000 +0200
  41101. +++ uClibc-git/libc/stdio/_stdio.c 2014-06-02 17:40:34.122712582 +0200
  41102. @@ -7,7 +7,6 @@
  41103. #include "_stdio.h"
  41104. -
  41105. /* This is pretty much straight from uClibc, but with one important
  41106. * difference.
  41107. *
  41108. @@ -185,7 +184,7 @@
  41109. /**********************************************************************/
  41110. /* We assume here that we are the only remaining thread. */
  41111. -void attribute_hidden _stdio_term(void)
  41112. +void _stdio_term(void)
  41113. {
  41114. #if defined(__STDIO_BUFFERS) || defined(__UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__)
  41115. register FILE *ptr;
  41116. @@ -252,7 +251,7 @@
  41117. }
  41118. #if defined __STDIO_BUFFERS || !defined __UCLIBC__
  41119. -void attribute_hidden _stdio_init(void)
  41120. +void _stdio_init(void)
  41121. {
  41122. #ifdef __STDIO_BUFFERS
  41123. int old_errno = errno;
  41124. @@ -277,10 +276,6 @@
  41125. #error Assumption violated about __MASK_READING and __FLAG_UNGOT
  41126. #endif
  41127. -#ifdef __UCLIBC_HAS_THREADS__
  41128. -#include <pthread.h>
  41129. -#endif
  41130. -
  41131. #ifndef NDEBUG
  41132. void attribute_hidden _stdio_validate_FILE(const FILE *stream)
  41133. diff -Nur uClibc-0.9.33.2/libc/stdio/_stdio.h uClibc-git/libc/stdio/_stdio.h
  41134. --- uClibc-0.9.33.2/libc/stdio/_stdio.h 2012-05-15 09:20:09.000000000 +0200
  41135. +++ uClibc-git/libc/stdio/_stdio.h 2014-06-02 17:40:34.122712582 +0200
  41136. @@ -39,6 +39,9 @@
  41137. #ifdef __UCLIBC_HAS_THREADS__
  41138. +extern void __stdio_init_mutex(__UCLIBC_MUTEX_TYPE *m) attribute_hidden;
  41139. +
  41140. +extern volatile int _stdio_openlist_use_count attribute_hidden; /* _stdio_openlist_del_lock */
  41141. #define __STDIO_OPENLIST_INC_USE \
  41142. do { \
  41143. __STDIO_THREADLOCK_OPENLIST_DEL; \
  41144. @@ -51,6 +54,7 @@
  41145. #define __STDIO_OPENLIST_DEC_USE \
  41146. _stdio_openlist_dec_use()
  41147. +extern int _stdio_openlist_del_count attribute_hidden; /* _stdio_openlist_del_lock */
  41148. #define __STDIO_OPENLIST_INC_DEL_CNT \
  41149. do { \
  41150. __STDIO_THREADLOCK_OPENLIST_DEL; \
  41151. @@ -308,6 +312,9 @@
  41152. extern int __stdio_trans2r_o(FILE *__restrict stream, int oflag) attribute_hidden;
  41153. extern int __stdio_trans2w_o(FILE *__restrict stream, int oflag) attribute_hidden;
  41154. +extern uintmax_t _load_inttype(int desttype, register const void *src, int uflag) attribute_hidden;
  41155. +extern void _store_inttype(void *dest, int desttype, uintmax_t val) attribute_hidden;
  41156. +
  41157. /**********************************************************************/
  41158. #ifdef __STDIO_BUFFERS
  41159. diff -Nur uClibc-0.9.33.2/libc/stdio/_store_inttype.c uClibc-git/libc/stdio/_store_inttype.c
  41160. --- uClibc-0.9.33.2/libc/stdio/_store_inttype.c 2012-05-15 09:20:09.000000000 +0200
  41161. +++ uClibc-git/libc/stdio/_store_inttype.c 2014-06-02 17:40:34.122712582 +0200
  41162. @@ -28,7 +28,6 @@
  41163. /* We assume int may be short or long, but short and long are different. */
  41164. -void _store_inttype(register void *dest, int desttype, uintmax_t val) attribute_hidden;
  41165. void _store_inttype(register void *dest, int desttype, uintmax_t val)
  41166. {
  41167. if (desttype == __PA_FLAG_CHAR) { /* assume char not int */
  41168. diff -Nur uClibc-0.9.33.2/libc/stdio/tempnam.c uClibc-git/libc/stdio/tempnam.c
  41169. --- uClibc-0.9.33.2/libc/stdio/tempnam.c 2012-05-15 09:20:09.000000000 +0200
  41170. +++ uClibc-git/libc/stdio/tempnam.c 2014-06-02 17:40:34.126712605 +0200
  41171. @@ -13,8 +13,7 @@
  41172. You should have received a copy of the GNU Library General Public
  41173. License along with the GNU C Library; see the file COPYING.LIB. If not,
  41174. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  41175. - Boston, MA 02111-1307, USA. */
  41176. + see <http://www.gnu.org/licenses/>. */
  41177. #include <stdio.h>
  41178. #include <string.h>
  41179. diff -Nur uClibc-0.9.33.2/libc/stdio/tmpfile.c uClibc-git/libc/stdio/tmpfile.c
  41180. --- uClibc-0.9.33.2/libc/stdio/tmpfile.c 2012-05-15 09:20:09.000000000 +0200
  41181. +++ uClibc-git/libc/stdio/tmpfile.c 2014-06-02 17:40:34.126712605 +0200
  41182. @@ -13,8 +13,7 @@
  41183. You should have received a copy of the GNU Library General Public
  41184. License along with the GNU C Library; see the file COPYING.LIB. If not,
  41185. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  41186. - Boston, MA 02111-1307, USA. */
  41187. + see <http://www.gnu.org/licenses/>. */
  41188. #include <features.h>
  41189. #include <stdio.h>
  41190. diff -Nur uClibc-0.9.33.2/libc/stdio/tmpnam.c uClibc-git/libc/stdio/tmpnam.c
  41191. --- uClibc-0.9.33.2/libc/stdio/tmpnam.c 2012-05-15 09:20:09.000000000 +0200
  41192. +++ uClibc-git/libc/stdio/tmpnam.c 2014-06-02 17:40:34.126712605 +0200
  41193. @@ -12,9 +12,8 @@
  41194. Lesser General Public License for more details.
  41195. You should have received a copy of the GNU Lesser General Public
  41196. - License along with the GNU C Library; if not, write to the Free
  41197. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41198. - 02111-1307 USA. */
  41199. + License along with the GNU C Library; if not, see
  41200. + <http://www.gnu.org/licenses/>. */
  41201. #include <stdio.h>
  41202. #include <string.h>
  41203. diff -Nur uClibc-0.9.33.2/libc/stdio/tmpnam_r.c uClibc-git/libc/stdio/tmpnam_r.c
  41204. --- uClibc-0.9.33.2/libc/stdio/tmpnam_r.c 2012-05-15 09:20:09.000000000 +0200
  41205. +++ uClibc-git/libc/stdio/tmpnam_r.c 2014-06-02 17:40:34.126712605 +0200
  41206. @@ -13,8 +13,7 @@
  41207. You should have received a copy of the GNU Library General Public
  41208. License along with the GNU C Library; see the file COPYING.LIB. If not,
  41209. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  41210. - Boston, MA 02111-1307, USA. */
  41211. + see <http://www.gnu.org/licenses/>. */
  41212. #include <stdio.h>
  41213. #include "../misc/internals/tempname.h"
  41214. diff -Nur uClibc-0.9.33.2/libc/stdio/_uintmaxtostr.c uClibc-git/libc/stdio/_uintmaxtostr.c
  41215. --- uClibc-0.9.33.2/libc/stdio/_uintmaxtostr.c 2012-05-15 09:20:09.000000000 +0200
  41216. +++ uClibc-git/libc/stdio/_uintmaxtostr.c 2014-06-02 17:40:34.122712582 +0200
  41217. @@ -5,7 +5,6 @@
  41218. * Dedicated to Toni. See uClibc/DEDICATION.mjn3 for details.
  41219. */
  41220. -#define _ISOC99_SOURCE /* for ULLONG primarily... */
  41221. #include "_stdio.h"
  41222. #include <limits.h>
  41223. #include <locale.h>
  41224. diff -Nur uClibc-0.9.33.2/libc/stdio/_vfprintf.c uClibc-git/libc/stdio/_vfprintf.c
  41225. --- uClibc-0.9.33.2/libc/stdio/_vfprintf.c 2012-05-15 09:20:09.000000000 +0200
  41226. +++ uClibc-git/libc/stdio/_vfprintf.c 2014-06-02 17:40:34.122712582 +0200
  41227. @@ -12,8 +12,8 @@
  41228. * Library General Public License for more details.
  41229. *
  41230. * You should have received a copy of the GNU Library General Public
  41231. - * License along with this library; if not, write to the Free
  41232. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  41233. + * License along with this library; if not, see
  41234. + * <http://www.gnu.org/licenses/>.
  41235. */
  41236. /* This code needs a lot of clean up. Some of that is on hold until uClibc
  41237. @@ -88,7 +88,6 @@
  41238. * treats this as an error.
  41239. */
  41240. -#define _ISOC99_SOURCE /* for ULLONG primarily... */
  41241. #include <features.h>
  41242. #include "_stdio.h"
  41243. #include <stdlib.h>
  41244. @@ -101,7 +100,6 @@
  41245. #include <stdint.h>
  41246. #include <errno.h>
  41247. #include <locale.h>
  41248. -#include <printf.h>
  41249. #ifdef __UCLIBC_HAS_THREADS__
  41250. # include <stdio_ext.h>
  41251. @@ -126,30 +124,16 @@
  41252. /**********************************************************************/
  41253. /* These provide some control over printf's feature set */
  41254. -/* This is undefined below depeding on uClibc's configuration. */
  41255. -#define __STDIO_PRINTF_FLOAT 1
  41256. +/* Now controlled by uClibc_config.h. */
  41257. +/* #define __UCLIBC_HAS_FLOATS__ 1 */
  41258. -/* Now controlled by uClibc_stdio.h. */
  41259. +/* Now controlled by uClibc_config.h. */
  41260. /* #define __UCLIBC_HAS_PRINTF_M_SPEC__ */
  41261. /**********************************************************************/
  41262. -#if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_FLOATS__)
  41263. -# undef __STDIO_PRINTF_FLOAT
  41264. -#endif
  41265. -
  41266. -#ifdef __BCC__
  41267. -# undef __STDIO_PRINTF_FLOAT
  41268. -#endif
  41269. -
  41270. -#ifdef __STDIO_PRINTF_FLOAT
  41271. -# include <float.h>
  41272. -# include <bits/uClibc_fpmax.h>
  41273. -#else
  41274. -# undef L__fpmaxtostr
  41275. -#endif
  41276. -
  41277. +#include "_fpmaxtostr.h"
  41278. #undef __STDIO_HAS_VSNPRINTF
  41279. #if defined(__STDIO_BUFFERS) || defined(__USE_OLD_VFPRINTF__) || defined(__UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__)
  41280. @@ -158,7 +142,7 @@
  41281. /**********************************************************************/
  41282. -/* Now controlled by uClibc_stdio.h. */
  41283. +/* Now controlled by uClibc_config.h. */
  41284. /* #define __UCLIBC_HAS_GLIBC_CUSTOM_PRINTF__ */
  41285. #ifdef __UCLIBC_MJN3_ONLY__
  41286. @@ -361,7 +345,7 @@
  41287. # ifdef ULLONG_MAX
  41288. unsigned long long ull;
  41289. # endif
  41290. -# ifdef __STDIO_PRINTF_FLOAT
  41291. +# ifdef __UCLIBC_HAS_FLOATS__
  41292. double d;
  41293. long double ld;
  41294. # endif
  41295. @@ -398,22 +382,11 @@
  41296. /* TODO: fix printf to return 0 and set errno if format error. Standard says
  41297. only returns -1 if sets error indicator for the stream. */
  41298. -#ifdef __STDIO_PRINTF_FLOAT
  41299. -typedef size_t (__fp_outfunc_t)(FILE *fp, intptr_t type, intptr_t len,
  41300. - intptr_t buf);
  41301. -
  41302. -extern ssize_t _fpmaxtostr(FILE * fp, __fpmax_t x, struct printf_info *info,
  41303. - __fp_outfunc_t fp_outfunc) attribute_hidden;
  41304. -#endif
  41305. -
  41306. extern int _ppfs_init(ppfs_t *ppfs, const char *fmt0) attribute_hidden; /* validates */
  41307. extern void _ppfs_prepargs(ppfs_t *ppfs, va_list arg) attribute_hidden; /* sets posargptrs */
  41308. extern void _ppfs_setargs(ppfs_t *ppfs) attribute_hidden; /* sets argptrs for current spec */
  41309. extern int _ppfs_parsespec(ppfs_t *ppfs) attribute_hidden; /* parses specifier */
  41310. -extern void _store_inttype(void *dest, int desttype, uintmax_t val) attribute_hidden;
  41311. -extern uintmax_t _load_inttype(int desttype, const void *src, int uflag) attribute_hidden;
  41312. -
  41313. /**********************************************************************/
  41314. #ifdef L_parse_printf_format
  41315. @@ -564,7 +537,7 @@
  41316. ppfs->fmtpos = fmt0; /* rewind */
  41317. }
  41318. -#ifdef NL_MAX_ARG
  41319. +#ifdef NL_ARGMAX
  41320. /* If we have positional args, make sure we know all the types. */
  41321. {
  41322. register int *p = ppfs->argtype;
  41323. @@ -576,7 +549,7 @@
  41324. ++p;
  41325. }
  41326. }
  41327. -#endif /* NL_MAX_ARG */
  41328. +#endif /* NL_ARGMAX */
  41329. return 0;
  41330. }
  41331. @@ -653,7 +626,7 @@
  41332. /* we're assuming wchar_t is at least an int */
  41333. GET_VA_ARG(p,wc,wchar_t,ppfs->arg);
  41334. break;
  41335. -#ifdef __STDIO_PRINTF_FLOAT
  41336. +#ifdef __UCLIBC_HAS_FLOATS__
  41337. /* PA_FLOAT */
  41338. case PA_DOUBLE:
  41339. GET_VA_ARG(p,d,double,ppfs->arg);
  41340. @@ -661,12 +634,12 @@
  41341. case (PA_DOUBLE|PA_FLAG_LONG_DOUBLE):
  41342. GET_VA_ARG(p,ld,long double,ppfs->arg);
  41343. break;
  41344. -#else /* __STDIO_PRINTF_FLOAT */
  41345. +#else /* __UCLIBC_HAS_FLOATS__ */
  41346. case PA_DOUBLE:
  41347. case (PA_DOUBLE|PA_FLAG_LONG_DOUBLE):
  41348. assert(0);
  41349. continue;
  41350. -#endif /* __STDIO_PRINTF_FLOAT */
  41351. +#endif /* __UCLIBC_HAS_FLOATS__ */
  41352. default:
  41353. /* TODO -- really need to ensure this can't happen */
  41354. assert(ppfs->argtype[i-1] & PA_FLAG_PTR);
  41355. @@ -743,7 +716,7 @@
  41356. PA_INT|PA_FLAG_LONG,
  41357. PA_INT|PA_FLAG_LONG_LONG,
  41358. PA_WCHAR,
  41359. -#ifdef __STDIO_PRINTF_FLOAT
  41360. +#ifdef __UCLIBC_HAS_FLOATS__
  41361. /* PA_FLOAT, */
  41362. PA_DOUBLE,
  41363. PA_DOUBLE|PA_FLAG_LONG_DOUBLE,
  41364. @@ -766,7 +739,7 @@
  41365. PROMOTED_SIZE_OF(long), /* TODO -- is this correct? (above too) */
  41366. #endif
  41367. PROMOTED_SIZE_OF(wchar_t),
  41368. -#ifdef __STDIO_PRINTF_FLOAT
  41369. +#ifdef __UCLIBC_HAS_FLOATS__
  41370. /* PROMOTED_SIZE_OF(float), */
  41371. PROMOTED_SIZE_OF(double),
  41372. PROMOTED_SIZE_OF(long double),
  41373. @@ -1199,7 +1172,7 @@
  41374. #define _outnstr(stream, string, len) ((len > 0) ? __stdio_fwrite((const unsigned char *)(string), len, stream) : 0)
  41375. #define FP_OUT _fp_out_narrow
  41376. -#ifdef __STDIO_PRINTF_FLOAT
  41377. +#ifdef __UCLIBC_HAS_FLOATS__
  41378. static size_t _fp_out_narrow(FILE *fp, intptr_t type, intptr_t len, intptr_t buf)
  41379. {
  41380. @@ -1219,7 +1192,7 @@
  41381. return r + OUTNSTR(fp, (const char *) buf, len);
  41382. }
  41383. -#endif /* __STDIO_PRINTF_FLOAT */
  41384. +#endif /* __UCLIBC_HAS_FLOATS__ */
  41385. #else /* L__vfprintf_internal */
  41386. @@ -1229,7 +1202,7 @@
  41387. #define STRLEN wcslen
  41388. #define _PPFS_init _ppwfs_init
  41389. /* Pulls in fseek: */
  41390. -#define OUTPUT(F,S) fputws(S,F)
  41391. +#define OUTPUT(F,S) fputws_unlocked(S,F)
  41392. /* TODO: #define OUTPUT(F,S) _wstdio_fwrite((S),wcslen(S),(F)) */
  41393. #define _outnwcs(stream, wstring, len) _wstdio_fwrite((const wchar_t *)(wstring), len, stream)
  41394. #define FP_OUT _fp_out_wide
  41395. @@ -1261,16 +1234,7 @@
  41396. return wclen - todo;
  41397. }
  41398. -#ifdef __STDIO_PRINTF_FLOAT
  41399. -
  41400. -#ifdef __UCLIBC_MJN3_ONLY__
  41401. -#warning TODO: Move defines from _fpmaxtostr. Put them in a common header.
  41402. -#endif
  41403. -
  41404. -/* The following defines are from _fpmaxtostr.*/
  41405. -#define DIGITS_PER_BLOCK 9
  41406. -#define NUM_DIGIT_BLOCKS ((DECIMAL_DIG+DIGITS_PER_BLOCK-1)/DIGITS_PER_BLOCK)
  41407. -#define BUF_SIZE ( 3 + NUM_DIGIT_BLOCKS * DIGITS_PER_BLOCK )
  41408. +#ifdef __UCLIBC_HAS_FLOATS__
  41409. static size_t _fp_out_wide(FILE *fp, intptr_t type, intptr_t len, intptr_t buf)
  41410. {
  41411. @@ -1318,7 +1282,7 @@
  41412. return r;
  41413. }
  41414. -#endif /* __STDIO_PRINTF_FLOAT */
  41415. +#endif /* __UCLIBC_HAS_FLOATS__ */
  41416. static int _ppwfs_init(register ppfs_t *ppfs, const wchar_t *fmt0)
  41417. {
  41418. @@ -1608,7 +1572,7 @@
  41419. }
  41420. numfill = ((numfill > SLEN) ? numfill - SLEN : 0);
  41421. } else if (ppfs->conv_num <= CONV_A) { /* floating point */
  41422. -#ifdef __STDIO_PRINTF_FLOAT
  41423. +#ifdef __UCLIBC_HAS_FLOATS__
  41424. ssize_t nf;
  41425. nf = _fpmaxtostr(stream,
  41426. (__fpmax_t)
  41427. @@ -1622,7 +1586,7 @@
  41428. *count += nf;
  41429. return 0;
  41430. -#else /* __STDIO_PRINTF_FLOAT */
  41431. +#else /* __UCLIBC_HAS_FLOATS__ */
  41432. return -1; /* TODO -- try to continue? */
  41433. #endif
  41434. } else if (ppfs->conv_num <= CONV_S) { /* wide char or string */
  41435. diff -Nur uClibc-0.9.33.2/libc/stdlib/a64l.c uClibc-git/libc/stdlib/a64l.c
  41436. --- uClibc-0.9.33.2/libc/stdlib/a64l.c 2012-05-15 09:20:09.000000000 +0200
  41437. +++ uClibc-git/libc/stdlib/a64l.c 2014-06-02 17:40:34.130712627 +0200
  41438. @@ -13,9 +13,8 @@
  41439. Lesser General Public License for more details.
  41440. You should have received a copy of the GNU Lesser General Public
  41441. - License along with the GNU C Library; if not, write to the Free
  41442. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41443. - 02111-1307 USA. */
  41444. + License along with the GNU C Library; if not, see
  41445. + <http://www.gnu.org/licenses/>. */
  41446. #include <stdlib.h>
  41447. diff -Nur uClibc-0.9.33.2/libc/stdlib/abort.c uClibc-git/libc/stdlib/abort.c
  41448. --- uClibc-0.9.33.2/libc/stdlib/abort.c 2012-05-15 09:20:09.000000000 +0200
  41449. +++ uClibc-git/libc/stdlib/abort.c 2014-06-02 17:40:34.130712627 +0200
  41450. @@ -13,8 +13,7 @@
  41451. You should have received a copy of the GNU Library General Public
  41452. License along with the GNU C Library; see the file COPYING.LIB. If
  41453. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  41454. -Cambridge, MA 02139, USA. */
  41455. +not, see <http://www.gnu.org/licenses/>. */
  41456. /* Hacked up for uClibc by Erik Andersen */
  41457. @@ -47,9 +46,6 @@
  41458. # warning "no abort instruction defined for your arch"
  41459. #endif
  41460. -#ifdef __UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT__
  41461. -extern void weak_function _stdio_term(void) attribute_hidden;
  41462. -#endif
  41463. static smallint been_there_done_that = 0;
  41464. /* Be prepared in case multiple threads try to abort() */
  41465. diff -Nur uClibc-0.9.33.2/libc/stdlib/arc4random.c uClibc-git/libc/stdlib/arc4random.c
  41466. --- uClibc-0.9.33.2/libc/stdlib/arc4random.c 2012-05-15 09:20:09.000000000 +0200
  41467. +++ uClibc-git/libc/stdlib/arc4random.c 2014-06-02 17:40:34.130712627 +0200
  41468. @@ -1,24 +1,29 @@
  41469. -/* $$$: arc4random.c 2005/02/08 robert */
  41470. -/* $NetBSD: arc4random.c,v 1.5.2.1 2004/03/26 22:52:50 jmc Exp $ */
  41471. -/* $OpenBSD: arc4random.c,v 1.6 2001/06/05 05:05:38 pvalchev Exp $ */
  41472. -
  41473. /*
  41474. - * Arc4 random number generator for OpenBSD.
  41475. - * Copyright 1996 David Mazieres <dm@lcs.mit.edu>.
  41476. + * Copyright (c) 1996, David Mazieres <dm@uun.org>
  41477. *
  41478. - * Modification and redistribution in source and binary forms is
  41479. - * permitted provided that due credit is given to the author and the
  41480. - * OpenBSD project by leaving this copyright notice intact.
  41481. + * Permission to use, copy, modify, and distribute this software for any
  41482. + * purpose with or without fee is hereby granted, provided that the above
  41483. + * copyright notice and this permission notice appear in all copies.
  41484. + *
  41485. + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
  41486. + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
  41487. + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
  41488. + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  41489. + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
  41490. + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
  41491. + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
  41492. */
  41493. /*
  41494. + * Arc4 random number generator for OpenBSD.
  41495. + *
  41496. * This code is derived from section 17.1 of Applied Cryptography,
  41497. * second edition, which describes a stream cipher allegedly
  41498. * compatible with RSA Labs "RC4" cipher (the actual description of
  41499. * which is a trade secret). The same algorithm is used as a stream
  41500. * cipher called "arcfour" in Tatu Ylonen's ssh package.
  41501. *
  41502. - * Here the stream cipher has been modified always to include the time
  41503. + * Here the stream cipher has been modified always to include entropy
  41504. * when initializing the state. That makes it impossible to
  41505. * regenerate the same random sequence twice, so this can't be used
  41506. * for encryption, but will generate good random numbers.
  41507. @@ -26,32 +31,26 @@
  41508. * RC4 is a registered trademark of RSA Laboratories.
  41509. */
  41510. +/* $OpenBSD: arc4random.c,v 1.16 2007/02/12 19:58:47 otto Exp $ */
  41511. +
  41512. #include <features.h>
  41513. +
  41514. #include <fcntl.h>
  41515. #include <stdlib.h>
  41516. #include <unistd.h>
  41517. #include <sys/types.h>
  41518. -#include <sys/param.h>
  41519. #include <sys/time.h>
  41520. -#ifdef __ARC4RANDOM_USE_ERANDOM__
  41521. -#include <sys/sysctl.h>
  41522. -#endif
  41523. -
  41524. struct arc4_stream {
  41525. - uint8_t i;
  41526. - uint8_t j;
  41527. - uint8_t s[256];
  41528. + u_int8_t i;
  41529. + u_int8_t j;
  41530. + u_int8_t s[256];
  41531. };
  41532. -static int rs_initialized;
  41533. +static smallint rs_initialized;
  41534. static struct arc4_stream rs;
  41535. -
  41536. -static __inline__ void arc4_init(struct arc4_stream *);
  41537. -static __inline__ void arc4_addrandom(struct arc4_stream *, u_char *, int);
  41538. -static void arc4_stir(struct arc4_stream *);
  41539. -static __inline__ uint8_t arc4_getbyte(struct arc4_stream *);
  41540. -static __inline__ uint32_t arc4_getword(struct arc4_stream *);
  41541. +static pid_t arc4_stir_pid;
  41542. +static int arc4_count;
  41543. static __inline__ void
  41544. arc4_init(struct arc4_stream *as)
  41545. @@ -64,11 +63,25 @@
  41546. as->j = 0;
  41547. }
  41548. +static __inline__ u_int8_t
  41549. +arc4_getbyte(struct arc4_stream *as)
  41550. +{
  41551. + u_int8_t si, sj;
  41552. +
  41553. + as->i = (as->i + 1);
  41554. + si = as->s[as->i];
  41555. + as->j = (as->j + si);
  41556. + sj = as->s[as->j];
  41557. + as->s[as->i] = sj;
  41558. + as->s[as->j] = si;
  41559. + return (as->s[(si + sj) & 0xff]);
  41560. +}
  41561. +
  41562. static __inline__ void
  41563. arc4_addrandom(struct arc4_stream *as, u_char *dat, int datlen)
  41564. {
  41565. int n;
  41566. - uint8_t si;
  41567. + u_int8_t si;
  41568. as->i--;
  41569. for (n = 0; n < 256; n++) {
  41570. @@ -84,71 +97,88 @@
  41571. static void
  41572. arc4_stir(struct arc4_stream *as)
  41573. {
  41574. - int fd;
  41575. - struct {
  41576. - struct timeval tv;
  41577. - uint rnd[(128 - sizeof(struct timeval)) / sizeof(uint)];
  41578. - } rdat;
  41579. int n;
  41580. + u_char rnd[128];
  41581. + struct timeval tv;
  41582. +
  41583. +#ifndef __ARC4RANDOM_USES_NODEV__
  41584. + int fd;
  41585. - gettimeofday(&rdat.tv, NULL);
  41586. fd = open("/dev/urandom", O_RDONLY);
  41587. if (fd != -1) {
  41588. - read(fd, rdat.rnd, sizeof(rdat.rnd));
  41589. + read(fd, rnd, sizeof(rnd));
  41590. close(fd);
  41591. }
  41592. -#ifdef __ARC4RANDOM_USE_ERANDOM__
  41593. + /* Did the pseudo-random device fail? Use gettimeofday(). */
  41594. + else
  41595. +#endif
  41596. + if (gettimeofday(&tv, NULL) != (-1)) {
  41597. +
  41598. + /* Initialize the first element so it's hopefully not '0',
  41599. + * to help out the next loop. Tossing in some prime numbers
  41600. + * probably can't hurt. */
  41601. + rnd[0] = (tv.tv_sec % 10000) * 3 + tv.tv_usec * 7 + \
  41602. + (getpid() % 1000) * 13;
  41603. +
  41604. + for (n = 1; n < 127 ; n++) {
  41605. +
  41606. + /* Take advantage of the stack space. Only initialize
  41607. + * elements equal to '0'. This will make the rnd[]
  41608. + * array much less vulnerable to timing attacks. Here
  41609. + * we'll stir getpid() into the value of the previous
  41610. + * element. Approximately 1 in 128 elements will still
  41611. + * become '0'. */
  41612. +
  41613. + if (rnd[n] == 0) {
  41614. + rnd[n] = ((rnd[n - 1] + n) ^ \
  41615. + ((getpid() % 1000) * 17));
  41616. + }
  41617. + }
  41618. + }
  41619. else {
  41620. - int mib[3];
  41621. - uint i;
  41622. - size_t len;
  41623. -
  41624. - /* Device could not be opened, we might be chrooted, take
  41625. - * randomness from sysctl. */
  41626. -
  41627. - mib[0] = CTL_KERN;
  41628. - mib[1] = KERN_RANDOM;
  41629. - mib[2] = RANDOM_ERANDOM;
  41630. -
  41631. - for (i = 0; i < sizeof(rdat.rnd) / sizeof(uint); i++) {
  41632. - len = sizeof(uint);
  41633. - if (sysctl(mib, 3, &rdat.rnd[i], &len, NULL, 0) == -1)
  41634. - break;
  41635. + /* gettimeofday() failed? Do the same thing as above, but only
  41636. + * with getpid(). */
  41637. +
  41638. + rnd[0] = (getpid() % 1000) * 19;
  41639. + for (n = 1; n < 127 ; n++) {
  41640. + if (rnd[n] == 0) {
  41641. + rnd[n] = ((rnd[n - 1] + n) ^ \
  41642. + ((getpid() % 1000) * 23));
  41643. + }
  41644. }
  41645. }
  41646. -#endif
  41647. - arc4_addrandom(as, (void *) &rdat, sizeof(rdat));
  41648. + arc4_stir_pid = getpid();
  41649. + arc4_addrandom(as, rnd, sizeof(rnd));
  41650. /*
  41651. - * Throw away the first N words of output, as suggested in the
  41652. - * paper "Weaknesses in the Key Scheduling Algorithm of RC4"
  41653. - * by Fluher, Mantin, and Shamir.
  41654. + * Discard early keystream, as per recommendations in:
  41655. * http://www.wisdom.weizmann.ac.il/~itsik/RC4/Papers/Rc4_ksa.ps
  41656. - * N = 256 in our case.
  41657. */
  41658. - for (n = 0; n < 256 * 4; n++)
  41659. - arc4_getbyte(as);
  41660. + for (n = 0; n < 256; n++)
  41661. + (void)arc4_getbyte(as);
  41662. + arc4_count = 1600000;
  41663. }
  41664. -static __inline__ uint8_t
  41665. -arc4_getbyte(struct arc4_stream *as)
  41666. +#if 0
  41667. +static void __arc4random_stir(void);
  41668. +/*
  41669. + * __arc4_getbyte() is a libc private function intended for use
  41670. + * with malloc.
  41671. + */
  41672. +u_int8_t
  41673. +__arc4_getbyte(void)
  41674. {
  41675. - uint8_t si, sj;
  41676. -
  41677. - as->i = (as->i + 1);
  41678. - si = as->s[as->i];
  41679. - as->j = (as->j + si);
  41680. - sj = as->s[as->j];
  41681. - as->s[as->i] = sj;
  41682. - as->s[as->j] = si;
  41683. - return (as->s[(si + sj) & 0xff]);
  41684. + if (--arc4_count == 0 || !rs_initialized)
  41685. + __arc4random_stir();
  41686. + return arc4_getbyte(&rs);
  41687. }
  41688. +#endif
  41689. -static __inline__ uint32_t
  41690. +static __inline__ u_int32_t
  41691. arc4_getword(struct arc4_stream *as)
  41692. {
  41693. - uint32_t val;
  41694. + u_int32_t val;
  41695. val = arc4_getbyte(as) << 24;
  41696. val |= arc4_getbyte(as) << 16;
  41697. val |= arc4_getbyte(as) << 8;
  41698. @@ -175,23 +205,11 @@
  41699. arc4_addrandom(&rs, dat, datlen);
  41700. }
  41701. -uint32_t
  41702. +u_int32_t
  41703. arc4random(void)
  41704. {
  41705. - if (!rs_initialized)
  41706. + arc4_count -= 4;
  41707. + if (arc4_count <= 0 || !rs_initialized || arc4_stir_pid != getpid())
  41708. __arc4random_stir();
  41709. return arc4_getword(&rs);
  41710. }
  41711. -
  41712. -#if 0
  41713. -/*-------- Test code --------*/
  41714. -#include <stdlib.h>
  41715. -#include <stdio.h>
  41716. -
  41717. -int main(void) {
  41718. - int random_number;
  41719. - random_number = arc4random() % 65536;
  41720. - printf("%d\n", random_number);
  41721. - return 0;
  41722. -}
  41723. -#endif
  41724. diff -Nur uClibc-0.9.33.2/libc/stdlib/_atexit.c uClibc-git/libc/stdlib/_atexit.c
  41725. --- uClibc-0.9.33.2/libc/stdlib/_atexit.c 2012-05-15 09:20:09.000000000 +0200
  41726. +++ uClibc-git/libc/stdlib/_atexit.c 2014-06-02 17:40:34.130712627 +0200
  41727. @@ -40,11 +40,12 @@
  41728. #include <features.h>
  41729. #include <unistd.h>
  41730. #include <stdlib.h>
  41731. +#include <stdio.h>
  41732. #include <errno.h>
  41733. #include <atomic.h>
  41734. #include <bits/uClibc_mutex.h>
  41735. -__UCLIBC_MUTEX_EXTERN(__atexit_lock);
  41736. +__UCLIBC_MUTEX_EXTERN(__atexit_lock) attribute_hidden;
  41737. @@ -240,6 +241,16 @@
  41738. __UCLIBC_MUTEX_LOCK(__atexit_lock);
  41739. + /*
  41740. + * Reuse free slots at the end of the list.
  41741. + * This avoids eating memory when dlopen and dlclose modules multiple times.
  41742. + */
  41743. + while (__exit_count > 0) {
  41744. + if (__exit_function_table[__exit_count-1].type == ef_free) {
  41745. + --__exit_count;
  41746. + } else break;
  41747. + }
  41748. +
  41749. #ifdef __UCLIBC_DYNAMIC_ATEXIT__
  41750. /* If we are out of function table slots, make some more */
  41751. if (__exit_slots < __exit_count+1) {
  41752. @@ -318,8 +329,7 @@
  41753. attribute_hidden void (*__exit_cleanup)(int) = 0;
  41754. __UCLIBC_MUTEX_INIT(__atexit_lock, PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP);
  41755. -extern void __uClibc_fini(void);
  41756. -libc_hidden_proto(__uClibc_fini)
  41757. +extern void __uClibc_fini(void) attribute_hidden;
  41758. /*
  41759. * Normal program termination
  41760. diff -Nur uClibc-0.9.33.2/libc/stdlib/bsd_getpt.c uClibc-git/libc/stdlib/bsd_getpt.c
  41761. --- uClibc-0.9.33.2/libc/stdlib/bsd_getpt.c 2012-05-15 09:20:09.000000000 +0200
  41762. +++ uClibc-git/libc/stdlib/bsd_getpt.c 2014-06-02 17:40:34.130712627 +0200
  41763. @@ -13,9 +13,8 @@
  41764. Lesser General Public License for more details.
  41765. You should have received a copy of the GNU Lesser General Public
  41766. - License along with the GNU C Library; if not, write to the Free
  41767. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41768. - 02111-1307 USA. */
  41769. + License along with the GNU C Library; if not, see
  41770. + <http://www.gnu.org/licenses/>. */
  41771. #include <errno.h>
  41772. #include <fcntl.h>
  41773. @@ -40,7 +39,7 @@
  41774. const char __libc_ptyname2[] attribute_hidden = PTYNAME2;
  41775. /* Open a master pseudo terminal and return its file descriptor. */
  41776. -int
  41777. +static __inline__ int
  41778. __getpt (void)
  41779. {
  41780. char buf[sizeof (_PATH_PTY) + 2];
  41781. diff -Nur uClibc-0.9.33.2/libc/stdlib/drand48.c uClibc-git/libc/stdlib/drand48.c
  41782. --- uClibc-0.9.33.2/libc/stdlib/drand48.c 2012-05-15 09:20:09.000000000 +0200
  41783. +++ uClibc-git/libc/stdlib/drand48.c 2014-06-02 17:40:34.130712627 +0200
  41784. @@ -13,9 +13,8 @@
  41785. Lesser General Public License for more details.
  41786. You should have received a copy of the GNU Lesser General Public
  41787. - License along with the GNU C Library; if not, write to the Free
  41788. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41789. - 02111-1307 USA. */
  41790. + License along with the GNU C Library; if not, see
  41791. + <http://www.gnu.org/licenses/>. */
  41792. #include <stdlib.h>
  41793. diff -Nur uClibc-0.9.33.2/libc/stdlib/drand48-iter.c uClibc-git/libc/stdlib/drand48-iter.c
  41794. --- uClibc-0.9.33.2/libc/stdlib/drand48-iter.c 2012-05-15 09:20:09.000000000 +0200
  41795. +++ uClibc-git/libc/stdlib/drand48-iter.c 2014-06-02 17:40:34.130712627 +0200
  41796. @@ -13,9 +13,8 @@
  41797. Lesser General Public License for more details.
  41798. You should have received a copy of the GNU Lesser General Public
  41799. - License along with the GNU C Library; if not, write to the Free
  41800. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41801. - 02111-1307 USA. */
  41802. + License along with the GNU C Library; if not, see
  41803. + <http://www.gnu.org/licenses/>. */
  41804. #include <errno.h>
  41805. #include <stdlib.h>
  41806. diff -Nur uClibc-0.9.33.2/libc/stdlib/drand48_r.c uClibc-git/libc/stdlib/drand48_r.c
  41807. --- uClibc-0.9.33.2/libc/stdlib/drand48_r.c 2012-05-15 09:20:09.000000000 +0200
  41808. +++ uClibc-git/libc/stdlib/drand48_r.c 2014-06-02 17:40:34.130712627 +0200
  41809. @@ -13,9 +13,8 @@
  41810. Lesser General Public License for more details.
  41811. You should have received a copy of the GNU Lesser General Public
  41812. - License along with the GNU C Library; if not, write to the Free
  41813. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41814. - 02111-1307 USA. */
  41815. + License along with the GNU C Library; if not, see
  41816. + <http://www.gnu.org/licenses/>. */
  41817. #include <errno.h>
  41818. #include <math.h>
  41819. diff -Nur uClibc-0.9.33.2/libc/stdlib/erand48.c uClibc-git/libc/stdlib/erand48.c
  41820. --- uClibc-0.9.33.2/libc/stdlib/erand48.c 2012-05-15 09:20:09.000000000 +0200
  41821. +++ uClibc-git/libc/stdlib/erand48.c 2014-06-02 17:40:34.130712627 +0200
  41822. @@ -13,9 +13,8 @@
  41823. Lesser General Public License for more details.
  41824. You should have received a copy of the GNU Lesser General Public
  41825. - License along with the GNU C Library; if not, write to the Free
  41826. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41827. - 02111-1307 USA. */
  41828. + License along with the GNU C Library; if not, see
  41829. + <http://www.gnu.org/licenses/>. */
  41830. #include <stdlib.h>
  41831. diff -Nur uClibc-0.9.33.2/libc/stdlib/erand48_r.c uClibc-git/libc/stdlib/erand48_r.c
  41832. --- uClibc-0.9.33.2/libc/stdlib/erand48_r.c 2012-05-15 09:20:09.000000000 +0200
  41833. +++ uClibc-git/libc/stdlib/erand48_r.c 2014-06-02 17:40:34.130712627 +0200
  41834. @@ -13,9 +13,8 @@
  41835. Lesser General Public License for more details.
  41836. You should have received a copy of the GNU Lesser General Public
  41837. - License along with the GNU C Library; if not, write to the Free
  41838. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41839. - 02111-1307 USA. */
  41840. + License along with the GNU C Library; if not, see
  41841. + <http://www.gnu.org/licenses/>. */
  41842. #include <ieee754.h>
  41843. #include <stdlib.h>
  41844. diff -Nur uClibc-0.9.33.2/libc/stdlib/getpt.c uClibc-git/libc/stdlib/getpt.c
  41845. --- uClibc-0.9.33.2/libc/stdlib/getpt.c 2012-05-15 09:20:09.000000000 +0200
  41846. +++ uClibc-git/libc/stdlib/getpt.c 2014-06-02 17:40:34.130712627 +0200
  41847. @@ -13,9 +13,8 @@
  41848. Lesser General Public License for more details.
  41849. You should have received a copy of the GNU Lesser General Public
  41850. - License along with the GNU C Library; if not, write to the Free
  41851. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41852. - 02111-1307 USA. */
  41853. + License along with the GNU C Library; if not, see
  41854. + <http://www.gnu.org/licenses/>. */
  41855. #include <errno.h>
  41856. #include <fcntl.h>
  41857. @@ -43,12 +42,12 @@
  41858. #if !defined __UNIX98PTY_ONLY__ && defined __UCLIBC_HAS_GETPT__
  41859. /* Prototype for function that opens BSD-style master pseudo-terminals. */
  41860. -extern int __bsd_getpt (void) attribute_hidden;
  41861. +static __inline__ int __bsd_getpt (void);
  41862. #endif
  41863. /* Open a master pseudo terminal and return its file descriptor. */
  41864. -int
  41865. -posix_openpt (int flags)
  41866. +static int
  41867. +__posix_openpt (int flags)
  41868. {
  41869. #define have_no_dev_ptmx (1<<0)
  41870. #define devpts_mounted (1<<1)
  41871. @@ -112,14 +111,14 @@
  41872. #endif
  41873. return -1;
  41874. }
  41875. -libc_hidden_def(posix_openpt)
  41876. +strong_alias(__posix_openpt,posix_openpt)
  41877. #undef have_no_dev_ptmx
  41878. #undef devpts_mounted
  41879. #if defined __USE_GNU && defined __UCLIBC_HAS_GETPT__
  41880. int getpt (void)
  41881. {
  41882. - return posix_openpt(O_RDWR);
  41883. + return __posix_openpt(O_RDWR);
  41884. }
  41885. #if !defined __UNIX98PTY_ONLY__ && defined __UCLIBC_HAS_GETPT__
  41886. diff -Nur uClibc-0.9.33.2/libc/stdlib/grantpt.c uClibc-git/libc/stdlib/grantpt.c
  41887. --- uClibc-0.9.33.2/libc/stdlib/grantpt.c 2012-05-15 09:20:09.000000000 +0200
  41888. +++ uClibc-git/libc/stdlib/grantpt.c 2014-06-02 17:40:34.130712627 +0200
  41889. @@ -13,8 +13,7 @@
  41890. You should have received a copy of the GNU Library General Public
  41891. License along with the GNU C Library; see the file COPYING.LIB. If not,
  41892. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  41893. - Boston, MA 02111-1307, USA. */
  41894. + see <http://www.gnu.org/licenses/>. */
  41895. #include <limits.h>
  41896. #include <stdlib.h>
  41897. @@ -33,25 +32,18 @@
  41898. /* Prototype for function that changes ownership and access permission
  41899. for slave pseudo terminals that do not live on a `devpts'
  41900. filesystem. */
  41901. -int __unix_grantpt (int fd);
  41902. +static int __unix_grantpt (int fd);
  41903. /* Prototype for private function that gets the name of the slave
  41904. pseudo terminal in a safe way. */
  41905. static int pts_name (int fd, char **pts, size_t buf_len);
  41906. extern __typeof(statfs) __libc_statfs;
  41907. -#endif
  41908. /* Change the ownership and access permission of the slave pseudo
  41909. terminal associated with the master pseudo terminal specified
  41910. by FD. */
  41911. -int
  41912. -#if !defined __ASSUME_DEVPTS__
  41913. -grantpt (int fd)
  41914. -#else
  41915. -grantpt (attribute_unused int fd)
  41916. -#endif
  41917. +int grantpt (int fd)
  41918. {
  41919. -#if !defined __ASSUME_DEVPTS__
  41920. struct statfs fsbuf;
  41921. char _buf[PATH_MAX];
  41922. char *buf = _buf;
  41923. @@ -65,12 +57,19 @@
  41924. /* If the slave pseudo terminal lives on a `devpts' filesystem, the
  41925. ownership and access permission are already set. */
  41926. if (fsbuf.f_type != DEVPTS_SUPER_MAGIC && fsbuf.f_type != DEVFS_SUPER_MAGIC)
  41927. - return __unix_grantpt (fd);
  41928. -#endif
  41929. + return __unix_grantpt (fd);
  41930. +
  41931. return 0;
  41932. }
  41933. -#if !defined __ASSUME_DEVPTS__
  41934. # define grantpt __unix_grantpt
  41935. # include "unix_grantpt.c"
  41936. +
  41937. +#else
  41938. +
  41939. +int grantpt (attribute_unused int fd)
  41940. +{
  41941. + return 0;
  41942. +}
  41943. +
  41944. #endif
  41945. diff -Nur uClibc-0.9.33.2/libc/stdlib/jrand48.c uClibc-git/libc/stdlib/jrand48.c
  41946. --- uClibc-0.9.33.2/libc/stdlib/jrand48.c 2012-05-15 09:20:09.000000000 +0200
  41947. +++ uClibc-git/libc/stdlib/jrand48.c 2014-06-02 17:40:34.130712627 +0200
  41948. @@ -13,9 +13,8 @@
  41949. Lesser General Public License for more details.
  41950. You should have received a copy of the GNU Lesser General Public
  41951. - License along with the GNU C Library; if not, write to the Free
  41952. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41953. - 02111-1307 USA. */
  41954. + License along with the GNU C Library; if not, see
  41955. + <http://www.gnu.org/licenses/>. */
  41956. #include <stdlib.h>
  41957. diff -Nur uClibc-0.9.33.2/libc/stdlib/jrand48_r.c uClibc-git/libc/stdlib/jrand48_r.c
  41958. --- uClibc-0.9.33.2/libc/stdlib/jrand48_r.c 2012-05-15 09:20:09.000000000 +0200
  41959. +++ uClibc-git/libc/stdlib/jrand48_r.c 2014-06-02 17:40:34.130712627 +0200
  41960. @@ -13,9 +13,8 @@
  41961. Lesser General Public License for more details.
  41962. You should have received a copy of the GNU Lesser General Public
  41963. - License along with the GNU C Library; if not, write to the Free
  41964. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41965. - 02111-1307 USA. */
  41966. + License along with the GNU C Library; if not, see
  41967. + <http://www.gnu.org/licenses/>. */
  41968. #include <stdlib.h>
  41969. diff -Nur uClibc-0.9.33.2/libc/stdlib/l64a.c uClibc-git/libc/stdlib/l64a.c
  41970. --- uClibc-0.9.33.2/libc/stdlib/l64a.c 2012-05-15 09:20:09.000000000 +0200
  41971. +++ uClibc-git/libc/stdlib/l64a.c 2014-06-02 17:40:34.134712649 +0200
  41972. @@ -13,9 +13,8 @@
  41973. Lesser General Public License for more details.
  41974. You should have received a copy of the GNU Lesser General Public
  41975. - License along with the GNU C Library; if not, write to the Free
  41976. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  41977. - 02111-1307 USA. */
  41978. + License along with the GNU C Library; if not, see
  41979. + <http://www.gnu.org/licenses/>. */
  41980. #include <stdlib.h>
  41981. diff -Nur uClibc-0.9.33.2/libc/stdlib/lcong48.c uClibc-git/libc/stdlib/lcong48.c
  41982. --- uClibc-0.9.33.2/libc/stdlib/lcong48.c 1970-01-01 01:00:00.000000000 +0100
  41983. +++ uClibc-git/libc/stdlib/lcong48.c 2014-06-02 17:40:34.134712649 +0200
  41984. @@ -0,0 +1,29 @@
  41985. +/* vi: set sw=4 ts=4: */
  41986. +/* Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball. */
  41987. +
  41988. +#include <features.h>
  41989. +
  41990. +#if defined __USE_SVID || defined __USE_XOPEN
  41991. +#include <stdint.h>
  41992. +#include <stdlib.h>
  41993. +#include <string.h>
  41994. +
  41995. +static int __lcong48_r (unsigned short int param[7], struct drand48_data *buffer)
  41996. +{
  41997. + /* Store the given values. */
  41998. + memcpy (buffer->__x, &param[0], sizeof (buffer->__x));
  41999. + buffer->__a = ((uint64_t) param[5] << 32 | (uint32_t) param[4] << 16 | param[3]);
  42000. + buffer->__c = param[6];
  42001. + buffer->__init = 1;
  42002. +
  42003. + return 0;
  42004. +}
  42005. +# ifdef __USE_MISC
  42006. +strong_alias(__lcong48_r,lcong48_r)
  42007. +# endif
  42008. +
  42009. +void lcong48 (unsigned short int param[7])
  42010. +{
  42011. + (void) __lcong48_r (param, &__libc_drand48_data);
  42012. +}
  42013. +#endif
  42014. diff -Nur uClibc-0.9.33.2/libc/stdlib/ldiv.c uClibc-git/libc/stdlib/ldiv.c
  42015. --- uClibc-0.9.33.2/libc/stdlib/ldiv.c 2012-05-15 09:20:09.000000000 +0200
  42016. +++ uClibc-git/libc/stdlib/ldiv.c 2014-06-02 17:40:34.134712649 +0200
  42017. @@ -13,9 +13,8 @@
  42018. Lesser General Public License for more details.
  42019. You should have received a copy of the GNU Lesser General Public
  42020. - License along with the GNU C Library; if not, write to the Free
  42021. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42022. - 02111-1307 USA. */
  42023. + License along with the GNU C Library; if not, see
  42024. + <http://www.gnu.org/licenses/>. */
  42025. #include <features.h>
  42026. #include <stdlib.h>
  42027. diff -Nur uClibc-0.9.33.2/libc/stdlib/lldiv.c uClibc-git/libc/stdlib/lldiv.c
  42028. --- uClibc-0.9.33.2/libc/stdlib/lldiv.c 2012-05-15 09:20:09.000000000 +0200
  42029. +++ uClibc-git/libc/stdlib/lldiv.c 2014-06-02 17:40:34.134712649 +0200
  42030. @@ -13,9 +13,8 @@
  42031. Lesser General Public License for more details.
  42032. You should have received a copy of the GNU Lesser General Public
  42033. - License along with the GNU C Library; if not, write to the Free
  42034. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42035. - 02111-1307 USA. */
  42036. + License along with the GNU C Library; if not, see
  42037. + <http://www.gnu.org/licenses/>. */
  42038. #include <features.h>
  42039. #include <stdlib.h>
  42040. diff -Nur uClibc-0.9.33.2/libc/stdlib/lrand48.c uClibc-git/libc/stdlib/lrand48.c
  42041. --- uClibc-0.9.33.2/libc/stdlib/lrand48.c 2012-05-15 09:20:09.000000000 +0200
  42042. +++ uClibc-git/libc/stdlib/lrand48.c 2014-06-02 17:40:34.134712649 +0200
  42043. @@ -13,9 +13,8 @@
  42044. Lesser General Public License for more details.
  42045. You should have received a copy of the GNU Lesser General Public
  42046. - License along with the GNU C Library; if not, write to the Free
  42047. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42048. - 02111-1307 USA. */
  42049. + License along with the GNU C Library; if not, see
  42050. + <http://www.gnu.org/licenses/>. */
  42051. #include <stdlib.h>
  42052. diff -Nur uClibc-0.9.33.2/libc/stdlib/lrand48_r.c uClibc-git/libc/stdlib/lrand48_r.c
  42053. --- uClibc-0.9.33.2/libc/stdlib/lrand48_r.c 2012-05-15 09:20:09.000000000 +0200
  42054. +++ uClibc-git/libc/stdlib/lrand48_r.c 2014-06-02 17:40:34.134712649 +0200
  42055. @@ -13,9 +13,8 @@
  42056. Lesser General Public License for more details.
  42057. You should have received a copy of the GNU Lesser General Public
  42058. - License along with the GNU C Library; if not, write to the Free
  42059. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42060. - 02111-1307 USA. */
  42061. + License along with the GNU C Library; if not, see
  42062. + <http://www.gnu.org/licenses/>. */
  42063. #include <stdlib.h>
  42064. diff -Nur uClibc-0.9.33.2/libc/stdlib/Makefile.in uClibc-git/libc/stdlib/Makefile.in
  42065. --- uClibc-0.9.33.2/libc/stdlib/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  42066. +++ uClibc-git/libc/stdlib/Makefile.in 2014-06-02 17:40:34.130712627 +0200
  42067. @@ -12,16 +12,17 @@
  42068. include $(top_srcdir)libc/stdlib/malloc-standard/Makefile.in
  42069. CSRC-y := \
  42070. - abort.c getenv.c mkdtemp.c realpath.c canonicalize.c mkstemp.c \
  42071. + abort.c getenv.c mkdtemp.c realpath.c canonicalize.c mkstemp.c mkostemp.c \
  42072. rand.c random.c random_r.c setenv.c div.c ldiv.c lldiv.c \
  42073. getpt.c drand48-iter.c jrand48.c \
  42074. - jrand48_r.c lrand48.c lrand48_r.c mrand48.c mrand48_r.c nrand48.c \
  42075. + jrand48_r.c lcong48.c lrand48.c lrand48_r.c mrand48.c mrand48_r.c nrand48.c \
  42076. nrand48_r.c rand_r.c srand48.c srand48_r.c seed48.c seed48_r.c \
  42077. - valloc.c a64l.c l64a.c __uc_malloc.c
  42078. + a64l.c l64a.c __uc_malloc.c
  42079. +CSRC-$(UCLIBC_SUSV2_LEGACY) += valloc.c
  42080. CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_memalign.c
  42081. CSRC-$(UCLIBC_HAS_PTY) += grantpt.c unlockpt.c ptsname.c
  42082. CSRC-$(UCLIBC_HAS_ARC4RANDOM) += arc4random.c
  42083. -CSRC-$(UCLIBC_HAS_LFS) += mkstemp64.c
  42084. +CSRC-$(UCLIBC_HAS_LFS) += mkstemp64.c mkostemp64.c
  42085. CSRC-$(UCLIBC_HAS_FLOATS) += drand48.c drand48_r.c erand48.c erand48_r.c
  42086. CSRC-$(if $(findstring yy,$(UCLIBC_HAS_FLOATS)$(UCLIBC_SUSV3_LEGACY)),y) += \
  42087. gcvt.c
  42088. @@ -33,7 +34,7 @@
  42089. # multi source stdlib.c
  42090. CSRC-y += abs.c labs.c atoi.c atol.c strtol.c strtoul.c _stdlib_strto_l.c \
  42091. - qsort.c qsort_r.c bsearch.c \
  42092. + qsort.c qsort_r.c bsearch.c rpmatch.c \
  42093. llabs.c atoll.c strtoll.c strtoull.c _stdlib_strto_ll.c
  42094. # (aliases) strtoq.o strtouq.o
  42095. CSRC-$(UCLIBC_HAS_FLOATS) += atof.c
  42096. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/calloc.c uClibc-git/libc/stdlib/malloc/calloc.c
  42097. --- uClibc-0.9.33.2/libc/stdlib/malloc/calloc.c 2012-05-15 09:20:09.000000000 +0200
  42098. +++ uClibc-git/libc/stdlib/malloc/calloc.c 2014-06-02 17:40:34.134712649 +0200
  42099. @@ -14,8 +14,8 @@
  42100. * for more details.
  42101. *
  42102. * You should have received a copy of the GNU Library General Public License
  42103. - * along with this program; if not, write to the Free Software Foundation,
  42104. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  42105. + * along with this program; see the file COPYING.LIB. If not, see
  42106. + * <http://www.gnu.org/licenses/>.
  42107. */
  42108. #include <stdlib.h>
  42109. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/free.c uClibc-git/libc/stdlib/malloc/free.c
  42110. --- uClibc-0.9.33.2/libc/stdlib/malloc/free.c 2012-05-15 09:20:09.000000000 +0200
  42111. +++ uClibc-git/libc/stdlib/malloc/free.c 2014-06-02 17:40:34.134712649 +0200
  42112. @@ -28,7 +28,7 @@
  42113. static void
  42114. __free_to_heap (void *mem, struct heap_free_area **heap
  42115. #ifdef HEAP_USE_LOCKING
  42116. - , malloc_mutex_t *heap_lock
  42117. + , __UCLIBC_MUTEX_TYPE *heap_lock
  42118. #endif
  42119. )
  42120. {
  42121. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/heap.h uClibc-git/libc/stdlib/malloc/heap.h
  42122. --- uClibc-0.9.33.2/libc/stdlib/malloc/heap.h 2012-05-15 09:20:09.000000000 +0200
  42123. +++ uClibc-git/libc/stdlib/malloc/heap.h 2014-06-02 17:40:34.134712649 +0200
  42124. @@ -13,18 +13,13 @@
  42125. #include <features.h>
  42126. -
  42127. -/* On multi-threaded systems, the heap includes a lock. */
  42128. +#include <bits/uClibc_mutex.h>
  42129. #ifdef __UCLIBC_HAS_THREADS__
  42130. -# include <bits/uClibc_mutex.h>
  42131. # define HEAP_USE_LOCKING
  42132. -# define __heap_lock(heap_lock) __UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE(*(heap_lock))
  42133. -# define __heap_unlock(heap_lock) __UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE(*(heap_lock))
  42134. -#else
  42135. -# define __heap_lock(heap_lock)
  42136. -# define __heap_unlock(heap_lock)
  42137. #endif
  42138. +#define __heap_lock(heap_lock) __UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE(*(heap_lock))
  42139. +#define __heap_unlock(heap_lock) __UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE(*(heap_lock))
  42140. /* The heap allocates in multiples of, and aligned to, HEAP_GRANULARITY.
  42141. HEAP_GRANULARITY must be a power of 2. Malloc depends on this being the
  42142. @@ -35,11 +30,9 @@
  42143. -/* The HEAP_INIT macro can be used as a static initializer for a heap
  42144. - variable. The HEAP_INIT_WITH_FA variant is used to initialize a heap
  42145. +/* The HEAP_INIT_WITH_FA variant is used to initialize a heap
  42146. with an initial static free-area; its argument FA should be declared
  42147. using HEAP_DECLARE_STATIC_FREE_AREA. */
  42148. -# define HEAP_INIT 0
  42149. # define HEAP_INIT_WITH_FA(fa) &fa._fa
  42150. /* A free-list area `header'. These are actually stored at the _ends_ of
  42151. @@ -92,34 +85,21 @@
  42152. #define HEAP_MIN_FREE_AREA_SIZE \
  42153. HEAP_ADJUST_SIZE (sizeof (struct heap_free_area) + 32)
  42154. -
  42155. -/* branch-prediction macros; they may already be defined by libc. */
  42156. -#ifndef likely
  42157. -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
  42158. -#define likely(cond) __builtin_expect(!!(int)(cond), 1)
  42159. -#define unlikely(cond) __builtin_expect((int)(cond), 0)
  42160. -#else
  42161. -#define likely(cond) (cond)
  42162. -#define unlikely(cond) (cond)
  42163. -#endif
  42164. -#endif /* !likely */
  42165. -
  42166. -
  42167. /* Define HEAP_DEBUGGING to cause the heap routines to emit debugging info
  42168. to stderr when the variable __heap_debug is set to true. */
  42169. #ifdef HEAP_DEBUGGING
  42170. -extern int __heap_debug;
  42171. +extern int __heap_debug attribute_hidden;
  42172. #define HEAP_DEBUG(heap, str) (__heap_debug ? __heap_dump (heap, str) : 0)
  42173. #else
  42174. #define HEAP_DEBUG(heap, str) (void)0
  42175. #endif
  42176. /* Output a text representation of HEAP to stderr, labelling it with STR. */
  42177. -extern void __heap_dump (struct heap_free_area *heap, const char *str);
  42178. +extern void __heap_dump (struct heap_free_area *heap, const char *str) attribute_hidden;
  42179. /* Do some consistency checks on HEAP. If they fail, output an error
  42180. message to stderr, and exit. STR is printed with the failure message. */
  42181. -extern void __heap_check (struct heap_free_area *heap, const char *str);
  42182. +extern void __heap_check (struct heap_free_area *heap, const char *str) attribute_hidden;
  42183. /* Delete the free-area FA from HEAP. */
  42184. @@ -216,16 +196,16 @@
  42185. /* Allocate and return a block at least *SIZE bytes long from HEAP.
  42186. *SIZE is adjusted to reflect the actual amount allocated (which may be
  42187. greater than requested). */
  42188. -extern void *__heap_alloc (struct heap_free_area **heap, size_t *size);
  42189. +extern void *__heap_alloc (struct heap_free_area **heap, size_t *size) attribute_hidden;
  42190. /* Allocate SIZE bytes at address MEM in HEAP. Return the actual size
  42191. allocated, or 0 if we failed. */
  42192. -extern size_t __heap_alloc_at (struct heap_free_area **heap, void *mem, size_t size);
  42193. +extern size_t __heap_alloc_at (struct heap_free_area **heap, void *mem, size_t size) attribute_hidden;
  42194. /* Return the memory area MEM of size SIZE to HEAP.
  42195. Returns the heap free area into which the memory was placed. */
  42196. extern struct heap_free_area *__heap_free (struct heap_free_area **heap,
  42197. - void *mem, size_t size);
  42198. + void *mem, size_t size) attribute_hidden;
  42199. /* Return true if HEAP contains absolutely no memory. */
  42200. #define __heap_is_empty(heap) (! (heap))
  42201. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/Makefile.in uClibc-git/libc/stdlib/malloc/Makefile.in
  42202. --- uClibc-0.9.33.2/libc/stdlib/malloc/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  42203. +++ uClibc-git/libc/stdlib/malloc/Makefile.in 2014-06-02 17:40:34.134712649 +0200
  42204. @@ -9,12 +9,12 @@
  42205. subdirs += libc/stdlib/malloc
  42206. -CSRC := malloc.c calloc.c free.c realloc.c memalign.c \
  42207. +CSRC-y := malloc.c calloc.c free.c realloc.c memalign.c \
  42208. heap_alloc.c heap_alloc_at.c heap_free.c
  42209. # Turn on malloc debugging if requested
  42210. +CSRC-$(UCLIBC_MALLOC_DEBUGGING) += malloc_debug.c heap_debug.c
  42211. ifeq ($(UCLIBC_MALLOC_DEBUGGING),y)
  42212. -CSRC += malloc_debug.c heap_debug.c
  42213. CFLAGS += -DMALLOC_DEBUGGING -DHEAP_DEBUGGING
  42214. ifeq ($(UCLIBC_UCLINUX_BROKEN_MUNMAP),y)
  42215. CFLAGS += -DMALLOC_MMB_DEBUGGING
  42216. @@ -24,8 +24,8 @@
  42217. STDLIB_MALLOC_DIR := $(top_srcdir)libc/stdlib/malloc
  42218. STDLIB_MALLOC_OUT := $(top_builddir)libc/stdlib/malloc
  42219. -STDLIB_MALLOC_SRC := $(patsubst %.c,$(STDLIB_MALLOC_DIR)/%.c,$(CSRC))
  42220. -STDLIB_MALLOC_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_OUT)/%.o,$(CSRC))
  42221. +STDLIB_MALLOC_SRC := $(patsubst %.c,$(STDLIB_MALLOC_DIR)/%.c,$(CSRC-y))
  42222. +STDLIB_MALLOC_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_OUT)/%.o,$(CSRC-y))
  42223. libc-$(MALLOC) += $(STDLIB_MALLOC_OBJ)
  42224. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/malloc.c uClibc-git/libc/stdlib/malloc/malloc.c
  42225. --- uClibc-0.9.33.2/libc/stdlib/malloc/malloc.c 2012-05-15 09:20:09.000000000 +0200
  42226. +++ uClibc-git/libc/stdlib/malloc/malloc.c 2014-06-02 17:40:34.134712649 +0200
  42227. @@ -26,12 +26,12 @@
  42228. HEAP_DECLARE_STATIC_FREE_AREA (initial_fa, 256);
  42229. struct heap_free_area *__malloc_heap = HEAP_INIT_WITH_FA (initial_fa);
  42230. #ifdef HEAP_USE_LOCKING
  42231. -malloc_mutex_t __malloc_heap_lock = PTHREAD_MUTEX_INITIALIZER;
  42232. +__UCLIBC_MUTEX_INIT(__malloc_heap_lock,PTHREAD_MUTEX_INITIALIZER);
  42233. #endif
  42234. #if defined(MALLOC_USE_LOCKING) && defined(MALLOC_USE_SBRK)
  42235. /* A lock protecting our use of sbrk. */
  42236. -malloc_mutex_t __malloc_sbrk_lock;
  42237. +__UCLIBC_MUTEX(__malloc_sbrk_lock);
  42238. #endif /* MALLOC_USE_LOCKING && MALLOC_USE_SBRK */
  42239. @@ -46,7 +46,7 @@
  42240. HEAP_DECLARE_STATIC_FREE_AREA (initial_mmb_fa, 48); /* enough for 3 mmbs */
  42241. struct heap_free_area *__malloc_mmb_heap = HEAP_INIT_WITH_FA (initial_mmb_fa);
  42242. #ifdef HEAP_USE_LOCKING
  42243. -malloc_mutex_t __malloc_mmb_heap_lock = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
  42244. +__UCLIBC_MUTEX_INIT(__malloc_mmb_heap_lock,PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP);
  42245. #endif
  42246. #endif /* __UCLIBC_UCLINUX_BROKEN_MUNMAP__ */
  42247. @@ -59,7 +59,7 @@
  42248. static void *
  42249. __malloc_from_heap (size_t size, struct heap_free_area **heap
  42250. #ifdef HEAP_USE_LOCKING
  42251. - , malloc_mutex_t *heap_lock
  42252. + , __UCLIBC_MUTEX_TYPE *heap_lock
  42253. #endif
  42254. )
  42255. {
  42256. @@ -124,7 +124,7 @@
  42257. MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);
  42258. #else
  42259. block = mmap ((void *)0, block_size, PROT_READ | PROT_WRITE,
  42260. - MAP_SHARED | MAP_ANONYMOUS | MAP_UNINITIALIZE, 0, 0);
  42261. + MAP_SHARED | MAP_ANONYMOUS | MAP_UNINITIALIZED, 0, 0);
  42262. #endif
  42263. #endif /* MALLOC_USE_SBRK */
  42264. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/malloc.h uClibc-git/libc/stdlib/malloc/malloc.h
  42265. --- uClibc-0.9.33.2/libc/stdlib/malloc/malloc.h 2012-05-15 09:20:09.000000000 +0200
  42266. +++ uClibc-git/libc/stdlib/malloc/malloc.h 2014-06-02 17:40:34.134712649 +0200
  42267. @@ -20,8 +20,7 @@
  42268. (__alignof__ (double) > sizeof (size_t) ? __alignof__ (double) : sizeof (size_t))
  42269. /* The system pagesize... */
  42270. -extern size_t __pagesize;
  42271. -#define MALLOC_PAGE_SIZE __pagesize
  42272. +#define MALLOC_PAGE_SIZE sysconf(_SC_PAGESIZE)
  42273. /* The minimum size of block we request from the the system to extend the
  42274. heap for small allocations (we may request a bigger block if necessary to
  42275. @@ -128,69 +127,46 @@
  42276. /* Return the size of a malloc allocation, given the user address. */
  42277. #define MALLOC_SIZE(addr) (*(size_t *)MALLOC_BASE(addr))
  42278. +#include <bits/uClibc_mutex.h>
  42279. -/* Locking for multithreaded apps. */
  42280. #ifdef __UCLIBC_HAS_THREADS__
  42281. -
  42282. -# include <bits/uClibc_mutex.h>
  42283. -
  42284. # define MALLOC_USE_LOCKING
  42285. +#endif
  42286. -typedef __UCLIBC_MUTEX_TYPE malloc_mutex_t;
  42287. -# define MALLOC_MUTEX_INIT __UCLIBC_MUTEX_INITIALIZER
  42288. -
  42289. -# ifdef MALLOC_USE_SBRK
  42290. +#ifdef MALLOC_USE_SBRK
  42291. /* This lock is used to serialize uses of the `sbrk' function (in both
  42292. malloc and free, sbrk may be used several times in succession, and
  42293. things will break if these multiple calls are interleaved with another
  42294. thread's use of sbrk!). */
  42295. -extern malloc_mutex_t __malloc_sbrk_lock;
  42296. +__UCLIBC_MUTEX_EXTERN(__malloc_sbrk_lock) attribute_hidden;
  42297. # define __malloc_lock_sbrk() __UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE (__malloc_sbrk_lock)
  42298. # define __malloc_unlock_sbrk() __UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE (__malloc_sbrk_lock)
  42299. -# endif /* MALLOC_USE_SBRK */
  42300. -
  42301. -#else /* !__UCLIBC_HAS_THREADS__ */
  42302. -
  42303. -/* Without threads, mutex operations are a nop. */
  42304. +#else
  42305. # define __malloc_lock_sbrk() (void)0
  42306. # define __malloc_unlock_sbrk() (void)0
  42307. -
  42308. -#endif /* __UCLIBC_HAS_THREADS__ */
  42309. -
  42310. -
  42311. -/* branch-prediction macros; they may already be defined by libc. */
  42312. -#ifndef likely
  42313. -#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 96)
  42314. -#define likely(cond) __builtin_expect(!!(int)(cond), 1)
  42315. -#define unlikely(cond) __builtin_expect((int)(cond), 0)
  42316. -#else
  42317. -#define likely(cond) (cond)
  42318. -#define unlikely(cond) (cond)
  42319. -#endif
  42320. -#endif /* !likely */
  42321. -
  42322. +#endif /* MALLOC_USE_SBRK */
  42323. /* Define MALLOC_DEBUGGING to cause malloc to emit debugging info to stderr
  42324. when the variable __malloc_debug is set to true. */
  42325. #ifdef MALLOC_DEBUGGING
  42326. -extern void __malloc_debug_init (void);
  42327. +extern void __malloc_debug_init (void) attribute_hidden;
  42328. /* The number of spaces in a malloc debug indent level. */
  42329. #define MALLOC_DEBUG_INDENT_SIZE 3
  42330. -extern int __malloc_debug, __malloc_check;
  42331. +extern int __malloc_debug attribute_hidden, __malloc_check attribute_hidden;
  42332. # define MALLOC_DEBUG(indent, fmt, args...) \
  42333. (__malloc_debug ? __malloc_debug_printf (indent, fmt , ##args) : 0)
  42334. # define MALLOC_DEBUG_INDENT(indent) \
  42335. (__malloc_debug ? __malloc_debug_indent (indent) : 0)
  42336. -extern int __malloc_debug_cur_indent;
  42337. +extern int __malloc_debug_cur_indent attribute_hidden;
  42338. /* Print FMT and args indented at the current debug print level, followed
  42339. by a newline, and change the level by INDENT. */
  42340. -extern void __malloc_debug_printf (int indent, const char *fmt, ...);
  42341. +extern void __malloc_debug_printf (int indent, const char *fmt, ...) attribute_hidden;
  42342. /* Change the current debug print level by INDENT, and return the value. */
  42343. #define __malloc_debug_indent(indent) (__malloc_debug_cur_indent += indent)
  42344. @@ -220,10 +196,18 @@
  42345. /* The malloc heap. */
  42346. -extern struct heap_free_area *__malloc_heap;
  42347. +extern struct heap_free_area *__malloc_heap attribute_hidden;
  42348. #ifdef __UCLIBC_HAS_THREADS__
  42349. -extern malloc_mutex_t __malloc_heap_lock;
  42350. -#ifdef __UCLIBC_UCLINUX_BROKEN_MUNMAP__
  42351. -extern malloc_mutex_t __malloc_mmb_heap_lock;
  42352. -#endif
  42353. +__UCLIBC_MUTEX_EXTERN(__malloc_heap_lock)
  42354. +# ifndef __LINUXTHREADS_OLD__
  42355. + attribute_hidden
  42356. +# endif
  42357. + ;
  42358. +# ifdef __UCLIBC_UCLINUX_BROKEN_MUNMAP__
  42359. +__UCLIBC_MUTEX_EXTERN(__malloc_mmb_heap_lock)
  42360. +# ifndef __LINUXTHREADS_OLD__
  42361. + attribute_hidden
  42362. +# endif
  42363. + ;
  42364. +# endif
  42365. #endif
  42366. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc/memalign.c uClibc-git/libc/stdlib/malloc/memalign.c
  42367. --- uClibc-0.9.33.2/libc/stdlib/malloc/memalign.c 2012-05-15 09:20:09.000000000 +0200
  42368. +++ uClibc-git/libc/stdlib/malloc/memalign.c 2014-06-02 17:40:34.134712649 +0200
  42369. @@ -14,7 +14,6 @@
  42370. #include <stdlib.h>
  42371. #include <unistd.h>
  42372. #include <sys/mman.h>
  42373. -#include <sys/param.h> /* MAX */
  42374. #include "malloc.h"
  42375. #include "heap.h"
  42376. @@ -30,6 +29,8 @@
  42377. */
  42378. void *memalign (size_t alignment, size_t size);
  42379. +/* XXX shadow outer malloc.h */
  42380. +libc_hidden_proto(memalign)
  42381. void *
  42382. memalign (size_t alignment, size_t size)
  42383. {
  42384. @@ -92,3 +93,4 @@
  42385. return MALLOC_SETUP (base, end_addr - (unsigned long)base);
  42386. }
  42387. +libc_hidden_def(memalign)
  42388. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-simple/alloc.c uClibc-git/libc/stdlib/malloc-simple/alloc.c
  42389. --- uClibc-0.9.33.2/libc/stdlib/malloc-simple/alloc.c 2012-05-15 09:20:09.000000000 +0200
  42390. +++ uClibc-git/libc/stdlib/malloc-simple/alloc.c 2014-06-02 17:40:34.134712649 +0200
  42391. @@ -17,6 +17,7 @@
  42392. #include <sys/mman.h>
  42393. #include <malloc.h>
  42394. +extern int weak_function __libc_free_aligned(void *ptr) attribute_hidden;
  42395. #ifdef L_malloc
  42396. void *malloc(size_t size)
  42397. @@ -36,7 +37,7 @@
  42398. #ifdef __ARCH_USE_MMU__
  42399. # define MMAP_FLAGS MAP_PRIVATE | MAP_ANONYMOUS
  42400. #else
  42401. -# define MMAP_FLAGS MAP_SHARED | MAP_ANONYMOUS | MAP_UNINITIALIZE
  42402. +# define MMAP_FLAGS MAP_SHARED | MAP_ANONYMOUS | MAP_UNINITIALIZED
  42403. #endif
  42404. result = mmap((void *) 0, size + sizeof(size_t), PROT_READ | PROT_WRITE,
  42405. @@ -63,7 +64,7 @@
  42406. result = malloc(size);
  42407. #ifndef __ARCH_USE_MMU__
  42408. - /* mmap'd with MAP_UNINITIALIZE, we have to blank memory ourselves */
  42409. + /* mmap'd with MAP_UNINITIALIZED, we have to blank memory ourselves */
  42410. if (result != NULL) {
  42411. memset(result, 0, size);
  42412. }
  42413. @@ -95,7 +96,6 @@
  42414. #endif
  42415. #ifdef L_free
  42416. -extern int weak_function __libc_free_aligned(void *ptr);
  42417. void free(void *ptr)
  42418. {
  42419. if (unlikely(ptr == NULL))
  42420. @@ -123,7 +123,7 @@
  42421. __ptr_t aligned; /* The address that memaligned returned. */
  42422. __ptr_t exact; /* The address that malloc returned. */
  42423. };
  42424. -struct alignlist *_aligned_blocks;
  42425. +static struct alignlist *_aligned_blocks;
  42426. /* Return memory to the heap. */
  42427. int __libc_free_aligned(void *ptr)
  42428. @@ -182,4 +182,5 @@
  42429. return result;
  42430. }
  42431. +libc_hidden_def(memalign)
  42432. #endif
  42433. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-simple/Makefile.in uClibc-git/libc/stdlib/malloc-simple/Makefile.in
  42434. --- uClibc-0.9.33.2/libc/stdlib/malloc-simple/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  42435. +++ uClibc-git/libc/stdlib/malloc-simple/Makefile.in 2014-06-02 17:40:34.134712649 +0200
  42436. @@ -10,11 +10,13 @@
  42437. STDLIB_MALLOC_SIMPLE_DIR := $(top_srcdir)libc/stdlib/malloc-simple
  42438. STDLIB_MALLOC_SIMPLE_OUT := $(top_builddir)libc/stdlib/malloc-simple
  42439. -CSRC := $(notdir $(wildcard $(STDLIB_MALLOC_SIMPLE_DIR)/*.c))
  42440. -CSRC := $(filter-out alloc.c,$(CSRC))
  42441. +CSRC-y := $(notdir $(wildcard $(STDLIB_MALLOC_SIMPLE_DIR)/*.c))
  42442. +# multi source alloc.c
  42443. +CSRC- := alloc.c
  42444. +CSRC-y := $(filter-out $(CSRC-),$(CSRC-y))
  42445. -STDLIB_MALLOC_SIMPLE_SRC := $(patsubst %.c,$(STDLIB_MALLOC_SIMPLE_DIR)/%.c,$(CSRC))
  42446. -STDLIB_MALLOC_SIMPLE_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_SIMPLE_OUT)/%.o,$(CSRC))
  42447. +STDLIB_MALLOC_SIMPLE_SRC := $(patsubst %.c,$(STDLIB_MALLOC_SIMPLE_DIR)/%.c,$(CSRC-y))
  42448. +STDLIB_MALLOC_SIMPLE_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_SIMPLE_OUT)/%.o,$(CSRC-y))
  42449. libc-$(MALLOC_SIMPLE) += $(STDLIB_MALLOC_SIMPLE_OBJ)
  42450. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-standard/Makefile.in uClibc-git/libc/stdlib/malloc-standard/Makefile.in
  42451. --- uClibc-0.9.33.2/libc/stdlib/malloc-standard/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  42452. +++ uClibc-git/libc/stdlib/malloc-standard/Makefile.in 2014-06-02 17:40:34.134712649 +0200
  42453. @@ -7,15 +7,13 @@
  42454. subdirs += libc/stdlib/malloc-standard
  42455. -# calloc.c can be found at uClibc/libc/stdlib/calloc.c
  42456. -# valloc.c can be found at uClibc/libc/stdlib/valloc.c
  42457. -CSRC := malloc.c calloc.c realloc.c free.c memalign.c mallopt.c mallinfo.c
  42458. -
  42459. STDLIB_MALLOC_STANDARD_DIR := $(top_srcdir)libc/stdlib/malloc-standard
  42460. STDLIB_MALLOC_STANDARD_OUT := $(top_builddir)libc/stdlib/malloc-standard
  42461. -STDLIB_MALLOC_STANDARD_SRC := $(patsubst %.c,$(STDLIB_MALLOC_STANDARD_DIR)/%.c,$(CSRC))
  42462. -STDLIB_MALLOC_STANDARD_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_STANDARD_OUT)/%.o,$(CSRC))
  42463. +CSRC-y := $(notdir $(wildcard $(STDLIB_MALLOC_STANDARD_DIR)/*.c))
  42464. +
  42465. +STDLIB_MALLOC_STANDARD_SRC := $(patsubst %.c,$(STDLIB_MALLOC_STANDARD_DIR)/%.c,$(CSRC-y))
  42466. +STDLIB_MALLOC_STANDARD_OBJ := $(patsubst %.c,$(STDLIB_MALLOC_STANDARD_OUT)/%.o,$(CSRC-y))
  42467. libc-$(MALLOC_STANDARD) += $(STDLIB_MALLOC_STANDARD_OBJ)
  42468. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-standard/mallinfo.c uClibc-git/libc/stdlib/malloc-standard/mallinfo.c
  42469. --- uClibc-0.9.33.2/libc/stdlib/malloc-standard/mallinfo.c 2012-05-15 09:20:09.000000000 +0200
  42470. +++ uClibc-git/libc/stdlib/malloc-standard/mallinfo.c 2014-06-02 17:40:34.134712649 +0200
  42471. @@ -15,6 +15,7 @@
  42472. */
  42473. #include "malloc.h"
  42474. +#include <stdio.h> /* fprintf */
  42475. /* ------------------------------ mallinfo ------------------------------ */
  42476. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-standard/malloc.h uClibc-git/libc/stdlib/malloc-standard/malloc.h
  42477. --- uClibc-0.9.33.2/libc/stdlib/malloc-standard/malloc.h 2012-05-15 09:20:09.000000000 +0200
  42478. +++ uClibc-git/libc/stdlib/malloc-standard/malloc.h 2014-06-02 17:40:34.134712649 +0200
  42479. @@ -26,7 +26,11 @@
  42480. -__UCLIBC_MUTEX_EXTERN(__malloc_lock);
  42481. +__UCLIBC_MUTEX_EXTERN(__malloc_lock)
  42482. +#if defined __UCLIBC_HAS_THREADS__ && !defined __LINUXTHREADS_OLD__
  42483. + attribute_hidden
  42484. +#endif
  42485. + ;
  42486. #define __MALLOC_LOCK __UCLIBC_MUTEX_LOCK(__malloc_lock)
  42487. #define __MALLOC_UNLOCK __UCLIBC_MUTEX_UNLOCK(__malloc_lock)
  42488. @@ -349,13 +353,13 @@
  42489. #endif
  42490. #ifdef __ARCH_USE_MMU__
  42491. -# define _MAP_UNINITIALIZE 0
  42492. +# define _MAP_UNINITIALIZED 0
  42493. #else
  42494. -# define _MAP_UNINITIALIZE MAP_UNINITIALIZE
  42495. +# define _MAP_UNINITIALIZED MAP_UNINITIALIZED
  42496. #endif
  42497. #define MMAP(addr, size, prot) \
  42498. - (mmap((addr), (size), (prot), MAP_PRIVATE|MAP_ANONYMOUS|_MAP_UNINITIALIZE, 0, 0))
  42499. + (mmap((addr), (size), (prot), MAP_PRIVATE|MAP_ANONYMOUS|_MAP_UNINITIALIZED, 0, 0))
  42500. /* ----------------------- Chunk representations ----------------------- */
  42501. @@ -910,7 +914,7 @@
  42502. malloc relies on the property that malloc_state is initialized to
  42503. all zeroes (as is true of C statics).
  42504. */
  42505. -extern struct malloc_state __malloc_state; /* never directly referenced */
  42506. +extern struct malloc_state __malloc_state attribute_hidden; /* never directly referenced */
  42507. /*
  42508. All uses of av_ are via get_malloc_state().
  42509. @@ -947,12 +951,12 @@
  42510. #define check_malloced_chunk(P,N) __do_check_malloced_chunk(P,N)
  42511. #define check_malloc_state() __do_check_malloc_state()
  42512. -extern void __do_check_chunk(mchunkptr p);
  42513. -extern void __do_check_free_chunk(mchunkptr p);
  42514. -extern void __do_check_inuse_chunk(mchunkptr p);
  42515. -extern void __do_check_remalloced_chunk(mchunkptr p, size_t s);
  42516. -extern void __do_check_malloced_chunk(mchunkptr p, size_t s);
  42517. -extern void __do_check_malloc_state(void);
  42518. +extern void __do_check_chunk(mchunkptr p) attribute_hidden;
  42519. +extern void __do_check_free_chunk(mchunkptr p) attribute_hidden;
  42520. +extern void __do_check_inuse_chunk(mchunkptr p) attribute_hidden;
  42521. +extern void __do_check_remalloced_chunk(mchunkptr p, size_t s) attribute_hidden;
  42522. +extern void __do_check_malloced_chunk(mchunkptr p, size_t s) attribute_hidden;
  42523. +extern void __do_check_malloc_state(void) attribute_hidden;
  42524. #include <assert.h>
  42525. diff -Nur uClibc-0.9.33.2/libc/stdlib/malloc-standard/memalign.c uClibc-git/libc/stdlib/malloc-standard/memalign.c
  42526. --- uClibc-0.9.33.2/libc/stdlib/malloc-standard/memalign.c 2012-05-15 09:20:09.000000000 +0200
  42527. +++ uClibc-git/libc/stdlib/malloc-standard/memalign.c 2014-06-02 17:40:34.134712649 +0200
  42528. @@ -127,4 +127,4 @@
  42529. __MALLOC_UNLOCK;
  42530. return retval;
  42531. }
  42532. -
  42533. +libc_hidden_def(memalign)
  42534. diff -Nur uClibc-0.9.33.2/libc/stdlib/mkdtemp.c uClibc-git/libc/stdlib/mkdtemp.c
  42535. --- uClibc-0.9.33.2/libc/stdlib/mkdtemp.c 2012-05-15 09:20:09.000000000 +0200
  42536. +++ uClibc-git/libc/stdlib/mkdtemp.c 2014-06-02 17:40:34.158712781 +0200
  42537. @@ -14,8 +14,7 @@
  42538. You should have received a copy of the GNU Library General Public
  42539. License along with the GNU C Library; see the file COPYING.LIB. If not,
  42540. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  42541. - Boston, MA 02111-1307, USA. */
  42542. + see <http://www.gnu.org/licenses/>. */
  42543. #include <stdio.h>
  42544. #include <stdlib.h>
  42545. diff -Nur uClibc-0.9.33.2/libc/stdlib/mkostemp64.c uClibc-git/libc/stdlib/mkostemp64.c
  42546. --- uClibc-0.9.33.2/libc/stdlib/mkostemp64.c 1970-01-01 01:00:00.000000000 +0100
  42547. +++ uClibc-git/libc/stdlib/mkostemp64.c 2014-06-02 17:40:34.158712781 +0200
  42548. @@ -0,0 +1,31 @@
  42549. +/* Copyright (C) 2000-2012 Free Software Foundation, Inc.
  42550. + This file is part of the GNU C Library.
  42551. +
  42552. + The GNU C Library is free software; you can redistribute it and/or
  42553. + modify it under the terms of the GNU Lesser General Public
  42554. + License as published by the Free Software Foundation; either
  42555. + version 2.1 of the License, or (at your option) any later version.
  42556. +
  42557. + The GNU C Library is distributed in the hope that it will be useful,
  42558. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  42559. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  42560. + Lesser General Public License for more details.
  42561. +
  42562. + You should have received a copy of the GNU Lesser General Public
  42563. + License along with the GNU C Library; if not, see
  42564. + <http://www.gnu.org/licenses/>. */
  42565. +
  42566. +#include <fcntl.h>
  42567. +#include <stdio.h>
  42568. +#include <stdlib.h>
  42569. +#include "../misc/internals/tempname.h"
  42570. +
  42571. +/* Generate a unique temporary file name from TEMPLATE.
  42572. + The last six characters of TEMPLATE must be "XXXXXX";
  42573. + they are replaced with a string that makes the filename unique.
  42574. + Then open the file and return a fd. */
  42575. +int
  42576. +mkostemp64 (char *template, int flags)
  42577. +{
  42578. + return __gen_tempname (template, __GT_BIGFILE, flags | O_LARGEFILE);
  42579. +}
  42580. diff -Nur uClibc-0.9.33.2/libc/stdlib/mkostemp.c uClibc-git/libc/stdlib/mkostemp.c
  42581. --- uClibc-0.9.33.2/libc/stdlib/mkostemp.c 1970-01-01 01:00:00.000000000 +0100
  42582. +++ uClibc-git/libc/stdlib/mkostemp.c 2014-06-02 17:40:34.158712781 +0200
  42583. @@ -0,0 +1,30 @@
  42584. +/* Copyright (C) 1998-2012 Free Software Foundation, Inc.
  42585. + This file is part of the GNU C Library.
  42586. +
  42587. + The GNU C Library is free software; you can redistribute it and/or
  42588. + modify it under the terms of the GNU Lesser General Public
  42589. + License as published by the Free Software Foundation; either
  42590. + version 2.1 of the License, or (at your option) any later version.
  42591. +
  42592. + The GNU C Library is distributed in the hope that it will be useful,
  42593. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  42594. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  42595. + Lesser General Public License for more details.
  42596. +
  42597. + You should have received a copy of the GNU Lesser General Public
  42598. + License along with the GNU C Library; if not, see
  42599. + <http://www.gnu.org/licenses/>. */
  42600. +
  42601. +#include <stdio.h>
  42602. +#include <stdlib.h>
  42603. +#include "../misc/internals/tempname.h"
  42604. +
  42605. +/* Generate a unique temporary file name from TEMPLATE.
  42606. + The last six characters of TEMPLATE must be "XXXXXX";
  42607. + they are replaced with a string that makes the filename unique.
  42608. + Then open the file and return a fd. */
  42609. +int
  42610. +mkostemp (char *template, int flags)
  42611. +{
  42612. + return __gen_tempname (template, __GT_FILE, flags);
  42613. +}
  42614. diff -Nur uClibc-0.9.33.2/libc/stdlib/mkstemp64.c uClibc-git/libc/stdlib/mkstemp64.c
  42615. --- uClibc-0.9.33.2/libc/stdlib/mkstemp64.c 2012-05-15 09:20:09.000000000 +0200
  42616. +++ uClibc-git/libc/stdlib/mkstemp64.c 2014-06-02 17:40:34.158712781 +0200
  42617. @@ -13,8 +13,7 @@
  42618. You should have received a copy of the GNU Library General Public
  42619. License along with the GNU C Library; see the file COPYING.LIB. If not,
  42620. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  42621. - Boston, MA 02111-1307, USA. */
  42622. + see <http://www.gnu.org/licenses/>. */
  42623. #include <stdio.h>
  42624. #include <stdlib.h>
  42625. diff -Nur uClibc-0.9.33.2/libc/stdlib/mkstemp.c uClibc-git/libc/stdlib/mkstemp.c
  42626. --- uClibc-0.9.33.2/libc/stdlib/mkstemp.c 2012-05-15 09:20:09.000000000 +0200
  42627. +++ uClibc-git/libc/stdlib/mkstemp.c 2014-06-02 17:40:34.158712781 +0200
  42628. @@ -13,8 +13,7 @@
  42629. You should have received a copy of the GNU Library General Public
  42630. License along with the GNU C Library; see the file COPYING.LIB. If not,
  42631. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  42632. - Boston, MA 02111-1307, USA. */
  42633. + see <http://www.gnu.org/licenses/>. */
  42634. #include <stdio.h>
  42635. #include <stdlib.h>
  42636. diff -Nur uClibc-0.9.33.2/libc/stdlib/mktemp.c uClibc-git/libc/stdlib/mktemp.c
  42637. --- uClibc-0.9.33.2/libc/stdlib/mktemp.c 2012-05-15 09:20:09.000000000 +0200
  42638. +++ uClibc-git/libc/stdlib/mktemp.c 2014-06-02 17:40:34.158712781 +0200
  42639. @@ -13,8 +13,7 @@
  42640. You should have received a copy of the GNU Library General Public
  42641. License along with the GNU C Library; see the file COPYING.LIB. If not,
  42642. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  42643. - Boston, MA 02111-1307, USA. */
  42644. + see <http://www.gnu.org/licenses/>. */
  42645. #include <stdio.h>
  42646. #include <stdlib.h>
  42647. diff -Nur uClibc-0.9.33.2/libc/stdlib/mrand48.c uClibc-git/libc/stdlib/mrand48.c
  42648. --- uClibc-0.9.33.2/libc/stdlib/mrand48.c 2012-05-15 09:20:09.000000000 +0200
  42649. +++ uClibc-git/libc/stdlib/mrand48.c 2014-06-02 17:40:34.158712781 +0200
  42650. @@ -13,9 +13,8 @@
  42651. Lesser General Public License for more details.
  42652. You should have received a copy of the GNU Lesser General Public
  42653. - License along with the GNU C Library; if not, write to the Free
  42654. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42655. - 02111-1307 USA. */
  42656. + License along with the GNU C Library; if not, see
  42657. + <http://www.gnu.org/licenses/>. */
  42658. #include <stdlib.h>
  42659. diff -Nur uClibc-0.9.33.2/libc/stdlib/mrand48_r.c uClibc-git/libc/stdlib/mrand48_r.c
  42660. --- uClibc-0.9.33.2/libc/stdlib/mrand48_r.c 2012-05-15 09:20:09.000000000 +0200
  42661. +++ uClibc-git/libc/stdlib/mrand48_r.c 2014-06-02 17:40:34.162712804 +0200
  42662. @@ -13,9 +13,8 @@
  42663. Lesser General Public License for more details.
  42664. You should have received a copy of the GNU Lesser General Public
  42665. - License along with the GNU C Library; if not, write to the Free
  42666. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42667. - 02111-1307 USA. */
  42668. + License along with the GNU C Library; if not, see
  42669. + <http://www.gnu.org/licenses/>. */
  42670. #include <stdlib.h>
  42671. diff -Nur uClibc-0.9.33.2/libc/stdlib/nrand48.c uClibc-git/libc/stdlib/nrand48.c
  42672. --- uClibc-0.9.33.2/libc/stdlib/nrand48.c 2012-05-15 09:20:09.000000000 +0200
  42673. +++ uClibc-git/libc/stdlib/nrand48.c 2014-06-02 17:40:34.162712804 +0200
  42674. @@ -13,9 +13,8 @@
  42675. Lesser General Public License for more details.
  42676. You should have received a copy of the GNU Lesser General Public
  42677. - License along with the GNU C Library; if not, write to the Free
  42678. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42679. - 02111-1307 USA. */
  42680. + License along with the GNU C Library; if not, see
  42681. + <http://www.gnu.org/licenses/>. */
  42682. #include <stdlib.h>
  42683. diff -Nur uClibc-0.9.33.2/libc/stdlib/nrand48_r.c uClibc-git/libc/stdlib/nrand48_r.c
  42684. --- uClibc-0.9.33.2/libc/stdlib/nrand48_r.c 2012-05-15 09:20:09.000000000 +0200
  42685. +++ uClibc-git/libc/stdlib/nrand48_r.c 2014-06-02 17:40:34.162712804 +0200
  42686. @@ -13,9 +13,8 @@
  42687. Lesser General Public License for more details.
  42688. You should have received a copy of the GNU Lesser General Public
  42689. - License along with the GNU C Library; if not, write to the Free
  42690. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42691. - 02111-1307 USA. */
  42692. + License along with the GNU C Library; if not, see
  42693. + <http://www.gnu.org/licenses/>. */
  42694. #include <stdlib.h>
  42695. diff -Nur uClibc-0.9.33.2/libc/stdlib/posix_memalign.c uClibc-git/libc/stdlib/posix_memalign.c
  42696. --- uClibc-0.9.33.2/libc/stdlib/posix_memalign.c 2012-05-15 09:20:09.000000000 +0200
  42697. +++ uClibc-git/libc/stdlib/posix_memalign.c 2014-06-02 17:40:34.162712804 +0200
  42698. @@ -15,9 +15,8 @@
  42699. * for more details.
  42700. *
  42701. * You should have received a copy of the GNU Library General Public License
  42702. - * along with this program; if not, write to the Free Software Foundation,
  42703. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  42704. - *
  42705. + * along with this program; see the file COPYING.LIB. If not, see
  42706. + * <http://www.gnu.org/licenses/>.
  42707. */
  42708. #include <stdlib.h>
  42709. diff -Nur uClibc-0.9.33.2/libc/stdlib/ptsname.c uClibc-git/libc/stdlib/ptsname.c
  42710. --- uClibc-0.9.33.2/libc/stdlib/ptsname.c 2012-05-15 09:20:09.000000000 +0200
  42711. +++ uClibc-git/libc/stdlib/ptsname.c 2014-06-02 17:40:34.162712804 +0200
  42712. @@ -13,9 +13,8 @@
  42713. Lesser General Public License for more details.
  42714. You should have received a copy of the GNU Lesser General Public
  42715. - License along with the GNU C Library; if not, write to the Free
  42716. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42717. - 02111-1307 USA. */
  42718. + License along with the GNU C Library; if not, see
  42719. + <http://www.gnu.org/licenses/>. */
  42720. #include <stdio.h>
  42721. #include <errno.h>
  42722. diff -Nur uClibc-0.9.33.2/libc/stdlib/pty-private.h uClibc-git/libc/stdlib/pty-private.h
  42723. --- uClibc-0.9.33.2/libc/stdlib/pty-private.h 2012-05-15 09:20:09.000000000 +0200
  42724. +++ uClibc-git/libc/stdlib/pty-private.h 2014-06-02 17:40:34.162712804 +0200
  42725. @@ -15,8 +15,7 @@
  42726. You should have received a copy of the GNU Library General Public
  42727. License along with the GNU C Library; see the file COPYING.LIB. If not,
  42728. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  42729. - Boston, MA 02111-1307, USA. */
  42730. + see <http://www.gnu.org/licenses/>. */
  42731. #ifndef _PTY_PRIVATE_H
  42732. #define _PTY_PRIVATE_H 1
  42733. diff -Nur uClibc-0.9.33.2/libc/stdlib/rand_r.c uClibc-git/libc/stdlib/rand_r.c
  42734. --- uClibc-0.9.33.2/libc/stdlib/rand_r.c 2012-05-15 09:20:09.000000000 +0200
  42735. +++ uClibc-git/libc/stdlib/rand_r.c 2014-06-02 17:40:34.162712804 +0200
  42736. @@ -14,9 +14,8 @@
  42737. Lesser General Public License for more details.
  42738. You should have received a copy of the GNU Lesser General Public
  42739. - License along with the GNU C Library; if not, write to the Free
  42740. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42741. - 02111-1307 USA. */
  42742. + License along with the GNU C Library; if not, see
  42743. + <http://www.gnu.org/licenses/>. */
  42744. #include <stdlib.h>
  42745. diff -Nur uClibc-0.9.33.2/libc/stdlib/rpmatch.c uClibc-git/libc/stdlib/rpmatch.c
  42746. --- uClibc-0.9.33.2/libc/stdlib/rpmatch.c 1970-01-01 01:00:00.000000000 +0100
  42747. +++ uClibc-git/libc/stdlib/rpmatch.c 2014-06-02 17:40:34.162712804 +0200
  42748. @@ -0,0 +1,7 @@
  42749. +/* Copyright (C) 2012 Bernhard Reutner-Fischer <uclibc@uclibc.org>
  42750. + *
  42751. + * Licensed under the LGPL v2.1+, see the file COPYING.LIB in this tarball.
  42752. + */
  42753. +
  42754. +#define L_rpmatch
  42755. +#include "stdlib.c"
  42756. diff -Nur uClibc-0.9.33.2/libc/stdlib/seed48.c uClibc-git/libc/stdlib/seed48.c
  42757. --- uClibc-0.9.33.2/libc/stdlib/seed48.c 2012-05-15 09:20:09.000000000 +0200
  42758. +++ uClibc-git/libc/stdlib/seed48.c 2014-06-02 17:40:34.162712804 +0200
  42759. @@ -13,9 +13,8 @@
  42760. Lesser General Public License for more details.
  42761. You should have received a copy of the GNU Lesser General Public
  42762. - License along with the GNU C Library; if not, write to the Free
  42763. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42764. - 02111-1307 USA. */
  42765. + License along with the GNU C Library; if not, see
  42766. + <http://www.gnu.org/licenses/>. */
  42767. #include <stdlib.h>
  42768. diff -Nur uClibc-0.9.33.2/libc/stdlib/seed48_r.c uClibc-git/libc/stdlib/seed48_r.c
  42769. --- uClibc-0.9.33.2/libc/stdlib/seed48_r.c 2012-05-15 09:20:09.000000000 +0200
  42770. +++ uClibc-git/libc/stdlib/seed48_r.c 2014-06-02 17:40:34.162712804 +0200
  42771. @@ -13,9 +13,8 @@
  42772. Lesser General Public License for more details.
  42773. You should have received a copy of the GNU Lesser General Public
  42774. - License along with the GNU C Library; if not, write to the Free
  42775. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42776. - 02111-1307 USA. */
  42777. + License along with the GNU C Library; if not, see
  42778. + <http://www.gnu.org/licenses/>. */
  42779. #include <stdlib.h>
  42780. #include <string.h>
  42781. diff -Nur uClibc-0.9.33.2/libc/stdlib/setenv.c uClibc-git/libc/stdlib/setenv.c
  42782. --- uClibc-0.9.33.2/libc/stdlib/setenv.c 2012-05-15 09:20:09.000000000 +0200
  42783. +++ uClibc-git/libc/stdlib/setenv.c 2014-06-02 17:40:34.162712804 +0200
  42784. @@ -12,9 +12,8 @@
  42785. Lesser General Public License for more details.
  42786. You should have received a copy of the GNU Lesser General Public
  42787. - License along with the GNU C Library; if not, write to the Free
  42788. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42789. - 02111-1307 USA.
  42790. + License along with the GNU C Library; see the file COPYING.LIB. If
  42791. + not, see <http://www.gnu.org/licenses/>.
  42792. modified for uClibc by Erik Andersen <andersen@codepoet.org>
  42793. */
  42794. diff -Nur uClibc-0.9.33.2/libc/stdlib/srand48.c uClibc-git/libc/stdlib/srand48.c
  42795. --- uClibc-0.9.33.2/libc/stdlib/srand48.c 2012-05-15 09:20:09.000000000 +0200
  42796. +++ uClibc-git/libc/stdlib/srand48.c 2014-06-02 17:40:34.162712804 +0200
  42797. @@ -13,9 +13,8 @@
  42798. Lesser General Public License for more details.
  42799. You should have received a copy of the GNU Lesser General Public
  42800. - License along with the GNU C Library; if not, write to the Free
  42801. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42802. - 02111-1307 USA. */
  42803. + License along with the GNU C Library; if not, see
  42804. + <http://www.gnu.org/licenses/>. */
  42805. #include <stdlib.h>
  42806. diff -Nur uClibc-0.9.33.2/libc/stdlib/srand48_r.c uClibc-git/libc/stdlib/srand48_r.c
  42807. --- uClibc-0.9.33.2/libc/stdlib/srand48_r.c 2012-05-15 09:20:09.000000000 +0200
  42808. +++ uClibc-git/libc/stdlib/srand48_r.c 2014-06-02 17:40:34.162712804 +0200
  42809. @@ -13,9 +13,8 @@
  42810. Lesser General Public License for more details.
  42811. You should have received a copy of the GNU Lesser General Public
  42812. - License along with the GNU C Library; if not, write to the Free
  42813. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  42814. - 02111-1307 USA. */
  42815. + License along with the GNU C Library; if not, see
  42816. + <http://www.gnu.org/licenses/>. */
  42817. #include <stdlib.h>
  42818. #include <limits.h>
  42819. diff -Nur uClibc-0.9.33.2/libc/stdlib/stdlib.c uClibc-git/libc/stdlib/stdlib.c
  42820. --- uClibc-0.9.33.2/libc/stdlib/stdlib.c 2012-05-15 09:20:09.000000000 +0200
  42821. +++ uClibc-git/libc/stdlib/stdlib.c 2014-06-02 17:40:34.162712804 +0200
  42822. @@ -12,8 +12,8 @@
  42823. * Library General Public License for more details.
  42824. *
  42825. * You should have received a copy of the GNU Library General Public
  42826. - * License along with this library; if not, write to the Free
  42827. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  42828. + * License along with this library; if not, see
  42829. + * <http://www.gnu.org/licenses/>.
  42830. */
  42831. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  42832. @@ -32,58 +32,8 @@
  42833. * Add wscto{inttype} functions.
  42834. */
  42835. -#define _ISOC99_SOURCE /* for ULLONG primarily... */
  42836. #include <limits.h>
  42837. #include <stdint.h>
  42838. -/* Work around gcc's refusal to create aliases.
  42839. - * TODO: Add in a define to disable the aliases? */
  42840. -
  42841. -#if UINT_MAX == ULONG_MAX
  42842. -#ifdef L_labs
  42843. -#define abs __ignore_abs
  42844. -#endif
  42845. -#ifdef L_atol
  42846. -#define atoi __ignore_atoi
  42847. -#endif
  42848. -#endif
  42849. -#if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
  42850. -#ifdef L_labs
  42851. -#define llabs __ignore_llabs
  42852. -#endif
  42853. -#ifdef L_atol
  42854. -#define atoll __ignore_atoll
  42855. -#endif
  42856. -#ifdef L_strtol
  42857. -#define strtoll __ignore_strtoll
  42858. -#endif
  42859. -#ifdef L_strtoul
  42860. -#define strtoull __ignore_strtoull
  42861. -#endif
  42862. -#ifdef L_wcstol
  42863. -#define wcstoll __ignore_wcstoll
  42864. -#endif
  42865. -#ifdef L_wcstoul
  42866. -#define wcstoull __ignore_wcstoull
  42867. -#endif
  42868. -#ifdef L_strtol_l
  42869. -#define strtoll_l __ignore_strtoll_l
  42870. -#endif
  42871. -#ifdef L_strtoul_l
  42872. -#define strtoull_l __ignore_strtoull_l
  42873. -#endif
  42874. -#ifdef L_wcstol_l
  42875. -#define wcstoll_l __ignore_wcstoll_l
  42876. -#endif
  42877. -#ifdef L_wcstoul_l
  42878. -#define wcstoull_l __ignore_wcstoull_l
  42879. -#endif
  42880. -#endif
  42881. -#if defined(ULLONG_MAX) && (ULLONG_MAX == UINTMAX_MAX)
  42882. -#if defined L_labs || defined L_llabs
  42883. -#define imaxabs __ignore_imaxabs
  42884. -#endif
  42885. -#endif
  42886. -
  42887. #include <stdint.h>
  42888. #include <inttypes.h>
  42889. #include <ctype.h>
  42890. @@ -100,10 +50,6 @@
  42891. #include <wctype.h>
  42892. #include <bits/uClibc_uwchar.h>
  42893. -#ifdef __UCLIBC_HAS_XLOCALE__
  42894. -#include <xlocale.h>
  42895. -#endif /* __UCLIBC_HAS_XLOCALE__ */
  42896. -
  42897. /* TODO: clean up the following... */
  42898. #if WCHAR_MAX > 0xffffUL
  42899. @@ -226,21 +172,15 @@
  42900. }
  42901. #if UINT_MAX == ULONG_MAX
  42902. -#undef abs
  42903. -extern __typeof(labs) abs;
  42904. -strong_alias(labs,abs)
  42905. +strong_alias_untyped(labs,abs)
  42906. #endif
  42907. #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
  42908. -#undef llabs
  42909. -extern __typeof(labs) llabs;
  42910. -strong_alias(labs,llabs)
  42911. +strong_alias_untyped(labs,llabs)
  42912. #endif
  42913. #if ULONG_MAX == UINTMAX_MAX
  42914. -#undef imaxabs
  42915. -extern __typeof(labs) imaxabs;
  42916. -strong_alias(labs,imaxabs)
  42917. +strong_alias_untyped(labs,imaxabs)
  42918. #endif
  42919. #endif
  42920. @@ -255,9 +195,7 @@
  42921. }
  42922. #if (ULLONG_MAX == UINTMAX_MAX)
  42923. -#undef imaxabs
  42924. -extern __typeof(llabs) imaxabs;
  42925. -strong_alias(llabs,imaxabs)
  42926. +strong_alias_untyped(llabs,imaxabs)
  42927. #endif
  42928. #endif /* defined(ULLONG_MAX) && (LLONG_MAX > LONG_MAX) */
  42929. @@ -288,18 +226,12 @@
  42930. }
  42931. #if UINT_MAX == ULONG_MAX
  42932. -#undef atoi
  42933. -extern __typeof(atol) atoi;
  42934. -/* the one in stdlib.h is not enough due to prototype mismatch */
  42935. -libc_hidden_proto(atoi)
  42936. -strong_alias(atol,atoi)
  42937. +strong_alias_untyped(atol,atoi)
  42938. libc_hidden_def(atoi)
  42939. #endif
  42940. #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
  42941. -#undef atoll
  42942. -extern __typeof(atol) atoll;
  42943. -strong_alias(atol,atoll)
  42944. +strong_alias_untyped(atol,atoll)
  42945. #endif
  42946. #endif
  42947. @@ -318,9 +250,16 @@
  42948. #endif
  42949. /**********************************************************************/
  42950. +#ifdef L_rpmatch
  42951. +int rpmatch (const char *__response)
  42952. +{
  42953. + return (__response[0] == 'y' || __response[0] == 'Y') ? 1 :
  42954. + (__response[0] == 'n' || __response[0] == 'N') ? 0 : -1;
  42955. +}
  42956. +#endif
  42957. +/**********************************************************************/
  42958. #if defined(L_strtol) || defined(L_strtol_l)
  42959. -libc_hidden_proto(__XL_NPP(strtol))
  42960. long __XL_NPP(strtol)(const char * __restrict str, char ** __restrict endptr,
  42961. int base __LOCALE_PARAM)
  42962. {
  42963. @@ -333,17 +272,7 @@
  42964. #endif
  42965. #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
  42966. -#ifdef L_strtol_l
  42967. -#undef strtoll_l
  42968. -#else
  42969. -#undef strtoll
  42970. -#endif
  42971. -extern __typeof(__XL_NPP(strtol)) __XL_NPP(strtoll);
  42972. -/* the one in stdlib.h is not enough due to prototype mismatch */
  42973. -#ifdef L_strtol
  42974. -libc_hidden_proto(__XL_NPP(strtoll))
  42975. -#endif
  42976. -strong_alias(__XL_NPP(strtol),__XL_NPP(strtoll))
  42977. +strong_alias_untyped(__XL_NPP(strtol),__XL_NPP(strtoll))
  42978. #ifdef L_strtol
  42979. libc_hidden_def(__XL_NPP(strtoll))
  42980. strong_alias(strtol,strtoq)
  42981. @@ -389,13 +318,7 @@
  42982. #endif
  42983. #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
  42984. -#ifdef L_strtoul_l
  42985. -#undef strtoull_l
  42986. -#else
  42987. -#undef strtoull
  42988. -#endif
  42989. -extern __typeof(__XL_NPP(strtoul)) __XL_NPP(strtoull);
  42990. -strong_alias(__XL_NPP(strtoul),__XL_NPP(strtoull))
  42991. +strong_alias_untyped(__XL_NPP(strtoul),__XL_NPP(strtoull))
  42992. #if !defined(L_strtoul_l)
  42993. strong_alias(strtoul,strtouq)
  42994. #endif
  42995. @@ -744,16 +667,7 @@
  42996. #endif /* defined(ULLONG_MAX) && (LLONG_MAX > LONG_MAX) */
  42997. #endif
  42998. -/**********************************************************************/
  42999. -/* Made _Exit() an alias for _exit(), as per C99. */
  43000. -/* #ifdef L__Exit */
  43001. -/* void _Exit(int status) */
  43002. -/* { */
  43003. -/* _exit(status); */
  43004. -/* } */
  43005. -/* #endif */
  43006. -/**********************************************************************/
  43007. #ifdef L_bsearch
  43008. void *bsearch(const void *key, const void *base, size_t /* nmemb */ high,
  43009. @@ -1067,13 +981,7 @@
  43010. #endif
  43011. #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
  43012. -#ifdef L_wcstol_l
  43013. -#undef wcstoll_l
  43014. -#else
  43015. -#undef wcstoll
  43016. -#endif
  43017. -extern __typeof(__XL_NPP(wcstol)) __XL_NPP(wcstoll);
  43018. -strong_alias(__XL_NPP(wcstol),__XL_NPP(wcstoll))
  43019. +strong_alias_untyped(__XL_NPP(wcstol),__XL_NPP(wcstoll))
  43020. #endif
  43021. #endif
  43022. @@ -1114,13 +1022,7 @@
  43023. #endif
  43024. #if defined(ULLONG_MAX) && (ULLONG_MAX == ULONG_MAX)
  43025. -#ifdef L_wcstoul_l
  43026. -#undef wcstoull_l
  43027. -#else
  43028. -#undef wcstoull
  43029. -#endif
  43030. -extern __typeof(__XL_NPP(wcstoul)) __XL_NPP(wcstoull);
  43031. -strong_alias(__XL_NPP(wcstoul),__XL_NPP(wcstoull))
  43032. +strong_alias_untyped(__XL_NPP(wcstoul),__XL_NPP(wcstoull))
  43033. #endif
  43034. #endif
  43035. diff -Nur uClibc-0.9.33.2/libc/stdlib/_strtod.c uClibc-git/libc/stdlib/_strtod.c
  43036. --- uClibc-0.9.33.2/libc/stdlib/_strtod.c 2012-05-15 09:20:09.000000000 +0200
  43037. +++ uClibc-git/libc/stdlib/_strtod.c 2014-06-02 17:40:34.130712627 +0200
  43038. @@ -95,7 +95,6 @@
  43039. /**********************************************************************/
  43040. -#define _ISOC99_SOURCE 1
  43041. #include <stdlib.h>
  43042. #include <string.h>
  43043. #include <ctype.h>
  43044. @@ -112,10 +111,6 @@
  43045. # include <bits/uClibc_uwchar.h>
  43046. #endif
  43047. -#ifdef __UCLIBC_HAS_XLOCALE__
  43048. -# include <xlocale.h>
  43049. -#endif
  43050. -
  43051. /* Handle _STRTOD_HEXADECIMAL_FLOATS via uClibc config now. */
  43052. #undef _STRTOD_HEXADECIMAL_FLOATS
  43053. #ifdef __UCLIBC_HAS_HEXADECIMAL_FLOATS__
  43054. @@ -509,7 +504,6 @@
  43055. #endif
  43056. -libc_hidden_proto(__XL_NPP(strtof))
  43057. float __XL_NPP(strtof)(const Wchar *str, Wchar **endptr __LOCALE_PARAM )
  43058. {
  43059. #if FPMAX_TYPE == 1
  43060. @@ -526,7 +520,6 @@
  43061. return y;
  43062. #endif
  43063. }
  43064. -libc_hidden_def(__XL_NPP(strtof))
  43065. #endif
  43066. #endif
  43067. diff -Nur uClibc-0.9.33.2/libc/stdlib/system.c uClibc-git/libc/stdlib/system.c
  43068. --- uClibc-0.9.33.2/libc/stdlib/system.c 2012-05-15 09:20:09.000000000 +0200
  43069. +++ uClibc-git/libc/stdlib/system.c 2014-06-02 17:40:34.170712848 +0200
  43070. @@ -24,11 +24,6 @@
  43071. * need to figure out why still
  43072. */
  43073. #if !defined __UCLIBC_HAS_THREADS_NATIVE__ || defined __sparc__
  43074. -/* uClinux-2.0 has vfork, but Linux 2.0 doesn't */
  43075. -#include <sys/syscall.h>
  43076. -#ifndef __NR_vfork
  43077. -# define vfork fork
  43078. -#endif
  43079. int __libc_system(const char *command)
  43080. {
  43081. @@ -66,7 +61,7 @@
  43082. __printf("Waiting for child %d\n", pid);
  43083. #endif
  43084. - if (wait4(pid, &wait_val, 0, 0) == -1)
  43085. + if (__wait4_nocancel(pid, &wait_val, 0, 0) == -1)
  43086. wait_val = -1;
  43087. out:
  43088. diff -Nur uClibc-0.9.33.2/libc/stdlib/__uc_malloc.c uClibc-git/libc/stdlib/__uc_malloc.c
  43089. --- uClibc-0.9.33.2/libc/stdlib/__uc_malloc.c 2012-05-15 09:20:09.000000000 +0200
  43090. +++ uClibc-git/libc/stdlib/__uc_malloc.c 2014-06-02 17:40:34.130712627 +0200
  43091. @@ -13,8 +13,7 @@
  43092. You should have received a copy of the GNU Library General Public
  43093. License along with this library; see the file COPYING.LIB. If
  43094. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  43095. -Cambridge, MA 02139, USA.
  43096. +not, see <http://www.gnu.org/licenses/>.
  43097. */
  43098. diff -Nur uClibc-0.9.33.2/libc/stdlib/unix_grantpt.c uClibc-git/libc/stdlib/unix_grantpt.c
  43099. --- uClibc-0.9.33.2/libc/stdlib/unix_grantpt.c 2012-05-15 09:20:09.000000000 +0200
  43100. +++ uClibc-git/libc/stdlib/unix_grantpt.c 2014-06-02 17:40:34.170712848 +0200
  43101. @@ -14,8 +14,7 @@
  43102. You should have received a copy of the GNU Library General Public
  43103. License along with the GNU C Library; see the file COPYING.LIB. If not,
  43104. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  43105. - Boston, MA 02111-1307, USA. */
  43106. + see <http://www.gnu.org/licenses/>. */
  43107. #include <assert.h>
  43108. #include <errno.h>
  43109. @@ -31,12 +30,6 @@
  43110. #include "pty-private.h"
  43111. -/* uClinux-2.0 has vfork, but Linux 2.0 doesn't */
  43112. -#include <sys/syscall.h>
  43113. -#if ! defined __NR_vfork
  43114. -#define vfork fork
  43115. -#endif
  43116. -
  43117. /* Return the result of ptsname_r in the buffer pointed to by PTS,
  43118. which should be of length BUF_LEN. If it is too long to fit in
  43119. this buffer, a sufficiently long buffer is allocated using malloc,
  43120. diff -Nur uClibc-0.9.33.2/libc/stdlib/unlockpt.c uClibc-git/libc/stdlib/unlockpt.c
  43121. --- uClibc-0.9.33.2/libc/stdlib/unlockpt.c 2012-05-15 09:20:09.000000000 +0200
  43122. +++ uClibc-git/libc/stdlib/unlockpt.c 2014-06-02 17:40:34.178712892 +0200
  43123. @@ -14,8 +14,7 @@
  43124. You should have received a copy of the GNU Library General Public
  43125. License along with the GNU C Library; see the file COPYING.LIB. If not,
  43126. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  43127. - Boston, MA 02111-1307, USA. */
  43128. + see <http://www.gnu.org/licenses/>. */
  43129. #include <errno.h>
  43130. #include <stdlib.h>
  43131. diff -Nur uClibc-0.9.33.2/libc/stdlib/valloc.c uClibc-git/libc/stdlib/valloc.c
  43132. --- uClibc-0.9.33.2/libc/stdlib/valloc.c 2012-05-15 09:20:09.000000000 +0200
  43133. +++ uClibc-git/libc/stdlib/valloc.c 2014-06-02 17:40:34.178712892 +0200
  43134. @@ -14,8 +14,7 @@
  43135. You should have received a copy of the GNU Library General Public
  43136. License along with this library; see the file COPYING.LIB. If
  43137. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  43138. -Cambridge, MA 02139, USA.
  43139. +not, see <http://www.gnu.org/licenses/>.
  43140. The author may be reached (Email) at the address mike@@ai.mit.edu,
  43141. or (US mail) as Mike Haertel c/o Free Software Foundation. */
  43142. diff -Nur uClibc-0.9.33.2/libc/string/arc/Makefile uClibc-git/libc/string/arc/Makefile
  43143. --- uClibc-0.9.33.2/libc/string/arc/Makefile 1970-01-01 01:00:00.000000000 +0100
  43144. +++ uClibc-git/libc/string/arc/Makefile 2014-06-02 17:40:34.182712914 +0200
  43145. @@ -0,0 +1,13 @@
  43146. +# Makefile for uClibc
  43147. +#
  43148. +# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
  43149. +#
  43150. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  43151. +#
  43152. +
  43153. +top_srcdir:=../../../
  43154. +top_builddir:=../../../
  43155. +all: objs
  43156. +include $(top_builddir)Rules.mak
  43157. +include ../Makefile.in
  43158. +include $(top_srcdir)Makerules
  43159. diff -Nur uClibc-0.9.33.2/libc/string/arc/memcmp.S uClibc-git/libc/string/arc/memcmp.S
  43160. --- uClibc-0.9.33.2/libc/string/arc/memcmp.S 1970-01-01 01:00:00.000000000 +0100
  43161. +++ uClibc-git/libc/string/arc/memcmp.S 2014-06-02 17:40:34.182712914 +0200
  43162. @@ -0,0 +1,128 @@
  43163. +/*
  43164. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  43165. + * Copyright (C) 2007 ARC International (UK) LTD
  43166. + *
  43167. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  43168. + */
  43169. +
  43170. +#include <sysdep.h>
  43171. +#include <features.h>
  43172. +
  43173. +#ifdef __LITTLE_ENDIAN__
  43174. +#define WORD2 r2
  43175. +#define SHIFT r3
  43176. +#else /* BIG ENDIAN */
  43177. +#define WORD2 r3
  43178. +#define SHIFT r2
  43179. +#endif
  43180. +
  43181. +ENTRY(memcmp)
  43182. + or r12,r0,r1
  43183. + asl_s r12,r12,30
  43184. + sub r3,r2,1
  43185. + brls r2,r12,.Lbytewise
  43186. + ld r4,[r0,0]
  43187. + ld r5,[r1,0]
  43188. + lsr.f lp_count,r3,3
  43189. + lpne .Loop_end
  43190. + ld_s WORD2,[r0,4]
  43191. + ld_s r12,[r1,4]
  43192. + brne r4,r5,.Leven
  43193. + ld.a r4,[r0,8]
  43194. + ld.a r5,[r1,8]
  43195. + brne WORD2,r12,.Lodd
  43196. +.Loop_end:
  43197. + asl_s SHIFT,SHIFT,3
  43198. + bhs_s .Last_cmp
  43199. + brne r4,r5,.Leven
  43200. + ld r4,[r0,4]
  43201. + ld r5,[r1,4]
  43202. +#ifdef __LITTLE_ENDIAN__
  43203. + nop_s
  43204. + ; one more load latency cycle
  43205. +.Last_cmp:
  43206. + xor r0,r4,r5
  43207. + bset r0,r0,SHIFT
  43208. + sub_s r1,r0,1
  43209. + bic_s r1,r1,r0
  43210. + norm r1,r1
  43211. + b.d .Leven_cmp
  43212. + and r1,r1,24
  43213. +.Leven:
  43214. + xor r0,r4,r5
  43215. + sub_s r1,r0,1
  43216. + bic_s r1,r1,r0
  43217. + norm r1,r1
  43218. + ; slow track insn
  43219. + and r1,r1,24
  43220. +.Leven_cmp:
  43221. + asl r2,r4,r1
  43222. + asl r12,r5,r1
  43223. + lsr_s r2,r2,1
  43224. + lsr_s r12,r12,1
  43225. + j_s.d [blink]
  43226. + sub r0,r2,r12
  43227. + .balign 4
  43228. +.Lodd:
  43229. + xor r0,WORD2,r12
  43230. + sub_s r1,r0,1
  43231. + bic_s r1,r1,r0
  43232. + norm r1,r1
  43233. + ; slow track insn
  43234. + and r1,r1,24
  43235. + asl_s r2,r2,r1
  43236. + asl_s r12,r12,r1
  43237. + lsr_s r2,r2,1
  43238. + lsr_s r12,r12,1
  43239. + j_s.d [blink]
  43240. + sub r0,r2,r12
  43241. +#else /* BIG ENDIAN */
  43242. +.Last_cmp:
  43243. + neg_s SHIFT,SHIFT
  43244. + lsr r4,r4,SHIFT
  43245. + lsr r5,r5,SHIFT
  43246. + ; slow track insn
  43247. +.Leven:
  43248. + sub.f r0,r4,r5
  43249. + mov.ne r0,1
  43250. + j_s.d [blink]
  43251. + bset.cs r0,r0,31
  43252. +.Lodd:
  43253. + cmp_s WORD2,r12
  43254. + mov_s r0,1
  43255. + j_s.d [blink]
  43256. + bset.cs r0,r0,31
  43257. +#endif /* ENDIAN */
  43258. + .balign 4
  43259. +.Lbytewise:
  43260. + breq r2,0,.Lnil
  43261. + ldb r4,[r0,0]
  43262. + ldb r5,[r1,0]
  43263. + lsr.f lp_count,r3
  43264. + lpne .Lbyte_end
  43265. + ldb_s r3,[r0,1]
  43266. + ldb r12,[r1,1]
  43267. + brne r4,r5,.Lbyte_even
  43268. + ldb.a r4,[r0,2]
  43269. + ldb.a r5,[r1,2]
  43270. + brne r3,r12,.Lbyte_odd
  43271. +.Lbyte_end:
  43272. + bcc .Lbyte_even
  43273. + brne r4,r5,.Lbyte_even
  43274. + ldb_s r3,[r0,1]
  43275. + ldb_s r12,[r1,1]
  43276. +.Lbyte_odd:
  43277. + j_s.d [blink]
  43278. + sub r0,r3,r12
  43279. +.Lbyte_even:
  43280. + j_s.d [blink]
  43281. + sub r0,r4,r5
  43282. +.Lnil:
  43283. + j_s.d [blink]
  43284. + mov r0,0
  43285. +END(memcmp)
  43286. +libc_hidden_def(memcmp)
  43287. +
  43288. +#ifdef __UCLIBC_SUSV3_LEGACY__
  43289. +strong_alias(memcmp,bcmp)
  43290. +#endif
  43291. diff -Nur uClibc-0.9.33.2/libc/string/arc/memcpy.S uClibc-git/libc/string/arc/memcpy.S
  43292. --- uClibc-0.9.33.2/libc/string/arc/memcpy.S 1970-01-01 01:00:00.000000000 +0100
  43293. +++ uClibc-git/libc/string/arc/memcpy.S 2014-06-02 17:40:34.182712914 +0200
  43294. @@ -0,0 +1,71 @@
  43295. +/*
  43296. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  43297. + * Copyright (C) 2007 ARC International (UK) LTD
  43298. + *
  43299. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  43300. + */
  43301. +
  43302. +#include <sysdep.h>
  43303. +
  43304. +/* This memcpy implementation does not support objects of 1GB or larger -
  43305. + the check for alignment does not work then. */
  43306. +/* We assume that most sources and destinations are aligned, and
  43307. + that also lengths are mostly a multiple of four, although to a lesser
  43308. + extent. */
  43309. +ENTRY(memcpy)
  43310. + or r3,r0,r1
  43311. + asl_s r3,r3,30
  43312. + mov_s r5,r0
  43313. + brls.d r2,r3,.Lcopy_bytewise
  43314. + sub.f r3,r2,1
  43315. + ld_s r12,[r1,0]
  43316. + asr.f lp_count,r3,3
  43317. + bbit0.d r3,2,.Lnox4
  43318. + bmsk_s r2,r2,1
  43319. + st.ab r12,[r5,4]
  43320. + ld.a r12,[r1,4]
  43321. +.Lnox4:
  43322. + lppnz .Lendloop
  43323. + ld_s r3,[r1,4]
  43324. + st.ab r12,[r5,4]
  43325. + ld.a r12,[r1,8]
  43326. + st.ab r3,[r5,4]
  43327. +.Lendloop:
  43328. + breq r2,0,.Last_store
  43329. + ld r3,[r5,0]
  43330. +#ifdef __LITTLE_ENDIAN__
  43331. + add3 r2,-1,r2
  43332. + ; uses long immediate
  43333. + xor_s r12,r12,r3
  43334. + bmsk r12,r12,r2
  43335. + xor_s r12,r12,r3
  43336. +#else /* BIG ENDIAN */
  43337. + sub3 r2,31,r2
  43338. + ; uses long immediate
  43339. + xor_s r3,r3,r12
  43340. + bmsk r3,r3,r2
  43341. + xor_s r12,r12,r3
  43342. +#endif /* ENDIAN */
  43343. +.Last_store:
  43344. + j_s.d [blink]
  43345. + st r12,[r5,0]
  43346. +
  43347. + .balign 4
  43348. +.Lcopy_bytewise:
  43349. + jcs [blink]
  43350. + ldb_s r12,[r1,0]
  43351. + lsr.f lp_count,r3
  43352. + bhs_s .Lnox1
  43353. + stb.ab r12,[r5,1]
  43354. + ldb.a r12,[r1,1]
  43355. +.Lnox1:
  43356. + lppnz .Lendbloop
  43357. + ldb_s r3,[r1,1]
  43358. + stb.ab r12,[r5,1]
  43359. + ldb.a r12,[r1,2]
  43360. + stb.ab r3,[r5,1]
  43361. +.Lendbloop:
  43362. + j_s.d [blink]
  43363. + stb r12,[r5,0]
  43364. +END(memcpy)
  43365. +libc_hidden_def(memcpy)
  43366. diff -Nur uClibc-0.9.33.2/libc/string/arc/memset.S uClibc-git/libc/string/arc/memset.S
  43367. --- uClibc-0.9.33.2/libc/string/arc/memset.S 1970-01-01 01:00:00.000000000 +0100
  43368. +++ uClibc-git/libc/string/arc/memset.S 2014-06-02 17:40:34.182712914 +0200
  43369. @@ -0,0 +1,51 @@
  43370. +/*
  43371. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  43372. + * Copyright (C) 2007 ARC International (UK) LTD
  43373. + *
  43374. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  43375. + */
  43376. +
  43377. +#include <sysdep.h>
  43378. +
  43379. +#define SMALL 7 /* Must be at least 6 to deal with alignment/loop issues. */
  43380. +
  43381. +ENTRY(memset)
  43382. +
  43383. + mov_s r4,r0
  43384. + or r12,r0,r2
  43385. + bmsk.f r12,r12,1
  43386. + extb_s r1,r1
  43387. + asl r3,r1,8
  43388. + beq.d .Laligned
  43389. + or_s r1,r1,r3
  43390. + brls r2,SMALL,.Ltiny
  43391. + add r3,r2,r0
  43392. + stb r1,[r3,-1]
  43393. + bclr_s r3,r3,0
  43394. + stw r1,[r3,-2]
  43395. + bmsk.f r12,r0,1
  43396. + add_s r2,r2,r12
  43397. + sub.ne r2,r2,4
  43398. + stb.ab r1,[r4,1]
  43399. + and r4,r4,-2
  43400. + stw.ab r1,[r4,2]
  43401. + and r4,r4,-4
  43402. +.Laligned: ; This code address should be aligned for speed.
  43403. + asl r3,r1,16
  43404. + lsr.f lp_count,r2,2
  43405. + or_s r1,r1,r3
  43406. + lpne .Loop_end
  43407. + st.ab r1,[r4,4]
  43408. +.Loop_end:
  43409. + j_s [blink]
  43410. +
  43411. +
  43412. + .balign 4
  43413. +.Ltiny:
  43414. + mov.f lp_count,r2
  43415. + lpne .Ltiny_end
  43416. + stb.ab r1,[r4,1]
  43417. +.Ltiny_end:
  43418. + j_s [blink]
  43419. +END(memset)
  43420. +libc_hidden_def(memset)
  43421. diff -Nur uClibc-0.9.33.2/libc/string/arc/strchr.S uClibc-git/libc/string/arc/strchr.S
  43422. --- uClibc-0.9.33.2/libc/string/arc/strchr.S 1970-01-01 01:00:00.000000000 +0100
  43423. +++ uClibc-git/libc/string/arc/strchr.S 2014-06-02 17:40:34.182712914 +0200
  43424. @@ -0,0 +1,138 @@
  43425. +/*
  43426. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  43427. + * Copyright (C) 2007 ARC International (UK) LTD
  43428. + *
  43429. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  43430. + */
  43431. +
  43432. +#include <sysdep.h>
  43433. +#include <features.h>
  43434. +
  43435. +/* ARC700 has a relatively long pipeline and branch prediction, so we want
  43436. + to avoid branches that are hard to predict. On the other hand, the
  43437. + presence of the norm instruction makes it easier to operate on whole
  43438. + words branch-free. */
  43439. +
  43440. +ENTRY(strchr)
  43441. + extb_s r1,r1
  43442. + asl r5,r1,8
  43443. + bmsk r2,r0,1
  43444. + or r5,r5,r1
  43445. + mov_s r3,0x01010101
  43446. + breq.d r2,r0,.Laligned
  43447. + asl r4,r5,16
  43448. + sub_s r0,r0,r2
  43449. + asl r7,r2,3
  43450. + ld_s r2,[r0]
  43451. +#ifdef __LITTLE_ENDIAN__
  43452. + asl r7,r3,r7
  43453. +#else
  43454. + lsr r7,r3,r7
  43455. +#endif
  43456. + or r5,r5,r4
  43457. + ror r4,r3
  43458. + sub r12,r2,r7
  43459. + bic_s r12,r12,r2
  43460. + and r12,r12,r4
  43461. + brne.d r12,0,.Lfound0_ua
  43462. + xor r6,r2,r5
  43463. + ld.a r2,[r0,4]
  43464. + sub r12,r6,r7
  43465. + bic r12,r12,r6
  43466. +#ifdef __LITTLE_ENDIAN__
  43467. + and r7,r12,r4
  43468. + breq r7,0,.Loop ; For speed, we want this branch to be unaligned.
  43469. + b .Lfound_char ; Likewise this one.
  43470. +#else
  43471. + and r12,r12,r4
  43472. + breq r12,0,.Loop ; For speed, we want this branch to be unaligned.
  43473. + lsr_s r12,r12,7
  43474. + bic r2,r7,r6
  43475. + b.d .Lfound_char_b
  43476. + and_s r2,r2,r12
  43477. +#endif
  43478. +; /* We require this code address to be unaligned for speed... */
  43479. +.Laligned:
  43480. + ld_s r2,[r0]
  43481. + or r5,r5,r4
  43482. + ror r4,r3
  43483. +; /* ... so that this code address is aligned, for itself and ... */
  43484. +.Loop:
  43485. + sub r12,r2,r3
  43486. + bic_s r12,r12,r2
  43487. + and r12,r12,r4
  43488. + brne.d r12,0,.Lfound0
  43489. + xor r6,r2,r5
  43490. + ld.a r2,[r0,4]
  43491. + sub r12,r6,r3
  43492. + bic r12,r12,r6
  43493. + and r7,r12,r4
  43494. + breq r7,0,.Loop /* ... so that this branch is unaligned. */
  43495. + ; Found searched-for character. r0 has already advanced to next word.
  43496. +#ifdef __LITTLE_ENDIAN__
  43497. +/* We only need the information about the first matching byte
  43498. + (i.e. the least significant matching byte) to be exact,
  43499. + hence there is no problem with carry effects. */
  43500. +.Lfound_char:
  43501. + sub r3,r7,1
  43502. + bic r3,r3,r7
  43503. + norm r2,r3
  43504. + sub_s r0,r0,1
  43505. + asr_s r2,r2,3
  43506. + j.d [blink]
  43507. + sub_s r0,r0,r2
  43508. +
  43509. + .balign 4
  43510. +.Lfound0_ua:
  43511. + mov r3,r7
  43512. +.Lfound0:
  43513. + sub r3,r6,r3
  43514. + bic r3,r3,r6
  43515. + and r2,r3,r4
  43516. + or_s r12,r12,r2
  43517. + sub_s r3,r12,1
  43518. + bic_s r3,r3,r12
  43519. + norm r3,r3
  43520. + add_s r0,r0,3
  43521. + asr_s r12,r3,3
  43522. + asl.f 0,r2,r3
  43523. + sub_s r0,r0,r12
  43524. + j_s.d [blink]
  43525. + mov.pl r0,0
  43526. +#else /* BIG ENDIAN */
  43527. +.Lfound_char:
  43528. + lsr r7,r7,7
  43529. +
  43530. + bic r2,r7,r6
  43531. +.Lfound_char_b:
  43532. + norm r2,r2
  43533. + sub_s r0,r0,4
  43534. + asr_s r2,r2,3
  43535. + j.d [blink]
  43536. + add_s r0,r0,r2
  43537. +
  43538. +.Lfound0_ua:
  43539. + mov_s r3,r7
  43540. +.Lfound0:
  43541. + asl_s r2,r2,7
  43542. + or r7,r6,r4
  43543. + bic_s r12,r12,r2
  43544. + sub r2,r7,r3
  43545. + or r2,r2,r6
  43546. + bic r12,r2,r12
  43547. + bic.f r3,r4,r12
  43548. + norm r3,r3
  43549. +
  43550. + add.pl r3,r3,1
  43551. + asr_s r12,r3,3
  43552. + asl.f 0,r2,r3
  43553. + add_s r0,r0,r12
  43554. + j_s.d [blink]
  43555. + mov.mi r0,0
  43556. +#endif /* ENDIAN */
  43557. +END(strchr)
  43558. +libc_hidden_def(strchr)
  43559. +
  43560. +#ifdef __UCLIBC_SUSV3_LEGACY__
  43561. +strong_alias(strchr,index)
  43562. +#endif
  43563. diff -Nur uClibc-0.9.33.2/libc/string/arc/strcmp.S uClibc-git/libc/string/arc/strcmp.S
  43564. --- uClibc-0.9.33.2/libc/string/arc/strcmp.S 1970-01-01 01:00:00.000000000 +0100
  43565. +++ uClibc-git/libc/string/arc/strcmp.S 2014-06-02 17:40:34.182712914 +0200
  43566. @@ -0,0 +1,102 @@
  43567. +/*
  43568. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  43569. + * Copyright (C) 2007 ARC International (UK) LTD
  43570. + *
  43571. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  43572. + */
  43573. +
  43574. +#include <features.h>
  43575. +#include <sysdep.h>
  43576. +
  43577. +/* This is optimized primarily for the ARC700.
  43578. + It would be possible to speed up the loops by one cycle / word
  43579. + respective one cycle / byte by forcing double source 1 alignment, unrolling
  43580. + by a factor of two, and speculatively loading the second word / byte of
  43581. + source 1; however, that would increase the overhead for loop setup / finish,
  43582. + and strcmp might often terminate early. */
  43583. +
  43584. +ENTRY(strcmp)
  43585. + or r2,r0,r1
  43586. + bmsk_s r2,r2,1
  43587. + brne r2,0,.Lcharloop
  43588. + mov_s r12,0x01010101
  43589. + ror r5,r12
  43590. +.Lwordloop:
  43591. + ld.ab r2,[r0,4]
  43592. + ld.ab r3,[r1,4]
  43593. + nop_s
  43594. + sub r4,r2,r12
  43595. + bic r4,r4,r2
  43596. + and r4,r4,r5
  43597. + brne r4,0,.Lfound0
  43598. + breq r2,r3,.Lwordloop
  43599. +#ifdef __LITTLE_ENDIAN__
  43600. + xor r0,r2,r3 ; mask for difference
  43601. + sub_s r1,r0,1
  43602. + bic_s r0,r0,r1 ; mask for least significant difference bit
  43603. + sub r1,r5,r0
  43604. + xor r0,r5,r1 ; mask for least significant difference byte
  43605. + and_s r2,r2,r0
  43606. + and_s r3,r3,r0
  43607. +#endif /* LITTLE ENDIAN */
  43608. + cmp_s r2,r3
  43609. + mov_s r0,1
  43610. + j_s.d [blink]
  43611. + bset.lo r0,r0,31
  43612. +
  43613. + .balign 4
  43614. +#ifdef __LITTLE_ENDIAN__
  43615. +.Lfound0:
  43616. + xor r0,r2,r3 ; mask for difference
  43617. + or r0,r0,r4 ; or in zero indicator
  43618. + sub_s r1,r0,1
  43619. + bic_s r0,r0,r1 ; mask for least significant difference bit
  43620. + sub r1,r5,r0
  43621. + xor r0,r5,r1 ; mask for least significant difference byte
  43622. + and_s r2,r2,r0
  43623. + and_s r3,r3,r0
  43624. + sub.f r0,r2,r3
  43625. + mov.hi r0,1
  43626. + j_s.d [blink]
  43627. + bset.lo r0,r0,31
  43628. +#else /* BIG ENDIAN */
  43629. + /* The zero-detection above can mis-detect 0x01 bytes as zeroes
  43630. + because of carry-propagateion from a lower significant zero byte.
  43631. + We can compensate for this by checking that bit0 is zero.
  43632. + This compensation is not necessary in the step where we
  43633. + get a low estimate for r2, because in any affected bytes
  43634. + we already have 0x00 or 0x01, which will remain unchanged
  43635. + when bit 7 is cleared. */
  43636. + .balign 4
  43637. +.Lfound0:
  43638. + lsr r0,r4,8
  43639. + lsr_s r1,r2
  43640. + bic_s r2,r2,r0 ; get low estimate for r2 and get ...
  43641. + bic_s r0,r0,r1 ; <this is the adjusted mask for zeros>
  43642. + or_s r3,r3,r0 ; ... high estimate r3 so that r2 > r3 will ...
  43643. + cmp_s r3,r2 ; ... be independent of trailing garbage
  43644. + or_s r2,r2,r0 ; likewise for r3 > r2
  43645. + bic_s r3,r3,r0
  43646. + rlc r0,0 ; r0 := r2 > r3 ? 1 : 0
  43647. + cmp_s r2,r3
  43648. + j_s.d [blink]
  43649. + bset.lo r0,r0,31
  43650. +#endif /* ENDIAN */
  43651. +
  43652. + .balign 4
  43653. +.Lcharloop:
  43654. + ldb.ab r2,[r0,1]
  43655. + ldb.ab r3,[r1,1]
  43656. + nop_s
  43657. + breq r2,0,.Lcmpend
  43658. + breq r2,r3,.Lcharloop
  43659. +.Lcmpend:
  43660. + j_s.d [blink]
  43661. + sub r0,r2,r3
  43662. +END(strcmp)
  43663. +libc_hidden_def(strcmp)
  43664. +
  43665. +#ifndef __UCLIBC_HAS_LOCALE__
  43666. +strong_alias(strcmp,strcoll)
  43667. +libc_hidden_def(strcoll)
  43668. +#endif
  43669. diff -Nur uClibc-0.9.33.2/libc/string/arc/strcpy.S uClibc-git/libc/string/arc/strcpy.S
  43670. --- uClibc-0.9.33.2/libc/string/arc/strcpy.S 1970-01-01 01:00:00.000000000 +0100
  43671. +++ uClibc-git/libc/string/arc/strcpy.S 2014-06-02 17:40:34.182712914 +0200
  43672. @@ -0,0 +1,71 @@
  43673. +/*
  43674. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  43675. + * Copyright (C) 2007 ARC International (UK) LTD
  43676. + *
  43677. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  43678. + */
  43679. +
  43680. +
  43681. +#include <sysdep.h>
  43682. +
  43683. +/* If dst and src are 4 byte aligned, copy 8 bytes at a time.
  43684. + If the src is 4, but not 8 byte aligned, we first read 4 bytes to get
  43685. + it 8 byte aligned. Thus, we can do a little read-ahead, without
  43686. + dereferencing a cache line that we should not touch.
  43687. + Note that short and long instructions have been scheduled to avoid
  43688. + branch stalls.
  43689. + The beq_s to r3z could be made unaligned & long to avoid a stall
  43690. + there, but the it is not likely to be taken often, and it
  43691. + would also be likey to cost an unaligned mispredict at the next call. */
  43692. +
  43693. +ENTRY(strcpy)
  43694. + or r2,r0,r1
  43695. + bmsk_s r2,r2,1
  43696. + brne.d r2,0,charloop
  43697. + mov_s r10,r0
  43698. + ld_s r3,[r1,0]
  43699. + mov r8,0x01010101
  43700. + bbit0.d r1,2,loop_start
  43701. + ror r12,r8
  43702. + sub r2,r3,r8
  43703. + bic_s r2,r2,r3
  43704. + tst_s r2,r12
  43705. + bne r3z
  43706. + mov_s r4,r3
  43707. + .balign 4
  43708. +loop:
  43709. + ld.a r3,[r1,4]
  43710. + st.ab r4,[r10,4]
  43711. +loop_start:
  43712. + ld.a r4,[r1,4]
  43713. + sub r2,r3,r8
  43714. + bic_s r2,r2,r3
  43715. + tst_s r2,r12
  43716. + bne_s r3z
  43717. + st.ab r3,[r10,4]
  43718. + sub r2,r4,r8
  43719. + bic r2,r2,r4
  43720. + tst r2,r12
  43721. + beq loop
  43722. + mov_s r3,r4
  43723. +#ifdef __LITTLE_ENDIAN__
  43724. +r3z: bmsk.f r1,r3,7
  43725. + lsr_s r3,r3,8
  43726. +#else
  43727. +r3z: lsr.f r1,r3,24
  43728. + asl_s r3,r3,8
  43729. +#endif
  43730. + bne.d r3z
  43731. + stb.ab r1,[r10,1]
  43732. + j_s [blink]
  43733. +
  43734. + .balign 4
  43735. +charloop:
  43736. + ldb.ab r3,[r1,1]
  43737. +
  43738. +
  43739. + brne.d r3,0,charloop
  43740. + stb.ab r3,[r10,1]
  43741. + j [blink]
  43742. +END(strcpy)
  43743. +libc_hidden_def(strcpy)
  43744. diff -Nur uClibc-0.9.33.2/libc/string/arc/strlen.S uClibc-git/libc/string/arc/strlen.S
  43745. --- uClibc-0.9.33.2/libc/string/arc/strlen.S 1970-01-01 01:00:00.000000000 +0100
  43746. +++ uClibc-git/libc/string/arc/strlen.S 2014-06-02 17:40:34.182712914 +0200
  43747. @@ -0,0 +1,84 @@
  43748. +/*
  43749. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  43750. + * Copyright (C) 2007 ARC International (UK) LTD
  43751. + *
  43752. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  43753. + */
  43754. +
  43755. +
  43756. +#include <sysdep.h>
  43757. +
  43758. +ENTRY(strlen)
  43759. + or r3,r0,7
  43760. + ld r2,[r3,-7]
  43761. + ld.a r6,[r3,-3]
  43762. + mov r4,0x01010101
  43763. + ; uses long immediate
  43764. +#ifdef __LITTLE_ENDIAN__
  43765. + asl_s r1,r0,3
  43766. + btst_s r0,2
  43767. + asl r7,r4,r1
  43768. + ror r5,r4
  43769. + sub r1,r2,r7
  43770. + bic_s r1,r1,r2
  43771. + mov.eq r7,r4
  43772. + sub r12,r6,r7
  43773. + bic r12,r12,r6
  43774. + or.eq r12,r12,r1
  43775. + and r12,r12,r5
  43776. + brne r12,0,.Learly_end
  43777. +#else /* BIG ENDIAN */
  43778. + ror r5,r4
  43779. + btst_s r0,2
  43780. + mov_s r1,31
  43781. + sub3 r7,r1,r0
  43782. + sub r1,r2,r4
  43783. + bic_s r1,r1,r2
  43784. + bmsk r1,r1,r7
  43785. + sub r12,r6,r4
  43786. + bic r12,r12,r6
  43787. + bmsk.ne r12,r12,r7
  43788. + or.eq r12,r12,r1
  43789. + and r12,r12,r5
  43790. + brne r12,0,.Learly_end
  43791. +#endif /* ENDIAN */
  43792. +
  43793. +.Loop:
  43794. + ld_s r2,[r3,4]
  43795. + ld.a r6,[r3,8]
  43796. + ; stall for load result
  43797. + sub r1,r2,r4
  43798. + bic_s r1,r1,r2
  43799. + sub r12,r6,r4
  43800. + bic r12,r12,r6
  43801. + or r12,r12,r1
  43802. + and r12,r12,r5
  43803. + breq r12,0,.Loop
  43804. +.Lend:
  43805. + and.f r1,r1,r5
  43806. + sub.ne r3,r3,4
  43807. + mov.eq r1,r12
  43808. +#ifdef __LITTLE_ENDIAN__
  43809. + sub_s r2,r1,1
  43810. + bic_s r2,r2,r1
  43811. + norm r1,r2
  43812. + sub_s r0,r0,3
  43813. + lsr_s r1,r1,3
  43814. + sub r0,r3,r0
  43815. + j_s.d [blink]
  43816. + sub r0,r0,r1
  43817. +#else /* BIG ENDIAN */
  43818. + lsr_s r1,r1,7
  43819. + mov.eq r2,r6
  43820. + bic_s r1,r1,r2
  43821. + norm r1,r1
  43822. + sub r0,r3,r0
  43823. + lsr_s r1,r1,3
  43824. + j_s.d [blink]
  43825. + add r0,r0,r1
  43826. +#endif /* ENDIAN */
  43827. +.Learly_end:
  43828. + b.d .Lend
  43829. + sub_s.ne r1,r1,r1
  43830. +END(strlen)
  43831. +libc_hidden_def(strlen)
  43832. diff -Nur uClibc-0.9.33.2/libc/string/arm/memset.S uClibc-git/libc/string/arm/memset.S
  43833. --- uClibc-0.9.33.2/libc/string/arm/memset.S 2012-05-15 09:20:09.000000000 +0200
  43834. +++ uClibc-git/libc/string/arm/memset.S 2014-06-02 17:40:34.182712914 +0200
  43835. @@ -13,9 +13,8 @@
  43836. Lesser General Public License for more details.
  43837. You should have received a copy of the GNU Lesser General Public
  43838. - License along with the GNU C Library; if not, write to the Free
  43839. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  43840. - 02111-1307 USA. */
  43841. + License along with the GNU C Library; if not, see
  43842. + <http://www.gnu.org/licenses/>. */
  43843. #include <features.h>
  43844. #include <sys/syscall.h>
  43845. diff -Nur uClibc-0.9.33.2/libc/string/arm/strlen.S uClibc-git/libc/string/arm/strlen.S
  43846. --- uClibc-0.9.33.2/libc/string/arm/strlen.S 2012-05-15 09:20:09.000000000 +0200
  43847. +++ uClibc-git/libc/string/arm/strlen.S 2014-06-02 17:40:34.182712914 +0200
  43848. @@ -13,9 +13,8 @@
  43849. Lesser General Public License for more details.
  43850. You should have received a copy of the GNU Lesser General Public
  43851. - License along with the GNU C Library; if not, write to the Free
  43852. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  43853. - 02111-1307 USA. */
  43854. + License along with the GNU C Library; if not, see
  43855. + <http://www.gnu.org/licenses/>. */
  43856. #include <features.h>
  43857. #include <endian.h>
  43858. diff -Nur uClibc-0.9.33.2/libc/string/avr32/Makefile uClibc-git/libc/string/avr32/Makefile
  43859. --- uClibc-0.9.33.2/libc/string/avr32/Makefile 2012-05-15 09:20:09.000000000 +0200
  43860. +++ uClibc-git/libc/string/avr32/Makefile 2014-06-02 17:40:34.182712914 +0200
  43861. @@ -13,8 +13,7 @@
  43862. # details.
  43863. #
  43864. # You should have received a copy of the GNU Library General Public License
  43865. -# along with this program; if not, write to the Free Software Foundation, Inc.,
  43866. -# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  43867. +# along with this program; if not, see <http://www.gnu.org/licenses/>.
  43868. top_srcdir := ../../../
  43869. top_builddir := ../../../
  43870. diff -Nur uClibc-0.9.33.2/libc/string/basename.c uClibc-git/libc/string/basename.c
  43871. --- uClibc-0.9.33.2/libc/string/basename.c 2012-05-15 09:20:09.000000000 +0200
  43872. +++ uClibc-git/libc/string/basename.c 2014-06-02 17:40:34.186712937 +0200
  43873. @@ -5,7 +5,7 @@
  43874. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  43875. */
  43876. -#include "_string.h"
  43877. +#include <string.h>
  43878. #ifdef __USE_GNU
  43879. @@ -24,5 +24,4 @@
  43880. return (char *) p;
  43881. }
  43882. -libc_hidden_def(basename)
  43883. #endif
  43884. diff -Nur uClibc-0.9.33.2/libc/string/bcopy.c uClibc-git/libc/string/bcopy.c
  43885. --- uClibc-0.9.33.2/libc/string/bcopy.c 2012-05-15 09:20:09.000000000 +0200
  43886. +++ uClibc-git/libc/string/bcopy.c 2014-06-02 17:40:34.186712937 +0200
  43887. @@ -5,11 +5,9 @@
  43888. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  43889. */
  43890. -#include "_string.h"
  43891. +#include <string.h>
  43892. #ifdef __UCLIBC_SUSV3_LEGACY__
  43893. -
  43894. -
  43895. void bcopy(const void *s2, void *s1, size_t n)
  43896. {
  43897. #if 1
  43898. diff -Nur uClibc-0.9.33.2/libc/string/bzero.c uClibc-git/libc/string/bzero.c
  43899. --- uClibc-0.9.33.2/libc/string/bzero.c 2012-05-15 09:20:09.000000000 +0200
  43900. +++ uClibc-git/libc/string/bzero.c 2014-06-02 17:40:34.186712937 +0200
  43901. @@ -5,7 +5,7 @@
  43902. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  43903. */
  43904. -#include "_string.h"
  43905. +#include <string.h>
  43906. #ifdef __UCLIBC_SUSV3_LEGACY__
  43907. void bzero(void *s, size_t n)
  43908. diff -Nur uClibc-0.9.33.2/libc/string/_collate.c uClibc-git/libc/string/_collate.c
  43909. --- uClibc-0.9.33.2/libc/string/_collate.c 2012-05-15 09:20:09.000000000 +0200
  43910. +++ uClibc-git/libc/string/_collate.c 2014-06-02 17:40:34.182712914 +0200
  43911. @@ -159,7 +159,7 @@
  43912. #define N (1)
  43913. #else /* WANT_WIDE */
  43914. wchar_t WC;
  43915. - size_t n0, nx;
  43916. + size_t n0, nx = 0;
  43917. #define N n0
  43918. #endif /* WANT_WIDE */
  43919. diff -Nur uClibc-0.9.33.2/libc/string/cris/memcopy.h uClibc-git/libc/string/cris/memcopy.h
  43920. --- uClibc-0.9.33.2/libc/string/cris/memcopy.h 2012-05-15 09:20:09.000000000 +0200
  43921. +++ uClibc-git/libc/string/cris/memcopy.h 2014-06-02 17:40:34.186712937 +0200
  43922. @@ -16,8 +16,7 @@
  43923. You should have received a copy of the GNU Library General Public
  43924. License along with the GNU C Library; see the file COPYING.LIB. If not,
  43925. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  43926. - Boston, MA 02111-1307, USA. */
  43927. + see <http://www.gnu.org/licenses/>. */
  43928. #include "../generic/memcopy.h"
  43929. diff -Nur uClibc-0.9.33.2/libc/string/cris/memmove.c uClibc-git/libc/string/cris/memmove.c
  43930. --- uClibc-0.9.33.2/libc/string/cris/memmove.c 2012-05-15 09:20:09.000000000 +0200
  43931. +++ uClibc-git/libc/string/cris/memmove.c 2014-06-02 17:40:34.186712937 +0200
  43932. @@ -18,9 +18,8 @@
  43933. Lesser General Public License for more details.
  43934. You should have received a copy of the GNU Lesser General Public
  43935. - License along with the GNU C Library; if not, write to the Free
  43936. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  43937. - 02111-1307 USA. */
  43938. + License along with the GNU C Library; if not, see
  43939. + <http://www.gnu.org/licenses/>. */
  43940. #include <string.h>
  43941. diff -Nur uClibc-0.9.33.2/libc/string/dirname.c uClibc-git/libc/string/dirname.c
  43942. --- uClibc-0.9.33.2/libc/string/dirname.c 2012-05-15 09:20:09.000000000 +0200
  43943. +++ uClibc-git/libc/string/dirname.c 2014-06-02 17:40:34.186712937 +0200
  43944. @@ -5,7 +5,8 @@
  43945. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  43946. */
  43947. -#include "_string.h"
  43948. +#define __need_NULL
  43949. +#include <stddef.h>
  43950. #include <libgen.h>
  43951. char *dirname(char *path)
  43952. diff -Nur uClibc-0.9.33.2/libc/string/ffsll.c uClibc-git/libc/string/ffsll.c
  43953. --- uClibc-0.9.33.2/libc/string/ffsll.c 2012-05-15 09:20:09.000000000 +0200
  43954. +++ uClibc-git/libc/string/ffsll.c 2014-06-02 17:40:34.186712937 +0200
  43955. @@ -13,9 +13,8 @@
  43956. Lesser General Public License for more details.
  43957. You should have received a copy of the GNU Lesser General Public
  43958. - License along with the GNU C Library; if not, write to the Free
  43959. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  43960. - 02111-1307 USA. */
  43961. + License along with the GNU C Library; if not, see
  43962. + <http://www.gnu.org/licenses/>. */
  43963. #include <limits.h>
  43964. #include <string.h>
  43965. diff -Nur uClibc-0.9.33.2/libc/string/frv/memcpy.S uClibc-git/libc/string/frv/memcpy.S
  43966. --- uClibc-0.9.33.2/libc/string/frv/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  43967. +++ uClibc-git/libc/string/frv/memcpy.S 2014-06-02 17:40:34.186712937 +0200
  43968. @@ -14,8 +14,8 @@
  43969. * Library General Public License for more details.
  43970. *
  43971. * You should have received a copy of the GNU Library General Public
  43972. - * License along with this library; if not, write to the Free
  43973. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  43974. + * License along with this library; if not, see
  43975. + * <http://www.gnu.org/licenses/>.
  43976. */
  43977. #include <features.h>
  43978. diff -Nur uClibc-0.9.33.2/libc/string/frv/memset.S uClibc-git/libc/string/frv/memset.S
  43979. --- uClibc-0.9.33.2/libc/string/frv/memset.S 2012-05-15 09:20:09.000000000 +0200
  43980. +++ uClibc-git/libc/string/frv/memset.S 2014-06-02 17:40:34.186712937 +0200
  43981. @@ -14,8 +14,8 @@
  43982. * Library General Public License for more details.
  43983. *
  43984. * You should have received a copy of the GNU Library General Public
  43985. - * License along with this library; if not, write to the Free
  43986. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  43987. + * License along with this library; if not, see
  43988. + * <http://www.gnu.org/licenses/>.
  43989. */
  43990. #include <features.h>
  43991. diff -Nur uClibc-0.9.33.2/libc/string/generic/memchr.c uClibc-git/libc/string/generic/memchr.c
  43992. --- uClibc-0.9.33.2/libc/string/generic/memchr.c 2012-05-15 09:20:09.000000000 +0200
  43993. +++ uClibc-git/libc/string/generic/memchr.c 2014-06-02 17:40:34.186712937 +0200
  43994. @@ -17,9 +17,8 @@
  43995. Lesser General Public License for more details.
  43996. You should have received a copy of the GNU Lesser General Public
  43997. - License along with the GNU C Library; if not, write to the Free
  43998. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  43999. - 02111-1307 USA. */
  44000. + License along with the GNU C Library; if not, see
  44001. + <http://www.gnu.org/licenses/>. */
  44002. #include <string.h>
  44003. #include <stdlib.h>
  44004. diff -Nur uClibc-0.9.33.2/libc/string/generic/memcmp.c uClibc-git/libc/string/generic/memcmp.c
  44005. --- uClibc-0.9.33.2/libc/string/generic/memcmp.c 2012-05-15 09:20:09.000000000 +0200
  44006. +++ uClibc-git/libc/string/generic/memcmp.c 2014-06-02 17:40:34.186712937 +0200
  44007. @@ -14,9 +14,8 @@
  44008. Lesser General Public License for more details.
  44009. You should have received a copy of the GNU Lesser General Public
  44010. - License along with the GNU C Library; if not, write to the Free
  44011. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44012. - 02111-1307 USA. */
  44013. + License along with the GNU C Library; if not, see
  44014. + <http://www.gnu.org/licenses/>. */
  44015. #include <string.h>
  44016. #include "memcopy.h"
  44017. diff -Nur uClibc-0.9.33.2/libc/string/generic/memcopy.h uClibc-git/libc/string/generic/memcopy.h
  44018. --- uClibc-0.9.33.2/libc/string/generic/memcopy.h 2012-05-15 09:20:09.000000000 +0200
  44019. +++ uClibc-git/libc/string/generic/memcopy.h 2014-06-02 17:40:34.186712937 +0200
  44020. @@ -14,9 +14,8 @@
  44021. Lesser General Public License for more details.
  44022. You should have received a copy of the GNU Lesser General Public
  44023. - License along with the GNU C Library; if not, write to the Free
  44024. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44025. - 02111-1307 USA. */
  44026. + License along with the GNU C Library; if not, see
  44027. + <http://www.gnu.org/licenses/>. */
  44028. /* The strategy of the memory functions is:
  44029. diff -Nur uClibc-0.9.33.2/libc/string/generic/memcpy.c uClibc-git/libc/string/generic/memcpy.c
  44030. --- uClibc-0.9.33.2/libc/string/generic/memcpy.c 2012-05-15 09:20:09.000000000 +0200
  44031. +++ uClibc-git/libc/string/generic/memcpy.c 2014-06-02 17:40:34.186712937 +0200
  44032. @@ -15,9 +15,8 @@
  44033. Lesser General Public License for more details.
  44034. You should have received a copy of the GNU Lesser General Public
  44035. - License along with the GNU C Library; if not, write to the Free
  44036. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44037. - 02111-1307 USA. */
  44038. + License along with the GNU C Library; if not, see
  44039. + <http://www.gnu.org/licenses/>. */
  44040. #include <string.h>
  44041. #include "memcopy.h"
  44042. diff -Nur uClibc-0.9.33.2/libc/string/generic/memmem.c uClibc-git/libc/string/generic/memmem.c
  44043. --- uClibc-0.9.33.2/libc/string/generic/memmem.c 2012-05-15 09:20:09.000000000 +0200
  44044. +++ uClibc-git/libc/string/generic/memmem.c 2014-06-02 17:40:34.186712937 +0200
  44045. @@ -12,9 +12,8 @@
  44046. Lesser General Public License for more details.
  44047. You should have received a copy of the GNU Lesser General Public
  44048. - License along with the GNU C Library; if not, write to the Free
  44049. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44050. - 02111-1307 USA. */
  44051. + License along with the GNU C Library; if not, see
  44052. + <http://www.gnu.org/licenses/>. */
  44053. #include <string.h>
  44054. #include <stddef.h>
  44055. diff -Nur uClibc-0.9.33.2/libc/string/generic/memmove.c uClibc-git/libc/string/generic/memmove.c
  44056. --- uClibc-0.9.33.2/libc/string/generic/memmove.c 2012-05-15 09:20:09.000000000 +0200
  44057. +++ uClibc-git/libc/string/generic/memmove.c 2014-06-02 17:40:34.186712937 +0200
  44058. @@ -15,9 +15,8 @@
  44059. Lesser General Public License for more details.
  44060. You should have received a copy of the GNU Lesser General Public
  44061. - License along with the GNU C Library; if not, write to the Free
  44062. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44063. - 02111-1307 USA. */
  44064. + License along with the GNU C Library; if not, see
  44065. + <http://www.gnu.org/licenses/>. */
  44066. #include <string.h>
  44067. diff -Nur uClibc-0.9.33.2/libc/string/generic/memrchr.c uClibc-git/libc/string/generic/memrchr.c
  44068. --- uClibc-0.9.33.2/libc/string/generic/memrchr.c 2012-05-15 09:20:09.000000000 +0200
  44069. +++ uClibc-git/libc/string/generic/memrchr.c 2014-06-02 17:40:34.186712937 +0200
  44070. @@ -18,9 +18,8 @@
  44071. Lesser General Public License for more details.
  44072. You should have received a copy of the GNU Lesser General Public
  44073. - License along with the GNU C Library; if not, write to the Free
  44074. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44075. - 02111-1307 USA. */
  44076. + License along with the GNU C Library; if not, see
  44077. + <http://www.gnu.org/licenses/>. */
  44078. #include <string.h>
  44079. #include <stdlib.h>
  44080. diff -Nur uClibc-0.9.33.2/libc/string/generic/memset.c uClibc-git/libc/string/generic/memset.c
  44081. --- uClibc-0.9.33.2/libc/string/generic/memset.c 2012-05-15 09:20:09.000000000 +0200
  44082. +++ uClibc-git/libc/string/generic/memset.c 2014-06-02 17:40:34.186712937 +0200
  44083. @@ -12,9 +12,8 @@
  44084. Lesser General Public License for more details.
  44085. You should have received a copy of the GNU Lesser General Public
  44086. - License along with the GNU C Library; if not, write to the Free
  44087. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44088. - 02111-1307 USA. */
  44089. + License along with the GNU C Library; if not, see
  44090. + <http://www.gnu.org/licenses/>. */
  44091. #include <string.h>
  44092. #include "memcopy.h"
  44093. diff -Nur uClibc-0.9.33.2/libc/string/generic/pagecopy.h uClibc-git/libc/string/generic/pagecopy.h
  44094. --- uClibc-0.9.33.2/libc/string/generic/pagecopy.h 2012-05-15 09:20:09.000000000 +0200
  44095. +++ uClibc-git/libc/string/generic/pagecopy.h 2014-06-02 17:40:34.186712937 +0200
  44096. @@ -13,9 +13,8 @@
  44097. Lesser General Public License for more details.
  44098. You should have received a copy of the GNU Lesser General Public
  44099. - License along with the GNU C Library; if not, write to the Free
  44100. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44101. - 02111-1307 USA. */
  44102. + License along with the GNU C Library; if not, see
  44103. + <http://www.gnu.org/licenses/>. */
  44104. /* This file defines the macro:
  44105. diff -Nur uClibc-0.9.33.2/libc/string/generic/rawmemchr.c uClibc-git/libc/string/generic/rawmemchr.c
  44106. --- uClibc-0.9.33.2/libc/string/generic/rawmemchr.c 2012-05-15 09:20:09.000000000 +0200
  44107. +++ uClibc-git/libc/string/generic/rawmemchr.c 2014-06-02 17:40:34.186712937 +0200
  44108. @@ -17,9 +17,8 @@
  44109. Lesser General Public License for more details.
  44110. You should have received a copy of the GNU Lesser General Public
  44111. - License along with the GNU C Library; if not, write to the Free
  44112. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44113. - 02111-1307 USA. */
  44114. + License along with the GNU C Library; if not, see
  44115. + <http://www.gnu.org/licenses/>. */
  44116. #include <string.h>
  44117. #include <stdlib.h>
  44118. diff -Nur uClibc-0.9.33.2/libc/string/generic/strcat.c uClibc-git/libc/string/generic/strcat.c
  44119. --- uClibc-0.9.33.2/libc/string/generic/strcat.c 2012-05-15 09:20:09.000000000 +0200
  44120. +++ uClibc-git/libc/string/generic/strcat.c 2014-06-02 17:40:34.186712937 +0200
  44121. @@ -12,9 +12,8 @@
  44122. Lesser General Public License for more details.
  44123. You should have received a copy of the GNU Lesser General Public
  44124. - License along with the GNU C Library; if not, write to the Free
  44125. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44126. - 02111-1307 USA. */
  44127. + License along with the GNU C Library; if not, see
  44128. + <http://www.gnu.org/licenses/>. */
  44129. #include <string.h>
  44130. #include "memcopy.h"
  44131. diff -Nur uClibc-0.9.33.2/libc/string/generic/strchr.c uClibc-git/libc/string/generic/strchr.c
  44132. --- uClibc-0.9.33.2/libc/string/generic/strchr.c 2012-05-15 09:20:09.000000000 +0200
  44133. +++ uClibc-git/libc/string/generic/strchr.c 2014-06-02 17:40:34.186712937 +0200
  44134. @@ -17,9 +17,8 @@
  44135. Lesser General Public License for more details.
  44136. You should have received a copy of the GNU Lesser General Public
  44137. - License along with the GNU C Library; if not, write to the Free
  44138. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44139. - 02111-1307 USA. */
  44140. + License along with the GNU C Library; if not, see
  44141. + <http://www.gnu.org/licenses/>. */
  44142. #include <string.h>
  44143. #include <stdlib.h>
  44144. diff -Nur uClibc-0.9.33.2/libc/string/generic/strchrnul.c uClibc-git/libc/string/generic/strchrnul.c
  44145. --- uClibc-0.9.33.2/libc/string/generic/strchrnul.c 2012-05-15 09:20:09.000000000 +0200
  44146. +++ uClibc-git/libc/string/generic/strchrnul.c 2014-06-02 17:40:34.186712937 +0200
  44147. @@ -17,9 +17,8 @@
  44148. Lesser General Public License for more details.
  44149. You should have received a copy of the GNU Lesser General Public
  44150. - License along with the GNU C Library; if not, write to the Free
  44151. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44152. - 02111-1307 USA. */
  44153. + License along with the GNU C Library; if not, see
  44154. + <http://www.gnu.org/licenses/>. */
  44155. #include <string.h>
  44156. #include <stdlib.h>
  44157. diff -Nur uClibc-0.9.33.2/libc/string/generic/strcmp.c uClibc-git/libc/string/generic/strcmp.c
  44158. --- uClibc-0.9.33.2/libc/string/generic/strcmp.c 2012-05-15 09:20:09.000000000 +0200
  44159. +++ uClibc-git/libc/string/generic/strcmp.c 2014-06-02 17:40:34.186712937 +0200
  44160. @@ -12,9 +12,8 @@
  44161. Lesser General Public License for more details.
  44162. You should have received a copy of the GNU Lesser General Public
  44163. - License along with the GNU C Library; if not, write to the Free
  44164. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44165. - 02111-1307 USA. */
  44166. + License along with the GNU C Library; if not, see
  44167. + <http://www.gnu.org/licenses/>. */
  44168. #include <string.h>
  44169. diff -Nur uClibc-0.9.33.2/libc/string/generic/strcpy.c uClibc-git/libc/string/generic/strcpy.c
  44170. --- uClibc-0.9.33.2/libc/string/generic/strcpy.c 2012-05-15 09:20:09.000000000 +0200
  44171. +++ uClibc-git/libc/string/generic/strcpy.c 2014-06-02 17:40:34.186712937 +0200
  44172. @@ -12,9 +12,8 @@
  44173. Lesser General Public License for more details.
  44174. You should have received a copy of the GNU Lesser General Public
  44175. - License along with the GNU C Library; if not, write to the Free
  44176. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44177. - 02111-1307 USA. */
  44178. + License along with the GNU C Library; if not, see
  44179. + <http://www.gnu.org/licenses/>. */
  44180. #include <string.h>
  44181. diff -Nur uClibc-0.9.33.2/libc/string/generic/strcspn.c uClibc-git/libc/string/generic/strcspn.c
  44182. --- uClibc-0.9.33.2/libc/string/generic/strcspn.c 2012-05-15 09:20:09.000000000 +0200
  44183. +++ uClibc-git/libc/string/generic/strcspn.c 2014-06-02 17:40:34.186712937 +0200
  44184. @@ -12,9 +12,8 @@
  44185. Lesser General Public License for more details.
  44186. You should have received a copy of the GNU Lesser General Public
  44187. - License along with the GNU C Library; if not, write to the Free
  44188. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44189. - 02111-1307 USA. */
  44190. + License along with the GNU C Library; if not, see
  44191. + <http://www.gnu.org/licenses/>. */
  44192. #include <string.h>
  44193. diff -Nur uClibc-0.9.33.2/libc/string/generic/strlen.c uClibc-git/libc/string/generic/strlen.c
  44194. --- uClibc-0.9.33.2/libc/string/generic/strlen.c 2012-05-15 09:20:09.000000000 +0200
  44195. +++ uClibc-git/libc/string/generic/strlen.c 2014-06-02 17:40:34.186712937 +0200
  44196. @@ -15,9 +15,8 @@
  44197. Lesser General Public License for more details.
  44198. You should have received a copy of the GNU Lesser General Public
  44199. - License along with the GNU C Library; if not, write to the Free
  44200. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44201. - 02111-1307 USA. */
  44202. + License along with the GNU C Library; if not, see
  44203. + <http://www.gnu.org/licenses/>. */
  44204. #include <string.h>
  44205. #include <stdlib.h>
  44206. diff -Nur uClibc-0.9.33.2/libc/string/generic/strncat.c uClibc-git/libc/string/generic/strncat.c
  44207. --- uClibc-0.9.33.2/libc/string/generic/strncat.c 2012-05-15 09:20:09.000000000 +0200
  44208. +++ uClibc-git/libc/string/generic/strncat.c 2014-06-02 17:40:34.186712937 +0200
  44209. @@ -12,9 +12,8 @@
  44210. Lesser General Public License for more details.
  44211. You should have received a copy of the GNU Lesser General Public
  44212. - License along with the GNU C Library; if not, write to the Free
  44213. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44214. - 02111-1307 USA. */
  44215. + License along with the GNU C Library; if not, see
  44216. + <http://www.gnu.org/licenses/>. */
  44217. #include <string.h>
  44218. diff -Nur uClibc-0.9.33.2/libc/string/generic/strncmp.c uClibc-git/libc/string/generic/strncmp.c
  44219. --- uClibc-0.9.33.2/libc/string/generic/strncmp.c 2012-05-15 09:20:09.000000000 +0200
  44220. +++ uClibc-git/libc/string/generic/strncmp.c 2014-06-02 17:40:34.186712937 +0200
  44221. @@ -12,9 +12,8 @@
  44222. Lesser General Public License for more details.
  44223. You should have received a copy of the GNU Lesser General Public
  44224. - License along with the GNU C Library; if not, write to the Free
  44225. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44226. - 02111-1307 USA. */
  44227. + License along with the GNU C Library; if not, see
  44228. + <http://www.gnu.org/licenses/>. */
  44229. #include <string.h>
  44230. #include "memcopy.h"
  44231. diff -Nur uClibc-0.9.33.2/libc/string/generic/strncpy.c uClibc-git/libc/string/generic/strncpy.c
  44232. --- uClibc-0.9.33.2/libc/string/generic/strncpy.c 2012-05-15 09:20:09.000000000 +0200
  44233. +++ uClibc-git/libc/string/generic/strncpy.c 2014-06-02 17:40:34.186712937 +0200
  44234. @@ -12,9 +12,8 @@
  44235. Lesser General Public License for more details.
  44236. You should have received a copy of the GNU Lesser General Public
  44237. - License along with the GNU C Library; if not, write to the Free
  44238. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44239. - 02111-1307 USA. */
  44240. + License along with the GNU C Library; if not, see
  44241. + <http://www.gnu.org/licenses/>. */
  44242. #include <string.h>
  44243. #include "memcopy.h"
  44244. diff -Nur uClibc-0.9.33.2/libc/string/generic/strnlen.c uClibc-git/libc/string/generic/strnlen.c
  44245. --- uClibc-0.9.33.2/libc/string/generic/strnlen.c 2012-05-15 09:20:09.000000000 +0200
  44246. +++ uClibc-git/libc/string/generic/strnlen.c 2014-06-02 17:40:34.186712937 +0200
  44247. @@ -17,9 +17,8 @@
  44248. Lesser General Public License for more details.
  44249. You should have received a copy of the GNU Lesser General Public
  44250. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  44251. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  44252. - Boston, MA 02111-1307, USA. */
  44253. + License along with the GNU C Library; see the file COPYING.LIB. If
  44254. + not, see <http://www.gnu.org/licenses/>. */
  44255. #include <string.h>
  44256. #include <stdlib.h>
  44257. diff -Nur uClibc-0.9.33.2/libc/string/generic/strrchr.c uClibc-git/libc/string/generic/strrchr.c
  44258. --- uClibc-0.9.33.2/libc/string/generic/strrchr.c 2012-05-15 09:20:09.000000000 +0200
  44259. +++ uClibc-git/libc/string/generic/strrchr.c 2014-06-02 17:40:34.186712937 +0200
  44260. @@ -12,9 +12,8 @@
  44261. Lesser General Public License for more details.
  44262. You should have received a copy of the GNU Lesser General Public
  44263. - License along with the GNU C Library; if not, write to the Free
  44264. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44265. - 02111-1307 USA. */
  44266. + License along with the GNU C Library; if not, see
  44267. + <http://www.gnu.org/licenses/>. */
  44268. #include <string.h>
  44269. diff -Nur uClibc-0.9.33.2/libc/string/generic/strsep.c uClibc-git/libc/string/generic/strsep.c
  44270. --- uClibc-0.9.33.2/libc/string/generic/strsep.c 2012-05-15 09:20:09.000000000 +0200
  44271. +++ uClibc-git/libc/string/generic/strsep.c 2014-06-02 17:40:34.186712937 +0200
  44272. @@ -12,9 +12,8 @@
  44273. Lesser General Public License for more details.
  44274. You should have received a copy of the GNU Lesser General Public
  44275. - License along with the GNU C Library; if not, write to the Free
  44276. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44277. - 02111-1307 USA. */
  44278. + License along with the GNU C Library; if not, see
  44279. + <http://www.gnu.org/licenses/>. */
  44280. #include <string.h>
  44281. diff -Nur uClibc-0.9.33.2/libc/string/generic/strspn.c uClibc-git/libc/string/generic/strspn.c
  44282. --- uClibc-0.9.33.2/libc/string/generic/strspn.c 2012-05-15 09:20:09.000000000 +0200
  44283. +++ uClibc-git/libc/string/generic/strspn.c 2014-06-02 17:40:34.186712937 +0200
  44284. @@ -12,9 +12,8 @@
  44285. Lesser General Public License for more details.
  44286. You should have received a copy of the GNU Lesser General Public
  44287. - License along with the GNU C Library; if not, write to the Free
  44288. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44289. - 02111-1307 USA. */
  44290. + License along with the GNU C Library; if not, see
  44291. + <http://www.gnu.org/licenses/>. */
  44292. #include <string.h>
  44293. diff -Nur uClibc-0.9.33.2/libc/string/generic/strstr.c uClibc-git/libc/string/generic/strstr.c
  44294. --- uClibc-0.9.33.2/libc/string/generic/strstr.c 2012-05-15 09:20:09.000000000 +0200
  44295. +++ uClibc-git/libc/string/generic/strstr.c 2014-06-02 17:40:34.186712937 +0200
  44296. @@ -13,9 +13,8 @@
  44297. Lesser General Public License for more details.
  44298. You should have received a copy of the GNU Lesser General Public
  44299. - License along with the GNU C Library; if not, write to the Free
  44300. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44301. - 02111-1307 USA. */
  44302. + License along with the GNU C Library; if not, see
  44303. + <http://www.gnu.org/licenses/>. */
  44304. /*
  44305. * My personal strstr() implementation that beats most other algorithms.
  44306. diff -Nur uClibc-0.9.33.2/libc/string/generic/strtok_r.c uClibc-git/libc/string/generic/strtok_r.c
  44307. --- uClibc-0.9.33.2/libc/string/generic/strtok_r.c 2012-05-15 09:20:09.000000000 +0200
  44308. +++ uClibc-git/libc/string/generic/strtok_r.c 2014-06-02 17:40:34.186712937 +0200
  44309. @@ -13,9 +13,8 @@
  44310. Lesser General Public License for more details.
  44311. You should have received a copy of the GNU Lesser General Public
  44312. - License along with the GNU C Library; if not, write to the Free
  44313. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44314. - 02111-1307 USA. */
  44315. + License along with the GNU C Library; if not, see
  44316. + <http://www.gnu.org/licenses/>. */
  44317. #include <string.h>
  44318. diff -Nur uClibc-0.9.33.2/libc/string/__glibc_strerror_r.c uClibc-git/libc/string/__glibc_strerror_r.c
  44319. --- uClibc-0.9.33.2/libc/string/__glibc_strerror_r.c 2012-05-15 09:20:09.000000000 +0200
  44320. +++ uClibc-git/libc/string/__glibc_strerror_r.c 2014-06-02 17:40:34.182712914 +0200
  44321. @@ -5,9 +5,13 @@
  44322. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  44323. */
  44324. +/* get rid of REDIRECT */
  44325. +#define strerror_r __hide_strerror_r
  44326. +
  44327. #include <features.h>
  44328. #include <string.h>
  44329. +#undef strerror_r
  44330. char *__glibc_strerror_r(int errnum, char *strerrbuf, size_t buflen)
  44331. {
  44332. @@ -16,3 +20,6 @@
  44333. return strerrbuf;
  44334. }
  44335. libc_hidden_def(__glibc_strerror_r)
  44336. +#if !defined __USE_XOPEN2K || defined __USE_GNU
  44337. +strong_alias(__glibc_strerror_r,strerror_r)
  44338. +#endif
  44339. diff -Nur uClibc-0.9.33.2/libc/string/ia64/bcopy.S uClibc-git/libc/string/ia64/bcopy.S
  44340. --- uClibc-0.9.33.2/libc/string/ia64/bcopy.S 2012-05-15 09:20:09.000000000 +0200
  44341. +++ uClibc-git/libc/string/ia64/bcopy.S 2014-06-02 17:40:34.202713025 +0200
  44342. @@ -1,4 +1,4 @@
  44343. -#include "sysdep.h"
  44344. +#include <sysdep.h>
  44345. #ifdef __UCLIBC_SUSV3_LEGACY__
  44346. diff -Nur uClibc-0.9.33.2/libc/string/ia64/bzero.S uClibc-git/libc/string/ia64/bzero.S
  44347. --- uClibc-0.9.33.2/libc/string/ia64/bzero.S 2012-05-15 09:20:09.000000000 +0200
  44348. +++ uClibc-git/libc/string/ia64/bzero.S 2014-06-02 17:40:34.202713025 +0200
  44349. @@ -15,9 +15,8 @@
  44350. Lesser General Public License for more details.
  44351. You should have received a copy of the GNU Lesser General Public
  44352. - License along with the GNU C Library; if not, write to the Free
  44353. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44354. - 02111-1307 USA. */
  44355. + License along with the GNU C Library; if not, see
  44356. + <http://www.gnu.org/licenses/>. */
  44357. /* Return: dest
  44358. @@ -32,7 +31,7 @@
  44359. Since a stf.spill f0 can store 16B in one go, we use this instruction
  44360. to get peak speed. */
  44361. -#include "sysdep.h"
  44362. +#include <sysdep.h>
  44363. #ifdef __UCLIBC_SUSV3_LEGACY__
  44364. diff -Nur uClibc-0.9.33.2/libc/string/ia64/memccpy.S uClibc-git/libc/string/ia64/memccpy.S
  44365. --- uClibc-0.9.33.2/libc/string/ia64/memccpy.S 2012-05-15 09:20:09.000000000 +0200
  44366. +++ uClibc-git/libc/string/ia64/memccpy.S 2014-06-02 17:40:34.206713047 +0200
  44367. @@ -14,9 +14,8 @@
  44368. Lesser General Public License for more details.
  44369. You should have received a copy of the GNU Lesser General Public
  44370. - License along with the GNU C Library; if not, write to the Free
  44371. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44372. - 02111-1307 USA. */
  44373. + License along with the GNU C Library; if not, see
  44374. + <http://www.gnu.org/licenses/>. */
  44375. /* Return: a pointer to the next byte after char in dest or NULL
  44376. @@ -31,7 +30,7 @@
  44377. This implementation assumes that it is safe to do read ahead
  44378. in the src block, without getting beyond its limit. */
  44379. -#include "sysdep.h"
  44380. +#include <sysdep.h>
  44381. #undef ret
  44382. #define OP_T_THRES 16
  44383. diff -Nur uClibc-0.9.33.2/libc/string/ia64/memchr.S uClibc-git/libc/string/ia64/memchr.S
  44384. --- uClibc-0.9.33.2/libc/string/ia64/memchr.S 2012-05-15 09:20:09.000000000 +0200
  44385. +++ uClibc-git/libc/string/ia64/memchr.S 2014-06-02 17:40:34.206713047 +0200
  44386. @@ -14,9 +14,8 @@
  44387. Lesser General Public License for more details.
  44388. You should have received a copy of the GNU Lesser General Public
  44389. - License along with the GNU C Library; if not, write to the Free
  44390. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44391. - 02111-1307 USA. */
  44392. + License along with the GNU C Library; if not, see
  44393. + <http://www.gnu.org/licenses/>. */
  44394. /* Return: the address of the first occurence of chr in str or NULL
  44395. @@ -40,7 +39,7 @@
  44396. All the loops in this function could have had the internal branch removed
  44397. if br.ctop and br.cloop could be predicated :-(. */
  44398. -#include "sysdep.h"
  44399. +#include <sysdep.h>
  44400. #undef ret
  44401. #define saved_pr r15
  44402. diff -Nur uClibc-0.9.33.2/libc/string/ia64/memcmp.S uClibc-git/libc/string/ia64/memcmp.S
  44403. --- uClibc-0.9.33.2/libc/string/ia64/memcmp.S 2012-05-15 09:20:09.000000000 +0200
  44404. +++ uClibc-git/libc/string/ia64/memcmp.S 2014-06-02 17:40:34.206713047 +0200
  44405. @@ -14,9 +14,8 @@
  44406. Lesser General Public License for more details.
  44407. You should have received a copy of the GNU Lesser General Public
  44408. - License along with the GNU C Library; if not, write to the Free
  44409. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44410. - 02111-1307 USA. */
  44411. + License along with the GNU C Library; if not, see
  44412. + <http://www.gnu.org/licenses/>. */
  44413. /* Return: the result of the comparison
  44414. @@ -33,7 +32,7 @@
  44415. and all the mux1 instructions should be replaced by plain mov's. */
  44416. -#include "sysdep.h"
  44417. +#include <sysdep.h>
  44418. #undef ret
  44419. #define OP_T_THRES 16
  44420. diff -Nur uClibc-0.9.33.2/libc/string/ia64/memcpy.S uClibc-git/libc/string/ia64/memcpy.S
  44421. --- uClibc-0.9.33.2/libc/string/ia64/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  44422. +++ uClibc-git/libc/string/ia64/memcpy.S 2014-06-02 17:40:34.206713047 +0200
  44423. @@ -15,9 +15,8 @@
  44424. Lesser General Public License for more details.
  44425. You should have received a copy of the GNU Lesser General Public
  44426. - License along with the GNU C Library; if not, write to the Free
  44427. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44428. - 02111-1307 USA. */
  44429. + License along with the GNU C Library; if not, see
  44430. + <http://www.gnu.org/licenses/>. */
  44431. /* Return: dest
  44432. @@ -37,7 +36,7 @@
  44433. #define USE_LFETCH
  44434. #define USE_FLP
  44435. -#include "sysdep.h"
  44436. +#include <sysdep.h>
  44437. #undef ret
  44438. #define LFETCH_DIST 500
  44439. diff -Nur uClibc-0.9.33.2/libc/string/ia64/memmove.S uClibc-git/libc/string/ia64/memmove.S
  44440. --- uClibc-0.9.33.2/libc/string/ia64/memmove.S 2012-05-15 09:20:09.000000000 +0200
  44441. +++ uClibc-git/libc/string/ia64/memmove.S 2014-06-02 17:40:34.206713047 +0200
  44442. @@ -14,9 +14,8 @@
  44443. Lesser General Public License for more details.
  44444. You should have received a copy of the GNU Lesser General Public
  44445. - License along with the GNU C Library; if not, write to the Free
  44446. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44447. - 02111-1307 USA. */
  44448. + License along with the GNU C Library; if not, see
  44449. + <http://www.gnu.org/licenses/>. */
  44450. /* Return: dest
  44451. @@ -33,7 +32,7 @@
  44452. sh1 must be computed using an extra instruction: sub sh1 = 64, sh1
  44453. or the UM.be bit should be cleared at the beginning and set at the end. */
  44454. -#include "sysdep.h"
  44455. +#include <sysdep.h>
  44456. #undef ret
  44457. #define OP_T_THRES 16
  44458. diff -Nur uClibc-0.9.33.2/libc/string/ia64/memset.S uClibc-git/libc/string/ia64/memset.S
  44459. --- uClibc-0.9.33.2/libc/string/ia64/memset.S 2012-05-15 09:20:09.000000000 +0200
  44460. +++ uClibc-git/libc/string/ia64/memset.S 2014-06-02 17:40:34.206713047 +0200
  44461. @@ -15,9 +15,8 @@
  44462. Lesser General Public License for more details.
  44463. You should have received a copy of the GNU Lesser General Public
  44464. - License along with the GNU C Library; if not, write to the Free
  44465. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44466. - 02111-1307 USA. */
  44467. + License along with the GNU C Library; if not, see
  44468. + <http://www.gnu.org/licenses/>. */
  44469. /* Return: dest
  44470. @@ -33,7 +32,7 @@
  44471. Since a stf.spill f0 can store 16B in one go, we use this instruction
  44472. to get peak speed when value = 0. */
  44473. -#include "sysdep.h"
  44474. +#include <sysdep.h>
  44475. #undef ret
  44476. #define dest in0
  44477. diff -Nur uClibc-0.9.33.2/libc/string/ia64/softpipe.h uClibc-git/libc/string/ia64/softpipe.h
  44478. --- uClibc-0.9.33.2/libc/string/ia64/softpipe.h 2012-05-15 09:20:09.000000000 +0200
  44479. +++ uClibc-git/libc/string/ia64/softpipe.h 2014-06-02 17:40:34.206713047 +0200
  44480. @@ -12,9 +12,8 @@
  44481. Lesser General Public License for more details.
  44482. You should have received a copy of the GNU Lesser General Public
  44483. - License along with the GNU C Library; if not, write to the Free
  44484. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44485. - 02111-1307 USA. */
  44486. + License along with the GNU C Library; if not, see
  44487. + <http://www.gnu.org/licenses/>. */
  44488. /* The latency of a memory load assumed by the assembly implementation
  44489. of the mem and str functions. Since we don't have any clue about
  44490. diff -Nur uClibc-0.9.33.2/libc/string/ia64/strchr.S uClibc-git/libc/string/ia64/strchr.S
  44491. --- uClibc-0.9.33.2/libc/string/ia64/strchr.S 2012-05-15 09:20:09.000000000 +0200
  44492. +++ uClibc-git/libc/string/ia64/strchr.S 2014-06-02 17:40:34.206713047 +0200
  44493. @@ -14,9 +14,8 @@
  44494. Lesser General Public License for more details.
  44495. You should have received a copy of the GNU Lesser General Public
  44496. - License along with the GNU C Library; if not, write to the Free
  44497. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44498. - 02111-1307 USA. */
  44499. + License along with the GNU C Library; if not, see
  44500. + <http://www.gnu.org/licenses/>. */
  44501. /* Return: the address of the first occurence of chr in str or NULL
  44502. @@ -30,7 +29,7 @@
  44503. This implementation assumes little endian mode. For big endian mode,
  44504. the instruction czx1.r should be replaced by czx1.l. */
  44505. -#include "sysdep.h"
  44506. +#include <sysdep.h>
  44507. #undef ret
  44508. #define saved_lc r18
  44509. diff -Nur uClibc-0.9.33.2/libc/string/ia64/strcmp.S uClibc-git/libc/string/ia64/strcmp.S
  44510. --- uClibc-0.9.33.2/libc/string/ia64/strcmp.S 2012-05-15 09:20:09.000000000 +0200
  44511. +++ uClibc-git/libc/string/ia64/strcmp.S 2014-06-02 17:40:34.206713047 +0200
  44512. @@ -14,9 +14,8 @@
  44513. Lesser General Public License for more details.
  44514. You should have received a copy of the GNU Lesser General Public
  44515. - License along with the GNU C Library; if not, write to the Free
  44516. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44517. - 02111-1307 USA. */
  44518. + License along with the GNU C Library; if not, see
  44519. + <http://www.gnu.org/licenses/>. */
  44520. /* Return: the result of the comparison
  44521. @@ -27,7 +26,7 @@
  44522. Unlike memcmp(), this function is optimized for mismatches within the
  44523. first few characters. */
  44524. -#include "sysdep.h"
  44525. +#include <sysdep.h>
  44526. #undef ret
  44527. #define s1 in0
  44528. diff -Nur uClibc-0.9.33.2/libc/string/ia64/strcpy.S uClibc-git/libc/string/ia64/strcpy.S
  44529. --- uClibc-0.9.33.2/libc/string/ia64/strcpy.S 2012-05-15 09:20:09.000000000 +0200
  44530. +++ uClibc-git/libc/string/ia64/strcpy.S 2014-06-02 17:40:34.206713047 +0200
  44531. @@ -14,9 +14,8 @@
  44532. Lesser General Public License for more details.
  44533. You should have received a copy of the GNU Lesser General Public
  44534. - License along with the GNU C Library; if not, write to the Free
  44535. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44536. - 02111-1307 USA. */
  44537. + License along with the GNU C Library; if not, see
  44538. + <http://www.gnu.org/licenses/>. */
  44539. /* Return: dest
  44540. @@ -31,7 +30,7 @@
  44541. shr.u tmp = r[0], sh2 // tmp = w1 >> sh2
  44542. */
  44543. -#include "sysdep.h"
  44544. +#include <sysdep.h>
  44545. #undef ret
  44546. #define saved_lc r15
  44547. diff -Nur uClibc-0.9.33.2/libc/string/ia64/strlen.S uClibc-git/libc/string/ia64/strlen.S
  44548. --- uClibc-0.9.33.2/libc/string/ia64/strlen.S 2012-05-15 09:20:09.000000000 +0200
  44549. +++ uClibc-git/libc/string/ia64/strlen.S 2014-06-02 17:40:34.206713047 +0200
  44550. @@ -14,9 +14,8 @@
  44551. Lesser General Public License for more details.
  44552. You should have received a copy of the GNU Lesser General Public
  44553. - License along with the GNU C Library; if not, write to the Free
  44554. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44555. - 02111-1307 USA. */
  44556. + License along with the GNU C Library; if not, see
  44557. + <http://www.gnu.org/licenses/>. */
  44558. /* Return: the length of the input string
  44559. @@ -33,7 +32,7 @@
  44560. This implementation assumes little endian mode. For big endian mode,
  44561. the instruction czx1.r should be replaced by czx1.l. */
  44562. -#include "sysdep.h"
  44563. +#include <sysdep.h>
  44564. #undef ret
  44565. #define saved_lc r18
  44566. diff -Nur uClibc-0.9.33.2/libc/string/ia64/strncmp.S uClibc-git/libc/string/ia64/strncmp.S
  44567. --- uClibc-0.9.33.2/libc/string/ia64/strncmp.S 2012-05-15 09:20:09.000000000 +0200
  44568. +++ uClibc-git/libc/string/ia64/strncmp.S 2014-06-02 17:40:34.206713047 +0200
  44569. @@ -14,9 +14,8 @@
  44570. Lesser General Public License for more details.
  44571. You should have received a copy of the GNU Lesser General Public
  44572. - License along with the GNU C Library; if not, write to the Free
  44573. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44574. - 02111-1307 USA. */
  44575. + License along with the GNU C Library; if not, see
  44576. + <http://www.gnu.org/licenses/>. */
  44577. /* Return: the result of the comparison
  44578. @@ -28,7 +27,7 @@
  44579. Unlike memcmp(), this function is optimized for mismatches within the
  44580. first few characters. */
  44581. -#include "sysdep.h"
  44582. +#include <sysdep.h>
  44583. #undef ret
  44584. #define s1 in0
  44585. diff -Nur uClibc-0.9.33.2/libc/string/ia64/strncpy.S uClibc-git/libc/string/ia64/strncpy.S
  44586. --- uClibc-0.9.33.2/libc/string/ia64/strncpy.S 2012-05-15 09:20:09.000000000 +0200
  44587. +++ uClibc-git/libc/string/ia64/strncpy.S 2014-06-02 17:40:34.206713047 +0200
  44588. @@ -15,9 +15,8 @@
  44589. Lesser General Public License for more details.
  44590. You should have received a copy of the GNU Lesser General Public
  44591. - License along with the GNU C Library; if not, write to the Free
  44592. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44593. - 02111-1307 USA. */
  44594. + License along with the GNU C Library; if not, see
  44595. + <http://www.gnu.org/licenses/>. */
  44596. /* Return: dest
  44597. @@ -29,7 +28,7 @@
  44598. In this form, it assumes little endian mode.
  44599. */
  44600. -#include "sysdep.h"
  44601. +#include <sysdep.h>
  44602. #undef ret
  44603. #define saved_lc r15
  44604. diff -Nur uClibc-0.9.33.2/libc/string/ia64/sysdep.h uClibc-git/libc/string/ia64/sysdep.h
  44605. --- uClibc-0.9.33.2/libc/string/ia64/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  44606. +++ uClibc-git/libc/string/ia64/sysdep.h 1970-01-01 01:00:00.000000000 +0100
  44607. @@ -1,168 +0,0 @@
  44608. -/* Copyright (C) 1999, 2000, 2002, 2003, 2004 Free Software Foundation, Inc.
  44609. - This file is part of the GNU C Library.
  44610. - Written by Jes Sorensen, <Jes.Sorensen@cern.ch>, April 1999.
  44611. - Based on code originally written by David Mosberger-Tang
  44612. -
  44613. - The GNU C Library is free software; you can redistribute it and/or
  44614. - modify it under the terms of the GNU Lesser General Public
  44615. - License as published by the Free Software Foundation; either
  44616. - version 2.1 of the License, or (at your option) any later version.
  44617. -
  44618. - The GNU C Library is distributed in the hope that it will be useful,
  44619. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  44620. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  44621. - Lesser General Public License for more details.
  44622. -
  44623. - You should have received a copy of the GNU Lesser General Public
  44624. - License along with the GNU C Library; if not, write to the Free
  44625. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  44626. - 02111-1307 USA. */
  44627. -
  44628. -#ifndef _LINUX_IA64_SYSDEP_H
  44629. -#define _LINUX_IA64_SYSDEP_H 1
  44630. -
  44631. -#include <features.h>
  44632. -#include <asm/unistd.h>
  44633. -
  44634. -#ifdef __ASSEMBLER__
  44635. -
  44636. -/* Macros to help writing .prologue directives in assembly code. */
  44637. -#define ASM_UNW_PRLG_RP 0x8
  44638. -#define ASM_UNW_PRLG_PFS 0x4
  44639. -#define ASM_UNW_PRLG_PSP 0x2
  44640. -#define ASM_UNW_PRLG_PR 0x1
  44641. -#define ASM_UNW_PRLG_GRSAVE(ninputs) (32+(ninputs))
  44642. -
  44643. -#ifdef __STDC__
  44644. -#define C_LABEL(name) name :
  44645. -#else
  44646. -#define C_LABEL(name) name/**/:
  44647. -#endif
  44648. -
  44649. -#define CALL_MCOUNT
  44650. -
  44651. -#define ENTRY(name) \
  44652. - .text; \
  44653. - .align 32; \
  44654. - .proc C_SYMBOL_NAME(name); \
  44655. - .global C_SYMBOL_NAME(name); \
  44656. - C_LABEL(name) \
  44657. - CALL_MCOUNT
  44658. -
  44659. -#define LEAF(name) \
  44660. - .text; \
  44661. - .align 32; \
  44662. - .proc C_SYMBOL_NAME(name); \
  44663. - .global name; \
  44664. - C_LABEL(name)
  44665. -
  44666. -/* Mark the end of function SYM. */
  44667. -#undef END
  44668. -#define END(sym) .endp C_SYMBOL_NAME(sym)
  44669. -
  44670. -/* For Linux we can use the system call table in the header file
  44671. - /usr/include/asm/unistd.h
  44672. - of the kernel. But these symbols do not follow the SYS_* syntax
  44673. - so we have to redefine the `SYS_ify' macro here. */
  44674. -#undef SYS_ify
  44675. -#ifdef __STDC__
  44676. -# define SYS_ify(syscall_name) __NR_##syscall_name
  44677. -#else
  44678. -# define SYS_ify(syscall_name) __NR_/**/syscall_name
  44679. -#endif
  44680. -
  44681. -/* Linux uses a negative return value to indicate syscall errors, unlike
  44682. - most Unices, which use the condition codes' carry flag.
  44683. -
  44684. - Since version 2.1 the return value of a system call might be negative
  44685. - even if the call succeeded. E.g., the `lseek' system call might return
  44686. - a large offset. Therefore we must not anymore test for < 0, but test
  44687. - for a real error by making sure the value in %d0 is a real error
  44688. - number. Linus said he will make sure the no syscall returns a value
  44689. - in -1 .. -4095 as a valid result so we can savely test with -4095. */
  44690. -
  44691. -/* We don't want the label for the error handler to be visible in the symbol
  44692. - table when we define it here. */
  44693. -#define SYSCALL_ERROR_LABEL __syscall_error
  44694. -
  44695. -#undef PSEUDO
  44696. -#define PSEUDO(name, syscall_name, args) \
  44697. - ENTRY(name) \
  44698. - DO_CALL (SYS_ify(syscall_name)); \
  44699. - cmp.eq p6,p0=-1,r10; \
  44700. -(p6) br.cond.spnt.few __syscall_error;
  44701. -
  44702. -#define DO_CALL_VIA_BREAK(num) \
  44703. - mov r15=num; \
  44704. - break __BREAK_SYSCALL
  44705. -
  44706. -#ifdef IA64_USE_NEW_STUB
  44707. -# ifdef SHARED
  44708. -# define DO_CALL(num) \
  44709. - .prologue; \
  44710. - adds r2 = SYSINFO_OFFSET, r13;; \
  44711. - ld8 r2 = [r2]; \
  44712. - .save ar.pfs, r11; \
  44713. - mov r11 = ar.pfs;; \
  44714. - .body; \
  44715. - mov r15 = num; \
  44716. - mov b7 = r2; \
  44717. - br.call.sptk.many b6 = b7;; \
  44718. - .restore sp; \
  44719. - mov ar.pfs = r11; \
  44720. - .prologue; \
  44721. - .body
  44722. -# else /* !SHARED */
  44723. -# define DO_CALL(num) \
  44724. - .prologue; \
  44725. - mov r15 = num; \
  44726. - movl r2 = _dl_sysinfo;; \
  44727. - ld8 r2 = [r2]; \
  44728. - .save ar.pfs, r11; \
  44729. - mov r11 = ar.pfs;; \
  44730. - .body; \
  44731. - mov b7 = r2; \
  44732. - br.call.sptk.many b6 = b7;; \
  44733. - .restore sp; \
  44734. - mov ar.pfs = r11; \
  44735. - .prologue; \
  44736. - .body
  44737. -# endif
  44738. -#else
  44739. -# define DO_CALL(num) DO_CALL_VIA_BREAK(num)
  44740. -#endif
  44741. -
  44742. -#undef PSEUDO_END
  44743. -#define PSEUDO_END(name) .endp C_SYMBOL_NAME(name);
  44744. -
  44745. -#undef PSEUDO_NOERRNO
  44746. -#define PSEUDO_NOERRNO(name, syscall_name, args) \
  44747. - ENTRY(name) \
  44748. - DO_CALL (SYS_ify(syscall_name));
  44749. -
  44750. -#undef PSEUDO_END_NOERRNO
  44751. -#define PSEUDO_END_NOERRNO(name) .endp C_SYMBOL_NAME(name);
  44752. -
  44753. -#undef PSEUDO_ERRVAL
  44754. -#define PSEUDO_ERRVAL(name, syscall_name, args) \
  44755. - ENTRY(name) \
  44756. - DO_CALL (SYS_ify(syscall_name)); \
  44757. - cmp.eq p6,p0=-1,r10; \
  44758. -(p6) mov r10=r8;
  44759. -
  44760. -
  44761. -#undef PSEUDO_END_ERRVAL
  44762. -#define PSEUDO_END_ERRVAL(name) .endp C_SYMBOL_NAME(name);
  44763. -
  44764. -#undef END
  44765. -#define END(name) \
  44766. - .size C_SYMBOL_NAME(name), . - C_SYMBOL_NAME(name) ; \
  44767. - .endp C_SYMBOL_NAME(name)
  44768. -
  44769. -#define ret br.ret.sptk.few b0
  44770. -#define ret_NOERRNO ret
  44771. -#define ret_ERRVAL ret
  44772. -
  44773. -#endif /* not __ASSEMBLER__ */
  44774. -
  44775. -#endif /* linux/ia64/sysdep.h */
  44776. diff -Nur uClibc-0.9.33.2/libc/string/memmove.c uClibc-git/libc/string/memmove.c
  44777. --- uClibc-0.9.33.2/libc/string/memmove.c 2012-05-15 09:20:09.000000000 +0200
  44778. +++ uClibc-git/libc/string/memmove.c 2014-06-02 17:40:34.206713047 +0200
  44779. @@ -34,5 +34,5 @@
  44780. }
  44781. #ifndef WANT_WIDE
  44782. -libc_hidden_def(Wmemmove)
  44783. +libc_hidden_def(memmove)
  44784. #endif
  44785. diff -Nur uClibc-0.9.33.2/libc/string/metag/Makefile uClibc-git/libc/string/metag/Makefile
  44786. --- uClibc-0.9.33.2/libc/string/metag/Makefile 1970-01-01 01:00:00.000000000 +0100
  44787. +++ uClibc-git/libc/string/metag/Makefile 2014-06-02 17:40:34.206713047 +0200
  44788. @@ -0,0 +1,13 @@
  44789. +# Makefile for uClibc
  44790. +#
  44791. +# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
  44792. +#
  44793. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  44794. +#
  44795. +
  44796. +top_srcdir:=../../../
  44797. +top_builddir:=../../../
  44798. +all: objs
  44799. +include $(top_builddir)Rules.mak
  44800. +include ../Makefile.in
  44801. +include $(top_srcdir)Makerules
  44802. diff -Nur uClibc-0.9.33.2/libc/string/metag/memchr.S uClibc-git/libc/string/metag/memchr.S
  44803. --- uClibc-0.9.33.2/libc/string/metag/memchr.S 1970-01-01 01:00:00.000000000 +0100
  44804. +++ uClibc-git/libc/string/metag/memchr.S 2014-06-02 17:40:34.206713047 +0200
  44805. @@ -0,0 +1,156 @@
  44806. +! Copyright (C) 2013 Imagination Technologies Ltd.
  44807. +!
  44808. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  44809. +
  44810. + .text
  44811. + .global _memchr
  44812. + .type _memchr,function
  44813. +! D0Ar6 src
  44814. +! D0Ar2 c
  44815. +! D1Ar3 n
  44816. +_memchr:
  44817. + CMP D1Ar3, #0
  44818. + BEQ $Lexit_fail
  44819. + !! convert c to unsigned char
  44820. + AND D0Ar2,D0Ar2,#0xff
  44821. + MOV D0Ar6, D1Ar1
  44822. + MOV D1Ar5, D0Ar6
  44823. + !! test alignment
  44824. + AND D1Ar5, D1Ar5, #7
  44825. + CMP D1Ar5, #0
  44826. + BNZ $Lunaligned_loop
  44827. + !! length must be greater than or equal to 8 for aligned loop
  44828. + CMP D1Ar3, #8
  44829. + BGE $Laligned_setup
  44830. +$Lunaligned_loop:
  44831. + !! get 1 char from s
  44832. + GETB D0Re0, [D0Ar6++]
  44833. + !! increase alignment counter
  44834. + ADD D1Ar5, D1Ar5, #1
  44835. + !! decrement n
  44836. + SUB D1Ar3, D1Ar3, #1
  44837. + !! exit if we have a match
  44838. + CMP D0Re0, D0Ar2
  44839. + BZ $Lexit_success1
  44840. + !! exit if we have hit the end of the string
  44841. + CMP D1Ar3, #0
  44842. + BZ $Lexit_fail
  44843. + !! fall through if the buffer is aligned now
  44844. + CMP D1Ar5, #8
  44845. + BNE $Lunaligned_loop
  44846. + !! fall through if there is more than 8 bytes left
  44847. + CMP D1Ar3, #8
  44848. + BLT $Lunaligned_loop
  44849. +$Laligned_setup:
  44850. + !! fill the c into 4 bytes
  44851. + MOV D0Ar4, D0Ar2
  44852. + LSL D0Ar4, D0Ar4, #8
  44853. + ADD D0Ar4, D0Ar4, D0Ar2
  44854. + LSL D0Ar4, D0Ar4, #8
  44855. + ADD D0Ar4, D0Ar4, D0Ar2
  44856. + LSL D0Ar4, D0Ar4, #8
  44857. + ADD D0Ar4, D0Ar4, D0Ar2
  44858. + !! divide n by 8
  44859. + MOV D1Ar5, D1Ar3
  44860. + LSR D1Ar5, D1Ar5, #3
  44861. +$Laligned_loop:
  44862. + !! get 8 chars from s
  44863. + GETL D0Re0, D1Re0, [D0Ar6++]
  44864. + !! decrement loop counter
  44865. + SUB D1Ar5, D1Ar5, #1
  44866. + !! test first 4 chars
  44867. + XOR D0Re0, D0Re0, D0Ar4
  44868. + !! test second 4 chars
  44869. + MOV D0Ar2, D1Re0
  44870. + XOR D1Re0, D0Ar2, D0Ar4
  44871. + !! check for matches in the first 4 chars
  44872. + MOV D0Ar2, D0Re0
  44873. + ADDT D0Re0, D0Re0, #HI(0xfefefeff)
  44874. + ADD D0Re0, D0Re0, #LO(0xfefefeff)
  44875. + XOR D0Ar2, D0Ar2, #-1
  44876. + AND D0Re0, D0Re0, D0Ar2
  44877. + ANDMT D0Re0, D0Re0, #HI(0x80808080)
  44878. + ANDMB D0Re0, D0Re0, #LO(0x80808080)
  44879. + CMP D0Re0, #0
  44880. + BNZ $Lmatch_word1
  44881. + !! check for matches in the second 4 chars
  44882. + MOV D1Ar1, D1Re0
  44883. + ADDT D1Re0, D1Re0, #HI(0xfefefeff)
  44884. + ADD D1Re0, D1Re0, #LO(0xfefefeff)
  44885. + XOR D1Ar1, D1Ar1, #-1
  44886. + AND D1Re0, D1Re0, D1Ar1
  44887. + ANDMT D1Re0, D1Re0, #HI(0x80808080)
  44888. + ANDMB D1Re0, D1Re0, #LO(0x80808080)
  44889. + CMP D1Re0, #0
  44890. + BNZ $Lmatch_word2
  44891. + !! check if we have reached the end of the buffer
  44892. + CMP D1Ar5, #0
  44893. + BNE $Laligned_loop
  44894. + !! exit if there are no chars left to check
  44895. + AND D1Ar3, D1Ar3, #7
  44896. + CMP D1Ar3, #0
  44897. + BZ $Lexit_fail
  44898. + !! recover c
  44899. + AND D0Ar2, D0Ar4, #0xff
  44900. +$Lbyte_loop:
  44901. + !! get 1 char from s
  44902. + GETB D0Re0, [D0Ar6++]
  44903. + !! decrement n
  44904. + SUB D1Ar3, D1Ar3, #1
  44905. + !! exit if we have a match
  44906. + CMP D0Re0, D0Ar2
  44907. + BZ $Lexit_success1
  44908. + !! fall through if we have run out of chars
  44909. + CMP D1Ar3, #0
  44910. + BNE $Lbyte_loop
  44911. +
  44912. +$Lexit_fail:
  44913. + MOV D0Re0, #0
  44914. + B $Lend
  44915. +
  44916. +$Lmatch_word1:
  44917. + !! move the match word into D1Re0
  44918. + MOV D1Re0, D0Re0
  44919. + !! roll back the buffer pointer by 4 chars
  44920. + SUB D0Ar6, D0Ar6, #4
  44921. +$Lmatch_word2:
  44922. + !! roll back the buffer pointer by 4 chars
  44923. + SUB D0Ar6, D0Ar6, #4
  44924. + !! exit if lowest byte is 0
  44925. + MOV D1Ar1, D1Re0
  44926. + AND D1Ar1, D1Ar1, #0xff
  44927. + CMP D1Ar1, #0
  44928. + BNE $Lexit_success2
  44929. + !! advance buffer pointer to the next char
  44930. + ADD D0Ar6, D0Ar6, #1
  44931. + !! shift in the next lowest byte
  44932. + LSR D1Re0, D1Re0, #8
  44933. + !! exit if lowest byte is 0
  44934. + MOV D1Ar1, D1Re0
  44935. + AND D1Ar1, D1Ar1, #0xff
  44936. + CMP D1Ar1, #0
  44937. + BNE $Lexit_success2
  44938. + !! advance buffer pointer to the next char
  44939. + ADD D0Ar6, D0Ar6, #1
  44940. + !! shift in the next lowest byte
  44941. + LSR D1Re0, D1Re0, #8
  44942. + !! exit if lowest byte is 0
  44943. + MOV D1Ar1, D1Re0
  44944. + AND D1Ar1, D1Ar1, #0xff
  44945. + CMP D1Ar1, #0
  44946. + BNE $Lexit_success2
  44947. + !! the match must be in the last byte, exit
  44948. + ADD D0Ar6, D0Ar6, #1
  44949. + B $Lexit_success2
  44950. +
  44951. +$Lexit_success1:
  44952. + SUB D0Ar6, D0Ar6, #1
  44953. +$Lexit_success2:
  44954. + !! return the buffer pointer
  44955. + MOV D0Re0, D0Ar6
  44956. +$Lend:
  44957. + MOV PC, D1RtP
  44958. +
  44959. + .size _memchr,.-_memchr
  44960. +
  44961. +libc_hidden_def(memchr)
  44962. diff -Nur uClibc-0.9.33.2/libc/string/metag/memcpy.S uClibc-git/libc/string/metag/memcpy.S
  44963. --- uClibc-0.9.33.2/libc/string/metag/memcpy.S 1970-01-01 01:00:00.000000000 +0100
  44964. +++ uClibc-git/libc/string/metag/memcpy.S 2014-06-02 17:40:34.206713047 +0200
  44965. @@ -0,0 +1,189 @@
  44966. +! Copyright (C) 2013 Imagination Technologies Ltd.
  44967. +
  44968. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  44969. +
  44970. + .text
  44971. + .global _memcpy
  44972. + .type _memcpy,function
  44973. +! D1Ar1 dst
  44974. +! D0Ar2 src
  44975. +! D1Ar3 cnt
  44976. +! D0Re0 dst
  44977. +_memcpy:
  44978. + CMP D1Ar3, #16
  44979. + MOV A1.2, D0Ar2 ! source pointer
  44980. + MOV A0.2, D1Ar1 ! destination pointer
  44981. + MOV A0.3, D1Ar1 ! for return value
  44982. +! If there are less than 16 bytes to copy use the byte copy loop
  44983. + BGE $Llong_copy
  44984. +
  44985. +$Lbyte_copy:
  44986. +! Simply copy a byte at a time
  44987. + SUBS TXRPT, D1Ar3, #1
  44988. + BLT $Lend
  44989. +$Lloop_byte:
  44990. + GETB D1Re0, [A1.2++]
  44991. + SETB [A0.2++], D1Re0
  44992. + BR $Lloop_byte
  44993. +
  44994. +$Lend:
  44995. +! Finally set return value and return
  44996. + MOV D0Re0, A0.3
  44997. + MOV PC, D1RtP
  44998. +
  44999. +$Llong_copy:
  45000. + ANDS D1Ar5, D1Ar1, #7 ! test destination alignment
  45001. + BZ $Laligned_dst
  45002. +
  45003. +! The destination address is not 8 byte aligned. We will copy bytes from
  45004. +! the source to the destination until the remaining data has an 8 byte
  45005. +! destination address alignment (i.e we should never copy more than 7
  45006. +! bytes here).
  45007. +$Lalign_dst:
  45008. + GETB D0Re0, [A1.2++]
  45009. + ADD D1Ar5, D1Ar5, #1 ! dest is aligned when D1Ar5 reaches #8
  45010. + SUB D1Ar3, D1Ar3, #1 ! decrement count of remaining bytes
  45011. + SETB [A0.2++], D0Re0
  45012. + CMP D1Ar5, #8
  45013. + BNE $Lalign_dst
  45014. +
  45015. +! We have at least (16 - 7) = 9 bytes to copy - calculate the number of 8 byte
  45016. +! blocks, then jump to the unaligned copy loop or fall through to the aligned
  45017. +! copy loop as appropriate.
  45018. +$Laligned_dst:
  45019. + MOV D0Ar4, A1.2
  45020. + LSR D1Ar5, D1Ar3, #3 ! D1Ar5 = number of 8 byte blocks
  45021. + ANDS D0Ar4, D0Ar4, #7 ! test source alignment
  45022. + BNZ $Lunaligned_copy ! if unaligned, use unaligned copy loop
  45023. +
  45024. +! Both source and destination are 8 byte aligned - the easy case.
  45025. +$Laligned_copy:
  45026. + LSRS D1Ar5, D1Ar3, #5 ! D1Ar5 = number of 32 byte blocks
  45027. + BZ $Lbyte_copy
  45028. + SUB TXRPT, D1Ar5, #1
  45029. +
  45030. +$Laligned_32:
  45031. + GETL D0Re0, D1Re0, [A1.2++]
  45032. + GETL D0Ar6, D1Ar5, [A1.2++]
  45033. + SETL [A0.2++], D0Re0, D1Re0
  45034. + SETL [A0.2++], D0Ar6, D1Ar5
  45035. + GETL D0Re0, D1Re0, [A1.2++]
  45036. + GETL D0Ar6, D1Ar5, [A1.2++]
  45037. + SETL [A0.2++], D0Re0, D1Re0
  45038. + SETL [A0.2++], D0Ar6, D1Ar5
  45039. + BR $Laligned_32
  45040. +
  45041. +! If there are any remaining bytes use the byte copy loop, otherwise we are done
  45042. + ANDS D1Ar3, D1Ar3, #0x1f
  45043. + BNZ $Lbyte_copy
  45044. + B $Lend
  45045. +
  45046. +! The destination is 8 byte aligned but the source is not, and there are 8
  45047. +! or more bytes to be copied.
  45048. +$Lunaligned_copy:
  45049. +! Adjust the source pointer (A1.2) to the 8 byte boundary before its
  45050. +! current value
  45051. + MOV D0Ar4, A1.2
  45052. + MOV D0Ar6, A1.2
  45053. + ANDMB D0Ar4, D0Ar4, #0xfff8
  45054. + MOV A1.2, D0Ar4
  45055. +! Save the number of bytes of mis-alignment in D0Ar4 for use later
  45056. + SUBS D0Ar6, D0Ar6, D0Ar4
  45057. + MOV D0Ar4, D0Ar6
  45058. +! if there is no mis-alignment after all, use the aligned copy loop
  45059. + BZ $Laligned_copy
  45060. +
  45061. +! prefetch 8 bytes
  45062. + GETL D0Re0, D1Re0, [A1.2]
  45063. +
  45064. + SUB TXRPT, D1Ar5, #1
  45065. +
  45066. +! There are 3 mis-alignment cases to be considered. Less than 4 bytes, exactly
  45067. +! 4 bytes, and more than 4 bytes.
  45068. + CMP D0Ar6, #4
  45069. + BLT $Lunaligned_1_2_3 ! use 1-3 byte mis-alignment loop
  45070. + BZ $Lunaligned_4 ! use 4 byte mis-alignment loop
  45071. +
  45072. +! The mis-alignment is more than 4 bytes
  45073. +$Lunaligned_5_6_7:
  45074. + SUB D0Ar6, D0Ar6, #4
  45075. +! Calculate the bit offsets required for the shift operations necesssary
  45076. +! to align the data.
  45077. +! D0Ar6 = bit offset, D1Ar5 = (32 - bit offset)
  45078. + MULW D0Ar6, D0Ar6, #8
  45079. + MOV D1Ar5, #32
  45080. + SUB D1Ar5, D1Ar5, D0Ar6
  45081. +! Move data 4 bytes before we enter the main loop
  45082. + MOV D0Re0, D1Re0
  45083. +
  45084. +$Lloop_5_6_7:
  45085. + GETL D0Ar2, D1Ar1, [++A1.2]
  45086. +! form 64-bit data in D0Re0, D1Re0
  45087. + LSR D0Re0, D0Re0, D0Ar6
  45088. + MOV D1Re0, D0Ar2
  45089. + LSL D1Re0, D1Re0, D1Ar5
  45090. + ADD D0Re0, D0Re0, D1Re0
  45091. +
  45092. + LSR D0Ar2, D0Ar2, D0Ar6
  45093. + LSL D1Re0, D1Ar1, D1Ar5
  45094. + ADD D1Re0, D1Re0, D0Ar2
  45095. +
  45096. + SETL [A0.2++], D0Re0, D1Re0
  45097. + MOV D0Re0, D1Ar1
  45098. + BR $Lloop_5_6_7
  45099. +
  45100. + B $Lunaligned_end
  45101. +
  45102. +$Lunaligned_1_2_3:
  45103. +! Calculate the bit offsets required for the shift operations necesssary
  45104. +! to align the data.
  45105. +! D0Ar6 = bit offset, D1Ar5 = (32 - bit offset)
  45106. + MULW D0Ar6, D0Ar6, #8
  45107. + MOV D1Ar5, #32
  45108. + SUB D1Ar5, D1Ar5, D0Ar6
  45109. +
  45110. +$Lloop_1_2_3:
  45111. +! form 64-bit data in D0Re0,D1Re0
  45112. + LSR D0Re0, D0Re0, D0Ar6
  45113. + LSL D1Ar1, D1Re0, D1Ar5
  45114. + ADD D0Re0, D0Re0, D1Ar1
  45115. + MOV D0Ar2, D1Re0
  45116. + LSR D0FrT, D0Ar2, D0Ar6
  45117. + GETL D0Ar2, D1Ar1, [++A1.2]
  45118. +
  45119. + MOV D1Re0, D0Ar2
  45120. + LSL D1Re0, D1Re0, D1Ar5
  45121. + ADD D1Re0, D1Re0, D0FrT
  45122. +
  45123. + SETL [A0.2++], D0Re0, D1Re0
  45124. + MOV D0Re0, D0Ar2
  45125. + MOV D1Re0, D1Ar1
  45126. + BR $Lloop_1_2_3
  45127. +
  45128. + B $Lunaligned_end
  45129. +
  45130. +! The 4 byte mis-alignment case - this does not require any shifting, just a
  45131. +! shuffling of registers.
  45132. +$Lunaligned_4:
  45133. + MOV D0Re0, D1Re0
  45134. +$Lloop_4:
  45135. + GETL D0Ar2, D1Ar1, [++A1.2]
  45136. + MOV D1Re0, D0Ar2
  45137. + SETL [A0.2++], D0Re0, D1Re0
  45138. + MOV D0Re0, D1Ar1
  45139. + BR $Lloop_4
  45140. +
  45141. +$Lunaligned_end:
  45142. +! If there are no remaining bytes to copy, we are done.
  45143. + ANDS D1Ar3, D1Ar3, #7
  45144. + BZ $Lend
  45145. +! Re-adjust the source pointer (A1.2) back to the actual (unaligned) byte
  45146. +! address of the remaining bytes, and fall through to the byte copy loop.
  45147. + MOV D0Ar6, A1.2
  45148. + ADD D1Ar5, D0Ar4, D0Ar6
  45149. + MOV A1.2, D1Ar5
  45150. + B $Lbyte_copy
  45151. +
  45152. + .size _memcpy,.-_memcpy
  45153. +
  45154. +libc_hidden_def(memcpy)
  45155. diff -Nur uClibc-0.9.33.2/libc/string/metag/memmove.S uClibc-git/libc/string/metag/memmove.S
  45156. --- uClibc-0.9.33.2/libc/string/metag/memmove.S 1970-01-01 01:00:00.000000000 +0100
  45157. +++ uClibc-git/libc/string/metag/memmove.S 2014-06-02 17:40:34.206713047 +0200
  45158. @@ -0,0 +1,350 @@
  45159. +! Copyright (C) 2013 Imagination Technologies Ltd.
  45160. +
  45161. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  45162. +
  45163. +
  45164. + .text
  45165. + .global _memmove
  45166. + .type _memmove,function
  45167. +! D1Ar1 dst
  45168. +! D0Ar2 src
  45169. +! D1Ar3 cnt
  45170. +! D0Re0 dst
  45171. +_memmove:
  45172. + CMP D1Ar3, #0
  45173. + MOV D0Re0, D1Ar1
  45174. + BZ $LEND2
  45175. + MSETL [A0StP], D0.5, D0.6, D0.7
  45176. + MOV D1Ar5, D0Ar2
  45177. + CMP D1Ar1, D1Ar5
  45178. + BLT $Lforwards_copy
  45179. + SUB D0Ar4, D1Ar1, D1Ar3
  45180. + ADD D0Ar4, D0Ar4, #1
  45181. + CMP D0Ar2, D0Ar4
  45182. + BLT $Lforwards_copy
  45183. + ! should copy backwards
  45184. + MOV D1Re0, D0Ar2
  45185. + ! adjust pointer to the end of mem
  45186. + ADD D0Ar2, D1Re0, D1Ar3
  45187. + ADD D1Ar1, D1Ar1, D1Ar3
  45188. +
  45189. + MOV A1.2, D0Ar2
  45190. + MOV A0.2, D1Ar1
  45191. + CMP D1Ar3, #8
  45192. + BLT $Lbbyte_loop
  45193. +
  45194. + MOV D0Ar4, D0Ar2
  45195. + MOV D1Ar5, D1Ar1
  45196. +
  45197. + ! test 8 byte alignment
  45198. + ANDS D1Ar5, D1Ar5, #7
  45199. + BNE $Lbdest_unaligned
  45200. +
  45201. + ANDS D0Ar4, D0Ar4, #7
  45202. + BNE $Lbsrc_unaligned
  45203. +
  45204. + LSR D1Ar5, D1Ar3, #3
  45205. +
  45206. +$Lbaligned_loop:
  45207. + GETL D0Re0, D1Re0, [--A1.2]
  45208. + SETL [--A0.2], D0Re0, D1Re0
  45209. + SUBS D1Ar5, D1Ar5, #1
  45210. + BNE $Lbaligned_loop
  45211. +
  45212. + ANDS D1Ar3, D1Ar3, #7
  45213. + BZ $Lbbyte_loop_exit
  45214. +$Lbbyte_loop:
  45215. + GETB D1Re0, [--A1.2]
  45216. + SETB [--A0.2], D1Re0
  45217. + SUBS D1Ar3, D1Ar3, #1
  45218. + BNE $Lbbyte_loop
  45219. +$Lbbyte_loop_exit:
  45220. + MOV D0Re0, A0.2
  45221. +$LEND:
  45222. + SUB A0.2, A0StP, #24
  45223. + MGETL D0.5, D0.6, D0.7, [A0.2]
  45224. + SUB A0StP, A0StP, #24
  45225. +$LEND2:
  45226. + MOV PC, D1RtP
  45227. +
  45228. +$Lbdest_unaligned:
  45229. + GETB D0Re0, [--A1.2]
  45230. + SETB [--A0.2], D0Re0
  45231. + SUBS D1Ar5, D1Ar5, #1
  45232. + SUB D1Ar3, D1Ar3, #1
  45233. + BNE $Lbdest_unaligned
  45234. + CMP D1Ar3, #8
  45235. + BLT $Lbbyte_loop
  45236. +$Lbsrc_unaligned:
  45237. + LSR D1Ar5, D1Ar3, #3
  45238. + ! adjust A1.2
  45239. + MOV D0Ar4, A1.2
  45240. + ! save original address
  45241. + MOV D0Ar6, A1.2
  45242. +
  45243. + ADD D0Ar4, D0Ar4, #7
  45244. + ANDMB D0Ar4, D0Ar4, #0xfff8
  45245. + ! new address is the 8-byte aligned one above the original
  45246. + MOV A1.2, D0Ar4
  45247. +
  45248. + ! A0.2 dst 64-bit is aligned
  45249. + ! measure the gap size
  45250. + SUB D0Ar6, D0Ar4, D0Ar6
  45251. + MOVS D0Ar4, D0Ar6
  45252. + ! keep this information for the later adjustment
  45253. + ! both aligned
  45254. + BZ $Lbaligned_loop
  45255. +
  45256. + ! prefetch
  45257. + GETL D0Re0, D1Re0, [--A1.2]
  45258. +
  45259. + CMP D0Ar6, #4
  45260. + BLT $Lbunaligned_1_2_3
  45261. + ! 32-bit aligned
  45262. + BZ $Lbaligned_4
  45263. +
  45264. + SUB D0Ar6, D0Ar6, #4
  45265. + ! D1.6 stores the gap size in bits
  45266. + MULW D1.6, D0Ar6, #8
  45267. + MOV D0.6, #32
  45268. + ! D0.6 stores the complement of the gap size
  45269. + SUB D0.6, D0.6, D1.6
  45270. +
  45271. +$Lbunaligned_5_6_7:
  45272. + GETL D0.7, D1.7, [--A1.2]
  45273. + ! form 64-bit data in D0Re0, D1Re0
  45274. + MOV D1Re0, D0Re0
  45275. + ! D1Re0 << gap-size
  45276. + LSL D1Re0, D1Re0, D1.6
  45277. + MOV D0Re0, D1.7
  45278. + ! D0Re0 >> complement
  45279. + LSR D0Re0, D0Re0, D0.6
  45280. + MOV D1.5, D0Re0
  45281. + ! combine the both
  45282. + ADD D1Re0, D1Re0, D1.5
  45283. +
  45284. + MOV D1.5, D1.7
  45285. + LSL D1.5, D1.5, D1.6
  45286. + MOV D0Re0, D0.7
  45287. + LSR D0Re0, D0Re0, D0.6
  45288. + MOV D0.5, D1.5
  45289. + ADD D0Re0, D0Re0, D0.5
  45290. +
  45291. + SETL [--A0.2], D0Re0, D1Re0
  45292. + MOV D0Re0, D0.7
  45293. + MOV D1Re0, D1.7
  45294. + SUBS D1Ar5, D1Ar5, #1
  45295. + BNE $Lbunaligned_5_6_7
  45296. +
  45297. + ANDS D1Ar3, D1Ar3, #7
  45298. + BZ $Lbbyte_loop_exit
  45299. + ! Adjust A1.2
  45300. + ! A1.2 <- A1.2 +8 - gapsize
  45301. + ADD A1.2, A1.2, #8
  45302. + SUB A1.2, A1.2, D0Ar4
  45303. + B $Lbbyte_loop
  45304. +
  45305. +$Lbunaligned_1_2_3:
  45306. + MULW D1.6, D0Ar6, #8
  45307. + MOV D0.6, #32
  45308. + SUB D0.6, D0.6, D1.6
  45309. +
  45310. +$Lbunaligned_1_2_3_loop:
  45311. + GETL D0.7, D1.7, [--A1.2]
  45312. + ! form 64-bit data in D0Re0, D1Re0
  45313. + LSL D1Re0, D1Re0, D1.6
  45314. + ! save D0Re0 for later use
  45315. + MOV D0.5, D0Re0
  45316. + LSR D0Re0, D0Re0, D0.6
  45317. + MOV D1.5, D0Re0
  45318. + ADD D1Re0, D1Re0, D1.5
  45319. +
  45320. + ! orignal data in D0Re0
  45321. + MOV D1.5, D0.5
  45322. + LSL D1.5, D1.5, D1.6
  45323. + MOV D0Re0, D1.7
  45324. + LSR D0Re0, D0Re0, D0.6
  45325. + MOV D0.5, D1.5
  45326. + ADD D0Re0, D0Re0, D0.5
  45327. +
  45328. + SETL [--A0.2], D0Re0, D1Re0
  45329. + MOV D0Re0, D0.7
  45330. + MOV D1Re0, D1.7
  45331. + SUBS D1Ar5, D1Ar5, #1
  45332. + BNE $Lbunaligned_1_2_3_loop
  45333. +
  45334. + ANDS D1Ar3, D1Ar3, #7
  45335. + BZ $Lbbyte_loop_exit
  45336. + ! Adjust A1.2
  45337. + ADD A1.2, A1.2, #8
  45338. + SUB A1.2, A1.2, D0Ar4
  45339. + B $Lbbyte_loop
  45340. +
  45341. +$Lbaligned_4:
  45342. + GETL D0.7, D1.7, [--A1.2]
  45343. + MOV D1Re0, D0Re0
  45344. + MOV D0Re0, D1.7
  45345. + SETL [--A0.2], D0Re0, D1Re0
  45346. + MOV D0Re0, D0.7
  45347. + MOV D1Re0, D1.7
  45348. + SUBS D1Ar5, D1Ar5, #1
  45349. + BNE $Lbaligned_4
  45350. + ANDS D1Ar3, D1Ar3, #7
  45351. + BZ $Lbbyte_loop_exit
  45352. + ! Adjust A1.2
  45353. + ADD A1.2, A1.2, #8
  45354. + SUB A1.2, A1.2, D0Ar4
  45355. + B $Lbbyte_loop
  45356. +
  45357. +$Lforwards_copy:
  45358. + MOV A1.2, D0Ar2
  45359. + MOV A0.2, D1Ar1
  45360. + CMP D1Ar3, #8
  45361. + BLT $Lfbyte_loop
  45362. +
  45363. + MOV D0Ar4, D0Ar2
  45364. + MOV D1Ar5, D1Ar1
  45365. +
  45366. + ANDS D1Ar5, D1Ar5, #7
  45367. + BNE $Lfdest_unaligned
  45368. +
  45369. + ANDS D0Ar4, D0Ar4, #7
  45370. + BNE $Lfsrc_unaligned
  45371. +
  45372. + LSR D1Ar5, D1Ar3, #3
  45373. +
  45374. +$Lfaligned_loop:
  45375. + GETL D0Re0, D1Re0, [A1.2++]
  45376. + SUBS D1Ar5, D1Ar5, #1
  45377. + SETL [A0.2++], D0Re0, D1Re0
  45378. + BNE $Lfaligned_loop
  45379. +
  45380. + ANDS D1Ar3, D1Ar3, #7
  45381. + BZ $Lfbyte_loop_exit
  45382. +$Lfbyte_loop:
  45383. + GETB D1Re0, [A1.2++]
  45384. + SETB [A0.2++], D1Re0
  45385. + SUBS D1Ar3, D1Ar3, #1
  45386. + BNE $Lfbyte_loop
  45387. +$Lfbyte_loop_exit:
  45388. + MOV D0Re0, D1Ar1
  45389. + B $LEND
  45390. +
  45391. +$Lfdest_unaligned:
  45392. + GETB D0Re0, [A1.2++]
  45393. + ADD D1Ar5, D1Ar5, #1
  45394. + SUB D1Ar3, D1Ar3, #1
  45395. + SETB [A0.2++], D0Re0
  45396. + CMP D1Ar5, #8
  45397. + BNE $Lfdest_unaligned
  45398. + CMP D1Ar3, #8
  45399. + BLT $Lfbyte_loop
  45400. +$Lfsrc_unaligned:
  45401. + ! adjust A1.2
  45402. + LSR D1Ar5, D1Ar3, #3
  45403. +
  45404. + MOV D0Ar4, A1.2
  45405. + MOV D0Ar6, A1.2
  45406. + ANDMB D0Ar4, D0Ar4, #0xfff8
  45407. + MOV A1.2, D0Ar4
  45408. +
  45409. + ! A0.2 dst 64-bit is aligned
  45410. + SUB D0Ar6, D0Ar6, D0Ar4
  45411. + ! keep the information for the later adjustment
  45412. + MOVS D0Ar4, D0Ar6
  45413. +
  45414. + ! both aligned
  45415. + BZ $Lfaligned_loop
  45416. +
  45417. + ! prefetch
  45418. + GETL D0Re0, D1Re0, [A1.2]
  45419. +
  45420. + CMP D0Ar6, #4
  45421. + BLT $Lfunaligned_1_2_3
  45422. + BZ $Lfaligned_4
  45423. +
  45424. + SUB D0Ar6, D0Ar6, #4
  45425. + MULW D0.6, D0Ar6, #8
  45426. + MOV D1.6, #32
  45427. + SUB D1.6, D1.6, D0.6
  45428. +
  45429. +$Lfunaligned_5_6_7:
  45430. + GETL D0.7, D1.7, [++A1.2]
  45431. + ! form 64-bit data in D0Re0, D1Re0
  45432. + MOV D0Re0, D1Re0
  45433. + LSR D0Re0, D0Re0, D0.6
  45434. + MOV D1Re0, D0.7
  45435. + LSL D1Re0, D1Re0, D1.6
  45436. + MOV D0.5, D1Re0
  45437. + ADD D0Re0, D0Re0, D0.5
  45438. +
  45439. + MOV D0.5, D0.7
  45440. + LSR D0.5, D0.5, D0.6
  45441. + MOV D1Re0, D1.7
  45442. + LSL D1Re0, D1Re0, D1.6
  45443. + MOV D1.5, D0.5
  45444. + ADD D1Re0, D1Re0, D1.5
  45445. +
  45446. + SETL [A0.2++], D0Re0, D1Re0
  45447. + MOV D0Re0, D0.7
  45448. + MOV D1Re0, D1.7
  45449. + SUBS D1Ar5, D1Ar5, #1
  45450. + BNE $Lfunaligned_5_6_7
  45451. +
  45452. + ANDS D1Ar3, D1Ar3, #7
  45453. + BZ $Lfbyte_loop_exit
  45454. + ! Adjust A1.2
  45455. + ADD A1.2, A1.2, D0Ar4
  45456. + B $Lfbyte_loop
  45457. +
  45458. +$Lfunaligned_1_2_3:
  45459. + MULW D0.6, D0Ar6, #8
  45460. + MOV D1.6, #32
  45461. + SUB D1.6, D1.6, D0.6
  45462. +
  45463. +$Lfunaligned_1_2_3_loop:
  45464. + GETL D0.7, D1.7, [++A1.2]
  45465. + ! form 64-bit data in D0Re0, D1Re0
  45466. + LSR D0Re0, D0Re0, D0.6
  45467. + MOV D1.5, D1Re0
  45468. + LSL D1Re0, D1Re0, D1.6
  45469. + MOV D0.5, D1Re0
  45470. + ADD D0Re0, D0Re0, D0.5
  45471. +
  45472. + MOV D0.5, D1.5
  45473. + LSR D0.5, D0.5, D0.6
  45474. + MOV D1Re0, D0.7
  45475. + LSL D1Re0, D1Re0, D1.6
  45476. + MOV D1.5, D0.5
  45477. + ADD D1Re0, D1Re0, D1.5
  45478. +
  45479. + SETL [A0.2++], D0Re0, D1Re0
  45480. + MOV D0Re0, D0.7
  45481. + MOV D1Re0, D1.7
  45482. + SUBS D1Ar5, D1Ar5, #1
  45483. + BNE $Lfunaligned_1_2_3_loop
  45484. +
  45485. + ANDS D1Ar3, D1Ar3, #7
  45486. + BZ $Lfbyte_loop_exit
  45487. + ! Adjust A1.2
  45488. + ADD A1.2, A1.2, D0Ar4
  45489. + B $Lfbyte_loop
  45490. +
  45491. +$Lfaligned_4:
  45492. + GETL D0.7, D1.7, [++A1.2]
  45493. + MOV D0Re0, D1Re0
  45494. + MOV D1Re0, D0.7
  45495. + SETL [A0.2++], D0Re0, D1Re0
  45496. + MOV D0Re0, D0.7
  45497. + MOV D1Re0, D1.7
  45498. + SUBS D1Ar5, D1Ar5, #1
  45499. + BNE $Lfaligned_4
  45500. + ANDS D1Ar3, D1Ar3, #7
  45501. + BZ $Lfbyte_loop_exit
  45502. + ! Adjust A1.2
  45503. + ADD A1.2, A1.2, D0Ar4
  45504. + B $Lfbyte_loop
  45505. +
  45506. + .size _memmove,.-_memmove
  45507. +
  45508. +libc_hidden_def(memmove)
  45509. diff -Nur uClibc-0.9.33.2/libc/string/metag/memset.S uClibc-git/libc/string/metag/memset.S
  45510. --- uClibc-0.9.33.2/libc/string/metag/memset.S 1970-01-01 01:00:00.000000000 +0100
  45511. +++ uClibc-git/libc/string/metag/memset.S 2014-06-02 17:40:34.206713047 +0200
  45512. @@ -0,0 +1,90 @@
  45513. +! Copyright (C) 2013 Imagination Technologies Ltd.
  45514. +
  45515. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  45516. +
  45517. +
  45518. + .text
  45519. + .global _memset
  45520. + .type _memset,function
  45521. +! D1Ar1 dst
  45522. +! D0Ar2 c
  45523. +! D1Ar3 cnt
  45524. +! D0Re0 dst
  45525. +_memset:
  45526. + AND D0Ar2,D0Ar2,#0xFF ! Ensure a byte input value
  45527. + MULW D0Ar2,D0Ar2,#0x0101 ! Duplicate byte value into 0-15
  45528. + ANDS D0Ar4,D1Ar1,#7 ! Extract bottom LSBs of dst
  45529. + LSL D0Re0,D0Ar2,#16 ! Duplicate byte value into 16-31
  45530. + ADD A0.2,D0Ar2,D0Re0 ! Duplicate byte value into 4 (A0.2)
  45531. + MOV D0Re0,D1Ar1 ! Return dst
  45532. + BZ $LLongStub ! if start address is aligned
  45533. + ! start address is not aligned on an 8 byte boundary, so we
  45534. + ! need the number of bytes up to the next 8 byte address
  45535. + ! boundary, or the length of the string if less than 8, in D1Ar5
  45536. + MOV D0Ar2,#8 ! Need 8 - N in D1Ar5 ...
  45537. + SUB D1Ar5,D0Ar2,D0Ar4 ! ... subtract N
  45538. + CMP D1Ar3,D1Ar5
  45539. + MOVMI D1Ar5,D1Ar3
  45540. + B $LByteStub ! dst is mis-aligned, do $LByteStub
  45541. +
  45542. +!
  45543. +! Preamble to LongLoop which generates 4*8 bytes per interation (5 cycles)
  45544. +!
  45545. +$LLongStub:
  45546. + LSRS D0Ar2,D1Ar3,#5
  45547. + AND D1Ar3,D1Ar3,#0x1F
  45548. + MOV A1.2,A0.2
  45549. + BEQ $LLongishStub
  45550. + SUB TXRPT,D0Ar2,#1
  45551. + CMP D1Ar3,#0
  45552. +$LLongLoop:
  45553. + SETL [D1Ar1++],A0.2,A1.2
  45554. + SETL [D1Ar1++],A0.2,A1.2
  45555. + SETL [D1Ar1++],A0.2,A1.2
  45556. + SETL [D1Ar1++],A0.2,A1.2
  45557. + BR $LLongLoop
  45558. + BZ $Lexit
  45559. +!
  45560. +! Preamble to LongishLoop which generates 1*8 bytes per interation (2 cycles)
  45561. +!
  45562. +$LLongishStub:
  45563. + LSRS D0Ar2,D1Ar3,#3
  45564. + AND D1Ar3,D1Ar3,#0x7
  45565. + MOV D1Ar5,D1Ar3
  45566. + BEQ $LByteStub
  45567. + SUB TXRPT,D0Ar2,#1
  45568. + CMP D1Ar3,#0
  45569. +$LLongishLoop:
  45570. + SETL [D1Ar1++],A0.2,A1.2
  45571. + BR $LLongishLoop
  45572. + BZ $Lexit
  45573. +!
  45574. +! This does a byte structured burst of up to 7 bytes
  45575. +!
  45576. +! D1Ar1 should point to the location required
  45577. +! D1Ar3 should be the remaining total byte count
  45578. +! D1Ar5 should be burst size (<= D1Ar3)
  45579. +!
  45580. +$LByteStub:
  45581. + SUBS D1Ar3,D1Ar3,D1Ar5 ! Reduce count
  45582. + ADD D1Ar1,D1Ar1,D1Ar5 ! Advance pointer to end of area
  45583. + MULW D1Ar5,D1Ar5,#4 ! Scale to (1*4), (2*4), (3*4)
  45584. + SUB D1Ar5,D1Ar5,#(8*4) ! Rebase to -(7*4), -(6*4), -(5*4), ...
  45585. + MOV A1.2,D1Ar5
  45586. + SUB PC,CPC1,A1.2 ! Jump into table below
  45587. + SETB [D1Ar1+#(-7)],A0.2
  45588. + SETB [D1Ar1+#(-6)],A0.2
  45589. + SETB [D1Ar1+#(-5)],A0.2
  45590. + SETB [D1Ar1+#(-4)],A0.2
  45591. + SETB [D1Ar1+#(-3)],A0.2
  45592. + SETB [D1Ar1+#(-2)],A0.2
  45593. + SETB [D1Ar1+#(-1)],A0.2
  45594. +!
  45595. +! Return if all data has been output, otherwise do $LLongStub
  45596. +!
  45597. + BNZ $LLongStub
  45598. +$Lexit:
  45599. + MOV PC,D1RtP
  45600. + .size _memset,.-_memset
  45601. +
  45602. +libc_hidden_def(memset)
  45603. diff -Nur uClibc-0.9.33.2/libc/string/metag/strchr.S uClibc-git/libc/string/metag/strchr.S
  45604. --- uClibc-0.9.33.2/libc/string/metag/strchr.S 1970-01-01 01:00:00.000000000 +0100
  45605. +++ uClibc-git/libc/string/metag/strchr.S 2014-06-02 17:40:34.206713047 +0200
  45606. @@ -0,0 +1,167 @@
  45607. +! Copyright (C) 2013 Imagination Technologies Ltd.
  45608. +
  45609. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  45610. +
  45611. +
  45612. +#include <features.h>
  45613. +
  45614. + .text
  45615. + .global _strchr
  45616. + .type _strchr, function
  45617. +! D1Ar1 src
  45618. +! D0Ar2 c
  45619. +_strchr:
  45620. + AND D0Ar2,D0Ar2,#0xff ! Drop all but 8 bits of c
  45621. + MOV D1Ar5, D1Ar1 ! Copy src to D1Ar5
  45622. + AND D1Ar5, D1Ar5, #7 ! Check 64 bit alignment
  45623. + CMP D1Ar5, #0
  45624. + BZ $Laligned64bit ! Jump to 64 bit aligned strchr
  45625. +$Lalign64bit:
  45626. + GETB D0Re0, [D1Ar1++] ! Get the next character
  45627. + ADD D1Ar5, D1Ar5, #1 ! Increment alignment counter
  45628. + CMP D0Re0, D0Ar2 ! Is the char c
  45629. + BZ $Lcharatprevious ! If so exit returning position
  45630. + CMP D0Re0, #0 ! End of string?
  45631. + BZ $Lnotfound ! If so exit
  45632. + CMP D1Ar5, #8 ! Are we aligned 64bit yet?
  45633. + BNZ $Lalign64bit ! If not keep aligning
  45634. +$Laligned64bit: ! src is 64bit aligned
  45635. + MOV D0Ar4, D0Ar2 ! put c into D0Ar4
  45636. + LSL D0Ar4, D0Ar4, #8 ! Shift it up
  45637. + ADD D0Ar4, D0Ar4, D0Ar2 ! another c
  45638. + LSL D0Ar4, D0Ar4, #8 ! shift
  45639. + ADD D0Ar4, D0Ar4, D0Ar2 ! another c
  45640. + LSL D0Ar4, D0Ar4, #8 ! shift
  45641. + ADD D0Ar4, D0Ar4, D0Ar2 ! 4 copies of c
  45642. +$Lcheck8bytes:
  45643. + GETL D0Re0, D1Re0, [D1Ar1++] ! grab 16 bytes
  45644. + MOV A0.3, D0Re0 ! save for later use
  45645. + ! first word
  45646. + ! check for \0
  45647. + MOV D0Ar2, D0Re0 ! D0Ar2 is a scratch now
  45648. + ADDT D0Re0, D0Re0, #HI(0xfefefeff) ! Do 4 1-byte compares
  45649. + ADD D0Re0, D0Re0, #LO(0xfefefeff)
  45650. + XOR D0Ar2, D0Ar2, #-1
  45651. + AND D0Re0, D0Re0, D0Ar2
  45652. + ANDMT D0Re0, D0Re0, #HI(0x80808080)
  45653. + ANDMB D0Re0, D0Re0, #LO(0x80808080)
  45654. + CMP D0Re0, #0
  45655. + BNZ $Lnullinword1 ! found \0 (or c if c==\0)
  45656. +
  45657. + ! Check for c
  45658. + MOV D0Re0, A0.3 ! restore the first word
  45659. + XOR D0Re0, D0Re0, D0Ar4
  45660. + MOV D0Ar2, D0Re0 ! DO 4 1-byte compares
  45661. + ADDT D0Re0, D0Re0, #HI(0xfefefeff)
  45662. + ADD D0Re0, D0Re0, #LO(0xfefefeff)
  45663. + XOR D0Ar2, D0Ar2, #-1
  45664. + AND D0Re0, D0Re0, D0Ar2
  45665. + ANDMT D0Re0, D0Re0, #HI(0x80808080)
  45666. + ANDMB D0Re0, D0Re0, #LO(0x80808080)
  45667. + CMP D0Re0, #0
  45668. + BNZ $Lcharinword1 ! found c
  45669. +
  45670. + ! second word
  45671. + ! check for \0
  45672. + MOV A0.3, D1Re0 ! save for later use
  45673. + MOV D1Ar3, D1Re0
  45674. + ADDT D1Re0, D1Re0, #HI(0xfefefeff) ! Do 4 1-byte compares
  45675. + ADD D1Re0, D1Re0, #LO(0xfefefeff)
  45676. + XOR D1Ar3, D1Ar3, #-1
  45677. + AND D1Re0, D1Re0, D1Ar3
  45678. + ANDMT D1Re0, D1Re0, #HI(0x80808080)
  45679. + ANDMB D1Re0, D1Re0, #LO(0x80808080)
  45680. + CMP D1Re0, #0
  45681. + BNZ $Lnullinword2 ! Found \0 (or c if c==\0)
  45682. +
  45683. + MOV D0.4, A0.3 ! restore the second word
  45684. + XOR D1Re0, D0.4, D0Ar4 ! test c
  45685. +
  45686. + MOV D1Ar3, D1Re0
  45687. + ADDT D1Re0, D1Re0, #HI(0xfefefeff) ! Do 4 1-byte compares
  45688. + ADD D1Re0, D1Re0, #LO(0xfefefeff)
  45689. + XOR D1Ar3, D1Ar3, #-1
  45690. + AND D1Re0, D1Re0, D1Ar3
  45691. + ANDMT D1Re0, D1Re0, #HI(0x80808080)
  45692. + ANDMB D1Re0, D1Re0, #LO(0x80808080)
  45693. + CMP D1Re0, #0
  45694. + BNZ $Lcharinword2 ! found c
  45695. +
  45696. + B $Lcheck8bytes ! Keep checking
  45697. +
  45698. +$Lnullinword1: ! found \0 somewhere, check for c too
  45699. + SUB D1Ar1, D1Ar1, #4
  45700. +$Lnullinword2:
  45701. + SUB D1Ar1, D1Ar1, #4
  45702. + AND D0Ar2, D0Ar4, #0xff ! restore c
  45703. + MOV D0Re0, A0.3 ! restore the word
  45704. + MOV D0.4, D0Re0 ! for shifting later
  45705. + AND D0Re0, D0Re0, #0xff ! take first byte of word
  45706. + CMP D0Re0, D0Ar2
  45707. + BZ $Lcharatcurrent ! found c
  45708. + CMP D0Re0, #0!
  45709. + BZ $Lnotfound ! found \0
  45710. +
  45711. + ADD D1Ar1, D1Ar1, #1
  45712. + LSR D0.4, D0.4, #8
  45713. + MOV D0Re0, D0.4
  45714. + AND D0Re0, D0Re0, #0xff ! take second byte of word
  45715. + CMP D0Re0, D0Ar2
  45716. + BZ $Lcharatcurrent ! found c
  45717. + CMP D0Re0, #0
  45718. + BZ $Lnotfound ! found \0
  45719. +
  45720. + ADD D1Ar1, D1Ar1, #1
  45721. + LSR D0.4, D0.4, #8
  45722. + MOV D0Re0, D0.4
  45723. + AND D0Re0, D0Re0, #0xff ! take third byte of word
  45724. + CMP D0Re0, D0Ar2
  45725. + BZ $Lcharatcurrent ! found c
  45726. + CMP D0Re0, #0
  45727. + BZ $Lnotfound ! found \0
  45728. +
  45729. + ADD D1Ar1, D1Ar1, #1 ! move to 4th byte
  45730. + CMP D0Ar2, #0 ! If c was \0
  45731. + BZ $Lcharatcurrent ! c has been found!
  45732. +
  45733. +$Lnotfound:
  45734. + MOV D0Re0, #0 ! End of string c not found
  45735. + B $Lend
  45736. +
  45737. +$Lcharinword1: ! found c in first word
  45738. + MOV D1Re0, D0Re0
  45739. + SUB D1Ar1, D1Ar1, #4
  45740. +$Lcharinword2: ! found c in second word
  45741. + SUB D1Ar1, D1Ar1, #4
  45742. +
  45743. + AND D0Re0, D1Re0, #0xff ! First byte
  45744. + CMP D0Re0, #0 ! Test c (zero indicates c due
  45745. + ! to the 4 1-byte compare code)
  45746. + BNE $Lcharatcurrent
  45747. + ADD D1Ar1, D1Ar1, #1
  45748. +
  45749. + LSR D1Re0, D1Re0, #8
  45750. + AND D0Re0, D1Re0, #0xff ! Second byte
  45751. + CMP D0Re0, #0 ! Test c (indicated by zero)
  45752. + BNE $Lcharatcurrent
  45753. + ADD D1Ar1, D1Ar1, #1
  45754. +
  45755. + LSR D1Re0, D1Re0, #8
  45756. + AND D0Re0, D1Re0, #0xff ! Third byte
  45757. + CMP D0Re0, #0 ! Test c (indicated by zero)
  45758. + BNE $Lcharatcurrent
  45759. + ADD D1Ar1, D1Ar1, #1 ! Must be the fourth byte
  45760. + B $Lcharatcurrent
  45761. +
  45762. +$Lcharatprevious:
  45763. + SUB D1Ar1, D1Ar1, #1 ! Fix-up pointer
  45764. +$Lcharatcurrent:
  45765. + MOV D0Re0, D1Ar1 ! Return the string pointer
  45766. +$Lend:
  45767. + MOV PC, D1RtP
  45768. + .size _strchr,.-_strchr
  45769. +
  45770. +libc_hidden_def(strchr)
  45771. +#ifdef __UCLIBC_SUSV3_LEGACY__
  45772. +strong_alias(strchr,index)
  45773. +#endif
  45774. diff -Nur uClibc-0.9.33.2/libc/string/metag/strcmp.S uClibc-git/libc/string/metag/strcmp.S
  45775. --- uClibc-0.9.33.2/libc/string/metag/strcmp.S 1970-01-01 01:00:00.000000000 +0100
  45776. +++ uClibc-git/libc/string/metag/strcmp.S 2014-06-02 17:40:34.206713047 +0200
  45777. @@ -0,0 +1,65 @@
  45778. +! Copyright (C) 2013 Imagination Technologies Ltd.
  45779. +
  45780. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  45781. +
  45782. +
  45783. +#include <features.h>
  45784. +
  45785. + .text
  45786. + .global _strcmp
  45787. + .type _strcmp,function
  45788. +!D1Ar1 s1
  45789. +!D0Ar2 s2
  45790. +_strcmp:
  45791. + TST D1Ar1,#3
  45792. + TSTZ D0Ar2,#3
  45793. + MOVT D1Re0,#0x0101
  45794. + ADD D1Re0,D1Re0,#0x0101
  45795. + BNZ $Lstrcmp_slow
  45796. + GETD D1Ar3,[D1Ar1+#4++] ! Load 32-bits from s1
  45797. + GETD D1Ar5,[D0Ar2+#4++] ! Load 32-bits from s2
  45798. + LSL D0FrT,D1Re0,#7 ! D0FrT = 0x80808080
  45799. +$Lstrcmp4_loop:
  45800. + SUB D0Re0,D1Ar3,D1Re0 ! D1Re0 = 0x01010101
  45801. + MOV D0Ar6,D1Ar3
  45802. + SUBS D0Ar4,D1Ar3,D1Ar5 ! Calculate difference
  45803. + XOR D0Ar6,D0Ar6,#-1
  45804. + GETD D1Ar3,[D1Ar1+#4++] ! Load 32-bits from s1
  45805. + AND D0Re0,D0Re0,D0Ar6
  45806. + ANDSZ D0Ar6,D0Re0,D0FrT ! D0FrT = 0x80808080
  45807. + GETD D1Ar5,[D0Ar2+#4++] ! Load 32-bits from s2
  45808. + BZ $Lstrcmp4_loop
  45809. + AND D0Ar6, D0Re0, D0FrT ! D0FrT = 0x80808080
  45810. +!
  45811. +! Either they are different or they both contain a NULL + junk
  45812. +!
  45813. +$Lstrcmp4_end:
  45814. + LSLS D0Re0,D0Ar4,#24 ! Was Byte[0] the same?
  45815. + LSLSZ D0Ar2,D0Ar6,#24 ! Yes: AND they where not zero?
  45816. + LSLSZ D0Re0,D0Ar4,#16 ! Yes: Was Byte[1] the same?
  45817. + LSLSZ D0Ar2,D0Ar6,#16 ! Yes: AND they where not zero?
  45818. + LSLSZ D0Re0,D0Ar4,#8 ! Tes: Was Byte[2] the same?
  45819. + LSLSZ D0Ar2,D0Ar6,#8 ! Yes: AND they where not zero?
  45820. + MOVZ D0Re0,D0Ar4 ! Yes: Must by Byte[3] thats the result
  45821. + ASR D0Re0,D0Re0,#24 ! Sign extend result to integer
  45822. + MOV PC,D1RtP
  45823. +!
  45824. +! Misaligned case, byte at a time
  45825. +!
  45826. +$Lstrcmp_slow:
  45827. + GETB D1Ar3,[D1Ar1++] ! Load char from s1
  45828. + GETB D1Ar5,[D0Ar2++] ! Load char from s2
  45829. + CMP D1Ar3,#1 ! Null -> C and NZ, rest -> NC (\1->Z)
  45830. + CMPNC D1Ar3,D1Ar5 ! NOT Null: Same -> Z, else -> NZ
  45831. + BZ $Lstrcmp_slow ! NOT Null and Same: Loop
  45832. + SUB D0Re0,D1Ar3,D1Ar5 ! Generate result
  45833. + MOV PC,D1RtP
  45834. +
  45835. + .size _strcmp,.-_strcmp
  45836. +
  45837. +
  45838. +libc_hidden_def(strcmp)
  45839. +#ifndef __UCLIBC_HAS_LOCALE__
  45840. +strong_alias(strcmp,strcoll)
  45841. +libc_hidden_def(strcoll)
  45842. +#endif
  45843. diff -Nur uClibc-0.9.33.2/libc/string/metag/strcpy.S uClibc-git/libc/string/metag/strcpy.S
  45844. --- uClibc-0.9.33.2/libc/string/metag/strcpy.S 1970-01-01 01:00:00.000000000 +0100
  45845. +++ uClibc-git/libc/string/metag/strcpy.S 2014-06-02 17:40:34.206713047 +0200
  45846. @@ -0,0 +1,94 @@
  45847. +! Copyright (C) 2013 Imagination Technologies Ltd.
  45848. +
  45849. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  45850. +
  45851. +
  45852. + .text
  45853. + .global _strcpy
  45854. + .type _strcpy,function
  45855. +! D1Ar1 dst
  45856. +! D0Ar2 src
  45857. +
  45858. +_strcpy:
  45859. + MOV A1.2, D1Ar1
  45860. +
  45861. + ! test 4 byte alignment of src
  45862. + ANDS D0Ar4, D0Ar2, #3
  45863. + BNZ $Lbyteloop
  45864. +
  45865. + ! test 4 byte alignment of dest
  45866. + ANDS D1Ar5, D1Ar1, #3
  45867. + BNZ $Lbyteloop
  45868. +
  45869. + ! load mask values for aligned loops
  45870. + MOVT D1Ar3, #HI(0xfefefeff)
  45871. + ADD D1Ar3, D1Ar3, #LO(0xfefefeff)
  45872. + MOVT D0FrT, #HI(0x80808080)
  45873. + ADD D0FrT, D0FrT, #LO(0x80808080)
  45874. +
  45875. + ! test 8 byte alignment of src
  45876. + ANDS D0Ar4, D0Ar2, #7
  45877. + BNZ $Lwordloop
  45878. +
  45879. + ! test 8 byte alignment of dest
  45880. + ANDS D1Ar5, D1Ar1, #7
  45881. + BNZ $Lwordloop
  45882. +
  45883. +$L8byteloop:
  45884. + GETL D1Ar5, D0Ar6, [D0Ar2++]
  45885. + MOV D1Re0, D1Ar5
  45886. + MOV D0Re0, D1Ar5
  45887. + ADD D1Re0, D1Re0, D1Ar3
  45888. + XOR D0Re0, D0Re0, #-1
  45889. + AND D1Re0, D1Re0, D0Re0
  45890. + ANDS D1Re0, D1Re0, D0FrT
  45891. + BNZ $Lnullfound ! NULL in first word
  45892. +
  45893. + MOV D1Re0, D0Ar6
  45894. + MOV D0Re0, D0Ar6
  45895. + ADD D1Re0, D1Re0, D1Ar3
  45896. + XOR D0Re0, D0Re0, #-1
  45897. + AND D1Re0, D1Re0, D0Re0
  45898. + ANDS D1Re0, D1Re0, D0FrT
  45899. + BNZ $Lnullfound2 ! NULL in the second word
  45900. +
  45901. + SETL [A1.2++], D1Ar5, D0Ar6
  45902. + B $L8byteloop
  45903. +
  45904. +$Lwordloop:
  45905. + GETD D0Ar6, [D0Ar2++]
  45906. + MOV D1Re0, D0Ar6
  45907. + MOV D0Re0, D0Ar6
  45908. + ADD D1Re0, D1Re0, D1Ar3
  45909. + XOR D0Re0, D0Re0, #-1
  45910. + AND D1Re0, D1Re0, D0Re0
  45911. + ANDS D1Re0, D1Re0, D0FrT
  45912. + MOV D1Ar5, D0Ar6
  45913. + BNZ $Lnullfound
  45914. + SETD [A1.2++], D0Ar6
  45915. + B $Lwordloop
  45916. +
  45917. +$Lnullfound2:
  45918. + SETD [A1.2++], D1Ar5
  45919. + MOV D1Ar5, D0Ar6
  45920. +
  45921. +$Lnullfound:
  45922. + SETB [A1.2++], D1Ar5
  45923. + ANDS D0Ar6, D1Ar5, #0xff
  45924. + LSR D1Ar5, D1Ar5, #8
  45925. + BNZ $Lnullfound
  45926. + B $Lend
  45927. +
  45928. +$Lbyteloop:
  45929. + GETB D0Ar6, [D0Ar2++]
  45930. + SETB [A1.2++], D0Ar6
  45931. + CMP D0Ar6, #0
  45932. + BNZ $Lbyteloop
  45933. +
  45934. +$Lend:
  45935. + MOV D0Re0, D1Ar1
  45936. + MOV PC, D1RtP
  45937. +
  45938. + .size _strcpy,.-_strcpy
  45939. +
  45940. +libc_hidden_def(strcpy)
  45941. diff -Nur uClibc-0.9.33.2/libc/string/microblaze/memcpy.S uClibc-git/libc/string/microblaze/memcpy.S
  45942. --- uClibc-0.9.33.2/libc/string/microblaze/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  45943. +++ uClibc-git/libc/string/microblaze/memcpy.S 2014-06-02 17:40:34.206713047 +0200
  45944. @@ -34,6 +34,14 @@
  45945. .type memcpy, @function
  45946. .ent memcpy
  45947. +#ifdef __MICROBLAZEEL__
  45948. +# define BSLLI bsrli
  45949. +# define BSRLI bslli
  45950. +#else
  45951. +# define BSLLI bslli
  45952. +# define BSRLI bsrli
  45953. +#endif
  45954. +
  45955. memcpy:
  45956. fast_memcpy_ascending:
  45957. /* move d to return register as value of function */
  45958. @@ -85,48 +93,48 @@
  45959. beqi r9, a_block_u2 /* t1 was 2 => 2 byte offset */
  45960. a_block_u3:
  45961. - bslli r11, r11, 24 /* h = h << 24 */
  45962. + BSLLI r11, r11, 24 /* h = h << 24 */
  45963. a_bu3_loop:
  45964. lwi r12, r8, 4 /* v = *(as + 4) */
  45965. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  45966. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  45967. or r9, r11, r9 /* t1 = h | t1 */
  45968. swi r9, r5, 0 /* *(d + 0) = t1 */
  45969. - bslli r11, r12, 24 /* h = v << 24 */
  45970. + BSLLI r11, r12, 24 /* h = v << 24 */
  45971. lwi r12, r8, 8 /* v = *(as + 8) */
  45972. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  45973. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  45974. or r9, r11, r9 /* t1 = h | t1 */
  45975. swi r9, r5, 4 /* *(d + 4) = t1 */
  45976. - bslli r11, r12, 24 /* h = v << 24 */
  45977. + BSLLI r11, r12, 24 /* h = v << 24 */
  45978. lwi r12, r8, 12 /* v = *(as + 12) */
  45979. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  45980. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  45981. or r9, r11, r9 /* t1 = h | t1 */
  45982. swi r9, r5, 8 /* *(d + 8) = t1 */
  45983. - bslli r11, r12, 24 /* h = v << 24 */
  45984. + BSLLI r11, r12, 24 /* h = v << 24 */
  45985. lwi r12, r8, 16 /* v = *(as + 16) */
  45986. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  45987. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  45988. or r9, r11, r9 /* t1 = h | t1 */
  45989. swi r9, r5, 12 /* *(d + 12) = t1 */
  45990. - bslli r11, r12, 24 /* h = v << 24 */
  45991. + BSLLI r11, r12, 24 /* h = v << 24 */
  45992. lwi r12, r8, 20 /* v = *(as + 20) */
  45993. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  45994. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  45995. or r9, r11, r9 /* t1 = h | t1 */
  45996. swi r9, r5, 16 /* *(d + 16) = t1 */
  45997. - bslli r11, r12, 24 /* h = v << 24 */
  45998. + BSLLI r11, r12, 24 /* h = v << 24 */
  45999. lwi r12, r8, 24 /* v = *(as + 24) */
  46000. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  46001. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  46002. or r9, r11, r9 /* t1 = h | t1 */
  46003. swi r9, r5, 20 /* *(d + 20) = t1 */
  46004. - bslli r11, r12, 24 /* h = v << 24 */
  46005. + BSLLI r11, r12, 24 /* h = v << 24 */
  46006. lwi r12, r8, 28 /* v = *(as + 28) */
  46007. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  46008. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  46009. or r9, r11, r9 /* t1 = h | t1 */
  46010. swi r9, r5, 24 /* *(d + 24) = t1 */
  46011. - bslli r11, r12, 24 /* h = v << 24 */
  46012. + BSLLI r11, r12, 24 /* h = v << 24 */
  46013. lwi r12, r8, 32 /* v = *(as + 32) */
  46014. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  46015. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  46016. or r9, r11, r9 /* t1 = h | t1 */
  46017. swi r9, r5, 28 /* *(d + 28) = t1 */
  46018. - bslli r11, r12, 24 /* h = v << 24 */
  46019. + BSLLI r11, r12, 24 /* h = v << 24 */
  46020. addi r8, r8, 32 /* as = as + 32 */
  46021. addi r4, r4, -32 /* n = n - 32 */
  46022. bneid r4, a_bu3_loop /* while (n) loop */
  46023. @@ -134,48 +142,48 @@
  46024. bri a_block_done
  46025. a_block_u1:
  46026. - bslli r11, r11, 8 /* h = h << 8 */
  46027. + BSLLI r11, r11, 8 /* h = h << 8 */
  46028. a_bu1_loop:
  46029. lwi r12, r8, 4 /* v = *(as + 4) */
  46030. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46031. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46032. or r9, r11, r9 /* t1 = h | t1 */
  46033. swi r9, r5, 0 /* *(d + 0) = t1 */
  46034. - bslli r11, r12, 8 /* h = v << 8 */
  46035. + BSLLI r11, r12, 8 /* h = v << 8 */
  46036. lwi r12, r8, 8 /* v = *(as + 8) */
  46037. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46038. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46039. or r9, r11, r9 /* t1 = h | t1 */
  46040. swi r9, r5, 4 /* *(d + 4) = t1 */
  46041. - bslli r11, r12, 8 /* h = v << 8 */
  46042. + BSLLI r11, r12, 8 /* h = v << 8 */
  46043. lwi r12, r8, 12 /* v = *(as + 12) */
  46044. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46045. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46046. or r9, r11, r9 /* t1 = h | t1 */
  46047. swi r9, r5, 8 /* *(d + 8) = t1 */
  46048. - bslli r11, r12, 8 /* h = v << 8 */
  46049. + BSLLI r11, r12, 8 /* h = v << 8 */
  46050. lwi r12, r8, 16 /* v = *(as + 16) */
  46051. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46052. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46053. or r9, r11, r9 /* t1 = h | t1 */
  46054. swi r9, r5, 12 /* *(d + 12) = t1 */
  46055. - bslli r11, r12, 8 /* h = v << 8 */
  46056. + BSLLI r11, r12, 8 /* h = v << 8 */
  46057. lwi r12, r8, 20 /* v = *(as + 20) */
  46058. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46059. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46060. or r9, r11, r9 /* t1 = h | t1 */
  46061. swi r9, r5, 16 /* *(d + 16) = t1 */
  46062. - bslli r11, r12, 8 /* h = v << 8 */
  46063. + BSLLI r11, r12, 8 /* h = v << 8 */
  46064. lwi r12, r8, 24 /* v = *(as + 24) */
  46065. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46066. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46067. or r9, r11, r9 /* t1 = h | t1 */
  46068. swi r9, r5, 20 /* *(d + 20) = t1 */
  46069. - bslli r11, r12, 8 /* h = v << 8 */
  46070. + BSLLI r11, r12, 8 /* h = v << 8 */
  46071. lwi r12, r8, 28 /* v = *(as + 28) */
  46072. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46073. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46074. or r9, r11, r9 /* t1 = h | t1 */
  46075. swi r9, r5, 24 /* *(d + 24) = t1 */
  46076. - bslli r11, r12, 8 /* h = v << 8 */
  46077. + BSLLI r11, r12, 8 /* h = v << 8 */
  46078. lwi r12, r8, 32 /* v = *(as + 32) */
  46079. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46080. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46081. or r9, r11, r9 /* t1 = h | t1 */
  46082. swi r9, r5, 28 /* *(d + 28) = t1 */
  46083. - bslli r11, r12, 8 /* h = v << 8 */
  46084. + BSLLI r11, r12, 8 /* h = v << 8 */
  46085. addi r8, r8, 32 /* as = as + 32 */
  46086. addi r4, r4, -32 /* n = n - 32 */
  46087. bneid r4, a_bu1_loop /* while (n) loop */
  46088. @@ -183,48 +191,48 @@
  46089. bri a_block_done
  46090. a_block_u2:
  46091. - bslli r11, r11, 16 /* h = h << 16 */
  46092. + BSLLI r11, r11, 16 /* h = h << 16 */
  46093. a_bu2_loop:
  46094. lwi r12, r8, 4 /* v = *(as + 4) */
  46095. - bsrli r9, r12, 16 /* t1 = v >> 16 */
  46096. + BSRLI r9, r12, 16 /* t1 = v >> 16 */
  46097. or r9, r11, r9 /* t1 = h | t1 */
  46098. swi r9, r5, 0 /* *(d + 0) = t1 */
  46099. - bslli r11, r12, 16 /* h = v << 16 */
  46100. + BSLLI r11, r12, 16 /* h = v << 16 */
  46101. lwi r12, r8, 8 /* v = *(as + 8) */
  46102. - bsrli r9, r12, 16 /* t1 = v >> 16 */
  46103. + BSRLI r9, r12, 16 /* t1 = v >> 16 */
  46104. or r9, r11, r9 /* t1 = h | t1 */
  46105. swi r9, r5, 4 /* *(d + 4) = t1 */
  46106. - bslli r11, r12, 16 /* h = v << 16 */
  46107. + BSLLI r11, r12, 16 /* h = v << 16 */
  46108. lwi r12, r8, 12 /* v = *(as + 12) */
  46109. - bsrli r9, r12, 16 /* t1 = v >> 16 */
  46110. + BSRLI r9, r12, 16 /* t1 = v >> 16 */
  46111. or r9, r11, r9 /* t1 = h | t1 */
  46112. swi r9, r5, 8 /* *(d + 8) = t1 */
  46113. - bslli r11, r12, 16 /* h = v << 16 */
  46114. + BSLLI r11, r12, 16 /* h = v << 16 */
  46115. lwi r12, r8, 16 /* v = *(as + 16) */
  46116. - bsrli r9, r12, 16 /* t1 = v >> 16 */
  46117. + BSRLI r9, r12, 16 /* t1 = v >> 16 */
  46118. or r9, r11, r9 /* t1 = h | t1 */
  46119. swi r9, r5, 12 /* *(d + 12) = t1 */
  46120. - bslli r11, r12, 16 /* h = v << 16 */
  46121. + BSLLI r11, r12, 16 /* h = v << 16 */
  46122. lwi r12, r8, 20 /* v = *(as + 20) */
  46123. - bsrli r9, r12, 16 /* t1 = v >> 16 */
  46124. + BSRLI r9, r12, 16 /* t1 = v >> 16 */
  46125. or r9, r11, r9 /* t1 = h | t1 */
  46126. swi r9, r5, 16 /* *(d + 16) = t1 */
  46127. - bslli r11, r12, 16 /* h = v << 16 */
  46128. + BSLLI r11, r12, 16 /* h = v << 16 */
  46129. lwi r12, r8, 24 /* v = *(as + 24) */
  46130. - bsrli r9, r12, 16 /* t1 = v >> 16 */
  46131. + BSRLI r9, r12, 16 /* t1 = v >> 16 */
  46132. or r9, r11, r9 /* t1 = h | t1 */
  46133. swi r9, r5, 20 /* *(d + 20) = t1 */
  46134. - bslli r11, r12, 16 /* h = v << 16 */
  46135. + BSLLI r11, r12, 16 /* h = v << 16 */
  46136. lwi r12, r8, 28 /* v = *(as + 28) */
  46137. - bsrli r9, r12, 16 /* t1 = v >> 16 */
  46138. + BSRLI r9, r12, 16 /* t1 = v >> 16 */
  46139. or r9, r11, r9 /* t1 = h | t1 */
  46140. swi r9, r5, 24 /* *(d + 24) = t1 */
  46141. - bslli r11, r12, 16 /* h = v << 16 */
  46142. + BSLLI r11, r12, 16 /* h = v << 16 */
  46143. lwi r12, r8, 32 /* v = *(as + 32) */
  46144. - bsrli r9, r12, 16 /* t1 = v >> 16 */
  46145. + BSRLI r9, r12, 16 /* t1 = v >> 16 */
  46146. or r9, r11, r9 /* t1 = h | t1 */
  46147. swi r9, r5, 28 /* *(d + 28) = t1 */
  46148. - bslli r11, r12, 16 /* h = v << 16 */
  46149. + BSLLI r11, r12, 16 /* h = v << 16 */
  46150. addi r8, r8, 32 /* as = as + 32 */
  46151. addi r4, r4, -32 /* n = n - 32 */
  46152. bneid r4, a_bu2_loop /* while (n) loop */
  46153. @@ -263,13 +271,13 @@
  46154. beqi r9, a_word_u2 /* t1 was 2 => 2 byte offset */
  46155. a_word_u3:
  46156. - bslli r11, r11, 24 /* h = h << 24 */
  46157. + BSLLI r11, r11, 24 /* h = h << 24 */
  46158. a_wu3_loop:
  46159. lw r12, r8, r10 /* v = *(as + offset) */
  46160. - bsrli r9, r12, 8 /* t1 = v >> 8 */
  46161. + BSRLI r9, r12, 8 /* t1 = v >> 8 */
  46162. or r9, r11, r9 /* t1 = h | t1 */
  46163. sw r9, r5, r10 /* *(d + offset) = t1 */
  46164. - bslli r11, r12, 24 /* h = v << 24 */
  46165. + BSLLI r11, r12, 24 /* h = v << 24 */
  46166. addi r4, r4,-4 /* n = n - 4 */
  46167. bneid r4, a_wu3_loop /* while (n) loop */
  46168. addi r10, r10, 4 /* offset = ofset + 4 (IN DELAY SLOT) */
  46169. @@ -277,13 +285,13 @@
  46170. bri a_word_done
  46171. a_word_u1:
  46172. - bslli r11, r11, 8 /* h = h << 8 */
  46173. + BSLLI r11, r11, 8 /* h = h << 8 */
  46174. a_wu1_loop:
  46175. lw r12, r8, r10 /* v = *(as + offset) */
  46176. - bsrli r9, r12, 24 /* t1 = v >> 24 */
  46177. + BSRLI r9, r12, 24 /* t1 = v >> 24 */
  46178. or r9, r11, r9 /* t1 = h | t1 */
  46179. sw r9, r5, r10 /* *(d + offset) = t1 */
  46180. - bslli r11, r12, 8 /* h = v << 8 */
  46181. + BSLLI r11, r12, 8 /* h = v << 8 */
  46182. addi r4, r4,-4 /* n = n - 4 */
  46183. bneid r4, a_wu1_loop /* while (n) loop */
  46184. addi r10, r10, 4 /* offset = ofset + 4 (IN DELAY SLOT) */
  46185. @@ -291,13 +299,13 @@
  46186. bri a_word_done
  46187. a_word_u2:
  46188. - bslli r11, r11, 16 /* h = h << 16 */
  46189. + BSLLI r11, r11, 16 /* h = h << 16 */
  46190. a_wu2_loop:
  46191. lw r12, r8, r10 /* v = *(as + offset) */
  46192. - bsrli r9, r12, 16 /* t1 = v >> 16 */
  46193. + BSRLI r9, r12, 16 /* t1 = v >> 16 */
  46194. or r9, r11, r9 /* t1 = h | t1 */
  46195. sw r9, r5, r10 /* *(d + offset) = t1 */
  46196. - bslli r11, r12, 16 /* h = v << 16 */
  46197. + BSLLI r11, r12, 16 /* h = v << 16 */
  46198. addi r4, r4,-4 /* n = n - 4 */
  46199. bneid r4, a_wu2_loop /* while (n) loop */
  46200. addi r10, r10, 4 /* offset = ofset + 4 (IN DELAY SLOT) */
  46201. diff -Nur uClibc-0.9.33.2/libc/string/microblaze/memmove.S uClibc-git/libc/string/microblaze/memmove.S
  46202. --- uClibc-0.9.33.2/libc/string/microblaze/memmove.S 2012-05-15 09:20:09.000000000 +0200
  46203. +++ uClibc-git/libc/string/microblaze/memmove.S 2014-06-02 17:40:34.206713047 +0200
  46204. @@ -33,6 +33,14 @@
  46205. .type memmove, @function
  46206. .ent memmove
  46207. +#ifdef __MICROBLAZEEL__
  46208. +# define BSLLI bsrli
  46209. +# define BSRLI bslli
  46210. +#else
  46211. +# define BSLLI bslli
  46212. +# define BSRLI bsrli
  46213. +#endif
  46214. +
  46215. memmove:
  46216. cmpu r4, r5, r6 /* n = s - d */
  46217. bgei r4, HIDDEN_JUMPTARGET(memcpy)
  46218. @@ -112,150 +120,150 @@
  46219. beqi r9,d_block_u2 /* t1 was 2 => 2 byte offset */
  46220. d_block_u3:
  46221. - bsrli r11, r11, 8 /* h = h >> 8 */
  46222. + BSRLI r11, r11, 8 /* h = h >> 8 */
  46223. d_bu3_loop:
  46224. addi r8, r8, -32 /* as = as - 32 */
  46225. addi r5, r5, -32 /* d = d - 32 */
  46226. lwi r12, r8, 28 /* v = *(as + 28) */
  46227. - bslli r9, r12, 24 /* t1 = v << 24 */
  46228. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46229. or r9, r11, r9 /* t1 = h | t1 */
  46230. swi r9, r5, 28 /* *(d + 28) = t1 */
  46231. - bsrli r11, r12, 8 /* h = v >> 8 */
  46232. + BSRLI r11, r12, 8 /* h = v >> 8 */
  46233. lwi r12, r8, 24 /* v = *(as + 24) */
  46234. - bslli r9, r12, 24 /* t1 = v << 24 */
  46235. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46236. or r9, r11, r9 /* t1 = h | t1 */
  46237. swi r9, r5, 24 /* *(d + 24) = t1 */
  46238. - bsrli r11, r12, 8 /* h = v >> 8 */
  46239. + BSRLI r11, r12, 8 /* h = v >> 8 */
  46240. lwi r12, r8, 20 /* v = *(as + 20) */
  46241. - bslli r9, r12, 24 /* t1 = v << 24 */
  46242. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46243. or r9, r11, r9 /* t1 = h | t1 */
  46244. swi r9, r5, 20 /* *(d + 20) = t1 */
  46245. - bsrli r11, r12, 8 /* h = v >> 8 */
  46246. + BSRLI r11, r12, 8 /* h = v >> 8 */
  46247. lwi r12, r8, 16 /* v = *(as + 16) */
  46248. - bslli r9, r12, 24 /* t1 = v << 24 */
  46249. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46250. or r9, r11, r9 /* t1 = h | t1 */
  46251. swi r9, r5, 16 /* *(d + 16) = t1 */
  46252. - bsrli r11, r12, 8 /* h = v >> 8 */
  46253. + BSRLI r11, r12, 8 /* h = v >> 8 */
  46254. lwi r12, r8, 12 /* v = *(as + 12) */
  46255. - bslli r9, r12, 24 /* t1 = v << 24 */
  46256. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46257. or r9, r11, r9 /* t1 = h | t1 */
  46258. swi r9, r5, 12 /* *(d + 112) = t1 */
  46259. - bsrli r11, r12, 8 /* h = v >> 8 */
  46260. + BSRLI r11, r12, 8 /* h = v >> 8 */
  46261. lwi r12, r8, 8 /* v = *(as + 8) */
  46262. - bslli r9, r12, 24 /* t1 = v << 24 */
  46263. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46264. or r9, r11, r9 /* t1 = h | t1 */
  46265. swi r9, r5, 8 /* *(d + 8) = t1 */
  46266. - bsrli r11, r12, 8 /* h = v >> 8 */
  46267. + BSRLI r11, r12, 8 /* h = v >> 8 */
  46268. lwi r12, r8, 4 /* v = *(as + 4) */
  46269. - bslli r9, r12, 24 /* t1 = v << 24 */
  46270. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46271. or r9, r11, r9 /* t1 = h | t1 */
  46272. swi r9, r5, 4 /* *(d + 4) = t1 */
  46273. - bsrli r11, r12, 8 /* h = v >> 8 */
  46274. + BSRLI r11, r12, 8 /* h = v >> 8 */
  46275. lwi r12, r8, 0 /* v = *(as + 0) */
  46276. - bslli r9, r12, 24 /* t1 = v << 24 */
  46277. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46278. or r9, r11, r9 /* t1 = h | t1 */
  46279. swi r9, r5, 0 /* *(d + 0) = t1 */
  46280. addi r4, r4, -32 /* n = n - 32 */
  46281. bneid r4, d_bu3_loop /* while (n) loop */
  46282. - bsrli r11, r12, 8 /* h = v >> 8 (IN DELAY SLOT) */
  46283. + BSRLI r11, r12, 8 /* h = v >> 8 (IN DELAY SLOT) */
  46284. bri d_block_done
  46285. d_block_u1:
  46286. - bsrli r11, r11, 24 /* h = h >> 24 */
  46287. + BSRLI r11, r11, 24 /* h = h >> 24 */
  46288. d_bu1_loop:
  46289. addi r8, r8, -32 /* as = as - 32 */
  46290. addi r5, r5, -32 /* d = d - 32 */
  46291. lwi r12, r8, 28 /* v = *(as + 28) */
  46292. - bslli r9, r12, 8 /* t1 = v << 8 */
  46293. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46294. or r9, r11, r9 /* t1 = h | t1 */
  46295. swi r9, r5, 28 /* *(d + 28) = t1 */
  46296. - bsrli r11, r12, 24 /* h = v >> 24 */
  46297. + BSRLI r11, r12, 24 /* h = v >> 24 */
  46298. lwi r12, r8, 24 /* v = *(as + 24) */
  46299. - bslli r9, r12, 8 /* t1 = v << 8 */
  46300. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46301. or r9, r11, r9 /* t1 = h | t1 */
  46302. swi r9, r5, 24 /* *(d + 24) = t1 */
  46303. - bsrli r11, r12, 24 /* h = v >> 24 */
  46304. + BSRLI r11, r12, 24 /* h = v >> 24 */
  46305. lwi r12, r8, 20 /* v = *(as + 20) */
  46306. - bslli r9, r12, 8 /* t1 = v << 8 */
  46307. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46308. or r9, r11, r9 /* t1 = h | t1 */
  46309. swi r9, r5, 20 /* *(d + 20) = t1 */
  46310. - bsrli r11, r12, 24 /* h = v >> 24 */
  46311. + BSRLI r11, r12, 24 /* h = v >> 24 */
  46312. lwi r12, r8, 16 /* v = *(as + 16) */
  46313. - bslli r9, r12, 8 /* t1 = v << 8 */
  46314. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46315. or r9, r11, r9 /* t1 = h | t1 */
  46316. swi r9, r5, 16 /* *(d + 16) = t1 */
  46317. - bsrli r11, r12, 24 /* h = v >> 24 */
  46318. + BSRLI r11, r12, 24 /* h = v >> 24 */
  46319. lwi r12, r8, 12 /* v = *(as + 12) */
  46320. - bslli r9, r12, 8 /* t1 = v << 8 */
  46321. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46322. or r9, r11, r9 /* t1 = h | t1 */
  46323. swi r9, r5, 12 /* *(d + 112) = t1 */
  46324. - bsrli r11, r12, 24 /* h = v >> 24 */
  46325. + BSRLI r11, r12, 24 /* h = v >> 24 */
  46326. lwi r12, r8, 8 /* v = *(as + 8) */
  46327. - bslli r9, r12, 8 /* t1 = v << 8 */
  46328. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46329. or r9, r11, r9 /* t1 = h | t1 */
  46330. swi r9, r5, 8 /* *(d + 8) = t1 */
  46331. - bsrli r11, r12, 24 /* h = v >> 24 */
  46332. + BSRLI r11, r12, 24 /* h = v >> 24 */
  46333. lwi r12, r8, 4 /* v = *(as + 4) */
  46334. - bslli r9, r12, 8 /* t1 = v << 8 */
  46335. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46336. or r9, r11, r9 /* t1 = h | t1 */
  46337. swi r9, r5, 4 /* *(d + 4) = t1 */
  46338. - bsrli r11, r12, 24 /* h = v >> 24 */
  46339. + BSRLI r11, r12, 24 /* h = v >> 24 */
  46340. lwi r12, r8, 0 /* v = *(as + 0) */
  46341. - bslli r9, r12, 8 /* t1 = v << 8 */
  46342. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46343. or r9, r11, r9 /* t1 = h | t1 */
  46344. swi r9, r5, 0 /* *(d + 0) = t1 */
  46345. addi r4, r4, -32 /* n = n - 32 */
  46346. bneid r4, d_bu1_loop /* while (n) loop */
  46347. - bsrli r11, r12, 24 /* h = v >> 24 (IN DELAY SLOT) */
  46348. + BSRLI r11, r12, 24 /* h = v >> 24 (IN DELAY SLOT) */
  46349. bri d_block_done
  46350. d_block_u2:
  46351. - bsrli r11, r11, 16 /* h = h >> 16 */
  46352. + BSRLI r11, r11, 16 /* h = h >> 16 */
  46353. d_bu2_loop:
  46354. addi r8, r8, -32 /* as = as - 32 */
  46355. addi r5, r5, -32 /* d = d - 32 */
  46356. lwi r12, r8, 28 /* v = *(as + 28) */
  46357. - bslli r9, r12, 16 /* t1 = v << 16 */
  46358. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46359. or r9, r11, r9 /* t1 = h | t1 */
  46360. swi r9, r5, 28 /* *(d + 28) = t1 */
  46361. - bsrli r11, r12, 16 /* h = v >> 16 */
  46362. + BSRLI r11, r12, 16 /* h = v >> 16 */
  46363. lwi r12, r8, 24 /* v = *(as + 24) */
  46364. - bslli r9, r12, 16 /* t1 = v << 16 */
  46365. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46366. or r9, r11, r9 /* t1 = h | t1 */
  46367. swi r9, r5, 24 /* *(d + 24) = t1 */
  46368. - bsrli r11, r12, 16 /* h = v >> 16 */
  46369. + BSRLI r11, r12, 16 /* h = v >> 16 */
  46370. lwi r12, r8, 20 /* v = *(as + 20) */
  46371. - bslli r9, r12, 16 /* t1 = v << 16 */
  46372. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46373. or r9, r11, r9 /* t1 = h | t1 */
  46374. swi r9, r5, 20 /* *(d + 20) = t1 */
  46375. - bsrli r11, r12, 16 /* h = v >> 16 */
  46376. + BSRLI r11, r12, 16 /* h = v >> 16 */
  46377. lwi r12, r8, 16 /* v = *(as + 16) */
  46378. - bslli r9, r12, 16 /* t1 = v << 16 */
  46379. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46380. or r9, r11, r9 /* t1 = h | t1 */
  46381. swi r9, r5, 16 /* *(d + 16) = t1 */
  46382. - bsrli r11, r12, 16 /* h = v >> 16 */
  46383. + BSRLI r11, r12, 16 /* h = v >> 16 */
  46384. lwi r12, r8, 12 /* v = *(as + 12) */
  46385. - bslli r9, r12, 16 /* t1 = v << 16 */
  46386. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46387. or r9, r11, r9 /* t1 = h | t1 */
  46388. swi r9, r5, 12 /* *(d + 112) = t1 */
  46389. - bsrli r11, r12, 16 /* h = v >> 16 */
  46390. + BSRLI r11, r12, 16 /* h = v >> 16 */
  46391. lwi r12, r8, 8 /* v = *(as + 8) */
  46392. - bslli r9, r12, 16 /* t1 = v << 16 */
  46393. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46394. or r9, r11, r9 /* t1 = h | t1 */
  46395. swi r9, r5, 8 /* *(d + 8) = t1 */
  46396. - bsrli r11, r12, 16 /* h = v >> 16 */
  46397. + BSRLI r11, r12, 16 /* h = v >> 16 */
  46398. lwi r12, r8, 4 /* v = *(as + 4) */
  46399. - bslli r9, r12, 16 /* t1 = v << 16 */
  46400. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46401. or r9, r11, r9 /* t1 = h | t1 */
  46402. swi r9, r5, 4 /* *(d + 4) = t1 */
  46403. - bsrli r11, r12, 16 /* h = v >> 16 */
  46404. + BSRLI r11, r12, 16 /* h = v >> 16 */
  46405. lwi r12, r8, 0 /* v = *(as + 0) */
  46406. - bslli r9, r12, 16 /* t1 = v << 16 */
  46407. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46408. or r9, r11, r9 /* t1 = h | t1 */
  46409. swi r9, r5, 0 /* *(d + 0) = t1 */
  46410. addi r4, r4, -32 /* n = n - 32 */
  46411. bneid r4, d_bu2_loop /* while (n) loop */
  46412. - bsrli r11, r12, 16 /* h = v >> 16 (IN DELAY SLOT) */
  46413. + BSRLI r11, r12, 16 /* h = v >> 16 (IN DELAY SLOT) */
  46414. d_block_done:
  46415. addi r4, r0, 4 /* n = 4 */
  46416. @@ -290,41 +298,41 @@
  46417. beqi r9,d_word_u2 /* t1 was 2 => 2 byte offset */
  46418. d_word_u3:
  46419. - bsrli r11, r11, 8 /* h = h >> 8 */
  46420. + BSRLI r11, r11, 8 /* h = h >> 8 */
  46421. d_wu3_loop:
  46422. addi r4, r4,-4 /* n = n - 4 */
  46423. lw r12, r8, r4 /* v = *(as + n) */
  46424. - bslli r9, r12, 24 /* t1 = v << 24 */
  46425. + BSLLI r9, r12, 24 /* t1 = v << 24 */
  46426. or r9, r11, r9 /* t1 = h | t1 */
  46427. sw r9, r5, r4 /* *(d + n) = t1 */
  46428. bneid r4, d_wu3_loop /* while (n) loop */
  46429. - bsrli r11, r12, 8 /* h = v >> 8 (IN DELAY SLOT) */
  46430. + BSRLI r11, r12, 8 /* h = v >> 8 (IN DELAY SLOT) */
  46431. bri d_word_done
  46432. d_word_u1:
  46433. - bsrli r11, r11, 24 /* h = h >> 24 */
  46434. + BSRLI r11, r11, 24 /* h = h >> 24 */
  46435. d_wu1_loop:
  46436. addi r4, r4,-4 /* n = n - 4 */
  46437. lw r12, r8, r4 /* v = *(as + n) */
  46438. - bslli r9, r12, 8 /* t1 = v << 8 */
  46439. + BSLLI r9, r12, 8 /* t1 = v << 8 */
  46440. or r9, r11, r9 /* t1 = h | t1 */
  46441. sw r9, r5, r4 /* *(d + n) = t1 */
  46442. bneid r4, d_wu1_loop /* while (n) loop */
  46443. - bsrli r11, r12, 24 /* h = v >> 24 (IN DELAY SLOT) */
  46444. + BSRLI r11, r12, 24 /* h = v >> 24 (IN DELAY SLOT) */
  46445. bri d_word_done
  46446. d_word_u2:
  46447. - bsrli r11, r11, 16 /* h = h >> 16 */
  46448. + BSRLI r11, r11, 16 /* h = h >> 16 */
  46449. d_wu2_loop:
  46450. addi r4, r4,-4 /* n = n - 4 */
  46451. lw r12, r8, r4 /* v = *(as + n) */
  46452. - bslli r9, r12, 16 /* t1 = v << 16 */
  46453. + BSLLI r9, r12, 16 /* t1 = v << 16 */
  46454. or r9, r11, r9 /* t1 = h | t1 */
  46455. sw r9, r5, r4 /* *(d + n) = t1 */
  46456. bneid r4, d_wu2_loop /* while (n) loop */
  46457. - bsrli r11, r12, 16 /* h = v >> 16 (IN DELAY SLOT) */
  46458. + BSRLI r11, r12, 16 /* h = v >> 16 (IN DELAY SLOT) */
  46459. d_word_done:
  46460. diff -Nur uClibc-0.9.33.2/libc/string/mips/memcpy.S uClibc-git/libc/string/mips/memcpy.S
  46461. --- uClibc-0.9.33.2/libc/string/mips/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  46462. +++ uClibc-git/libc/string/mips/memcpy.S 2014-06-02 17:40:34.206713047 +0200
  46463. @@ -13,14 +13,12 @@
  46464. Lesser General Public License for more details.
  46465. You should have received a copy of the GNU Lesser General Public
  46466. - License along with the GNU C Library; if not, write to the Free
  46467. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46468. - 02111-1307 USA. */
  46469. + License along with the GNU C Library; if not, see
  46470. + <http://www.gnu.org/licenses/>. */
  46471. #include <features.h>
  46472. -/*#include <sysdep.h>*/
  46473. +#include <sysdep.h>
  46474. #include <endian.h>
  46475. -#include "sysdep.h"
  46476. /* void *memcpy(void *s1, const void *s2, size_t n); */
  46477. diff -Nur uClibc-0.9.33.2/libc/string/mips/memset.S uClibc-git/libc/string/mips/memset.S
  46478. --- uClibc-0.9.33.2/libc/string/mips/memset.S 2012-05-15 09:20:09.000000000 +0200
  46479. +++ uClibc-git/libc/string/mips/memset.S 2014-06-02 17:40:34.206713047 +0200
  46480. @@ -13,14 +13,12 @@
  46481. Lesser General Public License for more details.
  46482. You should have received a copy of the GNU Lesser General Public
  46483. - License along with the GNU C Library; if not, write to the Free
  46484. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46485. - 02111-1307 USA. */
  46486. + License along with the GNU C Library; if not, see
  46487. + <http://www.gnu.org/licenses/>. */
  46488. #include <features.h>
  46489. -/*#include <sysdep.h>*/
  46490. +#include <sysdep.h>
  46491. #include <endian.h>
  46492. -#include "sysdep.h"
  46493. /* void *memset(void *s, int c, size_t n). */
  46494. diff -Nur uClibc-0.9.33.2/libc/string/mips/sysdep.h uClibc-git/libc/string/mips/sysdep.h
  46495. --- uClibc-0.9.33.2/libc/string/mips/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  46496. +++ uClibc-git/libc/string/mips/sysdep.h 1970-01-01 01:00:00.000000000 +0100
  46497. @@ -1,45 +0,0 @@
  46498. -/* Adapted from glibc's sysdeps/unix/mips/sysdep.h */
  46499. -
  46500. -/* Copyright (C) 1992, 1995, 1997, 1999, 2000, 2002, 2003
  46501. - Free Software Foundation, Inc.
  46502. - This file is part of the GNU C Library.
  46503. - Contributed by Brendan Kehoe (brendan@zen.org).
  46504. -
  46505. - The GNU C Library is free software; you can redistribute it and/or
  46506. - modify it under the terms of the GNU Lesser General Public
  46507. - License as published by the Free Software Foundation; either
  46508. - version 2.1 of the License, or (at your option) any later version.
  46509. -
  46510. - The GNU C Library is distributed in the hope that it will be useful,
  46511. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  46512. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  46513. - Lesser General Public License for more details.
  46514. -
  46515. - You should have received a copy of the GNU Lesser General Public
  46516. - License along with the GNU C Library; if not, write to the Free
  46517. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46518. - 02111-1307 USA. */
  46519. -
  46520. -#ifdef __ASSEMBLER__
  46521. -
  46522. -#include <sgidefs.h>
  46523. -#include <sys/regdef.h>
  46524. -
  46525. -#define ENTRY(name) \
  46526. - .globl name; \
  46527. - .align 2; \
  46528. - .ent name,0; \
  46529. - name/* use a comment rather than ## to workaround bug in gcc-3.4.x */:
  46530. -
  46531. -#undef END
  46532. -#define END(function) \
  46533. - .end function; \
  46534. - .size function,.-function
  46535. -
  46536. -#if _MIPS_SIM == _MIPS_SIM_ABI32 || _MIPS_SIM == _MIPS_SIM_ABIO64
  46537. -# define L(label) $L ## label
  46538. -#else
  46539. -# define L(label) .L ## label
  46540. -#endif
  46541. -
  46542. -#endif
  46543. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/memchr.S uClibc-git/libc/string/sparc/sparc32/memchr.S
  46544. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/memchr.S 2012-05-15 09:20:09.000000000 +0200
  46545. +++ uClibc-git/libc/string/sparc/sparc32/memchr.S 2014-06-02 17:40:34.230713180 +0200
  46546. @@ -24,9 +24,8 @@
  46547. Lesser General Public License for more details.
  46548. You should have received a copy of the GNU Lesser General Public
  46549. - License along with the GNU C Library; if not, write to the Free
  46550. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46551. - 02111-1307 USA. */
  46552. + License along with the GNU C Library; if not, see
  46553. + <http://www.gnu.org/licenses/>. */
  46554. .text
  46555. .align 4
  46556. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/memcpy.S uClibc-git/libc/string/sparc/sparc32/memcpy.S
  46557. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  46558. +++ uClibc-git/libc/string/sparc/sparc32/memcpy.S 2014-06-02 17:40:34.230713180 +0200
  46559. @@ -17,9 +17,8 @@
  46560. Lesser General Public License for more details.
  46561. You should have received a copy of the GNU Lesser General Public
  46562. - License along with the GNU C Library; if not, write to the Free
  46563. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46564. - 02111-1307 USA. */
  46565. + License along with the GNU C Library; if not, see
  46566. + <http://www.gnu.org/licenses/>. */
  46567. #include <features.h>
  46568. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/memset.S uClibc-git/libc/string/sparc/sparc32/memset.S
  46569. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/memset.S 2012-05-15 09:20:09.000000000 +0200
  46570. +++ uClibc-git/libc/string/sparc/sparc32/memset.S 2014-06-02 17:40:34.230713180 +0200
  46571. @@ -16,9 +16,8 @@
  46572. Lesser General Public License for more details.
  46573. You should have received a copy of the GNU Lesser General Public
  46574. - License along with the GNU C Library; if not, write to the Free
  46575. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46576. - 02111-1307 USA. */
  46577. + License along with the GNU C Library; if not, see
  46578. + <http://www.gnu.org/licenses/>. */
  46579. #include <features.h>
  46580. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/stpcpy.S uClibc-git/libc/string/sparc/sparc32/stpcpy.S
  46581. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/stpcpy.S 2012-05-15 09:20:09.000000000 +0200
  46582. +++ uClibc-git/libc/string/sparc/sparc32/stpcpy.S 2014-06-02 17:40:34.246713269 +0200
  46583. @@ -15,9 +15,8 @@
  46584. Lesser General Public License for more details.
  46585. You should have received a copy of the GNU Lesser General Public
  46586. - License along with the GNU C Library; if not, write to the Free
  46587. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46588. - 02111-1307 USA. */
  46589. + License along with the GNU C Library; if not, see
  46590. + <http://www.gnu.org/licenses/>. */
  46591. /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
  46592. to find out if any byte in xword could be zero. This is fast, but
  46593. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/strcat.S uClibc-git/libc/string/sparc/sparc32/strcat.S
  46594. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/strcat.S 2012-05-15 09:20:09.000000000 +0200
  46595. +++ uClibc-git/libc/string/sparc/sparc32/strcat.S 2014-06-02 17:40:34.246713269 +0200
  46596. @@ -15,9 +15,8 @@
  46597. Lesser General Public License for more details.
  46598. You should have received a copy of the GNU Lesser General Public
  46599. - License along with the GNU C Library; if not, write to the Free
  46600. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46601. - 02111-1307 USA. */
  46602. + License along with the GNU C Library; if not, see
  46603. + <http://www.gnu.org/licenses/>. */
  46604. /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
  46605. to find out if any byte in xword could be zero. This is fast, but
  46606. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/strchr.S uClibc-git/libc/string/sparc/sparc32/strchr.S
  46607. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/strchr.S 2012-05-15 09:20:09.000000000 +0200
  46608. +++ uClibc-git/libc/string/sparc/sparc32/strchr.S 2014-06-02 17:40:34.246713269 +0200
  46609. @@ -16,9 +16,8 @@
  46610. Lesser General Public License for more details.
  46611. You should have received a copy of the GNU Lesser General Public
  46612. - License along with the GNU C Library; if not, write to the Free
  46613. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46614. - 02111-1307 USA. */
  46615. + License along with the GNU C Library; if not, see
  46616. + <http://www.gnu.org/licenses/>. */
  46617. /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
  46618. to find out if any byte in xword could be zero. This is fast, but
  46619. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/strcmp.S uClibc-git/libc/string/sparc/sparc32/strcmp.S
  46620. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/strcmp.S 2012-05-15 09:20:09.000000000 +0200
  46621. +++ uClibc-git/libc/string/sparc/sparc32/strcmp.S 2014-06-02 17:40:34.246713269 +0200
  46622. @@ -15,9 +15,8 @@
  46623. Lesser General Public License for more details.
  46624. You should have received a copy of the GNU Lesser General Public
  46625. - License along with the GNU C Library; if not, write to the Free
  46626. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46627. - 02111-1307 USA. */
  46628. + License along with the GNU C Library; if not, see
  46629. + <http://www.gnu.org/licenses/>. */
  46630. /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
  46631. to find out if any byte in xword could be zero. This is fast, but
  46632. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/strcpy.S uClibc-git/libc/string/sparc/sparc32/strcpy.S
  46633. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/strcpy.S 2012-05-15 09:20:09.000000000 +0200
  46634. +++ uClibc-git/libc/string/sparc/sparc32/strcpy.S 2014-06-02 17:40:34.250713291 +0200
  46635. @@ -15,9 +15,8 @@
  46636. Lesser General Public License for more details.
  46637. You should have received a copy of the GNU Lesser General Public
  46638. - License along with the GNU C Library; if not, write to the Free
  46639. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46640. - 02111-1307 USA. */
  46641. + License along with the GNU C Library; if not, see
  46642. + <http://www.gnu.org/licenses/>. */
  46643. /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
  46644. to find out if any byte in xword could be zero. This is fast, but
  46645. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc32/strlen.S uClibc-git/libc/string/sparc/sparc32/strlen.S
  46646. --- uClibc-0.9.33.2/libc/string/sparc/sparc32/strlen.S 2012-05-15 09:20:09.000000000 +0200
  46647. +++ uClibc-git/libc/string/sparc/sparc32/strlen.S 2014-06-02 17:40:34.250713291 +0200
  46648. @@ -15,9 +15,8 @@
  46649. Lesser General Public License for more details.
  46650. You should have received a copy of the GNU Lesser General Public
  46651. - License along with the GNU C Library; if not, write to the Free
  46652. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46653. - 02111-1307 USA. */
  46654. + License along with the GNU C Library; if not, see
  46655. + <http://www.gnu.org/licenses/>. */
  46656. /* Normally, this uses ((xword - 0x01010101) & 0x80808080) test
  46657. to find out if any byte in xword could be zero. This is fast, but
  46658. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/memchr.S uClibc-git/libc/string/sparc/sparc64/memchr.S
  46659. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/memchr.S 2012-05-15 09:20:09.000000000 +0200
  46660. +++ uClibc-git/libc/string/sparc/sparc64/memchr.S 2014-06-02 17:40:34.250713291 +0200
  46661. @@ -24,9 +24,8 @@
  46662. Lesser General Public License for more details.
  46663. You should have received a copy of the GNU Lesser General Public
  46664. - License along with the GNU C Library; if not, write to the Free
  46665. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46666. - 02111-1307 USA. */
  46667. + License along with the GNU C Library; if not, see
  46668. + <http://www.gnu.org/licenses/>. */
  46669. #include <asm/asi.h>
  46670. #ifndef XCC
  46671. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/memcpy.S uClibc-git/libc/string/sparc/sparc64/memcpy.S
  46672. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  46673. +++ uClibc-git/libc/string/sparc/sparc64/memcpy.S 2014-06-02 17:40:34.250713291 +0200
  46674. @@ -16,9 +16,8 @@
  46675. Lesser General Public License for more details.
  46676. You should have received a copy of the GNU Lesser General Public
  46677. - License along with the GNU C Library; if not, write to the Free
  46678. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46679. - 02111-1307 USA. */
  46680. + License along with the GNU C Library; if not, see
  46681. + <http://www.gnu.org/licenses/>. */
  46682. #include <features.h>
  46683. #include <asm/asi.h>
  46684. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/memset.S uClibc-git/libc/string/sparc/sparc64/memset.S
  46685. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/memset.S 2012-05-15 09:20:09.000000000 +0200
  46686. +++ uClibc-git/libc/string/sparc/sparc64/memset.S 2014-06-02 17:40:34.250713291 +0200
  46687. @@ -16,9 +16,8 @@
  46688. Lesser General Public License for more details.
  46689. You should have received a copy of the GNU Lesser General Public
  46690. - License along with the GNU C Library; if not, write to the Free
  46691. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46692. - 02111-1307 USA. */
  46693. + License along with the GNU C Library; if not, see
  46694. + <http://www.gnu.org/licenses/>. */
  46695. #include <features.h>
  46696. #include <asm/asi.h>
  46697. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/sparcv9b/memcpy.S uClibc-git/libc/string/sparc/sparc64/sparcv9b/memcpy.S
  46698. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/sparcv9b/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  46699. +++ uClibc-git/libc/string/sparc/sparc64/sparcv9b/memcpy.S 2014-06-02 17:40:34.250713291 +0200
  46700. @@ -15,9 +15,8 @@
  46701. Lesser General Public License for more details.
  46702. You should have received a copy of the GNU Lesser General Public
  46703. - License along with the GNU C Library; if not, write to the Free
  46704. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46705. - 02111-1307 USA. */
  46706. + License along with the GNU C Library; if not, see
  46707. + <http://www.gnu.org/licenses/>. */
  46708. #include <features.h>
  46709. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/stpcpy.S uClibc-git/libc/string/sparc/sparc64/stpcpy.S
  46710. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/stpcpy.S 2012-05-15 09:20:09.000000000 +0200
  46711. +++ uClibc-git/libc/string/sparc/sparc64/stpcpy.S 2014-06-02 17:40:34.250713291 +0200
  46712. @@ -16,9 +16,8 @@
  46713. Lesser General Public License for more details.
  46714. You should have received a copy of the GNU Lesser General Public
  46715. - License along with the GNU C Library; if not, write to the Free
  46716. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46717. - 02111-1307 USA. */
  46718. + License along with the GNU C Library; if not, see
  46719. + <http://www.gnu.org/licenses/>. */
  46720. #include <asm/asi.h>
  46721. #ifndef XCC
  46722. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/strcat.S uClibc-git/libc/string/sparc/sparc64/strcat.S
  46723. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/strcat.S 2012-05-15 09:20:09.000000000 +0200
  46724. +++ uClibc-git/libc/string/sparc/sparc64/strcat.S 2014-06-02 17:40:34.250713291 +0200
  46725. @@ -16,9 +16,8 @@
  46726. Lesser General Public License for more details.
  46727. You should have received a copy of the GNU Lesser General Public
  46728. - License along with the GNU C Library; if not, write to the Free
  46729. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46730. - 02111-1307 USA. */
  46731. + License along with the GNU C Library; if not, see
  46732. + <http://www.gnu.org/licenses/>. */
  46733. #include <asm/asi.h>
  46734. #ifndef XCC
  46735. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/strchr.S uClibc-git/libc/string/sparc/sparc64/strchr.S
  46736. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/strchr.S 2012-05-15 09:20:09.000000000 +0200
  46737. +++ uClibc-git/libc/string/sparc/sparc64/strchr.S 2014-06-02 17:40:34.250713291 +0200
  46738. @@ -16,9 +16,8 @@
  46739. Lesser General Public License for more details.
  46740. You should have received a copy of the GNU Lesser General Public
  46741. - License along with the GNU C Library; if not, write to the Free
  46742. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46743. - 02111-1307 USA. */
  46744. + License along with the GNU C Library; if not, see
  46745. + <http://www.gnu.org/licenses/>. */
  46746. #include <features.h>
  46747. #include <asm/asi.h>
  46748. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/strcmp.S uClibc-git/libc/string/sparc/sparc64/strcmp.S
  46749. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/strcmp.S 2012-05-15 09:20:09.000000000 +0200
  46750. +++ uClibc-git/libc/string/sparc/sparc64/strcmp.S 2014-06-02 17:40:34.250713291 +0200
  46751. @@ -16,9 +16,8 @@
  46752. Lesser General Public License for more details.
  46753. You should have received a copy of the GNU Lesser General Public
  46754. - License along with the GNU C Library; if not, write to the Free
  46755. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46756. - 02111-1307 USA. */
  46757. + License along with the GNU C Library; if not, see
  46758. + <http://www.gnu.org/licenses/>. */
  46759. #include <asm/asi.h>
  46760. #ifndef XCC
  46761. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/strcpy.S uClibc-git/libc/string/sparc/sparc64/strcpy.S
  46762. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/strcpy.S 2012-05-15 09:20:09.000000000 +0200
  46763. +++ uClibc-git/libc/string/sparc/sparc64/strcpy.S 2014-06-02 17:40:34.250713291 +0200
  46764. @@ -16,9 +16,8 @@
  46765. Lesser General Public License for more details.
  46766. You should have received a copy of the GNU Lesser General Public
  46767. - License along with the GNU C Library; if not, write to the Free
  46768. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46769. - 02111-1307 USA. */
  46770. + License along with the GNU C Library; if not, see
  46771. + <http://www.gnu.org/licenses/>. */
  46772. #include <asm/asi.h>
  46773. #ifndef XCC
  46774. diff -Nur uClibc-0.9.33.2/libc/string/sparc/sparc64/strlen.S uClibc-git/libc/string/sparc/sparc64/strlen.S
  46775. --- uClibc-0.9.33.2/libc/string/sparc/sparc64/strlen.S 2012-05-15 09:20:09.000000000 +0200
  46776. +++ uClibc-git/libc/string/sparc/sparc64/strlen.S 2014-06-02 17:40:34.250713291 +0200
  46777. @@ -15,9 +15,8 @@
  46778. Lesser General Public License for more details.
  46779. You should have received a copy of the GNU Lesser General Public
  46780. - License along with the GNU C Library; if not, write to the Free
  46781. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46782. - 02111-1307 USA. */
  46783. + License along with the GNU C Library; if not, see
  46784. + <http://www.gnu.org/licenses/>. */
  46785. #include <asm/asi.h>
  46786. diff -Nur uClibc-0.9.33.2/libc/string/strchrnul.c uClibc-git/libc/string/strchrnul.c
  46787. --- uClibc-0.9.33.2/libc/string/strchrnul.c 2012-05-15 09:20:09.000000000 +0200
  46788. +++ uClibc-git/libc/string/strchrnul.c 2014-06-02 17:40:34.250713291 +0200
  46789. @@ -22,6 +22,6 @@
  46790. return (Wchar *) s;
  46791. }
  46792. # ifndef WANT_WIDE
  46793. -libc_hidden_def(Wstrchrnul)
  46794. +libc_hidden_def(strchrnul)
  46795. # endif
  46796. #endif
  46797. diff -Nur uClibc-0.9.33.2/libc/string/strverscmp.c uClibc-git/libc/string/strverscmp.c
  46798. --- uClibc-0.9.33.2/libc/string/strverscmp.c 2012-05-15 09:20:09.000000000 +0200
  46799. +++ uClibc-git/libc/string/strverscmp.c 2014-06-02 17:40:34.250713291 +0200
  46800. @@ -19,9 +19,8 @@
  46801. Lesser General Public License for more details.
  46802. You should have received a copy of the GNU Lesser General Public
  46803. - License along with the GNU C Library; if not, write to the Free
  46804. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46805. - 02111-1307 USA. */
  46806. + License along with the GNU C Library; if not, see
  46807. + <http://www.gnu.org/licenses/>. */
  46808. #include <string.h>
  46809. #include <ctype.h>
  46810. diff -Nur uClibc-0.9.33.2/libc/string/x86_64/memcpy.S uClibc-git/libc/string/x86_64/memcpy.S
  46811. --- uClibc-0.9.33.2/libc/string/x86_64/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  46812. +++ uClibc-git/libc/string/x86_64/memcpy.S 2014-06-02 17:40:34.254713313 +0200
  46813. @@ -14,9 +14,8 @@
  46814. Lesser General Public License for more details.
  46815. You should have received a copy of the GNU Lesser General Public
  46816. - License along with the GNU C Library; if not, write to the Free
  46817. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46818. - 02111-1307 USA. */
  46819. + License along with the GNU C Library; if not, see
  46820. + <http://www.gnu.org/licenses/>. */
  46821. #include "_glibc_inc.h"
  46822. diff -Nur uClibc-0.9.33.2/libc/string/x86_64/memset.S uClibc-git/libc/string/x86_64/memset.S
  46823. --- uClibc-0.9.33.2/libc/string/x86_64/memset.S 2012-05-15 09:20:09.000000000 +0200
  46824. +++ uClibc-git/libc/string/x86_64/memset.S 2014-06-02 17:40:34.254713313 +0200
  46825. @@ -15,9 +15,8 @@
  46826. Lesser General Public License for more details.
  46827. You should have received a copy of the GNU Lesser General Public
  46828. - License along with the GNU C Library; if not, write to the Free
  46829. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46830. - 02111-1307 USA. */
  46831. + License along with the GNU C Library; if not, see
  46832. + <http://www.gnu.org/licenses/>. */
  46833. #include "_glibc_inc.h"
  46834. diff -Nur uClibc-0.9.33.2/libc/string/x86_64/strcat.S uClibc-git/libc/string/x86_64/strcat.S
  46835. --- uClibc-0.9.33.2/libc/string/x86_64/strcat.S 2012-05-15 09:20:09.000000000 +0200
  46836. +++ uClibc-git/libc/string/x86_64/strcat.S 2014-06-02 17:40:34.254713313 +0200
  46837. @@ -15,9 +15,8 @@
  46838. Lesser General Public License for more details.
  46839. You should have received a copy of the GNU Lesser General Public
  46840. - License along with the GNU C Library; if not, write to the Free
  46841. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46842. - 02111-1307 USA. */
  46843. + License along with the GNU C Library; if not, see
  46844. + <http://www.gnu.org/licenses/>. */
  46845. #include "_glibc_inc.h"
  46846. diff -Nur uClibc-0.9.33.2/libc/string/x86_64/strchr.S uClibc-git/libc/string/x86_64/strchr.S
  46847. --- uClibc-0.9.33.2/libc/string/x86_64/strchr.S 2012-05-15 09:20:09.000000000 +0200
  46848. +++ uClibc-git/libc/string/x86_64/strchr.S 2014-06-02 17:40:34.254713313 +0200
  46849. @@ -14,9 +14,8 @@
  46850. Lesser General Public License for more details.
  46851. You should have received a copy of the GNU Lesser General Public
  46852. - License along with the GNU C Library; if not, write to the Free
  46853. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46854. - 02111-1307 USA. */
  46855. + License along with the GNU C Library; if not, see
  46856. + <http://www.gnu.org/licenses/>. */
  46857. #include "_glibc_inc.h"
  46858. diff -Nur uClibc-0.9.33.2/libc/string/x86_64/strcmp.S uClibc-git/libc/string/x86_64/strcmp.S
  46859. --- uClibc-0.9.33.2/libc/string/x86_64/strcmp.S 2012-05-15 09:20:09.000000000 +0200
  46860. +++ uClibc-git/libc/string/x86_64/strcmp.S 2014-06-02 17:40:34.254713313 +0200
  46861. @@ -15,9 +15,8 @@
  46862. Lesser General Public License for more details.
  46863. You should have received a copy of the GNU Lesser General Public
  46864. - License along with the GNU C Library; if not, write to the Free
  46865. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46866. - 02111-1307 USA. */
  46867. + License along with the GNU C Library; if not, see
  46868. + <http://www.gnu.org/licenses/>. */
  46869. #include "_glibc_inc.h"
  46870. diff -Nur uClibc-0.9.33.2/libc/string/x86_64/strcpy.S uClibc-git/libc/string/x86_64/strcpy.S
  46871. --- uClibc-0.9.33.2/libc/string/x86_64/strcpy.S 2012-05-15 09:20:09.000000000 +0200
  46872. +++ uClibc-git/libc/string/x86_64/strcpy.S 2014-06-02 17:40:34.254713313 +0200
  46873. @@ -14,9 +14,8 @@
  46874. Lesser General Public License for more details.
  46875. You should have received a copy of the GNU Lesser General Public
  46876. - License along with the GNU C Library; if not, write to the Free
  46877. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46878. - 02111-1307 USA. */
  46879. + License along with the GNU C Library; if not, see
  46880. + <http://www.gnu.org/licenses/>. */
  46881. #include "_glibc_inc.h"
  46882. diff -Nur uClibc-0.9.33.2/libc/string/x86_64/strcspn.S uClibc-git/libc/string/x86_64/strcspn.S
  46883. --- uClibc-0.9.33.2/libc/string/x86_64/strcspn.S 2012-05-15 09:20:09.000000000 +0200
  46884. +++ uClibc-git/libc/string/x86_64/strcspn.S 2014-06-02 17:40:34.254713313 +0200
  46885. @@ -19,9 +19,8 @@
  46886. Lesser General Public License for more details.
  46887. You should have received a copy of the GNU Lesser General Public
  46888. - License along with the GNU C Library; if not, write to the Free
  46889. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46890. - 02111-1307 USA. */
  46891. + License along with the GNU C Library; if not, see
  46892. + <http://www.gnu.org/licenses/>. */
  46893. #include "_glibc_inc.h"
  46894. diff -Nur uClibc-0.9.33.2/libc/string/x86_64/strlen.S uClibc-git/libc/string/x86_64/strlen.S
  46895. --- uClibc-0.9.33.2/libc/string/x86_64/strlen.S 2012-05-15 09:20:09.000000000 +0200
  46896. +++ uClibc-git/libc/string/x86_64/strlen.S 2014-06-02 17:40:34.254713313 +0200
  46897. @@ -14,9 +14,8 @@
  46898. Lesser General Public License for more details.
  46899. You should have received a copy of the GNU Lesser General Public
  46900. - License along with the GNU C Library; if not, write to the Free
  46901. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46902. - 02111-1307 USA. */
  46903. + License along with the GNU C Library; if not, see
  46904. + <http://www.gnu.org/licenses/>. */
  46905. #include "_glibc_inc.h"
  46906. diff -Nur uClibc-0.9.33.2/libc/string/x86_64/strspn.S uClibc-git/libc/string/x86_64/strspn.S
  46907. --- uClibc-0.9.33.2/libc/string/x86_64/strspn.S 2012-05-15 09:20:09.000000000 +0200
  46908. +++ uClibc-git/libc/string/x86_64/strspn.S 2014-06-02 17:40:34.254713313 +0200
  46909. @@ -19,9 +19,8 @@
  46910. Lesser General Public License for more details.
  46911. You should have received a copy of the GNU Lesser General Public
  46912. - License along with the GNU C Library; if not, write to the Free
  46913. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  46914. - 02111-1307 USA. */
  46915. + License along with the GNU C Library; if not, see
  46916. + <http://www.gnu.org/licenses/>. */
  46917. #include "_glibc_inc.h"
  46918. diff -Nur uClibc-0.9.33.2/libc/string/__xpg_basename.c uClibc-git/libc/string/__xpg_basename.c
  46919. --- uClibc-0.9.33.2/libc/string/__xpg_basename.c 2012-05-15 09:20:09.000000000 +0200
  46920. +++ uClibc-git/libc/string/__xpg_basename.c 2014-06-02 17:40:34.182712914 +0200
  46921. @@ -5,7 +5,6 @@
  46922. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  46923. */
  46924. -#include "_string.h"
  46925. #include <libgen.h>
  46926. char *__xpg_basename(register char *path)
  46927. @@ -34,3 +33,7 @@
  46928. return first;
  46929. }
  46930. +#ifndef __USE_GNU
  46931. +# undef basename
  46932. +weak_alias(__xpg_basename,basename)
  46933. +#endif
  46934. diff -Nur uClibc-0.9.33.2/libc/string/__xpg_strerror_r.c uClibc-git/libc/string/__xpg_strerror_r.c
  46935. --- uClibc-0.9.33.2/libc/string/__xpg_strerror_r.c 2012-05-15 09:20:09.000000000 +0200
  46936. +++ uClibc-git/libc/string/__xpg_strerror_r.c 2014-06-02 17:40:34.182712914 +0200
  46937. @@ -5,8 +5,8 @@
  46938. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  46939. */
  46940. -/* Make sure we get proper strerror_r() prototype */
  46941. -#define strerror_r _hidestrerror_r
  46942. +/* get rid of REDIRECT */
  46943. +#define strerror_r __hide_strerror_r
  46944. #include <features.h>
  46945. #include <errno.h>
  46946. @@ -15,7 +15,6 @@
  46947. #undef strerror_r
  46948. -
  46949. #ifdef __UCLIBC_HAS_ERRNO_MESSAGES__
  46950. extern const char _string_syserrmsgs[] attribute_hidden;
  46951. @@ -273,4 +272,6 @@
  46952. #endif /* __UCLIBC_HAS_ERRNO_MESSAGES__ */
  46953. libc_hidden_def(__xpg_strerror_r)
  46954. -weak_alias(__xpg_strerror_r, strerror_r)
  46955. +#if defined __USE_XOPEN2K && !defined __USE_GNU
  46956. +strong_alias(__xpg_strerror_r,strerror_r)
  46957. +#endif
  46958. diff -Nur uClibc-0.9.33.2/libc/string/xtensa/memcpy.S uClibc-git/libc/string/xtensa/memcpy.S
  46959. --- uClibc-0.9.33.2/libc/string/xtensa/memcpy.S 2012-05-15 09:20:09.000000000 +0200
  46960. +++ uClibc-git/libc/string/xtensa/memcpy.S 2014-06-02 17:40:34.254713313 +0200
  46961. @@ -13,11 +13,10 @@
  46962. Lesser General Public License for more details.
  46963. You should have received a copy of the GNU Lesser General Public
  46964. - License along with the GNU C Library; if not, write to the Free
  46965. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  46966. - Boston, MA 02110-1301, USA. */
  46967. + License along with the GNU C Library; if not, see
  46968. + <http://www.gnu.org/licenses/>. */
  46969. -#include "../../sysdeps/linux/xtensa/sysdep.h"
  46970. +#include <sysdep.h>
  46971. #include <bits/xtensa-config.h>
  46972. .macro src_b r, w0, w1
  46973. diff -Nur uClibc-0.9.33.2/libc/string/xtensa/memset.S uClibc-git/libc/string/xtensa/memset.S
  46974. --- uClibc-0.9.33.2/libc/string/xtensa/memset.S 2012-05-15 09:20:09.000000000 +0200
  46975. +++ uClibc-git/libc/string/xtensa/memset.S 2014-06-02 17:40:34.254713313 +0200
  46976. @@ -13,11 +13,10 @@
  46977. Lesser General Public License for more details.
  46978. You should have received a copy of the GNU Lesser General Public
  46979. - License along with the GNU C Library; if not, write to the Free
  46980. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  46981. - Boston, MA 02110-1301, USA. */
  46982. + License along with the GNU C Library; if not, see
  46983. + <http://www.gnu.org/licenses/>. */
  46984. -#include "../../sysdeps/linux/xtensa/sysdep.h"
  46985. +#include <sysdep.h>
  46986. #include <bits/xtensa-config.h>
  46987. /* Do not use .literal_position in the ENTRY macro. */
  46988. diff -Nur uClibc-0.9.33.2/libc/string/xtensa/strcmp.S uClibc-git/libc/string/xtensa/strcmp.S
  46989. --- uClibc-0.9.33.2/libc/string/xtensa/strcmp.S 2012-05-15 09:20:09.000000000 +0200
  46990. +++ uClibc-git/libc/string/xtensa/strcmp.S 2014-06-02 17:40:34.254713313 +0200
  46991. @@ -13,11 +13,10 @@
  46992. Lesser General Public License for more details.
  46993. You should have received a copy of the GNU Lesser General Public
  46994. - License along with the GNU C Library; if not, write to the Free
  46995. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  46996. - Boston, MA 02110-1301, USA. */
  46997. + License along with the GNU C Library; if not, see
  46998. + <http://www.gnu.org/licenses/>. */
  46999. -#include "../../sysdeps/linux/xtensa/sysdep.h"
  47000. +#include <sysdep.h>
  47001. #include <bits/xtensa-config.h>
  47002. #include <features.h>
  47003. @@ -35,13 +34,14 @@
  47004. #define MASK4 0x40404040
  47005. + .text
  47006. + .align 4
  47007. + .literal_position
  47008. .literal .Lmask0, MASK0
  47009. .literal .Lmask1, MASK1
  47010. .literal .Lmask2, MASK2
  47011. .literal .Lmask3, MASK3
  47012. .literal .Lmask4, MASK4
  47013. -
  47014. - .text
  47015. ENTRY (strcmp)
  47016. /* a2 = s1, a3 = s2 */
  47017. diff -Nur uClibc-0.9.33.2/libc/string/xtensa/strcpy.S uClibc-git/libc/string/xtensa/strcpy.S
  47018. --- uClibc-0.9.33.2/libc/string/xtensa/strcpy.S 2012-05-15 09:20:09.000000000 +0200
  47019. +++ uClibc-git/libc/string/xtensa/strcpy.S 2014-06-02 17:40:34.254713313 +0200
  47020. @@ -13,11 +13,10 @@
  47021. Lesser General Public License for more details.
  47022. You should have received a copy of the GNU Lesser General Public
  47023. - License along with the GNU C Library; if not, write to the Free
  47024. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  47025. - Boston, MA 02110-1301, USA. */
  47026. + License along with the GNU C Library; if not, see
  47027. + <http://www.gnu.org/licenses/>. */
  47028. -#include "../../sysdeps/linux/xtensa/sysdep.h"
  47029. +#include <sysdep.h>
  47030. #include <bits/xtensa-config.h>
  47031. #ifdef __XTENSA_EB__
  47032. diff -Nur uClibc-0.9.33.2/libc/string/xtensa/strlen.S uClibc-git/libc/string/xtensa/strlen.S
  47033. --- uClibc-0.9.33.2/libc/string/xtensa/strlen.S 2012-05-15 09:20:09.000000000 +0200
  47034. +++ uClibc-git/libc/string/xtensa/strlen.S 2014-06-02 17:40:34.254713313 +0200
  47035. @@ -13,11 +13,10 @@
  47036. Lesser General Public License for more details.
  47037. You should have received a copy of the GNU Lesser General Public
  47038. - License along with the GNU C Library; if not, write to the Free
  47039. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  47040. - Boston, MA 02110-1301, USA. */
  47041. + License along with the GNU C Library; if not, see
  47042. + <http://www.gnu.org/licenses/>. */
  47043. -#include "../../sysdeps/linux/xtensa/sysdep.h"
  47044. +#include <sysdep.h>
  47045. #include <bits/xtensa-config.h>
  47046. #ifdef __XTENSA_EB__
  47047. diff -Nur uClibc-0.9.33.2/libc/string/xtensa/strncpy.S uClibc-git/libc/string/xtensa/strncpy.S
  47048. --- uClibc-0.9.33.2/libc/string/xtensa/strncpy.S 2012-05-15 09:20:09.000000000 +0200
  47049. +++ uClibc-git/libc/string/xtensa/strncpy.S 2014-06-02 17:40:34.254713313 +0200
  47050. @@ -13,11 +13,10 @@
  47051. Lesser General Public License for more details.
  47052. You should have received a copy of the GNU Lesser General Public
  47053. - License along with the GNU C Library; if not, write to the Free
  47054. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  47055. - Boston, MA 02110-1301, USA. */
  47056. + License along with the GNU C Library; if not, see
  47057. + <http://www.gnu.org/licenses/>. */
  47058. -#include "../../sysdeps/linux/xtensa/sysdep.h"
  47059. +#include <sysdep.h>
  47060. #include <bits/xtensa-config.h>
  47061. #ifdef __XTENSA_EB__
  47062. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/atomic.h uClibc-git/libc/sysdeps/linux/alpha/bits/atomic.h
  47063. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  47064. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/atomic.h 2014-06-02 17:40:34.258713336 +0200
  47065. @@ -12,9 +12,8 @@
  47066. Lesser General Public License for more details.
  47067. You should have received a copy of the GNU Lesser General Public
  47068. - License along with the GNU C Library; if not, write to the Free
  47069. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47070. - 02111-1307 USA. */
  47071. + License along with the GNU C Library; if not, see
  47072. + <http://www.gnu.org/licenses/>. */
  47073. #include <stdint.h>
  47074. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/dirent.h uClibc-git/libc/sysdeps/linux/alpha/bits/dirent.h
  47075. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/dirent.h 2012-05-15 09:20:09.000000000 +0200
  47076. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/dirent.h 2014-06-02 17:40:34.258713336 +0200
  47077. @@ -12,9 +12,8 @@
  47078. Lesser General Public License for more details.
  47079. You should have received a copy of the GNU Lesser General Public
  47080. - License along with the GNU C Library; if not, write to the Free
  47081. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47082. - 02111-1307 USA. */
  47083. + License along with the GNU C Library; if not, see
  47084. + <http://www.gnu.org/licenses/>. */
  47085. #ifndef _BITS_DIRENT_H
  47086. #define _BITS_DIRENT_H 1
  47087. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/eventfd.h uClibc-git/libc/sysdeps/linux/alpha/bits/eventfd.h
  47088. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/eventfd.h 1970-01-01 01:00:00.000000000 +0100
  47089. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/eventfd.h 2014-06-02 17:40:34.258713336 +0200
  47090. @@ -0,0 +1,31 @@
  47091. +/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
  47092. + This file is part of the GNU C Library.
  47093. +
  47094. + The GNU C Library is free software; you can redistribute it and/or
  47095. + modify it under the terms of the GNU Lesser General Public
  47096. + License as published by the Free Software Foundation; either
  47097. + version 2.1 of the License, or (at your option) any later version.
  47098. +
  47099. + The GNU C Library is distributed in the hope that it will be useful,
  47100. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  47101. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  47102. + Lesser General Public License for more details.
  47103. +
  47104. + You should have received a copy of the GNU Lesser General Public
  47105. + License along with the GNU C Library; if not, see
  47106. + <http://www.gnu.org/licenses/>. */
  47107. +
  47108. +#ifndef _SYS_EVENTFD_H
  47109. +# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
  47110. +#endif
  47111. +
  47112. +/* Flags for eventfd. */
  47113. +enum
  47114. + {
  47115. + EFD_SEMAPHORE = 000000001,
  47116. +#define EFD_SEMAPHORE EFD_SEMAPHORE
  47117. + EFD_CLOEXEC = 010000000,
  47118. +#define EFD_CLOEXEC EFD_CLOEXEC
  47119. + EFD_NONBLOCK = 000000004
  47120. +#define EFD_NONBLOCK EFD_NONBLOCK
  47121. + };
  47122. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/fcntl.h uClibc-git/libc/sysdeps/linux/alpha/bits/fcntl.h
  47123. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  47124. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/fcntl.h 2014-06-02 17:40:34.258713336 +0200
  47125. @@ -13,9 +13,8 @@
  47126. Lesser General Public License for more details.
  47127. You should have received a copy of the GNU Lesser General Public
  47128. - License along with the GNU C Library; if not, write to the Free
  47129. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47130. - 02111-1307 USA. */
  47131. + License along with the GNU C Library; if not, see
  47132. + <http://www.gnu.org/licenses/>. */
  47133. #ifndef _FCNTL_H
  47134. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  47135. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/fenv.h uClibc-git/libc/sysdeps/linux/alpha/bits/fenv.h
  47136. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  47137. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/fenv.h 2014-06-02 17:40:34.258713336 +0200
  47138. @@ -12,9 +12,8 @@
  47139. Lesser General Public License for more details.
  47140. You should have received a copy of the GNU Lesser General Public
  47141. - License along with the GNU C Library; if not, write to the Free
  47142. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47143. - 02111-1307 USA. */
  47144. + License along with the GNU C Library; if not, see
  47145. + <http://www.gnu.org/licenses/>. */
  47146. #ifndef _FENV_H
  47147. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  47148. @@ -107,15 +106,15 @@
  47149. /* If the default argument is used we use this value. Note that due to
  47150. architecture-specified page mappings, no user-space pointer will ever
  47151. have its two high bits set. Co-opt one. */
  47152. -#define FE_DFL_ENV ((__const fenv_t *) 0x8800000000000000UL)
  47153. +#define FE_DFL_ENV ((const fenv_t *) 0x8800000000000000UL)
  47154. #ifdef __USE_GNU
  47155. /* Floating-point environment where none of the exceptions are masked. */
  47156. -# define FE_NOMASK_ENV ((__const fenv_t *) 0x880000000000003eUL)
  47157. +# define FE_NOMASK_ENV ((const fenv_t *) 0x880000000000003eUL)
  47158. /* Floating-point environment with (processor-dependent) non-IEEE floating
  47159. point. In this case, mapping denormals to zero. */
  47160. -# define FE_NONIEEE_ENV ((__const fenv_t *) 0x8800000000003000UL)
  47161. +# define FE_NONIEEE_ENV ((const fenv_t *) 0x8800000000003000UL)
  47162. #endif
  47163. /* The system calls to talk to the kernel's FP code. */
  47164. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/ioctls.h uClibc-git/libc/sysdeps/linux/alpha/bits/ioctls.h
  47165. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/ioctls.h 2012-05-15 09:20:09.000000000 +0200
  47166. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/ioctls.h 2014-06-02 17:40:34.258713336 +0200
  47167. @@ -12,9 +12,8 @@
  47168. Lesser General Public License for more details.
  47169. You should have received a copy of the GNU Lesser General Public
  47170. - License along with the GNU C Library; if not, write to the Free
  47171. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47172. - 02111-1307 USA. */
  47173. + License along with the GNU C Library; if not, see
  47174. + <http://www.gnu.org/licenses/>. */
  47175. #ifndef _SYS_IOCTL_H
  47176. # error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
  47177. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/ipc.h uClibc-git/libc/sysdeps/linux/alpha/bits/ipc.h
  47178. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  47179. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/ipc.h 2014-06-02 17:40:34.258713336 +0200
  47180. @@ -12,9 +12,8 @@
  47181. Lesser General Public License for more details.
  47182. You should have received a copy of the GNU Lesser General Public
  47183. - License along with the GNU C Library; if not, write to the Free
  47184. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47185. - 02111-1307 USA. */
  47186. + License along with the GNU C Library; if not, see
  47187. + <http://www.gnu.org/licenses/>. */
  47188. #ifndef _SYS_IPC_H
  47189. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  47190. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/kernel_sigaction.h uClibc-git/libc/sysdeps/linux/alpha/bits/kernel_sigaction.h
  47191. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/kernel_sigaction.h 2012-05-15 09:20:09.000000000 +0200
  47192. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/kernel_sigaction.h 2014-06-02 17:40:34.258713336 +0200
  47193. @@ -9,12 +9,4 @@
  47194. unsigned int sa_flags;
  47195. };
  47196. -/* In uclibc, userspace struct sigaction is identical to
  47197. - * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
  47198. - * See sigaction.h
  47199. - */
  47200. -
  47201. -extern int __syscall_rt_sigaction (int, const struct sigaction *,
  47202. - struct sigaction *, size_t) attribute_hidden;
  47203. -
  47204. #endif
  47205. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/alpha/bits/kernel_types.h
  47206. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  47207. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/kernel_types.h 2014-06-02 17:40:34.258713336 +0200
  47208. @@ -33,6 +33,8 @@
  47209. typedef __kernel_uid_t __kernel_uid32_t;
  47210. typedef __kernel_gid_t __kernel_gid32_t;
  47211. typedef __kernel_dev_t __kernel_old_dev_t;
  47212. +typedef long __kernel_long_t;
  47213. +typedef unsigned long __kernel_ulong_t;
  47214. typedef struct {
  47215. int val[2];
  47216. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/local_lim.h uClibc-git/libc/sysdeps/linux/alpha/bits/local_lim.h
  47217. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/local_lim.h 1970-01-01 01:00:00.000000000 +0100
  47218. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/local_lim.h 2014-06-02 17:40:34.258713336 +0200
  47219. @@ -0,0 +1,91 @@
  47220. +/* Minimum guaranteed maximum values for system limits. Linux/Alpha version.
  47221. + Copyright (C) 1993-1998,2000,2002,2003,2004 Free Software Foundation, Inc.
  47222. + This file is part of the GNU C Library.
  47223. +
  47224. + The GNU C Library is free software; you can redistribute it and/or
  47225. + modify it under the terms of the GNU Library General Public License as
  47226. + published by the Free Software Foundation; either version 2 of the
  47227. + License, or (at your option) any later version.
  47228. +
  47229. + The GNU C Library is distributed in the hope that it will be useful,
  47230. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  47231. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  47232. + Library General Public License for more details.
  47233. +
  47234. + You should have received a copy of the GNU Library General Public
  47235. + License along with the GNU C Library; see the file COPYING.LIB. If not,
  47236. + see <http://www.gnu.org/licenses/>. */
  47237. +
  47238. +/* The kernel header pollutes the namespace with the NR_OPEN symbol
  47239. + and defines LINK_MAX although filesystems have different maxima. A
  47240. + similar thing is true for OPEN_MAX: the limit can be changed at
  47241. + runtime and therefore the macro must not be defined. Remove this
  47242. + after including the header if necessary. */
  47243. +#ifndef NR_OPEN
  47244. +# define __undef_NR_OPEN
  47245. +#endif
  47246. +#ifndef LINK_MAX
  47247. +# define __undef_LINK_MAX
  47248. +#endif
  47249. +#ifndef OPEN_MAX
  47250. +# define __undef_OPEN_MAX
  47251. +#endif
  47252. +
  47253. +/* The kernel sources contain a file with all the needed information. */
  47254. +#include <linux/limits.h>
  47255. +
  47256. +/* Have to remove NR_OPEN? */
  47257. +#ifdef __undef_NR_OPEN
  47258. +# undef NR_OPEN
  47259. +# undef __undef_NR_OPEN
  47260. +#endif
  47261. +/* Have to remove LINK_MAX? */
  47262. +#ifdef __undef_LINK_MAX
  47263. +# undef LINK_MAX
  47264. +# undef __undef_LINK_MAX
  47265. +#endif
  47266. +/* Have to remove OPEN_MAX? */
  47267. +#ifdef __undef_OPEN_MAX
  47268. +# undef OPEN_MAX
  47269. +# undef __undef_OPEN_MAX
  47270. +#endif
  47271. +
  47272. +/* The number of data keys per process. */
  47273. +#define _POSIX_THREAD_KEYS_MAX 128
  47274. +/* This is the value this implementation supports. */
  47275. +#define PTHREAD_KEYS_MAX 1024
  47276. +
  47277. +/* Controlling the iterations of destructors for thread-specific data. */
  47278. +#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
  47279. +/* Number of iterations this implementation does. */
  47280. +#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
  47281. +
  47282. +/* The number of threads per process. */
  47283. +#define _POSIX_THREAD_THREADS_MAX 64
  47284. +/* We have no predefined limit on the number of threads. */
  47285. +#undef PTHREAD_THREADS_MAX
  47286. +
  47287. +/* Maximum amount by which a process can descrease its asynchronous I/O
  47288. + priority level. */
  47289. +#define AIO_PRIO_DELTA_MAX 20
  47290. +
  47291. +/* Minimum size for a thread. We are free to choose a reasonable value. */
  47292. +#define PTHREAD_STACK_MIN 24576
  47293. +
  47294. +/* Maximum number of timer expiration overruns. */
  47295. +#define DELAYTIMER_MAX 2147483647
  47296. +
  47297. +/* Maximum tty name length. */
  47298. +#define TTY_NAME_MAX 32
  47299. +
  47300. +/* Maximum login name length. This is arbitrary. */
  47301. +#define LOGIN_NAME_MAX 256
  47302. +
  47303. +/* Maximum host name length. */
  47304. +#define HOST_NAME_MAX 64
  47305. +
  47306. +/* Maximum message queue priority level. */
  47307. +#define MQ_PRIO_MAX 32768
  47308. +
  47309. +/* Maximum value the semaphore can have. */
  47310. +#define SEM_VALUE_MAX (2147483647)
  47311. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mathdef.h uClibc-git/libc/sysdeps/linux/alpha/bits/mathdef.h
  47312. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  47313. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/mathdef.h 2014-06-02 17:40:34.258713336 +0200
  47314. @@ -13,9 +13,8 @@
  47315. Lesser General Public License for more details.
  47316. You should have received a copy of the GNU Lesser General Public
  47317. - License along with the GNU C Library; if not, write to the Free
  47318. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47319. - 02111-1307 USA. */
  47320. + License along with the GNU C Library; if not, see
  47321. + <http://www.gnu.org/licenses/>. */
  47322. #if !defined _MATH_H && !defined _COMPLEX_H
  47323. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  47324. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mathinline.h uClibc-git/libc/sysdeps/linux/alpha/bits/mathinline.h
  47325. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
  47326. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/mathinline.h 2014-06-02 17:40:34.262713357 +0200
  47327. @@ -14,9 +14,8 @@
  47328. Lesser General Public License for more details.
  47329. You should have received a copy of the GNU Lesser General Public
  47330. - License along with the GNU C Library; if not, write to the Free
  47331. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47332. - 02111-1307 USA. */
  47333. + License along with the GNU C Library; if not, see
  47334. + <http://www.gnu.org/licenses/>. */
  47335. #ifndef _MATH_H
  47336. # error "Never use <bits/mathinline.h> directly; include <math.h> instead."
  47337. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mman.h uClibc-git/libc/sysdeps/linux/alpha/bits/mman.h
  47338. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
  47339. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/mman.h 2014-06-02 17:40:34.262713357 +0200
  47340. @@ -13,9 +13,8 @@
  47341. Lesser General Public License for more details.
  47342. You should have received a copy of the GNU Lesser General Public
  47343. - License along with the GNU C Library; if not, write to the Free
  47344. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47345. - 02111-1307 USA. */
  47346. + License along with the GNU C Library; if not, see
  47347. + <http://www.gnu.org/licenses/>. */
  47348. #ifndef _SYS_MMAN_H
  47349. # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
  47350. @@ -71,7 +70,7 @@
  47351. # define MAP_NORESERVE 0x10000 /* Don't check for reservations. */
  47352. # define MAP_POPULATE 0x20000 /* Populate (prefault) pagetables. */
  47353. # define MAP_NONBLOCK 0x40000 /* Do not block on IO. */
  47354. -# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
  47355. +# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
  47356. be uninitialized. */
  47357. #endif
  47358. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/msq.h uClibc-git/libc/sysdeps/linux/alpha/bits/msq.h
  47359. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
  47360. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/msq.h 2014-06-02 17:40:34.262713357 +0200
  47361. @@ -12,9 +12,8 @@
  47362. Lesser General Public License for more details.
  47363. You should have received a copy of the GNU Lesser General Public
  47364. - License along with the GNU C Library; if not, write to the Free
  47365. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47366. - 02111-1307 USA. */
  47367. + License along with the GNU C Library; if not, see
  47368. + <http://www.gnu.org/licenses/>. */
  47369. #ifndef _SYS_MSG_H
  47370. # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  47371. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/netdb.h uClibc-git/libc/sysdeps/linux/alpha/bits/netdb.h
  47372. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/netdb.h 2012-05-15 09:20:09.000000000 +0200
  47373. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/netdb.h 2014-06-02 17:40:34.262713357 +0200
  47374. @@ -12,9 +12,8 @@
  47375. Lesser General Public License for more details.
  47376. You should have received a copy of the GNU Lesser General Public
  47377. - License along with the GNU C Library; if not, write to the Free
  47378. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47379. - 02111-1307 USA. */
  47380. + License along with the GNU C Library; if not, see
  47381. + <http://www.gnu.org/licenses/>. */
  47382. #ifndef _NETDB_H
  47383. # error "Never include <bits/netdb.h> directly; use <netdb.h> instead."
  47384. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/resource.h uClibc-git/libc/sysdeps/linux/alpha/bits/resource.h
  47385. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/resource.h 2012-05-15 09:20:09.000000000 +0200
  47386. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/resource.h 2014-06-02 17:40:34.262713357 +0200
  47387. @@ -14,9 +14,8 @@
  47388. Lesser General Public License for more details.
  47389. You should have received a copy of the GNU Lesser General Public
  47390. - License along with the GNU C Library; if not, write to the Free
  47391. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47392. - 02111-1307 USA. */
  47393. + License along with the GNU C Library; if not, see
  47394. + <http://www.gnu.org/licenses/>. */
  47395. #ifndef _SYS_RESOURCE_H
  47396. # error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
  47397. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sem.h uClibc-git/libc/sysdeps/linux/alpha/bits/sem.h
  47398. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
  47399. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/sem.h 2014-06-02 17:40:34.262713357 +0200
  47400. @@ -12,9 +12,8 @@
  47401. Lesser General Public License for more details.
  47402. You should have received a copy of the GNU Lesser General Public
  47403. - License along with the GNU C Library; if not, write to the Free
  47404. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47405. - 02111-1307 USA. */
  47406. + License along with the GNU C Library; if not, see
  47407. + <http://www.gnu.org/licenses/>. */
  47408. #ifndef _SYS_SEM_H
  47409. # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
  47410. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/setjmp.h uClibc-git/libc/sysdeps/linux/alpha/bits/setjmp.h
  47411. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  47412. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/setjmp.h 2014-06-02 17:40:34.262713357 +0200
  47413. @@ -13,9 +13,8 @@
  47414. Lesser General Public License for more details.
  47415. You should have received a copy of the GNU Lesser General Public
  47416. - License along with the GNU C Library; if not, write to the Free
  47417. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47418. - 02111-1307 USA. */
  47419. + License along with the GNU C Library; if not, see
  47420. + <http://www.gnu.org/licenses/>. */
  47421. #ifndef _BITS_SETJMP_H
  47422. #define _BITS_SETJMP_H 1
  47423. @@ -55,33 +54,6 @@
  47424. * registers.
  47425. */
  47426. -#if defined __USE_MISC || defined __ASSEMBLY__
  47427. -# define JB_S0 0
  47428. -# define JB_S1 1
  47429. -# define JB_S2 2
  47430. -# define JB_S3 3
  47431. -# define JB_S4 4
  47432. -# define JB_S5 5
  47433. -# define JB_PC 6
  47434. -# define JB_FP 7
  47435. -# define JB_SP 8
  47436. -# define JB_F2 9
  47437. -# define JB_F3 10
  47438. -# define JB_F4 11
  47439. -# define JB_F5 12
  47440. -# define JB_F6 13
  47441. -# define JB_F7 14
  47442. -# define JB_F8 15
  47443. -# define JB_F9 16
  47444. -#endif
  47445. -
  47446. -#ifndef __ASSEMBLY__
  47447. typedef long int __jmp_buf[17];
  47448. -/* Test if longjmp to JMPBUF would unwind the frame containing a local
  47449. - variable at ADDRESS. */
  47450. -#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
  47451. - ((void *)(_address) < (void *)((_jmpbuf)[JB_SP]))
  47452. -#endif
  47453. -
  47454. #endif /* bits/setjmp.h */
  47455. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/shm.h uClibc-git/libc/sysdeps/linux/alpha/bits/shm.h
  47456. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  47457. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/shm.h 2014-06-02 17:40:34.262713357 +0200
  47458. @@ -13,9 +13,8 @@
  47459. Lesser General Public License for more details.
  47460. You should have received a copy of the GNU Lesser General Public
  47461. - License along with the GNU C Library; if not, write to the Free
  47462. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47463. - 02111-1307 USA. */
  47464. + License along with the GNU C Library; if not, see
  47465. + <http://www.gnu.org/licenses/>. */
  47466. #ifndef _SYS_SHM_H
  47467. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  47468. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigaction.h uClibc-git/libc/sysdeps/linux/alpha/bits/sigaction.h
  47469. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
  47470. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/sigaction.h 2014-06-02 17:40:34.262713357 +0200
  47471. @@ -13,9 +13,8 @@
  47472. Lesser General Public License for more details.
  47473. You should have received a copy of the GNU Lesser General Public
  47474. - License along with the GNU C Library; if not, write to the Free
  47475. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47476. - 02111-1307 USA. */
  47477. + License along with the GNU C Library; if not, see
  47478. + <http://www.gnu.org/licenses/>. */
  47479. #ifndef _SIGNAL_H
  47480. # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
  47481. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/alpha/bits/sigcontextinfo.h
  47482. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  47483. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/sigcontextinfo.h 2014-06-02 17:40:34.262713357 +0200
  47484. @@ -12,9 +12,8 @@
  47485. Lesser General Public License for more details.
  47486. You should have received a copy of the GNU Lesser General Public
  47487. - License along with the GNU C Library; if not, write to the Free
  47488. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47489. - 02111-1307 USA. */
  47490. + License along with the GNU C Library; if not, see
  47491. + <http://www.gnu.org/licenses/>. */
  47492. #define SIGCONTEXT int _code, struct sigcontext *
  47493. #define SIGCONTEXT_EXTRA_ARGS _code,
  47494. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/siginfo.h uClibc-git/libc/sysdeps/linux/alpha/bits/siginfo.h
  47495. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/siginfo.h 2012-05-15 09:20:09.000000000 +0200
  47496. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/siginfo.h 2014-06-02 17:40:34.262713357 +0200
  47497. @@ -13,9 +13,8 @@
  47498. Lesser General Public License for more details.
  47499. You should have received a copy of the GNU Lesser General Public
  47500. - License along with the GNU C Library; if not, write to the Free
  47501. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47502. - 02111-1307 USA. */
  47503. + License along with the GNU C Library; if not, see
  47504. + <http://www.gnu.org/licenses/>. */
  47505. #if !defined _SIGNAL_H && !defined __need_siginfo_t \
  47506. && !defined __need_sigevent_t
  47507. @@ -258,7 +257,11 @@
  47508. /* Structure to transport application-defined values with signals. */
  47509. # define __SIGEV_MAX_SIZE 64
  47510. -# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
  47511. +# if __WORDSIZE == 64
  47512. +# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
  47513. +# else
  47514. +# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
  47515. +# endif
  47516. typedef struct sigevent
  47517. {
  47518. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/signum.h uClibc-git/libc/sysdeps/linux/alpha/bits/signum.h
  47519. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/signum.h 2012-05-15 09:20:09.000000000 +0200
  47520. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/signum.h 2014-06-02 17:40:34.262713357 +0200
  47521. @@ -13,9 +13,8 @@
  47522. Lesser General Public License for more details.
  47523. You should have received a copy of the GNU Lesser General Public
  47524. - License along with the GNU C Library; if not, write to the Free
  47525. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47526. - 02111-1307 USA. */
  47527. + License along with the GNU C Library; if not, see
  47528. + <http://www.gnu.org/licenses/>. */
  47529. #ifdef _SIGNAL_H
  47530. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigstack.h uClibc-git/libc/sysdeps/linux/alpha/bits/sigstack.h
  47531. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/sigstack.h 2012-05-15 09:20:09.000000000 +0200
  47532. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/sigstack.h 2014-06-02 17:40:34.262713357 +0200
  47533. @@ -13,9 +13,8 @@
  47534. Lesser General Public License for more details.
  47535. You should have received a copy of the GNU Lesser General Public
  47536. - License along with the GNU C Library; if not, write to the Free
  47537. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47538. - 02111-1307 USA. */
  47539. + License along with the GNU C Library; if not, see
  47540. + <http://www.gnu.org/licenses/>. */
  47541. #ifndef _SIGNAL_H
  47542. # error "Never include this file directly. Use <signal.h> instead"
  47543. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/socket_type.h uClibc-git/libc/sysdeps/linux/alpha/bits/socket_type.h
  47544. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/socket_type.h 1970-01-01 01:00:00.000000000 +0100
  47545. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/socket_type.h 2014-06-02 17:40:34.262713357 +0200
  47546. @@ -0,0 +1,54 @@
  47547. +/* Define enum __socket_type for Linux/Alpha.
  47548. + Copyright (C) 1991-2012 Free Software Foundation, Inc.
  47549. + This file is part of the GNU C Library.
  47550. +
  47551. + The GNU C Library is free software; you can redistribute it and/or
  47552. + modify it under the terms of the GNU Lesser General Public
  47553. + License as published by the Free Software Foundation; either
  47554. + version 2.1 of the License, or (at your option) any later version.
  47555. +
  47556. + The GNU C Library is distributed in the hope that it will be useful,
  47557. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  47558. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  47559. + Lesser General Public License for more details.
  47560. +
  47561. + You should have received a copy of the GNU Lesser General Public
  47562. + License along with the GNU C Library. If not, see
  47563. + <http://www.gnu.org/licenses/>. */
  47564. +
  47565. +#ifndef _SYS_SOCKET_H
  47566. +# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
  47567. +#endif
  47568. +
  47569. +/* Types of sockets. */
  47570. +enum __socket_type
  47571. +{
  47572. + SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
  47573. + byte streams. */
  47574. +#define SOCK_STREAM SOCK_STREAM
  47575. + SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
  47576. + of fixed maximum length. */
  47577. +#define SOCK_DGRAM SOCK_DGRAM
  47578. + SOCK_RAW = 3, /* Raw protocol interface. */
  47579. +#define SOCK_RAW SOCK_RAW
  47580. + SOCK_RDM = 4, /* Reliably-delivered messages. */
  47581. +#define SOCK_RDM SOCK_RDM
  47582. + SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
  47583. + datagrams of fixed maximum length. */
  47584. +#define SOCK_SEQPACKET SOCK_SEQPACKET
  47585. + SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */
  47586. +#define SOCK_DCCP SOCK_DCCP
  47587. + SOCK_PACKET = 10, /* Linux specific way of getting packets
  47588. + at the dev level. For writing rarp and
  47589. + other similar things on the user level. */
  47590. +#define SOCK_PACKET SOCK_PACKET
  47591. +
  47592. + /* Flags to be ORed into the type parameter of socket and socketpair. */
  47593. +
  47594. + SOCK_CLOEXEC = 010000000, /* Atomically set close-on-exec flag for the
  47595. + new descriptor(s). */
  47596. +#define SOCK_CLOEXEC SOCK_CLOEXEC
  47597. + SOCK_NONBLOCK = 0x40000000 /* Atomically mark descriptor(s) as
  47598. + non-blocking. */
  47599. +#define SOCK_NONBLOCK SOCK_NONBLOCK
  47600. +};
  47601. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/alpha/bits/stackinfo.h
  47602. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  47603. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/stackinfo.h 2014-06-02 17:40:34.262713357 +0200
  47604. @@ -12,9 +12,8 @@
  47605. Lesser General Public License for more details.
  47606. You should have received a copy of the GNU Lesser General Public
  47607. - License along with the GNU C Library; if not, write to the Free
  47608. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47609. - 02111-1307 USA. */
  47610. + License along with the GNU C Library; if not, see
  47611. + <http://www.gnu.org/licenses/>. */
  47612. /* This file contains a bit of information about the stack allocation
  47613. of the processor. */
  47614. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/statfs.h uClibc-git/libc/sysdeps/linux/alpha/bits/statfs.h
  47615. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/statfs.h 2012-05-15 09:20:09.000000000 +0200
  47616. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/statfs.h 2014-06-02 17:40:34.262713357 +0200
  47617. @@ -12,9 +12,8 @@
  47618. Lesser General Public License for more details.
  47619. You should have received a copy of the GNU Lesser General Public
  47620. - License along with the GNU C Library; if not, write to the Free
  47621. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47622. - 02111-1307 USA. */
  47623. + License along with the GNU C Library; if not, see
  47624. + <http://www.gnu.org/licenses/>. */
  47625. #ifndef _SYS_STATFS_H
  47626. # error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
  47627. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/stat.h uClibc-git/libc/sysdeps/linux/alpha/bits/stat.h
  47628. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  47629. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/stat.h 2014-06-02 17:40:34.262713357 +0200
  47630. @@ -13,9 +13,8 @@
  47631. Lesser General Public License for more details.
  47632. You should have received a copy of the GNU Lesser General Public
  47633. - License along with the GNU C Library; if not, write to the Free
  47634. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47635. - 02111-1307 USA. */
  47636. + License along with the GNU C Library; if not, see
  47637. + <http://www.gnu.org/licenses/>. */
  47638. #ifndef _SYS_STAT_H
  47639. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  47640. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/syscalls.h uClibc-git/libc/sysdeps/linux/alpha/bits/syscalls.h
  47641. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
  47642. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/syscalls.h 2014-06-02 17:40:34.262713357 +0200
  47643. @@ -14,9 +14,8 @@
  47644. Lesser General Public License for more details.
  47645. You should have received a copy of the GNU Lesser General Public
  47646. - License along with the GNU C Library; if not, write to the Free
  47647. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47648. - 02111-1307 USA. */
  47649. + License along with the GNU C Library; if not, see
  47650. + <http://www.gnu.org/licenses/>. */
  47651. #ifndef _BITS_SYSCALLS_H
  47652. #define _BITS_SYSCALLS_H
  47653. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/termios.h uClibc-git/libc/sysdeps/linux/alpha/bits/termios.h
  47654. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
  47655. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/termios.h 2014-06-02 17:40:34.262713357 +0200
  47656. @@ -14,9 +14,8 @@
  47657. Lesser General Public License for more details.
  47658. You should have received a copy of the GNU Lesser General Public
  47659. - License along with the GNU C Library; if not, write to the Free
  47660. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47661. - 02111-1307 USA. */
  47662. + License along with the GNU C Library; if not, see
  47663. + <http://www.gnu.org/licenses/>. */
  47664. #ifndef _TERMIOS_H
  47665. # error "Never include <bits/termios.h> directly; use <termios.h> instead."
  47666. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/typesizes.h uClibc-git/libc/sysdeps/linux/alpha/bits/typesizes.h
  47667. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
  47668. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/typesizes.h 2014-06-02 17:40:34.262713357 +0200
  47669. @@ -13,9 +13,8 @@
  47670. Lesser General Public License for more details.
  47671. You should have received a copy of the GNU Lesser General Public
  47672. - License along with the GNU C Library; if not, write to the Free
  47673. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47674. - 02111-1307 USA. */
  47675. + License along with the GNU C Library; if not, see
  47676. + <http://www.gnu.org/licenses/>. */
  47677. #ifndef _BITS_TYPES_H
  47678. # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
  47679. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/alpha/bits/uClibc_arch_features.h
  47680. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  47681. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/uClibc_arch_features.h 2014-06-02 17:40:34.262713357 +0200
  47682. @@ -11,8 +11,8 @@
  47683. /* can your target use syscall6() for mmap ? */
  47684. #define __UCLIBC_MMAP_HAS_6_ARGS__
  47685. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  47686. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  47687. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  47688. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  47689. /* does your target have a broken create_module() ? */
  47690. #define __UCLIBC_SLIGHTLY_BROKEN_CREATE_MODULE__
  47691. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/alpha/bits/uClibc_page.h
  47692. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  47693. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/uClibc_page.h 2014-06-02 17:40:34.262713357 +0200
  47694. @@ -11,8 +11,8 @@
  47695. * Library General Public License for more details.
  47696. *
  47697. * You should have received a copy of the GNU Library General Public
  47698. - * License along with this library; if not, write to the Free
  47699. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  47700. + * License along with this library; if not, see
  47701. + * <http://www.gnu.org/licenses/>.
  47702. */
  47703. /* Supply an architecture specific value for PAGE_SIZE and friends. */
  47704. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/wordsize.h uClibc-git/libc/sysdeps/linux/alpha/bits/wordsize.h
  47705. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  47706. +++ uClibc-git/libc/sysdeps/linux/alpha/bits/wordsize.h 2014-06-02 17:40:34.262713357 +0200
  47707. @@ -12,9 +12,8 @@
  47708. Lesser General Public License for more details.
  47709. You should have received a copy of the GNU Lesser General Public
  47710. - License along with the GNU C Library; if not, write to the Free
  47711. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47712. - 02111-1307 USA. */
  47713. + License along with the GNU C Library; if not, see
  47714. + <http://www.gnu.org/licenses/>. */
  47715. #define __WORDSIZE 64
  47716. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/brk.S uClibc-git/libc/sysdeps/linux/alpha/brk.S
  47717. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/brk.S 2012-05-15 09:20:09.000000000 +0200
  47718. +++ uClibc-git/libc/sysdeps/linux/alpha/brk.S 2014-06-02 17:40:34.262713357 +0200
  47719. @@ -13,9 +13,8 @@
  47720. Lesser General Public License for more details.
  47721. You should have received a copy of the GNU Lesser General Public
  47722. - License along with the GNU C Library; if not, write to the Free
  47723. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47724. - 02111-1307 USA. */
  47725. + License along with the GNU C Library; if not, see
  47726. + <http://www.gnu.org/licenses/>. */
  47727. /* __brk is a special syscall under Linux since it never returns an
  47728. error. Instead, the error condition is indicated by returning the old
  47729. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/clone.S uClibc-git/libc/sysdeps/linux/alpha/clone.S
  47730. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/clone.S 2012-05-15 09:20:09.000000000 +0200
  47731. +++ uClibc-git/libc/sysdeps/linux/alpha/clone.S 2014-06-02 17:40:34.262713357 +0200
  47732. @@ -13,9 +13,8 @@
  47733. Lesser General Public License for more details.
  47734. You should have received a copy of the GNU Lesser General Public
  47735. - License along with the GNU C Library; if not, write to the Free
  47736. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47737. - 02111-1307 USA. */
  47738. + License along with the GNU C Library; if not, see
  47739. + <http://www.gnu.org/licenses/>. */
  47740. /* clone() is even more special than fork() as it mucks with stacks
  47741. and invokes a function in the right context after its all over. */
  47742. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/crt1.S uClibc-git/libc/sysdeps/linux/alpha/crt1.S
  47743. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/crt1.S 2012-05-15 09:20:09.000000000 +0200
  47744. +++ uClibc-git/libc/sysdeps/linux/alpha/crt1.S 2014-06-02 17:40:34.262713357 +0200
  47745. @@ -32,9 +32,8 @@
  47746. Lesser General Public License for more details.
  47747. You should have received a copy of the GNU Lesser General Public
  47748. - License along with the GNU C Library; if not, write to the Free
  47749. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47750. - 02111-1307 USA. */
  47751. + License along with the GNU C Library; if not, see
  47752. + <http://www.gnu.org/licenses/>. */
  47753. #include <features.h>
  47754. #include <sys/regdef.h>
  47755. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/divrem.h uClibc-git/libc/sysdeps/linux/alpha/divrem.h
  47756. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/divrem.h 2012-05-15 09:20:09.000000000 +0200
  47757. +++ uClibc-git/libc/sysdeps/linux/alpha/divrem.h 2014-06-02 17:40:34.262713357 +0200
  47758. @@ -13,9 +13,8 @@
  47759. Lesser General Public License for more details.
  47760. You should have received a copy of the GNU Lesser General Public
  47761. - License along with the GNU C Library; if not, write to the Free
  47762. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47763. - 02111-1307 USA. */
  47764. + License along with the GNU C Library; if not, see
  47765. + <http://www.gnu.org/licenses/>. */
  47766. /* The current Alpha chips don't provide hardware for integer
  47767. division. The C compiler expects the functions
  47768. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/fpu_control.h uClibc-git/libc/sysdeps/linux/alpha/fpu_control.h
  47769. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  47770. +++ uClibc-git/libc/sysdeps/linux/alpha/fpu_control.h 2014-06-02 17:40:34.262713357 +0200
  47771. @@ -14,9 +14,8 @@
  47772. Lesser General Public License for more details.
  47773. You should have received a copy of the GNU Lesser General Public
  47774. - License along with the GNU C Library; if not, write to the Free
  47775. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47776. - 02111-1307 USA. */
  47777. + License along with the GNU C Library; if not, see
  47778. + <http://www.gnu.org/licenses/>. */
  47779. #ifndef _ALPHA_FPU_CONTROL_H
  47780. #define _ALPHA_FPU_CONTROL_H
  47781. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/alpha/jmpbuf-offsets.h
  47782. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  47783. +++ uClibc-git/libc/sysdeps/linux/alpha/jmpbuf-offsets.h 2014-06-02 17:40:34.262713357 +0200
  47784. @@ -0,0 +1,35 @@
  47785. +/* Private macros for accessing __jmp_buf contents. Alpha version.
  47786. + Copyright (C) 2006 Free Software Foundation, Inc.
  47787. + This file is part of the GNU C Library.
  47788. +
  47789. + The GNU C Library is free software; you can redistribute it and/or
  47790. + modify it under the terms of the GNU Lesser General Public
  47791. + License as published by the Free Software Foundation; either
  47792. + version 2.1 of the License, or (at your option) any later version.
  47793. +
  47794. + The GNU C Library is distributed in the hope that it will be useful,
  47795. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  47796. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  47797. + Lesser General Public License for more details.
  47798. +
  47799. + You should have received a copy of the GNU Lesser General Public
  47800. + License along with the GNU C Library; if not, see
  47801. + <http://www.gnu.org/licenses/>. */
  47802. +
  47803. +#define JB_S0 0
  47804. +#define JB_S1 1
  47805. +#define JB_S2 2
  47806. +#define JB_S3 3
  47807. +#define JB_S4 4
  47808. +#define JB_S5 5
  47809. +#define JB_PC 6
  47810. +#define JB_FP 7
  47811. +#define JB_SP 8
  47812. +#define JB_F2 9
  47813. +#define JB_F3 10
  47814. +#define JB_F4 11
  47815. +#define JB_F5 12
  47816. +#define JB_F6 13
  47817. +#define JB_F7 14
  47818. +#define JB_F8 15
  47819. +#define JB_F9 16
  47820. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/alpha/jmpbuf-unwind.h
  47821. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  47822. +++ uClibc-git/libc/sysdeps/linux/alpha/jmpbuf-unwind.h 2014-06-02 17:40:34.262713357 +0200
  47823. @@ -0,0 +1,23 @@
  47824. +/*
  47825. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  47826. + *
  47827. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  47828. + */
  47829. +#include <setjmp.h>
  47830. +#include <jmpbuf-offsets.h>
  47831. +
  47832. +/* Test if longjmp to JMPBUF would unwind the frame containing a local
  47833. + variable at ADDRESS. */
  47834. +#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
  47835. + ((void *)(_address) < (void *)((_jmpbuf)[JB_SP]))
  47836. +
  47837. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  47838. +#include <stdint.h>
  47839. +#include <unwind.h>
  47840. +
  47841. +#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
  47842. + _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
  47843. +
  47844. +#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  47845. + ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
  47846. +#endif
  47847. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/__longjmp.S uClibc-git/libc/sysdeps/linux/alpha/__longjmp.S
  47848. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  47849. +++ uClibc-git/libc/sysdeps/linux/alpha/__longjmp.S 2014-06-02 17:40:34.258713336 +0200
  47850. @@ -12,14 +12,10 @@
  47851. Lesser General Public License for more details.
  47852. You should have received a copy of the GNU Lesser General Public
  47853. - License along with the GNU C Library; if not, write to the Free
  47854. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47855. - 02111-1307 USA. */
  47856. + License along with the GNU C Library; if not, see
  47857. + <http://www.gnu.org/licenses/>. */
  47858. -#include <features.h>
  47859. -#define _SETJMP_H
  47860. -#define __ASSEMBLY__
  47861. -#include <bits/setjmp.h>
  47862. +#include <setjmp-offsets.h>
  47863. #define a0 $16
  47864. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/Makefile.arch uClibc-git/libc/sysdeps/linux/alpha/Makefile.arch
  47865. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  47866. +++ uClibc-git/libc/sysdeps/linux/alpha/Makefile.arch 2014-06-02 17:40:34.258713336 +0200
  47867. @@ -5,9 +5,9 @@
  47868. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  47869. #
  47870. -CSRC := __syscall_error.c sigprocmask.c
  47871. +CSRC-y := __syscall_error.c sigprocmask.c
  47872. -SSRC := \
  47873. +SSRC-y := \
  47874. __longjmp.S brk.S bsd-_setjmp.S bsd-setjmp.S clone.S \
  47875. divl.S divq.S pipe.S reml.S remq.S __syscall_rt_sigaction.S setjmp.S \
  47876. syscall.S
  47877. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/pipe.S uClibc-git/libc/sysdeps/linux/alpha/pipe.S
  47878. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/pipe.S 2012-05-15 09:20:09.000000000 +0200
  47879. +++ uClibc-git/libc/sysdeps/linux/alpha/pipe.S 2014-06-02 17:40:34.262713357 +0200
  47880. @@ -13,9 +13,8 @@
  47881. Lesser General Public License for more details.
  47882. You should have received a copy of the GNU Lesser General Public
  47883. - License along with the GNU C Library; if not, write to the Free
  47884. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47885. - 02111-1307 USA. */
  47886. + License along with the GNU C Library; if not, see
  47887. + <http://www.gnu.org/licenses/>. */
  47888. #include <features.h>
  47889. #include <sys/syscall.h>
  47890. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/setjmp.S uClibc-git/libc/sysdeps/linux/alpha/setjmp.S
  47891. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  47892. +++ uClibc-git/libc/sysdeps/linux/alpha/setjmp.S 2014-06-02 17:40:34.262713357 +0200
  47893. @@ -12,15 +12,10 @@
  47894. Lesser General Public License for more details.
  47895. You should have received a copy of the GNU Lesser General Public
  47896. - License along with the GNU C Library; if not, write to the Free
  47897. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47898. - 02111-1307 USA. */
  47899. -
  47900. -#include <features.h>
  47901. -#define _ASM
  47902. -#define _SETJMP_H
  47903. -#define __ASSEMBLY__
  47904. -#include <bits/setjmp.h>
  47905. + License along with the GNU C Library; if not, see
  47906. + <http://www.gnu.org/licenses/>. */
  47907. +
  47908. +#include <jmpbuf-offsets.h>
  47909. #define a0 $16
  47910. @@ -30,10 +25,16 @@
  47911. ldgp $29, 0($27)
  47912. $sigsetjmp_local:
  47913. - subq $30, 16, $30
  47914. - .frame $26, 16, $26, 0
  47915. - stq $26, 0($30)
  47916. - .mask 0x04000000, -16
  47917. +#ifndef __PIC__
  47918. +# define FRAME 16
  47919. + subq $30, FRAME, $30
  47920. + .frame $30, FRAME, $26, 0
  47921. + stq $26, 0($30)
  47922. + .mask 0x04000000, -FRAME
  47923. +#else
  47924. +# define FRAME 0
  47925. + .frame $30, FRAME, $26, 0
  47926. +#endif
  47927. .prologue 1
  47928. stq $9, JB_S0*8(a0)
  47929. @@ -43,9 +44,9 @@
  47930. stq $13, JB_S4*8(a0)
  47931. stq $14, JB_S5*8(a0)
  47932. stq $26, JB_PC*8(a0)
  47933. - addq $30, 16, $1
  47934. - stq $15, JB_FP*8(a0)
  47935. + addq $30, FRAME, $1
  47936. stq $1, JB_SP*8(a0)
  47937. + stq $15, JB_FP*8(a0)
  47938. stt $f2, JB_F2*8(a0)
  47939. stt $f3, JB_F3*8(a0)
  47940. stt $f4, JB_F4*8(a0)
  47941. @@ -55,12 +56,16 @@
  47942. stt $f8, JB_F8*8(a0)
  47943. stt $f9, JB_F9*8(a0)
  47944. +#ifndef __PIC__
  47945. /* Call to C to (potentially) save our signal mask. */
  47946. jsr $26, __sigjmp_save
  47947. -
  47948. ldq $26, 0($30)
  47949. addq $30, 16, $30
  47950. ret
  47951. +#else
  47952. + /* Tailcall to save the signal mask. */
  47953. + br $31, __sigjmp_save !samegp
  47954. +#endif
  47955. .end __sigsetjmp
  47956. @@ -71,7 +76,6 @@
  47957. .align 3;
  47958. .ent _setjmp , 0;
  47959. _setjmp:
  47960. - .frame $30 , 0, $26
  47961. ldgp $29, 0($27)
  47962. mov 0, $17
  47963. br $sigsetjmp_local
  47964. @@ -81,11 +85,7 @@
  47965. .align 3;
  47966. .ent setjmp , 0;
  47967. setjmp:
  47968. - .frame $30 , 0, $26
  47969. ldgp $29, 0($27)
  47970. mov 1, $17
  47971. br $sigsetjmp_local
  47972. .end setjmp
  47973. -
  47974. -.weak _setjmp
  47975. -.weak setjmp
  47976. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sigprocmask.c uClibc-git/libc/sysdeps/linux/alpha/sigprocmask.c
  47977. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sigprocmask.c 2012-05-15 09:20:09.000000000 +0200
  47978. +++ uClibc-git/libc/sysdeps/linux/alpha/sigprocmask.c 2014-06-02 17:40:34.262713357 +0200
  47979. @@ -13,9 +13,8 @@
  47980. Lesser General Public License for more details.
  47981. You should have received a copy of the GNU Lesser General Public
  47982. - License along with the GNU C Library; if not, write to the Free
  47983. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47984. - 02111-1307 USA. */
  47985. + License along with the GNU C Library; if not, see
  47986. + <http://www.gnu.org/licenses/>. */
  47987. #include <features.h>
  47988. #include <errno.h>
  47989. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/acct.h uClibc-git/libc/sysdeps/linux/alpha/sys/acct.h
  47990. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/acct.h 2012-05-15 09:20:09.000000000 +0200
  47991. +++ uClibc-git/libc/sysdeps/linux/alpha/sys/acct.h 2014-06-02 17:40:34.262713357 +0200
  47992. @@ -12,9 +12,8 @@
  47993. Lesser General Public License for more details.
  47994. You should have received a copy of the GNU Lesser General Public
  47995. - License along with the GNU C Library; if not, write to the Free
  47996. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  47997. - 02111-1307 USA. */
  47998. + License along with the GNU C Library; if not, see
  47999. + <http://www.gnu.org/licenses/>. */
  48000. #ifndef _SYS_ACCT_H
  48001. @@ -59,7 +58,7 @@
  48002. /* Switch process accounting on and off. */
  48003. -extern int acct (__const char *__filename) __THROW;
  48004. +extern int acct (const char *__filename) __THROW;
  48005. __END_DECLS
  48006. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/io.h uClibc-git/libc/sysdeps/linux/alpha/sys/io.h
  48007. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/io.h 2012-05-15 09:20:09.000000000 +0200
  48008. +++ uClibc-git/libc/sysdeps/linux/alpha/sys/io.h 2014-06-02 17:40:34.262713357 +0200
  48009. @@ -12,9 +12,8 @@
  48010. Lesser General Public License for more details.
  48011. You should have received a copy of the GNU Lesser General Public
  48012. - License along with the GNU C Library; if not, write to the Free
  48013. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  48014. - 02111-1307 USA. */
  48015. + License along with the GNU C Library; if not, see
  48016. + <http://www.gnu.org/licenses/>. */
  48017. #ifndef _SYS_IO_H
  48018. @@ -23,6 +22,7 @@
  48019. __BEGIN_DECLS
  48020. +#if defined __UCLIBC_LINUX_SPECIFIC__
  48021. /* If TURN_ON is TRUE, request for permission to do direct i/o on the
  48022. port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
  48023. permission off for that range. This call requires root privileges.
  48024. @@ -32,12 +32,12 @@
  48025. E.g., Linux/Alpha for Alpha PCs supports this. */
  48026. extern int ioperm (unsigned long int __from, unsigned long int __num,
  48027. int __turn_on) __THROW;
  48028. -libc_hidden_proto(ioperm)
  48029. /* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
  48030. access any I/O port is granted. This call requires root
  48031. privileges. */
  48032. extern int iopl (int __level) __THROW;
  48033. +#endif /* __UCLIBC_LINUX_SPECIFIC__ */
  48034. /* Return the physical address of the DENSE I/O memory or NULL if none
  48035. is available (e.g. on a jensen). */
  48036. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/procfs.h uClibc-git/libc/sysdeps/linux/alpha/sys/procfs.h
  48037. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  48038. +++ uClibc-git/libc/sysdeps/linux/alpha/sys/procfs.h 2014-06-02 17:40:34.262713357 +0200
  48039. @@ -12,9 +12,8 @@
  48040. Lesser General Public License for more details.
  48041. You should have received a copy of the GNU Lesser General Public
  48042. - License along with the GNU C Library; if not, write to the Free
  48043. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  48044. - 02111-1307 USA. */
  48045. + License along with the GNU C Library; if not, see
  48046. + <http://www.gnu.org/licenses/>. */
  48047. #ifndef _SYS_PROCFS_H
  48048. #define _SYS_PROCFS_H 1
  48049. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/ucontext.h uClibc-git/libc/sysdeps/linux/alpha/sys/ucontext.h
  48050. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  48051. +++ uClibc-git/libc/sysdeps/linux/alpha/sys/ucontext.h 2014-06-02 17:40:34.262713357 +0200
  48052. @@ -12,9 +12,8 @@
  48053. Lesser General Public License for more details.
  48054. You should have received a copy of the GNU Lesser General Public
  48055. - License along with the GNU C Library; if not, write to the Free
  48056. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  48057. - 02111-1307 USA. */
  48058. + License along with the GNU C Library; if not, see
  48059. + <http://www.gnu.org/licenses/>. */
  48060. #ifndef _SYS_UCONTEXT_H
  48061. #define _SYS_UCONTEXT_H 1
  48062. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/user.h uClibc-git/libc/sysdeps/linux/alpha/sys/user.h
  48063. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  48064. +++ uClibc-git/libc/sysdeps/linux/alpha/sys/user.h 2014-06-02 17:40:34.262713357 +0200
  48065. @@ -12,9 +12,8 @@
  48066. Lesser General Public License for more details.
  48067. You should have received a copy of the GNU Lesser General Public
  48068. - License along with the GNU C Library; if not, write to the Free
  48069. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  48070. - 02111-1307 USA. */
  48071. + License along with the GNU C Library; if not, see
  48072. + <http://www.gnu.org/licenses/>. */
  48073. #ifndef _SYS_USER_H
  48074. #define _SYS_USER_H 1
  48075. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/__syscall_rt_sigaction.S uClibc-git/libc/sysdeps/linux/alpha/__syscall_rt_sigaction.S
  48076. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/__syscall_rt_sigaction.S 2012-05-15 09:20:09.000000000 +0200
  48077. +++ uClibc-git/libc/sysdeps/linux/alpha/__syscall_rt_sigaction.S 2014-06-02 17:40:34.258713336 +0200
  48078. @@ -13,9 +13,8 @@
  48079. Lesser General Public License for more details.
  48080. You should have received a copy of the GNU Lesser General Public
  48081. - License along with the GNU C Library; if not, write to the Free
  48082. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  48083. - 02111-1307 USA. */
  48084. + License along with the GNU C Library; if not, see
  48085. + <http://www.gnu.org/licenses/>. */
  48086. #include <features.h>
  48087. #include <sys/syscall.h>
  48088. @@ -31,6 +30,9 @@
  48089. .text
  48090. .globl __syscall_rt_sigaction
  48091. +#ifndef __UCLIBC_HAS_THREADS_NATIVE__
  48092. +.hidden __syscall_rt_sigaction
  48093. +#endif
  48094. .align 4
  48095. .ent __syscall_rt_sigaction, 0
  48096. __syscall_rt_sigaction:
  48097. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/alpha/syscall.S uClibc-git/libc/sysdeps/linux/alpha/syscall.S
  48098. --- uClibc-0.9.33.2/libc/sysdeps/linux/alpha/syscall.S 2012-05-15 09:20:09.000000000 +0200
  48099. +++ uClibc-git/libc/sysdeps/linux/alpha/syscall.S 2014-06-02 17:40:34.262713357 +0200
  48100. @@ -13,9 +13,8 @@
  48101. Lesser General Public License for more details.
  48102. You should have received a copy of the GNU Lesser General Public
  48103. - License along with the GNU C Library; if not, write to the Free
  48104. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  48105. - 02111-1307 USA. */
  48106. + License along with the GNU C Library; if not, see
  48107. + <http://www.gnu.org/licenses/>. */
  48108. #include <features.h>
  48109. #include <sys/regdef.h>
  48110. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/byteswap.h uClibc-git/libc/sysdeps/linux/arc/bits/byteswap.h
  48111. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/byteswap.h 1970-01-01 01:00:00.000000000 +0100
  48112. +++ uClibc-git/libc/sysdeps/linux/arc/bits/byteswap.h 2014-06-02 17:40:34.266713379 +0200
  48113. @@ -0,0 +1,23 @@
  48114. +/*
  48115. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48116. + *
  48117. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48118. + *
  48119. + */
  48120. +
  48121. +#ifndef _ASM_BITS_BYTESWAP_H
  48122. +#define _ASM_BITS_BYTESWAP_H 1
  48123. +
  48124. +#ifdef __Xswape /* gcc defined if -mswape is enabled */
  48125. +
  48126. +#define __bswap_non_constant_32(x) \
  48127. + __extension__ \
  48128. + ({ unsigned int __bswap_32_v = x; \
  48129. + __asm__ ("swape %0, %0" : "+r" (__bswap_32_v)); \
  48130. + __bswap_32_v; })
  48131. +
  48132. +#endif /* __Xswape */
  48133. +
  48134. +#endif /* _ASM_BITS_BYTESWAP_H */
  48135. +
  48136. +#include <bits/byteswap-common.h>
  48137. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/endian.h uClibc-git/libc/sysdeps/linux/arc/bits/endian.h
  48138. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/endian.h 1970-01-01 01:00:00.000000000 +0100
  48139. +++ uClibc-git/libc/sysdeps/linux/arc/bits/endian.h 2014-06-02 17:40:34.266713379 +0200
  48140. @@ -0,0 +1,15 @@
  48141. +/*
  48142. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48143. + *
  48144. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48145. + */
  48146. +#ifndef _ENDIAN_H
  48147. +# error "Never use <bits/endian.h> directly; include <endian.h> instead."
  48148. +#endif
  48149. +
  48150. +/* ARC support either endianness. */
  48151. +#ifdef __BIG_ENDIAN__
  48152. +#define __BYTE_ORDER __BIG_ENDIAN
  48153. +#else
  48154. +#define __BYTE_ORDER __LITTLE_ENDIAN
  48155. +#endif
  48156. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/fcntl.h uClibc-git/libc/sysdeps/linux/arc/bits/fcntl.h
  48157. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/fcntl.h 1970-01-01 01:00:00.000000000 +0100
  48158. +++ uClibc-git/libc/sysdeps/linux/arc/bits/fcntl.h 2014-06-02 17:40:34.266713379 +0200
  48159. @@ -0,0 +1,223 @@
  48160. +/* O_*, F_*, FD_* bit values for Linux.
  48161. + *
  48162. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48163. + *
  48164. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48165. + */
  48166. +#ifndef _FCNTL_H
  48167. +# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  48168. +#endif
  48169. +
  48170. +
  48171. +#include <sys/types.h>
  48172. +#ifdef __USE_GNU
  48173. +# include <bits/uio.h>
  48174. +#endif
  48175. +
  48176. +/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
  48177. + located on an ext2 file system */
  48178. +#define O_ACCMODE 0003
  48179. +#define O_RDONLY 00
  48180. +#define O_WRONLY 01
  48181. +#define O_RDWR 02
  48182. +#define O_CREAT 0100 /* not fcntl */
  48183. +#define O_EXCL 0200 /* not fcntl */
  48184. +#define O_NOCTTY 0400 /* not fcntl */
  48185. +#define O_TRUNC 01000 /* not fcntl */
  48186. +#define O_APPEND 02000
  48187. +#define O_NONBLOCK 04000
  48188. +#define O_NDELAY O_NONBLOCK
  48189. +#define O_SYNC 010000
  48190. +#define O_FSYNC O_SYNC
  48191. +#define O_ASYNC 020000
  48192. +
  48193. +#ifdef __USE_GNU
  48194. +# define O_DIRECT 040000 /* Direct disk access. */
  48195. +# define O_DIRECTORY 0200000 /* Must be a directory. */
  48196. +# define O_NOFOLLOW 0400000 /* Do not follow links. */
  48197. +# define O_NOATIME 01000000 /* Do not set atime. */
  48198. +# define O_CLOEXEC 02000000 /* Set close_on_exec. */
  48199. +#endif
  48200. +
  48201. +#ifdef __USE_LARGEFILE64
  48202. +# define O_LARGEFILE 0100000
  48203. +#endif
  48204. +
  48205. +/* For now Linux has synchronisity options for data and read operations.
  48206. + We define the symbols here but let them do the same as O_SYNC since
  48207. + this is a superset. */
  48208. +#if defined __USE_POSIX199309 || defined __USE_UNIX98
  48209. +# define O_DSYNC O_SYNC /* Synchronize data. */
  48210. +# define O_RSYNC O_SYNC /* Synchronize read operations. */
  48211. +#endif
  48212. +
  48213. +/* Values for the second argument to `fcntl'. */
  48214. +#define F_DUPFD 0 /* Duplicate file descriptor. */
  48215. +#define F_GETFD 1 /* Get file descriptor flags. */
  48216. +#define F_SETFD 2 /* Set file descriptor flags. */
  48217. +#define F_GETFL 3 /* Get file status flags. */
  48218. +#define F_SETFL 4 /* Set file status flags. */
  48219. +
  48220. +#ifndef __USE_FILE_OFFSET64
  48221. +# define F_GETLK 5 /* Get record locking info. */
  48222. +# define F_SETLK 6 /* Set record locking info (non-blocking). */
  48223. +# define F_SETLKW 7 /* Set record locking info (blocking). */
  48224. +#else
  48225. +# define F_GETLK F_GETLK64 /* Get record locking info. */
  48226. +# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/
  48227. +# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */
  48228. +#endif
  48229. +#define F_GETLK64 12 /* Get record locking info. */
  48230. +#define F_SETLK64 13 /* Set record locking info (non-blocking). */
  48231. +#define F_SETLKW64 14 /* Set record locking info (blocking). */
  48232. +
  48233. +#if defined __USE_BSD || defined __USE_XOPEN2K
  48234. +# define F_SETOWN 8 /* Get owner of socket (receiver of SIGIO). */
  48235. +# define F_GETOWN 9 /* Set owner of socket (receiver of SIGIO). */
  48236. +#endif
  48237. +
  48238. +#ifdef __USE_GNU
  48239. +# define F_SETSIG 10 /* Set number of signal to be sent. */
  48240. +# define F_GETSIG 11 /* Get number of signal to be sent. */
  48241. +#endif
  48242. +
  48243. +#ifdef __USE_GNU
  48244. +# define F_SETLEASE 1024 /* Set a lease. */
  48245. +# define F_GETLEASE 1025 /* Enquire what lease is active. */
  48246. +# define F_NOTIFY 1026 /* Request notfications on a directory. */
  48247. +# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with
  48248. + close-on-exit set on new fd. */
  48249. +#endif
  48250. +
  48251. +/* For F_[GET|SET]FL. */
  48252. +#define FD_CLOEXEC 1 /* actually anything with low bit set goes */
  48253. +
  48254. +/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */
  48255. +#define F_RDLCK 0 /* Read lock. */
  48256. +#define F_WRLCK 1 /* Write lock. */
  48257. +#define F_UNLCK 2 /* Remove lock. */
  48258. +
  48259. +/* For old implementation of bsd flock(). */
  48260. +#define F_EXLCK 4 /* or 3 */
  48261. +#define F_SHLCK 8 /* or 4 */
  48262. +
  48263. +#ifdef __USE_BSD
  48264. +/* Operations for bsd flock(), also used by the kernel implementation. */
  48265. +# define LOCK_SH 1 /* shared lock */
  48266. +# define LOCK_EX 2 /* exclusive lock */
  48267. +# define LOCK_NB 4 /* or'd with one of the above to prevent
  48268. + blocking */
  48269. +# define LOCK_UN 8 /* remove lock */
  48270. +#endif
  48271. +
  48272. +#ifdef __USE_GNU
  48273. +# define LOCK_MAND 32 /* This is a mandatory flock: */
  48274. +# define LOCK_READ 64 /* ... which allows concurrent read operations. */
  48275. +# define LOCK_WRITE 128 /* ... which allows concurrent write operations. */
  48276. +# define LOCK_RW 192 /* ... Which allows concurrent read & write operations. */
  48277. +#endif
  48278. +
  48279. +#ifdef __USE_GNU
  48280. +/* Types of directory notifications that may be requested with F_NOTIFY. */
  48281. +# define DN_ACCESS 0x00000001 /* File accessed. */
  48282. +# define DN_MODIFY 0x00000002 /* File modified. */
  48283. +# define DN_CREATE 0x00000004 /* File created. */
  48284. +# define DN_DELETE 0x00000008 /* File removed. */
  48285. +# define DN_RENAME 0x00000010 /* File renamed. */
  48286. +# define DN_ATTRIB 0x00000020 /* File changed attibutes. */
  48287. +# define DN_MULTISHOT 0x80000000 /* Don't remove notifier. */
  48288. +#endif
  48289. +
  48290. +struct flock
  48291. + {
  48292. + short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
  48293. + short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
  48294. +#ifndef __USE_FILE_OFFSET64
  48295. + __off_t l_start; /* Offset where the lock begins. */
  48296. + __off_t l_len; /* Size of the locked area; zero means until EOF. */
  48297. +#else
  48298. + __off64_t l_start; /* Offset where the lock begins. */
  48299. + __off64_t l_len; /* Size of the locked area; zero means until EOF. */
  48300. +#endif
  48301. + __pid_t l_pid; /* Process holding the lock. */
  48302. + };
  48303. +
  48304. +#ifdef __USE_LARGEFILE64
  48305. +struct flock64
  48306. + {
  48307. + short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
  48308. + short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
  48309. + __off64_t l_start; /* Offset where the lock begins. */
  48310. + __off64_t l_len; /* Size of the locked area; zero means until EOF. */
  48311. + __pid_t l_pid; /* Process holding the lock. */
  48312. + };
  48313. +#endif
  48314. +
  48315. +/* Define some more compatibility macros to be backward compatible with
  48316. + BSD systems which did not managed to hide these kernel macros. */
  48317. +#ifdef __USE_BSD
  48318. +# define FAPPEND O_APPEND
  48319. +# define FFSYNC O_FSYNC
  48320. +# define FASYNC O_ASYNC
  48321. +# define FNONBLOCK O_NONBLOCK
  48322. +# define FNDELAY O_NDELAY
  48323. +#endif /* Use BSD. */
  48324. +
  48325. +/* Advise to `posix_fadvise'. */
  48326. +#ifdef __USE_XOPEN2K
  48327. +# define POSIX_FADV_NORMAL 0 /* No further special treatment. */
  48328. +# define POSIX_FADV_RANDOM 1 /* Expect random page references. */
  48329. +# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */
  48330. +# define POSIX_FADV_WILLNEED 3 /* Will need these pages. */
  48331. +# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
  48332. +# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
  48333. +#endif
  48334. +
  48335. +#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
  48336. +/* Flags for SYNC_FILE_RANGE. */
  48337. +# define SYNC_FILE_RANGE_WAIT_BEFORE 1 /* Wait upon writeout of all pages
  48338. + in the range before performing the
  48339. + write. */
  48340. +# define SYNC_FILE_RANGE_WRITE 2 /* Initiate writeout of all those
  48341. + dirty pages in the range which are
  48342. + not presently under writeback. */
  48343. +# define SYNC_FILE_RANGE_WAIT_AFTER 4 /* Wait upon writeout of all pages in
  48344. + the range after performing the
  48345. + write. */
  48346. +
  48347. +/* Flags for SPLICE and VMSPLICE. */
  48348. +# define SPLICE_F_MOVE 1 /* Move pages instead of copying. */
  48349. +# define SPLICE_F_NONBLOCK 2 /* Don't block on the pipe splicing
  48350. + (but we may still block on the fd
  48351. + we splice from/to). */
  48352. +# define SPLICE_F_MORE 4 /* Expect more data. */
  48353. +# define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */
  48354. +#endif
  48355. +
  48356. +__BEGIN_DECLS
  48357. +
  48358. +#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
  48359. +
  48360. +/* Provide kernel hint to read ahead. */
  48361. +extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
  48362. + __THROW;
  48363. +
  48364. +/* Selective file content synch'ing. */
  48365. +extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
  48366. + unsigned int __flags);
  48367. +
  48368. +/* Splice address range into a pipe. */
  48369. +extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
  48370. + size_t __count, unsigned int __flags);
  48371. +
  48372. +/* Splice two files together. */
  48373. +extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
  48374. + __off64_t *__offout, size_t __len,
  48375. + unsigned int __flags);
  48376. +
  48377. +/* In-kernel implementation of tee for pipe buffers. */
  48378. +extern ssize_t tee (int __fdin, int __fdout, size_t __len,
  48379. + unsigned int __flags);
  48380. +
  48381. +#endif
  48382. +__END_DECLS
  48383. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/arc/bits/kernel_types.h
  48384. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/kernel_types.h 1970-01-01 01:00:00.000000000 +0100
  48385. +++ uClibc-git/libc/sysdeps/linux/arc/bits/kernel_types.h 2014-06-02 17:40:34.266713379 +0200
  48386. @@ -0,0 +1,59 @@
  48387. +/*
  48388. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48389. + *
  48390. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48391. + */
  48392. +
  48393. +/* Note that we use the exact same include guard #define names
  48394. + * as asm/posix_types.h. This will avoid gratuitous conflicts
  48395. + * with the posix_types.h kernel header, and will ensure that
  48396. + * our private content, and not the kernel header, will win.
  48397. + * -Erik
  48398. + *
  48399. + * Update: ARC Linux 3.2 ABI change - asm-generic/posix_types.h used now.
  48400. + * for which ARCH wrapper (asm/posix_types.h) is generated, so need to use
  48401. + * the asm-generic file's gaurd.
  48402. + *
  48403. + * Based on asm-generic/stat.h
  48404. + */
  48405. +
  48406. +#ifndef __ASM_GENERIC_POSIX_TYPES_H
  48407. +#define __ASM_GENERIC_POSIX_TYPES_H
  48408. +
  48409. +typedef unsigned long __kernel_dev_t;
  48410. +typedef unsigned long __kernel_ino_t;
  48411. +typedef unsigned int __kernel_mode_t;
  48412. +typedef unsigned int __kernel_nlink_t;
  48413. +typedef long __kernel_off_t;
  48414. +typedef int __kernel_pid_t;
  48415. +typedef int __kernel_ipc_pid_t;
  48416. +typedef unsigned int __kernel_uid_t;
  48417. +typedef unsigned int __kernel_gid_t;
  48418. +typedef unsigned int __kernel_size_t;
  48419. +typedef int __kernel_ssize_t;
  48420. +typedef int __kernel_ptrdiff_t;
  48421. +typedef long __kernel_time_t;
  48422. +typedef long __kernel_suseconds_t;
  48423. +typedef long __kernel_clock_t;
  48424. +typedef int __kernel_daddr_t;
  48425. +typedef char * __kernel_caddr_t;
  48426. +typedef unsigned short __kernel_uid16_t;
  48427. +typedef unsigned short __kernel_gid16_t;
  48428. +typedef __kernel_uid_t __kernel_uid32_t;
  48429. +typedef __kernel_gid_t __kernel_gid32_t;
  48430. +typedef __kernel_uid_t __kernel_old_uid_t;
  48431. +typedef __kernel_gid_t __kernel_old_gid_t;
  48432. +typedef long long __kernel_loff_t;
  48433. +typedef unsigned int __kernel_old_dev_t;
  48434. +typedef long __kernel_long_t;
  48435. +typedef unsigned long __kernel_ulong_t;
  48436. +
  48437. +typedef struct {
  48438. +#ifdef __USE_ALL
  48439. + int val[2];
  48440. +#else
  48441. + int __val[2];
  48442. +#endif
  48443. +} __kernel_fsid_t;
  48444. +
  48445. +#endif /* _ASM_ARC_POSIX_TYPES_H */
  48446. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/setjmp.h uClibc-git/libc/sysdeps/linux/arc/bits/setjmp.h
  48447. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/setjmp.h 1970-01-01 01:00:00.000000000 +0100
  48448. +++ uClibc-git/libc/sysdeps/linux/arc/bits/setjmp.h 2014-06-02 17:40:34.266713379 +0200
  48449. @@ -0,0 +1,16 @@
  48450. +/*
  48451. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48452. + *
  48453. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48454. + */
  48455. +
  48456. +#ifndef _BITS_SETJMP_H
  48457. +#define _BITS_SETJMP_H 1
  48458. +
  48459. +#if !defined _SETJMP_H && !defined _PTHREAD_H
  48460. +# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  48461. +#endif
  48462. +
  48463. +typedef int __jmp_buf[13+1+1+1]; /*r13-r25, fp, sp, blink */
  48464. +
  48465. +#endif
  48466. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/arc/bits/sigcontextinfo.h
  48467. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/sigcontextinfo.h 1970-01-01 01:00:00.000000000 +0100
  48468. +++ uClibc-git/libc/sysdeps/linux/arc/bits/sigcontextinfo.h 2014-06-02 17:40:34.266713379 +0200
  48469. @@ -0,0 +1,15 @@
  48470. +/*
  48471. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48472. + *
  48473. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48474. + */
  48475. +
  48476. +#include <features.h>
  48477. +#define SIGCONTEXT struct sigcontext *
  48478. +#define SIGCONTEXT_EXTRA_ARGS
  48479. +
  48480. +#define GET_PC(ctx) ((void *) ctx->regs.scratch.ret)
  48481. +#define GET_FRAME(ctx) ((void *) ctx->regs.scratch.fp)
  48482. +#define GET_STACK(ctx) ((void *) ctx->regs.scratch.sp)
  48483. +#define CALL_SIGHANDLER(handler, signo, ctx) \
  48484. + (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
  48485. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/arc/bits/stackinfo.h
  48486. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/stackinfo.h 1970-01-01 01:00:00.000000000 +0100
  48487. +++ uClibc-git/libc/sysdeps/linux/arc/bits/stackinfo.h 2014-06-02 17:40:34.266713379 +0200
  48488. @@ -0,0 +1,13 @@
  48489. +/*
  48490. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48491. + *
  48492. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48493. + */
  48494. +
  48495. +#ifndef _STACKINFO_H
  48496. +#define _STACKINFO_H 1
  48497. +
  48498. +/* On ARC, the stack grows down. */
  48499. +#define _STACK_GROWS_DOWN 1
  48500. +
  48501. +#endif /* stackinfo.h */
  48502. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/syscalls.h uClibc-git/libc/sysdeps/linux/arc/bits/syscalls.h
  48503. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/syscalls.h 1970-01-01 01:00:00.000000000 +0100
  48504. +++ uClibc-git/libc/sysdeps/linux/arc/bits/syscalls.h 2014-06-02 17:40:34.266713379 +0200
  48505. @@ -0,0 +1,192 @@
  48506. +/*
  48507. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48508. + *
  48509. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48510. + *
  48511. + */
  48512. +#ifndef _BITS_SYSCALLS_H
  48513. +#define _BITS_SYSCALLS_H
  48514. +#ifndef _SYSCALL_H
  48515. +#error "Never use <bits/syscalls.h> directly; include <sys/syscall.h> instead."
  48516. +#endif
  48517. +
  48518. +#ifndef __ASSEMBLER__
  48519. +
  48520. +#include <errno.h>
  48521. +
  48522. +/*
  48523. + * Fine tuned code for errno handling in syscall wrappers.
  48524. + *
  48525. + * 1. __syscall_error(raw_syscall_ret_val) is used to set the errno (vs.
  48526. + * the typical __set_errno). This helps elide the generated code for
  48527. + * GOT fetch for __errno_location pointer etc, in each wrapper.
  48528. + *
  48529. + * 2. The call to above is also disguised in inline asm. This elides
  48530. + * unconditional save/restore of a few callee regs which gcc almost
  48531. + * always generates if the call is exposed
  48532. + *
  48533. + * 3. The function can't be hidden because wrappers from librt et all also
  48534. + * call it. However hidden is not really needed to bypass PLT for
  48535. + * intra-libc calls as the branch insn w/o @plt is sufficient.
  48536. + */
  48537. +
  48538. +#ifdef IS_IN_rtld
  48539. +/* ldso doesn't have real errno */
  48540. +#define ERRNO_ERRANDS(_sys_result)
  48541. +#else /* !IS_IN_rtld */
  48542. +extern int __syscall_error (int);
  48543. +#ifndef IS_IN_libc
  48544. +/* Inter-libc callers use PLT */
  48545. +#define CALL_ERRNO_SETTER "bl __syscall_error@plt \n\t"
  48546. +#else
  48547. +/* intra-libc callers, despite PIC can bypass PLT */
  48548. +#define CALL_ERRNO_SETTER "bl __syscall_error \n\t"
  48549. +#endif
  48550. +
  48551. +#define ERRNO_ERRANDS(_sys_result) \
  48552. + __asm__ volatile ( \
  48553. + "st.a blink, [sp, -4] \n\t" \
  48554. + CALL_ERRNO_SETTER \
  48555. + "ld.ab blink, [sp, 4] \n\t" \
  48556. + :"+r" (_sys_result) \
  48557. + : \
  48558. + :"r1","r2","r3","r4","r5","r6", \
  48559. + "r7","r8","r9","r10","r11","r12" \
  48560. + );
  48561. +
  48562. +#endif /* IS_IN_rtld */
  48563. +
  48564. +/* Invoke the syscall and return unprocessed kernel status */
  48565. +#define INTERNAL_SYSCALL(nm, err, nr, args...) \
  48566. + INTERNAL_SYSCALL_NCS(SYS_ify (nm), err, nr, args)
  48567. +
  48568. +/* -1 to -1023 as valid error values will suffice for some time */
  48569. +#define INTERNAL_SYSCALL_ERROR_P(val, err) \
  48570. + ((unsigned int) (val) > (unsigned int) -1024)
  48571. +
  48572. +/*
  48573. + * Standard sycall wrapper:
  48574. + * -"const" syscall number @nm, sets errno, return success/error-codes
  48575. + */
  48576. +#define INLINE_SYSCALL(nm, nr_args, args...) \
  48577. +({ \
  48578. + register int __res __asm__("r0"); \
  48579. + __res = INTERNAL_SYSCALL(nm, , nr_args, args); \
  48580. + if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P ((__res), ), 0)) \
  48581. + { \
  48582. + ERRNO_ERRANDS(__res); \
  48583. + } \
  48584. + __res; \
  48585. +})
  48586. +
  48587. +/* Non const syscall number @nm
  48588. + * Ideally this could be folded within INLINE_SYSCALL with
  48589. + * __builtin_constant_p in INTERNAL_SYSCALL but that fails for syscall.c
  48590. + */
  48591. +#define INLINE_SYSCALL_NCS(nm, nr_args, args...) \
  48592. +({ \
  48593. + register int __res __asm__("r0"); \
  48594. + __res = INTERNAL_SYSCALL_NCS(nm, , nr_args, args); \
  48595. + if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P ((__res), ), 0)) \
  48596. + { \
  48597. + ERRNO_ERRANDS(__res); \
  48598. + } \
  48599. + __res; \
  48600. +})
  48601. +
  48602. +#define INLINE_SYSCALL_NOERR(name, nr, args...) \
  48603. + ({ unsigned int _inline_sys_result = INTERNAL_SYSCALL (name, , nr, args);\
  48604. + (int) _inline_sys_result; })
  48605. +
  48606. +/*-------------------------------------------------------------------------
  48607. + * Mechanics of Trap - specific to ARC700
  48608. + *
  48609. + * Note the memory clobber is not strictly needed for intended semantics of
  48610. + * the inline asm. However some of the cases, such as old-style 6 arg mmap
  48611. + * gcc was generating code for inline syscall ahead of buffer packing needed
  48612. + * for syscall itself.
  48613. + *-------------------------------------------------------------------------*/
  48614. +
  48615. +#define ARC_TRAP_INSN "trap0 \n\t"
  48616. +
  48617. +#define INTERNAL_SYSCALL_NCS(nm, err, nr_args, args...) \
  48618. +({ \
  48619. + /* Per ABI, r0 is 1st arg and return reg */ \
  48620. + register int __ret __asm__("r0"); \
  48621. + register int _sys_num __asm__("r8"); \
  48622. + \
  48623. + LOAD_ARGS_##nr_args (nm, args) \
  48624. + \
  48625. + __asm__ volatile ( \
  48626. + ARC_TRAP_INSN \
  48627. + : "+r" (__ret) \
  48628. + : "r"(_sys_num) ASM_ARGS_##nr_args \
  48629. + : "memory"); \
  48630. + \
  48631. + __ret; \
  48632. +})
  48633. +
  48634. +/* Macros for setting up inline __asm__ input regs */
  48635. +#define ASM_ARGS_0
  48636. +#define ASM_ARGS_1 ASM_ARGS_0, "r" (__ret)
  48637. +#define ASM_ARGS_2 ASM_ARGS_1, "r" (_arg2)
  48638. +#define ASM_ARGS_3 ASM_ARGS_2, "r" (_arg3)
  48639. +#define ASM_ARGS_4 ASM_ARGS_3, "r" (_arg4)
  48640. +#define ASM_ARGS_5 ASM_ARGS_4, "r" (_arg5)
  48641. +#define ASM_ARGS_6 ASM_ARGS_5, "r" (_arg6)
  48642. +#define ASM_ARGS_7 ASM_ARGS_6, "r" (_arg7)
  48643. +
  48644. +/* Macros for converting sys-call wrapper args into sys call args */
  48645. +#define LOAD_ARGS_0(nm, arg) \
  48646. + _sys_num = (int) (nm); \
  48647. +
  48648. +#define LOAD_ARGS_1(nm, arg1) \
  48649. + __ret = (int) (arg1); \
  48650. + LOAD_ARGS_0 (nm, arg1)
  48651. +
  48652. +/*
  48653. + * Note that the use of _tmpX might look superflous, however it is needed
  48654. + * to ensure that register variables are not clobbered if arg happens to be
  48655. + * a function call itself. e.g. sched_setaffinity() calling getpid() for arg2
  48656. + *
  48657. + * Also this specific order of recursive calling is important to segregate
  48658. + * the tmp args evaluation (function call case described above) and assigment
  48659. + * of register variables
  48660. + */
  48661. +#define LOAD_ARGS_2(nm, arg1, arg2) \
  48662. + int _tmp2 = (int) (arg2); \
  48663. + LOAD_ARGS_1 (nm, arg1) \
  48664. + register int _arg2 __asm__ ("r1") = _tmp2;
  48665. +
  48666. +#define LOAD_ARGS_3(nm, arg1, arg2, arg3) \
  48667. + int _tmp3 = (int) (arg3); \
  48668. + LOAD_ARGS_2 (nm, arg1, arg2) \
  48669. + register int _arg3 __asm__ ("r2") = _tmp3;
  48670. +
  48671. +#define LOAD_ARGS_4(nm, arg1, arg2, arg3, arg4) \
  48672. + int _tmp4 = (int) (arg4); \
  48673. + LOAD_ARGS_3 (nm, arg1, arg2, arg3) \
  48674. + register int _arg4 __asm__ ("r3") = _tmp4;
  48675. +
  48676. +#define LOAD_ARGS_5(nm, arg1, arg2, arg3, arg4, arg5) \
  48677. + int _tmp5 = (int) (arg5); \
  48678. + LOAD_ARGS_4 (nm, arg1, arg2, arg3, arg4) \
  48679. + register int _arg5 __asm__ ("r4") = _tmp5;
  48680. +
  48681. +#define LOAD_ARGS_6(nm, arg1, arg2, arg3, arg4, arg5, arg6) \
  48682. + int _tmp6 = (int) (arg6); \
  48683. + LOAD_ARGS_5 (nm, arg1, arg2, arg3, arg4, arg5) \
  48684. + register int _arg6 __asm__ ("r5") = _tmp6;
  48685. +
  48686. +#define LOAD_ARGS_7(nm, arg1, arg2, arg3, arg4, arg5, arg6, arg7)\
  48687. + int _tmp7 = (int) (arg7); \
  48688. + LOAD_ARGS_6 (nm, arg1, arg2, arg3, arg4, arg5, arg6) \
  48689. + register int _arg7 __asm__ ("r6") = _tmp7;
  48690. +
  48691. +#else
  48692. +
  48693. +#define ARC_TRAP_INSN trap0
  48694. +
  48695. +#endif /* __ASSEMBLER__ */
  48696. +
  48697. +#endif /* _BITS_SYSCALLS_H */
  48698. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h
  48699. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h 1970-01-01 01:00:00.000000000 +0100
  48700. +++ uClibc-git/libc/sysdeps/linux/arc/bits/uClibc_arch_features.h 2014-06-02 17:40:34.266713379 +0200
  48701. @@ -0,0 +1,53 @@
  48702. +/*
  48703. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48704. + *
  48705. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48706. + */
  48707. +
  48708. +/*
  48709. + * Track misc arch-specific features that aren't config options
  48710. + */
  48711. +
  48712. +#ifndef _BITS_UCLIBC_ARCH_FEATURES_H
  48713. +#define _BITS_UCLIBC_ARCH_FEATURES_H
  48714. +
  48715. +/* instruction used when calling abort() to kill yourself */
  48716. +#define __UCLIBC_ABORT_INSTRUCTION__ "flag 0"
  48717. +
  48718. +/* can your target use syscall6() for mmap ? */
  48719. +#undef __UCLIBC_MMAP_HAS_6_ARGS__
  48720. +
  48721. +/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  48722. +#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  48723. +
  48724. +/* does your target have a broken create_module() ? */
  48725. +#undef __UCLIBC_BROKEN_CREATE_MODULE__
  48726. +
  48727. +/* does your target have to worry about older [gs]etrlimit() ? */
  48728. +#undef __UCLIBC_HANDLE_OLDER_RLIMIT__
  48729. +
  48730. +/* does your target have an asm .set ? */
  48731. +#define __UCLIBC_HAVE_ASM_SET_DIRECTIVE__
  48732. +
  48733. +/* define if target doesn't like .global */
  48734. +#undef __UCLIBC_ASM_GLOBAL_DIRECTIVE__
  48735. +
  48736. +/* define if target supports .weak */
  48737. +#define __UCLIBC_HAVE_ASM_WEAK_DIRECTIVE__
  48738. +
  48739. +/* define if target supports .weakext */
  48740. +#undef __UCLIBC_HAVE_ASM_WEAKEXT_DIRECTIVE__
  48741. +
  48742. +/* needed probably only for ppc64 */
  48743. +#undef __UCLIBC_HAVE_ASM_GLOBAL_DOT_NAME__
  48744. +
  48745. +/* define if target supports CFI pseudo ops */
  48746. +#undef __UCLIBC_HAVE_ASM_CFI_DIRECTIVES__
  48747. +
  48748. +/* define if target supports IEEE signed zero floats */
  48749. +#define __UCLIBC_HAVE_SIGNED_ZERO__
  48750. +
  48751. +/* The default ';' is a comment on ARC. */
  48752. +#define __UCLIBC_ASM_LINE_SEP__ `
  48753. +
  48754. +#endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
  48755. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/arc/bits/uClibc_page.h
  48756. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/uClibc_page.h 1970-01-01 01:00:00.000000000 +0100
  48757. +++ uClibc-git/libc/sysdeps/linux/arc/bits/uClibc_page.h 2014-06-02 17:40:34.266713379 +0200
  48758. @@ -0,0 +1,26 @@
  48759. +/*
  48760. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48761. + *
  48762. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48763. + */
  48764. +
  48765. +#ifndef _UCLIBC_PAGE_H
  48766. +#define _UCLIBC_PAGE_H
  48767. +
  48768. +/*
  48769. + * ARC700/linux supports 4k, 8k, 16k pages (build time).
  48770. + * We rely on the kernel exported header (aka uapi headers since 3.8)
  48771. + * for PAGE_SIZE and friends. This avoids hand-editing here when building
  48772. + * toolchain.
  48773. + *
  48774. + * Although uClibc determines page size dynamically, from kernel's auxv which
  48775. + * ARC Linux does pass, still the generic code needs a fall back
  48776. + * _dl_pagesize = auxvt[AT_PAGESZ].a_un.a_val ? : PAGE_SIZE
  48777. + *
  48778. + */
  48779. +#include <asm/page.h>
  48780. +
  48781. +/* TBD: fix this with runtime value for a PAGE_SIZE agnostic uClibc */
  48782. +#define MMAP2_PAGE_SHIFT PAGE_SHIFT
  48783. +
  48784. +#endif /* _UCLIBC_PAGE_H */
  48785. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/wordsize.h uClibc-git/libc/sysdeps/linux/arc/bits/wordsize.h
  48786. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bits/wordsize.h 1970-01-01 01:00:00.000000000 +0100
  48787. +++ uClibc-git/libc/sysdeps/linux/arc/bits/wordsize.h 2014-06-02 17:40:34.266713379 +0200
  48788. @@ -0,0 +1,7 @@
  48789. +/*
  48790. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48791. + *
  48792. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48793. + */
  48794. +
  48795. +#define __WORDSIZE 32
  48796. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/arc/bsd-setjmp.S
  48797. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bsd-setjmp.S 1970-01-01 01:00:00.000000000 +0100
  48798. +++ uClibc-git/libc/sysdeps/linux/arc/bsd-setjmp.S 2014-06-02 17:40:34.266713379 +0200
  48799. @@ -0,0 +1,20 @@
  48800. +/* BSD `setjmp' entry point to `sigsetjmp (..., 1)'. ARC version.
  48801. + *
  48802. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48803. + *
  48804. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48805. + */
  48806. +
  48807. +/* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
  48808. + We cannot do it in C because it must be a tail-call, so frame-unwinding
  48809. + in setjmp doesn't clobber the state restored by longjmp. */
  48810. +
  48811. +#include <sysdep.h>
  48812. +
  48813. +;@ r0 = jump buffer into which regs will be saved
  48814. +
  48815. +ENTRY(setjmp)
  48816. + b.d __sigsetjmp
  48817. + mov r1, 1 ; save signals
  48818. +END(setjmp)
  48819. +libc_hidden_def(setjmp)
  48820. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/arc/bsd-_setjmp.S
  48821. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/bsd-_setjmp.S 1970-01-01 01:00:00.000000000 +0100
  48822. +++ uClibc-git/libc/sysdeps/linux/arc/bsd-_setjmp.S 2014-06-02 17:40:34.266713379 +0200
  48823. @@ -0,0 +1,20 @@
  48824. +/* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. ARC version.
  48825. + *
  48826. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48827. + *
  48828. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48829. + */
  48830. +
  48831. +/* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
  48832. + We cannot do it in C because it must be a tail-call, so frame-unwinding
  48833. + in setjmp doesn't clobber the state restored by longjmp. */
  48834. +
  48835. +#include <sysdep.h>
  48836. +
  48837. +;@ r0 = jump buffer into which regs will be saved
  48838. +
  48839. +ENTRY(_setjmp)
  48840. + b.d __sigsetjmp
  48841. + mov r1, 0 ; don't save signals
  48842. +END(_setjmp)
  48843. +libc_hidden_def(_setjmp)
  48844. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/cacheflush.c uClibc-git/libc/sysdeps/linux/arc/cacheflush.c
  48845. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/cacheflush.c 1970-01-01 01:00:00.000000000 +0100
  48846. +++ uClibc-git/libc/sysdeps/linux/arc/cacheflush.c 2014-06-02 17:40:34.266713379 +0200
  48847. @@ -0,0 +1,11 @@
  48848. +/* cacheflush syscall for ARC
  48849. + *
  48850. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48851. + *
  48852. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48853. + */
  48854. +
  48855. +#include <sys/syscall.h>
  48856. +#include <sys/cachectl.h>
  48857. +
  48858. +_syscall3(int, cacheflush, void *, addr, int, nbytes, int, op)
  48859. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/clone.S uClibc-git/libc/sysdeps/linux/arc/clone.S
  48860. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/clone.S 1970-01-01 01:00:00.000000000 +0100
  48861. +++ uClibc-git/libc/sysdeps/linux/arc/clone.S 2014-06-02 17:40:34.266713379 +0200
  48862. @@ -0,0 +1,71 @@
  48863. +/*
  48864. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48865. + *
  48866. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48867. + */
  48868. +
  48869. +#include <asm/errno.h>
  48870. +#include <sys/syscall.h>
  48871. +#include <sysdep.h>
  48872. +
  48873. +; Per man, libc clone( ) is as follows
  48874. +;
  48875. +; int clone(int (*fn)(void *), void *child_stack,
  48876. +; int flags, void *arg, ...
  48877. +; /* pid_t *ptid, struct user_desc *tls, pid_t *ctid */);
  48878. +;
  48879. +; NOTE: I'm assuming that the last 3 args are NOT var-args and in case all
  48880. +; 3 are not relevant, caller will nevertheless pass those as NULL.
  48881. +; Current (Jul 2012) upstream powerpc/clone.S assumes similarly.
  48882. +; Our LTP (from 2007) doesn't seem to have tests to prove otherwise
  48883. +
  48884. +; clone syscall in kernel
  48885. +;
  48886. +; int sys_clone(unsigned long clone_flags, unsigned long newsp,
  48887. +; int __user *parent_tidptr, void *tls,
  48888. +; int __user *child_tidptr)
  48889. +
  48890. +
  48891. +ENTRY(clone)
  48892. + cmp r0, 0 ; @fn can't be NULL
  48893. + cmp.ne r1, 0 ; @child_stack can't be NULL
  48894. + bz .L__sys_err
  48895. +
  48896. + ; @fn and @args needed after the syscall for child
  48897. + ; However r3 containing @arg will be clobbered BEFORE syscall
  48898. + ; r0 containg @fn will be clobbered AFTER syscall (with ret val)
  48899. + mov r10, r0
  48900. + mov r11, r3
  48901. +
  48902. + ; adjust libc args for syscall
  48903. + mov r0, r2 ; libc @flags is 1st syscall arg
  48904. + mov r2, r4 ; libc @ptid
  48905. + mov r3, r5 ; libc @tls
  48906. + mov r4, r6 ; libc @ctid
  48907. + mov r8, __NR_clone
  48908. + ARC_TRAP_INSN
  48909. +
  48910. + cmp r0, 0 ; return code : 0 new process, !0 parent
  48911. + blt .L__sys_err2 ; < 0 (signed) error
  48912. + jnz [blink] ; Parent returns
  48913. +
  48914. + ; child jumps off to @fn with @arg as argument
  48915. + j.d [r10]
  48916. + mov r0, r11
  48917. +
  48918. + ; falls thru to _exit() with result from @fn (already in r0)
  48919. + b HIDDEN_JUMPTARGET(_exit)
  48920. +
  48921. +.L__sys_err:
  48922. + mov r0, -EINVAL
  48923. +.L__sys_err2:
  48924. + ; (1) No need to make -ve kernel error code as positive errno
  48925. + ; __syscall_error expects the -ve error code returned by kernel
  48926. + ; (2) r0 still had orig -ve kernel error code
  48927. + ; (3) Tail call to __syscall_error so we dont have to come back
  48928. + ; here hence instead of jmp-n-link (reg push/pop) we do jmp
  48929. + ; (4) No need to route __syscall_error via PLT, B is inherently
  48930. + ; position independent
  48931. + b __syscall_error
  48932. +END(clone)
  48933. +libc_hidden_def(clone)
  48934. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/crt1.S uClibc-git/libc/sysdeps/linux/arc/crt1.S
  48935. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/crt1.S 1970-01-01 01:00:00.000000000 +0100
  48936. +++ uClibc-git/libc/sysdeps/linux/arc/crt1.S 2014-06-02 17:40:34.266713379 +0200
  48937. @@ -0,0 +1,57 @@
  48938. +/*
  48939. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  48940. + *
  48941. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  48942. + */
  48943. +
  48944. +#include <features.h>
  48945. +
  48946. +.text
  48947. +
  48948. +#ifndef __UCLIBC_CTOR_DTOR__
  48949. + .weak _init
  48950. + .weak _fini
  48951. +#endif
  48952. +
  48953. +/* Stick in a dummy reference to main(), so that if an application
  48954. + * is linking when the main() function is in a static library (.a)
  48955. + * we can be sure that main() actually gets linked in
  48956. + */
  48957. + .type main,@function
  48958. + .type _main,@function
  48959. +
  48960. +
  48961. +/* When we enter this piece of code, the program stack looks like this:
  48962. + argc argument counter (integer)
  48963. + argv[0] program name (pointer)
  48964. + argv[1...N] program args (pointers)
  48965. + argv[argc-1] end of args (integer)
  48966. + NULL
  48967. + env[0...N] environment variables (pointers)
  48968. + NULL
  48969. +*/
  48970. + .text
  48971. + .align 4
  48972. + .global __start
  48973. + .hidden __start
  48974. + .type __start,@function
  48975. +__start:
  48976. + mov fp, 0
  48977. + ld_s r1, [sp] ; argc
  48978. +
  48979. + mov_s r5, r0 ; rltd_fini
  48980. + add_s r2, sp, 4 ; argv
  48981. +
  48982. + mov_s r0, main
  48983. + mov_s r3, _init
  48984. + mov r4, _fini
  48985. +
  48986. + and sp, sp, -8
  48987. + mov r6, sp
  48988. +
  48989. + /* __uClibc_main (main, argc, argv, init, fini, rtld_fini, stack_end) */
  48990. + bl __uClibc_main
  48991. +
  48992. + /* Should never get here.... */
  48993. + flag 1
  48994. +.size __start,.-__start
  48995. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/crti.S uClibc-git/libc/sysdeps/linux/arc/crti.S
  48996. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/crti.S 1970-01-01 01:00:00.000000000 +0100
  48997. +++ uClibc-git/libc/sysdeps/linux/arc/crti.S 2014-06-02 17:40:34.266713379 +0200
  48998. @@ -0,0 +1,27 @@
  48999. +/*
  49000. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49001. + *
  49002. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49003. + */
  49004. +
  49005. +___gnu_compiled_c:
  49006. +
  49007. + .section .init
  49008. + .align 4
  49009. + .global _init
  49010. + .type _init,@function
  49011. +_init:
  49012. + st.a blink,[sp,-4]
  49013. + st.a fp,[sp,-4]
  49014. + mov fp,sp
  49015. +
  49016. +
  49017. + .section .fini
  49018. + .align 4
  49019. + .global _fini
  49020. + .type _fini,@function
  49021. +_fini:
  49022. + st.a blink,[sp,-4]
  49023. + st.a fp,[sp,-4]
  49024. + mov fp,sp
  49025. + .align 4
  49026. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/crtn.S uClibc-git/libc/sysdeps/linux/arc/crtn.S
  49027. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/crtn.S 1970-01-01 01:00:00.000000000 +0100
  49028. +++ uClibc-git/libc/sysdeps/linux/arc/crtn.S 2014-06-02 17:40:34.266713379 +0200
  49029. @@ -0,0 +1,29 @@
  49030. +/*
  49031. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49032. + *
  49033. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49034. + */
  49035. +
  49036. +___gnu_compiled_c:
  49037. +
  49038. + .section .init
  49039. + .align 4
  49040. + .global _init
  49041. + .type _init,@function
  49042. + ; EPILOGUE
  49043. + ld.ab fp,[sp,4]
  49044. + ld blink,[sp,0]
  49045. + j.d [blink]
  49046. + add sp,sp,4
  49047. +; .size _init,.-_init
  49048. +
  49049. + .section .fini
  49050. + .align 4
  49051. + .global _fini
  49052. + .type _fini,@function
  49053. + ; EPILOGUE
  49054. + ld.ab fp,[sp,4]
  49055. + ld blink,[sp,0]
  49056. + j.d [blink]
  49057. + add sp,sp,4
  49058. +; .size _fini,.-_fini
  49059. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/arc/jmpbuf-offsets.h
  49060. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  49061. +++ uClibc-git/libc/sysdeps/linux/arc/jmpbuf-offsets.h 2014-06-02 17:40:34.266713379 +0200
  49062. @@ -0,0 +1,7 @@
  49063. +/*
  49064. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49065. + *
  49066. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49067. + */
  49068. +
  49069. +#define __JMP_BUF_SP (13+1)
  49070. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/arc/jmpbuf-unwind.h
  49071. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  49072. +++ uClibc-git/libc/sysdeps/linux/arc/jmpbuf-unwind.h 2014-06-02 17:40:34.266713379 +0200
  49073. @@ -0,0 +1,13 @@
  49074. +/*
  49075. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49076. + *
  49077. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49078. + */
  49079. +
  49080. +#include <setjmp.h>
  49081. +#include <jmpbuf-offsets.h>
  49082. +
  49083. +/* Test if longjmp to JMPBUF would unwind the frame
  49084. + containing a local variable at ADDRESS. */
  49085. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  49086. + ((void *) (address) < (void *) (jmpbuf[__JMP_BUF_SP]))
  49087. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/__longjmp.S uClibc-git/libc/sysdeps/linux/arc/__longjmp.S
  49088. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/__longjmp.S 1970-01-01 01:00:00.000000000 +0100
  49089. +++ uClibc-git/libc/sysdeps/linux/arc/__longjmp.S 2014-06-02 17:40:34.262713357 +0200
  49090. @@ -0,0 +1,38 @@
  49091. +/*
  49092. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49093. + *
  49094. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49095. + */
  49096. +
  49097. +#include <sysdep.h>
  49098. +
  49099. +;@ r0 = jump buffer from which regs will be restored
  49100. +;@ r1 = value that setjmp( ) will return due to this longjmp
  49101. +
  49102. +ENTRY(__longjmp)
  49103. +
  49104. + ld_s r13, [r0]
  49105. + ld_s r14, [r0,4]
  49106. + ld r15, [r0,8]
  49107. + ld r16, [r0,12]
  49108. + ld r17, [r0,16]
  49109. + ld r18, [r0,20]
  49110. + ld r19, [r0,24]
  49111. + ld r20, [r0,28]
  49112. + ld r21, [r0,32]
  49113. + ld r22, [r0,36]
  49114. + ld r23, [r0,40]
  49115. + ld r24, [r0,44]
  49116. + ld r25, [r0,48]
  49117. +
  49118. + ld blink, [r0,60] ; load it early enough to not stall the pipeline
  49119. + ld fp, [r0,52]
  49120. + ld sp, [r0,56]
  49121. +
  49122. + mov.f r0, r1 ; get the setjmp return value(due to longjmp) in place
  49123. +
  49124. + j.d [blink] ; to caller of setjmp location, right after the call
  49125. + mov.z r0, 1 ; can't let setjmp return 0 when it is due to longjmp
  49126. +
  49127. +END(__longjmp)
  49128. +libc_hidden_def(__longjmp)
  49129. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/Makefile uClibc-git/libc/sysdeps/linux/arc/Makefile
  49130. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/Makefile 1970-01-01 01:00:00.000000000 +0100
  49131. +++ uClibc-git/libc/sysdeps/linux/arc/Makefile 2014-06-02 17:40:34.262713357 +0200
  49132. @@ -0,0 +1,13 @@
  49133. +# Makefile for uClibc
  49134. +#
  49135. +# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
  49136. +#
  49137. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49138. +#
  49139. +
  49140. +top_srcdir=../../../../
  49141. +top_builddir=../../../../
  49142. +all: objs
  49143. +include $(top_builddir)Rules.mak
  49144. +include Makefile.arch
  49145. +include $(top_srcdir)Makerules
  49146. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/Makefile.arch uClibc-git/libc/sysdeps/linux/arc/Makefile.arch
  49147. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/Makefile.arch 1970-01-01 01:00:00.000000000 +0100
  49148. +++ uClibc-git/libc/sysdeps/linux/arc/Makefile.arch 2014-06-02 17:40:34.262713357 +0200
  49149. @@ -0,0 +1,11 @@
  49150. +# Makefile for uClibc
  49151. +#
  49152. +# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
  49153. +#
  49154. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49155. +#
  49156. +
  49157. +CSRC-y := syscall.c sigaction.c __syscall_error.c cacheflush.c
  49158. +
  49159. +SSRC-y := sigrestorer.S __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
  49160. + vfork.S clone.S
  49161. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/setjmp.S uClibc-git/libc/sysdeps/linux/arc/setjmp.S
  49162. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/setjmp.S 1970-01-01 01:00:00.000000000 +0100
  49163. +++ uClibc-git/libc/sysdeps/linux/arc/setjmp.S 2014-06-02 17:40:34.266713379 +0200
  49164. @@ -0,0 +1,39 @@
  49165. +/*
  49166. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49167. + *
  49168. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49169. + */
  49170. +
  49171. +#include <sysdep.h>
  49172. +
  49173. +;@ r0 = jump buffer into which regs will be saved
  49174. +;@ r1 = do we need to save signals
  49175. +
  49176. +ENTRY(__sigsetjmp)
  49177. +
  49178. + st_s r13, [r0]
  49179. + st_s r14, [r0,4]
  49180. + st r15, [r0,8]
  49181. + st r16, [r0,12]
  49182. + st r17, [r0,16]
  49183. + st r18, [r0,20]
  49184. + st r19, [r0,24]
  49185. + st r20, [r0,28]
  49186. + st r21, [r0,32]
  49187. + st r22, [r0,36]
  49188. + st r23, [r0,40]
  49189. + st r24, [r0,44]
  49190. + st r25, [r0,48]
  49191. + st fp, [r0,52]
  49192. + st sp, [r0,56]
  49193. +
  49194. + ; make a note of where longjmp will return to.
  49195. + ; that will be right next to this setjmp call-site which will be
  49196. + ; contained in blink, since "C" caller of this routine will do
  49197. + ; a branch-n-link
  49198. +
  49199. + st blink, [r0,60]
  49200. + b __sigjmp_save
  49201. +
  49202. +END(__sigsetjmp)
  49203. +libc_hidden_def(__sigsetjmp)
  49204. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sigaction.c uClibc-git/libc/sysdeps/linux/arc/sigaction.c
  49205. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sigaction.c 1970-01-01 01:00:00.000000000 +0100
  49206. +++ uClibc-git/libc/sysdeps/linux/arc/sigaction.c 2014-06-02 17:40:34.266713379 +0200
  49207. @@ -0,0 +1,47 @@
  49208. +/*
  49209. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49210. + *
  49211. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49212. + */
  49213. +
  49214. +#include <errno.h>
  49215. +#include <signal.h>
  49216. +#include <string.h>
  49217. +#include <sys/syscall.h>
  49218. +#include <bits/kernel_sigaction.h>
  49219. +
  49220. +extern void __default_rt_sa_restorer(void);
  49221. +//libc_hidden_proto(__default_rt_sa_restorer);
  49222. +
  49223. +#define SA_RESTORER 0x04000000
  49224. +
  49225. +/* If @act is not NULL, change the action for @sig to @act.
  49226. + If @oact is not NULL, put the old action for @sig in @oact. */
  49227. +int
  49228. +__libc_sigaction (int sig, const struct sigaction *act, struct sigaction *oact)
  49229. +{
  49230. + struct sigaction kact;
  49231. +
  49232. + /* !act means caller only wants to know @oact
  49233. + * Hence only otherwise, do SA_RESTORER stuff
  49234. + *
  49235. + * For the normal/default cases (user not providing SA_RESTORER) use
  49236. + * a real sigreturn stub to avoid kernel synthesizing one on user stack
  49237. + * at runtime, which needs PTE permissions update (hence TLB entry
  49238. + * update) and costly cache line flushes for code modification
  49239. + */
  49240. + if (act && !(act->sa_flags & SA_RESTORER)) {
  49241. + memcpy(&kact, act, sizeof(kact));
  49242. + kact.sa_restorer = __default_rt_sa_restorer;
  49243. + kact.sa_flags |= SA_RESTORER;
  49244. +
  49245. + act = &kact;
  49246. + }
  49247. +
  49248. + return __syscall_rt_sigaction(sig, act, oact, sizeof(act->sa_mask));
  49249. +}
  49250. +
  49251. +#ifndef LIBC_SIGACTION
  49252. +weak_alias(__libc_sigaction,sigaction)
  49253. +libc_hidden_weak(sigaction)
  49254. +#endif
  49255. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sigrestorer.S uClibc-git/libc/sysdeps/linux/arc/sigrestorer.S
  49256. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sigrestorer.S 1970-01-01 01:00:00.000000000 +0100
  49257. +++ uClibc-git/libc/sysdeps/linux/arc/sigrestorer.S 2014-06-02 17:40:34.266713379 +0200
  49258. @@ -0,0 +1,21 @@
  49259. +/*
  49260. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49261. + *
  49262. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49263. + */
  49264. +
  49265. +#include <sysdep.h>
  49266. +#include <sys/syscall.h>
  49267. +
  49268. +/*
  49269. + * Provide a real sigreturn stub to avoid kernel synthesizing one
  49270. + * on user stack at runtime, which needs PTE permissions update
  49271. + * (hence TLB entry update) and costly cache line flushes for
  49272. + * code modification
  49273. + */
  49274. +
  49275. +ENTRY(__default_rt_sa_restorer)
  49276. + mov r8, __NR_rt_sigreturn
  49277. + ARC_TRAP_INSN
  49278. +END(__default_rt_sa_restorer)
  49279. +libc_hidden_def(__default_rt_sa_restorer)
  49280. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/cachectl.h uClibc-git/libc/sysdeps/linux/arc/sys/cachectl.h
  49281. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/cachectl.h 1970-01-01 01:00:00.000000000 +0100
  49282. +++ uClibc-git/libc/sysdeps/linux/arc/sys/cachectl.h 2014-06-02 17:40:34.266713379 +0200
  49283. @@ -0,0 +1,21 @@
  49284. +/*
  49285. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49286. + *
  49287. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49288. + */
  49289. +
  49290. +#ifndef _SYS_CACHECTL_H
  49291. +#define _SYS_CACHECTL_H 1
  49292. +
  49293. +/*
  49294. + * Get the kernel definition for the flag bits
  49295. + */
  49296. +#include <asm/cachectl.h>
  49297. +
  49298. +__BEGIN_DECLS
  49299. +
  49300. +extern int cacheflush(void *addr, int nbytes, int flags);
  49301. +
  49302. +__END_DECLS
  49303. +
  49304. +#endif /* sys/cachectl.h */
  49305. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/procfs.h uClibc-git/libc/sysdeps/linux/arc/sys/procfs.h
  49306. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/procfs.h 1970-01-01 01:00:00.000000000 +0100
  49307. +++ uClibc-git/libc/sysdeps/linux/arc/sys/procfs.h 2014-06-02 17:40:34.266713379 +0200
  49308. @@ -0,0 +1,108 @@
  49309. +/*
  49310. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49311. + *
  49312. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49313. + */
  49314. +
  49315. +#ifndef _SYS_PROCFS_H
  49316. +#define _SYS_PROCFS_H 1
  49317. +
  49318. +/* This is somewhat modelled after the file of the same name on SVR4
  49319. + systems. It provides a definition of the core file format for ELF
  49320. + used on Linux. It doesn't have anything to do with the /proc file
  49321. + system, even though Linux has one.
  49322. +
  49323. + Anyway, the whole purpose of this file is for GDB and GDB only.
  49324. + Don't read too much into it. Don't use it for anything other than
  49325. + GDB unless you know what you are doing. */
  49326. +
  49327. +#include <features.h>
  49328. +#include <sys/time.h>
  49329. +#include <sys/types.h>
  49330. +#include <sys/user.h>
  49331. +
  49332. +__BEGIN_DECLS
  49333. +
  49334. +/* Type for a general-purpose register. */
  49335. +typedef unsigned long elf_greg_t;
  49336. +
  49337. +/* And the whole bunch of them. We could have used `struct
  49338. + user_regs' directly in the typedef, but tradition says that
  49339. + the register set is an array, which does have some peculiar
  49340. + semantics, so leave it that way. */
  49341. +#define ELF_NGREG 20
  49342. +typedef elf_greg_t elf_gregset_t[ELF_NGREG];
  49343. +
  49344. +/* Signal info. */
  49345. +struct elf_siginfo
  49346. + {
  49347. + int si_signo; /* Signal number. */
  49348. + int si_code; /* Extra code. */
  49349. + int si_errno; /* Errno. */
  49350. + };
  49351. +
  49352. +/* Definitions to generate Intel SVR4-like core files. These mostly
  49353. + have the same names as the SVR4 types with "elf_" tacked on the
  49354. + front to prevent clashes with Linux definitions, and the typedef
  49355. + forms have been avoided. This is mostly like the SVR4 structure,
  49356. + but more Linuxy, with things that Linux does not support and which
  49357. + GDB doesn't really use excluded. */
  49358. +
  49359. +struct elf_prstatus
  49360. + {
  49361. + struct elf_siginfo pr_info; /* Info associated with signal. */
  49362. + short int pr_cursig; /* Current signal. */
  49363. + unsigned long int pr_sigpend; /* Set of pending signals. */
  49364. + unsigned long int pr_sighold; /* Set of held signals. */
  49365. + __pid_t pr_pid;
  49366. + __pid_t pr_ppid;
  49367. + __pid_t pr_pgrp;
  49368. + __pid_t pr_sid;
  49369. + struct timeval pr_utime; /* User time. */
  49370. + struct timeval pr_stime; /* System time. */
  49371. + struct timeval pr_cutime; /* Cumulative user time. */
  49372. + struct timeval pr_cstime; /* Cumulative system time. */
  49373. + elf_gregset_t pr_reg; /* GP registers. */
  49374. + int pr_fpvalid; /* True if math copro being used. */
  49375. + };
  49376. +
  49377. +
  49378. +#define ELF_PRARGSZ (80) /* Number of chars for args. */
  49379. +
  49380. +struct elf_prpsinfo
  49381. + {
  49382. + char pr_state; /* Numeric process state. */
  49383. + char pr_sname; /* Char for pr_state. */
  49384. + char pr_zomb; /* Zombie. */
  49385. + char pr_nice; /* Nice val. */
  49386. + unsigned long int pr_flag; /* Flags. */
  49387. + unsigned short int pr_uid;
  49388. + unsigned short int pr_gid;
  49389. + int pr_pid, pr_ppid, pr_pgrp, pr_sid;
  49390. + /* Lots missing */
  49391. + char pr_fname[16]; /* Filename of executable. */
  49392. + char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
  49393. + };
  49394. +
  49395. +/* The rest of this file provides the types for emulation of the
  49396. + Solaris <proc_service.h> interfaces that should be implemented by
  49397. + users of libthread_db. */
  49398. +
  49399. +/* Addresses. */
  49400. +typedef void *psaddr_t;
  49401. +
  49402. +/* Register sets. Linux has different names. */
  49403. +typedef elf_gregset_t prgregset_t;
  49404. +typedef elf_gregset_t prfpregset_t;
  49405. +
  49406. +/* We don't have any differences between processes and threads,
  49407. + therefore have only one PID type. */
  49408. +typedef __pid_t lwpid_t;
  49409. +
  49410. +/* Process status and info. In the end we do provide typedefs for them. */
  49411. +typedef struct elf_prstatus prstatus_t;
  49412. +typedef struct elf_prpsinfo prpsinfo_t;
  49413. +
  49414. +__END_DECLS
  49415. +
  49416. +#endif /* sys/procfs.h */
  49417. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/ucontext.h uClibc-git/libc/sysdeps/linux/arc/sys/ucontext.h
  49418. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/ucontext.h 1970-01-01 01:00:00.000000000 +0100
  49419. +++ uClibc-git/libc/sysdeps/linux/arc/sys/ucontext.h 2014-06-02 17:40:34.266713379 +0200
  49420. @@ -0,0 +1,22 @@
  49421. +/*
  49422. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49423. + *
  49424. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49425. + */
  49426. +
  49427. +#ifndef _SYS_UCONTEXT_H
  49428. +#define _SYS_UCONTEXT_H 1
  49429. +
  49430. +#include <features.h>
  49431. +#include <signal.h>
  49432. +#include <bits/sigcontext.h>
  49433. +
  49434. +typedef struct ucontext {
  49435. + unsigned long uc_flags;
  49436. + struct ucontext *uc_link;
  49437. + stack_t uc_stack;
  49438. + struct sigcontext uc_mcontext;
  49439. + sigset_t uc_sigmask; /* mask last for extensibility */
  49440. +} ucontext_t;
  49441. +
  49442. +#endif /* sys/ucontext.h */
  49443. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/user.h uClibc-git/libc/sysdeps/linux/arc/sys/user.h
  49444. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sys/user.h 1970-01-01 01:00:00.000000000 +0100
  49445. +++ uClibc-git/libc/sysdeps/linux/arc/sys/user.h 2014-06-02 17:40:34.266713379 +0200
  49446. @@ -0,0 +1,23 @@
  49447. +/*
  49448. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49449. + *
  49450. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49451. + */
  49452. +
  49453. +#ifndef _SYS_USER_H
  49454. +#define _SYS_USER_H 1
  49455. +
  49456. +/* The whole purpose of this file is for GDB and GDB only. Don't read
  49457. + too much into it. Don't use it for anything other than GDB unless
  49458. + you know what you are doing. */
  49459. +
  49460. +
  49461. +/* Actually apps like strace also expect a struct user, so it's better to
  49462. + * have a dummy implementation
  49463. + */
  49464. +
  49465. +struct user {
  49466. + int dummy;
  49467. +};
  49468. +
  49469. +#endif /* sys/user.h */
  49470. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/syscall.c uClibc-git/libc/sysdeps/linux/arc/syscall.c
  49471. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/syscall.c 1970-01-01 01:00:00.000000000 +0100
  49472. +++ uClibc-git/libc/sysdeps/linux/arc/syscall.c 2014-06-02 17:40:34.266713379 +0200
  49473. @@ -0,0 +1,17 @@
  49474. +/*
  49475. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49476. + *
  49477. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49478. + */
  49479. +
  49480. +#include <features.h>
  49481. +#include <errno.h>
  49482. +#include <sys/types.h>
  49483. +#include <sys/syscall.h>
  49484. +
  49485. +extern long syscall(long int sysnum, long a, long b, long c, long d, long e, long f);
  49486. +
  49487. +long syscall(long int sysnum, long a, long b, long c, long d, long e, long f)
  49488. +{
  49489. + return INLINE_SYSCALL_NCS(sysnum, 6, a, b, c, d, e, f);
  49490. +}
  49491. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/__syscall_error.c uClibc-git/libc/sysdeps/linux/arc/__syscall_error.c
  49492. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/__syscall_error.c 1970-01-01 01:00:00.000000000 +0100
  49493. +++ uClibc-git/libc/sysdeps/linux/arc/__syscall_error.c 2014-06-02 17:40:34.262713357 +0200
  49494. @@ -0,0 +1,15 @@
  49495. +/* Wrapper for setting errno.
  49496. + *
  49497. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  49498. + *
  49499. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49500. + */
  49501. +
  49502. +#include <errno.h>
  49503. +#include <sys/syscall.h>
  49504. +
  49505. +int __syscall_error(int err_no)
  49506. +{
  49507. + __set_errno(-err_no);
  49508. + return -1;
  49509. +}
  49510. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/sysdep.h uClibc-git/libc/sysdeps/linux/arc/sysdep.h
  49511. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/sysdep.h 1970-01-01 01:00:00.000000000 +0100
  49512. +++ uClibc-git/libc/sysdeps/linux/arc/sysdep.h 2014-06-02 17:40:34.266713379 +0200
  49513. @@ -0,0 +1,22 @@
  49514. +#ifndef _LINUX_ARC_SYSDEP_H
  49515. +#define _LINUX_ARC_SYSDEP_H 1
  49516. +
  49517. +#include <features.h>
  49518. +#include <libc-internal.h>
  49519. +
  49520. +#ifdef __ASSEMBLER__
  49521. +
  49522. +#define ENTRY(nm) \
  49523. + .text ` \
  49524. + .align 4 ` \
  49525. + .globl nm ` \
  49526. + .type nm,@function ` \
  49527. +nm:
  49528. +
  49529. +#define END(name) .size name,.-name
  49530. +
  49531. +#endif /* __ASSEMBLER __*/
  49532. +
  49533. +#include <common/sysdep.h>
  49534. +
  49535. +#endif
  49536. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/vfork.S uClibc-git/libc/sysdeps/linux/arc/vfork.S
  49537. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/vfork.S 1970-01-01 01:00:00.000000000 +0100
  49538. +++ uClibc-git/libc/sysdeps/linux/arc/vfork.S 2014-06-02 17:40:34.266713379 +0200
  49539. @@ -0,0 +1,31 @@
  49540. +/*
  49541. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  49542. + *
  49543. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  49544. + */
  49545. +
  49546. +#include <sys/syscall.h>
  49547. +#include <sysdep.h>
  49548. +
  49549. +/* No legacy syscall ABI means NR_vfork is not available at all, use clone */
  49550. +#define _SIGNAL_H
  49551. +#include <bits/signum.h> /* For SIGCHLD */
  49552. +
  49553. +#define CLONE_VM 0x00000100
  49554. +#define CLONE_VFORK 0x00004000
  49555. +#define CLONE_FLAGS_FOR_VFORK (CLONE_VM|CLONE_VFORK|SIGCHLD)
  49556. +
  49557. +ENTRY(__vfork)
  49558. + mov r0, CLONE_FLAGS_FOR_VFORK
  49559. + mov_s r1, sp
  49560. + mov r8, __NR_clone
  49561. + ARC_TRAP_INSN
  49562. +
  49563. + cmp r0, 0
  49564. + jge [blink] ; pid >=0 return, else detour via tailcall to errno
  49565. +
  49566. + b __syscall_error
  49567. +END(__vfork)
  49568. +
  49569. +weak_alias(__vfork,vfork)
  49570. +libc_hidden_def(vfork)
  49571. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arc/xstatconv.c uClibc-git/libc/sysdeps/linux/arc/xstatconv.c
  49572. --- uClibc-0.9.33.2/libc/sysdeps/linux/arc/xstatconv.c 1970-01-01 01:00:00.000000000 +0100
  49573. +++ uClibc-git/libc/sysdeps/linux/arc/xstatconv.c 2014-06-02 17:40:34.266713379 +0200
  49574. @@ -0,0 +1 @@
  49575. +/* We don't need any of this. */
  49576. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_assert.c uClibc-git/libc/sysdeps/linux/arm/aeabi_assert.c
  49577. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_assert.c 2012-05-15 09:20:09.000000000 +0200
  49578. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_assert.c 2014-06-02 17:40:34.266713379 +0200
  49579. @@ -12,16 +12,15 @@
  49580. Lesser General Public License for more details.
  49581. You should have received a copy of the GNU Lesser General Public
  49582. - License along with the GNU C Library; if not, write to the Free
  49583. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49584. - 02111-1307 USA. */
  49585. + License along with the GNU C Library; if not, see
  49586. + <http://www.gnu.org/licenses/>. */
  49587. #undef NDEBUG
  49588. #include <assert.h>
  49589. #include <stdlib.h>
  49590. -void __aeabi_assert(const char *assertion, const char *file, unsigned int line);
  49591. +void __aeabi_assert(const char *assertion, const char *file, unsigned int line) attribute_noreturn;
  49592. void __aeabi_assert(const char *assertion, const char *file, unsigned int line)
  49593. {
  49594. __assert (assertion, file, line, NULL);
  49595. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_atexit.c uClibc-git/libc/sysdeps/linux/arm/aeabi_atexit.c
  49596. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_atexit.c 2012-05-15 09:20:09.000000000 +0200
  49597. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_atexit.c 2014-06-02 17:40:34.266713379 +0200
  49598. @@ -12,9 +12,8 @@
  49599. Lesser General Public License for more details.
  49600. You should have received a copy of the GNU Lesser General Public
  49601. - License along with the GNU C Library; if not, write to the Free
  49602. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49603. - 02111-1307 USA. */
  49604. + License along with the GNU C Library; if not, see
  49605. + <http://www.gnu.org/licenses/>. */
  49606. #include <stdlib.h>
  49607. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_errno_addr.c uClibc-git/libc/sysdeps/linux/arm/aeabi_errno_addr.c
  49608. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_errno_addr.c 2012-05-15 09:20:09.000000000 +0200
  49609. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_errno_addr.c 2014-06-02 17:40:34.266713379 +0200
  49610. @@ -12,9 +12,8 @@
  49611. Lesser General Public License for more details.
  49612. You should have received a copy of the GNU Lesser General Public
  49613. - License along with the GNU C Library; if not, write to the Free
  49614. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49615. - 02111-1307 USA. */
  49616. + License along with the GNU C Library; if not, see
  49617. + <http://www.gnu.org/licenses/>. */
  49618. #include <errno.h>
  49619. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_lcsts.c uClibc-git/libc/sysdeps/linux/arm/aeabi_lcsts.c
  49620. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_lcsts.c 2012-05-15 09:20:09.000000000 +0200
  49621. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_lcsts.c 2014-06-02 17:40:34.270713402 +0200
  49622. @@ -30,9 +30,8 @@
  49623. Lesser General Public License for more details.
  49624. You should have received a copy of the GNU Lesser General Public
  49625. - License along with the GNU C Library; if not, write to the Free
  49626. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49627. - 02111-1307 USA. */
  49628. + License along with the GNU C Library; if not, see
  49629. + <http://www.gnu.org/licenses/>. */
  49630. /* The ARM EABI requires that we provide ISO compile-time constants as
  49631. link-time constants. Some portable applications may reference these. */
  49632. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_localeconv.c uClibc-git/libc/sysdeps/linux/arm/aeabi_localeconv.c
  49633. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_localeconv.c 2012-05-15 09:20:09.000000000 +0200
  49634. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_localeconv.c 2014-06-02 17:40:34.270713402 +0200
  49635. @@ -12,9 +12,8 @@
  49636. Lesser General Public License for more details.
  49637. You should have received a copy of the GNU Lesser General Public
  49638. - License along with the GNU C Library; if not, write to the Free
  49639. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49640. - 02111-1307 USA. */
  49641. + License along with the GNU C Library; if not, see
  49642. + <http://www.gnu.org/licenses/>. */
  49643. #include <locale.h>
  49644. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_math.c uClibc-git/libc/sysdeps/linux/arm/aeabi_math.c
  49645. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_math.c 2012-05-15 09:20:09.000000000 +0200
  49646. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_math.c 2014-06-02 17:40:34.270713402 +0200
  49647. @@ -29,9 +29,8 @@
  49648. Lesser General Public License for more details.
  49649. You should have received a copy of the GNU Lesser General Public
  49650. - License along with the GNU C Library; if not, write to the Free
  49651. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49652. - 02111-1307 USA. */
  49653. + License along with the GNU C Library; if not, see
  49654. + <http://www.gnu.org/licenses/>. */
  49655. #include <math.h>
  49656. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_mb_cur_max.c uClibc-git/libc/sysdeps/linux/arm/aeabi_mb_cur_max.c
  49657. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_mb_cur_max.c 2012-05-15 09:20:09.000000000 +0200
  49658. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_mb_cur_max.c 2014-06-02 17:40:34.270713402 +0200
  49659. @@ -12,16 +12,15 @@
  49660. Lesser General Public License for more details.
  49661. You should have received a copy of the GNU Lesser General Public
  49662. - License along with the GNU C Library; if not, write to the Free
  49663. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49664. - 02111-1307 USA. */
  49665. + License along with the GNU C Library; if not, see
  49666. + <http://www.gnu.org/licenses/>. */
  49667. #include <langinfo.h>
  49668. #include <locale.h>
  49669. #include <stdlib.h>
  49670. -int
  49671. -__aeabi_MB_CUR_MAX (void)
  49672. +int __aeabi_MB_CUR_MAX (void);
  49673. +int __aeabi_MB_CUR_MAX (void)
  49674. {
  49675. return MB_CUR_MAX;
  49676. }
  49677. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memclr.c uClibc-git/libc/sysdeps/linux/arm/aeabi_memclr.c
  49678. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memclr.c 2012-05-15 09:20:09.000000000 +0200
  49679. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_memclr.c 2014-06-02 17:40:34.282713468 +0200
  49680. @@ -12,9 +12,8 @@
  49681. Lesser General Public License for more details.
  49682. You should have received a copy of the GNU Lesser General Public
  49683. - License along with the GNU C Library; if not, write to the Free
  49684. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49685. - 02111-1307 USA. */
  49686. + License along with the GNU C Library; if not, see
  49687. + <http://www.gnu.org/licenses/>. */
  49688. #include <string.h>
  49689. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memcpy.c uClibc-git/libc/sysdeps/linux/arm/aeabi_memcpy.c
  49690. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memcpy.c 2012-05-15 09:20:09.000000000 +0200
  49691. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_memcpy.c 2014-06-02 17:40:34.282713468 +0200
  49692. @@ -12,9 +12,8 @@
  49693. Lesser General Public License for more details.
  49694. You should have received a copy of the GNU Lesser General Public
  49695. - License along with the GNU C Library; if not, write to the Free
  49696. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49697. - 02111-1307 USA. */
  49698. + License along with the GNU C Library; if not, see
  49699. + <http://www.gnu.org/licenses/>. */
  49700. #include <string.h>
  49701. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memmove.c uClibc-git/libc/sysdeps/linux/arm/aeabi_memmove.c
  49702. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memmove.c 2012-05-15 09:20:09.000000000 +0200
  49703. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_memmove.c 2014-06-02 17:40:34.282713468 +0200
  49704. @@ -12,9 +12,8 @@
  49705. Lesser General Public License for more details.
  49706. You should have received a copy of the GNU Lesser General Public
  49707. - License along with the GNU C Library; if not, write to the Free
  49708. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49709. - 02111-1307 USA. */
  49710. + License along with the GNU C Library; if not, see
  49711. + <http://www.gnu.org/licenses/>. */
  49712. #include <string.h>
  49713. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memset.c uClibc-git/libc/sysdeps/linux/arm/aeabi_memset.c
  49714. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_memset.c 2012-05-15 09:20:09.000000000 +0200
  49715. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_memset.c 2014-06-02 17:40:34.282713468 +0200
  49716. @@ -12,9 +12,8 @@
  49717. Lesser General Public License for more details.
  49718. You should have received a copy of the GNU Lesser General Public
  49719. - License along with the GNU C Library; if not, write to the Free
  49720. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49721. - 02111-1307 USA. */
  49722. + License along with the GNU C Library; if not, see
  49723. + <http://www.gnu.org/licenses/>. */
  49724. #include <string.h>
  49725. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_sighandlers.S uClibc-git/libc/sysdeps/linux/arm/aeabi_sighandlers.S
  49726. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_sighandlers.S 2012-05-15 09:20:09.000000000 +0200
  49727. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_sighandlers.S 2014-06-02 17:40:34.282713468 +0200
  49728. @@ -30,9 +30,8 @@
  49729. Lesser General Public License for more details.
  49730. You should have received a copy of the GNU Lesser General Public
  49731. - License along with the GNU C Library; if not, write to the Free
  49732. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49733. - 02111-1307 USA. */
  49734. + License along with the GNU C Library; if not, see
  49735. + <http://www.gnu.org/licenses/>. */
  49736. /* The ARM EABI defines these as "functions". */
  49737. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_unwind_cpp_pr1.c uClibc-git/libc/sysdeps/linux/arm/aeabi_unwind_cpp_pr1.c
  49738. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/aeabi_unwind_cpp_pr1.c 2012-05-15 09:20:09.000000000 +0200
  49739. +++ uClibc-git/libc/sysdeps/linux/arm/aeabi_unwind_cpp_pr1.c 2014-06-02 17:40:34.282713468 +0200
  49740. @@ -12,9 +12,8 @@
  49741. Lesser General Public License for more details.
  49742. You should have received a copy of the GNU Lesser General Public
  49743. - License along with the GNU C Library; if not, write to the Free
  49744. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49745. - 02111-1307 USA. */
  49746. + License along with the GNU C Library; if not, see
  49747. + <http://www.gnu.org/licenses/>. */
  49748. /* Because some objects in ld.so and libc.so are built with
  49749. -fexceptions, we end up with references to this personality
  49750. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/arm_asm.h uClibc-git/libc/sysdeps/linux/arm/bits/arm_asm.h
  49751. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/arm_asm.h 2012-05-15 09:20:09.000000000 +0200
  49752. +++ uClibc-git/libc/sysdeps/linux/arm/bits/arm_asm.h 2014-06-02 17:40:34.282713468 +0200
  49753. @@ -3,8 +3,10 @@
  49754. #define _ARM_ASM_H
  49755. #ifdef __thumb2__
  49756. +# ifdef __ASSEMBLER__
  49757. .thumb
  49758. .syntax unified
  49759. +# endif /* __ASSEMBLER__ */
  49760. #define IT(t, cond) i##t cond
  49761. #else
  49762. /* XXX: This can be removed if/when we require an assembler that supports
  49763. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/armsigctx.h uClibc-git/libc/sysdeps/linux/arm/bits/armsigctx.h
  49764. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/armsigctx.h 2012-05-15 09:20:09.000000000 +0200
  49765. +++ uClibc-git/libc/sysdeps/linux/arm/bits/armsigctx.h 2014-06-02 17:40:34.282713468 +0200
  49766. @@ -13,9 +13,8 @@
  49767. Lesser General Public License for more details.
  49768. You should have received a copy of the GNU Lesser General Public
  49769. - License along with the GNU C Library; if not, write to the Free
  49770. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49771. - 02111-1307 USA. */
  49772. + License along with the GNU C Library; if not, see
  49773. + <http://www.gnu.org/licenses/>. */
  49774. /* The format of struct sigcontext changed between 2.0 and 2.1 kernels.
  49775. Fortunately 2.0 puts a magic number in the first word and this is not
  49776. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/atomic.h uClibc-git/libc/sysdeps/linux/arm/bits/atomic.h
  49777. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  49778. +++ uClibc-git/libc/sysdeps/linux/arm/bits/atomic.h 2014-06-02 17:40:34.282713468 +0200
  49779. @@ -12,9 +12,8 @@
  49780. Lesser General Public License for more details.
  49781. You should have received a copy of the GNU Lesser General Public
  49782. - License along with the GNU C Library; if not, write to the Free
  49783. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49784. - 02111-1307 USA. */
  49785. + License along with the GNU C Library; if not, see
  49786. + <http://www.gnu.org/licenses/>. */
  49787. #if defined __thumb__ && !defined __thumb2__
  49788. #include_next <common/bits/atomic.h>
  49789. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/fcntl.h uClibc-git/libc/sysdeps/linux/arm/bits/fcntl.h
  49790. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  49791. +++ uClibc-git/libc/sysdeps/linux/arm/bits/fcntl.h 2014-06-02 17:40:34.282713468 +0200
  49792. @@ -14,9 +14,8 @@
  49793. Lesser General Public License for more details.
  49794. You should have received a copy of the GNU Lesser General Public
  49795. - License along with the GNU C Library; if not, write to the Free
  49796. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49797. - 02111-1307 USA. */
  49798. + License along with the GNU C Library; if not, see
  49799. + <http://www.gnu.org/licenses/>. */
  49800. #ifndef _FCNTL_H
  49801. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  49802. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/fenv.h uClibc-git/libc/sysdeps/linux/arm/bits/fenv.h
  49803. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  49804. +++ uClibc-git/libc/sysdeps/linux/arm/bits/fenv.h 2014-06-02 17:40:34.302713579 +0200
  49805. @@ -12,9 +12,8 @@
  49806. Lesser General Public License for more details.
  49807. You should have received a copy of the GNU Lesser General Public
  49808. - License along with the GNU C Library; if not, write to the Free
  49809. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49810. - 02111-1307 USA. */
  49811. + License along with the GNU C Library; if not, see
  49812. + <http://www.gnu.org/licenses/>. */
  49813. #ifndef _FENV_H
  49814. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  49815. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/huge_val.h uClibc-git/libc/sysdeps/linux/arm/bits/huge_val.h
  49816. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/huge_val.h 2012-05-15 09:20:09.000000000 +0200
  49817. +++ uClibc-git/libc/sysdeps/linux/arm/bits/huge_val.h 2014-06-02 17:40:34.302713579 +0200
  49818. @@ -16,9 +16,8 @@
  49819. Lesser General Public License for more details.
  49820. You should have received a copy of the GNU Lesser General Public
  49821. - License along with the GNU C Library; if not, write to the Free
  49822. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49823. - 02111-1307 USA. */
  49824. + License along with the GNU C Library; if not, see
  49825. + <http://www.gnu.org/licenses/>. */
  49826. #ifndef _MATH_H
  49827. # error "Never use <bits/huge_val.h> directly; include <math.h> instead."
  49828. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/arm/bits/kernel_types.h
  49829. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  49830. +++ uClibc-git/libc/sysdeps/linux/arm/bits/kernel_types.h 2014-06-02 17:40:34.306713601 +0200
  49831. @@ -32,6 +32,8 @@
  49832. typedef unsigned short __kernel_old_gid_t;
  49833. typedef long long __kernel_loff_t;
  49834. typedef __kernel_dev_t __kernel_old_dev_t;
  49835. +typedef long __kernel_long_t;
  49836. +typedef unsigned long __kernel_ulong_t;
  49837. typedef struct {
  49838. #ifdef __USE_ALL
  49839. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/mathdef.h uClibc-git/libc/sysdeps/linux/arm/bits/mathdef.h
  49840. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  49841. +++ uClibc-git/libc/sysdeps/linux/arm/bits/mathdef.h 2014-06-02 17:40:34.306713601 +0200
  49842. @@ -12,9 +12,8 @@
  49843. Lesser General Public License for more details.
  49844. You should have received a copy of the GNU Lesser General Public
  49845. - License along with the GNU C Library; if not, write to the Free
  49846. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49847. - 02111-1307 USA. */
  49848. + License along with the GNU C Library; if not, see
  49849. + <http://www.gnu.org/licenses/>. */
  49850. #if !defined _MATH_H && !defined _COMPLEX_H
  49851. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  49852. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/setjmp.h uClibc-git/libc/sysdeps/linux/arm/bits/setjmp.h
  49853. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  49854. +++ uClibc-git/libc/sysdeps/linux/arm/bits/setjmp.h 2014-06-02 17:40:34.306713601 +0200
  49855. @@ -1,4 +1,4 @@
  49856. -/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
  49857. +/* Copyright (C) 1997,1998,2005,2006 Free Software Foundation, Inc.
  49858. This file is part of the GNU C Library.
  49859. The GNU C Library is free software; you can redistribute it and/or
  49860. @@ -12,19 +12,18 @@
  49861. Lesser General Public License for more details.
  49862. You should have received a copy of the GNU Lesser General Public
  49863. - License along with the GNU C Library; if not, write to the Free
  49864. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49865. - 02111-1307 USA. */
  49866. + License along with the GNU C Library; if not, see
  49867. + <http://www.gnu.org/licenses/>. */
  49868. /* Define the machine-dependent type `jmp_buf'. ARM version. */
  49869. +
  49870. #ifndef _BITS_SETJMP_H
  49871. -#define _BITS_SETJMP_H 1
  49872. +#define _BITS_SETJMP_H 1
  49873. #if !defined _SETJMP_H && !defined _PTHREAD_H
  49874. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  49875. #endif
  49876. -#ifndef _ASM
  49877. /* Jump buffer contains v1-v6, sl, fp, sp and pc. Other registers are not
  49878. saved. */
  49879. #ifdef __ARM_EABI__
  49880. @@ -38,15 +37,10 @@
  49881. #elif defined __MAVERICK__ || defined __IWMMXT__
  49882. typedef int __jmp_buf[34];
  49883. #else
  49884. +# ifdef __UCLIBC_HAS_FPU__
  49885. typedef int __jmp_buf[22];
  49886. +# else
  49887. +typedef int __jmp_buf[10];
  49888. +# endif
  49889. #endif
  49890. #endif
  49891. -
  49892. -#define __JMP_BUF_SP 8
  49893. -
  49894. -/* Test if longjmp to JMPBUF would unwind the frame
  49895. - containing a local variable at ADDRESS. */
  49896. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  49897. - ((void *) (address) < (void *) (jmpbuf[__JMP_BUF_SP]))
  49898. -
  49899. -#endif /* bits/setjmp.h */
  49900. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/shm.h uClibc-git/libc/sysdeps/linux/arm/bits/shm.h
  49901. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  49902. +++ uClibc-git/libc/sysdeps/linux/arm/bits/shm.h 2014-06-02 17:40:34.306713601 +0200
  49903. @@ -12,9 +12,8 @@
  49904. Lesser General Public License for more details.
  49905. You should have received a copy of the GNU Lesser General Public
  49906. - License along with the GNU C Library; if not, write to the Free
  49907. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49908. - 02111-1307 USA. */
  49909. + License along with the GNU C Library; if not, see
  49910. + <http://www.gnu.org/licenses/>. */
  49911. #ifndef _SYS_SHM_H
  49912. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  49913. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/arm/bits/sigcontextinfo.h
  49914. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  49915. +++ uClibc-git/libc/sysdeps/linux/arm/bits/sigcontextinfo.h 2014-06-02 17:40:34.306713601 +0200
  49916. @@ -13,9 +13,8 @@
  49917. Lesser General Public License for more details.
  49918. You should have received a copy of the GNU Lesser General Public
  49919. - License along with the GNU C Library; if not, write to the Free
  49920. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49921. - 02111-1307 USA. */
  49922. + License along with the GNU C Library; if not, see
  49923. + <http://www.gnu.org/licenses/>. */
  49924. #include <bits/armsigctx.h>
  49925. #include <linux/version.h>
  49926. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/arm/bits/stackinfo.h
  49927. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  49928. +++ uClibc-git/libc/sysdeps/linux/arm/bits/stackinfo.h 2014-06-02 17:40:34.306713601 +0200
  49929. @@ -12,9 +12,8 @@
  49930. Lesser General Public License for more details.
  49931. You should have received a copy of the GNU Lesser General Public
  49932. - License along with the GNU C Library; if not, write to the Free
  49933. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49934. - 02111-1307 USA. */
  49935. + License along with the GNU C Library; if not, see
  49936. + <http://www.gnu.org/licenses/>. */
  49937. /* This file contains a bit of information about the stack allocation
  49938. of the processor. */
  49939. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h
  49940. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  49941. +++ uClibc-git/libc/sysdeps/linux/arm/bits/uClibc_arch_features.h 2014-06-02 17:40:34.306713601 +0200
  49942. @@ -11,11 +11,11 @@
  49943. /* can your target use syscall6() for mmap ? */
  49944. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  49945. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  49946. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  49947. #ifdef __ARM_EABI__
  49948. -#define __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  49949. +#define __UCLIBC_SYSCALL_ALIGN_64BIT__
  49950. #else
  49951. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  49952. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  49953. #endif
  49954. /* does your target have a broken create_module() ? */
  49955. @@ -48,4 +48,15 @@
  49956. /* only weird assemblers generally need this */
  49957. #undef __UCLIBC_ASM_LINE_SEP__
  49958. +#ifdef __GNUC__
  49959. +# define __need_uClibc_config_h
  49960. +# include <bits/uClibc_config.h>
  49961. +# undef __need_uClibc_config_h
  49962. +# if defined __CONFIG_ARM_EABI__ && !defined __ARM_EABI__
  49963. +# error Your toolchain does not support EABI
  49964. +# elif !defined __CONFIG_ARM_EABI__ && defined __ARM_EABI__
  49965. +# error Your toolchain was built for EABI, but you have chosen OABI
  49966. +# endif
  49967. +#endif
  49968. +
  49969. #endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
  49970. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/wordsize.h uClibc-git/libc/sysdeps/linux/arm/bits/wordsize.h
  49971. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  49972. +++ uClibc-git/libc/sysdeps/linux/arm/bits/wordsize.h 2014-06-02 17:40:34.306713601 +0200
  49973. @@ -12,8 +12,7 @@
  49974. Lesser General Public License for more details.
  49975. You should have received a copy of the GNU Lesser General Public
  49976. - License along with the GNU C Library; if not, write to the Free
  49977. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49978. - 02111-1307 USA. */
  49979. + License along with the GNU C Library; if not, see
  49980. + <http://www.gnu.org/licenses/>. */
  49981. #define __WORDSIZE 32
  49982. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/brk.c uClibc-git/libc/sysdeps/linux/arm/brk.c
  49983. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/brk.c 2012-05-15 09:20:09.000000000 +0200
  49984. +++ uClibc-git/libc/sysdeps/linux/arm/brk.c 2014-06-02 17:40:34.306713601 +0200
  49985. @@ -13,9 +13,8 @@
  49986. Lesser General Public License for more details.
  49987. You should have received a copy of the GNU Lesser General Public
  49988. - License along with the GNU C Library; if not, write to the Free
  49989. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  49990. - 02111-1307 USA. */
  49991. + License along with the GNU C Library; if not, see
  49992. + <http://www.gnu.org/licenses/>. */
  49993. #include <errno.h>
  49994. #include <unistd.h>
  49995. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/arm/bsd-setjmp.S
  49996. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  49997. +++ uClibc-git/libc/sysdeps/linux/arm/bsd-setjmp.S 2014-06-02 17:40:34.306713601 +0200
  49998. @@ -13,9 +13,8 @@
  49999. Lesser General Public License for more details.
  50000. You should have received a copy of the GNU Lesser General Public
  50001. - License along with the GNU C Library; if not, write to the Free
  50002. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50003. - 02111-1307 USA. */
  50004. + License along with the GNU C Library; if not, see
  50005. + <http://www.gnu.org/licenses/>. */
  50006. #include <bits/arm_asm.h>
  50007. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/arm/bsd-_setjmp.S
  50008. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  50009. +++ uClibc-git/libc/sysdeps/linux/arm/bsd-_setjmp.S 2014-06-02 17:40:34.306713601 +0200
  50010. @@ -13,9 +13,8 @@
  50011. Lesser General Public License for more details.
  50012. You should have received a copy of the GNU Lesser General Public
  50013. - License along with the GNU C Library; if not, write to the Free
  50014. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50015. - 02111-1307 USA. */
  50016. + License along with the GNU C Library; if not, see
  50017. + <http://www.gnu.org/licenses/>. */
  50018. #include <bits/arm_asm.h>
  50019. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/clone.S uClibc-git/libc/sysdeps/linux/arm/clone.S
  50020. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/clone.S 2012-05-15 09:20:09.000000000 +0200
  50021. +++ uClibc-git/libc/sysdeps/linux/arm/clone.S 2014-06-02 17:40:34.306713601 +0200
  50022. @@ -13,9 +13,8 @@
  50023. Lesser General Public License for more details.
  50024. You should have received a copy of the GNU Lesser General Public
  50025. - License along with the GNU C Library; if not, write to the Free
  50026. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50027. - 02111-1307 USA. */
  50028. + License along with the GNU C Library; if not, see
  50029. + <http://www.gnu.org/licenses/>. */
  50030. /* clone() is even more special than fork() as it mucks with stacks
  50031. and invokes a function in the right context after its all over. */
  50032. @@ -111,8 +110,8 @@
  50033. ldr r4, [sp, #12]
  50034. DO_CALL (clone)
  50035. movs a1, a1
  50036. - blt __error
  50037. ldmnefd sp!, {r4}
  50038. + blt __error
  50039. IT(t, ne)
  50040. #if defined(__USE_BX__)
  50041. bxne lr
  50042. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/crt1.S uClibc-git/libc/sysdeps/linux/arm/crt1.S
  50043. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/crt1.S 2012-05-15 09:20:09.000000000 +0200
  50044. +++ uClibc-git/libc/sysdeps/linux/arm/crt1.S 2014-06-02 17:40:34.306713601 +0200
  50045. @@ -31,9 +31,8 @@
  50046. Lesser General Public License for more details.
  50047. You should have received a copy of the GNU Lesser General Public
  50048. - License along with the GNU C Library; if not, write to the Free
  50049. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50050. - 02111-1307 USA. */
  50051. + License along with the GNU C Library; if not, see
  50052. + <http://www.gnu.org/licenses/>. */
  50053. /* This is the canonical entry point, usually the first thing in the text
  50054. segment.
  50055. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/find_exidx.c uClibc-git/libc/sysdeps/linux/arm/find_exidx.c
  50056. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/find_exidx.c 2012-05-15 09:20:09.000000000 +0200
  50057. +++ uClibc-git/libc/sysdeps/linux/arm/find_exidx.c 2014-06-02 17:40:34.306713601 +0200
  50058. @@ -12,9 +12,8 @@
  50059. Lesser General Public License for more details.
  50060. You should have received a copy of the GNU Lesser General Public
  50061. - License along with the GNU C Library; if not, write to the Free
  50062. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50063. - 02111-1307 USA. */
  50064. + License along with the GNU C Library; if not, see
  50065. + <http://www.gnu.org/licenses/>. */
  50066. #include <link.h>
  50067. #include <unwind.h>
  50068. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/fpu_control.h uClibc-git/libc/sysdeps/linux/arm/fpu_control.h
  50069. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  50070. +++ uClibc-git/libc/sysdeps/linux/arm/fpu_control.h 2014-06-02 17:40:34.306713601 +0200
  50071. @@ -13,9 +13,8 @@
  50072. Lesser General Public License for more details.
  50073. You should have received a copy of the GNU Lesser General Public
  50074. - License along with the GNU C Library; if not, write to the Free
  50075. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50076. - 02111-1307 USA. */
  50077. + License along with the GNU C Library; if not, see
  50078. + <http://www.gnu.org/licenses/>. */
  50079. #ifndef _FPU_CONTROL_H
  50080. #define _FPU_CONTROL_H
  50081. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/getcontext.S uClibc-git/libc/sysdeps/linux/arm/getcontext.S
  50082. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/getcontext.S 1970-01-01 01:00:00.000000000 +0100
  50083. +++ uClibc-git/libc/sysdeps/linux/arm/getcontext.S 2014-06-02 17:40:34.306713601 +0200
  50084. @@ -0,0 +1,80 @@
  50085. +/* Copyright (C) 2012 Free Software Foundation, Inc.
  50086. + This file is part of the GNU C Library.
  50087. +
  50088. + The GNU C Library is free software; you can redistribute it and/or
  50089. + modify it under the terms of the GNU Lesser General Public
  50090. + License as published by the Free Software Foundation; either
  50091. + version 2.1 of the License, or (at your option) any later version.
  50092. +
  50093. + The GNU C Library is distributed in the hope that it will be useful,
  50094. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  50095. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  50096. + Lesser General Public License for more details.
  50097. +
  50098. + You should have received a copy of the GNU Lesser General Public
  50099. + License along with the GNU C Library; if not, see
  50100. + <http://www.gnu.org/licenses/>. */
  50101. +
  50102. +#include <sysdep.h>
  50103. +
  50104. +#include "ucontext_i.h"
  50105. +
  50106. + .syntax unified
  50107. + .text
  50108. +
  50109. +/* int getcontext (ucontext_t *ucp) */
  50110. +
  50111. +ENTRY(__getcontext)
  50112. + /* No need to save r0-r3, d0-d7, or d16-d31. */
  50113. + add r1, r0, #MCONTEXT_ARM_R4
  50114. + stmia r1, {r4-r11}
  50115. +
  50116. + /* Save R13 separately as Thumb can't STM it. */
  50117. + str r13, [r0, #MCONTEXT_ARM_SP]
  50118. + str r14, [r0, #MCONTEXT_ARM_LR]
  50119. + /* Return to LR */
  50120. + str r14, [r0, #MCONTEXT_ARM_PC]
  50121. + /* Return zero */
  50122. + mov r2, #0
  50123. + str r2, [r0, #MCONTEXT_ARM_R0]
  50124. +
  50125. + /* Save ucontext_t * across the next call. */
  50126. + mov r4, r0
  50127. +
  50128. + /* __sigprocmask(SIG_BLOCK, NULL, &(ucontext->uc_sigmask)) */
  50129. + mov r0, #SIG_BLOCK
  50130. + mov r1, #0
  50131. + add r2, r4, #UCONTEXT_SIGMASK
  50132. + bl PLTJMP(sigprocmask)
  50133. +
  50134. +#if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
  50135. +# ifdef __VFP_FP__
  50136. + /* Store the VFP registers. */
  50137. + /* Following instruction is fstmiax ip!, {d8-d15}. */
  50138. + stc p11, cr8, [r0], #64
  50139. + /* Store the floating-point status register. */
  50140. + /* Following instruction is fmrx r2, fpscr. */
  50141. + mrc p10, 7, r1, cr1, cr0, 0
  50142. + str r1, [r0], #4
  50143. +# endif
  50144. +#endif
  50145. +#ifdef __IWMMXT__
  50146. + /* Save the call-preserved iWMMXt registers. */
  50147. + /* Following instructions are wstrd wr10, [r0], #8 (etc.) */
  50148. + stcl p1, cr10, [r0], #8
  50149. + stcl p1, cr11, [r0], #8
  50150. + stcl p1, cr12, [r0], #8
  50151. + stcl p1, cr13, [r0], #8
  50152. + stcl p1, cr14, [r0], #8
  50153. + stcl p1, cr15, [r0], #8
  50154. +#endif
  50155. +
  50156. + /* Restore the clobbered R4 and LR. */
  50157. + ldr r14, [r4, #MCONTEXT_ARM_LR]
  50158. + ldr r4, [r4, #MCONTEXT_ARM_R4]
  50159. +
  50160. + mov r0, #0
  50161. + DO_RET(r14)
  50162. +
  50163. +END(__getcontext)
  50164. +weak_alias(__getcontext, getcontext)
  50165. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/ioperm.c uClibc-git/libc/sysdeps/linux/arm/ioperm.c
  50166. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/ioperm.c 2012-05-15 09:20:09.000000000 +0200
  50167. +++ uClibc-git/libc/sysdeps/linux/arm/ioperm.c 2014-06-02 17:40:34.306713601 +0200
  50168. @@ -14,9 +14,8 @@
  50169. Lesser General Public License for more details.
  50170. You should have received a copy of the GNU Lesser General Public
  50171. - License along with the GNU C Library; if not, write to the Free
  50172. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50173. - 02111-1307 USA. */
  50174. + License along with the GNU C Library; if not, see
  50175. + <http://www.gnu.org/licenses/>. */
  50176. /* I/O port access on the ARM is something of a fiction. What we do is to
  50177. map an appropriate area of /dev/mem into user space so that a program
  50178. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/iopl.c uClibc-git/libc/sysdeps/linux/arm/iopl.c
  50179. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/iopl.c 2012-05-15 09:20:09.000000000 +0200
  50180. +++ uClibc-git/libc/sysdeps/linux/arm/iopl.c 2014-06-02 17:40:34.306713601 +0200
  50181. @@ -14,9 +14,8 @@
  50182. Lesser General Public License for more details.
  50183. You should have received a copy of the GNU Lesser General Public
  50184. - License along with the GNU C Library; if not, write to the Free
  50185. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50186. - 02111-1307 USA. */
  50187. + License along with the GNU C Library; if not, see
  50188. + <http://www.gnu.org/licenses/>. */
  50189. #include <sys/io.h>
  50190. #include <errno.h>
  50191. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/arm/jmpbuf-offsets.h
  50192. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  50193. +++ uClibc-git/libc/sysdeps/linux/arm/jmpbuf-offsets.h 2014-06-02 17:40:34.306713601 +0200
  50194. @@ -0,0 +1,23 @@
  50195. +/* Private macros for accessing __jmp_buf contents. ARM version.
  50196. + Copyright (C) 2006 Free Software Foundation, Inc.
  50197. + This file is part of the GNU C Library.
  50198. +
  50199. + The GNU C Library is free software; you can redistribute it and/or
  50200. + modify it under the terms of the GNU Lesser General Public
  50201. + License as published by the Free Software Foundation; either
  50202. + version 2.1 of the License, or (at your option) any later version.
  50203. +
  50204. + The GNU C Library is distributed in the hope that it will be useful,
  50205. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  50206. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  50207. + Lesser General Public License for more details.
  50208. +
  50209. + You should have received a copy of the GNU Lesser General Public
  50210. + License along with the GNU C Library; if not, see
  50211. + <http://www.gnu.org/licenses/>. */
  50212. +
  50213. +#ifdef __UCLIBC_HAS_FPU__
  50214. +#define __JMP_BUF_SP 20
  50215. +#else
  50216. +#define __JMP_BUF_SP 8
  50217. +#endif
  50218. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/arm/jmpbuf-unwind.h
  50219. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  50220. +++ uClibc-git/libc/sysdeps/linux/arm/jmpbuf-unwind.h 2014-06-02 17:40:34.306713601 +0200
  50221. @@ -0,0 +1,29 @@
  50222. +/*
  50223. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  50224. + *
  50225. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  50226. + */
  50227. +#include <setjmp.h>
  50228. +#include <jmpbuf-offsets.h>
  50229. +
  50230. +/* Test if longjmp to JMPBUF would unwind the frame
  50231. + containing a local variable at ADDRESS. */
  50232. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  50233. + ((void *) (address) < (void *) (jmpbuf[__JMP_BUF_SP]))
  50234. +
  50235. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  50236. +#include <stdint.h>
  50237. +#include <unwind.h>
  50238. +
  50239. +/* Test if longjmp to JMPBUF would unwind the frame
  50240. + containing a local variable at ADDRESS. */
  50241. +#undef _JMPBUF_UNWINDS
  50242. +#define _JMPBUF_UNWINDS(jmpbuf, address, demangle) \
  50243. + ((void *) (address) < (void *) demangle (jmpbuf[__JMP_BUF_SP]))
  50244. +
  50245. +#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
  50246. + _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
  50247. +
  50248. +#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  50249. + ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[__JMP_BUF_SP] - (_adj))
  50250. +#endif
  50251. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/__longjmp.S uClibc-git/libc/sysdeps/linux/arm/__longjmp.S
  50252. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  50253. +++ uClibc-git/libc/sysdeps/linux/arm/__longjmp.S 2014-06-02 17:40:34.266713379 +0200
  50254. @@ -13,16 +13,11 @@
  50255. Lesser General Public License for more details.
  50256. You should have received a copy of the GNU Lesser General Public
  50257. - License along with the GNU C Library; if not, write to the Free
  50258. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50259. - 02111-1307 USA. */
  50260. + License along with the GNU C Library; if not, see
  50261. + <http://www.gnu.org/licenses/>. */
  50262. #include <features.h>
  50263. #include <bits/arm_asm.h>
  50264. -#define _SETJMP_H
  50265. -#define _ASM
  50266. -#include <bits/setjmp.h>
  50267. -
  50268. .global __longjmp
  50269. .type __longjmp,%function
  50270. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/makecontext.c uClibc-git/libc/sysdeps/linux/arm/makecontext.c
  50271. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/makecontext.c 1970-01-01 01:00:00.000000000 +0100
  50272. +++ uClibc-git/libc/sysdeps/linux/arm/makecontext.c 2014-06-02 17:40:34.306713601 +0200
  50273. @@ -0,0 +1,73 @@
  50274. +/* Copyright (C) 2012 Free Software Foundation, Inc.
  50275. + This file is part of the GNU C Library.
  50276. +
  50277. + The GNU C Library is free software; you can redistribute it and/or
  50278. + modify it under the terms of the GNU Lesser General Public
  50279. + License as published by the Free Software Foundation; either
  50280. + version 2.1 of the License, or (at your option) any later version.
  50281. +
  50282. + The GNU C Library is distributed in the hope that it will be useful,
  50283. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  50284. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  50285. + Lesser General Public License for more details.
  50286. +
  50287. + You should have received a copy of the GNU Lesser General Public
  50288. + License along with the GNU C Library; if not, see
  50289. + <http://www.gnu.org/licenses/>. */
  50290. +
  50291. +#include <stdarg.h>
  50292. +#include <ucontext.h>
  50293. +
  50294. +/* Number of arguments that go in registers. */
  50295. +#define NREG_ARGS 4
  50296. +
  50297. +/* Take a context previously prepared via getcontext() and set to
  50298. + call func() with the given int only args. */
  50299. +void
  50300. +__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
  50301. +{
  50302. + extern void __startcontext (void);
  50303. + unsigned long *funcstack;
  50304. + va_list vl;
  50305. + unsigned long *regptr;
  50306. + unsigned int reg;
  50307. + int misaligned;
  50308. +
  50309. + /* Start at the top of stack. */
  50310. + funcstack = (unsigned long *) (ucp->uc_stack.ss_sp + ucp->uc_stack.ss_size);
  50311. +
  50312. + /* Ensure the stack stays eight byte aligned. */
  50313. + misaligned = ((unsigned long) funcstack & 4) != 0;
  50314. +
  50315. + if ((argc > NREG_ARGS) && (argc & 1) != 0)
  50316. + misaligned = !misaligned;
  50317. +
  50318. + if (misaligned)
  50319. + funcstack -= 1;
  50320. +
  50321. + va_start (vl, argc);
  50322. +
  50323. + /* Reserve space for the on-stack arguments. */
  50324. + if (argc > NREG_ARGS)
  50325. + funcstack -= (argc - NREG_ARGS);
  50326. +
  50327. + ucp->uc_mcontext.arm_sp = (unsigned long) funcstack;
  50328. + ucp->uc_mcontext.arm_pc = (unsigned long) func;
  50329. +
  50330. + /* Exit to startcontext() with the next context in R4 */
  50331. + ucp->uc_mcontext.arm_r4 = (unsigned long) ucp->uc_link;
  50332. + ucp->uc_mcontext.arm_lr = (unsigned long) __startcontext;
  50333. +
  50334. + /* The first four arguments go into registers. */
  50335. + regptr = &(ucp->uc_mcontext.arm_r0);
  50336. +
  50337. + for (reg = 0; (reg < argc) && (reg < NREG_ARGS); reg++)
  50338. + *regptr++ = va_arg (vl, unsigned long);
  50339. +
  50340. + /* And the remainder on the stack. */
  50341. + for (; reg < argc; reg++)
  50342. + *funcstack++ = va_arg (vl, unsigned long);
  50343. +
  50344. + va_end (vl);
  50345. +}
  50346. +weak_alias (__makecontext, makecontext)
  50347. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/Makefile.arch uClibc-git/libc/sysdeps/linux/arm/Makefile.arch
  50348. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  50349. +++ uClibc-git/libc/sysdeps/linux/arm/Makefile.arch 2014-06-02 17:40:34.266713379 +0200
  50350. @@ -5,42 +5,40 @@
  50351. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  50352. #
  50353. -CSRC := brk.c ioperm.c iopl.c mmap.c __syscall_error.c sigaction.c
  50354. +CSRC-y := brk.c ioperm.c iopl.c __syscall_error.c sigaction.c
  50355. -SSRC := \
  50356. +SSRC-y := \
  50357. __longjmp.S setjmp.S bsd-setjmp.S \
  50358. - bsd-_setjmp.S sigrestorer.S mmap64.S \
  50359. + bsd-_setjmp.S sigrestorer.S \
  50360. vfork.S clone.S
  50361. -ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  50362. -SSRC += libc-aeabi_read_tp.S libc-thumb_atomics.S
  50363. -endif
  50364. -
  50365. -ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
  50366. -CSRC += posix_fadvise.c posix_fadvise64.c
  50367. -endif
  50368. +SSRC-$(UCLIBC_HAS_LFS) += mmap64.S
  50369. +SSRC-$(UCLIBC_HAS_THREADS_NATIVE) += libc-aeabi_read_tp.S libc-thumb_atomics.S
  50370. +CSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += makecontext.c
  50371. +SSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += getcontext.S setcontext.S swapcontext.S
  50372. # Is our compiler set up for EABI ?
  50373. -IS_EABI:=$(shell $(CC) $(CFLAGS) -x c - -E -dM </dev/null 2>/dev/null \
  50374. - | grep __ARM_EABI__ 2>&1 >/dev/null && echo 'y' \
  50375. - )
  50376. +CC_IS_EABI_CHECK = $(filter-out -include libc-symbols.h,$(CC) $(CFLAGS))
  50377. +$(eval $(call cache-output-var,IS_EABI,$(CC_IS_EABI_CHECK) -x c - -E -dM </dev/null 2>/dev/null | grep __ARM_EABI__ 2>&1 >/dev/null && echo 'y'))
  50378. -ifeq ($(IS_EABI),y)
  50379. -CSRC += aeabi_assert.c aeabi_atexit.c aeabi_errno_addr.c \
  50380. +CSRC-$(IS_EABI) += aeabi_assert.c aeabi_atexit.c aeabi_errno_addr.c \
  50381. aeabi_localeconv.c aeabi_memclr.c aeabi_memcpy.c \
  50382. aeabi_memmove.c aeabi_memset.c find_exidx.c
  50383. -SSRC += syscall-eabi.S
  50384. -ARCH_OBJ_FILTEROUT := syscall.c
  50385. -ifeq ($(UCLIBC_HAS_WCHAR),y)
  50386. -CSRC += aeabi_mb_cur_max.c
  50387. -endif
  50388. -else
  50389. -CSRC += syscall.c
  50390. -endif
  50391. -
  50392. +SSRC-$(IS_EABI) += syscall-eabi.S
  50393. +CSRC-$(if $(IS_EABI),,y)) += syscall.c
  50394. +ARCH_OBJ_FILTEROUT-$(IS_EABI) := syscall.c
  50395. ifeq ($(IS_EABI),y)
  50396. -libc-static-y += $(ARCH_OUT)/aeabi_lcsts.o $(ARCH_OUT)/aeabi_math.o \
  50397. - $(ARCH_OUT)/aeabi_sighandlers.o
  50398. -libc-nonshared-y += $(ARCH_OUT)/aeabi_lcsts.os $(ARCH_OUT)/aeabi_math.os \
  50399. - $(ARCH_OUT)/aeabi_sighandlers.os $(ARCH_OUT)/aeabi_unwind_cpp_pr1.o
  50400. +CSRC-$(UCLIBC_HAS_WCHAR) += aeabi_mb_cur_max.c
  50401. endif
  50402. +
  50403. +libc-static-$(IS_EABI) += $(addprefix $(ARCH_OUT)/, \
  50404. + aeabi_lcsts.o \
  50405. + aeabi_math.o \
  50406. + aeabi_sighandlers.o \
  50407. + )
  50408. +libc-nonshared-$(IS_EABI) += $(addprefix $(ARCH_OUT)/, \
  50409. + aeabi_lcsts.os \
  50410. + aeabi_math.os \
  50411. + aeabi_sighandlers.os \
  50412. + aeabi_unwind_cpp_pr1.o \
  50413. + )
  50414. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/mmap64.S uClibc-git/libc/sysdeps/linux/arm/mmap64.S
  50415. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/mmap64.S 2012-05-15 09:20:09.000000000 +0200
  50416. +++ uClibc-git/libc/sysdeps/linux/arm/mmap64.S 2014-06-02 17:40:34.306713601 +0200
  50417. @@ -12,17 +12,16 @@
  50418. Lesser General Public License for more details.
  50419. You should have received a copy of the GNU Lesser General Public
  50420. - License along with the GNU C Library; if not, write to the Free
  50421. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50422. - 02111-1307 USA. */
  50423. + License along with the GNU C Library; if not, see
  50424. + <http://www.gnu.org/licenses/>. */
  50425. -#include <features.h>
  50426. +#include <_lfs_64.h>
  50427. #define _ERRNO_H
  50428. #include <bits/errno.h>
  50429. #include <sys/syscall.h>
  50430. #include <bits/arm_asm.h>
  50431. -#if defined __UCLIBC_HAS_LFS__ && defined __NR_mmap2
  50432. +#ifdef __NR_mmap2
  50433. /* The mmap2 system call takes six arguments, all in registers. */
  50434. .text
  50435. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/mmap.c uClibc-git/libc/sysdeps/linux/arm/mmap.c
  50436. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/mmap.c 2012-05-15 09:20:09.000000000 +0200
  50437. +++ uClibc-git/libc/sysdeps/linux/arm/mmap.c 1970-01-01 01:00:00.000000000 +0100
  50438. @@ -1,74 +0,0 @@
  50439. -/* vi: set sw=4 ts=4: */
  50440. -/*
  50441. - * _mmap() for uClibc
  50442. - *
  50443. - * Copyright (C) 2000-2004 by Erik Andersen <andersen@codepoet.org>
  50444. - *
  50445. - * GNU Library General Public License (LGPL) version 2 or later.
  50446. - */
  50447. -#include <errno.h>
  50448. -#include <unistd.h>
  50449. -#include <sys/mman.h>
  50450. -#include <sys/syscall.h>
  50451. -
  50452. -#if defined (__NR_mmap) || defined (__NR_mmap2)
  50453. -
  50454. -libc_hidden_proto(mmap)
  50455. -#if defined (__UCLIBC_MMAP_HAS_6_ARGS__) && defined (__NR_mmap)
  50456. -#define __NR__mmap __NR_mmap
  50457. -static __inline__ _syscall6 (__ptr_t, _mmap, __ptr_t, addr, size_t, len,
  50458. - int, prot, int, flags, int, fd, __off_t, offset)
  50459. -__ptr_t mmap(__ptr_t addr, size_t len, int prot,
  50460. - int flags, int fd, __off_t offset)
  50461. -{
  50462. - return (__ptr_t) _mmap (addr, len, prot, flags,
  50463. - fd, offset);
  50464. -}
  50465. -
  50466. -#elif defined (__NR_mmap2)
  50467. -#define __NR__mmap __NR_mmap2
  50468. -
  50469. -#ifndef MMAP2_PAGE_SHIFT
  50470. -# define MMAP2_PAGE_SHIFT 12
  50471. -#endif
  50472. -
  50473. -static __inline__ _syscall6 (__ptr_t, _mmap, __ptr_t, addr, size_t, len,
  50474. - int, prot, int, flags, int, fd, __off_t, offset);
  50475. -__ptr_t mmap(__ptr_t addr, size_t len, int prot,
  50476. - int flags, int fd, __off_t offset)
  50477. -{
  50478. - /* check if offset is page aligned */
  50479. - if (offset & ((1 << MMAP2_PAGE_SHIFT) - 1))
  50480. - {
  50481. - __set_errno(EINVAL);
  50482. - return MAP_FAILED;
  50483. - }
  50484. -#ifdef __USE_FILE_OFFSET64
  50485. - return (__ptr_t) _mmap (addr, len, prot, flags,
  50486. - fd, ((__u_quad_t) offset >> MMAP2_PAGE_SHIFT));
  50487. -#else
  50488. - return (__ptr_t) _mmap (addr, len, prot, flags,
  50489. - fd, ((__u_long) offset >> MMAP2_PAGE_SHIFT));
  50490. -#endif
  50491. -}
  50492. -#elif defined (__NR_mmap)
  50493. -# define __NR__mmap __NR_mmap
  50494. -static __inline__ _syscall1(__ptr_t, _mmap, unsigned long *, buffer)
  50495. -__ptr_t mmap(__ptr_t addr, size_t len, int prot,
  50496. - int flags, int fd, __off_t offset)
  50497. -{
  50498. - unsigned long buffer[6];
  50499. -
  50500. - buffer[0] = (unsigned long) addr;
  50501. - buffer[1] = (unsigned long) len;
  50502. - buffer[2] = (unsigned long) prot;
  50503. - buffer[3] = (unsigned long) flags;
  50504. - buffer[4] = (unsigned long) fd;
  50505. - buffer[5] = (unsigned long) offset;
  50506. - return (__ptr_t) _mmap(buffer);
  50507. -}
  50508. -#endif
  50509. -libc_hidden_def (mmap)
  50510. -#else
  50511. -# error "Your architecture doesn't seem to provide mmap() !?"
  50512. -#endif
  50513. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/posix_fadvise64.c uClibc-git/libc/sysdeps/linux/arm/posix_fadvise64.c
  50514. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/posix_fadvise64.c 2012-05-15 09:20:09.000000000 +0200
  50515. +++ uClibc-git/libc/sysdeps/linux/arm/posix_fadvise64.c 1970-01-01 01:00:00.000000000 +0100
  50516. @@ -1,59 +0,0 @@
  50517. -/* vi: set sw=4 ts=4: */
  50518. -/*
  50519. - * posix_fadvise64() for ARM uClibc
  50520. - * http://www.opengroup.org/onlinepubs/009695399/functions/posix_fadvise.html
  50521. - *
  50522. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  50523. - *
  50524. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  50525. - */
  50526. -
  50527. -#include <features.h>
  50528. -#include <unistd.h>
  50529. -#include <errno.h>
  50530. -#include <endian.h>
  50531. -#include <stdint.h>
  50532. -#include <sys/types.h>
  50533. -#include <sys/syscall.h>
  50534. -#include <fcntl.h>
  50535. -
  50536. -#ifdef __UCLIBC_HAS_LFS__
  50537. -
  50538. -#if defined __NR_arm_fadvise64_64
  50539. -
  50540. -/* Was named __libc_posix_fadvise64 for some inexplicable reason.
  50541. -** google says only uclibc has *__libc*_posix_fadviseXXX,
  50542. -** so it cannot be compat with anything.
  50543. -**
  50544. -** Remove this comment and one at the end after 0.9.31
  50545. -*/
  50546. -
  50547. -/* This is for the ARM version of fadvise64_64 which swaps the params
  50548. - * about to avoid having ABI compat issues
  50549. - */
  50550. -#define __NR___syscall_arm_fadvise64_64 __NR_arm_fadvise64_64
  50551. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)
  50552. -{
  50553. - INTERNAL_SYSCALL_DECL (err);
  50554. - int ret = INTERNAL_SYSCALL (arm_fadvise64_64, err, 6, fd, advise,
  50555. - __LONG_LONG_PAIR ((long)(offset >> 32), (long)offset),
  50556. - __LONG_LONG_PAIR ((long)(len >> 32), (long)len));
  50557. - if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
  50558. - return 0;
  50559. - if (INTERNAL_SYSCALL_ERRNO (ret, err) != ENOSYS)
  50560. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  50561. - return 0;
  50562. -}
  50563. -
  50564. -/* weak_alias(__libc_posix_fadvise64, posix_fadvise64); */
  50565. -
  50566. -#elif defined __UCLIBC_HAS_STUBS__
  50567. -
  50568. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)
  50569. -{
  50570. - return ENOSYS;
  50571. -}
  50572. -
  50573. -#endif
  50574. -
  50575. -#endif
  50576. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/posix_fadvise.c uClibc-git/libc/sysdeps/linux/arm/posix_fadvise.c
  50577. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/posix_fadvise.c 2012-05-15 09:20:09.000000000 +0200
  50578. +++ uClibc-git/libc/sysdeps/linux/arm/posix_fadvise.c 1970-01-01 01:00:00.000000000 +0100
  50579. @@ -1,49 +0,0 @@
  50580. -/* vi: set sw=4 ts=4: */
  50581. -/*
  50582. - * posix_fadvise() for ARM uClibc
  50583. - * http://www.opengroup.org/onlinepubs/009695399/functions/posix_fadvise.html
  50584. - *
  50585. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  50586. - *
  50587. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  50588. - */
  50589. -#include <sys/syscall.h>
  50590. -#include <fcntl.h>
  50591. -
  50592. -#if defined __NR_arm_fadvise64_64
  50593. -
  50594. -#define HIGH_BITS(x) (sizeof(x) > 4 ? (x) >> 32 : 0)
  50595. -
  50596. -/* Was named __libc_posix_fadvise for some inexplicable reason.
  50597. -** google says only uclibc has *__libc*_posix_fadviseXXX,
  50598. -** so it cannot be compat with anything.
  50599. -**
  50600. -** Remove this comment and one at the end after 0.9.31
  50601. -*/
  50602. -
  50603. -/* This is for the ARM version of fadvise64_64 which swaps the params
  50604. - * about to avoid having ABI compat issues
  50605. - */
  50606. -#define __NR___syscall_arm_fadvise64_64 __NR_arm_fadvise64_64
  50607. -int posix_fadvise(int fd, off_t offset, off_t len, int advise)
  50608. -{
  50609. - INTERNAL_SYSCALL_DECL (err);
  50610. - int ret = INTERNAL_SYSCALL (arm_fadvise64_64, err, 6, fd, advise,
  50611. - __LONG_LONG_PAIR (HIGH_BITS(offset), (long)offset),
  50612. - __LONG_LONG_PAIR (HIGH_BITS(len), (long)len));
  50613. -
  50614. - if (INTERNAL_SYSCALL_ERROR_P (ret, err))
  50615. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  50616. - return 0;
  50617. -}
  50618. -
  50619. -/* weak_alias(__libc_posix_fadvise, posix_fadvise); */
  50620. -
  50621. -#elif defined __UCLIBC_HAS_STUBS__
  50622. -
  50623. -int posix_fadvise(int fd attribute_unused, off_t offset attribute_unused, off_t len attribute_unused, int advice attribute_unused)
  50624. -{
  50625. - return ENOSYS;
  50626. -}
  50627. -
  50628. -#endif
  50629. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/setcontext.S uClibc-git/libc/sysdeps/linux/arm/setcontext.S
  50630. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/setcontext.S 1970-01-01 01:00:00.000000000 +0100
  50631. +++ uClibc-git/libc/sysdeps/linux/arm/setcontext.S 2014-06-02 17:40:34.306713601 +0200
  50632. @@ -0,0 +1,76 @@
  50633. +/* Copyright (C) 2012 Free Software Foundation, Inc.
  50634. + This file is part of the GNU C Library.
  50635. +
  50636. + The GNU C Library is free software; you can redistribute it and/or
  50637. + modify it under the terms of the GNU Lesser General Public
  50638. + License as published by the Free Software Foundation; either
  50639. + version 2.1 of the License, or (at your option) any later version.
  50640. +
  50641. + The GNU C Library is distributed in the hope that it will be useful,
  50642. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  50643. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  50644. + Lesser General Public License for more details.
  50645. +
  50646. + You should have received a copy of the GNU Lesser General Public
  50647. + License along with the GNU C Library; if not, see
  50648. + <http://www.gnu.org/licenses/>. */
  50649. +
  50650. +#include <sysdep.h>
  50651. +
  50652. +#include "ucontext_i.h"
  50653. +
  50654. + .syntax unified
  50655. + .text
  50656. +
  50657. +/* int setcontext (const ucontext_t *ucp) */
  50658. +
  50659. +ENTRY(__setcontext)
  50660. + mov r4, r0
  50661. +
  50662. +#if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
  50663. +# ifdef __VFP_FP__
  50664. + /* Following instruction is vldmia r0!, {d8-d15}. */
  50665. + ldc p11, cr8, [r0], #64
  50666. + /* Restore the floating-point status register. */
  50667. + ldr r1, [r0], #4
  50668. + /* Following instruction is fmxr fpscr, r1. */
  50669. + mcr p10, 7, r1, cr1, cr0, 0
  50670. +# endif
  50671. +#endif
  50672. +
  50673. +#ifdef __IWMMXT__
  50674. + /* Restore the call-preserved iWMMXt registers. */
  50675. + /* Following instructions are wldrd wr10, [r0], #8 (etc.) */
  50676. + ldcl p1, cr10, [r0], #8
  50677. + ldcl p1, cr11, [r0], #8
  50678. + ldcl p1, cr12, [r0], #8
  50679. + ldcl p1, cr13, [r0], #8
  50680. + ldcl p1, cr14, [r0], #8
  50681. + ldcl p1, cr15, [r0], #8
  50682. +#endif
  50683. +
  50684. + /* Now bring back the signal status. */
  50685. + mov r0, #SIG_SETMASK
  50686. + add r1, r4, #UCONTEXT_SIGMASK
  50687. + mov r2, #0
  50688. + bl PLTJMP(sigprocmask)
  50689. +
  50690. + /* Loading r0-r3 makes makecontext easier. */
  50691. + add r14, r4, #MCONTEXT_ARM_R0
  50692. + ldmia r14, {r0-r11}
  50693. + ldr r13, [r14, #(MCONTEXT_ARM_SP - MCONTEXT_ARM_R0)]
  50694. + add r14, r14, #(MCONTEXT_ARM_LR - MCONTEXT_ARM_R0)
  50695. + ldmia r14, {r14, pc}
  50696. +
  50697. +END(setcontext)
  50698. +weak_alias(__setcontext, setcontext)
  50699. +
  50700. + /* Called when a makecontext() context returns. Start the
  50701. + context in R4 or fall through to exit(). */
  50702. +ENTRY(__startcontext)
  50703. + movs r0, r4
  50704. + bne PLTJMP(__setcontext)
  50705. +
  50706. + @ New context was 0 - exit
  50707. + b PLTJMP(_exit)
  50708. +END(__startcontext)
  50709. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/setjmp.S uClibc-git/libc/sysdeps/linux/arm/setjmp.S
  50710. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  50711. +++ uClibc-git/libc/sysdeps/linux/arm/setjmp.S 2014-06-02 17:40:34.306713601 +0200
  50712. @@ -13,9 +13,8 @@
  50713. Lesser General Public License for more details.
  50714. You should have received a copy of the GNU Lesser General Public
  50715. - License along with the GNU C Library; if not, write to the Free
  50716. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50717. - 02111-1307 USA. */
  50718. + License along with the GNU C Library; if not, see
  50719. + <http://www.gnu.org/licenses/>. */
  50720. #include <features.h>
  50721. #include <bits/arm_asm.h>
  50722. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sigaction.c uClibc-git/libc/sysdeps/linux/arm/sigaction.c
  50723. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  50724. +++ uClibc-git/libc/sysdeps/linux/arm/sigaction.c 2014-06-02 17:40:34.306713601 +0200
  50725. @@ -12,9 +12,8 @@
  50726. Lesser General Public License for more details.
  50727. You should have received a copy of the GNU Lesser General Public
  50728. - License along with the GNU C Library; if not, write to the Free
  50729. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50730. - 02111-1307 USA.
  50731. + License along with the GNU C Library; if not, see
  50732. + <http://www.gnu.org/licenses/>.
  50733. Totally hacked up for uClibc by Erik Andersen <andersen@codepoet.org>
  50734. */
  50735. @@ -29,8 +28,6 @@
  50736. extern void __default_sa_restorer(void);
  50737. extern void __default_rt_sa_restorer(void);
  50738. -extern __typeof(sigaction) __libc_sigaction;
  50739. -
  50740. /* When RT signals are in use we need to use a different return stub. */
  50741. #ifdef __NR_rt_sigreturn
  50742. #define choose_restorer(flags) \
  50743. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sigrestorer.S uClibc-git/libc/sysdeps/linux/arm/sigrestorer.S
  50744. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sigrestorer.S 2012-05-15 09:20:09.000000000 +0200
  50745. +++ uClibc-git/libc/sysdeps/linux/arm/sigrestorer.S 2014-06-02 17:40:34.306713601 +0200
  50746. @@ -12,9 +12,8 @@
  50747. Lesser General Public License for more details.
  50748. You should have received a copy of the GNU Lesser General Public
  50749. - License along with the GNU C Library; if not, write to the Free
  50750. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50751. - 02111-1307 USA. */
  50752. + License along with the GNU C Library; if not, see
  50753. + <http://www.gnu.org/licenses/>. */
  50754. #include <bits/arm_asm.h>
  50755. #include <sys/syscall.h>
  50756. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/swapcontext.S uClibc-git/libc/sysdeps/linux/arm/swapcontext.S
  50757. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/swapcontext.S 1970-01-01 01:00:00.000000000 +0100
  50758. +++ uClibc-git/libc/sysdeps/linux/arm/swapcontext.S 2014-06-02 17:40:34.306713601 +0200
  50759. @@ -0,0 +1,63 @@
  50760. +/* Copyright (C) 2012 Free Software Foundation, Inc.
  50761. + This file is part of the GNU C Library.
  50762. +
  50763. + The GNU C Library is free software; you can redistribute it and/or
  50764. + modify it under the terms of the GNU Lesser General Public
  50765. + License as published by the Free Software Foundation; either
  50766. + version 2.1 of the License, or (at your option) any later version.
  50767. +
  50768. + The GNU C Library is distributed in the hope that it will be useful,
  50769. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  50770. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  50771. + Lesser General Public License for more details.
  50772. +
  50773. + You should have received a copy of the GNU Lesser General Public
  50774. + License along with the GNU C Library; if not, see
  50775. + <http://www.gnu.org/licenses/>. */
  50776. +
  50777. +#include <sysdep.h>
  50778. +
  50779. +#include "ucontext_i.h"
  50780. +
  50781. + .syntax unified
  50782. + .text
  50783. +
  50784. +/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
  50785. +
  50786. +ENTRY(swapcontext)
  50787. +
  50788. + /* Have getcontext() do most of the work then fix up
  50789. + LR afterwards. Save R3 to keep the stack aligned. */
  50790. + push {r0,r1,r3,r14}
  50791. + cfi_adjust_cfa_offset (16)
  50792. + cfi_rel_offset (r0,0)
  50793. + cfi_rel_offset (r1,4)
  50794. + cfi_rel_offset (r3,8)
  50795. + cfi_rel_offset (r14,12)
  50796. +
  50797. + bl __getcontext
  50798. + mov r4, r0
  50799. +
  50800. + pop {r0,r1,r3,r14}
  50801. + cfi_adjust_cfa_offset (-16)
  50802. + cfi_restore (r0)
  50803. + cfi_restore (r1)
  50804. + cfi_restore (r3)
  50805. + cfi_restore (r14)
  50806. +
  50807. + /* Exit if getcontext() failed. */
  50808. + cmp r4, #0
  50809. + itt ne
  50810. + movne r0, r4
  50811. + RETINSTR(ne, r14)
  50812. +
  50813. + /* Fix up LR and the PC. */
  50814. + str r13,[r0, #MCONTEXT_ARM_SP]
  50815. + str r14,[r0, #MCONTEXT_ARM_LR]
  50816. + str r14,[r0, #MCONTEXT_ARM_PC]
  50817. +
  50818. + /* And swap using swapcontext(). */
  50819. + mov r0, r1
  50820. + b __setcontext
  50821. +
  50822. +END(swapcontext)
  50823. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/elf.h uClibc-git/libc/sysdeps/linux/arm/sys/elf.h
  50824. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/elf.h 2012-05-15 09:20:09.000000000 +0200
  50825. +++ uClibc-git/libc/sysdeps/linux/arm/sys/elf.h 2014-06-02 17:40:34.306713601 +0200
  50826. @@ -12,9 +12,8 @@
  50827. Lesser General Public License for more details.
  50828. You should have received a copy of the GNU Lesser General Public
  50829. - License along with the GNU C Library; if not, write to the Free
  50830. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50831. - 02111-1307 USA. */
  50832. + License along with the GNU C Library; if not, see
  50833. + <http://www.gnu.org/licenses/>. */
  50834. #ifndef _SYS_ELF_H
  50835. #define _SYS_ELF_H 1
  50836. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/io.h uClibc-git/libc/sysdeps/linux/arm/sys/io.h
  50837. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/io.h 2012-05-15 09:20:09.000000000 +0200
  50838. +++ uClibc-git/libc/sysdeps/linux/arm/sys/io.h 2014-06-02 17:40:34.306713601 +0200
  50839. @@ -12,9 +12,8 @@
  50840. Lesser General Public License for more details.
  50841. You should have received a copy of the GNU Lesser General Public
  50842. - License along with the GNU C Library; if not, write to the Free
  50843. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50844. - 02111-1307 USA. */
  50845. + License along with the GNU C Library; if not, see
  50846. + <http://www.gnu.org/licenses/>. */
  50847. #ifndef _SYS_IO_H
  50848. @@ -23,6 +22,7 @@
  50849. __BEGIN_DECLS
  50850. +#if defined __UCLIBC_LINUX_SPECIFIC__
  50851. /* If TURN_ON is TRUE, request for permission to do direct i/o on the
  50852. port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
  50853. permission off for that range. This call requires root privileges. */
  50854. @@ -34,6 +34,7 @@
  50855. permission to access any I/O port is granted. This call requires
  50856. root privileges. */
  50857. extern int iopl (int __level) __THROW;
  50858. +#endif /* __UCLIBC_LINUX_SPECIFIC__ */
  50859. /* The functions that actually perform reads and writes. */
  50860. extern unsigned char inb (unsigned long int port) __THROW;
  50861. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/procfs.h uClibc-git/libc/sysdeps/linux/arm/sys/procfs.h
  50862. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  50863. +++ uClibc-git/libc/sysdeps/linux/arm/sys/procfs.h 2014-06-02 17:40:34.306713601 +0200
  50864. @@ -12,9 +12,8 @@
  50865. Lesser General Public License for more details.
  50866. You should have received a copy of the GNU Lesser General Public
  50867. - License along with the GNU C Library; if not, write to the Free
  50868. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50869. - 02111-1307 USA. */
  50870. + License along with the GNU C Library; if not, see
  50871. + <http://www.gnu.org/licenses/>. */
  50872. #ifndef _SYS_PROCFS_H
  50873. #define _SYS_PROCFS_H 1
  50874. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/ucontext.h uClibc-git/libc/sysdeps/linux/arm/sys/ucontext.h
  50875. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  50876. +++ uClibc-git/libc/sysdeps/linux/arm/sys/ucontext.h 2014-06-02 17:40:34.310713623 +0200
  50877. @@ -12,9 +12,8 @@
  50878. Lesser General Public License for more details.
  50879. You should have received a copy of the GNU Lesser General Public
  50880. - License along with the GNU C Library; if not, write to the Free
  50881. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50882. - 02111-1307 USA. */
  50883. + License along with the GNU C Library; if not, see
  50884. + <http://www.gnu.org/licenses/>. */
  50885. /* System V/ARM ABI compliant context switching support. */
  50886. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/user.h uClibc-git/libc/sysdeps/linux/arm/sys/user.h
  50887. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  50888. +++ uClibc-git/libc/sysdeps/linux/arm/sys/user.h 2014-06-02 17:40:34.310713623 +0200
  50889. @@ -12,9 +12,8 @@
  50890. Lesser General Public License for more details.
  50891. You should have received a copy of the GNU Lesser General Public
  50892. - License along with the GNU C Library; if not, write to the Free
  50893. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50894. - 02111-1307 USA. */
  50895. + License along with the GNU C Library; if not, see
  50896. + <http://www.gnu.org/licenses/>. */
  50897. #ifndef _SYS_USER_H
  50898. #define _SYS_USER_H 1
  50899. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/syscall-eabi.S uClibc-git/libc/sysdeps/linux/arm/syscall-eabi.S
  50900. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/syscall-eabi.S 2012-05-15 09:20:09.000000000 +0200
  50901. +++ uClibc-git/libc/sysdeps/linux/arm/syscall-eabi.S 2014-06-02 17:40:34.310713623 +0200
  50902. @@ -12,9 +12,8 @@
  50903. Lesser General Public License for more details.
  50904. You should have received a copy of the GNU Lesser General Public
  50905. - License along with the GNU C Library; if not, write to the Free
  50906. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50907. - 02111-1307 USA. */
  50908. + License along with the GNU C Library; if not, see
  50909. + <http://www.gnu.org/licenses/>. */
  50910. #include <sys/syscall.h>
  50911. #include <bits/arm_asm.h>
  50912. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/sysdep.h uClibc-git/libc/sysdeps/linux/arm/sysdep.h
  50913. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  50914. +++ uClibc-git/libc/sysdeps/linux/arm/sysdep.h 2014-06-02 17:40:34.310713623 +0200
  50915. @@ -13,9 +13,8 @@
  50916. Lesser General Public License for more details.
  50917. You should have received a copy of the GNU Lesser General Public
  50918. - License along with the GNU C Library; if not, write to the Free
  50919. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  50920. - 02111-1307 USA. */
  50921. + License along with the GNU C Library; if not, see
  50922. + <http://www.gnu.org/licenses/>. */
  50923. #ifndef _LINUX_ARM_SYSDEP_H
  50924. #define _LINUX_ARM_SYSDEP_H 1
  50925. @@ -157,6 +156,7 @@
  50926. #define PSEUDO_END_ERRVAL(name) \
  50927. END (name)
  50928. +#undef ret_ERRVAL
  50929. #define ret_ERRVAL PSEUDO_RET_NOERRNO
  50930. #if defined NOT_IN_libc
  50931. @@ -254,7 +254,7 @@
  50932. #undef INLINE_SYSCALL
  50933. #define INLINE_SYSCALL(name, nr, args...) \
  50934. ({ unsigned int _inline_sys_result = INTERNAL_SYSCALL (name, , nr, args); \
  50935. - if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (_inline_sys_result, ), 0)) \
  50936. + if (unlikely (INTERNAL_SYSCALL_ERROR_P (_inline_sys_result, ))) \
  50937. { \
  50938. __set_errno (INTERNAL_SYSCALL_ERRNO (_inline_sys_result, )); \
  50939. _inline_sys_result = (unsigned int) -1; \
  50940. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/ucontext_i.sym uClibc-git/libc/sysdeps/linux/arm/ucontext_i.sym
  50941. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/ucontext_i.sym 1970-01-01 01:00:00.000000000 +0100
  50942. +++ uClibc-git/libc/sysdeps/linux/arm/ucontext_i.sym 2014-06-02 17:40:34.310713623 +0200
  50943. @@ -0,0 +1,30 @@
  50944. +#include <inttypes.h>
  50945. +#include <signal.h>
  50946. +#include <stddef.h>
  50947. +#include <sys/ucontext.h>
  50948. +
  50949. +SIG_BLOCK
  50950. +SIG_SETMASK
  50951. +
  50952. +-- Offsets of the fields in the ucontext_t structure.
  50953. +#define ucontext(member) offsetof (ucontext_t, member)
  50954. +#define mcontext(member) ucontext (uc_mcontext.member)
  50955. +
  50956. +UCONTEXT_FLAGS ucontext (uc_flags)
  50957. +UCONTEXT_LINK ucontext (uc_link)
  50958. +UCONTEXT_STACK ucontext (uc_stack)
  50959. +UCONTEXT_MCONTEXT ucontext (uc_mcontext)
  50960. +UCONTEXT_SIGMASK ucontext (uc_sigmask)
  50961. +
  50962. +UCONTEXT_REGSPACE ucontext (uc_regspace)
  50963. +
  50964. +MCONTEXT_TRAP_NO mcontext (trap_no)
  50965. +MCONTEXT_ERROR_CODE mcontext (error_code)
  50966. +MCONTEXT_OLDMASK mcontext (oldmask)
  50967. +MCONTEXT_ARM_R0 mcontext (arm_r0)
  50968. +MCONTEXT_ARM_R4 mcontext (arm_r4)
  50969. +MCONTEXT_ARM_SP mcontext (arm_sp)
  50970. +MCONTEXT_ARM_LR mcontext (arm_lr)
  50971. +MCONTEXT_ARM_PC mcontext (arm_pc)
  50972. +MCONTEXT_ARM_CPSR mcontext (arm_cpsr)
  50973. +MCONTEXT_FAULT_ADDRESS mcontext (fault_address)
  50974. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/unwind.h uClibc-git/libc/sysdeps/linux/arm/unwind.h
  50975. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/unwind.h 2012-05-15 09:20:09.000000000 +0200
  50976. +++ uClibc-git/libc/sysdeps/linux/arm/unwind.h 2014-06-02 17:40:34.310713623 +0200
  50977. @@ -22,9 +22,8 @@
  50978. General Public License for more details.
  50979. You should have received a copy of the GNU General Public License
  50980. - along with this program; see the file COPYING. If not, write to
  50981. - the Free Software Foundation, 51 Franklin Street, Fifth Floor,
  50982. - Boston, MA 02110-1301, USA. */
  50983. + along with this program; see the file COPYING. If not, see
  50984. + <http://www.gnu.org/licenses/>. */
  50985. /* Language-independent unwinder header public defines. This contains both
  50986. ABI defined objects, and GNU support routines. */
  50987. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/arm/vfork.S uClibc-git/libc/sysdeps/linux/arm/vfork.S
  50988. --- uClibc-0.9.33.2/libc/sysdeps/linux/arm/vfork.S 2012-05-15 09:20:09.000000000 +0200
  50989. +++ uClibc-git/libc/sysdeps/linux/arm/vfork.S 2014-06-02 17:40:34.310713623 +0200
  50990. @@ -104,5 +104,5 @@
  50991. .size __vfork,.-__vfork
  50992. weak_alias(__vfork,vfork)
  50993. -libc_hidden_weak(vfork)
  50994. +libc_hidden_def(vfork)
  50995. #endif
  50996. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/atomic.h uClibc-git/libc/sysdeps/linux/avr32/bits/atomic.h
  50997. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  50998. +++ uClibc-git/libc/sysdeps/linux/avr32/bits/atomic.h 2014-06-02 17:40:34.310713623 +0200
  50999. @@ -28,6 +28,7 @@
  51000. #define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
  51001. ({ \
  51002. + __uint32_t __result; \
  51003. __typeof__(*(mem)) __prev; \
  51004. __asm__ __volatile__( \
  51005. "/* __arch_compare_and_exchange_val_32_acq */\n" \
  51006. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/avr32/bits/kernel_types.h
  51007. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  51008. +++ uClibc-git/libc/sysdeps/linux/avr32/bits/kernel_types.h 2014-06-02 17:40:34.310713623 +0200
  51009. @@ -39,6 +39,8 @@
  51010. typedef unsigned short __kernel_old_uid_t;
  51011. typedef unsigned short __kernel_old_gid_t;
  51012. typedef unsigned short __kernel_old_dev_t;
  51013. +typedef long __kernel_long_t;
  51014. +typedef unsigned long __kernel_ulong_t;
  51015. #ifdef __GNUC__
  51016. typedef long long __kernel_loff_t;
  51017. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/setjmp.h uClibc-git/libc/sysdeps/linux/avr32/bits/setjmp.h
  51018. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  51019. +++ uClibc-git/libc/sysdeps/linux/avr32/bits/setjmp.h 2014-06-02 17:40:34.310713623 +0200
  51020. @@ -12,19 +12,10 @@
  51021. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  51022. #endif
  51023. -#ifndef _ASM
  51024. /*
  51025. * The jump buffer contains r0-r7, sr, sp and lr. Other registers are
  51026. * not saved.
  51027. */
  51028. typedef int __jmp_buf[11];
  51029. -#endif
  51030. -
  51031. -#define __JMP_BUF_SP 4
  51032. -
  51033. -/* Test if longjmp to JMPBUF would unwind the frame containing a local
  51034. - variable at ADDRESS. */
  51035. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  51036. - ((void *)(address) < (void *)(jmpbuf[__JMP_BUF_SP]))
  51037. #endif /* _BITS_SETJMP_H */
  51038. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/avr32/bits/stackinfo.h
  51039. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  51040. +++ uClibc-git/libc/sysdeps/linux/avr32/bits/stackinfo.h 2014-06-02 17:40:34.310713623 +0200
  51041. @@ -12,9 +12,8 @@
  51042. Lesser General Public License for more details.
  51043. You should have received a copy of the GNU Lesser General Public
  51044. - License along with the GNU C Library; if not, write to the Free
  51045. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51046. - 02111-1307 USA. */
  51047. + License along with the GNU C Library; if not, see
  51048. + <http://www.gnu.org/licenses/>. */
  51049. /* This file contains a bit of information about the stack allocation
  51050. of the processor. */
  51051. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/avr32/bits/uClibc_arch_features.h
  51052. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  51053. +++ uClibc-git/libc/sysdeps/linux/avr32/bits/uClibc_arch_features.h 2014-06-02 17:40:34.310713623 +0200
  51054. @@ -12,8 +12,8 @@
  51055. /* can your target use syscall6() for mmap ? */
  51056. #define __UCLIBC_MMAP_HAS_6_ARGS__
  51057. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  51058. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  51059. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  51060. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  51061. /* does your target have a broken create_module() ? */
  51062. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  51063. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/avr32/jmpbuf-offsets.h
  51064. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  51065. +++ uClibc-git/libc/sysdeps/linux/avr32/jmpbuf-offsets.h 2014-06-02 17:40:34.310713623 +0200
  51066. @@ -0,0 +1,9 @@
  51067. +/* Private macros for accessing __jmp_buf contents. avr32 version.
  51068. + * Copyright (C) 2004-2005 Atmel Corporation
  51069. + *
  51070. + * This file is subject to the terms and conditions of the GNU Lesser General
  51071. + * Public License. See the file "COPYING.LIB" in the main directory of this
  51072. + * archive for more details.
  51073. + */
  51074. +
  51075. +#define __JMP_BUF_SP 4
  51076. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/avr32/jmpbuf-unwind.h
  51077. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  51078. +++ uClibc-git/libc/sysdeps/linux/avr32/jmpbuf-unwind.h 2014-06-02 17:40:34.310713623 +0200
  51079. @@ -0,0 +1,14 @@
  51080. +/*
  51081. + * Copyright (C) 2004-2005 Atmel Corporation
  51082. + *
  51083. + * This file is subject to the terms and conditions of the GNU Lesser General
  51084. + * Public License. See the file "COPYING.LIB" in the main directory of this
  51085. + * archive for more details.
  51086. + */
  51087. +#include <setjmp.h>
  51088. +#include <jmpbuf-offsets.h>
  51089. +
  51090. +/* Test if longjmp to JMPBUF would unwind the frame containing a local
  51091. + variable at ADDRESS. */
  51092. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  51093. + ((void *)(address) < (void *)(jmpbuf[__JMP_BUF_SP]))
  51094. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/Makefile uClibc-git/libc/sysdeps/linux/avr32/Makefile
  51095. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/Makefile 2012-05-15 09:20:09.000000000 +0200
  51096. +++ uClibc-git/libc/sysdeps/linux/avr32/Makefile 2014-06-02 17:40:34.310713623 +0200
  51097. @@ -13,8 +13,7 @@
  51098. # details.
  51099. #
  51100. # You should have received a copy of the GNU Library General Public License
  51101. -# along with this program; if not, write to the Free Software Foundation, Inc.,
  51102. -# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  51103. +# along with this program; if not, see <http://www.gnu.org/licenses/>.
  51104. top_srcdir=../../../../
  51105. top_builddir=../../../../
  51106. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/Makefile.arch uClibc-git/libc/sysdeps/linux/avr32/Makefile.arch
  51107. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  51108. +++ uClibc-git/libc/sysdeps/linux/avr32/Makefile.arch 2014-06-02 17:40:34.310713623 +0200
  51109. @@ -5,7 +5,7 @@
  51110. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  51111. #
  51112. -CSRC := brk.c clone.c mmap.c prctl.c sigaction.c
  51113. +CSRC-y := brk.c clone.c mmap.c prctl.c sigaction.c
  51114. -SSRC := __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
  51115. +SSRC-y := __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
  51116. sigrestorer.S syscall.S vfork.S
  51117. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/mmap.c uClibc-git/libc/sysdeps/linux/avr32/mmap.c
  51118. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/mmap.c 2012-05-15 09:20:09.000000000 +0200
  51119. +++ uClibc-git/libc/sysdeps/linux/avr32/mmap.c 2014-06-02 17:40:34.310713623 +0200
  51120. @@ -12,10 +12,10 @@
  51121. #include <sys/syscall.h>
  51122. -static _syscall6(__ptr_t, mmap2, __ptr_t, addr, size_t, len, int, prot,
  51123. - int, flags, int, fd, __off_t, pgoff)
  51124. +static __inline__ _syscall6(void *, mmap2, void *, addr, size_t, len, int, prot,
  51125. + int, flags, int, fd, __off_t, pgoff)
  51126. -__ptr_t mmap(__ptr_t addr, size_t len, int prot, int flags, int fd, __off_t offset)
  51127. +void *mmap(void *addr, size_t len, int prot, int flags, int fd, __off_t offset)
  51128. {
  51129. unsigned long page_size = sysconf(_SC_PAGESIZE);
  51130. unsigned long pgoff;
  51131. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/setjmp.S uClibc-git/libc/sysdeps/linux/avr32/setjmp.S
  51132. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  51133. +++ uClibc-git/libc/sysdeps/linux/avr32/setjmp.S 2014-06-02 17:40:34.310713623 +0200
  51134. @@ -5,9 +5,6 @@
  51135. * Public License. See the file "COPYING.LIB" in the main directory of this
  51136. * archive for more details.
  51137. */
  51138. -#define _SETJMP_H
  51139. -#define _ASM
  51140. -#include <bits/setjmp.h>
  51141. .text
  51142. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sigaction.c uClibc-git/libc/sysdeps/linux/avr32/sigaction.c
  51143. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  51144. +++ uClibc-git/libc/sysdeps/linux/avr32/sigaction.c 2014-06-02 17:40:34.310713623 +0200
  51145. @@ -14,8 +14,6 @@
  51146. #define SA_RESTORER 0x04000000
  51147. extern void __default_rt_sa_restorer(void);
  51148. -extern __typeof(sigaction) __libc_sigaction;
  51149. -
  51150. /*
  51151. * If act is not NULL, change the action for sig to *act.
  51152. * If oact is not NULL, put the old action for sig in *oact.
  51153. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/elf.h uClibc-git/libc/sysdeps/linux/avr32/sys/elf.h
  51154. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/elf.h 2012-05-15 09:20:09.000000000 +0200
  51155. +++ uClibc-git/libc/sysdeps/linux/avr32/sys/elf.h 2014-06-02 17:40:34.310713623 +0200
  51156. @@ -12,9 +12,8 @@
  51157. Lesser General Public License for more details.
  51158. You should have received a copy of the GNU Lesser General Public
  51159. - License along with the GNU C Library; if not, write to the Free
  51160. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51161. - 02111-1307 USA. */
  51162. + License along with the GNU C Library; if not, see
  51163. + <http://www.gnu.org/licenses/>. */
  51164. #ifndef _SYS_ELF_H
  51165. #define _SYS_ELF_H 1
  51166. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/procfs.h uClibc-git/libc/sysdeps/linux/avr32/sys/procfs.h
  51167. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  51168. +++ uClibc-git/libc/sysdeps/linux/avr32/sys/procfs.h 2014-06-02 17:40:34.310713623 +0200
  51169. @@ -12,9 +12,8 @@
  51170. Lesser General Public License for more details.
  51171. You should have received a copy of the GNU Lesser General Public
  51172. - License along with the GNU C Library; if not, write to the Free
  51173. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51174. - 02111-1307 USA. */
  51175. + License along with the GNU C Library; if not, see
  51176. + <http://www.gnu.org/licenses/>. */
  51177. #ifndef _SYS_PROCFS_H
  51178. #define _SYS_PROCFS_H 1
  51179. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/ucontext.h uClibc-git/libc/sysdeps/linux/avr32/sys/ucontext.h
  51180. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  51181. +++ uClibc-git/libc/sysdeps/linux/avr32/sys/ucontext.h 2014-06-02 17:40:34.310713623 +0200
  51182. @@ -12,9 +12,8 @@
  51183. Lesser General Public License for more details.
  51184. You should have received a copy of the GNU Lesser General Public
  51185. - License along with the GNU C Library; if not, write to the Free
  51186. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51187. - 02111-1307 USA. */
  51188. + License along with the GNU C Library; if not, see
  51189. + <http://www.gnu.org/licenses/>. */
  51190. /* Linux/AVR32 ABI compliant context switching support. */
  51191. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/avr32/vfork.S uClibc-git/libc/sysdeps/linux/avr32/vfork.S
  51192. --- uClibc-0.9.33.2/libc/sysdeps/linux/avr32/vfork.S 2012-05-15 09:20:09.000000000 +0200
  51193. +++ uClibc-git/libc/sysdeps/linux/avr32/vfork.S 2014-06-02 17:40:34.310713623 +0200
  51194. @@ -17,10 +17,10 @@
  51195. * Fortunately, the Linux kernel preserves LR across system calls.
  51196. */
  51197. -#include <features.h>
  51198. #include <sys/syscall.h>
  51199. .global __vfork
  51200. + .hidden __vfork
  51201. .type __vfork,@function
  51202. .align 1
  51203. __vfork:
  51204. @@ -55,4 +55,4 @@
  51205. .size __vfork, . - __vfork
  51206. weak_alias(__vfork,vfork)
  51207. -libc_hidden_weak(vfork)
  51208. +libc_hidden_def(vfork)
  51209. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/elf-fdpic.h uClibc-git/libc/sysdeps/linux/bfin/bits/elf-fdpic.h
  51210. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/elf-fdpic.h 2012-05-15 09:20:09.000000000 +0200
  51211. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/elf-fdpic.h 2014-06-02 17:40:34.314713645 +0200
  51212. @@ -22,8 +22,7 @@
  51213. You should have received a copy of the GNU Lesser General Public
  51214. License along with the GNU C Library; see the file COPYING.LIB. If
  51215. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  51216. -Cambridge, MA 02139, USA. */
  51217. +not, see <http://www.gnu.org/licenses/>. */
  51218. #ifndef _BITS_ELF_FDPIC_H
  51219. #define _BITS_ELF_FDPIC_H
  51220. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/fcntl.h uClibc-git/libc/sysdeps/linux/bfin/bits/fcntl.h
  51221. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  51222. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/fcntl.h 2014-06-02 17:40:34.314713645 +0200
  51223. @@ -13,9 +13,8 @@
  51224. Lesser General Public License for more details.
  51225. You should have received a copy of the GNU Lesser General Public
  51226. - License along with the GNU C Library; if not, write to the Free
  51227. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51228. - 02111-1307 USA. */
  51229. + License along with the GNU C Library; if not, see
  51230. + <http://www.gnu.org/licenses/>. */
  51231. #ifndef _FCNTL_H
  51232. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  51233. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/huge_val.h uClibc-git/libc/sysdeps/linux/bfin/bits/huge_val.h
  51234. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/huge_val.h 2012-05-15 09:20:09.000000000 +0200
  51235. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/huge_val.h 2014-06-02 17:40:34.314713645 +0200
  51236. @@ -16,9 +16,8 @@
  51237. Lesser General Public License for more details.
  51238. You should have received a copy of the GNU Lesser General Public
  51239. - License along with the GNU C Library; if not, write to the Free
  51240. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51241. - 02111-1307 USA. */
  51242. + License along with the GNU C Library; if not, see
  51243. + <http://www.gnu.org/licenses/>. */
  51244. #ifndef _MATH_H
  51245. # error "Never use <bits/huge_val.h> directly; include <math.h> instead."
  51246. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/bfin/bits/kernel_types.h
  51247. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  51248. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/kernel_types.h 2014-06-02 17:40:34.314713645 +0200
  51249. @@ -32,6 +32,8 @@
  51250. typedef unsigned short __kernel_old_gid_t;
  51251. typedef long long __kernel_loff_t;
  51252. typedef __kernel_dev_t __kernel_old_dev_t;
  51253. +typedef long __kernel_long_t;
  51254. +typedef unsigned long __kernel_ulong_t;
  51255. typedef struct {
  51256. #ifdef __USE_ALL
  51257. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/setjmp.h uClibc-git/libc/sysdeps/linux/bfin/bits/setjmp.h
  51258. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  51259. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/setjmp.h 2014-06-02 17:40:34.314713645 +0200
  51260. @@ -12,9 +12,8 @@
  51261. Lesser General Public License for more details.
  51262. You should have received a copy of the GNU Lesser General Public
  51263. - License along with the GNU C Library; if not, write to the Free
  51264. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51265. - 02111-1307 USA. */
  51266. + License along with the GNU C Library; if not, see
  51267. + <http://www.gnu.org/licenses/>. */
  51268. /* Define the machine-dependent type `jmp_buf'. bfin version. Lineo, Inc. 2001*/
  51269. #ifndef _BITS_SETJMP_H
  51270. @@ -24,7 +23,6 @@
  51271. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  51272. #endif
  51273. -#ifndef _ASM
  51274. /* Jump buffer contains r7-r4, p5-p3, fp, sp and pc. Other registers are not saved. */
  51275. typedef struct
  51276. {
  51277. @@ -45,13 +43,4 @@
  51278. unsigned long pc;
  51279. }__jmp_buf[1];
  51280. -#endif
  51281. -
  51282. -#define __JMP_BUF_SP 8
  51283. -
  51284. -/* Test if longjmp to JMPBUF would unwind the frame
  51285. - containing a local variable at ADDRESS. */
  51286. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  51287. - ((void *) (address) < (void *) (jmpbuf)->fp)
  51288. -
  51289. #endif /* bits/setjmp.h */
  51290. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/bfin/bits/sigcontextinfo.h
  51291. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  51292. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/sigcontextinfo.h 2014-06-02 17:40:34.314713645 +0200
  51293. @@ -13,9 +13,8 @@
  51294. Lesser General Public License for more details.
  51295. You should have received a copy of the GNU Lesser General Public
  51296. - License along with the GNU C Library; if not, write to the Free
  51297. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51298. - 02111-1307 USA. */
  51299. + License along with the GNU C Library; if not, see
  51300. + <http://www.gnu.org/licenses/>. */
  51301. #define SIGCONTEXT int _code, struct sigcontext *
  51302. #define SIGCONTEXT_EXTRA_ARGS _code,
  51303. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/bfin/bits/stackinfo.h
  51304. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  51305. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/stackinfo.h 2014-06-02 17:40:34.314713645 +0200
  51306. @@ -12,9 +12,8 @@
  51307. Lesser General Public License for more details.
  51308. You should have received a copy of the GNU Lesser General Public
  51309. - License along with the GNU C Library; if not, write to the Free
  51310. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51311. - 02111-1307 USA. */
  51312. + License along with the GNU C Library; if not, see
  51313. + <http://www.gnu.org/licenses/>. */
  51314. /* This file contains a bit of information about the stack allocation
  51315. of the processor. */
  51316. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/typesizes.h uClibc-git/libc/sysdeps/linux/bfin/bits/typesizes.h
  51317. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
  51318. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/typesizes.h 2014-06-02 17:40:34.314713645 +0200
  51319. @@ -13,9 +13,8 @@
  51320. Lesser General Public License for more details.
  51321. You should have received a copy of the GNU Lesser General Public
  51322. - License along with the GNU C Library; if not, write to the Free
  51323. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51324. - 02111-1307 USA. */
  51325. + License along with the GNU C Library; if not, see
  51326. + <http://www.gnu.org/licenses/>. */
  51327. #ifndef _BITS_TYPES_H
  51328. # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
  51329. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/bfin/bits/uClibc_arch_features.h
  51330. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  51331. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/uClibc_arch_features.h 2014-06-02 17:40:34.314713645 +0200
  51332. @@ -11,8 +11,8 @@
  51333. /* can your target use syscall6() for mmap ? */
  51334. #define __UCLIBC_MMAP_HAS_6_ARGS__
  51335. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  51336. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  51337. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  51338. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  51339. /* does your target have a broken create_module() ? */
  51340. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  51341. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/wordsize.h uClibc-git/libc/sysdeps/linux/bfin/bits/wordsize.h
  51342. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  51343. +++ uClibc-git/libc/sysdeps/linux/bfin/bits/wordsize.h 2014-06-02 17:40:34.314713645 +0200
  51344. @@ -12,8 +12,7 @@
  51345. Lesser General Public License for more details.
  51346. You should have received a copy of the GNU Lesser General Public
  51347. - License along with the GNU C Library; if not, write to the Free
  51348. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51349. - 02111-1307 USA. */
  51350. + License along with the GNU C Library; if not, see
  51351. + <http://www.gnu.org/licenses/>. */
  51352. #define __WORDSIZE 32
  51353. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/cacheflush.c uClibc-git/libc/sysdeps/linux/bfin/cacheflush.c
  51354. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/cacheflush.c 2012-05-15 09:20:09.000000000 +0200
  51355. +++ uClibc-git/libc/sysdeps/linux/bfin/cacheflush.c 2014-06-02 17:40:34.314713645 +0200
  51356. @@ -6,9 +6,10 @@
  51357. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  51358. */
  51359. -#include <unistd.h>
  51360. -#include <errno.h>
  51361. #include <sys/syscall.h>
  51362. -#include <sys/cachectl.h>
  51363. -_syscall3 (int, cacheflush, void *, start, const int, nbytes, const int, flags)
  51364. +#ifdef __NR_cacheflush
  51365. +# include <sys/cachectl.h>
  51366. +
  51367. +_syscall3 (int, cacheflush, void *, addr, const int, nbytes, const int, flags)
  51368. +#endif
  51369. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crt1.S uClibc-git/libc/sysdeps/linux/bfin/crt1.S
  51370. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crt1.S 2012-05-15 09:20:09.000000000 +0200
  51371. +++ uClibc-git/libc/sysdeps/linux/bfin/crt1.S 2014-06-02 17:40:34.314713645 +0200
  51372. @@ -14,8 +14,7 @@
  51373. You should have received a copy of the GNU Library General Public
  51374. License along with the GNU C Library; see the file COPYING.LIB. If
  51375. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  51376. -Cambridge, MA 02139, USA. */
  51377. +not, see <http://www.gnu.org/licenses/>. */
  51378. /* When we enter this piece of code, the user stack looks like this:
  51379. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crti.S uClibc-git/libc/sysdeps/linux/bfin/crti.S
  51380. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crti.S 2012-05-15 09:20:09.000000000 +0200
  51381. +++ uClibc-git/libc/sysdeps/linux/bfin/crti.S 2014-06-02 17:40:34.314713645 +0200
  51382. @@ -16,9 +16,8 @@
  51383. GNU General Public License for more details.
  51384. You should have received a copy of the GNU General Public License
  51385. -along with GCC; see the file COPYING. If not, write to
  51386. -the Free Software Foundation, 59 Temple Place - Suite 330,
  51387. -Boston, MA 02111-1307, USA. */
  51388. +along with GCC; see the file COPYING. If not, see
  51389. +<http://www.gnu.org/licenses/>. */
  51390. /* As a special exception, if you link this library with files
  51391. compiled with GCC to produce an executable, this does not cause
  51392. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crtn.S uClibc-git/libc/sysdeps/linux/bfin/crtn.S
  51393. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crtn.S 2012-05-15 09:20:09.000000000 +0200
  51394. +++ uClibc-git/libc/sysdeps/linux/bfin/crtn.S 2014-06-02 17:40:34.314713645 +0200
  51395. @@ -16,9 +16,8 @@
  51396. GNU General Public License for more details.
  51397. You should have received a copy of the GNU General Public License
  51398. -along with GCC; see the file COPYING. If not, write to
  51399. -the Free Software Foundation, 59 Temple Place - Suite 330,
  51400. -Boston, MA 02111-1307, USA. */
  51401. +along with GCC; see the file COPYING. If not, see
  51402. +<http://www.gnu.org/licenses/>. */
  51403. /* As a special exception, if you link this library with files
  51404. compiled with GCC to produce an executable, this does not cause
  51405. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crtreloc.c uClibc-git/libc/sysdeps/linux/bfin/crtreloc.c
  51406. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/crtreloc.c 2012-05-15 09:20:09.000000000 +0200
  51407. +++ uClibc-git/libc/sysdeps/linux/bfin/crtreloc.c 2014-06-02 17:40:34.314713645 +0200
  51408. @@ -23,8 +23,7 @@
  51409. You should have received a copy of the GNU Lesser General Public
  51410. License along with the GNU C Library; see the file COPYING.LIB. If
  51411. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  51412. -Cambridge, MA 02139, USA. */
  51413. +not, see <http://www.gnu.org/licenses/>. */
  51414. #ifdef __BFIN_FDPIC__
  51415. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/bfin/jmpbuf-offsets.h
  51416. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  51417. +++ uClibc-git/libc/sysdeps/linux/bfin/jmpbuf-offsets.h 2014-06-02 17:40:34.314713645 +0200
  51418. @@ -0,0 +1,8 @@
  51419. +/* Private macros for accessing __jmp_buf contents. BFIN version. */
  51420. +/*
  51421. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  51422. + *
  51423. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  51424. + */
  51425. +
  51426. +#define __JMP_BUF_SP 8
  51427. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/bfin/jmpbuf-unwind.h
  51428. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  51429. +++ uClibc-git/libc/sysdeps/linux/bfin/jmpbuf-unwind.h 2014-06-02 17:40:34.314713645 +0200
  51430. @@ -0,0 +1,11 @@
  51431. +/*
  51432. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  51433. + *
  51434. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  51435. + */
  51436. +#include <setjmp.h>
  51437. +
  51438. +/* Test if longjmp to JMPBUF would unwind the frame
  51439. + containing a local variable at ADDRESS. */
  51440. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  51441. + ((void *) (address) < (void *) (jmpbuf)->fp)
  51442. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/Makefile.arch uClibc-git/libc/sysdeps/linux/bfin/Makefile.arch
  51443. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  51444. +++ uClibc-git/libc/sysdeps/linux/bfin/Makefile.arch 2014-06-02 17:40:34.310713623 +0200
  51445. @@ -5,9 +5,11 @@
  51446. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  51447. #
  51448. -CSRC := bsdsetjmp.c clone.c \
  51449. - sram-alloc.c sram-free.c dma-memcpy.c cacheflush.c
  51450. +CSRC-y := bsdsetjmp.c clone.c \
  51451. + sram-alloc.c sram-free.c dma-memcpy.c
  51452. -SSRC := __longjmp.S setjmp.S bsd-_setjmp.S
  51453. +SSRC-y := __longjmp.S setjmp.S bsd-_setjmp.S
  51454. +
  51455. +CSRC-$(UCLIBC_LINUX_SPECIFIC) += cacheflush.c
  51456. ARCH_HEADERS := bfin_fixed_code.h bfin_l1layout.h bfin_sram.h
  51457. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/cachectl.h uClibc-git/libc/sysdeps/linux/bfin/sys/cachectl.h
  51458. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/cachectl.h 2012-05-15 09:20:09.000000000 +0200
  51459. +++ uClibc-git/libc/sysdeps/linux/bfin/sys/cachectl.h 2014-06-02 17:40:34.334713756 +0200
  51460. @@ -18,7 +18,7 @@
  51461. __BEGIN_DECLS
  51462. -extern int cacheflush (void *addr, __const int nbytes, __const int flags);
  51463. +extern int cacheflush (void *addr, const int nbytes, const int flags);
  51464. __END_DECLS
  51465. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/elf.h uClibc-git/libc/sysdeps/linux/bfin/sys/elf.h
  51466. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/elf.h 2012-05-15 09:20:09.000000000 +0200
  51467. +++ uClibc-git/libc/sysdeps/linux/bfin/sys/elf.h 2014-06-02 17:40:34.334713756 +0200
  51468. @@ -12,9 +12,8 @@
  51469. Lesser General Public License for more details.
  51470. You should have received a copy of the GNU Lesser General Public
  51471. - License along with the GNU C Library; if not, write to the Free
  51472. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51473. - 02111-1307 USA. */
  51474. + License along with the GNU C Library; if not, see
  51475. + <http://www.gnu.org/licenses/>. */
  51476. #ifndef _SYS_ELF_H
  51477. #define _SYS_ELF_H 1
  51478. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/io.h uClibc-git/libc/sysdeps/linux/bfin/sys/io.h
  51479. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/io.h 2012-05-15 09:20:09.000000000 +0200
  51480. +++ uClibc-git/libc/sysdeps/linux/bfin/sys/io.h 2014-06-02 17:40:34.334713756 +0200
  51481. @@ -12,9 +12,8 @@
  51482. Lesser General Public License for more details.
  51483. You should have received a copy of the GNU Lesser General Public
  51484. - License along with the GNU C Library; if not, write to the Free
  51485. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51486. - 02111-1307 USA. */
  51487. + License along with the GNU C Library; if not, see
  51488. + <http://www.gnu.org/licenses/>. */
  51489. #ifndef _SYS_IO_H
  51490. @@ -23,17 +22,18 @@
  51491. __BEGIN_DECLS
  51492. +#if defined __UCLIBC_LINUX_SPECIFIC__
  51493. /* If TURN_ON is TRUE, request for permission to do direct i/o on the
  51494. port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
  51495. permission off for that range. This call requires root privileges. */
  51496. extern int ioperm (unsigned long int __from, unsigned long int __num,
  51497. int __turn_on) __THROW;
  51498. -libc_hidden_proto(ioperm)
  51499. /* Set the I/O privilege level to LEVEL. If LEVEL is nonzero,
  51500. permission to access any I/O port is granted. This call requires
  51501. root privileges. */
  51502. extern int iopl (int __level) __THROW;
  51503. +#endif /* __UCLIBC_LINUX_SPECIFIC__ */
  51504. /* The functions that actually perform reads and writes. */
  51505. extern unsigned char inb (unsigned long int port) __THROW;
  51506. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/procfs.h uClibc-git/libc/sysdeps/linux/bfin/sys/procfs.h
  51507. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  51508. +++ uClibc-git/libc/sysdeps/linux/bfin/sys/procfs.h 2014-06-02 17:40:34.334713756 +0200
  51509. @@ -12,9 +12,8 @@
  51510. Lesser General Public License for more details.
  51511. You should have received a copy of the GNU Lesser General Public
  51512. - License along with the GNU C Library; if not, write to the Free
  51513. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51514. - 02111-1307 USA. */
  51515. + License along with the GNU C Library; if not, see
  51516. + <http://www.gnu.org/licenses/>. */
  51517. #ifndef _SYS_PROCFS_H
  51518. #define _SYS_PROCFS_H 1
  51519. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/ucontext.h uClibc-git/libc/sysdeps/linux/bfin/sys/ucontext.h
  51520. --- uClibc-0.9.33.2/libc/sysdeps/linux/bfin/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  51521. +++ uClibc-git/libc/sysdeps/linux/bfin/sys/ucontext.h 2014-06-02 17:40:34.334713756 +0200
  51522. @@ -12,9 +12,8 @@
  51523. Lesser General Public License for more details.
  51524. You should have received a copy of the GNU Lesser General Public
  51525. - License along with the GNU C Library; if not, write to the Free
  51526. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51527. - 02111-1307 USA. */
  51528. + License along with the GNU C Library; if not, see
  51529. + <http://www.gnu.org/licenses/>. */
  51530. /* System V/blackfin ABI compliant context switching support. */
  51531. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/byteswap.h uClibc-git/libc/sysdeps/linux/c6x/bits/byteswap.h
  51532. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
  51533. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/byteswap.h 2014-06-02 17:40:34.334713756 +0200
  51534. @@ -14,9 +14,8 @@
  51535. * for more details.
  51536. *
  51537. * You should have received a copy of the GNU Library General Public License
  51538. - * along with this program; if not, write to the Free Software Foundation,
  51539. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  51540. - *
  51541. + * along with this program; see the file COPYING.LIB. If not, see
  51542. + * <http://www.gnu.org/licenses/>.
  51543. */
  51544. #ifndef _ASM_BITS_BYTESWAP_H
  51545. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/elf-dsbt.h uClibc-git/libc/sysdeps/linux/c6x/bits/elf-dsbt.h
  51546. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/elf-dsbt.h 2012-05-15 09:20:09.000000000 +0200
  51547. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/elf-dsbt.h 2014-06-02 17:40:34.334713756 +0200
  51548. @@ -25,8 +25,7 @@
  51549. You should have received a copy of the GNU Lesser General Public
  51550. License along with the GNU C Library; see the file COPYING.LIB. If
  51551. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  51552. -Cambridge, MA 02139, USA. */
  51553. +not, see <http://www.gnu.org/licenses/>. */
  51554. #ifndef _BITS_ELF_DSBT_H
  51555. #define _BITS_ELF_DSBT_H
  51556. @@ -59,15 +58,10 @@
  51557. struct elf32_dsbt_loadmap {
  51558. /* Protocol version number, must be zero. */
  51559. - Elf32_Word version;
  51560. -
  51561. - /* Pointer to DSBT */
  51562. - unsigned *dsbt_table;
  51563. - unsigned dsbt_size;
  51564. - unsigned dsbt_index;
  51565. + Elf32_Half version;
  51566. /* number of segments */
  51567. - Elf32_Word nsegs;
  51568. + Elf32_Half nsegs;
  51569. /* The actual memory map. */
  51570. struct elf32_dsbt_loadseg segs[0];
  51571. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/fcntl.h uClibc-git/libc/sysdeps/linux/c6x/bits/fcntl.h
  51572. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  51573. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/fcntl.h 2014-06-02 17:40:34.334713756 +0200
  51574. @@ -13,9 +13,8 @@
  51575. Lesser General Public License for more details.
  51576. You should have received a copy of the GNU Lesser General Public
  51577. - License along with the GNU C Library; if not, write to the Free
  51578. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51579. - 02111-1307 USA. */
  51580. + License along with the GNU C Library; if not, see
  51581. + <http://www.gnu.org/licenses/>. */
  51582. #ifndef _FCNTL_H
  51583. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  51584. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/ipc.h uClibc-git/libc/sysdeps/linux/c6x/bits/ipc.h
  51585. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  51586. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/ipc.h 2014-06-02 17:40:34.334713756 +0200
  51587. @@ -12,9 +12,8 @@
  51588. Lesser General Public License for more details.
  51589. You should have received a copy of the GNU Lesser General Public
  51590. - License along with the GNU C Library; if not, write to the Free
  51591. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51592. - 02111-1307 USA. */
  51593. + License along with the GNU C Library; if not, see
  51594. + <http://www.gnu.org/licenses/>. */
  51595. #ifndef _SYS_IPC_H
  51596. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  51597. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/c6x/bits/kernel_types.h
  51598. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  51599. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/kernel_types.h 2014-06-02 17:40:34.334713756 +0200
  51600. @@ -22,6 +22,8 @@
  51601. typedef unsigned int __kernel_old_uid_t;
  51602. typedef unsigned int __kernel_old_gid_t;
  51603. typedef unsigned int __kernel_old_dev_t;
  51604. +typedef long __kernel_long_t;
  51605. +typedef unsigned long __kernel_ulong_t;
  51606. typedef unsigned int __kernel_size_t;
  51607. typedef int __kernel_ssize_t;
  51608. typedef int __kernel_ptrdiff_t;
  51609. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/mathdef.h uClibc-git/libc/sysdeps/linux/c6x/bits/mathdef.h
  51610. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  51611. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/mathdef.h 2014-06-02 17:40:34.334713756 +0200
  51612. @@ -12,9 +12,8 @@
  51613. Lesser General Public License for more details.
  51614. You should have received a copy of the GNU Lesser General Public
  51615. - License along with the GNU C Library; if not, write to the Free
  51616. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51617. - 02111-1307 USA. */
  51618. + License along with the GNU C Library; if not, see
  51619. + <http://www.gnu.org/licenses/>. */
  51620. #if !defined _MATH_H && !defined _COMPLEX_H
  51621. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  51622. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/nan.h uClibc-git/libc/sysdeps/linux/c6x/bits/nan.h
  51623. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/nan.h 2012-05-15 09:20:09.000000000 +0200
  51624. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/nan.h 2014-06-02 17:40:34.334713756 +0200
  51625. @@ -13,9 +13,8 @@
  51626. Lesser General Public License for more details.
  51627. You should have received a copy of the GNU Lesser General Public
  51628. - License along with the GNU C Library; if not, write to the Free
  51629. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51630. - 02111-1307 USA. */
  51631. + License along with the GNU C Library; if not, see
  51632. + <http://www.gnu.org/licenses/>. */
  51633. #ifndef _MATH_H
  51634. # error "Never use <bits/nan.h> directly; include <math.h> instead."
  51635. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/poll.h uClibc-git/libc/sysdeps/linux/c6x/bits/poll.h
  51636. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
  51637. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/poll.h 2014-06-02 17:40:34.334713756 +0200
  51638. @@ -12,9 +12,8 @@
  51639. Lesser General Public License for more details.
  51640. You should have received a copy of the GNU Lesser General Public
  51641. - License along with the GNU C Library; if not, write to the Free
  51642. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51643. - 02111-1307 USA. */
  51644. + License along with the GNU C Library; if not, see
  51645. + <http://www.gnu.org/licenses/>. */
  51646. #ifndef _SYS_POLL_H
  51647. # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
  51648. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/resource.h uClibc-git/libc/sysdeps/linux/c6x/bits/resource.h
  51649. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/resource.h 2012-05-15 09:20:09.000000000 +0200
  51650. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/resource.h 2014-06-02 17:40:34.334713756 +0200
  51651. @@ -13,9 +13,8 @@
  51652. Lesser General Public License for more details.
  51653. You should have received a copy of the GNU Lesser General Public
  51654. - License along with the GNU C Library; if not, write to the Free
  51655. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51656. - 02111-1307 USA. */
  51657. + License along with the GNU C Library; if not, see
  51658. + <http://www.gnu.org/licenses/>. */
  51659. #ifndef _SYS_RESOURCE_H
  51660. # error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
  51661. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/setjmp.h uClibc-git/libc/sysdeps/linux/c6x/bits/setjmp.h
  51662. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  51663. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/setjmp.h 2014-06-02 17:40:34.334713756 +0200
  51664. @@ -14,12 +14,14 @@
  51665. * for more details.
  51666. *
  51667. * You should have received a copy of the GNU Library General Public License
  51668. - * along with this program; if not, write to the Free Software Foundation,
  51669. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  51670. - *
  51671. + * along with this program; see the file COPYING.LIB. If not, see
  51672. + * <http://www.gnu.org/licenses/>.
  51673. */
  51674. -#ifndef _SETJMP_H
  51675. +#ifndef _BITS_SETJMP_H
  51676. +#define _BITS_SETJMP_H 1
  51677. +
  51678. +#if !defined _SETJMP_H && !defined _PTHREAD_H
  51679. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  51680. #endif
  51681. @@ -28,12 +30,4 @@
  51682. unsigned long __pc; /* the return address */
  51683. } __jmp_buf[1];
  51684. -/* the stack pointer (B15) */
  51685. -#define JP_SP 11
  51686. -
  51687. -/* Test if longjmp to JMPBUF would unwind the frame
  51688. - containing a local variable at ADDRESS. */
  51689. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  51690. - ((void *) (address) < (void *) (jmpbuf)->__regs[JP_SP])
  51691. -
  51692. -
  51693. +#endif
  51694. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/c6x/bits/sigcontextinfo.h
  51695. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  51696. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/sigcontextinfo.h 2014-06-02 17:40:34.334713756 +0200
  51697. @@ -13,9 +13,8 @@
  51698. Lesser General Public License for more details.
  51699. You should have received a copy of the GNU Lesser General Public
  51700. - License along with the GNU C Library; if not, write to the Free
  51701. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51702. - 02111-1307 USA. */
  51703. + License along with the GNU C Library; if not, see
  51704. + <http://www.gnu.org/licenses/>. */
  51705. #define SIGCONTEXT int _code, struct sigcontext *
  51706. #define SIGCONTEXT_EXTRA_ARGS _code,
  51707. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/c6x/bits/stackinfo.h
  51708. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  51709. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/stackinfo.h 2014-06-02 17:40:34.334713756 +0200
  51710. @@ -12,9 +12,8 @@
  51711. Lesser General Public License for more details.
  51712. You should have received a copy of the GNU Lesser General Public
  51713. - License along with the GNU C Library; if not, write to the Free
  51714. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51715. - 02111-1307 USA. */
  51716. + License along with the GNU C Library; if not, see
  51717. + <http://www.gnu.org/licenses/>. */
  51718. /* This file contains a bit of information about the stack allocation
  51719. of the processor. */
  51720. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/syscalls.h uClibc-git/libc/sysdeps/linux/c6x/bits/syscalls.h
  51721. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
  51722. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/syscalls.h 2014-06-02 17:40:34.334713756 +0200
  51723. @@ -37,7 +37,7 @@
  51724. #undef INLINE_SYSCALL
  51725. #define INLINE_SYSCALL(name, nr, args...) \
  51726. ({ unsigned int _inline_sys_result = INTERNAL_SYSCALL (name, , nr, args); \
  51727. - if (__builtin_expect (INTERNAL_SYSCALL_ERROR_P (_inline_sys_result, ), 0)) \
  51728. + if (unlikely (INTERNAL_SYSCALL_ERROR_P (_inline_sys_result, ))) \
  51729. { \
  51730. __set_errno (INTERNAL_SYSCALL_ERRNO (_inline_sys_result, )); \
  51731. _inline_sys_result = (unsigned int) -1; \
  51732. @@ -103,7 +103,7 @@
  51733. register long __B6 __asm__ ("B6") = (long)(arg4); \
  51734. register long __A8 __asm__ ("A8") = (long)(arg5); \
  51735. register long __g1 __asm__ ("g1") = __NR_clone; \
  51736. - __asm __volatile (__CLONE_SYSCALL_STRING : \
  51737. + __asm__ __volatile__ (__CLONE_SYSCALL_STRING : \
  51738. "=r" (__g1), "=r" (__A4), "=r" (__B4) : \
  51739. "0" (__g1), "1" (__A4), "2" (__B4), \
  51740. "r" (__A6), "r" (__B6), "r" (__A8) : \
  51741. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/c6x/bits/uClibc_arch_features.h
  51742. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  51743. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/uClibc_arch_features.h 2014-06-02 17:40:34.334713756 +0200
  51744. @@ -12,8 +12,8 @@
  51745. /* can your target use syscall6() for mmap ? */
  51746. #define __UCLIBC_MMAP_HAS_6_ARGS__
  51747. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  51748. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  51749. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  51750. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  51751. /* does your target have a broken create_module() ? */
  51752. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  51753. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/wordsize.h uClibc-git/libc/sysdeps/linux/c6x/bits/wordsize.h
  51754. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  51755. +++ uClibc-git/libc/sysdeps/linux/c6x/bits/wordsize.h 2014-06-02 17:40:34.334713756 +0200
  51756. @@ -12,8 +12,7 @@
  51757. Lesser General Public License for more details.
  51758. You should have received a copy of the GNU Lesser General Public
  51759. - License along with the GNU C Library; if not, write to the Free
  51760. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  51761. - 02111-1307 USA. */
  51762. + License along with the GNU C Library; if not, see
  51763. + <http://www.gnu.org/licenses/>. */
  51764. #define __WORDSIZE 32
  51765. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/brk.c uClibc-git/libc/sysdeps/linux/c6x/brk.c
  51766. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/brk.c 2012-05-15 09:20:09.000000000 +0200
  51767. +++ uClibc-git/libc/sysdeps/linux/c6x/brk.c 2014-06-02 17:40:34.334713756 +0200
  51768. @@ -14,9 +14,8 @@
  51769. * for more details.
  51770. *
  51771. * You should have received a copy of the GNU Library General Public License
  51772. - * along with this program; if not, write to the Free Software Foundation,
  51773. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  51774. - *
  51775. + * along with this program; see the file COPYING.LIB. If not, see
  51776. + * <http://www.gnu.org/licenses/>.
  51777. */
  51778. #include <unistd.h>
  51779. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bsd-_setjmp.s uClibc-git/libc/sysdeps/linux/c6x/bsd-_setjmp.s
  51780. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bsd-_setjmp.s 2012-05-15 09:20:09.000000000 +0200
  51781. +++ uClibc-git/libc/sysdeps/linux/c6x/bsd-_setjmp.s 2014-06-02 17:40:34.334713756 +0200
  51782. @@ -14,8 +14,7 @@
  51783. ; for more details.
  51784. ;
  51785. ; You should have received a copy of the GNU Library General Public License
  51786. - ; along with this program; if not, write to the Free Software Foundation,
  51787. - ; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  51788. + ; along with this program; if not, see <http://www.gnu.org/licenses/>.
  51789. ;
  51790. .global _setjmp
  51791. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/c6x/bsd-setjmp.S
  51792. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  51793. +++ uClibc-git/libc/sysdeps/linux/c6x/bsd-setjmp.S 2014-06-02 17:40:34.334713756 +0200
  51794. @@ -14,8 +14,7 @@
  51795. ; for more details.
  51796. ;
  51797. ; You should have received a copy of the GNU Library General Public License
  51798. - ; along with this program; if not, write to the Free Software Foundation,
  51799. - ; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  51800. + ; along with this program; if not, see <http://www.gnu.org/licenses/>.
  51801. ;
  51802. .global setjmp
  51803. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/clone.S uClibc-git/libc/sysdeps/linux/c6x/clone.S
  51804. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/clone.S 2012-05-15 09:20:09.000000000 +0200
  51805. +++ uClibc-git/libc/sysdeps/linux/c6x/clone.S 2014-06-02 17:40:34.334713756 +0200
  51806. @@ -14,8 +14,7 @@
  51807. ; for more details.
  51808. ;
  51809. ; You should have received a copy of the GNU Library General Public License
  51810. - ; along with this program; if not, write to the Free Software Foundation,
  51811. - ; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  51812. + ; along with this program; if not, see <http://www.gnu.org/licenses/>.
  51813. ;
  51814. #define __ASSEMBLY__
  51815. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/crt1.S uClibc-git/libc/sysdeps/linux/c6x/crt1.S
  51816. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/crt1.S 2012-05-15 09:20:09.000000000 +0200
  51817. +++ uClibc-git/libc/sysdeps/linux/c6x/crt1.S 2014-06-02 17:40:34.334713756 +0200
  51818. @@ -15,8 +15,7 @@
  51819. ; for more details.
  51820. ;
  51821. ; You should have received a copy of the GNU Library General Public License
  51822. -; along with this program; if not, write to the Free Software Foundation,
  51823. -; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  51824. +; along with this program; if not, see <http://www.gnu.org/licenses/>.
  51825. ;
  51826. .text
  51827. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/c6x/jmpbuf-offsets.h
  51828. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  51829. +++ uClibc-git/libc/sysdeps/linux/c6x/jmpbuf-offsets.h 2014-06-02 17:40:34.334713756 +0200
  51830. @@ -0,0 +1,22 @@
  51831. +/* Private macros for accessing __jmp_buf contents. c6x version.
  51832. + * Port of uClibc for TMS320C6000 DSP architecture
  51833. + * Copyright (C) 2004 Texas Instruments Incorporated
  51834. + * Author of TMS320C6000 port: Aurelien Jacquiot
  51835. + *
  51836. + * This program is free software; you can redistribute it and/or modify it
  51837. + * under the terms of the GNU Library General Public License as published by
  51838. + * the Free Software Foundation; either version 2 of the License, or (at your
  51839. + * option) any later version.
  51840. + *
  51841. + * This program is distributed in the hope that it will be useful, but WITHOUT
  51842. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  51843. + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
  51844. + * for more details.
  51845. + *
  51846. + * You should have received a copy of the GNU Library General Public License
  51847. + * along with this program; see the file COPYING.LIB. If not, see
  51848. + * <http://www.gnu.org/licenses/>.
  51849. + */
  51850. +
  51851. +/* the stack pointer (B15) */
  51852. +#define JP_SP 11
  51853. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/c6x/jmpbuf-unwind.h
  51854. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  51855. +++ uClibc-git/libc/sysdeps/linux/c6x/jmpbuf-unwind.h 2014-06-02 17:40:34.334713756 +0200
  51856. @@ -0,0 +1,28 @@
  51857. +/*
  51858. + * Port of uClibc for TMS320C6000 DSP architecture
  51859. + * Copyright (C) 2004 Texas Instruments Incorporated
  51860. + * Author of TMS320C6000 port: Aurelien Jacquiot
  51861. + *
  51862. + * This program is free software; you can redistribute it and/or modify it
  51863. + * under the terms of the GNU Library General Public License as published by
  51864. + * the Free Software Foundation; either version 2 of the License, or (at your
  51865. + * option) any later version.
  51866. + *
  51867. + * This program is distributed in the hope that it will be useful, but WITHOUT
  51868. + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  51869. + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
  51870. + * for more details.
  51871. + *
  51872. + * You should have received a copy of the GNU Library General Public License
  51873. + * along with this program; see the file COPYING.LIB. If not, see
  51874. + * <http://www.gnu.org/licenses/>.
  51875. + */
  51876. +#include <setjmp.h>
  51877. +#include <jmpbuf-offsets.h>
  51878. +
  51879. +/* Test if longjmp to JMPBUF would unwind the frame
  51880. + containing a local variable at ADDRESS. */
  51881. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  51882. + ((void *) (address) < (void *) (jmpbuf)->__regs[JP_SP])
  51883. +
  51884. +
  51885. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/__longjmp.S uClibc-git/libc/sysdeps/linux/c6x/__longjmp.S
  51886. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  51887. +++ uClibc-git/libc/sysdeps/linux/c6x/__longjmp.S 2014-06-02 17:40:34.334713756 +0200
  51888. @@ -14,8 +14,7 @@
  51889. ; for more details.
  51890. ;
  51891. ; You should have received a copy of the GNU Library General Public License
  51892. - ; along with this program; if not, write to the Free Software Foundation,
  51893. - ; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  51894. + ; along with this program; if not, see <http://www.gnu.org/licenses/>.
  51895. ;
  51896. .global __longjmp
  51897. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/Makefile.arch uClibc-git/libc/sysdeps/linux/c6x/Makefile.arch
  51898. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  51899. +++ uClibc-git/libc/sysdeps/linux/c6x/Makefile.arch 2014-06-02 17:40:34.334713756 +0200
  51900. @@ -5,6 +5,6 @@
  51901. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  51902. #
  51903. -CSRC := brk.c pread_write.c syscall.c prctl.c
  51904. +CSRC-y := brk.c syscall.c prctl.c
  51905. -SSRC := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S _vfork.S
  51906. +SSRC-y := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S _vfork.S
  51907. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/pread_write.c uClibc-git/libc/sysdeps/linux/c6x/pread_write.c
  51908. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/pread_write.c 2012-05-15 09:20:09.000000000 +0200
  51909. +++ uClibc-git/libc/sysdeps/linux/c6x/pread_write.c 1970-01-01 01:00:00.000000000 +0100
  51910. @@ -1,103 +0,0 @@
  51911. -/* vi: set sw=4 ts=4:
  51912. - *
  51913. - * Copyright (C) 2002 by Erik Andersen <andersen@uclibc.org>
  51914. - * Based in part on the files
  51915. - * ./sysdeps/unix/sysv/linux/pwrite.c,
  51916. - * ./sysdeps/unix/sysv/linux/pread.c,
  51917. - * sysdeps/posix/pread.c
  51918. - * sysdeps/posix/pwrite.c
  51919. - * from GNU libc 2.2.5, but reworked considerably...
  51920. - *
  51921. - * This program is free software; you can redistribute it and/or modify it
  51922. - * under the terms of the GNU Library General Public License as published by
  51923. - * the Free Software Foundation; either version 2 of the License, or (at your
  51924. - * option) any later version.
  51925. - *
  51926. - * This program is distributed in the hope that it will be useful, but WITHOUT
  51927. - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  51928. - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
  51929. - * for more details.
  51930. - *
  51931. - * You should have received a copy of the GNU Library General Public License
  51932. - * along with this program; if not, write to the Free Software Foundation,
  51933. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  51934. - */
  51935. -
  51936. -#define _LARGEFILE64_SOURCE
  51937. -#include <features.h>
  51938. -#undef __OPTIMIZE__
  51939. -/* We absolutely do _NOT_ want interfaces silently
  51940. - * * * renamed under us or very bad things will happen... */
  51941. -#ifdef __USE_FILE_OFFSET64
  51942. -# undef __USE_FILE_OFFSET64
  51943. -#endif
  51944. -
  51945. -
  51946. -#include <errno.h>
  51947. -#include <sys/types.h>
  51948. -#include <sys/syscall.h>
  51949. -#include <unistd.h>
  51950. -#include <stdint.h>
  51951. -
  51952. -extern __typeof(pread) __libc_pread;
  51953. -extern __typeof(pwrite) __libc_pwrite;
  51954. -#ifdef __UCLIBC_HAS_LFS__
  51955. -extern __typeof(pread64) __libc_pread64;
  51956. -extern __typeof(pwrite64) __libc_pwrite64;
  51957. -#endif
  51958. -
  51959. -#ifdef __NR_pread64 /* Newer kernels renamed but it's the same. */
  51960. -# ifdef __NR_pread
  51961. -# error "__NR_pread and __NR_pread64 both defined???"
  51962. -# endif
  51963. -# define __NR_pread __NR_pread64
  51964. -#endif
  51965. -
  51966. -#define __NR___syscall_pread __NR_pread
  51967. -static inline _syscall5(ssize_t, __syscall_pread, int, fd, void *, buf,
  51968. - size_t, count, off_t, offset_hi, off_t, offset_lo);
  51969. -
  51970. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  51971. -{
  51972. - return(__syscall_pread(fd,buf,count,offset,offset >> 31));
  51973. -}
  51974. -weak_alias (__libc_pread, pread)
  51975. -
  51976. -#if defined __UCLIBC_HAS_LFS__
  51977. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  51978. -{
  51979. - uint32_t low = offset & 0xffffffff;
  51980. - uint32_t high = offset >> 32;
  51981. - return(__syscall_pread(fd, buf, count, low, high));
  51982. -}
  51983. -weak_alias (__libc_pread64, pread64)
  51984. -#endif /* __UCLIBC_HAS_LFS__ */
  51985. -
  51986. -
  51987. -#ifdef __NR_pwrite64 /* Newer kernels renamed but it's the same. */
  51988. -# ifdef __NR_pwrite
  51989. -# error "__NR_pwrite and __NR_pwrite64 both defined???"
  51990. -# endif
  51991. -# define __NR_pwrite __NR_pwrite64
  51992. -#endif
  51993. -
  51994. -#define __NR___syscall_pwrite __NR_pwrite
  51995. -static inline _syscall5(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
  51996. - size_t, count, off_t, offset_hi, off_t, offset_lo);
  51997. -
  51998. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  51999. -{
  52000. - return(__syscall_pwrite(fd,buf,count,offset,offset >> 31));
  52001. -}
  52002. -weak_alias (__libc_pwrite, pwrite)
  52003. -
  52004. -#if defined __UCLIBC_HAS_LFS__
  52005. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  52006. -{
  52007. - uint32_t low = offset & 0xffffffff;
  52008. - uint32_t high = offset >> 32;
  52009. - return(__syscall_pwrite(fd, buf, count, low, high));
  52010. -}
  52011. -weak_alias (__libc_pwrite64, pwrite64)
  52012. -#endif /* __UCLIBC_HAS_LFS__ */
  52013. -
  52014. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/setjmp.s uClibc-git/libc/sysdeps/linux/c6x/setjmp.s
  52015. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/setjmp.s 2012-05-15 09:20:09.000000000 +0200
  52016. +++ uClibc-git/libc/sysdeps/linux/c6x/setjmp.s 2014-06-02 17:40:34.338713778 +0200
  52017. @@ -14,8 +14,7 @@
  52018. ; for more details.
  52019. ;
  52020. ; You should have received a copy of the GNU Library General Public License
  52021. - ; along with this program; if not, write to the Free Software Foundation,
  52022. - ; Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  52023. + ; along with this program; if not, see <http://www.gnu.org/licenses/>.
  52024. ;
  52025. .global __sigsetjmp
  52026. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sigaction.c uClibc-git/libc/sysdeps/linux/c6x/sigaction.c
  52027. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  52028. +++ uClibc-git/libc/sysdeps/linux/c6x/sigaction.c 2014-06-02 17:40:34.338713778 +0200
  52029. @@ -17,8 +17,7 @@
  52030. You should have received a copy of the GNU Library General Public
  52031. License along with the GNU C Library; see the file COPYING.LIB. If not,
  52032. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  52033. - Boston, MA 02111-1307, USA.
  52034. + see <http://www.gnu.org/licenses/>.
  52035. Totally hacked up for uClibc by Erik Andersen <andersen@codepoet.org>
  52036. */
  52037. @@ -34,8 +33,6 @@
  52038. #define SA_RESTORER 0x04000000
  52039. -extern __typeof(sigaction) __libc_sigaction;
  52040. -
  52041. extern void restore_rt(void) __asm__ ("__restore_rt") attribute_hidden;
  52042. extern void restore(void) __asm__ ("__restore") attribute_hidden;
  52043. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/procfs.h uClibc-git/libc/sysdeps/linux/c6x/sys/procfs.h
  52044. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  52045. +++ uClibc-git/libc/sysdeps/linux/c6x/sys/procfs.h 2014-06-02 17:40:34.338713778 +0200
  52046. @@ -12,9 +12,8 @@
  52047. Lesser General Public License for more details.
  52048. You should have received a copy of the GNU Lesser General Public
  52049. - License along with the GNU C Library; if not, write to the Free
  52050. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52051. - 02111-1307 USA. */
  52052. + License along with the GNU C Library; if not, see
  52053. + <http://www.gnu.org/licenses/>. */
  52054. #ifndef _SYS_PROCFS_H
  52055. #define _SYS_PROCFS_H 1
  52056. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/ptrace.h uClibc-git/libc/sysdeps/linux/c6x/sys/ptrace.h
  52057. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  52058. +++ uClibc-git/libc/sysdeps/linux/c6x/sys/ptrace.h 2014-06-02 17:40:34.338713778 +0200
  52059. @@ -13,9 +13,8 @@
  52060. Lesser General Public License for more details.
  52061. You should have received a copy of the GNU Lesser General Public
  52062. - License along with the GNU C Library; if not, write to the Free
  52063. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52064. - 02111-1307 USA. */
  52065. + License along with the GNU C Library; if not, see
  52066. + <http://www.gnu.org/licenses/>. */
  52067. #ifndef _SYS_PTRACE_H
  52068. #define _SYS_PTRACE_H 1
  52069. @@ -112,12 +111,6 @@
  52070. PTRACE_SYSCALL = 24,
  52071. #define PT_SYSCALL PTRACE_SYSCALL
  52072. - /* Obtain the load map of the main program or the interpreter of the
  52073. - ptraced process, depending on whether the addr argument is
  52074. - (void*)0 or (void*)1, respectively. */
  52075. - PTRACE_GETDSBT = 31,
  52076. -#define PT_GETDSBT PTRACE_GETDSBT
  52077. -
  52078. /* Set ptrace filter options. */
  52079. PTRACE_SETOPTIONS = 0x4200,
  52080. #define PT_SETOPTIONS PTRACE_SETOPTIONS
  52081. @@ -135,9 +128,6 @@
  52082. #define PT_SETSIGINFO PTRACE_SETSIGINFO
  52083. };
  52084. -#define PTRACE_GETDSBT_EXEC ((void*)0) /* [addr] request the executable loadmap */
  52085. -#define PTRACE_GETDSBT_INTERP ((void*)1) /* [addr] request the interpreter loadmap */
  52086. -
  52087. /* Options set using PTRACE_SETOPTIONS. */
  52088. enum __ptrace_setoptions {
  52089. PTRACE_O_TRACESYSGOOD = 0x00000001,
  52090. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/reg.h uClibc-git/libc/sysdeps/linux/c6x/sys/reg.h
  52091. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/reg.h 2012-05-15 09:20:09.000000000 +0200
  52092. +++ uClibc-git/libc/sysdeps/linux/c6x/sys/reg.h 2014-06-02 17:40:34.338713778 +0200
  52093. @@ -14,9 +14,8 @@
  52094. * for more details.
  52095. *
  52096. * You should have received a copy of the GNU Library General Public License
  52097. - * along with this program; if not, write to the Free Software Foundation,
  52098. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  52099. - *
  52100. + * along with this program; see the file COPYING.LIB. If not, see
  52101. + * <http://www.gnu.org/licenses/>.
  52102. */
  52103. #ifndef _SYS_REG_H
  52104. #define _SYS_REG_H 1
  52105. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/ucontext.h uClibc-git/libc/sysdeps/linux/c6x/sys/ucontext.h
  52106. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  52107. +++ uClibc-git/libc/sysdeps/linux/c6x/sys/ucontext.h 2014-06-02 17:40:34.338713778 +0200
  52108. @@ -12,9 +12,8 @@
  52109. Lesser General Public License for more details.
  52110. You should have received a copy of the GNU Lesser General Public
  52111. - License along with the GNU C Library; if not, write to the Free
  52112. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52113. - 02111-1307 USA. */
  52114. + License along with the GNU C Library; if not, see
  52115. + <http://www.gnu.org/licenses/>. */
  52116. #ifndef _SYS_UCONTEXT_H
  52117. #define _SYS_UCONTEXT_H 1
  52118. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/user.h uClibc-git/libc/sysdeps/linux/c6x/sys/user.h
  52119. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  52120. +++ uClibc-git/libc/sysdeps/linux/c6x/sys/user.h 2014-06-02 17:40:34.338713778 +0200
  52121. @@ -12,9 +12,8 @@
  52122. Lesser General Public License for more details.
  52123. You should have received a copy of the GNU Lesser General Public
  52124. - License along with the GNU C Library; if not, write to the Free
  52125. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52126. - 02111-1307 USA. */
  52127. + License along with the GNU C Library; if not, see
  52128. + <http://www.gnu.org/licenses/>. */
  52129. #ifndef _SYS_USER_H
  52130. #define _SYS_USER_H 1
  52131. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/c6x/_vfork.S uClibc-git/libc/sysdeps/linux/c6x/_vfork.S
  52132. --- uClibc-0.9.33.2/libc/sysdeps/linux/c6x/_vfork.S 2012-05-15 09:20:09.000000000 +0200
  52133. +++ uClibc-git/libc/sysdeps/linux/c6x/_vfork.S 2014-06-02 17:40:34.334713756 +0200
  52134. @@ -16,8 +16,8 @@
  52135. * for more details.
  52136. *
  52137. * You should have received a copy of the GNU Library General Public License
  52138. - * along with this program; if not, write to the Free Software Foundation,
  52139. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  52140. + * along with this program; see the file COPYING.LIB. If not, see
  52141. + * <http://www.gnu.org/licenses/>.
  52142. */
  52143. #define __ASSEMBLY__
  52144. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/access.c uClibc-git/libc/sysdeps/linux/common/access.c
  52145. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/access.c 2012-05-15 09:20:09.000000000 +0200
  52146. +++ uClibc-git/libc/sysdeps/linux/common/access.c 2014-06-02 17:40:34.338713778 +0200
  52147. @@ -9,4 +9,14 @@
  52148. #include <sys/syscall.h>
  52149. #include <unistd.h>
  52150. +
  52151. +#if defined __NR_faccessat && !defined __NR_access
  52152. +# include <fcntl.h>
  52153. +int access(const char *pathname, int mode)
  52154. +{
  52155. + return faccessat(AT_FDCWD, pathname, mode, 0);
  52156. +}
  52157. +
  52158. +#else
  52159. _syscall2(int, access, const char *, pathname, int, mode)
  52160. +#endif
  52161. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/alarm.c uClibc-git/libc/sysdeps/linux/common/alarm.c
  52162. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/alarm.c 2012-05-15 09:20:09.000000000 +0200
  52163. +++ uClibc-git/libc/sysdeps/linux/common/alarm.c 2014-06-02 17:40:34.338713778 +0200
  52164. @@ -10,12 +10,10 @@
  52165. #include <sys/syscall.h>
  52166. #include <unistd.h>
  52167. -
  52168. #ifdef __NR_alarm
  52169. _syscall1(unsigned int, alarm, unsigned int, seconds)
  52170. #else
  52171. -#include <sys/time.h>
  52172. -
  52173. +# include <sys/time.h>
  52174. unsigned int alarm(unsigned int seconds)
  52175. {
  52176. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/arch_prctl.c uClibc-git/libc/sysdeps/linux/common/arch_prctl.c
  52177. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/arch_prctl.c 2012-05-15 09:20:09.000000000 +0200
  52178. +++ uClibc-git/libc/sysdeps/linux/common/arch_prctl.c 2014-06-02 17:40:34.338713778 +0200
  52179. @@ -10,6 +10,6 @@
  52180. #include <sys/syscall.h>
  52181. #ifdef __NR_arch_prctl
  52182. -extern int arch_prctl(int code, unsigned long addr);
  52183. +int arch_prctl(int code, unsigned long addr);
  52184. _syscall2(int, arch_prctl, int, code, unsigned long, addr)
  52185. #endif
  52186. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/atomic.h uClibc-git/libc/sysdeps/linux/common/bits/atomic.h
  52187. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  52188. +++ uClibc-git/libc/sysdeps/linux/common/bits/atomic.h 2014-06-02 17:40:34.338713778 +0200
  52189. @@ -13,9 +13,8 @@
  52190. Lesser General Public License for more details.
  52191. You should have received a copy of the GNU Lesser General Public
  52192. - License along with the GNU C Library; if not, write to the Free
  52193. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52194. - 02111-1307 USA. */
  52195. + License along with the GNU C Library; if not, see
  52196. + <http://www.gnu.org/licenses/>. */
  52197. #ifndef _BITS_ATOMIC_H
  52198. #define _BITS_ATOMIC_H 1
  52199. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/byteswap-common.h uClibc-git/libc/sysdeps/linux/common/bits/byteswap-common.h
  52200. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/byteswap-common.h 2012-05-15 09:20:09.000000000 +0200
  52201. +++ uClibc-git/libc/sysdeps/linux/common/bits/byteswap-common.h 2014-06-02 17:40:34.338713778 +0200
  52202. @@ -13,9 +13,8 @@
  52203. Lesser General Public License for more details.
  52204. You should have received a copy of the GNU Lesser General Public
  52205. - License along with the GNU C Library; if not, write to the Free
  52206. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52207. - 02111-1307 USA. */
  52208. + License along with the GNU C Library; if not, see
  52209. + <http://www.gnu.org/licenses/>. */
  52210. #if !defined _BYTESWAP_H && !defined _NETINET_IN_H
  52211. # error "Never use <bits/byteswap.h> directly; include <byteswap.h> instead."
  52212. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/cmathcalls.h uClibc-git/libc/sysdeps/linux/common/bits/cmathcalls.h
  52213. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/cmathcalls.h 2012-05-15 09:20:09.000000000 +0200
  52214. +++ uClibc-git/libc/sysdeps/linux/common/bits/cmathcalls.h 2014-06-02 17:40:34.338713778 +0200
  52215. @@ -14,9 +14,8 @@
  52216. Lesser General Public License for more details.
  52217. You should have received a copy of the GNU Lesser General Public
  52218. - License along with the GNU C Library; if not, write to the Free
  52219. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52220. - 02111-1307 USA. */
  52221. + License along with the GNU C Library; if not, see
  52222. + <http://www.gnu.org/licenses/>. */
  52223. /* NOTE: Because of the special way this file is used by <complex.h>, this
  52224. file must NOT be protected from multiple inclusion as header files
  52225. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/confname.h uClibc-git/libc/sysdeps/linux/common/bits/confname.h
  52226. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/confname.h 2012-05-15 09:20:09.000000000 +0200
  52227. +++ uClibc-git/libc/sysdeps/linux/common/bits/confname.h 2014-06-02 17:40:34.342713800 +0200
  52228. @@ -14,9 +14,8 @@
  52229. Lesser General Public License for more details.
  52230. You should have received a copy of the GNU Lesser General Public
  52231. - License along with the GNU C Library; if not, write to the Free
  52232. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52233. - 02111-1307 USA. */
  52234. + License along with the GNU C Library; if not, see
  52235. + <http://www.gnu.org/licenses/>. */
  52236. #ifndef _UNISTD_H
  52237. # error "Never use <bits/confname.h> directly; include <unistd.h> instead."
  52238. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/dirent.h uClibc-git/libc/sysdeps/linux/common/bits/dirent.h
  52239. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/dirent.h 2012-05-15 09:20:09.000000000 +0200
  52240. +++ uClibc-git/libc/sysdeps/linux/common/bits/dirent.h 2014-06-02 17:40:34.342713800 +0200
  52241. @@ -12,9 +12,8 @@
  52242. Lesser General Public License for more details.
  52243. You should have received a copy of the GNU Lesser General Public
  52244. - License along with the GNU C Library; if not, write to the Free
  52245. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52246. - 02111-1307 USA. */
  52247. + License along with the GNU C Library; if not, see
  52248. + <http://www.gnu.org/licenses/>. */
  52249. #ifndef _DIRENT_H
  52250. # error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
  52251. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/dlfcn.h uClibc-git/libc/sysdeps/linux/common/bits/dlfcn.h
  52252. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/dlfcn.h 2012-05-15 09:20:09.000000000 +0200
  52253. +++ uClibc-git/libc/sysdeps/linux/common/bits/dlfcn.h 2014-06-02 17:40:34.342713800 +0200
  52254. @@ -13,9 +13,8 @@
  52255. Lesser General Public License for more details.
  52256. You should have received a copy of the GNU Lesser General Public
  52257. - License along with the GNU C Library; if not, write to the Free
  52258. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52259. - 02111-1307 USA. */
  52260. + License along with the GNU C Library; if not, see
  52261. + <http://www.gnu.org/licenses/>. */
  52262. #ifndef _DLFCN_H
  52263. # error "Never use <bits/dlfcn.h> directly; include <dlfcn.h> instead."
  52264. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/environments.h uClibc-git/libc/sysdeps/linux/common/bits/environments.h
  52265. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/environments.h 2012-05-15 09:20:09.000000000 +0200
  52266. +++ uClibc-git/libc/sysdeps/linux/common/bits/environments.h 2014-06-02 17:40:34.342713800 +0200
  52267. @@ -12,9 +12,8 @@
  52268. Lesser General Public License for more details.
  52269. You should have received a copy of the GNU Lesser General Public
  52270. - License along with the GNU C Library; if not, write to the Free
  52271. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52272. - 02111-1307 USA. */
  52273. + License along with the GNU C Library; if not, see
  52274. + <http://www.gnu.org/licenses/>. */
  52275. #ifndef _UNISTD_H
  52276. # error "Never include this file directly. Use <unistd.h> instead"
  52277. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/errno.h uClibc-git/libc/sysdeps/linux/common/bits/errno.h
  52278. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/errno.h 2012-05-15 09:20:09.000000000 +0200
  52279. +++ uClibc-git/libc/sysdeps/linux/common/bits/errno.h 2014-06-02 17:40:34.342713800 +0200
  52280. @@ -13,9 +13,8 @@
  52281. Lesser General Public License for more details.
  52282. You should have received a copy of the GNU Lesser General Public
  52283. - License along with the GNU C Library; if not, write to the Free
  52284. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52285. - 02111-1307 USA. */
  52286. + License along with the GNU C Library; if not, see
  52287. + <http://www.gnu.org/licenses/>. */
  52288. #ifdef _ERRNO_H
  52289. @@ -43,7 +42,6 @@
  52290. # ifndef __ASSEMBLER__
  52291. /* Function to get address of global `errno' variable. */
  52292. extern int *__errno_location (void) __THROW __attribute__ ((__const__));
  52293. -libc_hidden_proto(__errno_location)
  52294. # ifdef __UCLIBC_HAS_THREADS__
  52295. /* When using threads, errno is a per-thread value. */
  52296. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/eventfd.h uClibc-git/libc/sysdeps/linux/common/bits/eventfd.h
  52297. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/eventfd.h 1970-01-01 01:00:00.000000000 +0100
  52298. +++ uClibc-git/libc/sysdeps/linux/common/bits/eventfd.h 2014-06-02 17:40:34.342713800 +0200
  52299. @@ -0,0 +1,31 @@
  52300. +/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
  52301. + This file is part of the GNU C Library.
  52302. +
  52303. + The GNU C Library is free software; you can redistribute it and/or
  52304. + modify it under the terms of the GNU Lesser General Public
  52305. + License as published by the Free Software Foundation; either
  52306. + version 2.1 of the License, or (at your option) any later version.
  52307. +
  52308. + The GNU C Library is distributed in the hope that it will be useful,
  52309. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  52310. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  52311. + Lesser General Public License for more details.
  52312. +
  52313. + You should have received a copy of the GNU Lesser General Public
  52314. + License along with the GNU C Library; if not, see
  52315. + <http://www.gnu.org/licenses/>. */
  52316. +
  52317. +#ifndef _SYS_EVENTFD_H
  52318. +# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
  52319. +#endif
  52320. +
  52321. +/* Flags for eventfd. */
  52322. +enum
  52323. + {
  52324. + EFD_SEMAPHORE = 00000001,
  52325. +#define EFD_SEMAPHORE EFD_SEMAPHORE
  52326. + EFD_CLOEXEC = 02000000,
  52327. +#define EFD_CLOEXEC EFD_CLOEXEC
  52328. + EFD_NONBLOCK = 00004000
  52329. +#define EFD_NONBLOCK EFD_NONBLOCK
  52330. + };
  52331. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/fenv.h uClibc-git/libc/sysdeps/linux/common/bits/fenv.h
  52332. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  52333. +++ uClibc-git/libc/sysdeps/linux/common/bits/fenv.h 2014-06-02 17:40:34.342713800 +0200
  52334. @@ -12,9 +12,8 @@
  52335. Lesser General Public License for more details.
  52336. You should have received a copy of the GNU Lesser General Public
  52337. - License along with the GNU C Library; if not, write to the Free
  52338. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52339. - 02111-1307 USA. */
  52340. + License along with the GNU C Library; if not, see
  52341. + <http://www.gnu.org/licenses/>. */
  52342. #ifndef _FENV_H
  52343. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  52344. @@ -53,4 +52,4 @@
  52345. fenv_t;
  52346. /* If the default argument is used we use this value. */
  52347. -#define FE_DFL_ENV ((__const fenv_t *) -1l)
  52348. +#define FE_DFL_ENV ((const fenv_t *) -1l)
  52349. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/getopt.h uClibc-git/libc/sysdeps/linux/common/bits/getopt.h
  52350. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/getopt.h 2012-05-15 09:20:09.000000000 +0200
  52351. +++ uClibc-git/libc/sysdeps/linux/common/bits/getopt.h 2014-06-02 17:40:34.342713800 +0200
  52352. @@ -14,9 +14,8 @@
  52353. Lesser General Public License for more details.
  52354. You should have received a copy of the GNU Lesser General Public
  52355. - License along with the GNU C Library; if not, write to the Free
  52356. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52357. - 02111-1307 USA. */
  52358. + License along with the GNU C Library; if not, see
  52359. + <http://www.gnu.org/licenses/>. */
  52360. #ifndef _GETOPT_H
  52361. @@ -26,31 +25,7 @@
  52362. # define _GETOPT_H 1
  52363. #endif
  52364. -/* If __GNU_LIBRARY__ is not already defined, either we are being used
  52365. - standalone, or this is the first header included in the source file.
  52366. - If we are being used with glibc, we need to include <features.h>, but
  52367. - that does not exist if we are standalone. So: if __GNU_LIBRARY__ is
  52368. - not defined, include <ctype.h>, which will pull in <features.h> for us
  52369. - if it's from glibc. (Why ctype.h? It's guaranteed to exist and it
  52370. - doesn't flood the namespace with stuff the way some other headers do.) */
  52371. -#if !defined __GNU_LIBRARY__
  52372. -# include <ctype.h>
  52373. -#endif
  52374. -
  52375. -#ifndef __THROW
  52376. -# ifndef __GNUC_PREREQ
  52377. -# define __GNUC_PREREQ(maj, min) (0)
  52378. -# endif
  52379. -# if defined __cplusplus && __GNUC_PREREQ (2,8)
  52380. -# define __THROW throw ()
  52381. -# else
  52382. -# define __THROW
  52383. -# endif
  52384. -#endif
  52385. -
  52386. -#ifdef __cplusplus
  52387. -extern "C" {
  52388. -#endif
  52389. +__BEGIN_DECLS
  52390. /* For communication from `getopt' to the caller.
  52391. When `getopt' finds an option that takes an argument,
  52392. @@ -147,17 +122,9 @@
  52393. arguments to the option '\0'. This behavior is specific to the GNU
  52394. `getopt'. */
  52395. -#if defined __GNU_LIBRARY__ || defined __UCLIBC__
  52396. -/* Many other libraries have conflicting prototypes for getopt, with
  52397. - differences in the consts, in stdlib.h. To avoid compilation
  52398. - errors, only prototype getopt for the GNU C library. */
  52399. extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
  52400. __THROW;
  52401. libc_hidden_proto(getopt)
  52402. -#else /* not __GNU_LIBRARY__ */
  52403. -extern int getopt ();
  52404. -libc_hidden_proto(getopt)
  52405. -#endif /* __GNU_LIBRARY__ */
  52406. #if defined __UCLIBC_HAS_GNU_GETOPT__ || defined __UCLIBC_HAS_GETOPT_LONG__
  52407. #ifndef __need_getopt
  52408. @@ -173,9 +140,7 @@
  52409. #endif
  52410. #endif
  52411. -#ifdef __cplusplus
  52412. -}
  52413. -#endif
  52414. +__END_DECLS
  52415. /* Make sure we later can get all the definitions and declarations. */
  52416. #undef __need_getopt
  52417. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/huge_valf.h uClibc-git/libc/sysdeps/linux/common/bits/huge_valf.h
  52418. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/huge_valf.h 2012-05-15 09:20:09.000000000 +0200
  52419. +++ uClibc-git/libc/sysdeps/linux/common/bits/huge_valf.h 2014-06-02 17:40:34.342713800 +0200
  52420. @@ -15,9 +15,8 @@
  52421. Lesser General Public License for more details.
  52422. You should have received a copy of the GNU Lesser General Public
  52423. - License along with the GNU C Library; if not, write to the Free
  52424. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52425. - 02111-1307 USA. */
  52426. + License along with the GNU C Library; if not, see
  52427. + <http://www.gnu.org/licenses/>. */
  52428. #ifndef _MATH_H
  52429. # error "Never use <bits/huge_valf.h> directly; include <math.h> instead."
  52430. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/huge_val.h uClibc-git/libc/sysdeps/linux/common/bits/huge_val.h
  52431. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/huge_val.h 2012-05-15 09:20:09.000000000 +0200
  52432. +++ uClibc-git/libc/sysdeps/linux/common/bits/huge_val.h 2014-06-02 17:40:34.342713800 +0200
  52433. @@ -15,9 +15,8 @@
  52434. Lesser General Public License for more details.
  52435. You should have received a copy of the GNU Lesser General Public
  52436. - License along with the GNU C Library; if not, write to the Free
  52437. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52438. - 02111-1307 USA. */
  52439. + License along with the GNU C Library; if not, see
  52440. + <http://www.gnu.org/licenses/>. */
  52441. #ifndef _MATH_H
  52442. # error "Never use <bits/huge_val.h> directly; include <math.h> instead."
  52443. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/huge_vall.h uClibc-git/libc/sysdeps/linux/common/bits/huge_vall.h
  52444. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/huge_vall.h 2012-05-15 09:20:09.000000000 +0200
  52445. +++ uClibc-git/libc/sysdeps/linux/common/bits/huge_vall.h 2014-06-02 17:40:34.342713800 +0200
  52446. @@ -14,9 +14,8 @@
  52447. Lesser General Public License for more details.
  52448. You should have received a copy of the GNU Lesser General Public
  52449. - License along with the GNU C Library; if not, write to the Free
  52450. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52451. - 02111-1307 USA. */
  52452. + License along with the GNU C Library; if not, see
  52453. + <http://www.gnu.org/licenses/>. */
  52454. #ifndef _MATH_H
  52455. # error "Never use <bits/huge_vall.h> directly; include <math.h> instead."
  52456. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/inf.h uClibc-git/libc/sysdeps/linux/common/bits/inf.h
  52457. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/inf.h 2012-05-15 09:20:09.000000000 +0200
  52458. +++ uClibc-git/libc/sysdeps/linux/common/bits/inf.h 2014-06-02 17:40:34.342713800 +0200
  52459. @@ -13,9 +13,8 @@
  52460. Lesser General Public License for more details.
  52461. You should have received a copy of the GNU Lesser General Public
  52462. - License along with the GNU C Library; if not, write to the Free
  52463. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52464. - 02111-1307 USA. */
  52465. + License along with the GNU C Library; if not, see
  52466. + <http://www.gnu.org/licenses/>. */
  52467. #ifndef _MATH_H
  52468. # error "Never use <bits/inf.h> directly; include <math.h> instead."
  52469. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/in.h uClibc-git/libc/sysdeps/linux/common/bits/in.h
  52470. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/in.h 2012-05-15 09:20:09.000000000 +0200
  52471. +++ uClibc-git/libc/sysdeps/linux/common/bits/in.h 2014-06-02 17:40:34.342713800 +0200
  52472. @@ -1,4 +1,4 @@
  52473. -/* Copyright (C) 1991-1999, 2000, 2004 Free Software Foundation, Inc.
  52474. +/* Copyright (C) 1991-2013 Free Software Foundation, Inc.
  52475. This file is part of the GNU C Library.
  52476. The GNU C Library is free software; you can redistribute it and/or
  52477. @@ -12,9 +12,8 @@
  52478. Lesser General Public License for more details.
  52479. You should have received a copy of the GNU Lesser General Public
  52480. - License along with the GNU C Library; if not, write to the Free
  52481. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52482. - 02111-1307 USA. */
  52483. + License along with the GNU C Library; if not, see
  52484. + <http://www.gnu.org/licenses/>. */
  52485. /* Linux version. */
  52486. @@ -43,31 +42,49 @@
  52487. #define IP_ADD_SOURCE_MEMBERSHIP 39 /* ip_mreq_source: join source group */
  52488. #define IP_DROP_SOURCE_MEMBERSHIP 40 /* ip_mreq_source: leave source group */
  52489. #define IP_MSFILTER 41
  52490. -#define MCAST_JOIN_GROUP 42 /* group_req: join any-source group */
  52491. -#define MCAST_BLOCK_SOURCE 43 /* group_source_req: block from given group */
  52492. -#define MCAST_UNBLOCK_SOURCE 44 /* group_source_req: unblock from given group*/
  52493. -#define MCAST_LEAVE_GROUP 45 /* group_req: leave any-source group */
  52494. -#define MCAST_JOIN_SOURCE_GROUP 46 /* group_source_req: join source-spec gr */
  52495. -#define MCAST_LEAVE_SOURCE_GROUP 47 /* group_source_req: leave source-spec gr*/
  52496. -#define MCAST_MSFILTER 48
  52497. -
  52498. -#define MCAST_EXCLUDE 0
  52499. -#define MCAST_INCLUDE 1
  52500. -
  52501. -#define IP_ROUTER_ALERT 5 /* bool */
  52502. -#define IP_PKTINFO 8 /* bool */
  52503. -#define IP_PKTOPTIONS 9
  52504. -#define IP_PMTUDISC 10 /* obsolete name? */
  52505. -#define IP_MTU_DISCOVER 10 /* int; see below */
  52506. -#define IP_RECVERR 11 /* bool */
  52507. -#define IP_RECVTTL 12 /* bool */
  52508. -#define IP_RECVTOS 13 /* bool */
  52509. +#if defined __USE_MISC || defined __USE_GNU
  52510. +# define MCAST_JOIN_GROUP 42 /* group_req: join any-source group */
  52511. +# define MCAST_BLOCK_SOURCE 43 /* group_source_req: block from given group */
  52512. +# define MCAST_UNBLOCK_SOURCE 44 /* group_source_req: unblock from given group*/
  52513. +# define MCAST_LEAVE_GROUP 45 /* group_req: leave any-source group */
  52514. +# define MCAST_JOIN_SOURCE_GROUP 46 /* group_source_req: join source-spec gr */
  52515. +# define MCAST_LEAVE_SOURCE_GROUP 47 /* group_source_req: leave source-spec gr*/
  52516. +# define MCAST_MSFILTER 48
  52517. +# define IP_MULTICAST_ALL 49
  52518. +# define IP_UNICAST_IF 50
  52519. +
  52520. +# define MCAST_EXCLUDE 0
  52521. +# define MCAST_INCLUDE 1
  52522. +#endif
  52523. +
  52524. +#define IP_ROUTER_ALERT 5 /* bool */
  52525. +#define IP_PKTINFO 8 /* bool */
  52526. +#define IP_PKTOPTIONS 9
  52527. +#define IP_PMTUDISC 10 /* obsolete name? */
  52528. +#define IP_MTU_DISCOVER 10 /* int; see below */
  52529. +#define IP_RECVERR 11 /* bool */
  52530. +#define IP_RECVTTL 12 /* bool */
  52531. +#define IP_RECVTOS 13 /* bool */
  52532. +#define IP_MTU 14 /* int */
  52533. +#define IP_FREEBIND 15
  52534. +#define IP_IPSEC_POLICY 16
  52535. +#define IP_XFRM_POLICY 17
  52536. +#define IP_PASSSEC 18
  52537. +#define IP_TRANSPARENT 19
  52538. +#define IP_MULTICAST_ALL 49 /* bool */
  52539. +
  52540. +/* TProxy original addresses */
  52541. +#define IP_ORIGDSTADDR 20
  52542. +#define IP_RECVORIGDSTADDR IP_ORIGDSTADDR
  52543. +
  52544. +#define IP_MINTTL 21
  52545. /* IP_MTU_DISCOVER arguments. */
  52546. #define IP_PMTUDISC_DONT 0 /* Never send DF frames. */
  52547. #define IP_PMTUDISC_WANT 1 /* Use per route hints. */
  52548. #define IP_PMTUDISC_DO 2 /* Always DF. */
  52549. +#define IP_PMTUDISC_PROBE 3 /* Ignore dst pmtu. */
  52550. /* To select the IP level. */
  52551. #define SOL_IP 0
  52552. @@ -76,6 +93,7 @@
  52553. #define IP_DEFAULT_MULTICAST_LOOP 1
  52554. #define IP_MAX_MEMBERSHIPS 20
  52555. +#if defined __USE_MISC || defined __USE_GNU
  52556. /* Structure used to describe IP options for IP_OPTIONS and IP_RETOPTS.
  52557. The `ip_dst' field is used for the first-hop gateway when using a
  52558. source route (this gets put into the header proper). */
  52559. @@ -100,6 +118,7 @@
  52560. struct in_addr ipi_spec_dst; /* Routing destination address */
  52561. struct in_addr ipi_addr; /* Header destination address */
  52562. };
  52563. +#endif
  52564. #ifdef __UCLIBC_HAS_IPV6__
  52565. /* Options for use with `getsockopt' and `setsockopt' at the IPv6 level.
  52566. @@ -159,6 +178,7 @@
  52567. #define IPV6_PMTUDISC_DONT 0 /* Never send DF frames. */
  52568. #define IPV6_PMTUDISC_WANT 1 /* Use per route hints. */
  52569. #define IPV6_PMTUDISC_DO 2 /* Always DF. */
  52570. +#define IPV6_PMTUDISC_PROBE 3 /* Ignore dst pmtu. */
  52571. /* Socket level values for IPv6. */
  52572. #define SOL_IPV6 41
  52573. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/initspin.h uClibc-git/libc/sysdeps/linux/common/bits/initspin.h
  52574. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/initspin.h 2012-05-15 09:20:09.000000000 +0200
  52575. +++ uClibc-git/libc/sysdeps/linux/common/bits/initspin.h 2014-06-02 17:40:34.342713800 +0200
  52576. @@ -13,9 +13,8 @@
  52577. Lesser General Public License for more details.
  52578. You should have received a copy of the GNU Lesser General Public
  52579. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  52580. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  52581. - Boston, MA 02111-1307, USA. */
  52582. + License along with the GNU C Library; see the file COPYING.LIB. If
  52583. + not, see <http://www.gnu.org/licenses/>. */
  52584. /* Initial value of a spinlock. Most platforms should use zero,
  52585. unless they only implement a "test and clear" operation instead of
  52586. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ioctls.h uClibc-git/libc/sysdeps/linux/common/bits/ioctls.h
  52587. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ioctls.h 2012-05-15 09:20:09.000000000 +0200
  52588. +++ uClibc-git/libc/sysdeps/linux/common/bits/ioctls.h 2014-06-02 17:40:34.342713800 +0200
  52589. @@ -12,9 +12,8 @@
  52590. Lesser General Public License for more details.
  52591. You should have received a copy of the GNU Lesser General Public
  52592. - License along with the GNU C Library; if not, write to the Free
  52593. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52594. - 02111-1307 USA. */
  52595. + License along with the GNU C Library; if not, see
  52596. + <http://www.gnu.org/licenses/>. */
  52597. #ifndef _SYS_IOCTL_H
  52598. # error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
  52599. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ioctl-types.h uClibc-git/libc/sysdeps/linux/common/bits/ioctl-types.h
  52600. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ioctl-types.h 2012-05-15 09:20:09.000000000 +0200
  52601. +++ uClibc-git/libc/sysdeps/linux/common/bits/ioctl-types.h 2014-06-02 17:40:34.342713800 +0200
  52602. @@ -13,9 +13,8 @@
  52603. Lesser General Public License for more details.
  52604. You should have received a copy of the GNU Lesser General Public
  52605. - License along with the GNU C Library; if not, write to the Free
  52606. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52607. - 02111-1307 USA. */
  52608. + License along with the GNU C Library; if not, see
  52609. + <http://www.gnu.org/licenses/>. */
  52610. #ifndef _SYS_IOCTL_H
  52611. # error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
  52612. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ipc.h uClibc-git/libc/sysdeps/linux/common/bits/ipc.h
  52613. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  52614. +++ uClibc-git/libc/sysdeps/linux/common/bits/ipc.h 2014-06-02 17:40:34.342713800 +0200
  52615. @@ -12,9 +12,8 @@
  52616. Lesser General Public License for more details.
  52617. You should have received a copy of the GNU Lesser General Public
  52618. - License along with the GNU C Library; if not, write to the Free
  52619. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52620. - 02111-1307 USA. */
  52621. + License along with the GNU C Library; if not, see
  52622. + <http://www.gnu.org/licenses/>. */
  52623. #ifndef _SYS_IPC_H
  52624. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  52625. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/kernel-features.h uClibc-git/libc/sysdeps/linux/common/bits/kernel-features.h
  52626. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/kernel-features.h 2012-05-15 09:20:09.000000000 +0200
  52627. +++ uClibc-git/libc/sysdeps/linux/common/bits/kernel-features.h 2014-06-02 17:40:34.342713800 +0200
  52628. @@ -14,9 +14,8 @@
  52629. Lesser General Public License for more details.
  52630. You should have received a copy of the GNU Lesser General Public
  52631. - License along with the GNU C Library; if not, write to the Free
  52632. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52633. - 02111-1307 USA. */
  52634. + License along with the GNU C Library; if not, see
  52635. + <http://www.gnu.org/licenses/>. */
  52636. /* This file must not contain any C code. At least it must be protected
  52637. to allow using the file also in assembler files. */
  52638. @@ -311,17 +310,19 @@
  52639. /* Support for various CLOEXEC and NONBLOCK flags was added for x86,
  52640. * x86-64, PPC, IA-64, and SPARC in 2.6.27. */
  52641. -#if __LINUX_KERNEL_VERSION >= 0x02061b \
  52642. - && (defined __i386__ || defined __x86_64__ || defined __powerpc__ \
  52643. - || defined __ia64__ || defined __sparc__ || defined __s390__)
  52644. +#if (__LINUX_KERNEL_VERSION >= 0x02061b \
  52645. + && (defined __i386__ || defined __x86_64__ || defined __powerpc__ \
  52646. + || defined __ia64__ || defined __sparc__ || defined __s390__) \
  52647. + ) || (__LINUX_KERNEL_VERSION >= 0x020621 && defined __alpha__) \
  52648. + || defined __aarch64__ || defined __tile__
  52649. /* # define __ASSUME_SOCK_CLOEXEC 1 */
  52650. /* # define __ASSUME_IN_NONBLOCK 1 */
  52651. # define __ASSUME_PIPE2 1
  52652. /* # define __ASSUME_EVENTFD2 1 */
  52653. /* # define __ASSUME_SIGNALFD4 1 */
  52654. +/* # define __ASSUME_DUP3 1 */
  52655. #endif
  52656. -
  52657. /* These features were surely available with 2.4.12. */
  52658. #if __LINUX_KERNEL_VERSION >= 132108 && defined __mc68000__
  52659. # define __ASSUME_MMAP2_SYSCALL 1
  52660. @@ -494,6 +495,14 @@
  52661. # define __ASSUME_PRIVATE_FUTEX 1
  52662. #endif
  52663. +/* Support for fallocate was added in 2.6.23,
  52664. + on s390 only after 2.6.23-rc1, on alpha only after 2.6.33-rc1. */
  52665. +#if __LINUX_KERNEL_VERSION >= 0x020617 \
  52666. + && (!defined __s390__ || __LINUX_KERNEL_VERSION >= 0x020618) \
  52667. + && (!defined __alpha__ || __LINUX_KERNEL_VERSION >= 0x020621)
  52668. +# define __ASSUME_FALLOCATE 1
  52669. +#endif
  52670. +
  52671. /* getcpu is a syscall for x86-64 since 3.1. */
  52672. #if defined __x86_64__ && __LINUX_KERNEL_VERSION >= 0x030100
  52673. # define __ASSUME_GETCPU_SYSCALL 1
  52674. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/kernel_sigaction.h uClibc-git/libc/sysdeps/linux/common/bits/kernel_sigaction.h
  52675. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/kernel_sigaction.h 2012-05-15 09:20:09.000000000 +0200
  52676. +++ uClibc-git/libc/sysdeps/linux/common/bits/kernel_sigaction.h 2014-06-02 17:40:34.342713800 +0200
  52677. @@ -19,18 +19,6 @@
  52678. unsigned long sa_flags;
  52679. void (*sa_restorer)(void);
  52680. };
  52681. -/* In uclibc, userspace struct sigaction is identical to
  52682. - * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
  52683. - * See sigaction.h
  52684. - */
  52685. -
  52686. -extern int __syscall_sigaction(int, const struct old_kernel_sigaction *,
  52687. - struct old_kernel_sigaction *);
  52688. -
  52689. #endif
  52690. -
  52691. -extern int __syscall_rt_sigaction(int, const struct sigaction *,
  52692. - struct sigaction *, size_t);
  52693. -
  52694. #endif /* _BITS_SIGACTION_STRUCT_H */
  52695. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/locale.h uClibc-git/libc/sysdeps/linux/common/bits/locale.h
  52696. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/locale.h 2012-05-15 09:20:09.000000000 +0200
  52697. +++ uClibc-git/libc/sysdeps/linux/common/bits/locale.h 2014-06-02 17:40:34.342713800 +0200
  52698. @@ -13,9 +13,8 @@
  52699. Lesser General Public License for more details.
  52700. You should have received a copy of the GNU Lesser General Public
  52701. - License along with the GNU C Library; if not, write to the Free
  52702. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52703. - 02111-1307 USA. */
  52704. + License along with the GNU C Library; if not, see
  52705. + <http://www.gnu.org/licenses/>. */
  52706. #if !defined _LOCALE_H && !defined _LANGINFO_H
  52707. # error "Never use <bits/locale.h> directly; include <locale.h> instead."
  52708. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/local_lim.h uClibc-git/libc/sysdeps/linux/common/bits/local_lim.h
  52709. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
  52710. +++ uClibc-git/libc/sysdeps/linux/common/bits/local_lim.h 2014-06-02 17:40:34.342713800 +0200
  52711. @@ -13,9 +13,8 @@
  52712. Lesser General Public License for more details.
  52713. You should have received a copy of the GNU Lesser General Public
  52714. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  52715. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  52716. - Boston, MA 02111-1307, USA. */
  52717. + License along with the GNU C Library; see the file COPYING.LIB. If
  52718. + not, see <http://www.gnu.org/licenses/>. */
  52719. /* The kernel header pollutes the namespace with the NR_OPEN symbol
  52720. and defines LINK_MAX although filesystems have different maxima. A
  52721. @@ -71,6 +70,8 @@
  52722. /* The number of threads per process. */
  52723. #define _POSIX_THREAD_THREADS_MAX 64
  52724. +/* We have no predefined limit on the number of threads. */
  52725. +#undef PTHREAD_THREADS_MAX
  52726. /* Maximum amount by which a process can descrease its asynchronous I/O
  52727. priority level. */
  52728. @@ -93,3 +94,6 @@
  52729. /* Maximum message queue priority level. */
  52730. #define MQ_PRIO_MAX 32768
  52731. +
  52732. +/* Maximum value the semaphore can have. */
  52733. +#define SEM_VALUE_MAX (2147483647)
  52734. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mathcalls.h uClibc-git/libc/sysdeps/linux/common/bits/mathcalls.h
  52735. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mathcalls.h 2012-05-15 09:20:09.000000000 +0200
  52736. +++ uClibc-git/libc/sysdeps/linux/common/bits/mathcalls.h 2014-06-02 17:40:34.342713800 +0200
  52737. @@ -13,9 +13,8 @@
  52738. Lesser General Public License for more details.
  52739. You should have received a copy of the GNU Lesser General Public
  52740. - License along with the GNU C Library; if not, write to the Free
  52741. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52742. - 02111-1307 USA. */
  52743. + License along with the GNU C Library; if not, see
  52744. + <http://www.gnu.org/licenses/>. */
  52745. /* NOTE: Because of the special way this file is used by <math.h>, this
  52746. file must NOT be protected from multiple inclusion as header files
  52747. @@ -49,7 +48,7 @@
  52748. /* __MATHCALLX(type,function,[suffix],args,attrib) and
  52749. - * __MATHCALLI(type,function,[suffix],args) include libm_hidden_def
  52750. + * __MATHCALLI(type,function,[suffix],args) include libm_hidden_proto
  52751. * (for "double" versions only, xxxf and xxxl do not get this treatment).
  52752. *
  52753. * __MATHDECL(type,function,[suffix],args) does not.
  52754. @@ -57,7 +56,7 @@
  52755. * (it is just a shortcut to __MATHDECL(_Mdouble_,function,[suffix],args)).
  52756. *
  52757. * __MATHDECL_PRIV(type,function,[suffix],args,attrib)
  52758. - * includes libm_hidden_def (always) and declares __foo, not foo.
  52759. + * includes libm_hidden_proto (always) and declares __foo, not foo.
  52760. */
  52761. @@ -155,7 +154,7 @@
  52762. __MATHCALLI (exp2,, (_Mdouble_ __x))
  52763. /* Compute base-2 logarithm of X. */
  52764. -__MATHCALL (log2,, (_Mdouble_ __x))
  52765. +__MATHCALLI (log2,, (_Mdouble_ __x))
  52766. __END_NAMESPACE_C99
  52767. #endif
  52768. @@ -223,7 +222,7 @@
  52769. /* Return the fractional part of X after dividing out `ilogb (X)'. */
  52770. -__MATHCALL (significand,, (_Mdouble_ __x))
  52771. +__MATHCALLI (significand,, (_Mdouble_ __x))
  52772. #endif /* Use misc. */
  52773. #if defined __USE_MISC || defined __USE_ISOC99
  52774. @@ -236,7 +235,7 @@
  52775. #ifdef __USE_ISOC99
  52776. __BEGIN_NAMESPACE_C99
  52777. /* Return representation of NaN for double type. */
  52778. -__MATHCALLX (nan,, (__const char *__tagb), (__const__))
  52779. +__MATHCALLX (nan,, (const char *__tagb), (__const__))
  52780. __END_NAMESPACE_C99
  52781. #endif
  52782. @@ -278,7 +277,7 @@
  52783. #if defined __USE_MISC || defined __USE_XOPEN
  52784. /* Obsolete alias for `lgamma'. */
  52785. -__MATHCALL (gamma,, (_Mdouble_))
  52786. +__MATHCALLI (gamma,, (_Mdouble_))
  52787. #endif
  52788. #ifdef __USE_MISC
  52789. @@ -286,6 +285,8 @@
  52790. `signgam'. The reentrant version instead takes a pointer and stores
  52791. the value through it. */
  52792. __MATHCALL (lgamma,_r, (_Mdouble_, int *__signgamp))
  52793. +/* __MATHCALLI does not work here, probably due to ,_r, */
  52794. +libm_hidden_proto(lgamma_r)
  52795. #endif
  52796. @@ -376,5 +377,5 @@
  52797. #if (defined __USE_MISC || defined __USE_XOPEN_EXTENDED) \
  52798. && defined __UCLIBC_SUSV3_LEGACY__
  52799. /* Return X times (2 to the Nth power). */
  52800. -__MATHCALL (scalb,, (_Mdouble_ __x, _Mdouble_ __n))
  52801. +__MATHCALLI (scalb,, (_Mdouble_ __x, _Mdouble_ __n))
  52802. #endif
  52803. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mathdef.h uClibc-git/libc/sysdeps/linux/common/bits/mathdef.h
  52804. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  52805. +++ uClibc-git/libc/sysdeps/linux/common/bits/mathdef.h 2014-06-02 17:40:34.342713800 +0200
  52806. @@ -12,9 +12,8 @@
  52807. Lesser General Public License for more details.
  52808. You should have received a copy of the GNU Lesser General Public
  52809. - License along with the GNU C Library; if not, write to the Free
  52810. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52811. - 02111-1307 USA. */
  52812. + License along with the GNU C Library; if not, see
  52813. + <http://www.gnu.org/licenses/>. */
  52814. #if !defined _MATH_H && !defined _COMPLEX_H
  52815. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  52816. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mman-common.h uClibc-git/libc/sysdeps/linux/common/bits/mman-common.h
  52817. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mman-common.h 2012-05-15 09:20:09.000000000 +0200
  52818. +++ uClibc-git/libc/sysdeps/linux/common/bits/mman-common.h 2014-06-02 17:40:34.342713800 +0200
  52819. @@ -13,9 +13,8 @@
  52820. Lesser General Public License for more details.
  52821. You should have received a copy of the GNU Lesser General Public
  52822. - License along with the GNU C Library; if not, write to the Free
  52823. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52824. - 02111-1307 USA. */
  52825. + License along with the GNU C Library; if not, see
  52826. + <http://www.gnu.org/licenses/>. */
  52827. #ifndef _SYS_MMAN_H
  52828. # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
  52829. @@ -64,7 +63,7 @@
  52830. # define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
  52831. # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
  52832. # define MAP_STACK 0x20000 /* Allocation is for a stack. */
  52833. -# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
  52834. +# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
  52835. be uninitialized. */
  52836. #endif
  52837. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mqueue.h uClibc-git/libc/sysdeps/linux/common/bits/mqueue.h
  52838. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/mqueue.h 2012-05-15 09:20:09.000000000 +0200
  52839. +++ uClibc-git/libc/sysdeps/linux/common/bits/mqueue.h 2014-06-02 17:40:34.342713800 +0200
  52840. @@ -12,9 +12,8 @@
  52841. Lesser General Public License for more details.
  52842. You should have received a copy of the GNU Lesser General Public
  52843. - License along with the GNU C Library; if not, write to the Free
  52844. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52845. - 02111-1307 USA. */
  52846. + License along with the GNU C Library; if not, see
  52847. + <http://www.gnu.org/licenses/>. */
  52848. #ifndef _MQUEUE_H
  52849. # error "Never use <bits/mqueue.h> directly; include <mqueue.h> instead."
  52850. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/msq.h uClibc-git/libc/sysdeps/linux/common/bits/msq.h
  52851. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
  52852. +++ uClibc-git/libc/sysdeps/linux/common/bits/msq.h 2014-06-02 17:40:34.342713800 +0200
  52853. @@ -12,9 +12,8 @@
  52854. Lesser General Public License for more details.
  52855. You should have received a copy of the GNU Lesser General Public
  52856. - License along with the GNU C Library; if not, write to the Free
  52857. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52858. - 02111-1307 USA. */
  52859. + License along with the GNU C Library; if not, see
  52860. + <http://www.gnu.org/licenses/>. */
  52861. #ifndef _SYS_MSG_H
  52862. # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  52863. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/nan.h uClibc-git/libc/sysdeps/linux/common/bits/nan.h
  52864. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/nan.h 2012-05-15 09:20:09.000000000 +0200
  52865. +++ uClibc-git/libc/sysdeps/linux/common/bits/nan.h 2014-06-02 17:40:34.342713800 +0200
  52866. @@ -13,9 +13,8 @@
  52867. Lesser General Public License for more details.
  52868. You should have received a copy of the GNU Lesser General Public
  52869. - License along with the GNU C Library; if not, write to the Free
  52870. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52871. - 02111-1307 USA. */
  52872. + License along with the GNU C Library; if not, see
  52873. + <http://www.gnu.org/licenses/>. */
  52874. #ifndef _MATH_H
  52875. # error "Never use <bits/nan.h> directly; include <math.h> instead."
  52876. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/netdb.h uClibc-git/libc/sysdeps/linux/common/bits/netdb.h
  52877. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/netdb.h 2012-05-15 09:20:09.000000000 +0200
  52878. +++ uClibc-git/libc/sysdeps/linux/common/bits/netdb.h 2014-06-02 17:40:34.342713800 +0200
  52879. @@ -12,9 +12,8 @@
  52880. Lesser General Public License for more details.
  52881. You should have received a copy of the GNU Lesser General Public
  52882. - License along with the GNU C Library; if not, write to the Free
  52883. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52884. - 02111-1307 USA. */
  52885. + License along with the GNU C Library; if not, see
  52886. + <http://www.gnu.org/licenses/>. */
  52887. #ifndef _NETDB_H
  52888. # error "Never include <bits/netdb.h> directly; use <netdb.h> instead."
  52889. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/poll.h uClibc-git/libc/sysdeps/linux/common/bits/poll.h
  52890. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
  52891. +++ uClibc-git/libc/sysdeps/linux/common/bits/poll.h 2014-06-02 17:40:34.342713800 +0200
  52892. @@ -12,9 +12,8 @@
  52893. Lesser General Public License for more details.
  52894. You should have received a copy of the GNU Lesser General Public
  52895. - License along with the GNU C Library; if not, write to the Free
  52896. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52897. - 02111-1307 USA. */
  52898. + License along with the GNU C Library; if not, see
  52899. + <http://www.gnu.org/licenses/>. */
  52900. #ifndef _SYS_POLL_H
  52901. # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
  52902. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/posix1_lim.h uClibc-git/libc/sysdeps/linux/common/bits/posix1_lim.h
  52903. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/posix1_lim.h 2012-05-15 09:20:09.000000000 +0200
  52904. +++ uClibc-git/libc/sysdeps/linux/common/bits/posix1_lim.h 2014-06-02 17:40:34.342713800 +0200
  52905. @@ -12,9 +12,8 @@
  52906. Lesser General Public License for more details.
  52907. You should have received a copy of the GNU Lesser General Public
  52908. - License along with the GNU C Library; if not, write to the Free
  52909. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52910. - 02111-1307 USA. */
  52911. + License along with the GNU C Library; if not, see
  52912. + <http://www.gnu.org/licenses/>. */
  52913. /*
  52914. * POSIX Standard: 2.9.2 Minimum Values Added to <limits.h>
  52915. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/posix2_lim.h uClibc-git/libc/sysdeps/linux/common/bits/posix2_lim.h
  52916. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/posix2_lim.h 2012-05-15 09:20:09.000000000 +0200
  52917. +++ uClibc-git/libc/sysdeps/linux/common/bits/posix2_lim.h 2014-06-02 17:40:34.342713800 +0200
  52918. @@ -12,9 +12,8 @@
  52919. Lesser General Public License for more details.
  52920. You should have received a copy of the GNU Lesser General Public
  52921. - License along with the GNU C Library; if not, write to the Free
  52922. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  52923. - 02111-1307 USA. */
  52924. + License along with the GNU C Library; if not, see
  52925. + <http://www.gnu.org/licenses/>. */
  52926. /*
  52927. * Never include this file directly; include <limits.h> instead.
  52928. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/posix_opt.h uClibc-git/libc/sysdeps/linux/common/bits/posix_opt.h
  52929. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/posix_opt.h 2012-05-15 09:20:09.000000000 +0200
  52930. +++ uClibc-git/libc/sysdeps/linux/common/bits/posix_opt.h 2014-06-02 17:40:34.342713800 +0200
  52931. @@ -1,5 +1,5 @@
  52932. /* Define POSIX options for Linux.
  52933. - Copyright (C) 1996-2001, 2002, 2003, 2004 Free Software Foundation, Inc.
  52934. + Copyright (C) 1996-2004, 2006, 2008, 2009 Free Software Foundation, Inc.
  52935. This file is part of the GNU C Library.
  52936. The GNU C Library is free software; you can redistribute it and/or
  52937. @@ -13,12 +13,11 @@
  52938. Lesser General Public License for more details.
  52939. You should have received a copy of the GNU Lesser General Public
  52940. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  52941. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  52942. - Boston, MA 02111-1307, USA. */
  52943. + License along with the GNU C Library; see the file COPYING.LIB. If
  52944. + not, see <http://www.gnu.org/licenses/>. */
  52945. -#ifndef _POSIX_OPT_H
  52946. -#define _POSIX_OPT_H 1
  52947. +#ifndef _BITS_POSIX_OPT_H
  52948. +#define _BITS_POSIX_OPT_H 1
  52949. /* Job control is supported. */
  52950. #define _POSIX_JOB_CONTROL 1
  52951. @@ -27,28 +26,28 @@
  52952. #define _POSIX_SAVED_IDS 1
  52953. /* Priority scheduling is supported. */
  52954. -#define _POSIX_PRIORITY_SCHEDULING 200112L
  52955. +#define _POSIX_PRIORITY_SCHEDULING 200809L
  52956. /* Synchronizing file data is supported. */
  52957. -#define _POSIX_SYNCHRONIZED_IO 200112L
  52958. +#define _POSIX_SYNCHRONIZED_IO 200809L
  52959. /* The fsync function is present. */
  52960. -#define _POSIX_FSYNC 200112L
  52961. +#define _POSIX_FSYNC 200809L
  52962. /* Mapping of files to memory is supported. */
  52963. -#define _POSIX_MAPPED_FILES 200112L
  52964. +#define _POSIX_MAPPED_FILES 200809L
  52965. /* Locking of all memory is supported. */
  52966. -#define _POSIX_MEMLOCK 200112L
  52967. +#define _POSIX_MEMLOCK 200809L
  52968. /* Locking of ranges of memory is supported. */
  52969. -#define _POSIX_MEMLOCK_RANGE 200112L
  52970. +#define _POSIX_MEMLOCK_RANGE 200809L
  52971. /* Setting of memory protections is supported. */
  52972. -#define _POSIX_MEMORY_PROTECTION 200112L
  52973. +#define _POSIX_MEMORY_PROTECTION 200809L
  52974. -/* Only root can change owner of file. */
  52975. -#define _POSIX_CHOWN_RESTRICTED 1
  52976. +/* Some filesystems allow all users to change file ownership. */
  52977. +#define _POSIX_CHOWN_RESTRICTED 0
  52978. /* `c_cc' member of 'struct termios' structure can be disabled by
  52979. using the value _POSIX_VDISABLE. */
  52980. @@ -60,53 +59,67 @@
  52981. /* X/Open realtime support is available. */
  52982. #define _XOPEN_REALTIME 1
  52983. +/* X/Open thread realtime support is available. */
  52984. +#define _XOPEN_REALTIME_THREADS 1
  52985. +
  52986. /* XPG4.2 shared memory is supported. */
  52987. #define _XOPEN_SHM 1
  52988. /* Tell we have POSIX threads. */
  52989. -#define _POSIX_THREADS 200112L
  52990. +#define _POSIX_THREADS 200809L
  52991. /* We have the reentrant functions described in POSIX. */
  52992. #define _POSIX_REENTRANT_FUNCTIONS 1
  52993. -#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L
  52994. +#define _POSIX_THREAD_SAFE_FUNCTIONS 200809L
  52995. /* We provide priority scheduling for threads. */
  52996. -#define _POSIX_THREAD_PRIORITY_SCHEDULING 200112L
  52997. +#define _POSIX_THREAD_PRIORITY_SCHEDULING 200809L
  52998. /* We support user-defined stack sizes. */
  52999. -#define _POSIX_THREAD_ATTR_STACKSIZE 200112L
  53000. +#define _POSIX_THREAD_ATTR_STACKSIZE 200809L
  53001. /* We support user-defined stacks. */
  53002. -#define _POSIX_THREAD_ATTR_STACKADDR 200112L
  53003. +#define _POSIX_THREAD_ATTR_STACKADDR 200809L
  53004. -#ifdef __UCLIBC_HAS_REALTIME__
  53005. -/* We support POSIX.1b semaphores. */
  53006. -#define _POSIX_SEMAPHORES 200112L
  53007. +/* We support priority inheritence. */
  53008. +#define _POSIX_THREAD_PRIO_INHERIT 200809L
  53009. +
  53010. +/* We support priority protection, though only for non-robust
  53011. + mutexes. */
  53012. +#define _POSIX_THREAD_PRIO_PROTECT 200809L
  53013. +
  53014. +#ifdef __USE_XOPEN2K8
  53015. +/* We support priority inheritence for robust mutexes. */
  53016. +# define _POSIX_THREAD_ROBUST_PRIO_INHERIT 200809L
  53017. +
  53018. +/* We do not support priority protection for robust mutexes. */
  53019. +# define _POSIX_THREAD_ROBUST_PRIO_PROTECT -1
  53020. #endif
  53021. +/* We support POSIX.1b semaphores. */
  53022. +#define _POSIX_SEMAPHORES 200809L
  53023. +
  53024. /* Real-time signals are supported. */
  53025. -#define _POSIX_REALTIME_SIGNALS 200112L
  53026. +#define _POSIX_REALTIME_SIGNALS 200809L
  53027. /* We support asynchronous I/O. */
  53028. -#define _POSIX_ASYNCHRONOUS_IO 200112L
  53029. +#define _POSIX_ASYNCHRONOUS_IO 200809L
  53030. #define _POSIX_ASYNC_IO 1
  53031. /* Alternative name for Unix98. */
  53032. #define _LFS_ASYNCHRONOUS_IO 1
  53033. /* Support for prioritization is also available. */
  53034. -#define _POSIX_PRIORITIZED_IO 200112L
  53035. +#define _POSIX_PRIORITIZED_IO 200809L
  53036. /* The LFS support in asynchronous I/O is also available. */
  53037. #define _LFS64_ASYNCHRONOUS_IO 1
  53038. -#ifdef __UCLIBC_HAS_LFS__
  53039. /* The rest of the LFS is also available. */
  53040. #define _LFS_LARGEFILE 1
  53041. #define _LFS64_LARGEFILE 1
  53042. #define _LFS64_STDIO 1
  53043. -#endif
  53044. /* POSIX shared memory objects are implemented. */
  53045. -#define _POSIX_SHARED_MEMORY_OBJECTS 200112L
  53046. +#define _POSIX_SHARED_MEMORY_OBJECTS 200809L
  53047. /* CPU-time clocks support needs to be checked at runtime. */
  53048. #define _POSIX_CPUTIME 0
  53049. @@ -114,61 +127,53 @@
  53050. /* Clock support in threads must be also checked at runtime. */
  53051. #define _POSIX_THREAD_CPUTIME 0
  53052. -#ifdef __UCLIBC_HAS_REGEX__
  53053. /* GNU libc provides regular expression handling. */
  53054. #define _POSIX_REGEXP 1
  53055. -#endif
  53056. /* Reader/Writer locks are available. */
  53057. -#define _POSIX_READER_WRITER_LOCKS 200112L
  53058. +#define _POSIX_READER_WRITER_LOCKS 200809L
  53059. /* We have a POSIX shell. */
  53060. #define _POSIX_SHELL 1
  53061. /* We support the Timeouts option. */
  53062. -#define _POSIX_TIMEOUTS 200112L
  53063. +#define _POSIX_TIMEOUTS 200809L
  53064. /* We support spinlocks. */
  53065. -#define _POSIX_SPIN_LOCKS 200112L
  53066. +#define _POSIX_SPIN_LOCKS 200809L
  53067. /* The `spawn' function family is supported. */
  53068. -#if 0 /* no support in uClibc (yet) */
  53069. -#define _POSIX_SPAWN 200112L
  53070. -#endif
  53071. +#define _POSIX_SPAWN 200809L
  53072. /* We have POSIX timers. */
  53073. -#define _POSIX_TIMERS 200112L
  53074. +#define _POSIX_TIMERS 200809L
  53075. /* The barrier functions are available. */
  53076. -#define _POSIX_BARRIERS 200112L
  53077. +#define _POSIX_BARRIERS 200809L
  53078. /* POSIX message queues are available. */
  53079. -#define _POSIX_MESSAGE_PASSING 200112L
  53080. +#define _POSIX_MESSAGE_PASSING 200809L
  53081. /* Thread process-shared synchronization is supported. */
  53082. -#define _POSIX_THREAD_PROCESS_SHARED 200112L
  53083. +#define _POSIX_THREAD_PROCESS_SHARED 200809L
  53084. /* The monotonic clock might be available. */
  53085. #define _POSIX_MONOTONIC_CLOCK 0
  53086. /* The clock selection interfaces are available. */
  53087. -#define _POSIX_CLOCK_SELECTION 200112L
  53088. +#define _POSIX_CLOCK_SELECTION 200809L
  53089. /* Advisory information interfaces are available. */
  53090. -#define _POSIX_ADVISORY_INFO 200112L
  53091. +#define _POSIX_ADVISORY_INFO 200809L
  53092. -#ifdef __UCLIBC_HAS_IPV6__
  53093. /* IPv6 support is available. */
  53094. -#define _POSIX_IPV6 200112L
  53095. -#endif
  53096. +#define _POSIX_IPV6 200809L
  53097. -#ifdef __UCLIBC_HAS_SOCKET__
  53098. /* Raw socket support is available. */
  53099. -#define _POSIX_RAW_SOCKETS 200112L
  53100. -#endif
  53101. +#define _POSIX_RAW_SOCKETS 200809L
  53102. /* We have at least one terminal. */
  53103. -#define _POSIX2_CHAR_TERM 200112L
  53104. +#define _POSIX2_CHAR_TERM 200809L
  53105. /* Neither process nor thread sporadic server interfaces is available. */
  53106. #define _POSIX_SPORADIC_SERVER -1
  53107. @@ -183,8 +188,4 @@
  53108. /* Typed memory objects are not available. */
  53109. #define _POSIX_TYPED_MEMORY_OBJECTS -1
  53110. -/* No support for priority inheritance or protection so far. */
  53111. -#define _POSIX_THREAD_PRIO_INHERIT -1
  53112. -#define _POSIX_THREAD_PRIO_PROTECT -1
  53113. -
  53114. -#endif /* posix_opt.h */
  53115. +#endif /* bits/posix_opt.h */
  53116. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/resource.h uClibc-git/libc/sysdeps/linux/common/bits/resource.h
  53117. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/resource.h 2012-05-15 09:20:09.000000000 +0200
  53118. +++ uClibc-git/libc/sysdeps/linux/common/bits/resource.h 2014-06-02 17:40:34.342713800 +0200
  53119. @@ -14,9 +14,8 @@
  53120. Lesser General Public License for more details.
  53121. You should have received a copy of the GNU Lesser General Public
  53122. - License along with the GNU C Library; if not, write to the Free
  53123. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53124. - 02111-1307 USA. */
  53125. + License along with the GNU C Library; if not, see
  53126. + <http://www.gnu.org/licenses/>. */
  53127. #ifndef _SYS_RESOURCE_H
  53128. # error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
  53129. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sched.h uClibc-git/libc/sysdeps/linux/common/bits/sched.h
  53130. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sched.h 2012-05-15 09:20:09.000000000 +0200
  53131. +++ uClibc-git/libc/sysdeps/linux/common/bits/sched.h 2014-06-02 17:40:34.342713800 +0200
  53132. @@ -15,9 +15,8 @@
  53133. Lesser General Public License for more details.
  53134. You should have received a copy of the GNU Lesser General Public
  53135. - License along with the GNU C Library; if not, write to the Free
  53136. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53137. - 02111-1307 USA. */
  53138. + License along with the GNU C Library; if not, see
  53139. + <http://www.gnu.org/licenses/>. */
  53140. #ifndef __need_schedparam
  53141. @@ -109,6 +108,7 @@
  53142. /* Size definition for CPU sets. */
  53143. # define __CPU_SETSIZE 1024
  53144. # define __NCPUBITS (8 * sizeof (__cpu_mask))
  53145. +# include <stdlib.h>
  53146. /* Type for array elements in 'cpu_set_t'. */
  53147. typedef unsigned long int __cpu_mask;
  53148. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/select.h uClibc-git/libc/sysdeps/linux/common/bits/select.h
  53149. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/select.h 2012-05-15 09:20:09.000000000 +0200
  53150. +++ uClibc-git/libc/sysdeps/linux/common/bits/select.h 2014-06-02 17:40:34.342713800 +0200
  53151. @@ -12,9 +12,8 @@
  53152. Lesser General Public License for more details.
  53153. You should have received a copy of the GNU Lesser General Public
  53154. - License along with the GNU C Library; if not, write to the Free
  53155. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53156. - 02111-1307 USA. */
  53157. + License along with the GNU C Library; if not, see
  53158. + <http://www.gnu.org/licenses/>. */
  53159. #ifndef _SYS_SELECT_H
  53160. # error "Never use <bits/select.h> directly; include <sys/select.h> instead."
  53161. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sem.h uClibc-git/libc/sysdeps/linux/common/bits/sem.h
  53162. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
  53163. +++ uClibc-git/libc/sysdeps/linux/common/bits/sem.h 2014-06-02 17:40:34.342713800 +0200
  53164. @@ -12,9 +12,8 @@
  53165. Lesser General Public License for more details.
  53166. You should have received a copy of the GNU Lesser General Public
  53167. - License along with the GNU C Library; if not, write to the Free
  53168. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53169. - 02111-1307 USA. */
  53170. + License along with the GNU C Library; if not, see
  53171. + <http://www.gnu.org/licenses/>. */
  53172. #ifndef _SYS_SEM_H
  53173. # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
  53174. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/shm.h uClibc-git/libc/sysdeps/linux/common/bits/shm.h
  53175. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  53176. +++ uClibc-git/libc/sysdeps/linux/common/bits/shm.h 2014-06-02 17:40:34.342713800 +0200
  53177. @@ -12,9 +12,8 @@
  53178. Lesser General Public License for more details.
  53179. You should have received a copy of the GNU Lesser General Public
  53180. - License along with the GNU C Library; if not, write to the Free
  53181. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53182. - 02111-1307 USA. */
  53183. + License along with the GNU C Library; if not, see
  53184. + <http://www.gnu.org/licenses/>. */
  53185. #ifndef _SYS_SHM_H
  53186. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  53187. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigaction.h uClibc-git/libc/sysdeps/linux/common/bits/sigaction.h
  53188. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
  53189. +++ uClibc-git/libc/sysdeps/linux/common/bits/sigaction.h 2014-06-02 17:40:34.342713800 +0200
  53190. @@ -13,9 +13,8 @@
  53191. Lesser General Public License for more details.
  53192. You should have received a copy of the GNU Lesser General Public
  53193. - License along with the GNU C Library; if not, write to the Free
  53194. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53195. - 02111-1307 USA. */
  53196. + License along with the GNU C Library; if not, see
  53197. + <http://www.gnu.org/licenses/>. */
  53198. #ifndef _SIGNAL_H
  53199. # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
  53200. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/common/bits/sigcontext.h
  53201. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
  53202. +++ uClibc-git/libc/sysdeps/linux/common/bits/sigcontext.h 2014-06-02 17:40:34.342713800 +0200
  53203. @@ -12,9 +12,8 @@
  53204. Lesser General Public License for more details.
  53205. You should have received a copy of the GNU Lesser General Public
  53206. - License along with the GNU C Library; if not, write to the Free
  53207. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53208. - 02111-1307 USA. */
  53209. + License along with the GNU C Library; if not, see
  53210. + <http://www.gnu.org/licenses/>. */
  53211. #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
  53212. # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
  53213. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/common/bits/sigcontextinfo.h
  53214. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  53215. +++ uClibc-git/libc/sysdeps/linux/common/bits/sigcontextinfo.h 2014-06-02 17:40:34.346713822 +0200
  53216. @@ -13,9 +13,8 @@
  53217. Lesser General Public License for more details.
  53218. You should have received a copy of the GNU Lesser General Public
  53219. - License along with the GNU C Library; if not, write to the Free
  53220. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53221. - 02111-1307 USA. */
  53222. + License along with the GNU C Library; if not, see
  53223. + <http://www.gnu.org/licenses/>. */
  53224. /* In general we cannot provide any information. */
  53225. #define SIGCONTEXT struct sigcontext *
  53226. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/siginfo.h uClibc-git/libc/sysdeps/linux/common/bits/siginfo.h
  53227. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/siginfo.h 2012-05-15 09:20:09.000000000 +0200
  53228. +++ uClibc-git/libc/sysdeps/linux/common/bits/siginfo.h 2014-06-02 17:40:34.346713822 +0200
  53229. @@ -13,9 +13,8 @@
  53230. Lesser General Public License for more details.
  53231. You should have received a copy of the GNU Lesser General Public
  53232. - License along with the GNU C Library; if not, write to the Free
  53233. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53234. - 02111-1307 USA. */
  53235. + License along with the GNU C Library; if not, see
  53236. + <http://www.gnu.org/licenses/>. */
  53237. #if !defined _SIGNAL_H && !defined __need_siginfo_t \
  53238. && !defined __need_sigevent_t
  53239. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/signum.h uClibc-git/libc/sysdeps/linux/common/bits/signum.h
  53240. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/signum.h 2012-05-15 09:20:09.000000000 +0200
  53241. +++ uClibc-git/libc/sysdeps/linux/common/bits/signum.h 2014-06-02 17:40:34.346713822 +0200
  53242. @@ -13,9 +13,8 @@
  53243. Lesser General Public License for more details.
  53244. You should have received a copy of the GNU Lesser General Public
  53245. - License along with the GNU C Library; if not, write to the Free
  53246. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53247. - 02111-1307 USA. */
  53248. + License along with the GNU C Library; if not, see
  53249. + <http://www.gnu.org/licenses/>. */
  53250. #ifdef _SIGNAL_H
  53251. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigset.h uClibc-git/libc/sysdeps/linux/common/bits/sigset.h
  53252. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigset.h 2012-05-15 09:20:09.000000000 +0200
  53253. +++ uClibc-git/libc/sysdeps/linux/common/bits/sigset.h 2014-06-02 17:40:34.346713822 +0200
  53254. @@ -13,9 +13,8 @@
  53255. Lesser General Public License for more details.
  53256. You should have received a copy of the GNU Lesser General Public
  53257. - License along with the GNU C Library; if not, write to the Free
  53258. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53259. - 02111-1307 USA. */
  53260. + License along with the GNU C Library; if not, see
  53261. + <http://www.gnu.org/licenses/>. */
  53262. #ifndef _SIGSET_H_types
  53263. # define _SIGSET_H_types 1
  53264. @@ -153,7 +152,7 @@
  53265. checking is done in the non __ versions. */
  53266. # if !defined __USE_EXTERN_INLINES || defined __PROVIDE_OUT_OF_LINE_SIGSETFN
  53267. -extern int __sigismember (__const __sigset_t *, int);
  53268. +extern int __sigismember (const __sigset_t *, int);
  53269. libc_hidden_proto(__sigismember)
  53270. extern int __sigaddset (__sigset_t *, int);
  53271. libc_hidden_proto(__sigaddset)
  53272. @@ -179,7 +178,7 @@
  53273. return BODY; \
  53274. }
  53275. -__SIGSETFN (__sigismember, (__set->__val[__word] & __mask) ? 1 : 0, __const)
  53276. +__SIGSETFN (__sigismember, (__set->__val[__word] & __mask) ? 1 : 0, const)
  53277. __SIGSETFN (__sigaddset, ((__set->__val[__word] |= __mask), 0), )
  53278. __SIGSETFN (__sigdelset, ((__set->__val[__word] &= ~__mask), 0), )
  53279. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigstack.h uClibc-git/libc/sysdeps/linux/common/bits/sigstack.h
  53280. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigstack.h 2012-05-15 09:20:09.000000000 +0200
  53281. +++ uClibc-git/libc/sysdeps/linux/common/bits/sigstack.h 2014-06-02 17:40:34.346713822 +0200
  53282. @@ -13,9 +13,8 @@
  53283. Lesser General Public License for more details.
  53284. You should have received a copy of the GNU Lesser General Public
  53285. - License along with the GNU C Library; if not, write to the Free
  53286. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53287. - 02111-1307 USA. */
  53288. + License along with the GNU C Library; if not, see
  53289. + <http://www.gnu.org/licenses/>. */
  53290. #ifndef _SIGNAL_H
  53291. # error "Never include this file directly. Use <signal.h> instead"
  53292. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigthread.h uClibc-git/libc/sysdeps/linux/common/bits/sigthread.h
  53293. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sigthread.h 2012-05-15 09:20:09.000000000 +0200
  53294. +++ uClibc-git/libc/sysdeps/linux/common/bits/sigthread.h 2014-06-02 17:40:34.346713822 +0200
  53295. @@ -13,9 +13,8 @@
  53296. Lesser General Public License for more details.
  53297. You should have received a copy of the GNU Lesser General Public
  53298. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  53299. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  53300. - Boston, MA 02111-1307, USA. */
  53301. + License along with the GNU C Library; see the file COPYING.LIB. If
  53302. + not, see <http://www.gnu.org/licenses/>. */
  53303. #ifndef _BITS_SIGTHREAD_H
  53304. #define _BITS_SIGTHREAD_H 1
  53305. @@ -29,7 +28,7 @@
  53306. /* Modify the signal mask for the calling thread. The arguments have
  53307. the same meaning as for sigprocmask(2). */
  53308. extern int pthread_sigmask (int __how,
  53309. - __const __sigset_t *__restrict __newmask,
  53310. + const __sigset_t *__restrict __newmask,
  53311. __sigset_t *__restrict __oldmask)__THROW;
  53312. /* Send signal SIGNO to the given thread. */
  53313. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sockaddr.h uClibc-git/libc/sysdeps/linux/common/bits/sockaddr.h
  53314. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/sockaddr.h 2012-05-15 09:20:09.000000000 +0200
  53315. +++ uClibc-git/libc/sysdeps/linux/common/bits/sockaddr.h 2014-06-02 17:40:34.346713822 +0200
  53316. @@ -13,9 +13,8 @@
  53317. Lesser General Public License for more details.
  53318. You should have received a copy of the GNU Lesser General Public
  53319. - License along with the GNU C Library; if not, write to the Free
  53320. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53321. - 02111-1307 USA. */
  53322. + License along with the GNU C Library; if not, see
  53323. + <http://www.gnu.org/licenses/>. */
  53324. /*
  53325. * Never include this file directly; use <sys/socket.h> instead.
  53326. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/socket.h uClibc-git/libc/sysdeps/linux/common/bits/socket.h
  53327. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/socket.h 2012-05-15 09:20:09.000000000 +0200
  53328. +++ uClibc-git/libc/sysdeps/linux/common/bits/socket.h 2014-06-02 17:40:34.346713822 +0200
  53329. @@ -1,5 +1,6 @@
  53330. /* System-specific socket constants and types. Linux version.
  53331. - Copyright (C) 1991,1992,1994-2001,2004,2006 Free Software Foundation, Inc.
  53332. + Copyright (C) 1991,1992,1994-2001,2004,2006-2012
  53333. + Free Software Foundation, Inc.
  53334. This file is part of the GNU C Library.
  53335. The GNU C Library is free software; you can redistribute it and/or
  53336. @@ -13,19 +14,17 @@
  53337. Lesser General Public License for more details.
  53338. You should have received a copy of the GNU Lesser General Public
  53339. - License along with the GNU C Library; if not, write to the Free
  53340. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53341. - 02111-1307 USA. */
  53342. + License along with the GNU C Library; if not, see
  53343. + <http://www.gnu.org/licenses/>. */
  53344. #ifndef __BITS_SOCKET_H
  53345. #define __BITS_SOCKET_H
  53346. -#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
  53347. +#ifndef _SYS_SOCKET_H
  53348. # error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
  53349. #endif
  53350. #define __need_size_t
  53351. -#define __need_NULL
  53352. #include <stddef.h>
  53353. #include <limits.h>
  53354. @@ -37,37 +36,8 @@
  53355. # define __socklen_t_defined
  53356. #endif
  53357. -/* Types of sockets. */
  53358. -enum __socket_type
  53359. -{
  53360. - SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
  53361. - byte streams. */
  53362. -#define SOCK_STREAM SOCK_STREAM
  53363. - SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
  53364. - of fixed maximum length. */
  53365. -#define SOCK_DGRAM SOCK_DGRAM
  53366. - SOCK_RAW = 3, /* Raw protocol interface. */
  53367. -#define SOCK_RAW SOCK_RAW
  53368. - SOCK_RDM = 4, /* Reliably-delivered messages. */
  53369. -#define SOCK_RDM SOCK_RDM
  53370. - SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
  53371. - datagrams of fixed maximum length. */
  53372. -#define SOCK_SEQPACKET SOCK_SEQPACKET
  53373. - SOCK_PACKET = 10, /* Linux specific way of getting packets
  53374. - at the dev level. For writing rarp and
  53375. - other similar things on the user level. */
  53376. -#define SOCK_PACKET SOCK_PACKET
  53377. -
  53378. - /* Flags to be ORed into the type parameter of socket and socketpair and
  53379. - used for the flags parameter of paccept. */
  53380. -
  53381. - SOCK_CLOEXEC = 02000000, /* Atomically set close-on-exec flag for the
  53382. - new descriptor(s). */
  53383. -#define SOCK_CLOEXEC SOCK_CLOEXEC
  53384. - SOCK_NONBLOCK = 04000 /* Atomically mark descriptor(s) as
  53385. - non-blocking. */
  53386. -#define SOCK_NONBLOCK SOCK_NONBLOCK
  53387. -};
  53388. +/* Get the architecture-dependent definition of enum __socket_type. */
  53389. +#include <bits/socket_type.h>
  53390. /* Protocol families. */
  53391. #define PF_UNSPEC 0 /* Unspecified. */
  53392. @@ -94,22 +64,24 @@
  53393. #define PF_ASH 18 /* Ash. */
  53394. #define PF_ECONET 19 /* Acorn Econet. */
  53395. #define PF_ATMSVC 20 /* ATM SVCs. */
  53396. +#define PF_RDS 21 /* RDS sockets. */
  53397. #define PF_SNA 22 /* Linux SNA Project */
  53398. #define PF_IRDA 23 /* IRDA sockets. */
  53399. #define PF_PPPOX 24 /* PPPoX sockets. */
  53400. #define PF_WANPIPE 25 /* Wanpipe API sockets. */
  53401. -#define PF_LLC 26 /* Linux LLC. */
  53402. -#define PF_CAN 29 /* Controller Area Network. */
  53403. -#define PF_TIPC 30 /* TIPC sockets. */
  53404. +#define PF_LLC 26 /* Linux LLC. */
  53405. +#define PF_CAN 29 /* Controller Area Network. */
  53406. +#define PF_TIPC 30 /* TIPC sockets. */
  53407. #define PF_BLUETOOTH 31 /* Bluetooth sockets. */
  53408. #define PF_IUCV 32 /* IUCV sockets. */
  53409. -#define PF_RXRPC 33 /* RxRPC sockets. */
  53410. -#define PF_ISDN 34 /* mISDN sockets. */
  53411. -#define PF_PHONET 35 /* Phonet sockets. */
  53412. -#define PF_IEEE802154 36 /* IEEE 802.15.4 sockets. */
  53413. -#define PF_CAIF 37 /* CAIF sockets. */
  53414. -#define PF_ALG 38 /* Algorithm sockets. */
  53415. -#define PF_MAX 39 /* For now.. */
  53416. +#define PF_RXRPC 33 /* RxRPC sockets. */
  53417. +#define PF_ISDN 34 /* mISDN sockets. */
  53418. +#define PF_PHONET 35 /* Phonet sockets. */
  53419. +#define PF_IEEE802154 36 /* IEEE 802.15.4 sockets. */
  53420. +#define PF_CAIF 37 /* CAIF sockets. */
  53421. +#define PF_ALG 38 /* Algorithm sockets. */
  53422. +#define PF_NFC 39 /* NFC sockets. */
  53423. +#define PF_MAX 40 /* For now.. */
  53424. /* Address families. */
  53425. #define AF_UNSPEC PF_UNSPEC
  53426. @@ -136,21 +108,23 @@
  53427. #define AF_ASH PF_ASH
  53428. #define AF_ECONET PF_ECONET
  53429. #define AF_ATMSVC PF_ATMSVC
  53430. +#define AF_RDS PF_RDS
  53431. #define AF_SNA PF_SNA
  53432. #define AF_IRDA PF_IRDA
  53433. #define AF_PPPOX PF_PPPOX
  53434. #define AF_WANPIPE PF_WANPIPE
  53435. -#define AF_LLC PF_LLC
  53436. -#define AF_CAN PF_CAN
  53437. -#define AF_TIPC PF_TIPC
  53438. +#define AF_LLC PF_LLC
  53439. +#define AF_CAN PF_CAN
  53440. +#define AF_TIPC PF_TIPC
  53441. #define AF_BLUETOOTH PF_BLUETOOTH
  53442. -#define AF_IUCV PF_IUCV
  53443. -#define AF_RXRPC PF_RXRPC
  53444. -#define AF_ISDN PF_ISDN
  53445. -#define AF_PHONET PF_PHONET
  53446. -#define AF_IEEE802154 PF_IEEE802154
  53447. -#define AF_CAIF PF_CAIF
  53448. -#define AF_ALG PF_ALG
  53449. +#define AF_IUCV PF_IUCV
  53450. +#define AF_RXRPC PF_RXRPC
  53451. +#define AF_ISDN PF_ISDN
  53452. +#define AF_PHONET PF_PHONET
  53453. +#define AF_IEEE802154 PF_IEEE802154
  53454. +#define AF_CAIF PF_CAIF
  53455. +#define AF_ALG PF_ALG
  53456. +#define AF_NFC PF_NFC
  53457. #define AF_MAX PF_MAX
  53458. /* Socket level values. Others are defined in the appropriate headers.
  53459. @@ -235,8 +209,14 @@
  53460. #define MSG_ERRQUEUE MSG_ERRQUEUE
  53461. MSG_NOSIGNAL = 0x4000, /* Do not generate SIGPIPE. */
  53462. #define MSG_NOSIGNAL MSG_NOSIGNAL
  53463. - MSG_MORE = 0x8000 /* Sender will send more. */
  53464. + MSG_MORE = 0x8000, /* Sender will send more. */
  53465. #define MSG_MORE MSG_MORE
  53466. + MSG_WAITFORONE = 0x10000, /* Wait for at least one packet to return.*/
  53467. +#define MSG_WAITFORONE MSG_WAITFORONE
  53468. + MSG_CMSG_CLOEXEC = 0x40000000 /* Set close_on_exit for file
  53469. + descriptor received through
  53470. + SCM_RIGHTS. */
  53471. +#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC
  53472. };
  53473. @@ -290,7 +270,7 @@
  53474. #define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
  53475. #define CMSG_FIRSTHDR(mhdr) \
  53476. ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
  53477. - ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
  53478. + ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0)
  53479. #define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
  53480. & (size_t) ~(sizeof (size_t) - 1))
  53481. #define CMSG_SPACE(len) (CMSG_ALIGN (len) \
  53482. @@ -302,14 +282,14 @@
  53483. libc_hidden_proto(__cmsg_nxthdr)
  53484. #ifdef __USE_EXTERN_INLINES
  53485. # ifndef _EXTERN_INLINE
  53486. -# define _EXTERN_INLINE extern __inline
  53487. +# define _EXTERN_INLINE __extern_inline
  53488. # endif
  53489. _EXTERN_INLINE struct cmsghdr *
  53490. __NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
  53491. {
  53492. if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
  53493. /* The kernel header does this so there may be a reason. */
  53494. - return 0;
  53495. + return (struct cmsghdr *) 0;
  53496. __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
  53497. + CMSG_ALIGN (__cmsg->cmsg_len));
  53498. @@ -318,7 +298,7 @@
  53499. || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
  53500. > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
  53501. /* No more entries. */
  53502. - return 0;
  53503. + return (struct cmsghdr *) 0;
  53504. return __cmsg;
  53505. }
  53506. #endif /* Use `extern inline'. */
  53507. @@ -329,20 +309,21 @@
  53508. {
  53509. SCM_RIGHTS = 0x01 /* Transfer file descriptors. */
  53510. #define SCM_RIGHTS SCM_RIGHTS
  53511. -#ifdef __USE_BSD
  53512. +#ifdef __USE_GNU
  53513. , SCM_CREDENTIALS = 0x02 /* Credentials passing. */
  53514. # define SCM_CREDENTIALS SCM_CREDENTIALS
  53515. #endif
  53516. };
  53517. +#ifdef __USE_GNU
  53518. /* User visible structure for SCM_CREDENTIALS message */
  53519. -
  53520. struct ucred
  53521. {
  53522. pid_t pid; /* PID of sending process. */
  53523. uid_t uid; /* UID of sending process. */
  53524. gid_t gid; /* GID of sending process. */
  53525. };
  53526. +#endif
  53527. /* Get socket manipulation related informations from kernel headers. */
  53528. #ifndef __GLIBC__
  53529. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/socket_type.h uClibc-git/libc/sysdeps/linux/common/bits/socket_type.h
  53530. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/socket_type.h 1970-01-01 01:00:00.000000000 +0100
  53531. +++ uClibc-git/libc/sysdeps/linux/common/bits/socket_type.h 2014-06-02 17:40:34.346713822 +0200
  53532. @@ -0,0 +1,54 @@
  53533. +/* Define enum __socket_type for generic Linux.
  53534. + Copyright (C) 1991-2012 Free Software Foundation, Inc.
  53535. + This file is part of the GNU C Library.
  53536. +
  53537. + The GNU C Library is free software; you can redistribute it and/or
  53538. + modify it under the terms of the GNU Lesser General Public
  53539. + License as published by the Free Software Foundation; either
  53540. + version 2.1 of the License, or (at your option) any later version.
  53541. +
  53542. + The GNU C Library is distributed in the hope that it will be useful,
  53543. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  53544. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  53545. + Lesser General Public License for more details.
  53546. +
  53547. + You should have received a copy of the GNU Lesser General Public
  53548. + License along with the GNU C Library; if not, see
  53549. + <http://www.gnu.org/licenses/>. */
  53550. +
  53551. +#ifndef _SYS_SOCKET_H
  53552. +# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
  53553. +#endif
  53554. +
  53555. +/* Types of sockets. */
  53556. +enum __socket_type
  53557. +{
  53558. + SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
  53559. + byte streams. */
  53560. +#define SOCK_STREAM SOCK_STREAM
  53561. + SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
  53562. + of fixed maximum length. */
  53563. +#define SOCK_DGRAM SOCK_DGRAM
  53564. + SOCK_RAW = 3, /* Raw protocol interface. */
  53565. +#define SOCK_RAW SOCK_RAW
  53566. + SOCK_RDM = 4, /* Reliably-delivered messages. */
  53567. +#define SOCK_RDM SOCK_RDM
  53568. + SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
  53569. + datagrams of fixed maximum length. */
  53570. +#define SOCK_SEQPACKET SOCK_SEQPACKET
  53571. + SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */
  53572. +#define SOCK_DCCP SOCK_DCCP
  53573. + SOCK_PACKET = 10, /* Linux specific way of getting packets
  53574. + at the dev level. For writing rarp and
  53575. + other similar things on the user level. */
  53576. +#define SOCK_PACKET SOCK_PACKET
  53577. +
  53578. + /* Flags to be ORed into the type parameter of socket and socketpair. */
  53579. +
  53580. + SOCK_CLOEXEC = 02000000, /* Atomically set close-on-exec flag for the
  53581. + new descriptor(s). */
  53582. +#define SOCK_CLOEXEC SOCK_CLOEXEC
  53583. + SOCK_NONBLOCK = 00004000 /* Atomically mark descriptor(s) as
  53584. + non-blocking. */
  53585. +#define SOCK_NONBLOCK SOCK_NONBLOCK
  53586. +};
  53587. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stab.def uClibc-git/libc/sysdeps/linux/common/bits/stab.def
  53588. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stab.def 2012-05-15 09:20:09.000000000 +0200
  53589. +++ uClibc-git/libc/sysdeps/linux/common/bits/stab.def 2014-06-02 17:40:34.346713822 +0200
  53590. @@ -13,9 +13,8 @@
  53591. Lesser General Public License for more details.
  53592. You should have received a copy of the GNU Lesser General Public
  53593. - License along with the GNU C Library; if not, write to the Free
  53594. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53595. - 02111-1307 USA. */
  53596. + License along with the GNU C Library; if not, see
  53597. + <http://www.gnu.org/licenses/>. */
  53598. /* This contains contribution from Cygnus Support. */
  53599. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/common/bits/stackinfo.h
  53600. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  53601. +++ uClibc-git/libc/sysdeps/linux/common/bits/stackinfo.h 2014-06-02 17:40:34.346713822 +0200
  53602. @@ -12,9 +12,8 @@
  53603. Lesser General Public License for more details.
  53604. You should have received a copy of the GNU Lesser General Public
  53605. - License along with the GNU C Library; if not, write to the Free
  53606. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53607. - 02111-1307 USA. */
  53608. + License along with the GNU C Library; if not, see
  53609. + <http://www.gnu.org/licenses/>. */
  53610. /* This file contains a bit of information about the stack allocation
  53611. of the processor. Since there is no general truth we can't say
  53612. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/statfs.h uClibc-git/libc/sysdeps/linux/common/bits/statfs.h
  53613. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/statfs.h 2012-05-15 09:20:09.000000000 +0200
  53614. +++ uClibc-git/libc/sysdeps/linux/common/bits/statfs.h 2014-06-02 17:40:34.346713822 +0200
  53615. @@ -12,9 +12,8 @@
  53616. Lesser General Public License for more details.
  53617. You should have received a copy of the GNU Lesser General Public
  53618. - License along with the GNU C Library; if not, write to the Free
  53619. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53620. - 02111-1307 USA. */
  53621. + License along with the GNU C Library; if not, see
  53622. + <http://www.gnu.org/licenses/>. */
  53623. #ifndef _SYS_STATFS_H
  53624. # error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
  53625. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stat.h uClibc-git/libc/sysdeps/linux/common/bits/stat.h
  53626. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  53627. +++ uClibc-git/libc/sysdeps/linux/common/bits/stat.h 2014-06-02 17:40:34.346713822 +0200
  53628. @@ -12,9 +12,8 @@
  53629. Lesser General Public License for more details.
  53630. You should have received a copy of the GNU Lesser General Public
  53631. - License along with the GNU C Library; if not, write to the Free
  53632. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53633. - 02111-1307 USA. */
  53634. + License along with the GNU C Library; if not, see
  53635. + <http://www.gnu.org/licenses/>. */
  53636. #ifndef _SYS_STAT_H
  53637. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  53638. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/statvfs.h uClibc-git/libc/sysdeps/linux/common/bits/statvfs.h
  53639. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/statvfs.h 2012-05-15 09:20:09.000000000 +0200
  53640. +++ uClibc-git/libc/sysdeps/linux/common/bits/statvfs.h 2014-06-02 17:40:34.346713822 +0200
  53641. @@ -12,9 +12,8 @@
  53642. Lesser General Public License for more details.
  53643. You should have received a copy of the GNU Lesser General Public
  53644. - License along with the GNU C Library; if not, write to the Free
  53645. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53646. - 02111-1307 USA. */
  53647. + License along with the GNU C Library; if not, see
  53648. + <http://www.gnu.org/licenses/>. */
  53649. #ifndef _SYS_STATVFS_H
  53650. # error "Never include <bits/statvfs.h> directly; use <sys/statvfs.h> instead."
  53651. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stdio.h uClibc-git/libc/sysdeps/linux/common/bits/stdio.h
  53652. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stdio.h 2012-05-15 09:20:09.000000000 +0200
  53653. +++ uClibc-git/libc/sysdeps/linux/common/bits/stdio.h 2014-06-02 17:40:34.346713822 +0200
  53654. @@ -13,9 +13,8 @@
  53655. Lesser General Public License for more details.
  53656. You should have received a copy of the GNU Lesser General Public
  53657. - License along with the GNU C Library; if not, write to the Free
  53658. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53659. - 02111-1307 USA. */
  53660. + License along with the GNU C Library; if not, see
  53661. + <http://www.gnu.org/licenses/>. */
  53662. #ifndef _STDIO_H
  53663. # error "Never include <bits/stdio.h> directly; use <stdio.h> instead."
  53664. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stdio_lim.h uClibc-git/libc/sysdeps/linux/common/bits/stdio_lim.h
  53665. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/stdio_lim.h 2012-05-15 09:20:09.000000000 +0200
  53666. +++ uClibc-git/libc/sysdeps/linux/common/bits/stdio_lim.h 2014-06-02 17:40:34.346713822 +0200
  53667. @@ -12,9 +12,8 @@
  53668. Lesser General Public License for more details.
  53669. You should have received a copy of the GNU Lesser General Public
  53670. - License along with the GNU C Library; if not, write to the Free
  53671. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53672. - 02111-1307 USA. */
  53673. + License along with the GNU C Library; if not, see
  53674. + <http://www.gnu.org/licenses/>. */
  53675. #if !defined _STDIO_H && !defined __need_FOPEN_MAX && !defined __need_IOV_MAX
  53676. # error "Never include <bits/stdio_lim.h> directly; use <stdio.h> instead."
  53677. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/termios.h uClibc-git/libc/sysdeps/linux/common/bits/termios.h
  53678. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
  53679. +++ uClibc-git/libc/sysdeps/linux/common/bits/termios.h 2014-06-02 17:40:34.346713822 +0200
  53680. @@ -14,9 +14,8 @@
  53681. Lesser General Public License for more details.
  53682. You should have received a copy of the GNU Lesser General Public
  53683. - License along with the GNU C Library; if not, write to the Free
  53684. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53685. - 02111-1307 USA. */
  53686. + License along with the GNU C Library; if not, see
  53687. + <http://www.gnu.org/licenses/>. */
  53688. #ifndef _TERMIOS_H
  53689. # error "Never include <bits/termios.h> directly; use <termios.h> instead."
  53690. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/time.h uClibc-git/libc/sysdeps/linux/common/bits/time.h
  53691. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/time.h 2012-05-15 09:20:09.000000000 +0200
  53692. +++ uClibc-git/libc/sysdeps/linux/common/bits/time.h 2014-06-02 17:40:34.346713822 +0200
  53693. @@ -13,9 +13,8 @@
  53694. Lesser General Public License for more details.
  53695. You should have received a copy of the GNU Lesser General Public
  53696. - License along with the GNU C Library; if not, write to the Free
  53697. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53698. - 02111-1307 USA. */
  53699. + License along with the GNU C Library; if not, see
  53700. + <http://www.gnu.org/licenses/>. */
  53701. /*
  53702. * Never include this file directly; use <time.h> instead.
  53703. @@ -54,6 +53,12 @@
  53704. # define CLOCK_PROCESS_CPUTIME_ID 2
  53705. /* Thread-specific CPU-time clock. */
  53706. # define CLOCK_THREAD_CPUTIME_ID 3
  53707. +/* Monotonic system-wide clock, not adjusted for frequency scaling. */
  53708. +# define CLOCK_MONOTONIC_RAW 4
  53709. +/* Identifier for system-wide realtime clock, updated only on ticks. */
  53710. +# define CLOCK_REALTIME_COARSE 5
  53711. +/* Monotonic system-wide clock, updated only on ticks. */
  53712. +# define CLOCK_MONOTONIC_COARSE 6
  53713. /* Flag to indicate time is absolute. */
  53714. # define TIMER_ABSTIME 1
  53715. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/types.h uClibc-git/libc/sysdeps/linux/common/bits/types.h
  53716. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/types.h 2012-05-15 09:20:09.000000000 +0200
  53717. +++ uClibc-git/libc/sysdeps/linux/common/bits/types.h 2014-06-02 17:40:34.346713822 +0200
  53718. @@ -1,5 +1,5 @@
  53719. /* bits/types.h -- definitions of __*_t types underlying *_t types.
  53720. - Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
  53721. + Copyright (C) 2002, 2003, 2004, 2005, 2007 Free Software Foundation, Inc.
  53722. This file is part of the GNU C Library.
  53723. The GNU C Library is free software; you can redistribute it and/or
  53724. @@ -13,9 +13,8 @@
  53725. Lesser General Public License for more details.
  53726. You should have received a copy of the GNU Lesser General Public
  53727. - License along with the GNU C Library; if not, write to the Free
  53728. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53729. - 02111-1307 USA. */
  53730. + License along with the GNU C Library; if not, see
  53731. + <http://www.gnu.org/licenses/>. */
  53732. /*
  53733. * Never include this file directly; use <sys/types.h> instead.
  53734. @@ -27,8 +26,6 @@
  53735. #include <features.h>
  53736. #include <bits/wordsize.h>
  53737. -#define __need_size_t
  53738. -#include <stddef.h>
  53739. #ifdef _LIBC
  53740. #include <bits/kernel_types.h>
  53741. #endif
  53742. @@ -49,7 +46,7 @@
  53743. #if __WORDSIZE == 64
  53744. typedef signed long int __int64_t;
  53745. typedef unsigned long int __uint64_t;
  53746. -#elif defined(__GNUC__)
  53747. +#elif defined(__GNUC__) || defined __ICC || defined __TenDRA__
  53748. __extension__ typedef signed long long int __int64_t;
  53749. __extension__ typedef unsigned long long int __uint64_t;
  53750. #endif
  53751. @@ -58,7 +55,7 @@
  53752. #if __WORDSIZE == 64
  53753. typedef long int __quad_t;
  53754. typedef unsigned long int __u_quad_t;
  53755. -#elif defined(__GNUC__)
  53756. +#elif defined(__GNUC__) || defined __ICC || defined __TenDRA__
  53757. __extension__ typedef long long int __quad_t;
  53758. __extension__ typedef unsigned long long int __u_quad_t;
  53759. #else
  53760. @@ -200,9 +197,4 @@
  53761. #undef __STD_TYPE
  53762. -/* Now add the thread types. */
  53763. -#if defined __UCLIBC_HAS_THREADS__ && (defined __USE_POSIX199506 || defined __USE_UNIX98)
  53764. -# include <bits/pthreadtypes.h>
  53765. -#endif
  53766. -
  53767. #endif /* bits/types.h */
  53768. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/typesizes.h uClibc-git/libc/sysdeps/linux/common/bits/typesizes.h
  53769. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
  53770. +++ uClibc-git/libc/sysdeps/linux/common/bits/typesizes.h 2014-06-02 17:40:34.346713822 +0200
  53771. @@ -13,9 +13,8 @@
  53772. Lesser General Public License for more details.
  53773. You should have received a copy of the GNU Lesser General Public
  53774. - License along with the GNU C Library; if not, write to the Free
  53775. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53776. - 02111-1307 USA. */
  53777. + License along with the GNU C Library; if not, see
  53778. + <http://www.gnu.org/licenses/>. */
  53779. #ifndef _BITS_TYPES_H
  53780. # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
  53781. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_arch_features.h
  53782. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  53783. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_arch_features.h 2014-06-02 17:40:34.346713822 +0200
  53784. @@ -14,8 +14,8 @@
  53785. /* can your target use syscall6() for mmap ? */
  53786. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  53787. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  53788. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  53789. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  53790. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  53791. /* does your target have a broken create_module() ? */
  53792. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  53793. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_ctype.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_ctype.h
  53794. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_ctype.h 2012-05-15 09:20:09.000000000 +0200
  53795. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_ctype.h 2014-06-02 17:40:34.346713822 +0200
  53796. @@ -11,9 +11,8 @@
  53797. * Lesser General Public License for more details.
  53798. *
  53799. * You should have received a copy of the GNU Lesser General Public
  53800. - * License along with the GNU C Library; if not, write to the Free
  53801. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53802. - * 02111-1307 USA.
  53803. + * License along with the GNU C Library; see the file COPYING.LIB. If
  53804. + * not, see <http://www.gnu.org/licenses/>.
  53805. */
  53806. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  53807. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_fpmax.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_fpmax.h
  53808. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_fpmax.h 2012-05-15 09:20:09.000000000 +0200
  53809. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_fpmax.h 2014-06-02 17:40:34.346713822 +0200
  53810. @@ -12,10 +12,6 @@
  53811. #ifndef _UCLIBC_FPMAX_H
  53812. #define _UCLIBC_FPMAX_H
  53813. -#ifndef _ISOC99_SOURCE
  53814. -#define _ISOC99_SOURCE 1
  53815. -#endif
  53816. -
  53817. #include <features.h>
  53818. #include <float.h>
  53819. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_locale.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_locale.h
  53820. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_locale.h 2012-05-15 09:20:09.000000000 +0200
  53821. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_locale.h 2014-06-02 17:40:34.346713822 +0200
  53822. @@ -11,9 +11,8 @@
  53823. * Lesser General Public License for more details.
  53824. *
  53825. * You should have received a copy of the GNU Lesser General Public
  53826. - * License along with the GNU C Library; if not, write to the Free
  53827. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53828. - * 02111-1307 USA.
  53829. + * License along with the GNU C Library; see the file COPYING.LIB. If
  53830. + * not, see <http://www.gnu.org/licenses/>.
  53831. */
  53832. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  53833. @@ -93,7 +92,7 @@
  53834. #ifdef _LIBC
  53835. /* extern void _locale_set(const unsigned char *p); */
  53836. -/* extern void _locale_init(void); */
  53837. +extern void weak_function _locale_init(void) attribute_hidden;
  53838. #include <stddef.h>
  53839. #include <stdint.h>
  53840. @@ -338,7 +337,9 @@
  53841. extern __locale_t __curlocale_var;
  53842. # ifdef __UCLIBC_HAS_THREADS__
  53843. extern __locale_t __curlocale(void) __THROW __attribute__ ((__const__));
  53844. +libc_hidden_proto(__curlocale)
  53845. extern __locale_t __curlocale_set(__locale_t newloc);
  53846. +libc_hidden_proto(__curlocale_set)
  53847. # define __UCLIBC_CURLOCALE (__curlocale())
  53848. # else
  53849. # define __UCLIBC_CURLOCALE (__curlocale_var)
  53850. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_local_lim.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_local_lim.h
  53851. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_local_lim.h 2012-05-15 09:20:09.000000000 +0200
  53852. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_local_lim.h 2014-06-02 17:40:34.346713822 +0200
  53853. @@ -11,14 +11,22 @@
  53854. #define _BITS_UCLIBC_LOCAL_LIM_H 1
  53855. /* This file works correctly only if local_lim.h is the NPTL version */
  53856. -#if !defined PTHREAD_KEYS_MAX || defined TIMER_MAX
  53857. +#if !defined PTHREAD_KEYS_MAX || defined TIMER_MAX || !defined SEM_VALUE_MAX
  53858. # error local_lim.h was incorrectly updated, use the NPTL version from glibc
  53859. #endif
  53860. /* This should really be moved to thread specific directories */
  53861. #if defined __UCLIBC_HAS_THREADS__ && !defined __UCLIBC_HAS_THREADS_NATIVE__
  53862. +/* glibc uses 16384 */
  53863. # define PTHREAD_THREADS_MAX 1024
  53864. # define TIMER_MAX 256
  53865. +# ifdef __LINUXTHREADS_OLD__
  53866. +# undef SEM_VALUE_MAX
  53867. +# define SEM_VALUE_MAX ((int) ((~0u) >> 1))
  53868. +# endif
  53869. +# undef PTHREAD_STACK_MIN
  53870. +/* glibc uses at least 16364 */
  53871. +# define PTHREAD_STACK_MIN 1024
  53872. #endif
  53873. #ifndef __UCLIBC_HAS_THREADS__
  53874. @@ -28,6 +36,7 @@
  53875. # undef PTHREAD_DESTRUCTOR_ITERATIONS
  53876. # undef PTHREAD_STACK_MIN
  53877. # undef DELAYTIMER_MAX
  53878. +# undef SEM_VALUE_MAX
  53879. #endif
  53880. #endif /* bits/uClibc_local_lim.h */
  53881. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_mutex.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_mutex.h
  53882. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_mutex.h 2012-05-15 09:20:09.000000000 +0200
  53883. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_mutex.h 2014-06-02 17:40:34.346713822 +0200
  53884. @@ -13,7 +13,9 @@
  53885. #ifdef __UCLIBC_HAS_THREADS__
  53886. #include <pthread.h>
  53887. +#ifdef _LIBC
  53888. #include <bits/uClibc_pthread.h>
  53889. +#endif
  53890. #define __UCLIBC_MUTEX_TYPE pthread_mutex_t
  53891. @@ -108,8 +110,8 @@
  53892. #define __UCLIBC_IO_MUTEX_AUTO_UNLOCK(M,A) __UCLIBC_MUTEX_AUTO_UNLOCK(M,A)
  53893. #define __UCLIBC_IO_MUTEX_LOCK_CANCEL_UNSAFE(M) __UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE(M)
  53894. #define __UCLIBC_IO_MUTEX_UNLOCK_CANCEL_UNSAFE(M) __UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE(M)
  53895. -#define __UCLIBC_IO_MUTEX_CONDITIONAL_LOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_LOCK(M, 1)
  53896. -#define __UCLIBC_IO_MUTEX_CONDITIONAL_UNLOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_UNLOCK(M, 1)
  53897. +#define __UCLIBC_IO_MUTEX_CONDITIONAL_LOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_LOCK(M,C)
  53898. +#define __UCLIBC_IO_MUTEX_CONDITIONAL_UNLOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_UNLOCK(M,C)
  53899. #endif /* of __USE_STDIO_FUTEXES__ */
  53900. @@ -146,8 +148,8 @@
  53901. #define __UCLIBC_IO_MUTEX_AUTO_UNLOCK(M,A) __UCLIBC_MUTEX_AUTO_UNLOCK(M,A)
  53902. #define __UCLIBC_IO_MUTEX_LOCK_CANCEL_UNSAFE(M) __UCLIBC_MUTEX_LOCK_CANCEL_UNSAFE(M)
  53903. #define __UCLIBC_IO_MUTEX_UNLOCK_CANCEL_UNSAFE(M) __UCLIBC_MUTEX_UNLOCK_CANCEL_UNSAFE(M)
  53904. -#define __UCLIBC_IO_MUTEX_CONDITIONAL_LOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_LOCK(M, 1)
  53905. -#define __UCLIBC_IO_MUTEX_CONDITIONAL_UNLOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_UNLOCK(M, 1)
  53906. +#define __UCLIBC_IO_MUTEX_CONDITIONAL_LOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_LOCK(M,C)
  53907. +#define __UCLIBC_IO_MUTEX_CONDITIONAL_UNLOCK(M,C) __UCLIBC_MUTEX_CONDITIONAL_UNLOCK(M,C)
  53908. #endif /* of __UCLIBC_HAS_THREADS__ */
  53909. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_page.h
  53910. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  53911. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_page.h 2014-06-02 17:40:34.346713822 +0200
  53912. @@ -11,9 +11,8 @@
  53913. * Lesser General Public License for more details.
  53914. *
  53915. * You should have received a copy of the GNU Lesser General Public
  53916. - * License along with the GNU C Library; if not, write to the Free
  53917. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  53918. - * 02111-1307 USA.
  53919. + * License along with the GNU C Library; see the file COPYING.LIB. If
  53920. + * not, see <http://www.gnu.org/licenses/>.
  53921. */
  53922. /* Supply an architecture specific value for PAGE_SIZE and friends. */
  53923. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_posix_opt.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_posix_opt.h
  53924. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_posix_opt.h 1970-01-01 01:00:00.000000000 +0100
  53925. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_posix_opt.h 2014-06-02 17:40:34.346713822 +0200
  53926. @@ -0,0 +1,136 @@
  53927. +/*
  53928. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  53929. + *
  53930. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  53931. + */
  53932. +/*
  53933. + * Never include this file directly; use <unistd.h> instead.
  53934. + */
  53935. +
  53936. +#ifndef _BITS_UCLIBC_POSIX_OPT_H
  53937. +#define _BITS_UCLIBC_POSIX_OPT_H 1
  53938. +
  53939. +/* This file works correctly only if posix_opt.h is the NPTL version */
  53940. +#ifndef _POSIX_THREADS
  53941. +# error posix_opt.h was incorrectly updated, use the NPTL version from glibc
  53942. +#endif
  53943. +
  53944. +/* change first options based on what glibc does */
  53945. +
  53946. +#ifndef __UCLIBC_HAS_THREADS_NATIVE__
  53947. +# undef _POSIX_THREAD_PROCESS_SHARED
  53948. +# define _POSIX_THREAD_PROCESS_SHARED -1
  53949. +# undef _POSIX_CLOCK_SELECTION
  53950. +# define _POSIX_CLOCK_SELECTION -1
  53951. +# undef _POSIX_THREAD_PRIO_INHERIT
  53952. +# define _POSIX_THREAD_PRIO_INHERIT -1
  53953. +# undef _POSIX_THREAD_PRIO_PROTECT
  53954. +# define _POSIX_THREAD_PRIO_PROTECT -1
  53955. +# undef _POSIX_THREAD_ROBUST_PRIO_INHERIT
  53956. +# undef _POSIX_THREAD_ROBUST_PRIO_PROTECT
  53957. +#endif
  53958. +
  53959. +/* this has to be adapted to uClibc, not all are thread related */
  53960. +#ifndef __UCLIBC_HAS_THREADS__
  53961. +# undef _XOPEN_REALTIME_THREADS
  53962. +# undef _POSIX_THREADS
  53963. +# undef _POSIX_REENTRANT_FUNCTIONS
  53964. +# undef _POSIX_THREAD_SAFE_FUNCTIONS
  53965. +# undef _POSIX_THREAD_PRIORITY_SCHEDULING
  53966. +# undef _POSIX_THREAD_ATTR_STACKSIZE
  53967. +# undef _POSIX_THREAD_ATTR_STACKADDR
  53968. +# undef _POSIX_THREAD_PRIO_INHERIT
  53969. +# undef _POSIX_THREAD_PRIO_PROTECT
  53970. +# undef _POSIX_SEMAPHORES
  53971. +# undef _POSIX_ASYNCHRONOUS_IO
  53972. +# undef _POSIX_ASYNC_IO
  53973. +# undef _LFS_ASYNCHRONOUS_IO
  53974. +# undef _POSIX_PRIORITIZED_IO
  53975. +# undef _LFS64_ASYNCHRONOUS_IO
  53976. +# undef _POSIX_CPUTIME
  53977. +# undef _POSIX_THREAD_CPUTIME
  53978. +# undef _POSIX_READER_WRITER_LOCKS
  53979. +# undef _POSIX_TIMEOUTS
  53980. +# undef _POSIX_SPIN_LOCKS
  53981. +# undef _POSIX_BARRIERS
  53982. +# undef _POSIX_MESSAGE_PASSING
  53983. +# undef _POSIX_THREAD_PROCESS_SHARED
  53984. +# undef _POSIX_CLOCK_SELECTION
  53985. +# undef _POSIX_ADVISORY_INFO
  53986. +/*# undef _POSIX_RAW_SOCKETS*/
  53987. +/*# undef _POSIX2_CHAR_TERM*/
  53988. +# undef _POSIX_SPORADIC_SERVER
  53989. +# undef _POSIX_THREAD_SPORADIC_SERVER
  53990. +/*# undef _POSIX_TRACE
  53991. +# undef _POSIX_TRACE_EVENT_FILTER
  53992. +# undef _POSIX_TRACE_INHERIT
  53993. +# undef _POSIX_TRACE_LOG
  53994. +# undef _POSIX_TYPED_MEMORY_OBJECTS*/
  53995. +#endif
  53996. +
  53997. +/* were in earlier version, used by sysconf */
  53998. +#define _POSIX_POLL 1
  53999. +#define _POSIX_SELECT 1
  54000. +
  54001. +/* disable independently unsupported features */
  54002. +#undef _POSIX_TRACE
  54003. +#undef _POSIX_TRACE_EVENT_FILTER
  54004. +#undef _POSIX_TRACE_INHERIT
  54005. +#undef _POSIX_TRACE_LOG
  54006. +#undef _POSIX_TYPED_MEMORY_OBJECTS
  54007. +#undef _POSIX_SPAWN
  54008. +
  54009. +#if 0 /* does uClibc support these? */
  54010. +# undef _POSIX_ASYNCHRONOUS_IO
  54011. +# undef _POSIX_ASYNC_IO
  54012. +# undef _LFS_ASYNCHRONOUS_IO
  54013. +# undef _POSIX_PRIORITIZED_IO
  54014. +# undef _LFS64_ASYNCHRONOUS_IO
  54015. +# undef _POSIX_MESSAGE_PASSING
  54016. +#endif
  54017. +
  54018. +/* change options based on uClibc config options */
  54019. +
  54020. +#if 0 /*ndef __UCLIBC_HAS_POSIX_TIMERS__*/
  54021. +# undef _POSIX_TIMERS
  54022. +# undef _POSIX_THREAD_CPUTIME
  54023. +#endif
  54024. +
  54025. +#if 0 /*ndef __UCLIBC_HAS_POSIX_BARRIERS__*/
  54026. +# undef _POSIX_BARRIERS
  54027. +#endif
  54028. +
  54029. +#if 0 /*ndef __UCLIBC_HAS_POSIX_SPINLOCKS__*/
  54030. +# undef _POSIX_SPIN_LOCKS
  54031. +#endif
  54032. +
  54033. +#ifndef __ARCH_USE_MMU__
  54034. +# undef _POSIX_MEMLOCK
  54035. +# undef _POSIX_MEMLOCK_RANGE
  54036. +# undef _POSIX_MEMORY_PROTECTION
  54037. +#endif
  54038. +
  54039. +#ifndef __UCLIBC_HAS_LFS__
  54040. +# undef _LFS64_ASYNCHRONOUS_IO
  54041. +# undef _LFS_LARGEFILE
  54042. +# undef _LFS64_LARGEFILE
  54043. +# undef _LFS64_STDIO
  54044. +#endif
  54045. +
  54046. +#ifndef __UCLIBC_HAS_REALTIME__
  54047. +# undef _POSIX_SEMAPHORES
  54048. +#endif
  54049. +
  54050. +#ifndef __UCLIBC_HAS_REGEX__
  54051. +# undef _POSIX_REGEXP
  54052. +#endif
  54053. +
  54054. +#ifndef __UCLIBC_HAS_IPV6__
  54055. +# undef _POSIX_IPV6
  54056. +#endif
  54057. +
  54058. +#ifndef __UCLIBC_HAS_SOCKET__
  54059. +# undef _POSIX_RAW_SOCKETS
  54060. +#endif
  54061. +
  54062. +#endif /* bits/uClibc_posix_opt.h */
  54063. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_pthread.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_pthread.h
  54064. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_pthread.h 2012-05-15 09:20:09.000000000 +0200
  54065. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_pthread.h 2014-06-02 17:40:34.346713822 +0200
  54066. @@ -11,9 +11,8 @@
  54067. * Lesser General Public License for more details.
  54068. *
  54069. * You should have received a copy of the GNU Lesser General Public
  54070. - * License along with the GNU C Library; if not, write to the Free
  54071. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54072. - * 02111-1307 USA.
  54073. + * License along with the GNU C Library; see the file COPYING.LIB. If
  54074. + * not, see <http://www.gnu.org/licenses/>.
  54075. */
  54076. /* Supply prototypes for the internal thread functions used by the
  54077. @@ -27,15 +26,12 @@
  54078. # error "Always include <pthread.h> rather than <bits/uClibc_pthread.h>"
  54079. #endif
  54080. -#if defined _LIBC && (defined IS_IN_libc || defined NOT_IN_libc)
  54081. -
  54082. struct _pthread_cleanup_buffer;
  54083. /* Threading functions internal to uClibc. Make these thread functions
  54084. * weak so that we can elide them from single-threaded processes. */
  54085. extern int weak_function __pthread_mutex_init (pthread_mutex_t *__mutex,
  54086. - __const pthread_mutexattr_t *__mutex_attr);
  54087. -extern int weak_function __pthread_mutex_destroy (pthread_mutex_t *__mutex);
  54088. + const pthread_mutexattr_t *__mutex_attr);
  54089. extern int weak_function __pthread_mutex_lock (pthread_mutex_t *__mutex);
  54090. extern int weak_function __pthread_mutex_unlock (pthread_mutex_t *__mutex);
  54091. extern int weak_function __pthread_mutex_trylock (pthread_mutex_t *__mutex);
  54092. @@ -47,5 +43,3 @@
  54093. int __execute);
  54094. #endif
  54095. -
  54096. -#endif
  54097. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_stdio.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_stdio.h
  54098. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_stdio.h 2012-05-15 09:20:09.000000000 +0200
  54099. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_stdio.h 2014-06-02 17:40:34.346713822 +0200
  54100. @@ -54,27 +54,6 @@
  54101. #endif
  54102. /**********************************************************************/
  54103. -/* Make sure defines related to large files are consistent. */
  54104. -#ifdef _LIBC
  54105. -
  54106. -#ifdef __UCLIBC_HAS_LFS__
  54107. -#undef __USE_LARGEFILE
  54108. -#undef __USE_LARGEFILE64
  54109. -#undef __USE_FILE_OFFSET64
  54110. -/* If we're actually building uClibc with large file support, only define... */
  54111. -#define __USE_LARGEFILE64 1
  54112. -#endif /* __UCLIBC_HAS_LFS__ */
  54113. -
  54114. -#else /* not _LIBC */
  54115. -
  54116. -#ifndef __UCLIBC_HAS_LFS__
  54117. -#if defined(__LARGEFILE64_SOURCE) || defined(__USE_LARGEFILE64) || defined(__USE_FILE_OFFSET64)
  54118. -#error Sorry... uClibc was built without large file support!
  54119. -#endif
  54120. -#endif /* __UCLIBC_HAS_LFS__ */
  54121. -
  54122. -#endif /* _LIBC */
  54123. -/**********************************************************************/
  54124. #ifdef __UCLIBC_HAS_WCHAR__
  54125. #define __need_wchar_t
  54126. @@ -99,22 +78,7 @@
  54127. #define __STDIO_PUTC_MACRO
  54128. #endif
  54129. -
  54130. -/* These are consistency checks on the different options */
  54131. -
  54132. -#ifndef __STDIO_BUFFERS
  54133. -#undef __STDIO_GETC_MACRO
  54134. -#undef __STDIO_PUTC_MACRO
  54135. -#endif
  54136. -
  54137. -#ifdef __BCC__
  54138. -#undef __UCLIBC_HAS_LFS__
  54139. -#endif
  54140. -
  54141. -#ifndef __UCLIBC_HAS_LFS__
  54142. -#undef __UCLIBC_HAS_FOPEN_LARGEFILE_MODE__
  54143. -#endif
  54144. -
  54145. +#ifdef _LIBC
  54146. /**********************************************************************/
  54147. #include <bits/uClibc_mutex.h>
  54148. @@ -169,6 +133,8 @@
  54149. #endif
  54150. #endif
  54151. +#endif /* _LIBC */
  54152. +
  54153. /**********************************************************************/
  54154. #define __STDIO_IOFBF 0 /* Fully buffered. */
  54155. @@ -209,7 +175,7 @@
  54156. typedef __ssize_t __io_read_fn(void *__cookie, char *__buf, size_t __bufsize);
  54157. typedef __ssize_t __io_write_fn(void *__cookie,
  54158. - __const char *__buf, size_t __bufsize);
  54159. + const char *__buf, size_t __bufsize);
  54160. /* NOTE: GLIBC difference!!! -- fopencookie seek function
  54161. * For glibc, the type of pos is always (__off64_t *) but in our case
  54162. * it is type (__off_t *) when the lib is built without large file support.
  54163. @@ -224,7 +190,7 @@
  54164. __io_close_fn *close;
  54165. } _IO_cookie_io_functions_t;
  54166. -#if defined(_LIBC) || defined(_GNU_SOURCE)
  54167. +#ifdef __USE_GNU
  54168. typedef __io_read_fn cookie_read_function_t;
  54169. typedef __io_write_fn cookie_write_function_t;
  54170. @@ -238,6 +204,17 @@
  54171. #endif
  54172. /**********************************************************************/
  54173. +#if defined __UCLIBC_HAS_THREADS__ && !defined __UCLIBC_IO_MUTEX
  54174. +/* keep this in sync with uClibc_mutex.h */
  54175. +# ifdef __USE_STDIO_FUTEXES__
  54176. +# include <bits/stdio-lock.h>
  54177. +# define __UCLIBC_IO_MUTEX(M) _IO_lock_t M
  54178. +# else
  54179. +# include <bits/pthreadtypes.h>
  54180. +# define __UCLIBC_IO_MUTEX(M) pthread_mutex_t M
  54181. +# endif /* __UCLIBC_HAS_THREADS_NATIVE__ */
  54182. +#endif
  54183. +
  54184. struct __STDIO_FILE_STRUCT {
  54185. unsigned short __modeflags;
  54186. /* There could be a hole here, but modeflags is used most.*/
  54187. @@ -351,22 +328,27 @@
  54188. **********************************************************************/
  54189. #if defined _LIBC && (defined IS_IN_libc || defined NOT_IN_libc)
  54190. -extern void _stdio_init(void) attribute_hidden;
  54191. -extern void _stdio_term(void) attribute_hidden;
  54192. +extern void weak_function _stdio_init(void) attribute_hidden;
  54193. +extern void weak_function _stdio_term(void) attribute_hidden;
  54194. #ifdef __STDIO_HAS_OPENLIST
  54195. extern struct __STDIO_FILE_STRUCT *_stdio_openlist;
  54196. #ifdef __UCLIBC_HAS_THREADS__
  54197. -__UCLIBC_IO_MUTEX_EXTERN(_stdio_openlist_add_lock);
  54198. +__UCLIBC_IO_MUTEX_EXTERN(_stdio_openlist_add_lock)
  54199. +# ifndef __UCLIBC_HAS_THREADS_NATIVE__
  54200. + attribute_hidden
  54201. +# endif
  54202. + ;
  54203. #ifdef __STDIO_BUFFERS
  54204. -__UCLIBC_IO_MUTEX_EXTERN(_stdio_openlist_del_lock);
  54205. -extern volatile int _stdio_openlist_use_count; /* _stdio_openlist_del_lock */
  54206. -extern int _stdio_openlist_del_count; /* _stdio_openlist_del_lock */
  54207. +__UCLIBC_IO_MUTEX_EXTERN(_stdio_openlist_del_lock)
  54208. +# ifndef __UCLIBC_HAS_THREADS_NATIVE__
  54209. + attribute_hidden
  54210. +# endif
  54211. + ;
  54212. #endif
  54213. extern int _stdio_user_locking;
  54214. -extern void __stdio_init_mutex(__UCLIBC_MUTEX_TYPE *m) attribute_hidden;
  54215. #endif
  54216. #endif
  54217. @@ -465,6 +447,8 @@
  54218. #else
  54219. +# define __stdin stdin
  54220. +
  54221. #endif /* __STDIO_GETC_MACRO */
  54222. @@ -524,4 +508,8 @@
  54223. # endif
  54224. # endif
  54225. +#else
  54226. +
  54227. +# define __stdout stdout
  54228. +
  54229. #endif /* __STDIO_PUTC_MACRO */
  54230. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_touplow.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_touplow.h
  54231. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_touplow.h 2012-05-15 09:20:09.000000000 +0200
  54232. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_touplow.h 2014-06-02 17:40:34.346713822 +0200
  54233. @@ -11,9 +11,8 @@
  54234. * Lesser General Public License for more details.
  54235. *
  54236. * You should have received a copy of the GNU Lesser General Public
  54237. - * License along with the GNU C Library; if not, write to the Free
  54238. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54239. - * 02111-1307 USA.
  54240. + * License along with the GNU C Library; see the file COPYING.LIB. If
  54241. + * not, see <http://www.gnu.org/licenses/>.
  54242. */
  54243. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  54244. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_uintmaxtostr.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_uintmaxtostr.h
  54245. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_uintmaxtostr.h 2012-05-15 09:20:09.000000000 +0200
  54246. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_uintmaxtostr.h 2014-06-02 17:40:34.346713822 +0200
  54247. @@ -11,9 +11,8 @@
  54248. * Lesser General Public License for more details.
  54249. *
  54250. * You should have received a copy of the GNU Lesser General Public
  54251. - * License along with the GNU C Library; if not, write to the Free
  54252. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54253. - * 02111-1307 USA.
  54254. + * License along with the GNU C Library; see the file COPYING.LIB. If
  54255. + * not, see <http://www.gnu.org/licenses/>.
  54256. */
  54257. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  54258. @@ -28,16 +27,6 @@
  54259. #ifndef _UINTMAXTOSTR_H
  54260. #define _UINTMAXTOSTR_H 1
  54261. -#ifdef _FEATURES_H
  54262. -# ifndef __USE_ISOC99
  54263. -# error features was included without defining _ISOC99_SOURCE!
  54264. -# endif
  54265. -#else
  54266. -# ifndef _ISOC99_SOURCE
  54267. -# define _ISOC99_SOURCE
  54268. -# endif
  54269. -#endif
  54270. -
  54271. #include <features.h>
  54272. #include <limits.h>
  54273. #include <stdint.h>
  54274. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_uwchar.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_uwchar.h
  54275. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_uwchar.h 2012-05-15 09:20:09.000000000 +0200
  54276. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_uwchar.h 2014-06-02 17:40:34.346713822 +0200
  54277. @@ -11,9 +11,8 @@
  54278. * Lesser General Public License for more details.
  54279. *
  54280. * You should have received a copy of the GNU Lesser General Public
  54281. - * License along with the GNU C Library; if not, write to the Free
  54282. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54283. - * 02111-1307 USA.
  54284. + * License along with the GNU C Library; see the file COPYING.LIB. If
  54285. + * not, see <http://www.gnu.org/licenses/>.
  54286. */
  54287. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  54288. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_va_copy.h uClibc-git/libc/sysdeps/linux/common/bits/uClibc_va_copy.h
  54289. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uClibc_va_copy.h 2012-05-15 09:20:09.000000000 +0200
  54290. +++ uClibc-git/libc/sysdeps/linux/common/bits/uClibc_va_copy.h 2014-06-02 17:40:34.346713822 +0200
  54291. @@ -13,9 +13,8 @@
  54292. * Lesser General Public License for more details.
  54293. *
  54294. * You should have received a copy of the GNU Lesser General Public
  54295. - * License along with the GNU C Library; if not, write to the Free
  54296. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54297. - * 02111-1307 USA.
  54298. + * License along with the GNU C Library; see the file COPYING.LIB. If
  54299. + * not, see <http://www.gnu.org/licenses/>.
  54300. */
  54301. #ifndef _UCLIBC_VA_COPY_H
  54302. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uio.h uClibc-git/libc/sysdeps/linux/common/bits/uio.h
  54303. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/uio.h 2012-05-15 09:20:09.000000000 +0200
  54304. +++ uClibc-git/libc/sysdeps/linux/common/bits/uio.h 2014-06-02 17:40:34.346713822 +0200
  54305. @@ -12,9 +12,8 @@
  54306. Lesser General Public License for more details.
  54307. You should have received a copy of the GNU Lesser General Public
  54308. - License along with the GNU C Library; if not, write to the Free
  54309. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54310. - 02111-1307 USA. */
  54311. + License along with the GNU C Library; if not, see
  54312. + <http://www.gnu.org/licenses/>. */
  54313. #if !defined _SYS_UIO_H && !defined _FCNTL_H
  54314. # error "Never include <bits/uio.h> directly; use <sys/uio.h> instead."
  54315. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ustat.h uClibc-git/libc/sysdeps/linux/common/bits/ustat.h
  54316. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/ustat.h 2012-05-15 09:20:09.000000000 +0200
  54317. +++ uClibc-git/libc/sysdeps/linux/common/bits/ustat.h 2014-06-02 17:40:34.346713822 +0200
  54318. @@ -12,9 +12,8 @@
  54319. Lesser General Public License for more details.
  54320. You should have received a copy of the GNU Lesser General Public
  54321. - License along with the GNU C Library; if not, write to the Free
  54322. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54323. - 02111-1307 USA. */
  54324. + License along with the GNU C Library; if not, see
  54325. + <http://www.gnu.org/licenses/>. */
  54326. #ifndef _SYS_USTAT_H
  54327. # error "Never include <bits/ustat.h> directly; use <sys/ustat.h> instead."
  54328. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utmp.h uClibc-git/libc/sysdeps/linux/common/bits/utmp.h
  54329. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utmp.h 2012-05-15 09:20:09.000000000 +0200
  54330. +++ uClibc-git/libc/sysdeps/linux/common/bits/utmp.h 2014-06-02 17:40:34.346713822 +0200
  54331. @@ -14,9 +14,8 @@
  54332. Lesser General Public License for more details.
  54333. You should have received a copy of the GNU Lesser General Public
  54334. - License along with the GNU C Library; if not, write to the Free
  54335. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54336. - 02111-1307 USA. */
  54337. + License along with the GNU C Library; if not, see
  54338. + <http://www.gnu.org/licenses/>. */
  54339. #ifndef _UTMP_H
  54340. # error "Never include <bits/utmp.h> directly; use <utmp.h> instead."
  54341. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utmpx.h uClibc-git/libc/sysdeps/linux/common/bits/utmpx.h
  54342. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utmpx.h 2012-05-15 09:20:09.000000000 +0200
  54343. +++ uClibc-git/libc/sysdeps/linux/common/bits/utmpx.h 2014-06-02 17:40:34.346713822 +0200
  54344. @@ -13,9 +13,8 @@
  54345. Lesser General Public License for more details.
  54346. You should have received a copy of the GNU Lesser General Public
  54347. - License along with the GNU C Library; if not, write to the Free
  54348. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54349. - 02111-1307 USA. */
  54350. + License along with the GNU C Library; if not, see
  54351. + <http://www.gnu.org/licenses/>. */
  54352. #ifndef _UTMPX_H
  54353. # error "Never include <bits/utmpx.h> directly; use <utmpx.h> instead."
  54354. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utsname.h uClibc-git/libc/sysdeps/linux/common/bits/utsname.h
  54355. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/utsname.h 2012-05-15 09:20:09.000000000 +0200
  54356. +++ uClibc-git/libc/sysdeps/linux/common/bits/utsname.h 2014-06-02 17:40:34.346713822 +0200
  54357. @@ -12,9 +12,8 @@
  54358. Lesser General Public License for more details.
  54359. You should have received a copy of the GNU Lesser General Public
  54360. - License along with the GNU C Library; if not, write to the Free
  54361. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54362. - 02111-1307 USA. */
  54363. + License along with the GNU C Library; if not, see
  54364. + <http://www.gnu.org/licenses/>. */
  54365. #ifndef _SYS_UTSNAME_H
  54366. # error "Never include <bits/utsname.h> directly; use <sys/utsname.h> instead."
  54367. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/waitflags.h uClibc-git/libc/sysdeps/linux/common/bits/waitflags.h
  54368. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/waitflags.h 2012-05-15 09:20:09.000000000 +0200
  54369. +++ uClibc-git/libc/sysdeps/linux/common/bits/waitflags.h 2014-06-02 17:40:34.346713822 +0200
  54370. @@ -13,9 +13,8 @@
  54371. Lesser General Public License for more details.
  54372. You should have received a copy of the GNU Lesser General Public
  54373. - License along with the GNU C Library; if not, write to the Free
  54374. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54375. - 02111-1307 USA. */
  54376. + License along with the GNU C Library; if not, see
  54377. + <http://www.gnu.org/licenses/>. */
  54378. #if !defined _SYS_WAIT_H && !defined _STDLIB_H
  54379. # error "Never include <bits/waitflags.h> directly; use <sys/wait.h> instead."
  54380. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/waitstatus.h uClibc-git/libc/sysdeps/linux/common/bits/waitstatus.h
  54381. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/waitstatus.h 2012-05-15 09:20:09.000000000 +0200
  54382. +++ uClibc-git/libc/sysdeps/linux/common/bits/waitstatus.h 2014-06-02 17:40:34.346713822 +0200
  54383. @@ -13,9 +13,8 @@
  54384. Lesser General Public License for more details.
  54385. You should have received a copy of the GNU Lesser General Public
  54386. - License along with the GNU C Library; if not, write to the Free
  54387. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54388. - 02111-1307 USA. */
  54389. + License along with the GNU C Library; if not, see
  54390. + <http://www.gnu.org/licenses/>. */
  54391. #if !defined _SYS_WAIT_H && !defined _STDLIB_H
  54392. # error "Never include <bits/waitstatus.h> directly; use <sys/wait.h> instead."
  54393. @@ -25,7 +24,7 @@
  54394. /* Everything extant so far uses these same bits. */
  54395. -/* If WIFEXITED(STATUS), the low-order 8 bits of the status. */
  54396. +/* If WIFEXITED(STATUS), the low-order 8 bits of exit(N). */
  54397. #define __WEXITSTATUS(status) (((status) & 0xff00) >> 8)
  54398. /* If WIFSIGNALED(STATUS), the terminating signal. */
  54399. @@ -37,12 +36,20 @@
  54400. /* Nonzero if STATUS indicates normal termination. */
  54401. #define __WIFEXITED(status) (__WTERMSIG(status) == 0)
  54402. -/* Nonzero if STATUS indicates termination by a signal. */
  54403. -#define __WIFSIGNALED(status) \
  54404. - (((signed char) (((status) & 0x7f) + 1) >> 1) > 0)
  54405. +/* Nonzero if STATUS indicates termination by a signal.
  54406. + * Note that status 0x007f is "died from signal 127", not "stopped by signal 0".
  54407. + * This does happen on MIPS.
  54408. + * The comparison is "< 0xff", not "< 0x7f", because WCOREDUMP bit (0x80)
  54409. + * can be set too.
  54410. + */
  54411. +#define __WIFSIGNALED(status) (((unsigned)((status) & 0xffff) - 1U) < 0xffU)
  54412. /* Nonzero if STATUS indicates the child is stopped. */
  54413. +#if !defined(__mips__)
  54414. #define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f)
  54415. +#else
  54416. +#define __WIFSTOPPED(status) (((status) & 0xff) == 0x7f && ((status) & 0xff00))
  54417. +#endif
  54418. /* Nonzero if STATUS indicates the child continued after a stop. We only
  54419. define this if <bits/waitflags.h> provides the WCONTINUED flag bit. */
  54420. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/wchar.h uClibc-git/libc/sysdeps/linux/common/bits/wchar.h
  54421. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/wchar.h 2012-05-15 09:20:09.000000000 +0200
  54422. +++ uClibc-git/libc/sysdeps/linux/common/bits/wchar.h 2014-06-02 17:40:34.346713822 +0200
  54423. @@ -13,9 +13,8 @@
  54424. Lesser General Public License for more details.
  54425. You should have received a copy of the GNU Lesser General Public
  54426. - License along with the GNU C Library; if not, write to the Free
  54427. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54428. - 02111-1307 USA. */
  54429. + License along with the GNU C Library; if not, see
  54430. + <http://www.gnu.org/licenses/>. */
  54431. #ifndef _BITS_WCHAR_H
  54432. #define _BITS_WCHAR_H 1
  54433. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/xopen_lim.h uClibc-git/libc/sysdeps/linux/common/bits/xopen_lim.h
  54434. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/bits/xopen_lim.h 2012-05-15 09:20:09.000000000 +0200
  54435. +++ uClibc-git/libc/sysdeps/linux/common/bits/xopen_lim.h 2014-06-02 17:40:34.350713844 +0200
  54436. @@ -12,9 +12,8 @@
  54437. Lesser General Public License for more details.
  54438. You should have received a copy of the GNU Lesser General Public
  54439. - License along with the GNU C Library; if not, write to the Free
  54440. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54441. - 02111-1307 USA. */
  54442. + License along with the GNU C Library; if not, see
  54443. + <http://www.gnu.org/licenses/>. */
  54444. /*
  54445. * Never include this file directly; use <limits.h> instead.
  54446. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/brk.c uClibc-git/libc/sysdeps/linux/common/brk.c
  54447. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/brk.c 2012-05-15 09:20:09.000000000 +0200
  54448. +++ uClibc-git/libc/sysdeps/linux/common/brk.c 2014-06-02 17:40:34.350713844 +0200
  54449. @@ -8,10 +8,8 @@
  54450. #include <unistd.h>
  54451. #include <sys/syscall.h>
  54452. -libc_hidden_proto(brk)
  54453. -
  54454. #define __NR___syscall_brk __NR_brk
  54455. -static inline _syscall1(void *, __syscall_brk, void *, end)
  54456. +static __always_inline _syscall1(void *, __syscall_brk, void *, end)
  54457. /* This must be initialized data because commons can't have aliases. */
  54458. void * __curbrk attribute_hidden = 0;
  54459. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/capget.c uClibc-git/libc/sysdeps/linux/common/capget.c
  54460. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/capget.c 2012-05-15 09:20:09.000000000 +0200
  54461. +++ uClibc-git/libc/sysdeps/linux/common/capget.c 2014-06-02 17:40:34.350713844 +0200
  54462. @@ -8,7 +8,8 @@
  54463. */
  54464. #include <sys/syscall.h>
  54465. -int capget(void *header, void *data);
  54466. +
  54467. #ifdef __NR_capget
  54468. +int capget(void *header, void *data);
  54469. _syscall2(int, capget, void *, header, void *, data)
  54470. #endif
  54471. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/capset.c uClibc-git/libc/sysdeps/linux/common/capset.c
  54472. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/capset.c 2012-05-15 09:20:09.000000000 +0200
  54473. +++ uClibc-git/libc/sysdeps/linux/common/capset.c 2014-06-02 17:40:34.350713844 +0200
  54474. @@ -9,7 +9,7 @@
  54475. #include <sys/syscall.h>
  54476. -int capset(void *header, const void *data);
  54477. #ifdef __NR_capset
  54478. +int capset(void *header, const void *data);
  54479. _syscall2(int, capset, void *, header, const void *, data)
  54480. #endif
  54481. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/chdir.c uClibc-git/libc/sysdeps/linux/common/chdir.c
  54482. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/chdir.c 2012-05-15 09:20:09.000000000 +0200
  54483. +++ uClibc-git/libc/sysdeps/linux/common/chdir.c 2014-06-02 17:40:34.350713844 +0200
  54484. @@ -8,15 +8,7 @@
  54485. */
  54486. #include <sys/syscall.h>
  54487. -#include <string.h>
  54488. #include <unistd.h>
  54489. -#include <sys/param.h>
  54490. -
  54491. -#define __NR___syscall_chdir __NR_chdir
  54492. -static __inline__ _syscall1(int, __syscall_chdir, const char *, path)
  54493. -int chdir(const char *path)
  54494. -{
  54495. - return __syscall_chdir(path);
  54496. -}
  54497. +_syscall1(int, chdir, const char *, path)
  54498. libc_hidden_def(chdir)
  54499. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/chmod.c uClibc-git/libc/sysdeps/linux/common/chmod.c
  54500. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/chmod.c 2012-05-15 09:20:09.000000000 +0200
  54501. +++ uClibc-git/libc/sysdeps/linux/common/chmod.c 2014-06-02 17:40:34.350713844 +0200
  54502. @@ -9,13 +9,22 @@
  54503. #include <sys/syscall.h>
  54504. #include <sys/stat.h>
  54505. +#include <unistd.h>
  54506. +#if defined __NR_fchmodat && !defined __NR_chmod
  54507. +# include <fcntl.h>
  54508. +int chmod(const char *path, mode_t mode)
  54509. +{
  54510. + return fchmodat(AT_FDCWD, path, mode, 0);
  54511. +}
  54512. -#define __NR___syscall_chmod __NR_chmod
  54513. +#else
  54514. +# define __NR___syscall_chmod __NR_chmod
  54515. static __inline__ _syscall2(int, __syscall_chmod, const char *, path, __kernel_mode_t, mode)
  54516. int chmod(const char *path, mode_t mode)
  54517. {
  54518. return __syscall_chmod(path, mode);
  54519. }
  54520. +#endif
  54521. libc_hidden_def(chmod)
  54522. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/chown.c uClibc-git/libc/sysdeps/linux/common/chown.c
  54523. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/chown.c 2012-05-15 09:20:09.000000000 +0200
  54524. +++ uClibc-git/libc/sysdeps/linux/common/chown.c 2014-06-02 17:40:34.350713844 +0200
  54525. @@ -11,18 +11,26 @@
  54526. #include <unistd.h>
  54527. #include <bits/wordsize.h>
  54528. +#if defined __NR_fchownat && !defined __NR_chown
  54529. +# include <fcntl.h>
  54530. +int chown(const char *path, uid_t owner, gid_t group)
  54531. +{
  54532. + return fchownat(AT_FDCWD, path, owner, group, 0);
  54533. +}
  54534. -#if (__WORDSIZE == 32 && defined(__NR_chown32)) || __WORDSIZE == 64
  54535. -# ifdef __NR_chown32
  54536. -# undef __NR_chown
  54537. -# define __NR_chown __NR_chown32
  54538. -# endif
  54539. +#else
  54540. +
  54541. +# if (__WORDSIZE == 32 && defined(__NR_chown32)) || __WORDSIZE == 64
  54542. +# ifdef __NR_chown32
  54543. +# undef __NR_chown
  54544. +# define __NR_chown __NR_chown32
  54545. +# endif
  54546. _syscall3(int, chown, const char *, path, uid_t, owner, gid_t, group)
  54547. -#else
  54548. +# else
  54549. -# define __NR___syscall_chown __NR_chown
  54550. +# define __NR___syscall_chown __NR_chown
  54551. static __inline__ _syscall3(int, __syscall_chown, const char *, path,
  54552. __kernel_uid_t, owner, __kernel_gid_t, group)
  54553. @@ -35,6 +43,7 @@
  54554. }
  54555. return (__syscall_chown(path, owner, group));
  54556. }
  54557. -#endif
  54558. +# endif
  54559. +#endif
  54560. libc_hidden_def(chown)
  54561. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_getres.c uClibc-git/libc/sysdeps/linux/common/clock_getres.c
  54562. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_getres.c 2012-05-15 09:20:09.000000000 +0200
  54563. +++ uClibc-git/libc/sysdeps/linux/common/clock_getres.c 2014-06-02 17:40:34.350713844 +0200
  54564. @@ -9,11 +9,11 @@
  54565. #include <sys/syscall.h>
  54566. #include <time.h>
  54567. -#include <unistd.h>
  54568. #ifdef __NR_clock_getres
  54569. _syscall2(int, clock_getres, clockid_t, clock_id, struct timespec*, res)
  54570. #else
  54571. +# include <unistd.h>
  54572. int clock_getres(clockid_t clock_id, struct timespec* res)
  54573. {
  54574. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_gettime.c uClibc-git/libc/sysdeps/linux/common/clock_gettime.c
  54575. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_gettime.c 2012-05-15 09:20:09.000000000 +0200
  54576. +++ uClibc-git/libc/sysdeps/linux/common/clock_gettime.c 2014-06-02 17:40:34.350713844 +0200
  54577. @@ -10,11 +10,11 @@
  54578. #include <sys/syscall.h>
  54579. #include <time.h>
  54580. -#include <sys/time.h>
  54581. #ifdef __NR_clock_gettime
  54582. _syscall2(int, clock_gettime, clockid_t, clock_id, struct timespec*, tp)
  54583. #else
  54584. +# include <sys/time.h>
  54585. int clock_gettime(clockid_t clock_id, struct timespec* tp)
  54586. {
  54587. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_settime.c uClibc-git/libc/sysdeps/linux/common/clock_settime.c
  54588. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/clock_settime.c 2012-05-15 09:20:09.000000000 +0200
  54589. +++ uClibc-git/libc/sysdeps/linux/common/clock_settime.c 2014-06-02 17:40:34.350713844 +0200
  54590. @@ -9,11 +9,11 @@
  54591. #include <sys/syscall.h>
  54592. #include <time.h>
  54593. -#include <sys/time.h>
  54594. #ifdef __NR_clock_settime
  54595. _syscall2(int, clock_settime, clockid_t, clock_id, const struct timespec*, tp)
  54596. #else
  54597. +# include <sys/time.h>
  54598. int clock_settime(clockid_t clock_id, const struct timespec* tp)
  54599. {
  54600. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/close.c uClibc-git/libc/sysdeps/linux/common/close.c
  54601. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/close.c 2012-05-15 09:20:09.000000000 +0200
  54602. +++ uClibc-git/libc/sysdeps/linux/common/close.c 2014-06-02 17:40:34.350713844 +0200
  54603. @@ -9,12 +9,13 @@
  54604. #include <sys/syscall.h>
  54605. #include <unistd.h>
  54606. +#include <cancel.h>
  54607. -_syscall1(int, close, int, fd)
  54608. +#define __NR___close_nocancel __NR_close
  54609. +_syscall1(int, __NC(close), int, fd)
  54610. -#ifndef __LINUXTHREADS_OLD__
  54611. -libc_hidden_def(close)
  54612. -#else
  54613. -libc_hidden_weak(close)
  54614. -strong_alias(close,__libc_close)
  54615. -#endif
  54616. +#define __NR___close_nocancel_no_status __NR_close
  54617. +_syscall_noerr1(void, __close_nocancel_no_status, int, fd)
  54618. +
  54619. +CANCELLABLE_SYSCALL(int, close, (int fd), (fd))
  54620. +lt_libc_hidden(close)
  54621. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/cmsg_nxthdr.c uClibc-git/libc/sysdeps/linux/common/cmsg_nxthdr.c
  54622. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/cmsg_nxthdr.c 2012-05-15 09:20:09.000000000 +0200
  54623. +++ uClibc-git/libc/sysdeps/linux/common/cmsg_nxthdr.c 2014-06-02 17:40:34.350713844 +0200
  54624. @@ -13,12 +13,11 @@
  54625. Lesser General Public License for more details.
  54626. You should have received a copy of the GNU Lesser General Public
  54627. - License along with the GNU C Library; if not, write to the Free
  54628. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54629. - 02111-1307 USA. */
  54630. + License along with the GNU C Library; if not, see
  54631. + <http://www.gnu.org/licenses/>. */
  54632. -#define __FORCE_GLIBC
  54633. #include <features.h>
  54634. +#include <stddef.h>
  54635. /* Prevent math.h from defining a colliding inline */
  54636. #undef __USE_EXTERN_INLINES
  54637. #include <sys/socket.h>
  54638. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/creat64.c uClibc-git/libc/sysdeps/linux/common/creat64.c
  54639. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/creat64.c 2012-05-15 09:20:09.000000000 +0200
  54640. +++ uClibc-git/libc/sysdeps/linux/common/creat64.c 2014-06-02 17:40:34.350713844 +0200
  54641. @@ -12,19 +12,17 @@
  54642. Lesser General Public License for more details.
  54643. You should have received a copy of the GNU Lesser General Public
  54644. - License along with the GNU C Library; if not, write to the Free
  54645. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  54646. - 02111-1307 USA. */
  54647. + License along with the GNU C Library; if not, see
  54648. + <http://www.gnu.org/licenses/>. */
  54649. #include <_lfs_64.h>
  54650. -
  54651. -#ifdef __UCLIBC_HAS_LFS__
  54652. #include <fcntl.h>
  54653. -#include <sys/types.h>
  54654. +#include <cancel.h>
  54655. /* Create FILE with protections MODE. */
  54656. int creat64(const char *file, mode_t mode)
  54657. {
  54658. - return open64(file, O_WRONLY|O_CREAT|O_TRUNC, mode);
  54659. + return open64(file, O_WRONLY | O_CREAT | O_TRUNC, mode);
  54660. }
  54661. -#endif /* __UCLIBC_HAS_LFS__ */
  54662. +/* open handled cancellation, noop on uClibc */
  54663. +LIBC_CANCEL_HANDLED();
  54664. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/creat.c uClibc-git/libc/sysdeps/linux/common/creat.c
  54665. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/creat.c 2012-05-15 09:20:09.000000000 +0200
  54666. +++ uClibc-git/libc/sysdeps/linux/common/creat.c 2014-06-02 17:40:34.350713844 +0200
  54667. @@ -8,8 +8,11 @@
  54668. */
  54669. #include <fcntl.h>
  54670. +#include <cancel.h>
  54671. int creat(const char *file, mode_t mode)
  54672. {
  54673. return open(file, O_WRONLY | O_CREAT | O_TRUNC, mode);
  54674. }
  54675. +/* open handled cancellation, noop on uClibc */
  54676. +LIBC_CANCEL_HANDLED();
  54677. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/create_module.c uClibc-git/libc/sysdeps/linux/common/create_module.c
  54678. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/create_module.c 2012-05-15 09:20:09.000000000 +0200
  54679. +++ uClibc-git/libc/sysdeps/linux/common/create_module.c 2014-06-02 17:40:34.350713844 +0200
  54680. @@ -7,10 +7,10 @@
  54681. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  54682. */
  54683. -#include <errno.h>
  54684. -#include <unistd.h>
  54685. #include <features.h>
  54686. -#include <sys/types.h>
  54687. +#define __need_size_t
  54688. +#include <stddef.h>
  54689. +#include <errno.h>
  54690. #include <sys/syscall.h>
  54691. #ifdef __NR_create_module
  54692. @@ -22,7 +22,7 @@
  54693. static __inline__ _syscall2(long, __create_module, const char *, name, size_t, size)
  54694. /* By checking the value of errno, we know if we have been fooled
  54695. * by the syscall2 macro making a very high address look like a
  54696. - * negative, so we we fix it up here. */
  54697. + * negative, so we fix it up here. */
  54698. unsigned long create_module(const char *name, size_t size)
  54699. {
  54700. long ret = __create_module(name, size);
  54701. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/delete_module.c uClibc-git/libc/sysdeps/linux/common/delete_module.c
  54702. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/delete_module.c 2012-05-15 09:20:09.000000000 +0200
  54703. +++ uClibc-git/libc/sysdeps/linux/common/delete_module.c 2014-06-02 17:40:34.350713844 +0200
  54704. @@ -7,7 +7,7 @@
  54705. */
  54706. #include <sys/syscall.h>
  54707. -int delete_module(const char *name, unsigned int flags);
  54708. #ifdef __NR_delete_module
  54709. +int delete_module(const char *name, unsigned int flags);
  54710. _syscall2(int, delete_module, const char *, name, unsigned int, flags)
  54711. #endif
  54712. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/dl-osinfo.h uClibc-git/libc/sysdeps/linux/common/dl-osinfo.h
  54713. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/dl-osinfo.h 2012-05-15 09:20:09.000000000 +0200
  54714. +++ uClibc-git/libc/sysdeps/linux/common/dl-osinfo.h 2014-06-02 17:40:34.350713844 +0200
  54715. @@ -17,10 +17,11 @@
  54716. # endif
  54717. # include <stdint.h>
  54718. -# include <sys/time.h>
  54719. # ifdef IS_IN_libc
  54720. -#include <fcntl.h>
  54721. +# include <fcntl.h>
  54722. +# include <unistd.h>
  54723. +# include <sys/time.h>
  54724. # define OPEN open
  54725. # define READ read
  54726. # define CLOSE close
  54727. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/dup2.c uClibc-git/libc/sysdeps/linux/common/dup2.c
  54728. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/dup2.c 2012-05-15 09:20:09.000000000 +0200
  54729. +++ uClibc-git/libc/sysdeps/linux/common/dup2.c 2014-06-02 17:40:34.350713844 +0200
  54730. @@ -9,7 +9,24 @@
  54731. #include <sys/syscall.h>
  54732. #include <unistd.h>
  54733. +#if defined __NR_dup3 && !defined __NR_dup2
  54734. +# include <fcntl.h>
  54735. +extern int __libc_fcntl (int fd, int cmd, ...);
  54736. +libc_hidden_proto(__libc_fcntl);
  54737. +int dup2(int old, int newfd)
  54738. +{
  54739. + /*
  54740. + * Check if old fd is valid before we try
  54741. + * to ducplicate it. Return it if valid
  54742. + * or EBADF otherwise
  54743. + */
  54744. + if (old == newfd)
  54745. + return fcntl(old, F_GETFL, 0) < 0 ? -1 : newfd;
  54746. + return dup3(old, newfd, 0);
  54747. +}
  54748. +#else
  54749. _syscall2(int, dup2, int, oldfd, int, newfd)
  54750. +#endif
  54751. libc_hidden_def(dup2)
  54752. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/dup3.c uClibc-git/libc/sysdeps/linux/common/dup3.c
  54753. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/dup3.c 1970-01-01 01:00:00.000000000 +0100
  54754. +++ uClibc-git/libc/sysdeps/linux/common/dup3.c 2014-06-02 17:40:34.350713844 +0200
  54755. @@ -0,0 +1,16 @@
  54756. +/* vi: set sw=4 ts=4: */
  54757. +/*
  54758. + * dup3() for uClibc
  54759. + *
  54760. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  54761. + *
  54762. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  54763. + */
  54764. +
  54765. +#include <sys/syscall.h>
  54766. +#include <unistd.h>
  54767. +
  54768. +#if defined(__NR_dup3)
  54769. +_syscall3(int, dup3, int, oldfd, int, newfd, int, flags)
  54770. +libc_hidden_def(dup3)
  54771. +#endif
  54772. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/epoll.c uClibc-git/libc/sysdeps/linux/common/epoll.c
  54773. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/epoll.c 2012-05-15 09:20:09.000000000 +0200
  54774. +++ uClibc-git/libc/sysdeps/linux/common/epoll.c 2014-06-02 17:40:34.350713844 +0200
  54775. @@ -1,6 +1,6 @@
  54776. /* vi: set sw=4 ts=4: */
  54777. /*
  54778. - * epoll_create() / epoll_ctl() / epoll_wait() for uClibc
  54779. + * epoll_create() / epoll_ctl() / epoll_wait() / epoll_pwait() for uClibc
  54780. *
  54781. * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  54782. *
  54783. @@ -9,75 +9,61 @@
  54784. #include <sys/syscall.h>
  54785. #include <sys/epoll.h>
  54786. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  54787. -# include <sysdep-cancel.h>
  54788. -#else
  54789. -# define SINGLE_THREAD_P 1
  54790. -#endif
  54791. +#include <cancel.h>
  54792. -/*
  54793. - * epoll_create()
  54794. - */
  54795. #ifdef __NR_epoll_create
  54796. _syscall1(int, epoll_create, int, size)
  54797. #endif
  54798. -/*
  54799. - * epoll_create1()
  54800. - */
  54801. #ifdef __NR_epoll_create1
  54802. _syscall1(int, epoll_create1, int, flags)
  54803. #endif
  54804. -/*
  54805. - * epoll_ctl()
  54806. - */
  54807. +#if defined __NR_epoll_create1 && !defined __NR_epoll_create
  54808. +int epoll_create(int size)
  54809. +{
  54810. + return INLINE_SYSCALL(epoll_create1, 1, 0);
  54811. +}
  54812. +
  54813. +#endif
  54814. +
  54815. #ifdef __NR_epoll_ctl
  54816. -_syscall4(int,epoll_ctl, int, epfd, int, op, int, fd, struct epoll_event *, event)
  54817. +_syscall4(int, epoll_ctl, int, epfd, int, op, int, fd, struct epoll_event *, event)
  54818. #endif
  54819. -/*
  54820. - * epoll_wait()
  54821. - */
  54822. #ifdef __NR_epoll_wait
  54823. -extern __typeof(epoll_wait) __libc_epoll_wait;
  54824. -int __libc_epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout)
  54825. +static int __NC(epoll_wait)(int epfd, struct epoll_event *events, int maxevents, int timeout)
  54826. {
  54827. - if (SINGLE_THREAD_P)
  54828. - return INLINE_SYSCALL(epoll_wait, 4, epfd, events, maxevents, timeout);
  54829. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  54830. - else {
  54831. - int oldtype = LIBC_CANCEL_ASYNC ();
  54832. - int result = INLINE_SYSCALL(epoll_wait, 4, epfd, events, maxevents, timeout);
  54833. - LIBC_CANCEL_RESET (oldtype);
  54834. - return result;
  54835. - }
  54836. -# endif
  54837. + return INLINE_SYSCALL(epoll_wait, 4, epfd, events, maxevents, timeout);
  54838. }
  54839. -weak_alias(__libc_epoll_wait, epoll_wait)
  54840. +CANCELLABLE_SYSCALL(int, epoll_wait, (int epfd, struct epoll_event *events, int maxevents, int timeout),
  54841. + (epfd, events, maxevents, timeout))
  54842. #endif
  54843. -/*
  54844. - * epoll_pwait()
  54845. - */
  54846. #ifdef __NR_epoll_pwait
  54847. # include <signal.h>
  54848. -extern __typeof(epoll_pwait) __libc_epoll_pwait;
  54849. -int __libc_epoll_pwait(int epfd, struct epoll_event *events, int maxevents,
  54850. - int timeout, const sigset_t *set)
  54851. +# define __NR___syscall_epoll_pwait __NR_epoll_pwait
  54852. +static __always_inline _syscall6(int, __syscall_epoll_pwait, int, epfd, struct epoll_event *, events,
  54853. + int, maxevents, int, timeout, const sigset_t *, sigmask, size_t, sigsetsize)
  54854. +
  54855. +static int __NC(epoll_pwait)(int epfd, struct epoll_event *events, int maxevents, int timeout,
  54856. + const sigset_t *set)
  54857. {
  54858. - int nsig = _NSIG / 8;
  54859. - if (SINGLE_THREAD_P)
  54860. - return INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, nsig);
  54861. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  54862. - else {
  54863. - int oldtype = LIBC_CANCEL_ASYNC ();
  54864. - int result = INLINE_SYSCALL(epoll_pwait, 6, epfd, events, maxevents, timeout, set, nsig);
  54865. - LIBC_CANCEL_RESET (oldtype);
  54866. - return result;
  54867. - }
  54868. -# endif
  54869. + return __syscall_epoll_pwait(epfd, events, maxevents, timeout, set, __SYSCALL_SIGSET_T_SIZE);
  54870. }
  54871. -weak_alias(__libc_epoll_pwait, epoll_pwait)
  54872. +CANCELLABLE_SYSCALL(int, epoll_pwait, (int epfd, struct epoll_event *events, int maxevents, int timeout,
  54873. + const sigset_t *set),
  54874. + (epfd, events, maxevents, timeout, set))
  54875. +/*
  54876. + * If epoll_wait is not defined, then call epoll_pwait instead using NULL
  54877. + * for sigmask argument
  54878. + */
  54879. +# ifndef __NR_epoll_wait
  54880. +# include <stddef.h>
  54881. +int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout)
  54882. +{
  54883. + return INLINE_SYSCALL(epoll_pwait, 5, epfd, events, maxevents, timeout, NULL);
  54884. +}
  54885. +# endif
  54886. #endif
  54887. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/eventfd.c uClibc-git/libc/sysdeps/linux/common/eventfd.c
  54888. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/eventfd.c 2012-05-15 09:20:09.000000000 +0200
  54889. +++ uClibc-git/libc/sysdeps/linux/common/eventfd.c 2014-06-02 17:40:34.350713844 +0200
  54890. @@ -7,12 +7,24 @@
  54891. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  54892. */
  54893. +#include <errno.h>
  54894. #include <sys/syscall.h>
  54895. #include <sys/eventfd.h>
  54896. /*
  54897. * eventfd()
  54898. */
  54899. -#ifdef __NR_eventfd
  54900. -_syscall2(int, eventfd, int, count, int, flags)
  54901. +#if defined __NR_eventfd || defined __NR_eventfd2
  54902. +int eventfd (int count, int flags)
  54903. +{
  54904. +#if defined __NR_eventfd2
  54905. + return INLINE_SYSCALL (eventfd2, 2, count, flags);
  54906. +#elif defined __NR_eventfd
  54907. + if (flags != 0) {
  54908. + __set_errno (EINVAL);
  54909. + return -1;
  54910. + }
  54911. + return INLINE_SYSCALL (eventfd, 1, count);
  54912. +#endif
  54913. +}
  54914. #endif
  54915. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/_exit.c uClibc-git/libc/sysdeps/linux/common/_exit.c
  54916. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/_exit.c 2012-05-15 09:20:09.000000000 +0200
  54917. +++ uClibc-git/libc/sysdeps/linux/common/_exit.c 2014-06-02 17:40:34.338713778 +0200
  54918. @@ -7,28 +7,36 @@
  54919. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  54920. */
  54921. -#include <features.h>
  54922. -#include <errno.h>
  54923. #include <unistd.h>
  54924. -#include <sys/types.h>
  54925. +#include <stdlib.h>
  54926. #include <sys/syscall.h>
  54927. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  54928. -#include <sysdep.h>
  54929. +#include <bits/kernel-features.h>
  54930. +
  54931. +#ifdef __UCLIBC_ABORT_INSTRUCTION__
  54932. +# define ABORT_INSTRUCTION __asm__(__UCLIBC_ABORT_INSTRUCTION__)
  54933. +#else
  54934. +# warning "no abort instruction defined for this arch"
  54935. #endif
  54936. +/* have to check for kernel 2.5.35 too, since NR was earlier present */
  54937. +#if defined __NR_exit_group && __LINUX_KERNEL_VERSION >= 0x020600 \
  54938. + && defined __UCLIBC_HAS_THREADS__
  54939. +# undef __NR_exit
  54940. +# define __NR_exit __NR_exit_group
  54941. +#endif
  54942. -void attribute_noreturn _exit(int status)
  54943. +void _exit(int status)
  54944. {
  54945. /* The loop is added only to keep gcc happy. */
  54946. while(1)
  54947. {
  54948. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  54949. -# ifdef __NR_exit_group
  54950. - INLINE_SYSCALL(exit_group, 1, status);
  54951. -# endif
  54952. -#endif
  54953. INLINE_SYSCALL(exit, 1, status);
  54954. +#ifdef ABORT_INSTRUCTION
  54955. + ABORT_INSTRUCTION;
  54956. +#endif
  54957. }
  54958. }
  54959. libc_hidden_def(_exit)
  54960. +#ifdef __USE_ISOC99
  54961. weak_alias(_exit,_Exit)
  54962. +#endif
  54963. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/faccessat.c uClibc-git/libc/sysdeps/linux/common/faccessat.c
  54964. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/faccessat.c 2012-05-15 09:20:09.000000000 +0200
  54965. +++ uClibc-git/libc/sysdeps/linux/common/faccessat.c 2014-06-02 17:40:34.350713844 +0200
  54966. @@ -11,6 +11,7 @@
  54967. #ifdef __NR_faccessat
  54968. _syscall4(int, faccessat, int, fd, const char *, file, int, type, int, flag)
  54969. +libc_hidden_def(faccessat)
  54970. #else
  54971. /* should add emulation with faccess() and /proc/self/fd/ ... */
  54972. #endif
  54973. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fchdir.c uClibc-git/libc/sysdeps/linux/common/fchdir.c
  54974. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fchdir.c 2012-05-15 09:20:09.000000000 +0200
  54975. +++ uClibc-git/libc/sysdeps/linux/common/fchdir.c 2014-06-02 17:40:34.350713844 +0200
  54976. @@ -10,6 +10,7 @@
  54977. #include <sys/syscall.h>
  54978. #include <unistd.h>
  54979. -
  54980. +#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
  54981. _syscall1(int, fchdir, int, fd)
  54982. libc_hidden_def(fchdir)
  54983. +#endif
  54984. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fchmodat.c uClibc-git/libc/sysdeps/linux/common/fchmodat.c
  54985. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fchmodat.c 2012-05-15 09:20:09.000000000 +0200
  54986. +++ uClibc-git/libc/sysdeps/linux/common/fchmodat.c 2014-06-02 17:40:34.350713844 +0200
  54987. @@ -32,6 +32,7 @@
  54988. return INLINE_SYSCALL(fchmodat, 3, fd, file, mode);
  54989. }
  54990. +libc_hidden_def(fchmodat)
  54991. #else
  54992. /* should add emulation with fchmod() and /proc/self/fd/ ... */
  54993. #endif
  54994. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fchownat.c uClibc-git/libc/sysdeps/linux/common/fchownat.c
  54995. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fchownat.c 2012-05-15 09:20:09.000000000 +0200
  54996. +++ uClibc-git/libc/sysdeps/linux/common/fchownat.c 2014-06-02 17:40:34.350713844 +0200
  54997. @@ -11,6 +11,7 @@
  54998. #ifdef __NR_fchownat
  54999. _syscall5(int, fchownat, int, fd, const char *, file, uid_t, owner, gid_t, group, int, flag)
  55000. +libc_hidden_def(fchownat)
  55001. #else
  55002. /* should add emulation with fchown() and /proc/self/fd/ ... */
  55003. #endif
  55004. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fdatasync.c uClibc-git/libc/sysdeps/linux/common/fdatasync.c
  55005. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fdatasync.c 2012-05-15 09:20:09.000000000 +0200
  55006. +++ uClibc-git/libc/sysdeps/linux/common/fdatasync.c 2014-06-02 17:40:34.350713844 +0200
  55007. @@ -8,36 +8,17 @@
  55008. */
  55009. #include <sys/syscall.h>
  55010. -#include <unistd.h>
  55011. #if !defined __NR_fdatasync && defined __NR_osf_fdatasync
  55012. # define __NR_fdatasync __NR_osf_fdatasync
  55013. #endif
  55014. #ifdef __NR_fdatasync
  55015. +# include <unistd.h>
  55016. +# include <cancel.h>
  55017. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  55018. -# include <sysdep-cancel.h>
  55019. -# else
  55020. -# define SINGLE_THREAD_P 1
  55021. -# endif
  55022. -
  55023. -#define __NR___syscall_fdatasync __NR_fdatasync
  55024. -
  55025. -static __always_inline
  55026. -_syscall1(int, __syscall_fdatasync, int, fd)
  55027. -
  55028. -int fdatasync(int fd)
  55029. -{
  55030. - if (SINGLE_THREAD_P)
  55031. - return __syscall_fdatasync(fd);
  55032. -
  55033. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  55034. - int oldtype = LIBC_CANCEL_ASYNC ();
  55035. - int result = __syscall_fdatasync(fd);
  55036. - LIBC_CANCEL_RESET (oldtype);
  55037. - return result;
  55038. -# endif
  55039. -}
  55040. +# define __NR___fdatasync_nocancel __NR_fdatasync
  55041. +static _syscall1(int, __NC(fdatasync), int, fd)
  55042. +CANCELLABLE_SYSCALL(int, fdatasync, (int fd), (fd))
  55043. #endif
  55044. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fork.c uClibc-git/libc/sysdeps/linux/common/fork.c
  55045. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fork.c 2012-05-15 09:20:09.000000000 +0200
  55046. +++ uClibc-git/libc/sysdeps/linux/common/fork.c 2014-06-02 17:40:34.350713844 +0200
  55047. @@ -8,16 +8,35 @@
  55048. */
  55049. #include <sys/syscall.h>
  55050. -#include <unistd.h>
  55051. -#ifdef __ARCH_USE_MMU__
  55052. -
  55053. -#ifdef __NR_fork
  55054. -#define __NR___libc_fork __NR_fork
  55055. +#if defined __ARCH_USE_MMU__
  55056. +# include <unistd.h>
  55057. extern __typeof(fork) __libc_fork;
  55058. -_syscall0(pid_t, __libc_fork)
  55059. -weak_alias(__libc_fork,fork)
  55060. +# if defined __NR_fork
  55061. +# include <cancel.h>
  55062. +# define __NR___libc_fork __NR_fork
  55063. +_syscall0(pid_t, fork)
  55064. +
  55065. +# elif defined __NR_clone && !defined __NR_fork
  55066. +# include <sys/types.h>
  55067. +# include <signal.h>
  55068. +# include <stddef.h>
  55069. +pid_t fork(void)
  55070. +{
  55071. + pid_t pid = INLINE_SYSCALL(clone, 4, SIGCHLD, NULL, NULL, NULL);
  55072. +
  55073. + if (pid < 0)
  55074. + return -1;
  55075. +
  55076. + return pid;
  55077. +}
  55078. +
  55079. +# endif
  55080. +# ifdef __UCLIBC_HAS_THREADS__
  55081. +strong_alias(fork,__libc_fork)
  55082. libc_hidden_weak(fork)
  55083. -#endif
  55084. +# else
  55085. +libc_hidden_def(fork)
  55086. +# endif
  55087. #endif
  55088. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fpu_control.h uClibc-git/libc/sysdeps/linux/common/fpu_control.h
  55089. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  55090. +++ uClibc-git/libc/sysdeps/linux/common/fpu_control.h 2014-06-02 17:40:34.354713866 +0200
  55091. @@ -13,9 +13,8 @@
  55092. Lesser General Public License for more details.
  55093. You should have received a copy of the GNU Lesser General Public
  55094. - License along with the GNU C Library; if not, write to the Free
  55095. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  55096. - 02111-1307 USA. */
  55097. + License along with the GNU C Library; if not, see
  55098. + <http://www.gnu.org/licenses/>. */
  55099. #ifndef _FPU_CONTROL_H
  55100. #define _FPU_CONTROL_H
  55101. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fstat64.c uClibc-git/libc/sysdeps/linux/common/fstat64.c
  55102. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fstat64.c 2012-05-15 09:20:09.000000000 +0200
  55103. +++ uClibc-git/libc/sysdeps/linux/common/fstat64.c 2014-06-02 17:40:34.354713866 +0200
  55104. @@ -7,20 +7,20 @@
  55105. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  55106. */
  55107. +#include <_lfs_64.h>
  55108. #include <sys/syscall.h>
  55109. -#if defined __UCLIBC_HAS_LFS__ && defined __NR_fstat64
  55110. -#include <unistd.h>
  55111. -#include <sys/stat.h>
  55112. -#include "xstatconv.h"
  55113. -
  55114. -
  55115. -#define __NR___syscall_fstat64 __NR_fstat64
  55116. -static __inline__ _syscall2(int, __syscall_fstat64,
  55117. - int, filedes, struct kernel_stat64 *, buf)
  55118. +#ifdef __NR_fstat64
  55119. +# include <unistd.h>
  55120. +# include <sys/stat.h>
  55121. +# include "xstatconv.h"
  55122. +# define __NR___syscall_fstat64 __NR_fstat64
  55123. +static __always_inline _syscall2(int, __syscall_fstat64,
  55124. + int, filedes, struct kernel_stat64 *, buf)
  55125. int fstat64(int fd, struct stat64 *buf)
  55126. {
  55127. +#ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
  55128. int result;
  55129. struct kernel_stat64 kbuf;
  55130. @@ -29,6 +29,9 @@
  55131. __xstat64_conv(&kbuf, buf);
  55132. }
  55133. return result;
  55134. +#else
  55135. + return __syscall_fstat64(fd, buf);
  55136. +#endif
  55137. }
  55138. libc_hidden_def(fstat64)
  55139. #endif
  55140. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatat64.c uClibc-git/libc/sysdeps/linux/common/fstatat64.c
  55141. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatat64.c 2012-05-15 09:20:09.000000000 +0200
  55142. +++ uClibc-git/libc/sysdeps/linux/common/fstatat64.c 2014-06-02 17:40:34.354713866 +0200
  55143. @@ -6,20 +6,21 @@
  55144. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  55145. */
  55146. +#include <_lfs_64.h>
  55147. +#include <bits/wordsize.h>
  55148. #include <sys/syscall.h>
  55149. -#include <sys/stat.h>
  55150. -#include "xstatconv.h"
  55151. -
  55152. -#ifdef __UCLIBC_HAS_LFS__
  55153. /* 64bit ports tend to favor newfstatat() */
  55154. -#ifdef __NR_newfstatat
  55155. +#if __WORDSIZE == 64 && defined __NR_newfstatat
  55156. # define __NR_fstatat64 __NR_newfstatat
  55157. #endif
  55158. #ifdef __NR_fstatat64
  55159. +# include <sys/stat.h>
  55160. +# include "xstatconv.h"
  55161. int fstatat64(int fd, const char *file, struct stat64 *buf, int flag)
  55162. {
  55163. +# ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
  55164. int ret;
  55165. struct kernel_stat64 kbuf;
  55166. @@ -28,9 +29,11 @@
  55167. __xstat64_conv(&kbuf, buf);
  55168. return ret;
  55169. +# else
  55170. + return INLINE_SYSCALL(fstatat64, 4, fd, file, buf, flag);
  55171. +# endif
  55172. }
  55173. +libc_hidden_def(fstatat64)
  55174. #else
  55175. /* should add emulation with fstat64() and /proc/self/fd/ ... */
  55176. #endif
  55177. -
  55178. -#endif
  55179. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatat.c uClibc-git/libc/sysdeps/linux/common/fstatat.c
  55180. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatat.c 2012-05-15 09:20:09.000000000 +0200
  55181. +++ uClibc-git/libc/sysdeps/linux/common/fstatat.c 2014-06-02 17:40:34.354713866 +0200
  55182. @@ -11,7 +11,7 @@
  55183. #include "xstatconv.h"
  55184. /* 64bit ports tend to favor newfstatat() */
  55185. -#ifdef __NR_newfstatat
  55186. +#if __WORDSIZE == 64 && defined __NR_newfstatat
  55187. # define __NR_fstatat64 __NR_newfstatat
  55188. #endif
  55189. @@ -19,14 +19,26 @@
  55190. int fstatat(int fd, const char *file, struct stat *buf, int flag)
  55191. {
  55192. int ret;
  55193. +# ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
  55194. struct kernel_stat64 kbuf;
  55195. -
  55196. ret = INLINE_SYSCALL(fstatat64, 4, fd, file, &kbuf, flag);
  55197. if (ret == 0)
  55198. __xstat32_conv(&kbuf, buf);
  55199. -
  55200. +# else
  55201. + ret = INLINE_SYSCALL(fstatat64, 4, fd, file, buf, flag);
  55202. + if (ret == 0) {
  55203. + /* Did we overflow */
  55204. + if (buf->__pad1 || buf->__pad2 || buf->__pad3
  55205. + || buf->__pad4 || buf->__pad5 || buf->__pad6
  55206. + || buf->__pad7) {
  55207. + __set_errno(EOVERFLOW);
  55208. + return -1;
  55209. + }
  55210. + }
  55211. +# endif /* __ARCH_HAS_DEPRECATED_SYSCALLS__ */
  55212. return ret;
  55213. }
  55214. +libc_hidden_def(fstatat)
  55215. #else
  55216. /* should add emulation with fstat() and /proc/self/fd/ ... */
  55217. #endif
  55218. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fstat.c uClibc-git/libc/sysdeps/linux/common/fstat.c
  55219. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fstat.c 2012-05-15 09:20:09.000000000 +0200
  55220. +++ uClibc-git/libc/sysdeps/linux/common/fstat.c 2014-06-02 17:40:34.354713866 +0200
  55221. @@ -12,10 +12,28 @@
  55222. #include <sys/stat.h>
  55223. #include "xstatconv.h"
  55224. +#if defined __NR_fstat64 && !defined __NR_fstat
  55225. +int fstat(int fd, struct stat *buf)
  55226. +{
  55227. + int result = INLINE_SYSCALL(fstat64, 2, fd, buf);
  55228. + if (result == 0) {
  55229. + /* Did we overflow? */
  55230. + if (buf->__pad1 || buf->__pad2 || buf->__pad3
  55231. + || buf->__pad4 || buf->__pad5
  55232. + || buf->__pad6 || buf->__pad7) {
  55233. + __set_errno(EOVERFLOW);
  55234. + return -1;
  55235. + }
  55236. + }
  55237. + return result;
  55238. +}
  55239. +libc_hidden_def(fstat)
  55240. +
  55241. +#elif defined __NR_fstat
  55242. int fstat(int fd, struct stat *buf)
  55243. {
  55244. int result;
  55245. -#ifdef __NR_fstat64
  55246. +# ifdef __NR_fstat64
  55247. /* normal stat call has limited values for various stat elements
  55248. * e.g. uid device major/minor etc.
  55249. * so we use 64 variant if available
  55250. @@ -26,19 +44,21 @@
  55251. if (result == 0) {
  55252. __xstat32_conv(&kbuf, buf);
  55253. }
  55254. -#else
  55255. +# else
  55256. struct kernel_stat kbuf;
  55257. result = INLINE_SYSCALL(fstat, 2, fd, &kbuf);
  55258. if (result == 0) {
  55259. __xstat_conv(&kbuf, buf);
  55260. }
  55261. -#endif
  55262. +# endif
  55263. return result;
  55264. }
  55265. libc_hidden_def(fstat)
  55266. -#if ! defined __NR_fstat64 && defined __UCLIBC_HAS_LFS__
  55267. +# if ! defined __NR_fstat64 && defined __UCLIBC_HAS_LFS__
  55268. strong_alias_untyped(fstat,fstat64)
  55269. libc_hidden_def(fstat64)
  55270. +# endif
  55271. +
  55272. #endif
  55273. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatfs.c uClibc-git/libc/sysdeps/linux/common/fstatfs.c
  55274. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fstatfs.c 2012-05-15 09:20:09.000000000 +0200
  55275. +++ uClibc-git/libc/sysdeps/linux/common/fstatfs.c 2014-06-02 17:40:34.354713866 +0200
  55276. @@ -9,8 +9,9 @@
  55277. #include <sys/syscall.h>
  55278. #include <sys/vfs.h>
  55279. +#include <string.h>
  55280. -#ifndef __USE_FILE_OFFSET64
  55281. +#ifndef __USE_FILE_OFFSET64__
  55282. extern int fstatfs (int __fildes, struct statfs *__buf)
  55283. __THROW __nonnull ((2));
  55284. #else
  55285. @@ -23,8 +24,26 @@
  55286. #endif
  55287. extern __typeof(fstatfs) __libc_fstatfs attribute_hidden;
  55288. -#define __NR___libc_fstatfs __NR_fstatfs
  55289. +#ifdef __NR_fstatfs
  55290. +# define __NR___libc_fstatfs __NR_fstatfs
  55291. _syscall2(int, __libc_fstatfs, int, fd, struct statfs *, buf)
  55292. +#else
  55293. +int __libc_fstatfs (int __fildes, struct statfs *__buf)
  55294. +{
  55295. + int err = INLINE_SYSCALL(fstatfs64, 3, __fildes, sizeof(*__buf), __buf);
  55296. +
  55297. + if (err == 0) {
  55298. + /* Did we overflow? */
  55299. + if (__buf->__pad1 || __buf->__pad2 || __buf->__pad3 ||
  55300. + __buf->__pad4 || __buf->__pad5) {
  55301. + __set_errno(EOVERFLOW);
  55302. + return -1;
  55303. + }
  55304. + }
  55305. + return err;
  55306. +};
  55307. +/* Redefined fstatfs because we need it for backwards compatibility */
  55308. +#endif /* __NR_fstatfs */
  55309. #if defined __UCLIBC_LINUX_SPECIFIC__
  55310. weak_alias(__libc_fstatfs,fstatfs)
  55311. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/fsync.c uClibc-git/libc/sysdeps/linux/common/fsync.c
  55312. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/fsync.c 2012-05-15 09:20:09.000000000 +0200
  55313. +++ uClibc-git/libc/sysdeps/linux/common/fsync.c 2014-06-02 17:40:34.354713866 +0200
  55314. @@ -9,29 +9,9 @@
  55315. #include <sys/syscall.h>
  55316. #include <unistd.h>
  55317. +#include <cancel.h>
  55318. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  55319. -#include "sysdep-cancel.h"
  55320. -#else
  55321. -#define SINGLE_THREAD_P 1
  55322. -#endif
  55323. +#define __NR___fsync_nocancel __NR_fsync
  55324. +static _syscall1(int, __NC(fsync), int, fd)
  55325. -#define __NR___syscall_fsync __NR_fsync
  55326. -static inline _syscall1(int, __syscall_fsync, int, fd)
  55327. -
  55328. -extern __typeof(fsync) __libc_fsync;
  55329. -
  55330. -int __libc_fsync(int fd)
  55331. -{
  55332. - if (SINGLE_THREAD_P)
  55333. - return __syscall_fsync(fd);
  55334. -
  55335. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  55336. - int oldtype = LIBC_CANCEL_ASYNC ();
  55337. - int result = __syscall_fsync(fd);
  55338. - LIBC_CANCEL_RESET (oldtype);
  55339. - return result;
  55340. -#endif
  55341. -}
  55342. -
  55343. -weak_alias(__libc_fsync, fsync)
  55344. +CANCELLABLE_SYSCALL(int, fsync, (int fd), (fd))
  55345. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ftruncate64.c uClibc-git/libc/sysdeps/linux/common/ftruncate64.c
  55346. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ftruncate64.c 2012-05-15 09:20:09.000000000 +0200
  55347. +++ uClibc-git/libc/sysdeps/linux/common/ftruncate64.c 2014-06-02 17:40:34.354713866 +0200
  55348. @@ -7,50 +7,41 @@
  55349. * and on 32 bit machines this sends things into the kernel as
  55350. * two 32-bit arguments (high and low 32 bits of length) that
  55351. * are ordered based on endianess. It turns out endian.h has
  55352. - * just the macro we need to order things, __LONG_LONG_PAIR.
  55353. + * just the macro we need to order things, OFF64_HI_LO.
  55354. */
  55355. -#include <features.h>
  55356. +#include <_lfs_64.h>
  55357. +#include <sys/syscall.h>
  55358. +#include <unistd.h>
  55359. -#ifdef __UCLIBC_HAS_LFS__
  55360. +#ifdef __NR_ftruncate64
  55361. +# include <bits/wordsize.h>
  55362. -# include <unistd.h>
  55363. -# include <errno.h>
  55364. -# include <endian.h>
  55365. -# include <stdint.h>
  55366. -# include <sys/types.h>
  55367. -# include <sys/syscall.h>
  55368. -
  55369. -
  55370. -# ifdef __NR_ftruncate64
  55371. -
  55372. -# if __WORDSIZE == 64
  55373. +# if __WORDSIZE == 64
  55374. /* For a 64 bit machine, life is simple... */
  55375. _syscall2(int, ftruncate64, int, fd, __off64_t, length)
  55376. -# elif __WORDSIZE == 32
  55377. +# elif __WORDSIZE == 32
  55378. +# include <endian.h>
  55379. +# include <stdint.h>
  55380. /* The exported ftruncate64 function. */
  55381. int ftruncate64 (int fd, __off64_t length)
  55382. {
  55383. - uint32_t low = length & 0xffffffff;
  55384. - uint32_t high = length >> 32;
  55385. -# if defined(__UCLIBC_TRUNCATE64_HAS_4_ARGS__)
  55386. - return INLINE_SYSCALL(ftruncate64,
  55387. - 4, fd, 0, __LONG_LONG_PAIR (high, low));
  55388. -# else
  55389. - return INLINE_SYSCALL(ftruncate64, 3, fd,
  55390. - __LONG_LONG_PAIR (high, low));
  55391. -# endif
  55392. +# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
  55393. + return INLINE_SYSCALL(ftruncate64, 4, fd, 0, OFF64_HI_LO(length));
  55394. +# else
  55395. + return INLINE_SYSCALL(ftruncate64, 3, fd, OFF64_HI_LO(length));
  55396. +# endif
  55397. }
  55398. -# else /* __WORDSIZE */
  55399. -# error Your machine is not 64 bit or 32 bit, I am dazed and confused.
  55400. -# endif /* __WORDSIZE */
  55401. -
  55402. -# else /* __NR_ftruncate64 */
  55403. +# else /* __WORDSIZE */
  55404. +# error Your machine is not 64 bit or 32 bit, I am dazed and confused.
  55405. +# endif /* __WORDSIZE */
  55406. +#else /* __NR_ftruncate64 */
  55407. +# include <errno.h>
  55408. int ftruncate64 (int fd, __off64_t length)
  55409. {
  55410. @@ -65,7 +56,5 @@
  55411. return -1;
  55412. }
  55413. -# endif /* __NR_ftruncate64 */
  55414. +#endif /* __NR_ftruncate64 */
  55415. libc_hidden_def(ftruncate64)
  55416. -
  55417. -#endif /* __UCLIBC_HAS_LFS__ */
  55418. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ftruncate.c uClibc-git/libc/sysdeps/linux/common/ftruncate.c
  55419. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ftruncate.c 2012-05-15 09:20:09.000000000 +0200
  55420. +++ uClibc-git/libc/sysdeps/linux/common/ftruncate.c 2014-06-02 17:40:34.354713866 +0200
  55421. @@ -10,6 +10,20 @@
  55422. #include <sys/syscall.h>
  55423. #include <unistd.h>
  55424. +#if defined __NR_ftruncate64 && !defined __NR_ftruncate
  55425. +# include <endian.h>
  55426. +# include <stdint.h>
  55427. +int ftruncate(int fd, __off_t length)
  55428. +{
  55429. +# if defined __UCLIBC_HAS_LFS__
  55430. + return ftruncate64(fd, length);
  55431. +# elif __WORDSIZE == 32
  55432. + return INLINE_SYSCALL(ftruncate64, 3, fd, OFF_HI_LO(length));
  55433. +# endif
  55434. +}
  55435. +libc_hidden_def(ftruncate);
  55436. +#else
  55437. _syscall2(int, ftruncate, int, fd, __off_t, length)
  55438. libc_hidden_def(ftruncate)
  55439. +#endif
  55440. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/futimens.c uClibc-git/libc/sysdeps/linux/common/futimens.c
  55441. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/futimens.c 2012-05-15 09:20:09.000000000 +0200
  55442. +++ uClibc-git/libc/sysdeps/linux/common/futimens.c 2014-06-02 17:40:34.354713866 +0200
  55443. @@ -16,13 +16,13 @@
  55444. * Note that due to not including the header, we have to alias the call
  55445. * manually.
  55446. */
  55447. -extern int utimensat (int __fd, __const char *__path,
  55448. - __const struct timespec __times[2],
  55449. +extern int utimensat (int __fd, const char *__path,
  55450. + const struct timespec __times[2],
  55451. int __flags) __THROW;
  55452. libc_hidden_proto(utimensat)
  55453. -int futimens (int __fd, __const struct timespec __times[2]) __THROW;
  55454. -int futimens (int fd, __const struct timespec ts[2])
  55455. +int futimens (int __fd, const struct timespec __times[2]) __THROW;
  55456. +int futimens (int fd, const struct timespec ts[2])
  55457. {
  55458. return utimensat(fd, 0, ts, 0);
  55459. }
  55460. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getdents64.c uClibc-git/libc/sysdeps/linux/common/getdents64.c
  55461. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/getdents64.c 2012-05-15 09:20:09.000000000 +0200
  55462. +++ uClibc-git/libc/sysdeps/linux/common/getdents64.c 2014-06-02 17:40:34.354713866 +0200
  55463. @@ -4,7 +4,11 @@
  55464. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  55465. */
  55466. -#include <features.h>
  55467. +#include <_lfs_64.h>
  55468. +#include <sys/syscall.h>
  55469. +
  55470. +#ifdef __NR_getdents64
  55471. +
  55472. #include <assert.h>
  55473. #include <errno.h>
  55474. #include <dirent.h>
  55475. @@ -13,17 +17,9 @@
  55476. #include <string.h>
  55477. #include <unistd.h>
  55478. #include <sys/param.h>
  55479. -#include <sys/types.h>
  55480. -#include <sys/syscall.h>
  55481. -#include <bits/kernel_types.h>
  55482. +#include <bits/wordsize.h>
  55483. #include <bits/uClibc_alloc.h>
  55484. -#if defined __UCLIBC_HAS_LFS__ && defined __NR_getdents64
  55485. -
  55486. -# ifndef offsetof
  55487. -# define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
  55488. -# endif
  55489. -
  55490. struct kernel_dirent64
  55491. {
  55492. uint64_t d_ino;
  55493. @@ -36,7 +32,6 @@
  55494. # define __NR___syscall_getdents64 __NR_getdents64
  55495. static __inline__ _syscall3(int, __syscall_getdents64, int, fd, unsigned char *, dirp, size_t, count)
  55496. -ssize_t __getdents64 (int fd, char *buf, size_t nbytes) attribute_hidden;
  55497. ssize_t __getdents64 (int fd, char *buf, size_t nbytes)
  55498. {
  55499. struct dirent64 *dp;
  55500. @@ -96,10 +91,10 @@
  55501. return (char *) dp - buf;
  55502. }
  55503. -#if __WORDSIZE == 64
  55504. +#if __WORDSIZE == 64 || (defined __UCLIBC_HAS_LFS__ && !defined __NR_getdents)
  55505. /* since getdents doesnt give us d_type but getdents64 does, try and
  55506. * use getdents64 as much as possible */
  55507. -attribute_hidden strong_alias(__getdents64,__getdents)
  55508. +strong_alias(__getdents64,__getdents)
  55509. #endif
  55510. #endif
  55511. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getdents.c uClibc-git/libc/sysdeps/linux/common/getdents.c
  55512. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/getdents.c 2012-05-15 09:20:09.000000000 +0200
  55513. +++ uClibc-git/libc/sysdeps/linux/common/getdents.c 2014-06-02 17:40:34.354713866 +0200
  55514. @@ -4,21 +4,17 @@
  55515. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  55516. */
  55517. -#include <assert.h>
  55518. -#include <errno.h>
  55519. +#include <sys/syscall.h>
  55520. +#include <bits/wordsize.h>
  55521. +
  55522. +#if !(defined __UCLIBC_HAS_LFS__ && defined __NR_getdents64 && __WORDSIZE == 64)
  55523. +
  55524. #include <dirent.h>
  55525. -#include <stddef.h>
  55526. -#include <stdint.h>
  55527. #include <string.h>
  55528. -#include <unistd.h>
  55529. -#include <sys/param.h>
  55530. #include <sys/types.h>
  55531. -#include <sys/syscall.h>
  55532. #include <bits/kernel_types.h>
  55533. #include <bits/kernel-features.h>
  55534. -#include <bits/uClibc_alloc.h>
  55535. -#if !(defined __UCLIBC_HAS_LFS__ && defined __NR_getdents64 && __WORDSIZE == 64)
  55536. /* If the condition above is met, __getdents is defined as an alias
  55537. * for __getdents64 (see getdents64.c). Otherwise...
  55538. */
  55539. @@ -30,10 +26,7 @@
  55540. * version / arch details.
  55541. */
  55542. -#ifndef offsetof
  55543. -# define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
  55544. -#endif
  55545. -
  55546. +# ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
  55547. struct kernel_dirent
  55548. {
  55549. long int d_ino;
  55550. @@ -41,13 +34,16 @@
  55551. unsigned short int d_reclen;
  55552. char d_name[256];
  55553. };
  55554. +# else
  55555. +# define kernel_dirent dirent
  55556. +# endif
  55557. -ssize_t __getdents (int fd, char *buf, size_t nbytes) attribute_hidden;
  55558. -
  55559. -#define __NR___syscall_getdents __NR_getdents
  55560. +# if defined __NR_getdents
  55561. +# define __NR___syscall_getdents __NR_getdents
  55562. static __always_inline _syscall3(int, __syscall_getdents, int, fd, unsigned char *, kdirp, size_t, count)
  55563. +# endif
  55564. -#if defined __ASSUME_GETDENTS32_D_TYPE
  55565. +# if defined __ASSUME_GETDENTS32_D_TYPE && defined __NR_getdents
  55566. ssize_t __getdents (int fd, char *buf, size_t nbytes)
  55567. {
  55568. @@ -76,7 +72,14 @@
  55569. return retval;
  55570. }
  55571. -#elif ! defined __UCLIBC_HAS_LFS__ || ! defined __NR_getdents64
  55572. +# elif ! defined __UCLIBC_HAS_LFS__ || !defined __NR_getdents64
  55573. +
  55574. +# include <assert.h>
  55575. +# include <stddef.h>
  55576. +# include <errno.h>
  55577. +# include <unistd.h>
  55578. +# include <sys/param.h>
  55579. +# include <bits/uClibc_alloc.h>
  55580. ssize_t __getdents (int fd, char *buf, size_t nbytes)
  55581. {
  55582. @@ -88,6 +91,7 @@
  55583. const size_t size_diff = (offsetof (struct dirent, d_name)
  55584. - offsetof (struct kernel_dirent, d_name));
  55585. +# ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
  55586. red_nbytes = MIN (nbytes - ((nbytes /
  55587. (offsetof (struct dirent, d_name) + 14)) * size_diff),
  55588. nbytes - size_diff);
  55589. @@ -96,6 +100,21 @@
  55590. skdp = kdp = stack_heap_alloc(red_nbytes);
  55591. retval = __syscall_getdents(fd, (unsigned char *)kdp, red_nbytes);
  55592. +# else
  55593. +
  55594. + dp = (struct dirent *) buf;
  55595. + skdp = kdp = stack_heap_alloc(nbytes);
  55596. +
  55597. + retval = INLINE_SYSCALL(getdents64, 3, fd, (unsigned char *)kdp, nbytes);
  55598. + if (retval > 0) {
  55599. + /* Did we overflow? */
  55600. + if (kdp->__pad1 || kdp->__pad2) {
  55601. + __set_errno(EINVAL);
  55602. + return -1;
  55603. + }
  55604. + }
  55605. +# endif
  55606. +
  55607. if (retval == -1) {
  55608. stack_heap_free(skdp);
  55609. return -1;
  55610. @@ -137,9 +156,10 @@
  55611. return (char *) dp - buf;
  55612. }
  55613. -#elif __WORDSIZE == 32
  55614. +# elif __WORDSIZE == 32 && !defined __NR_getdents64
  55615. +
  55616. +# include <stddef.h>
  55617. -extern __typeof(__getdents) __getdents64 attribute_hidden;
  55618. ssize_t __getdents (int fd, char *buf, size_t nbytes)
  55619. {
  55620. struct dirent *dp;
  55621. @@ -165,10 +185,10 @@
  55622. return ret;
  55623. }
  55624. -#endif
  55625. +# endif
  55626. -#if defined __UCLIBC_HAS_LFS__ && ! defined __NR_getdents64
  55627. -attribute_hidden strong_alias(__getdents,__getdents64)
  55628. -#endif
  55629. +# if defined __UCLIBC_HAS_LFS__ && ! defined __NR_getdents64
  55630. +strong_alias(__getdents,__getdents64)
  55631. +# endif
  55632. #endif
  55633. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getdirname.c uClibc-git/libc/sysdeps/linux/common/getdirname.c
  55634. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/getdirname.c 2012-05-15 09:20:09.000000000 +0200
  55635. +++ uClibc-git/libc/sysdeps/linux/common/getdirname.c 2014-06-02 17:40:34.354713866 +0200
  55636. @@ -13,9 +13,8 @@
  55637. Lesser General Public License for more details.
  55638. You should have received a copy of the GNU Lesser General Public
  55639. - License along with the GNU C Library; if not, write to the Free
  55640. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  55641. - 02111-1307 USA. */
  55642. + License along with the GNU C Library; if not, see
  55643. + <http://www.gnu.org/licenses/>. */
  55644. #include <features.h>
  55645. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getgroups.c uClibc-git/libc/sysdeps/linux/common/getgroups.c
  55646. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/getgroups.c 2012-05-15 09:20:09.000000000 +0200
  55647. +++ uClibc-git/libc/sysdeps/linux/common/getgroups.c 2014-06-02 17:40:34.354713866 +0200
  55648. @@ -8,10 +8,7 @@
  55649. */
  55650. #include <sys/syscall.h>
  55651. -#include <stdlib.h>
  55652. #include <unistd.h>
  55653. -#include <grp.h>
  55654. -
  55655. #if defined(__NR_getgroups32)
  55656. # undef __NR_getgroups
  55657. @@ -22,12 +19,14 @@
  55658. _syscall2(int, getgroups, int, size, gid_t *, list)
  55659. #else
  55660. -
  55661. -#define MIN(a,b) (((a)<(b))?(a):(b))
  55662. -
  55663. -#define __NR___syscall_getgroups __NR_getgroups
  55664. -static __inline__ _syscall2(int, __syscall_getgroups,
  55665. - int, size, __kernel_gid_t *, list)
  55666. +# include <errno.h>
  55667. +# include <stdlib.h>
  55668. +# include <sys/types.h>
  55669. +# include <sys/param.h>
  55670. +
  55671. +# define __NR___syscall_getgroups __NR_getgroups
  55672. +static __always_inline
  55673. +_syscall2(int, __syscall_getgroups, int, size, __kernel_gid_t *, list)
  55674. int getgroups(int size, gid_t groups[])
  55675. {
  55676. @@ -56,5 +55,4 @@
  55677. }
  55678. }
  55679. #endif
  55680. -
  55681. libc_hidden_def(getgroups)
  55682. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/get_kernel_syms.c uClibc-git/libc/sysdeps/linux/common/get_kernel_syms.c
  55683. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/get_kernel_syms.c 2012-05-15 09:20:09.000000000 +0200
  55684. +++ uClibc-git/libc/sysdeps/linux/common/get_kernel_syms.c 2014-06-02 17:40:34.354713866 +0200
  55685. @@ -9,8 +9,8 @@
  55686. #include <sys/syscall.h>
  55687. -struct kernel_sym;
  55688. -int get_kernel_syms(struct kernel_sym *table attribute_unused);
  55689. #ifdef __NR_get_kernel_syms
  55690. +struct kernel_sym;
  55691. +int get_kernel_syms(struct kernel_sym *table);
  55692. _syscall1(int, get_kernel_syms, struct kernel_sym *, table)
  55693. #endif
  55694. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getpagesize.c uClibc-git/libc/sysdeps/linux/common/getpagesize.c
  55695. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/getpagesize.c 2012-05-15 09:20:09.000000000 +0200
  55696. +++ uClibc-git/libc/sysdeps/linux/common/getpagesize.c 2014-06-02 17:40:34.354713866 +0200
  55697. @@ -12,16 +12,13 @@
  55698. Lesser General Public License for more details.
  55699. You should have received a copy of the GNU Lesser General Public
  55700. - License along with the GNU C Library; if not, write to the Free
  55701. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  55702. - 02111-1307 USA. */
  55703. + License along with the GNU C Library; if not, see
  55704. + <http://www.gnu.org/licenses/>. */
  55705. #include <unistd.h>
  55706. #include <features.h>
  55707. #include <sys/param.h>
  55708. -extern size_t __pagesize;
  55709. -
  55710. /* Return the system page size. */
  55711. /* couldn't make __getpagesize hidden, because shm.h uses it in a macro */
  55712. extern __typeof(getpagesize) __getpagesize;
  55713. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getrlimit64.c uClibc-git/libc/sysdeps/linux/common/getrlimit64.c
  55714. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/getrlimit64.c 2012-05-15 09:20:09.000000000 +0200
  55715. +++ uClibc-git/libc/sysdeps/linux/common/getrlimit64.c 2014-06-02 17:40:34.354713866 +0200
  55716. @@ -12,20 +12,16 @@
  55717. Lesser General Public License for more details.
  55718. You should have received a copy of the GNU Lesser General Public
  55719. - License along with the GNU C Library; if not, write to the Free
  55720. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  55721. - 02111-1307 USA. */
  55722. + License along with the GNU C Library; if not, see
  55723. + <http://www.gnu.org/licenses/>. */
  55724. #include <_lfs_64.h>
  55725. -
  55726. -#include <sys/types.h>
  55727. -#include <sys/resource.h>
  55728. #include <bits/wordsize.h>
  55729. /* the regular getrlimit will work just fine for 64bit users */
  55730. +#if __WORDSIZE == 32
  55731. -#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 32
  55732. -
  55733. +# include <sys/resource.h>
  55734. /* Put the soft and hard limits for RESOURCE in *RLIMITS.
  55735. Returns 0 if successful, -1 if not (and sets errno). */
  55736. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/getrlimit.c uClibc-git/libc/sysdeps/linux/common/getrlimit.c
  55737. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/getrlimit.c 2012-05-15 09:20:09.000000000 +0200
  55738. +++ uClibc-git/libc/sysdeps/linux/common/getrlimit.c 2014-06-02 17:40:34.354713866 +0200
  55739. @@ -7,12 +7,9 @@
  55740. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  55741. */
  55742. -#define getrlimit64 __hide_getrlimit64
  55743. #include <sys/syscall.h>
  55744. -#include <unistd.h>
  55745. #include <sys/resource.h>
  55746. -#undef getrlimit64
  55747. -
  55748. +#include <bits/wordsize.h>
  55749. /* Only wrap getrlimit if the new ugetrlimit is not present and getrlimit sucks */
  55750. @@ -25,14 +22,14 @@
  55751. struct rlimit *, rlim)
  55752. int getrlimit(__rlimit_resource_t resource, struct rlimit *rlimits)
  55753. {
  55754. - return (__syscall_ugetrlimit(resource, rlimits));
  55755. + return __syscall_ugetrlimit(resource, rlimits);
  55756. }
  55757. #elif !defined(__UCLIBC_HANDLE_OLDER_RLIMIT__)
  55758. /* We don't need to wrap getrlimit() */
  55759. _syscall2(int, getrlimit, __rlimit_resource_t, resource,
  55760. - struct rlimit *, rlim)
  55761. + struct rlimit *, rlim)
  55762. #else
  55763. @@ -59,9 +56,8 @@
  55764. return result;
  55765. }
  55766. #endif
  55767. -
  55768. libc_hidden_def(getrlimit)
  55769. #if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  55770. -strong_alias(getrlimit, getrlimit64)
  55771. +strong_alias_untyped(getrlimit, getrlimit64)
  55772. #endif
  55773. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/gettimeofday.c uClibc-git/libc/sysdeps/linux/common/gettimeofday.c
  55774. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/gettimeofday.c 2012-05-15 09:20:09.000000000 +0200
  55775. +++ uClibc-git/libc/sysdeps/linux/common/gettimeofday.c 2014-06-02 17:40:34.354713866 +0200
  55776. @@ -10,9 +10,5 @@
  55777. #include <sys/syscall.h>
  55778. #include <sys/time.h>
  55779. -#ifdef __USE_BSD
  55780. -_syscall2(int, gettimeofday, struct timeval *, tv, struct timezone *, tz)
  55781. -#else
  55782. -_syscall2(int, gettimeofday, struct timeval *, tv, void *, tz)
  55783. -#endif
  55784. +_syscall2(int, gettimeofday, struct timeval *, tv, __timezone_ptr_t, tz)
  55785. libc_hidden_def(gettimeofday)
  55786. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/hp-timing.h uClibc-git/libc/sysdeps/linux/common/hp-timing.h
  55787. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/hp-timing.h 2012-05-15 09:20:09.000000000 +0200
  55788. +++ uClibc-git/libc/sysdeps/linux/common/hp-timing.h 2014-06-02 17:40:34.354713866 +0200
  55789. @@ -14,9 +14,8 @@
  55790. Lesser General Public License for more details.
  55791. You should have received a copy of the GNU Lesser General Public
  55792. - License along with the GNU C Library; if not, write to the Free
  55793. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  55794. - 02111-1307 USA. */
  55795. + License along with the GNU C Library; if not, see
  55796. + <http://www.gnu.org/licenses/>. */
  55797. #ifndef _HP_TIMING_H
  55798. #define _HP_TIMING_H 1
  55799. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/init_module.c uClibc-git/libc/sysdeps/linux/common/init_module.c
  55800. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/init_module.c 2012-05-15 09:20:09.000000000 +0200
  55801. +++ uClibc-git/libc/sysdeps/linux/common/init_module.c 2014-06-02 17:40:34.354713866 +0200
  55802. @@ -8,12 +8,13 @@
  55803. */
  55804. #include <sys/syscall.h>
  55805. -int init_module(void *first, void *second, void *third, void *fourth, void *fifth);
  55806. +
  55807. #ifdef __NR_init_module
  55808. +int init_module(void *first, void *second, void *third, void *fourth, void *fifth);
  55809. /* This may have 5 arguments (for old 2.0 kernels) or 2 arguments
  55810. * (for 2.2 and 2.4 kernels). Use the greatest common denominator,
  55811. * and let the kernel cope with whatever it gets. It's good at that. */
  55812. _syscall5(int, init_module, void *, first, void *, second, void *, third,
  55813. - void *, fourth, void *, fifth)
  55814. + void *, fourth, void *, fifth)
  55815. #endif
  55816. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/inotify.c uClibc-git/libc/sysdeps/linux/common/inotify.c
  55817. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/inotify.c 2012-05-15 09:20:09.000000000 +0200
  55818. +++ uClibc-git/libc/sysdeps/linux/common/inotify.c 2014-06-02 17:40:34.354713866 +0200
  55819. @@ -19,6 +19,13 @@
  55820. _syscall1(int, inotify_init1, int, flags)
  55821. #endif
  55822. +#if defined __NR_inotify_init1 && !defined __NR_inotify_init
  55823. +int inotify_init(void)
  55824. +{
  55825. + return INLINE_SYSCALL(inotify_init1, 1, 0);
  55826. +}
  55827. +#endif
  55828. +
  55829. #ifdef __NR_inotify_add_watch
  55830. _syscall3(int, inotify_add_watch, int, fd, const char *, path, uint32_t, mask)
  55831. #endif
  55832. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ioctl.c uClibc-git/libc/sysdeps/linux/common/ioctl.c
  55833. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ioctl.c 2012-05-15 09:20:09.000000000 +0200
  55834. +++ uClibc-git/libc/sysdeps/linux/common/ioctl.c 2014-06-02 17:40:34.354713866 +0200
  55835. @@ -10,14 +10,7 @@
  55836. #include <sys/syscall.h>
  55837. #include <stdarg.h>
  55838. #include <sys/ioctl.h>
  55839. -
  55840. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  55841. -#include <sysdep-cancel.h>
  55842. -#else
  55843. -#define SINGLE_THREAD_P 1
  55844. -#endif
  55845. -
  55846. -libc_hidden_proto(ioctl)
  55847. +#include <cancel.h>
  55848. #define __NR___syscall_ioctl __NR_ioctl
  55849. static __always_inline
  55850. @@ -30,17 +23,16 @@
  55851. va_start(list, request);
  55852. arg = va_arg(list, void *);
  55853. -
  55854. va_end(list);
  55855. if (SINGLE_THREAD_P)
  55856. return __syscall_ioctl(fd, request, arg);
  55857. -
  55858. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  55859. +#ifdef __NEW_THREADS
  55860. int oldtype = LIBC_CANCEL_ASYNC ();
  55861. int result = __syscall_ioctl(fd, request, arg);
  55862. LIBC_CANCEL_RESET (oldtype);
  55863. return result;
  55864. #endif
  55865. }
  55866. -libc_hidden_def(ioctl)
  55867. +lt_strong_alias(ioctl)
  55868. +lt_libc_hidden(ioctl)
  55869. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ioperm.c uClibc-git/libc/sysdeps/linux/common/ioperm.c
  55870. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ioperm.c 2012-05-15 09:20:09.000000000 +0200
  55871. +++ uClibc-git/libc/sysdeps/linux/common/ioperm.c 2014-06-02 17:40:34.354713866 +0200
  55872. @@ -13,10 +13,6 @@
  55873. /* psm: can't #include <sys/io.h>, some archs miss it */
  55874. extern int ioperm(unsigned long __from, unsigned long __num, int __turn_on) __THROW;
  55875. -/* Not needed internally;
  55876. -libc_hidden_proto(ioperm)
  55877. -*/
  55878. _syscall3(int, ioperm, unsigned long, from, unsigned long, num, int, turn_on)
  55879. -/*libc_hidden_def(ioperm)*/
  55880. #endif
  55881. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/common/jmpbuf-offsets.h
  55882. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  55883. +++ uClibc-git/libc/sysdeps/linux/common/jmpbuf-offsets.h 2014-06-02 17:40:34.354713866 +0200
  55884. @@ -0,0 +1,6 @@
  55885. +/* Private macros for accessing __jmp_buf contents. dummy version. */
  55886. +/*
  55887. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  55888. + *
  55889. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  55890. + */
  55891. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/lchown.c uClibc-git/libc/sysdeps/linux/common/lchown.c
  55892. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/lchown.c 2012-05-15 09:20:09.000000000 +0200
  55893. +++ uClibc-git/libc/sysdeps/linux/common/lchown.c 2014-06-02 17:40:34.354713866 +0200
  55894. @@ -11,17 +11,26 @@
  55895. #include <unistd.h>
  55896. #include <bits/wordsize.h>
  55897. -#if (__WORDSIZE == 32 && defined(__NR_lchown32)) || __WORDSIZE == 64
  55898. -# ifdef __NR_lchown32
  55899. -# undef __NR_lchown
  55900. -# define __NR_lchown __NR_lchown32
  55901. -# endif
  55902. +#if defined __NR_fchownat && !defined __NR_lchown
  55903. +# include <fcntl.h>
  55904. +int lchown(const char *path, uid_t owner, gid_t group)
  55905. +{
  55906. + return fchownat(AT_FDCWD, path, owner, group, AT_SYMLINK_NOFOLLOW);
  55907. +}
  55908. +
  55909. +#else
  55910. +
  55911. +# if (__WORDSIZE == 32 && defined(__NR_lchown32)) || __WORDSIZE == 64
  55912. +# ifdef __NR_lchown32
  55913. +# undef __NR_lchown
  55914. +# define __NR_lchown __NR_lchown32
  55915. +# endif
  55916. _syscall3(int, lchown, const char *, path, uid_t, owner, gid_t, group)
  55917. -#else
  55918. +# else
  55919. -# define __NR___syscall_lchown __NR_lchown
  55920. +# define __NR___syscall_lchown __NR_lchown
  55921. static __inline__ _syscall3(int, __syscall_lchown, const char *, path,
  55922. __kernel_uid_t, owner, __kernel_gid_t, group)
  55923. @@ -35,4 +44,6 @@
  55924. return __syscall_lchown(path, owner, group);
  55925. }
  55926. +# endif
  55927. +
  55928. #endif
  55929. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/linkat.c uClibc-git/libc/sysdeps/linux/common/linkat.c
  55930. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/linkat.c 2012-05-15 09:20:09.000000000 +0200
  55931. +++ uClibc-git/libc/sysdeps/linux/common/linkat.c 2014-06-02 17:40:34.354713866 +0200
  55932. @@ -11,6 +11,7 @@
  55933. #ifdef __NR_linkat
  55934. _syscall5(int, linkat, int, fromfd, const char *, from, int, tofd, const char *, to, int, flags)
  55935. +libc_hidden_def(linkat)
  55936. #else
  55937. /* should add emulation with link() and /proc/self/fd/ ... */
  55938. #endif
  55939. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/link.c uClibc-git/libc/sysdeps/linux/common/link.c
  55940. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/link.c 2012-05-15 09:20:09.000000000 +0200
  55941. +++ uClibc-git/libc/sysdeps/linux/common/link.c 2014-06-02 17:40:34.354713866 +0200
  55942. @@ -9,4 +9,13 @@
  55943. #include <sys/syscall.h>
  55944. #include <unistd.h>
  55945. +
  55946. +#if defined __NR_linkat && !defined __NR_link
  55947. +# include <fcntl.h>
  55948. +int link(const char *oldpath, const char *newpath)
  55949. +{
  55950. + return linkat(AT_FDCWD, oldpath, AT_FDCWD, newpath, 0);
  55951. +}
  55952. +#else
  55953. _syscall2(int, link, const char *, oldpath, const char *, newpath)
  55954. +#endif
  55955. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/llseek.c uClibc-git/libc/sysdeps/linux/common/llseek.c
  55956. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/llseek.c 2012-05-15 09:20:09.000000000 +0200
  55957. +++ uClibc-git/libc/sysdeps/linux/common/llseek.c 2014-06-02 17:40:34.354713866 +0200
  55958. @@ -7,36 +7,26 @@
  55959. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  55960. */
  55961. -#include <unistd.h>
  55962. -#include <sys/types.h>
  55963. +#include <_lfs_64.h>
  55964. #include <sys/syscall.h>
  55965. +#include <bits/wordsize.h>
  55966. /* Newer kernel ports have llseek() instead of _llseek() */
  55967. #if !defined __NR__llseek && defined __NR_llseek
  55968. # define __NR__llseek __NR_llseek
  55969. #endif
  55970. -#if defined __NR__llseek && defined __UCLIBC_HAS_LFS__
  55971. -
  55972. -loff_t lseek64(int fd, loff_t offset, int whence)
  55973. -{
  55974. - loff_t result;
  55975. - return (loff_t)(INLINE_SYSCALL(_llseek, 5, fd, (off_t) (offset >> 32),
  55976. - (off_t) (offset & 0xffffffff), &result, whence) ?: result);
  55977. -}
  55978. -
  55979. -#else
  55980. -
  55981. -loff_t lseek64(int fd, loff_t offset, int whence)
  55982. +#if defined __NR__llseek && __WORDSIZE == 32
  55983. +# include <unistd.h>
  55984. +# include <endian.h>
  55985. +# include <cancel.h>
  55986. +off64_t __NC(lseek64)(int fd, off64_t offset, int whence)
  55987. {
  55988. - return (loff_t)(lseek(fd, (off_t) (offset), whence));
  55989. + off64_t result;
  55990. + /* do we not need to handle the offset with __LONG_LONG_PAIR depending on endianness? */
  55991. + return (off64_t)INLINE_SYSCALL(_llseek, 5, fd, (off_t) OFF64_HI(offset),
  55992. + (off_t) OFF64_LO(offset), &result, whence) ?: result;
  55993. }
  55994. -
  55995. -#endif
  55996. -
  55997. -#ifndef __LINUXTHREADS_OLD__
  55998. -libc_hidden_def(lseek64)
  55999. -#else
  56000. -libc_hidden_weak(lseek64)
  56001. -strong_alias(lseek64,__libc_lseek64)
  56002. +CANCELLABLE_SYSCALL(off64_t, lseek64, (int fd, off64_t offset, int whence), (fd, offset, whence))
  56003. +lt_libc_hidden(lseek64)
  56004. #endif
  56005. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/longjmp.c uClibc-git/libc/sysdeps/linux/common/longjmp.c
  56006. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/longjmp.c 2012-05-15 09:20:09.000000000 +0200
  56007. +++ uClibc-git/libc/sysdeps/linux/common/longjmp.c 2014-06-02 17:40:34.354713866 +0200
  56008. @@ -12,23 +12,13 @@
  56009. Lesser General Public License for more details.
  56010. You should have received a copy of the GNU Lesser General Public
  56011. - License along with the GNU C Library; if not, write to the Free
  56012. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  56013. - 02111-1307 USA. */
  56014. + License along with the GNU C Library; if not, see
  56015. + <http://www.gnu.org/licenses/>. */
  56016. #include <stddef.h>
  56017. #include <setjmp.h>
  56018. #include <signal.h>
  56019. -
  56020. -extern void __longjmp (__jmp_buf __env, int __val) attribute_noreturn;
  56021. -libc_hidden_proto(__longjmp)
  56022. -
  56023. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  56024. -extern void _longjmp_unwind (jmp_buf env, int val);
  56025. -#endif
  56026. -
  56027. -extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
  56028. /* Set the signal mask to the one specified in ENV, and jump
  56029. to the position specified in ENV, causing the setjmp
  56030. call there to return VAL, or 1 if VAL is 0. */
  56031. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/lseek.c uClibc-git/libc/sysdeps/linux/common/lseek.c
  56032. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/lseek.c 2012-05-15 09:20:09.000000000 +0200
  56033. +++ uClibc-git/libc/sysdeps/linux/common/lseek.c 2014-06-02 17:40:34.354713866 +0200
  56034. @@ -9,19 +9,55 @@
  56035. #include <sys/syscall.h>
  56036. #include <unistd.h>
  56037. +#include <cancel.h>
  56038. #ifdef __NR_lseek
  56039. -_syscall3(__off_t, lseek, int, fildes, __off_t, offset, int, whence)
  56040. +# define __NR___lseek_nocancel __NR_lseek
  56041. +_syscall3(off_t, __NC(lseek), int, fd, off_t, offset, int, whence)
  56042. +/* Use lseek64 if __NR_lseek is not defined but UCLIBC_HAS_LFS is enabled */
  56043. +#elif !defined __NR_lseek && defined __NR_llseek
  56044. +#include <endian.h>
  56045. +off_t __NC(lseek)(int fd, off_t offset, int whence)
  56046. +{
  56047. +#if defined __UCLIBC_HAS_LFS__
  56048. + return lseek64(fd, offset, whence);
  56049. +#elif __WORDSIZE == 32
  56050. + __off64_t result;
  56051. + __off_t high = 0;
  56052. + return INLINE_SYSCALL(llseek, 5, fd,
  56053. + __LONG_LONG_PAIR(high, offset),
  56054. + &result, whence) ?: result;
  56055. +#endif
  56056. +/* No need to handle __WORDSIZE == 64 as such a kernel won't define __NR_llseek */
  56057. +}
  56058. #else
  56059. -
  56060. -__off_t lseek(int fildes, __off_t offset, int whence)
  56061. +# include <errno.h>
  56062. +off_t __NC(lseek)(int fd, off_t offset attribute_unused, int whence)
  56063. {
  56064. - return lseek64(fildes, offset, whence);
  56065. + if (fd < 0) {
  56066. + __set_errno(EBADF);
  56067. + return -1;
  56068. + }
  56069. +
  56070. + switch(whence) {
  56071. + case SEEK_SET:
  56072. + case SEEK_CUR:
  56073. + case SEEK_END:
  56074. + break;
  56075. + default:
  56076. + __set_errno(EINVAL);
  56077. + return -1;
  56078. + }
  56079. +
  56080. + __set_errno(ENOSYS);
  56081. + return -1;
  56082. }
  56083. #endif
  56084. -#ifndef __LINUXTHREADS_OLD__
  56085. -libc_hidden_def(lseek)
  56086. -#else
  56087. -libc_hidden_weak(lseek)
  56088. -strong_alias(lseek,__libc_lseek)
  56089. +CANCELLABLE_SYSCALL(off_t, lseek, (int fd, off_t offset, int whence), (fd, offset, whence))
  56090. +lt_libc_hidden(lseek)
  56091. +#if defined __UCLIBC_HAS_LFS__ && (__WORDSIZE == 64 || (!defined __NR__llseek && !defined __NR_llseek))
  56092. +strong_alias_untyped(__NC(lseek),__NC(lseek64))
  56093. +strong_alias_untyped(lseek,lseek64)
  56094. +lt_strong_alias(lseek64)
  56095. +lt_libc_hidden(lseek64)
  56096. #endif
  56097. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/lstat64.c uClibc-git/libc/sysdeps/linux/common/lstat64.c
  56098. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/lstat64.c 2012-05-15 09:20:09.000000000 +0200
  56099. +++ uClibc-git/libc/sysdeps/linux/common/lstat64.c 2014-06-02 17:40:34.354713866 +0200
  56100. @@ -7,17 +7,27 @@
  56101. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  56102. */
  56103. +#include <_lfs_64.h>
  56104. #include <sys/syscall.h>
  56105. -#if defined __UCLIBC_HAS_LFS__ && defined __NR_lstat64
  56106. # include <unistd.h>
  56107. # include <sys/stat.h>
  56108. -# include "xstatconv.h"
  56109. +#if defined __NR_fstatat64 && !defined __NR_lstat64
  56110. +# include <fcntl.h>
  56111. +
  56112. +int lstat64(const char *file_name, struct stat64 *buf)
  56113. +{
  56114. + return fstatat64(AT_FDCWD, file_name, buf, AT_SYMLINK_NOFOLLOW);
  56115. +}
  56116. +libc_hidden_def(lstat64)
  56117. +/* For systems which have both, prefer the old one */
  56118. +#elif defined __NR_lstat64
  56119. +# include "xstatconv.h"
  56120. # define __NR___syscall_lstat64 __NR_lstat64
  56121. -static __inline__ _syscall2(int, __syscall_lstat64, const char *, file_name,
  56122. - struct kernel_stat64 *, buf)
  56123. +static __always_inline _syscall2(int, __syscall_lstat64, const char *, file_name,
  56124. + struct kernel_stat64 *, buf)
  56125. int lstat64(const char *file_name, struct stat64 *buf)
  56126. {
  56127. @@ -31,5 +41,4 @@
  56128. return result;
  56129. }
  56130. libc_hidden_def(lstat64)
  56131. -
  56132. #endif
  56133. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/lstat.c uClibc-git/libc/sysdeps/linux/common/lstat.c
  56134. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/lstat.c 2012-05-15 09:20:09.000000000 +0200
  56135. +++ uClibc-git/libc/sysdeps/linux/common/lstat.c 2014-06-02 17:40:34.354713866 +0200
  56136. @@ -10,12 +10,23 @@
  56137. #include <sys/syscall.h>
  56138. #include <unistd.h>
  56139. #include <sys/stat.h>
  56140. -#include "xstatconv.h"
  56141. +
  56142. +#if defined __NR_fstatat64 && !defined __NR_lstat
  56143. +# include <fcntl.h>
  56144. int lstat(const char *file_name, struct stat *buf)
  56145. {
  56146. + return fstatat(AT_FDCWD, file_name, buf, AT_SYMLINK_NOFOLLOW);
  56147. +}
  56148. +libc_hidden_def(lstat)
  56149. +
  56150. +/* For systems which have both, prefer the old one */
  56151. +#else
  56152. +# include "xstatconv.h"
  56153. +int lstat(const char *file_name, struct stat *buf)
  56154. +{
  56155. int result;
  56156. -#ifdef __NR_lstat64
  56157. +# ifdef __NR_lstat64
  56158. /* normal stat call has limited values for various stat elements
  56159. * e.g. uid device major/minor etc.
  56160. * so we use 64 variant if available
  56161. @@ -26,19 +37,22 @@
  56162. if (result == 0) {
  56163. __xstat32_conv(&kbuf, buf);
  56164. }
  56165. -#else
  56166. +# else
  56167. struct kernel_stat kbuf;
  56168. result = INLINE_SYSCALL(lstat, 2, file_name, &kbuf);
  56169. if (result == 0) {
  56170. __xstat_conv(&kbuf, buf);
  56171. }
  56172. -#endif
  56173. +# endif /* __NR_lstat64 */
  56174. return result;
  56175. }
  56176. libc_hidden_def(lstat)
  56177. -#if ! defined __NR_lstat64 && defined __UCLIBC_HAS_LFS__
  56178. +# if ! defined __NR_fstatat64 && ! defined __NR_lstat64 \
  56179. + && defined __UCLIBC_HAS_LFS__
  56180. strong_alias_untyped(lstat,lstat64)
  56181. libc_hidden_def(lstat64)
  56182. -#endif
  56183. +# endif
  56184. +
  56185. +#endif /* __NR_fstatat64 */
  56186. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/Makefile.in uClibc-git/libc/sysdeps/linux/common/Makefile.in
  56187. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  56188. +++ uClibc-git/libc/sysdeps/linux/common/Makefile.in 2014-06-02 17:40:34.338713778 +0200
  56189. @@ -23,6 +23,7 @@
  56190. bdflush.c \
  56191. capget.c \
  56192. capset.c \
  56193. + dup3.c \
  56194. eventfd.c \
  56195. inotify.c \
  56196. ioperm.c \
  56197. @@ -64,24 +65,30 @@
  56198. # NPTL needs these internally: madvise.c
  56199. CSRC-$(findstring y,$(UCLIBC_LINUX_SPECIFIC)$(UCLIBC_HAS_THREADS_NATIVE)) += madvise.c
  56200. ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  56201. -CSRC- += fork.c getpid.c raise.c open.c close.c read.c write.c
  56202. +CSRC- += fork.c getpid.c raise.c #open.c close.c read.c write.c
  56203. CSRC- += $(if $(findstring =arm=,=$(TARGET_ARCH)=),vfork.c)
  56204. CSRC- += $(if $(findstring =x86_64=,=$(TARGET_ARCH)=),vfork.c)
  56205. -CSRC- += $(if $(findstring =mips=y=,=$(TARGET_ARCH)=$(CONFIG_MIPS_O32_ABI)=),waitpid.c)
  56206. +#CSRC- += $(if $(findstring =mips=y=,=$(TARGET_ARCH)=$(CONFIG_MIPS_O32_ABI)=),waitpid.c)
  56207. +CSRC- += $(if $(findstring =metag=,=$(TARGET_ARCH)=),vfork.c)
  56208. +endif
  56209. +ifneq ($(ARCH_HAS_DEPRECATED_SYSCALLS),y)
  56210. +# No conversion is needed for new architectures
  56211. +CSRC- += xstatconv.c
  56212. endif
  56213. # stubbed out in mman.h
  56214. CSRC-$(ARCH_USE_MMU) += msync.c
  56215. # we need these internally: getdomainname.c
  56216. CSRC-$(UCLIBC_BSD_SPECIFIC) += mincore.c setdomainname.c
  56217. CSRC-$(UCLIBC_NTP_LEGACY) += ntp_gettime.c
  56218. -# aio_cancel|aio_error|aio_fsync|aio_read|aio_return|aio_suspend|aio_write|clock_getres|clock_gettime|clock_settime|clock_settime|fdatasync|lio_listio|mlockall|munlockall|mlock|munlock|mq_close|mq_getattr|mq_notify|mq_open|mq_receive|mq_timedreceive|mq_send|mq_timedsend|mq_setattr|mq_unlink|nanosleep|sched_getparam|sched_get_priority_max|sched_get_priority_min|sched_getscheduler|sched_rr_get_interval|sched_setparam|sched_setscheduler|sem_close|sem_destroy|sem_getvalue|sem_init|sem_open|sem_post|sem_trywait|sem_wait|sem_unlink|sem_wait|shm_open|shm_unlink|sigqueue|sigtimedwait|sigwaitinfo|sigwaitinfo|timer_create|timer_delete|timer_getoverrun|timer_gettime|timer_settime
  56219. +# aio_cancel|aio_error|aio_fsync|aio_read|aio_return|aio_suspend|aio_write|clock_getres|clock_gettime|clock_settime|clock_settime|fdatasync|lio_listio|mlockall|munlockall|mlock|munlock|mq_close|mq_getattr|mq_notify|mq_open|mq_receive|mq_timedreceive|mq_send|mq_timedsend|mq_setattr|mq_unlink|nanosleep|sched_getparam|sched_get_priority_max|sched_get_priority_min|sched_getscheduler|sched_rr_get_interval|sched_setparam|sched_setscheduler|sem_close|sem_destroy|sem_getvalue|sem_init|sem_open|sem_post|sem_trywait|sem_wait|sem_unlink|sem_wait|shm_open|shm_unlink|sigqueue|sigtimedwait|sigwaitinfo|timer_create|timer_delete|timer_getoverrun|timer_gettime|timer_settime
  56220. CSRC-$(UCLIBC_HAS_REALTIME) += clock_getres.c clock_gettime.c clock_settime.c \
  56221. fdatasync.c mlockall.c mlock.c munlockall.c munlock.c \
  56222. nanosleep.c __rt_sigtimedwait.c __rt_sigwaitinfo.c sched_getparam.c \
  56223. sched_get_priority_max.c sched_get_priority_min.c sched_getscheduler.c \
  56224. sched_rr_get_interval.c sched_setparam.c sched_setscheduler.c sigqueue.c
  56225. # clock_getcpuclockid|clock_nanosleep|mq_timedreceive|mq_timedsend|posix_fadvise|posix_fallocate|posix_madvise|posix_memalign|posix_mem_offset|posix_spawnattr_destroy|posix_spawnattr_init|posix_spawnattr_getflags|posix_spawnattr_setflags|posix_spawnattr_getpgroup|posix_spawnattr_setpgroup|posix_spawnattr_getschedparam|posix_spawnattr_setschedparam|posix_spawnattr_getschedpolicy|posix_spawnattr_setschedpolicy|posix_spawnattr_getsigdefault|posix_spawnattr_setsigdefault|posix_spawnattr_getsigmask|posix_spawnattr_setsigmask|posix_spawnattr_init|posix_spawnattr_setflags|posix_spawnattr_setpgroup|posix_spawnattr_setschedparam|posix_spawnattr_setschedpolicy|posix_spawnattr_setsigdefault|posix_spawnattr_setsigmask|posix_spawn_file_actions_addclose|posix_spawn_file_actions_addopen|posix_spawn_file_actions_adddup2|posix_spawn_file_actions_addopen|posix_spawn_file_actions_destroy|posix_spawn_file_actions_init|posix_spawn_file_actions_init|posix_spawn|posix_spawnp|posix_spawnp|posix_typed_mem_get_info|pthread_mutex_timedlock|sem_timedwait
  56226. -CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.c posix_fadvise.c
  56227. +CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise64.c posix_fadvise.c posix_madvise.c \
  56228. + posix_fallocate.c posix_fallocate64.c
  56229. CSRC-$(UCLIBC_SUSV4_LEGACY) += utime.c
  56230. CSRC-$(UCLIBC_HAS_EPOLL) += epoll.c
  56231. CSRC-$(UCLIBC_HAS_XATTR) += xattr.c
  56232. @@ -96,11 +103,11 @@
  56233. # provided via pthreads builddir
  56234. CSRC-y := $(filter-out $(libc_a_CSRC) $(notdir $(libpthread_libc_OBJS:.o=.c)),$(CSRC-y))
  56235. -SSRC := $(filter-out $(libc_a_SSRC) $(notdir $(libpthread_libc_OBJS:.o=.S)),$(SSRC))
  56236. +SSRC-y := $(filter-out $(libc_a_SSRC) $(notdir $(libpthread_libc_OBJS:.o=.S)),$(SSRC-y))
  56237. # fails for some reason
  56238. -ifneq ($(strip $(ARCH_OBJS)),)
  56239. -CSRC-y := $(filter-out $(notdir $(ARCH_OBJS:.o=.c)) $(ARCH_OBJ_FILTEROUT),$(CSRC-y))
  56240. +ifneq ($(strip $(ARCH_OBJS-y)),)
  56241. +CSRC-y := $(filter-out $(notdir $(ARCH_OBJS-y:.o=.c)) $(ARCH_OBJ_FILTEROUT-y),$(CSRC-y))
  56242. endif
  56243. CFLAGS-ssp.c := $(SSP_DISABLE_FLAGS)
  56244. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mkdirat.c uClibc-git/libc/sysdeps/linux/common/mkdirat.c
  56245. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/mkdirat.c 2012-05-15 09:20:09.000000000 +0200
  56246. +++ uClibc-git/libc/sysdeps/linux/common/mkdirat.c 2014-06-02 17:40:34.354713866 +0200
  56247. @@ -11,6 +11,7 @@
  56248. #ifdef __NR_mkdirat
  56249. _syscall3(int, mkdirat, int, fd, const char *, path, mode_t, mode)
  56250. +libc_hidden_def(mkdirat)
  56251. #else
  56252. /* should add emulation with mkdir() and /proc/self/fd/ ... */
  56253. #endif
  56254. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mkdir.c uClibc-git/libc/sysdeps/linux/common/mkdir.c
  56255. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/mkdir.c 2012-05-15 09:20:09.000000000 +0200
  56256. +++ uClibc-git/libc/sysdeps/linux/common/mkdir.c 2014-06-02 17:40:34.354713866 +0200
  56257. @@ -10,8 +10,15 @@
  56258. #include <sys/syscall.h>
  56259. #include <sys/stat.h>
  56260. +#if defined __NR_mkdirat && !defined __NR_mkdir
  56261. +# include <fcntl.h>
  56262. +int mkdir(const char *pathname, mode_t mode)
  56263. +{
  56264. + return mkdirat(AT_FDCWD, pathname, mode);
  56265. +}
  56266. -#define __NR___syscall_mkdir __NR_mkdir
  56267. +#else
  56268. +# define __NR___syscall_mkdir __NR_mkdir
  56269. static __inline__ _syscall2(int, __syscall_mkdir, const char *, pathname,
  56270. __kernel_mode_t, mode)
  56271. @@ -19,4 +26,5 @@
  56272. {
  56273. return (__syscall_mkdir(pathname, mode));
  56274. }
  56275. +#endif
  56276. libc_hidden_def(mkdir)
  56277. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mkfifo.c uClibc-git/libc/sysdeps/linux/common/mkfifo.c
  56278. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/mkfifo.c 2012-05-15 09:20:09.000000000 +0200
  56279. +++ uClibc-git/libc/sysdeps/linux/common/mkfifo.c 2014-06-02 17:40:34.354713866 +0200
  56280. @@ -12,9 +12,8 @@
  56281. Lesser General Public License for more details.
  56282. You should have received a copy of the GNU Lesser General Public
  56283. - License along with the GNU C Library; if not, write to the Free
  56284. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  56285. - 02111-1307 USA. */
  56286. + License along with the GNU C Library; if not, see
  56287. + <http://www.gnu.org/licenses/>. */
  56288. #include <errno.h>
  56289. #include <stddef.h>
  56290. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mknod.c uClibc-git/libc/sysdeps/linux/common/mknod.c
  56291. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/mknod.c 2012-05-15 09:20:09.000000000 +0200
  56292. +++ uClibc-git/libc/sysdeps/linux/common/mknod.c 2014-06-02 17:40:34.354713866 +0200
  56293. @@ -10,6 +10,13 @@
  56294. #include <sys/syscall.h>
  56295. #include <sys/stat.h>
  56296. +#if defined __NR_mknodat && !defined __NR_mknod
  56297. +# include <fcntl.h>
  56298. +int mknod(const char *path, mode_t mode, dev_t dev)
  56299. +{
  56300. + return mknodat(AT_FDCWD, path, mode, dev);
  56301. +}
  56302. +#else
  56303. int mknod(const char *path, mode_t mode, dev_t dev)
  56304. {
  56305. unsigned long long int k_dev;
  56306. @@ -19,4 +26,5 @@
  56307. return INLINE_SYSCALL(mknod, 3, path, mode, (unsigned int)k_dev);
  56308. }
  56309. +#endif
  56310. libc_hidden_def(mknod)
  56311. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mmap64.c uClibc-git/libc/sysdeps/linux/common/mmap64.c
  56312. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/mmap64.c 2012-05-15 09:20:09.000000000 +0200
  56313. +++ uClibc-git/libc/sysdeps/linux/common/mmap64.c 2014-06-02 17:40:34.358713889 +0200
  56314. @@ -6,18 +6,12 @@
  56315. /* Massivly hacked up for uClibc by Erik Andersen */
  56316. #include <_lfs_64.h>
  56317. -
  56318. -#ifdef __UCLIBC_HAS_LFS__
  56319. -
  56320. -#include <errno.h>
  56321. #include <stdint.h>
  56322. -#include <unistd.h>
  56323. -#include <sys/mman.h>
  56324. #include <sys/syscall.h>
  56325. -#include <bits/uClibc_page.h>
  56326. -
  56327. +#include <errno.h>
  56328. +#include <sys/mman.h>
  56329. -# if !defined __NR_mmap2
  56330. +#ifndef __NR_mmap2
  56331. /*
  56332. * This version is a stub that just chops off everything at the mmap 32 bit
  56333. @@ -27,7 +21,7 @@
  56334. *
  56335. */
  56336. -__ptr_t mmap64(__ptr_t addr, size_t len, int prot, int flags, int fd, __off64_t offset)
  56337. +void *mmap64(void *addr, size_t len, int prot, int flags, int fd, __off64_t offset)
  56338. {
  56339. if (offset != (off_t) offset ||
  56340. (offset + len) != (off_t) (offset + len)) {
  56341. @@ -38,17 +32,18 @@
  56342. return mmap(addr, len, prot, flags, fd, (off_t) offset);
  56343. }
  56344. -# else
  56345. +#else
  56346. +# include <bits/uClibc_page.h>
  56347. -/* Some architectures always use 12 as page shift for mmap2() eventhough the
  56348. +/* Some architectures always use 12 as page shift for mmap2() even though the
  56349. * real PAGE_SHIFT != 12. Other architectures use the same value as
  56350. * PAGE_SHIFT...
  56351. */
  56352. -# ifndef MMAP2_PAGE_SHIFT
  56353. -# define MMAP2_PAGE_SHIFT 12
  56354. -# endif
  56355. +# ifndef MMAP2_PAGE_SHIFT
  56356. +# define MMAP2_PAGE_SHIFT 12
  56357. +# endif
  56358. -__ptr_t mmap64(__ptr_t addr, size_t len, int prot, int flags, int fd, __off64_t offset)
  56359. +void *mmap64(void *addr, size_t len, int prot, int flags, int fd, __off64_t offset)
  56360. {
  56361. /*
  56362. * Some arches check the size in INLINE_SYSCALL() and barf if it's
  56363. @@ -73,8 +68,7 @@
  56364. */
  56365. sysoff = (uint64_t)offset >> MMAP2_PAGE_SHIFT;
  56366. - return (__ptr_t) INLINE_SYSCALL(mmap2, 6, addr, len, prot, flags, fd, sysoff);
  56367. + return (void*) INLINE_SYSCALL(mmap2, 6, addr, len, prot, flags, fd, sysoff);
  56368. }
  56369. -# endif
  56370. -#endif /* __UCLIBC_HAS_LFS__ */
  56371. +#endif
  56372. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mmap.c uClibc-git/libc/sysdeps/linux/common/mmap.c
  56373. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/mmap.c 2012-05-15 09:20:09.000000000 +0200
  56374. +++ uClibc-git/libc/sysdeps/linux/common/mmap.c 2014-06-02 17:40:34.358713889 +0200
  56375. @@ -7,25 +7,57 @@
  56376. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  56377. */
  56378. -#include <sys/syscall.h>
  56379. -#include <unistd.h>
  56380. #include <sys/mman.h>
  56381. -#include <bits/uClibc_page.h>
  56382. +#include <sys/syscall.h>
  56383. -#ifdef __NR_mmap
  56384. +#if defined __UCLIBC_MMAP_HAS_6_ARGS__ && defined __NR_mmap
  56385. +# ifndef _syscall6
  56386. +# error disable __UCLIBC_MMAP_HAS_6_ARGS__ for this arch
  56387. +# endif
  56388. -#ifdef __UCLIBC_MMAP_HAS_6_ARGS__
  56389. +# define __NR__mmap __NR_mmap
  56390. +static _syscall6(void *, _mmap, void *, addr, size_t, len,
  56391. + int, prot, int, flags, int, fd, __off_t, offset)
  56392. -_syscall6(void *, mmap, void *, start, size_t, length,
  56393. - int, prot, int, flags, int, fd, off_t, offset)
  56394. +#elif defined __NR_mmap2 && defined _syscall6
  56395. -#else
  56396. +# include <errno.h>
  56397. +# include <bits/uClibc_page.h>
  56398. +# ifndef MMAP2_PAGE_SHIFT
  56399. +# define MMAP2_PAGE_SHIFT 12
  56400. +# endif
  56401. -# define __NR__mmap __NR_mmap
  56402. -static __inline__ _syscall1(__ptr_t, _mmap, unsigned long *, buffer)
  56403. -__ptr_t mmap(__ptr_t addr, size_t len, int prot,
  56404. - int flags, int fd, __off_t offset)
  56405. +# define __NR___syscall_mmap2 __NR_mmap2
  56406. +static __inline__ _syscall6(void *, __syscall_mmap2, void *, addr, size_t, len,
  56407. + int, prot, int, flags, int, fd, __off_t, offset)
  56408. +
  56409. +static void *_mmap(void *addr, size_t len, int prot, int flags,
  56410. + int fd, __off_t offset)
  56411. +{
  56412. + const int mmap2_shift = MMAP2_PAGE_SHIFT;
  56413. + const __off_t mmap2_mask = ((__off_t) 1 << MMAP2_PAGE_SHIFT) - 1;
  56414. + /* check if offset is page aligned */
  56415. + if (offset & mmap2_mask) {
  56416. + __set_errno(EINVAL);
  56417. + return MAP_FAILED;
  56418. + }
  56419. +# ifdef __USE_FILE_OFFSET64
  56420. + return __syscall_mmap2(addr, len, prot, flags, fd,
  56421. + ((__u_quad_t) offset >> mmap2_shift));
  56422. +# else
  56423. + return __syscall_mmap2(addr, len, prot, flags, fd,
  56424. + ((__u_long) offset >> mmap2_shift));
  56425. +# endif
  56426. +}
  56427. +
  56428. +#elif defined __NR_mmap
  56429. +
  56430. +# define __NR___syscall_mmap __NR_mmap
  56431. +static __inline__ _syscall1(void *, __syscall_mmap, unsigned long *, buffer)
  56432. +
  56433. +static void *_mmap(void *addr, size_t len, int prot, int flags,
  56434. + int fd, __off_t offset)
  56435. {
  56436. unsigned long buffer[6];
  56437. @@ -35,37 +67,14 @@
  56438. buffer[3] = (unsigned long) flags;
  56439. buffer[4] = (unsigned long) fd;
  56440. buffer[5] = (unsigned long) offset;
  56441. - return (__ptr_t) _mmap(buffer);
  56442. + return __syscall_mmap(buffer);
  56443. }
  56444. -#endif
  56445. -
  56446. -libc_hidden_def(mmap)
  56447. -
  56448. -#elif defined(__NR_mmap2)
  56449. -
  56450. +#else
  56451. -#define __NR___syscall_mmap2 __NR_mmap2
  56452. -static __inline__ _syscall6(__ptr_t, __syscall_mmap2, __ptr_t, addr,
  56453. - size_t, len, int, prot, int, flags, int, fd, off_t, offset)
  56454. +# error "Your architecture doesn't seem to provide mmap() !?"
  56455. -/* Some architectures always use 12 as page shift for mmap2() eventhough the
  56456. - * real PAGE_SHIFT != 12. Other architectures use the same value as
  56457. - * PAGE_SHIFT...
  56458. - */
  56459. -# ifndef MMAP2_PAGE_SHIFT
  56460. -# define MMAP2_PAGE_SHIFT 12
  56461. -# endif
  56462. -
  56463. -__ptr_t mmap(__ptr_t addr, size_t len, int prot, int flags, int fd, __off_t offset)
  56464. -{
  56465. - if (offset & ((1 << MMAP2_PAGE_SHIFT) - 1)) {
  56466. - __set_errno(EINVAL);
  56467. - return MAP_FAILED;
  56468. - }
  56469. - return __syscall_mmap2(addr, len, prot, flags, fd, offset >> MMAP2_PAGE_SHIFT);
  56470. -}
  56471. +#endif
  56472. +strong_alias(_mmap,mmap)
  56473. libc_hidden_def(mmap)
  56474. -
  56475. -#endif
  56476. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/mount.c uClibc-git/libc/sysdeps/linux/common/mount.c
  56477. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/mount.c 2012-05-15 09:20:09.000000000 +0200
  56478. +++ uClibc-git/libc/sysdeps/linux/common/mount.c 2014-06-02 17:40:34.358713889 +0200
  56479. @@ -10,5 +10,5 @@
  56480. #include <sys/syscall.h>
  56481. #include <sys/mount.h>
  56482. _syscall5(int, mount, const char *, specialfile, const char *, dir,
  56483. - const char *, filesystemtype, unsigned long, rwflag,
  56484. - const void *, data)
  56485. + const char *, filesystemtype, unsigned long, rwflag,
  56486. + const void *, data)
  56487. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/msync.c uClibc-git/libc/sysdeps/linux/common/msync.c
  56488. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/msync.c 2012-05-15 09:20:09.000000000 +0200
  56489. +++ uClibc-git/libc/sysdeps/linux/common/msync.c 2014-06-02 17:40:34.358713889 +0200
  56490. @@ -8,38 +8,14 @@
  56491. */
  56492. #include <sys/syscall.h>
  56493. -#include <unistd.h>
  56494. -#include <sys/mman.h>
  56495. -#ifdef __NR_msync
  56496. +#if defined __NR_msync && defined __ARCH_USE_MMU__
  56497. +# include <sys/mman.h>
  56498. +# include <cancel.h>
  56499. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  56500. -#include <sysdep-cancel.h>
  56501. -#else
  56502. -#define SINGLE_THREAD_P 1
  56503. -#endif
  56504. -
  56505. -#define __NR___syscall_msync __NR_msync
  56506. -static __always_inline _syscall3(int, __syscall_msync, void *, addr, size_t, length,
  56507. - int, flags)
  56508. -
  56509. -extern __typeof(msync) __libc_msync;
  56510. -int __libc_msync(void * addr, size_t length, int flags)
  56511. -{
  56512. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  56513. - int oldtype, result;
  56514. -#endif
  56515. -
  56516. - if (SINGLE_THREAD_P)
  56517. - return __syscall_msync(addr, length, flags);
  56518. -
  56519. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  56520. - oldtype = LIBC_CANCEL_ASYNC ();
  56521. - result = __syscall_msync(addr, length, flags);
  56522. - LIBC_CANCEL_RESET (oldtype);
  56523. - return result;
  56524. -#endif
  56525. -}
  56526. -weak_alias(__libc_msync,msync)
  56527. +# define __NR___msync_nocancel __NR_msync
  56528. +static _syscall3(int, __NC(msync), void *, addr, size_t, length, int, flags)
  56529. +CANCELLABLE_SYSCALL(int, msync, (void *addr, size_t length, int flags),
  56530. + (addr, length, flags))
  56531. #endif
  56532. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/munmap.c uClibc-git/libc/sysdeps/linux/common/munmap.c
  56533. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/munmap.c 2012-05-15 09:20:09.000000000 +0200
  56534. +++ uClibc-git/libc/sysdeps/linux/common/munmap.c 2014-06-02 17:40:34.358713889 +0200
  56535. @@ -8,9 +8,7 @@
  56536. */
  56537. #include <sys/syscall.h>
  56538. -#include <unistd.h>
  56539. #include <sys/mman.h>
  56540. -
  56541. _syscall2(int, munmap, void *, start, size_t, length)
  56542. libc_hidden_def(munmap)
  56543. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/nanosleep.c uClibc-git/libc/sysdeps/linux/common/nanosleep.c
  56544. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/nanosleep.c 2012-05-15 09:20:09.000000000 +0200
  56545. +++ uClibc-git/libc/sysdeps/linux/common/nanosleep.c 2014-06-02 17:40:34.358713889 +0200
  56546. @@ -9,32 +9,13 @@
  56547. #include <sys/syscall.h>
  56548. #include <time.h>
  56549. +#include <cancel.h>
  56550. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  56551. -#include <sysdep-cancel.h>
  56552. -#include <pthreadP.h>
  56553. -#else
  56554. -#define SINGLE_THREAD_P 1
  56555. -#endif
  56556. -
  56557. -#define __NR___syscall_nanosleep __NR_nanosleep
  56558. -static inline _syscall2(int, __syscall_nanosleep, const struct timespec *, req,
  56559. - struct timespec *, rem);
  56560. -
  56561. -extern __typeof(nanosleep) __libc_nanosleep;
  56562. -
  56563. -int __libc_nanosleep(const struct timespec *req, struct timespec *rem)
  56564. -{
  56565. - if (SINGLE_THREAD_P)
  56566. - return __syscall_nanosleep(req, rem);
  56567. -
  56568. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  56569. - int oldtype = LIBC_CANCEL_ASYNC ();
  56570. - int result = __syscall_nanosleep(req, rem);
  56571. - LIBC_CANCEL_RESET (oldtype);
  56572. - return result;
  56573. -#endif
  56574. -}
  56575. -
  56576. -weak_alias(__libc_nanosleep,nanosleep)
  56577. -libc_hidden_weak(nanosleep)
  56578. +#define __NR___nanosleep_nocancel __NR_nanosleep
  56579. +static _syscall2(int, __NC(nanosleep), const struct timespec *, req,
  56580. + struct timespec *, rem);
  56581. +
  56582. +CANCELLABLE_SYSCALL(int, nanosleep,
  56583. + (const struct timespec *req, struct timespec *rem),
  56584. + (req, rem))
  56585. +lt_libc_hidden(nanosleep)
  56586. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/nice.c uClibc-git/libc/sysdeps/linux/common/nice.c
  56587. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/nice.c 2012-05-15 09:20:09.000000000 +0200
  56588. +++ uClibc-git/libc/sysdeps/linux/common/nice.c 2014-06-02 17:40:34.358713889 +0200
  56589. @@ -25,15 +25,15 @@
  56590. static __inline__ int int_add_no_wrap(int a, int b)
  56591. {
  56592. - int s = a + b;
  56593. -
  56594. if (b < 0) {
  56595. - if (s > a) s = INT_MIN;
  56596. + if (a < INT_MIN - b)
  56597. + return INT_MIN;
  56598. } else {
  56599. - if (s < a) s = INT_MAX;
  56600. + if (a > INT_MAX - b)
  56601. + return INT_MAX;
  56602. }
  56603. - return s;
  56604. + return a + b;
  56605. }
  56606. static __inline__ int __syscall_nice(int incr)
  56607. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/noophooks.c uClibc-git/libc/sysdeps/linux/common/noophooks.c
  56608. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/noophooks.c 2012-05-15 09:20:09.000000000 +0200
  56609. +++ uClibc-git/libc/sysdeps/linux/common/noophooks.c 2014-06-02 17:40:34.358713889 +0200
  56610. @@ -14,11 +14,8 @@
  56611. Lesser General Public License for more details.
  56612. You should have received a copy of the GNU Lesser General Public
  56613. - License along with the GNU C Library; if not, write to the Free
  56614. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  56615. - 02111-1307 USA. */
  56616. -
  56617. -#include <libc-internal.h>
  56618. + License along with the GNU C Library; if not, see
  56619. + <http://www.gnu.org/licenses/>. */
  56620. void
  56621. __cyg_profile_func_enter (attribute_unused void *this_fn, attribute_unused void *call_site);
  56622. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/not-cancel.h uClibc-git/libc/sysdeps/linux/common/not-cancel.h
  56623. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/not-cancel.h 2012-05-15 09:20:09.000000000 +0200
  56624. +++ uClibc-git/libc/sysdeps/linux/common/not-cancel.h 2014-06-02 17:40:34.358713889 +0200
  56625. @@ -1,5 +1,5 @@
  56626. /* Uncancelable versions of cancelable interfaces. Linux version.
  56627. - Copyright (C) 2003 Free Software Foundation, Inc.
  56628. + Copyright (C) 2003, 2006 Free Software Foundation, Inc.
  56629. This file is part of the GNU C Library.
  56630. Contributed by Ulrich Drepper <drepper@redhat.com>, 2003.
  56631. @@ -14,17 +14,50 @@
  56632. Lesser General Public License for more details.
  56633. You should have received a copy of the GNU Lesser General Public
  56634. - License along with the GNU C Library; if not, write to the Free
  56635. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  56636. - 02111-1307 USA. */
  56637. + License along with the GNU C Library; if not, see
  56638. + <http://www.gnu.org/licenses/>. */
  56639. +#include <sys/types.h>
  56640. #include <sysdep.h>
  56641. +#ifdef NOT_IN_libc
  56642. +
  56643. /* Uncancelable open. */
  56644. +#if defined __NR_openat && !defined __NR_open
  56645. +#define open_not_cancel(name, flags, mode) \
  56646. + INLINE_SYSCALL (openat, 4, AT_FDCWD, (const char *) (name), (flags), (mode))
  56647. +#define open_not_cancel_2(name, flags) \
  56648. + INLINE_SYSCALL (openat, 3, AT_FDCWD, (const char *) (name), (flags))
  56649. +#else
  56650. #define open_not_cancel(name, flags, mode) \
  56651. INLINE_SYSCALL (open, 3, (const char *) (name), (flags), (mode))
  56652. #define open_not_cancel_2(name, flags) \
  56653. INLINE_SYSCALL (open, 2, (const char *) (name), (flags))
  56654. +#endif
  56655. +
  56656. +#if 0
  56657. +/* Uncancelable openat. */
  56658. +#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
  56659. +extern int __openat_nocancel (int fd, const char *fname, int oflag,
  56660. + mode_t mode) attribute_hidden;
  56661. +extern int __openat64_nocancel (int fd, const char *fname, int oflag,
  56662. + mode_t mode) attribute_hidden;
  56663. +#else
  56664. +# define __openat_nocancel(fd, fname, oflag, mode) \
  56665. + openat (fd, fname, oflag, mode)
  56666. +# define __openat64_nocancel(fd, fname, oflag, mode) \
  56667. + openat64 (fd, fname, oflag, mode)
  56668. +#endif
  56669. +
  56670. +#define openat_not_cancel(fd, fname, oflag, mode) \
  56671. + __openat_nocancel (fd, fname, oflag, mode)
  56672. +#define openat_not_cancel_3(fd, fname, oflag) \
  56673. + __openat_nocancel (fd, fname, oflag, 0)
  56674. +#define openat64_not_cancel(fd, fname, oflag, mode) \
  56675. + __openat64_nocancel (fd, fname, oflag, mode)
  56676. +#define openat64_not_cancel_3(fd, fname, oflag) \
  56677. + __openat64_nocancel (fd, fname, oflag, 0)
  56678. +#endif
  56679. /* Uncancelable close. */
  56680. #define close_not_cancel(fd) \
  56681. @@ -37,10 +70,13 @@
  56682. #define read_not_cancel(fd, buf, n) \
  56683. INLINE_SYSCALL (read, 3, (fd), (buf), (n))
  56684. +#ifdef __LINUXTHREADS_NEW__
  56685. /* Uncancelable write. */
  56686. #define write_not_cancel(fd, buf, n) \
  56687. INLINE_SYSCALL (write, 3, (fd), (buf), (n))
  56688. +#endif
  56689. +#if 0
  56690. /* Uncancelable writev. */
  56691. #define writev_not_cancel_no_status(fd, iov, n) \
  56692. (void) ({ INTERNAL_SYSCALL_DECL (err); \
  56693. @@ -49,12 +85,68 @@
  56694. /* Uncancelable fcntl. */
  56695. #define fcntl_not_cancel(fd, cmd, val) \
  56696. __fcntl_nocancel (fd, cmd, val)
  56697. +#endif
  56698. +#ifdef __LINUXTHREADS_NEW__
  56699. /* Uncancelable waitpid. */
  56700. -#ifdef __NR_waitpid
  56701. +#if 0 /*def __NR_waitpid*/
  56702. # define waitpid_not_cancel(pid, stat_loc, options) \
  56703. INLINE_SYSCALL (waitpid, 3, pid, stat_loc, options)
  56704. #else
  56705. # define waitpid_not_cancel(pid, stat_loc, options) \
  56706. INLINE_SYSCALL (wait4, 4, pid, stat_loc, options, NULL)
  56707. #endif
  56708. +#endif
  56709. +
  56710. +/* Uncancelable pause. */
  56711. +#ifdef __NR_pause
  56712. +# define pause_not_cancel() \
  56713. + INLINE_SYSCALL (pause, 0)
  56714. +#else
  56715. +# include <unistd.h>
  56716. +extern __typeof(pause) __pause_nocancel;
  56717. +# define pause_not_cancel() \
  56718. + __pause_nocancel ()
  56719. +#endif
  56720. +
  56721. +/* Uncancelable nanosleep. */
  56722. +#ifdef __NR_nanosleep
  56723. +# define nanosleep_not_cancel(requested_time, remaining) \
  56724. + INLINE_SYSCALL (nanosleep, 2, requested_time, remaining)
  56725. +/*#else
  56726. +# define nanosleep_not_cancel(requested_time, remaining) \
  56727. + __nanosleep_nocancel (requested_time, remaining)*/
  56728. +#endif
  56729. +
  56730. +#if 0
  56731. +/* Uncancelable sigsuspend. */
  56732. +#define sigsuspend_not_cancel(set) \
  56733. + __sigsuspend_nocancel (set)
  56734. +#endif
  56735. +
  56736. +#elif !defined NOT_IN_libc
  56737. +
  56738. +#include <cancel.h>
  56739. +#include <fcntl.h>
  56740. +#include <unistd.h>
  56741. +
  56742. +#define open_not_cancel(name, flags, mode) \
  56743. + __NC(open)(name, flags, mode)
  56744. +#define open_not_cancel_2(name, flags) \
  56745. + __NC(open2)(name, flags)
  56746. +
  56747. +#define close_not_cancel(fd) \
  56748. + __NC(close)(fd)
  56749. +#define close_not_cancel_no_status(fd) \
  56750. + __close_nocancel_no_status(fd)
  56751. +
  56752. +#define read_not_cancel(fd, buf, n) \
  56753. + __NC(read)(fd, buf, n)
  56754. +
  56755. +#define write_not_cancel(fd, buf, n) \
  56756. + __NC(write)(fd, buf, n)
  56757. +
  56758. +#define fcntl_not_cancel(fd, cmd, val) \
  56759. + __NC(fcntl)(fd, cmd, val)
  56760. +
  56761. +#endif
  56762. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ntp_gettime.c uClibc-git/libc/sysdeps/linux/common/ntp_gettime.c
  56763. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ntp_gettime.c 2012-05-15 09:20:09.000000000 +0200
  56764. +++ uClibc-git/libc/sysdeps/linux/common/ntp_gettime.c 2014-06-02 17:40:34.358713889 +0200
  56765. @@ -12,9 +12,8 @@
  56766. Lesser General Public License for more details.
  56767. You should have received a copy of the GNU Lesser General Public
  56768. - License along with the GNU C Library; if not, write to the Free
  56769. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  56770. - 02111-1307 USA. */
  56771. + License along with the GNU C Library; if not, see
  56772. + <http://www.gnu.org/licenses/>. */
  56773. #include <sys/timex.h>
  56774. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/open64.c uClibc-git/libc/sysdeps/linux/common/open64.c
  56775. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/open64.c 2012-05-15 09:20:09.000000000 +0200
  56776. +++ uClibc-git/libc/sysdeps/linux/common/open64.c 2014-06-02 17:40:34.358713889 +0200
  56777. @@ -4,54 +4,30 @@
  56778. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  56779. */
  56780. -#include <features.h>
  56781. +#include <_lfs_64.h>
  56782. #include <fcntl.h>
  56783. #include <stdarg.h>
  56784. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  56785. -#include <errno.h>
  56786. -#include <sysdep-cancel.h>
  56787. -#endif
  56788. -
  56789. -#ifdef __UCLIBC_HAS_LFS__
  56790. -
  56791. -#ifndef O_LARGEFILE
  56792. -# define O_LARGEFILE 0100000
  56793. -#endif
  56794. +#include <cancel.h>
  56795. /* Open FILE with access OFLAG. If OFLAG includes O_CREAT,
  56796. a third argument is the file protection. */
  56797. -int open64 (const char *file, int oflag, ...)
  56798. +int open64(const char *file, int oflag, ...)
  56799. {
  56800. - mode_t mode = 0;
  56801. -
  56802. - if (oflag & O_CREAT)
  56803. - {
  56804. - va_list arg;
  56805. - va_start (arg, oflag);
  56806. - mode = va_arg (arg, mode_t);
  56807. - va_end (arg);
  56808. - }
  56809. -
  56810. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  56811. - if (SINGLE_THREAD_P)
  56812. - return INLINE_SYSCALL (open, 3, file, oflag | O_LARGEFILE, mode);
  56813. + mode_t mode = 0;
  56814. - int oldtype = LIBC_CANCEL_ASYNC ();
  56815. -
  56816. - int result = INLINE_SYSCALL (open, 3, file, oflag | O_LARGEFILE, mode);
  56817. -
  56818. - LIBC_CANCEL_RESET (oldtype);
  56819. -
  56820. - return result;
  56821. + if (oflag & O_CREAT) {
  56822. + va_list arg;
  56823. + va_start (arg, oflag);
  56824. + mode = va_arg (arg, mode_t);
  56825. + va_end (arg);
  56826. + }
  56827. +#if defined __NR_openat && !defined __NR_open
  56828. + return openat(AT_FDCWD, file, oflag | O_LARGEFILE, mode);
  56829. #else
  56830. - return open(file, oflag | O_LARGEFILE, mode);
  56831. + return open(file, oflag | O_LARGEFILE, mode);
  56832. #endif
  56833. }
  56834. -#ifndef __LINUXTHREADS_OLD__
  56835. -libc_hidden_def(open64)
  56836. -#else
  56837. -libc_hidden_weak(open64)
  56838. -strong_alias(open64,__libc_open64)
  56839. -#endif
  56840. -
  56841. -#endif /* __UCLIBC_HAS_LFS__ */
  56842. +lt_strong_alias(open64)
  56843. +lt_libc_hidden(open64)
  56844. +/* open handled cancellation, noop on uClibc */
  56845. +LIBC_CANCEL_HANDLED();
  56846. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/openat64.c uClibc-git/libc/sysdeps/linux/common/openat64.c
  56847. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/openat64.c 2012-05-15 09:20:09.000000000 +0200
  56848. +++ uClibc-git/libc/sysdeps/linux/common/openat64.c 2014-06-02 17:40:34.358713889 +0200
  56849. @@ -6,27 +6,16 @@
  56850. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  56851. */
  56852. -#define openat64 __xx_openat
  56853. +#include <_lfs_64.h>
  56854. #include <sys/syscall.h>
  56855. #include <fcntl.h>
  56856. -#undef openat64
  56857. -
  56858. -#ifdef __UCLIBC_HAS_LFS__
  56859. #ifdef __NR_openat
  56860. -/* The openat() prototype is varargs based, but we don't care about that
  56861. - * here, so need to provide our own dedicated signature.
  56862. - */
  56863. -extern int openat64(int fd, const char *file, int oflag, mode_t mode);
  56864. -libc_hidden_proto(openat64)
  56865. -
  56866. -int openat64(int fd, const char *file, int oflag, mode_t mode)
  56867. +static int __openat64(int fd, const char *file, int oflag, mode_t mode)
  56868. {
  56869. return openat(fd, file, oflag | O_LARGEFILE, mode);
  56870. }
  56871. -libc_hidden_def(openat64)
  56872. +strong_alias_untyped(__openat64,openat64)
  56873. #else
  56874. /* should add emulation with open() and /proc/self/fd/ ... */
  56875. #endif
  56876. -
  56877. -#endif
  56878. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/openat.c uClibc-git/libc/sysdeps/linux/common/openat.c
  56879. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/openat.c 2012-05-15 09:20:09.000000000 +0200
  56880. +++ uClibc-git/libc/sysdeps/linux/common/openat.c 2014-06-02 17:40:34.358713889 +0200
  56881. @@ -6,19 +6,13 @@
  56882. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  56883. */
  56884. -#define openat __xx_openat
  56885. #include <sys/syscall.h>
  56886. #include <fcntl.h>
  56887. -#undef openat
  56888. #ifdef __NR_openat
  56889. -/* The openat() prototype is varargs based, but we don't care about that
  56890. - * here, so need to provide our own dedicated signature.
  56891. - */
  56892. -extern int openat(int fd, const char *file, int oflag, mode_t mode);
  56893. -libc_hidden_proto(openat)
  56894. -
  56895. -_syscall4(int, openat, int, fd, const char *, file, int, oflag, mode_t, mode)
  56896. +# define __NR___syscall_openat __NR_openat
  56897. +static __inline__ _syscall4(int, __syscall_openat, int, fd, const char *, file, int, oflag, mode_t, mode)
  56898. +strong_alias_untyped(__syscall_openat,openat)
  56899. libc_hidden_def(openat)
  56900. #else
  56901. /* should add emulation with open() and /proc/self/fd/ ... */
  56902. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/open.c uClibc-git/libc/sysdeps/linux/common/open.c
  56903. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/open.c 2012-05-15 09:20:09.000000000 +0200
  56904. +++ uClibc-git/libc/sysdeps/linux/common/open.c 2014-06-02 17:40:34.358713889 +0200
  56905. @@ -8,15 +8,22 @@
  56906. */
  56907. #include <sys/syscall.h>
  56908. -#include <stdlib.h>
  56909. -#include <stdarg.h>
  56910. #include <fcntl.h>
  56911. -#include <string.h>
  56912. -#include <sys/param.h>
  56913. +#include <stdarg.h>
  56914. +#include <cancel.h>
  56915. +
  56916. +#if defined __NR_open
  56917. +# define __NR___syscall_open __NR_open
  56918. +static __always_inline _syscall3(int, __syscall_open, const char *, file,
  56919. + int, flags, __kernel_mode_t, mode)
  56920. +strong_alias_untyped(__syscall_open,__NC(open))
  56921. -#define __NR___syscall_open __NR_open
  56922. -static __inline__ _syscall3(int, __syscall_open, const char *, file,
  56923. - int, flags, __kernel_mode_t, mode)
  56924. +# define __NR___open2_nocancel __NR_open
  56925. +_syscall2(int, __NC(open2), const char *, file, int, flags)
  56926. +#else
  56927. +int __open2_nocancel(const char *, int) __nonnull ((1)) attribute_hidden;
  56928. +int __open_nocancel(const char *, int, mode_t) __nonnull ((1)) attribute_hidden;
  56929. +#endif
  56930. int open(const char *file, int oflag, ...)
  56931. {
  56932. @@ -29,11 +36,27 @@
  56933. va_end(arg);
  56934. }
  56935. - return __syscall_open(file, oflag, mode);
  56936. + if (SINGLE_THREAD_P)
  56937. +#if defined(__NR_open)
  56938. + return __NC(open)(file, oflag, mode);
  56939. +#elif defined(__NR_openat)
  56940. + return openat(AT_FDCWD, file, oflag, mode);
  56941. +#endif
  56942. +
  56943. +#ifdef __NEW_THREADS
  56944. + int oldtype = LIBC_CANCEL_ASYNC ();
  56945. +# if defined(__NR_open)
  56946. + int result = __NC(open)(file, oflag, mode);
  56947. +# else
  56948. + int result = openat(AT_FDCWD, file, oflag, mode);
  56949. +# endif
  56950. + LIBC_CANCEL_RESET (oldtype);
  56951. + return result;
  56952. +#endif
  56953. }
  56954. -#ifndef __LINUXTHREADS_OLD__
  56955. -libc_hidden_def(open)
  56956. -#else
  56957. -libc_hidden_weak(open)
  56958. -strong_alias(open,__libc_open)
  56959. +lt_strong_alias(open)
  56960. +lt_libc_hidden(open)
  56961. +#if !defined(__NR_open)
  56962. +strong_alias_untyped(open,__open2_nocancel)
  56963. +strong_alias_untyped(open,__open_nocancel)
  56964. #endif
  56965. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/pause.c uClibc-git/libc/sysdeps/linux/common/pause.c
  56966. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/pause.c 2012-05-15 09:20:09.000000000 +0200
  56967. +++ uClibc-git/libc/sysdeps/linux/common/pause.c 2014-06-02 17:40:34.358713889 +0200
  56968. @@ -7,35 +7,35 @@
  56969. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  56970. */
  56971. -#define __UCLIBC_HIDE_DEPRECATED__
  56972. #include <sys/syscall.h>
  56973. #include <unistd.h>
  56974. +#include <cancel.h>
  56975. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  56976. -#include <sysdep-cancel.h>
  56977. -#endif
  56978. -
  56979. -#include <signal.h>
  56980. +#ifdef __NR_pause
  56981. +/* even if it is not obvious, glibc uses the pause syscall, see syscalls.list */
  56982. +# define __NR___pause_nocancel __NR_pause
  56983. +static _syscall0(int, __NC(pause))
  56984. +CANCELLABLE_SYSCALL(int, pause, (void), ())
  56985. +#else
  56986. +# define __need_NULL
  56987. +# include <stddef.h>
  56988. +# include <signal.h>
  56989. -/* Suspend the process until a signal arrives.
  56990. - This always returns -1 and sets errno to EINTR. */
  56991. -extern __typeof(pause) __libc_pause;
  56992. int
  56993. -__libc_pause (void)
  56994. +# ifdef __LINUXTHREADS_OLD__
  56995. +weak_function
  56996. +# endif
  56997. +__NC(pause)(void)
  56998. {
  56999. - sigset_t set;
  57000. -
  57001. - /*__sigemptyset (&set); - why? */
  57002. - sigprocmask (SIG_BLOCK, NULL, &set);
  57003. + sigset_t set;
  57004. - /* pause is a cancellation point, but so is sigsuspend.
  57005. - So no need for anything special here. */
  57006. + /*__sigemptyset (&set); - why? */
  57007. + sigprocmask (SIG_BLOCK, NULL, &set);
  57008. - return sigsuspend (&set);
  57009. + /* pause is a cancellation point, but so is sigsuspend.
  57010. + So no need for anything special here. */
  57011. + return sigsuspend(&set);
  57012. }
  57013. -weak_alias (__libc_pause, pause)
  57014. -
  57015. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57016. +CANCELLABLE_SYSCALL(int, pause, (void), ())
  57017. LIBC_CANCEL_HANDLED (); /* sigsuspend handles our cancellation. */
  57018. #endif
  57019. -
  57020. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/pipe.c uClibc-git/libc/sysdeps/linux/common/pipe.c
  57021. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/pipe.c 2012-05-15 09:20:09.000000000 +0200
  57022. +++ uClibc-git/libc/sysdeps/linux/common/pipe.c 2014-06-02 17:40:34.358713889 +0200
  57023. @@ -11,5 +11,13 @@
  57024. #include <unistd.h>
  57025. +#if defined __NR_pipe2 && !defined __NR_pipe
  57026. +int pipe(int filedes[2])
  57027. +{
  57028. + return pipe2(filedes, 0);
  57029. +}
  57030. +/* If both are defined then use the pipe syscall */
  57031. +#else
  57032. _syscall1(int, pipe, int *, filedes)
  57033. +#endif
  57034. libc_hidden_def(pipe)
  57035. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/pivot_root.c uClibc-git/libc/sysdeps/linux/common/pivot_root.c
  57036. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/pivot_root.c 2012-05-15 09:20:09.000000000 +0200
  57037. +++ uClibc-git/libc/sysdeps/linux/common/pivot_root.c 2014-06-02 17:40:34.358713889 +0200
  57038. @@ -9,7 +9,7 @@
  57039. #include <sys/syscall.h>
  57040. -int pivot_root(const char *new_root, const char *put_old);
  57041. #ifdef __NR_pivot_root
  57042. +int pivot_root(const char *new_root, const char *put_old);
  57043. _syscall2(int, pivot_root, const char *, new_root, const char *, put_old)
  57044. #endif
  57045. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/poll.c uClibc-git/libc/sysdeps/linux/common/poll.c
  57046. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/poll.c 2012-05-15 09:20:09.000000000 +0200
  57047. +++ uClibc-git/libc/sysdeps/linux/common/poll.c 2014-06-02 17:40:34.358713889 +0200
  57048. @@ -13,40 +13,20 @@
  57049. Lesser General Public License for more details.
  57050. You should have received a copy of the GNU Lesser General Public
  57051. - License along with the GNU C Library; if not, write to the Free
  57052. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  57053. - 02111-1307 USA. */
  57054. + License along with the GNU C Library; if not, see
  57055. + <http://www.gnu.org/licenses/>. */
  57056. #include <sys/syscall.h>
  57057. #include <sys/poll.h>
  57058. #include <bits/kernel-features.h>
  57059. -
  57060. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57061. -#include <sysdep-cancel.h>
  57062. -#else
  57063. -#define SINGLE_THREAD_P 1
  57064. -#endif
  57065. -
  57066. -libc_hidden_proto(poll)
  57067. +#include <cancel.h>
  57068. #if defined __ASSUME_POLL_SYSCALL && defined __NR_poll
  57069. -#define __NR___syscall_poll __NR_poll
  57070. -static inline _syscall3(int, __syscall_poll, struct pollfd *, fds,
  57071. - unsigned long int, nfds, int, timeout);
  57072. -
  57073. -int poll(struct pollfd *fds, nfds_t nfds, int timeout)
  57074. -{
  57075. - if (SINGLE_THREAD_P)
  57076. - return __syscall_poll(fds, nfds, timeout);
  57077. +#define __NR___poll_nocancel __NR_poll
  57078. +static _syscall3(int, __NC(poll), struct pollfd *, fds,
  57079. + unsigned long int, nfds, int, timeout)
  57080. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57081. - int oldtype = LIBC_CANCEL_ASYNC ();
  57082. - int result = __syscall_poll(fds, nfds, timeout);
  57083. - LIBC_CANCEL_RESET (oldtype);
  57084. - return result;
  57085. -#endif
  57086. -}
  57087. #else /* !__NR_poll */
  57088. #include <alloca.h>
  57089. @@ -56,9 +36,7 @@
  57090. #include <sys/time.h>
  57091. #include <sys/param.h>
  57092. #include <unistd.h>
  57093. -
  57094. -libc_hidden_proto(getdtablesize)
  57095. -libc_hidden_proto(select)
  57096. +#include <sys/select.h>
  57097. /* uClinux 2.0 doesn't have poll, emulate it using select */
  57098. @@ -68,7 +46,7 @@
  57099. Returns the number of file descriptors with events, zero if timed out,
  57100. or -1 for errors. */
  57101. -int poll(struct pollfd *fds, nfds_t nfds, int timeout)
  57102. +int __NC(poll)(struct pollfd *fds, nfds_t nfds, int timeout)
  57103. {
  57104. static int max_fd_size;
  57105. struct timeval tv;
  57106. @@ -139,7 +117,7 @@
  57107. while (1)
  57108. {
  57109. - ready = select (maxfd + 1, rset, wset, xset,
  57110. + ready = __NC(select) (maxfd + 1, rset, wset, xset,
  57111. timeout == -1 ? NULL : &tv);
  57112. /* It might be that one or more of the file descriptors is invalid.
  57113. @@ -182,7 +160,7 @@
  57114. if (f->events & POLLPRI)
  57115. FD_SET (f->fd, sngl_xset);
  57116. - n = select (f->fd + 1, sngl_rset, sngl_wset, sngl_xset,
  57117. + n = __NC(select) (f->fd + 1, sngl_rset, sngl_wset, sngl_xset,
  57118. &sngl_tv);
  57119. if (n != -1)
  57120. {
  57121. @@ -227,4 +205,6 @@
  57122. }
  57123. #endif
  57124. -libc_hidden_def(poll)
  57125. +CANCELLABLE_SYSCALL(int, poll, (struct pollfd *fds, nfds_t nfds, int timeout),
  57126. + (fds, nfds, timeout))
  57127. +lt_libc_hidden(poll)
  57128. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fadvise64.c uClibc-git/libc/sysdeps/linux/common/posix_fadvise64.c
  57129. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fadvise64.c 2012-05-15 09:20:09.000000000 +0200
  57130. +++ uClibc-git/libc/sysdeps/linux/common/posix_fadvise64.c 2014-06-02 17:40:34.358713889 +0200
  57131. @@ -8,63 +8,32 @@
  57132. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  57133. */
  57134. -#include <features.h>
  57135. -#include <unistd.h>
  57136. -#include <errno.h>
  57137. -#include <endian.h>
  57138. -#include <stdint.h>
  57139. -#include <sys/types.h>
  57140. +#include <_lfs_64.h>
  57141. #include <sys/syscall.h>
  57142. -#include <fcntl.h>
  57143. +#include <bits/wordsize.h>
  57144. -#ifdef __UCLIBC_HAS_LFS__
  57145. -#ifdef __NR_fadvise64_64
  57146. -
  57147. -/* 64 bit implementation is cake ... or more like pie ... */
  57148. -#if __WORDSIZE == 64
  57149. -
  57150. -#define __NR_posix_fadvise64 __NR_fadvise64_64
  57151. -
  57152. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice)
  57153. -{
  57154. - if (len != (off_t) len)
  57155. - return EOVERFLOW;
  57156. - INTERNAL_SYSCALL_DECL (err);
  57157. - int ret = INTERNAL_SYSCALL (posix_fadvise64, err, 5, fd,
  57158. - __LONG_LONG_PAIR ((long) (offset >> 32),
  57159. - (long) offset),
  57160. - (off_t) len, advice);
  57161. - if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
  57162. - return 0;
  57163. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  57164. -}
  57165. +#ifdef __NR_arm_fadvise64_64
  57166. +# define __NR_fadvise64_64 __NR_arm_fadvise64_64
  57167. +#endif
  57168. -/* 32 bit implementation is kind of a pita */
  57169. -#elif __WORDSIZE == 32
  57170. +#if defined __NR_fadvise64_64 && __WORDSIZE == 32
  57171. +# include <fcntl.h>
  57172. +# include <endian.h>
  57173. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice)
  57174. +int posix_fadvise64(int fd, off64_t offset, off64_t len, int advice)
  57175. {
  57176. INTERNAL_SYSCALL_DECL (err);
  57177. + /* ARM has always been funky. */
  57178. +# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__) || defined(__arm__)
  57179. + int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, advice,
  57180. + OFF64_HI_LO (offset), OFF64_HI_LO (len));
  57181. +# else
  57182. int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd,
  57183. - __LONG_LONG_PAIR(offset >> 32, offset & 0xffffffff),
  57184. - __LONG_LONG_PAIR(len >> 32, len & 0xffffffff),
  57185. - advice);
  57186. - if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
  57187. - return 0;
  57188. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  57189. + OFF64_HI_LO (offset), OFF64_HI_LO (len),
  57190. + advice);
  57191. +# endif
  57192. + if (INTERNAL_SYSCALL_ERROR_P (ret, err))
  57193. + return INTERNAL_SYSCALL_ERRNO (ret, err);
  57194. + return 0;
  57195. }
  57196. -
  57197. -#else
  57198. -#error your machine is neither 32 bit or 64 bit ... it must be magical
  57199. #endif
  57200. -
  57201. -#elif !defined __NR_fadvise64 && defined __UCLIBC_HAS_STUBS__
  57202. -/* This is declared as a strong alias in posix_fadvise.c if __NR_fadvise64
  57203. - * is defined.
  57204. - */
  57205. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice)
  57206. -{
  57207. - return ENOSYS;
  57208. -}
  57209. -#endif /* __NR_fadvise64_64 */
  57210. -#endif /* __UCLIBC_HAS_LFS__ */
  57211. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fadvise.c uClibc-git/libc/sysdeps/linux/common/posix_fadvise.c
  57212. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fadvise.c 2012-05-15 09:20:09.000000000 +0200
  57213. +++ uClibc-git/libc/sysdeps/linux/common/posix_fadvise.c 2014-06-02 17:40:34.358713889 +0200
  57214. @@ -9,27 +9,46 @@
  57215. */
  57216. #include <sys/syscall.h>
  57217. -#include <fcntl.h>
  57218. -#ifdef __NR_fadvise64
  57219. -#define __NR_posix_fadvise __NR_fadvise64
  57220. +#ifdef __NR_arm_fadvise64_64
  57221. +/* We handle the 64bit alignment issue which is why the arm guys renamed their
  57222. + * syscall in the first place. So rename it back.
  57223. + */
  57224. +# define __NR_fadvise64_64 __NR_arm_fadvise64_64
  57225. +#endif
  57226. +
  57227. +#if defined(__NR_fadvise64) || defined(__NR_fadvise64_64)
  57228. +# include <fcntl.h>
  57229. +# include <endian.h>
  57230. +# include <bits/wordsize.h>
  57231. +
  57232. +# ifdef __NR_fadvise64_64
  57233. +int posix_fadvise64(int fd, off64_t offset, off64_t len, int advice);
  57234. +# endif
  57235. +
  57236. int posix_fadvise(int fd, off_t offset, off_t len, int advice)
  57237. {
  57238. +# ifdef __NR_fadvise64_64
  57239. + return posix_fadvise64(fd, offset, len, advice);
  57240. +# else
  57241. + int ret;
  57242. INTERNAL_SYSCALL_DECL(err);
  57243. - int ret = (int) (INTERNAL_SYSCALL(posix_fadvise, err, 5, fd,
  57244. - __LONG_LONG_PAIR (offset >> 31, offset), len, advice));
  57245. - if (INTERNAL_SYSCALL_ERROR_P (ret, err))
  57246. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  57247. - return 0;
  57248. +# if __WORDSIZE == 64
  57249. + ret = INTERNAL_SYSCALL(fadvise64, err, 4, fd, offset, len, advice);
  57250. +# else
  57251. +# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
  57252. + ret = INTERNAL_SYSCALL(fadvise64, err, 6, fd, /*unused*/0,
  57253. +# else
  57254. + ret = INTERNAL_SYSCALL(fadvise64, err, 5, fd,
  57255. +# endif
  57256. + OFF_HI_LO (offset), len, advice);
  57257. +# endif
  57258. + if (INTERNAL_SYSCALL_ERROR_P (ret, err))
  57259. + return INTERNAL_SYSCALL_ERRNO (ret, err);
  57260. + return 0;
  57261. +# endif
  57262. }
  57263. -
  57264. -#if defined __UCLIBC_HAS_LFS__ && !defined __NR_fadvise64_64
  57265. +# if defined __UCLIBC_HAS_LFS__ && (!defined __NR_fadvise64_64 || __WORDSIZE == 64)
  57266. strong_alias(posix_fadvise,posix_fadvise64)
  57267. -#endif
  57268. -
  57269. -#elif defined __UCLIBC_HAS_STUBS__
  57270. -int posix_fadvise(int fd attribute_unused, off_t offset attribute_unused, off_t len attribute_unused, int advice attribute_unused)
  57271. -{
  57272. - return ENOSYS;
  57273. -}
  57274. +# endif
  57275. #endif
  57276. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fallocate64.c uClibc-git/libc/sysdeps/linux/common/posix_fallocate64.c
  57277. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fallocate64.c 1970-01-01 01:00:00.000000000 +0100
  57278. +++ uClibc-git/libc/sysdeps/linux/common/posix_fallocate64.c 2014-06-02 17:40:34.358713889 +0200
  57279. @@ -0,0 +1,34 @@
  57280. +/* vi: set sw=4 ts=4: */
  57281. +/*
  57282. + * posix_fallocate() for uClibc
  57283. + * http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fallocate.html
  57284. + *
  57285. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  57286. + *
  57287. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  57288. + */
  57289. +
  57290. +#include <sys/syscall.h>
  57291. +#include <fcntl.h>
  57292. +#include <bits/kernel-features.h>
  57293. +#include <stdint.h>
  57294. +
  57295. +#if defined __NR_fallocate
  57296. +
  57297. +# if __WORDSIZE == 64
  57298. +/* Can use normal posix_fallocate() */
  57299. +# elif __WORDSIZE == 32
  57300. +int posix_fallocate64(int fd, __off64_t offset, __off64_t len)
  57301. +{
  57302. + int ret;
  57303. + INTERNAL_SYSCALL_DECL(err);
  57304. + ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, 0,
  57305. + OFF64_HI_LO (offset), OFF64_HI_LO (len)));
  57306. + if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err)))
  57307. + return INTERNAL_SYSCALL_ERRNO (ret, err);
  57308. + return 0;
  57309. +}
  57310. +# else
  57311. +# error your machine is neither 32 bit or 64 bit ... it must be magical
  57312. +# endif
  57313. +#endif
  57314. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fallocate.c uClibc-git/libc/sysdeps/linux/common/posix_fallocate.c
  57315. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_fallocate.c 1970-01-01 01:00:00.000000000 +0100
  57316. +++ uClibc-git/libc/sysdeps/linux/common/posix_fallocate.c 2014-06-02 17:40:34.358713889 +0200
  57317. @@ -0,0 +1,43 @@
  57318. +/* vi: set sw=4 ts=4: */
  57319. +/*
  57320. + * posix_fallocate() for uClibc
  57321. + * http://www.opengroup.org/onlinepubs/9699919799/functions/posix_fallocate.html
  57322. + *
  57323. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  57324. + *
  57325. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  57326. + */
  57327. +
  57328. +#include <sys/syscall.h>
  57329. +#include <fcntl.h>
  57330. +#include <bits/kernel-features.h>
  57331. +#include <stdint.h>
  57332. +
  57333. +#if defined __NR_fallocate
  57334. +int posix_fallocate(int fd, __off_t offset, __off_t len)
  57335. +{
  57336. + int ret;
  57337. +
  57338. +# if __WORDSIZE == 32
  57339. + uint32_t off_low = offset;
  57340. + uint32_t len_low = len;
  57341. + /* may assert that these >>31 are 0 */
  57342. + uint32_t zero = 0;
  57343. + INTERNAL_SYSCALL_DECL(err);
  57344. + ret = (int) (INTERNAL_SYSCALL(fallocate, err, 6, fd, 0,
  57345. + __LONG_LONG_PAIR (zero, off_low),
  57346. + __LONG_LONG_PAIR (zero, len_low)));
  57347. +# elif __WORDSIZE == 64
  57348. + INTERNAL_SYSCALL_DECL(err);
  57349. + ret = (int) (INTERNAL_SYSCALL(fallocate, err, 4, fd, 0, offset, len));
  57350. +# else
  57351. +# error your machine is neither 32 bit or 64 bit ... it must be magical
  57352. +#endif
  57353. + if (unlikely(INTERNAL_SYSCALL_ERROR_P (ret, err)))
  57354. + return INTERNAL_SYSCALL_ERRNO (ret, err);
  57355. + return 0;
  57356. +}
  57357. +# if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  57358. +strong_alias(posix_fallocate,posix_fallocate64)
  57359. +# endif
  57360. +#endif
  57361. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_madvise.c uClibc-git/libc/sysdeps/linux/common/posix_madvise.c
  57362. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/posix_madvise.c 1970-01-01 01:00:00.000000000 +0100
  57363. +++ uClibc-git/libc/sysdeps/linux/common/posix_madvise.c 2014-06-02 17:40:34.358713889 +0200
  57364. @@ -0,0 +1,25 @@
  57365. +/* vi: set sw=4 ts=4: */
  57366. +/* Licensed under the LGPL v2.1, see the file LICENSE in this tarball. */
  57367. +
  57368. +#include <sys/mman.h>
  57369. +#include <sys/syscall.h>
  57370. +
  57371. +#if defined __NR_madvise && defined __USE_XOPEN2K && defined __UCLIBC_HAS_ADVANCED_REALTIME__
  57372. +int posix_madvise(void *addr, size_t len, int advice)
  57373. +{
  57374. + int result;
  57375. + /* We have one problem: the kernel's MADV_DONTNEED does not
  57376. + * correspond to POSIX's POSIX_MADV_DONTNEED. The former simply
  57377. + * discards changes made to the memory without writing it back to
  57378. + * disk, if this would be necessary. The POSIX behaviour does not
  57379. + * allow this. There is no functionality mapping for the POSIX
  57380. + * behaviour so far so we ignore that advice for now. */
  57381. + if (advice == POSIX_MADV_DONTNEED)
  57382. + return 0;
  57383. +
  57384. + /* this part might use madvise function */
  57385. + INTERNAL_SYSCALL_DECL (err);
  57386. + result = INTERNAL_SYSCALL (madvise, err, 3, addr, len, advice);
  57387. + return INTERNAL_SYSCALL_ERRNO (result, err);
  57388. +}
  57389. +#endif
  57390. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ppoll.c uClibc-git/libc/sysdeps/linux/common/ppoll.c
  57391. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ppoll.c 2012-05-15 09:20:09.000000000 +0200
  57392. +++ uClibc-git/libc/sysdeps/linux/common/ppoll.c 2014-06-02 17:40:34.358713889 +0200
  57393. @@ -13,26 +13,22 @@
  57394. Lesser General Public License for more details.
  57395. You should have received a copy of the GNU Lesser General Public
  57396. - License along with the GNU C Library; if not, write to the Free
  57397. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  57398. - 02111-1307 USA. */
  57399. + License along with the GNU C Library; if not, see
  57400. + <http://www.gnu.org/licenses/>. */
  57401. -#include <signal.h>
  57402. #include <sys/syscall.h>
  57403. -#include <sys/poll.h>
  57404. +
  57405. +#if defined __NR_ppoll && defined __UCLIBC_LINUX_SPECIFIC__ && defined __USE_GNU
  57406. +
  57407. #define __need_NULL
  57408. #include <stddef.h>
  57409. +#include <signal.h>
  57410. +#include <sys/poll.h>
  57411. +#include <cancel.h>
  57412. -#if defined __NR_ppoll && defined __UCLIBC_LINUX_SPECIFIC__
  57413. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57414. -# include <sysdep-cancel.h>
  57415. -# else
  57416. -# define SINGLE_THREAD_P 1
  57417. -# endif
  57418. -
  57419. -int
  57420. -ppoll(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
  57421. - const sigset_t *sigmask)
  57422. +static int
  57423. +__NC(ppoll)(struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
  57424. + const sigset_t *sigmask)
  57425. {
  57426. /* The Linux kernel can in some situations update the timeout value.
  57427. We do not want that so use a local variable. */
  57428. @@ -41,15 +37,11 @@
  57429. tval = *timeout;
  57430. timeout = &tval;
  57431. }
  57432. - if (SINGLE_THREAD_P)
  57433. - return INLINE_SYSCALL(ppoll, 5, fds, nfds, timeout, sigmask, _NSIG / 8);
  57434. -
  57435. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57436. - int oldtype = LIBC_CANCEL_ASYNC ();
  57437. - int result = INLINE_SYSCALL(ppoll, 5, fds, nfds, timeout, sigmask, _NSIG / 8);
  57438. - LIBC_CANCEL_RESET (oldtype);
  57439. - return result;
  57440. -# endif
  57441. + return INLINE_SYSCALL(ppoll, 5, fds, nfds, timeout, sigmask, __SYSCALL_SIGSET_T_SIZE);
  57442. }
  57443. -libc_hidden_def(ppoll)
  57444. +
  57445. +CANCELLABLE_SYSCALL(int, ppoll, (struct pollfd *fds, nfds_t nfds, const struct timespec *timeout,
  57446. + const sigset_t *sigmask),
  57447. + (fds, nfds, timeout, sigmask))
  57448. +
  57449. #endif
  57450. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/prctl.c uClibc-git/libc/sysdeps/linux/common/prctl.c
  57451. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/prctl.c 2012-05-15 09:20:09.000000000 +0200
  57452. +++ uClibc-git/libc/sysdeps/linux/common/prctl.c 2014-06-02 17:40:34.358713889 +0200
  57453. @@ -8,10 +8,10 @@
  57454. */
  57455. #include <sys/syscall.h>
  57456. -#include <stdarg.h>
  57457. /* psm: including sys/prctl.h would depend on kernel headers */
  57458. #ifdef __NR_prctl
  57459. -extern int prctl (int, long, long, long, long);
  57460. -_syscall5(int, prctl, int, option, long, _a2, long, _a3, long, _a4, long, _a5)
  57461. +int prctl (int, long, long, long, long);
  57462. +_syscall5(int, prctl, int, option, long, _prctl_a2, long, _prctl_a3,
  57463. + long, _prctl_a4, long, _prctl_a5)
  57464. #endif
  57465. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/pread_write.c uClibc-git/libc/sysdeps/linux/common/pread_write.c
  57466. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/pread_write.c 2012-05-15 09:20:09.000000000 +0200
  57467. +++ uClibc-git/libc/sysdeps/linux/common/pread_write.c 2014-06-02 17:40:34.358713889 +0200
  57468. @@ -15,173 +15,101 @@
  57469. #include <sys/syscall.h>
  57470. #include <unistd.h>
  57471. -#include <stdint.h>
  57472. #include <endian.h>
  57473. +#include <bits/wordsize.h>
  57474. +#include <cancel.h>
  57475. -extern __typeof(pread) __libc_pread;
  57476. -extern __typeof(pwrite) __libc_pwrite;
  57477. -#ifdef __UCLIBC_HAS_LFS__
  57478. -extern __typeof(pread64) __libc_pread64;
  57479. -extern __typeof(pwrite64) __libc_pwrite64;
  57480. +#ifdef __NR_pread64
  57481. +# undef __NR_pread
  57482. +# define __NR_pread __NR_pread64
  57483. +#endif
  57484. +#ifdef __NR_pwrite64
  57485. +# undef __NR_pwrite
  57486. +# define __NR_pwrite __NR_pwrite64
  57487. #endif
  57488. -#include <bits/kernel_types.h>
  57489. -
  57490. -#ifdef __NR_pread
  57491. -
  57492. -# define __NR___syscall_pread __NR_pread
  57493. -static __inline__ _syscall5(ssize_t, __syscall_pread, int, fd, void *, buf,
  57494. - size_t, count, off_t, offset_hi, off_t, offset_lo)
  57495. -
  57496. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  57497. -{
  57498. - return __syscall_pread(fd, buf, count, __LONG_LONG_PAIR(offset >> 31, offset));
  57499. -}
  57500. -weak_alias(__libc_pread,pread)
  57501. -
  57502. -# ifdef __UCLIBC_HAS_LFS__
  57503. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  57504. -{
  57505. - uint32_t low = offset & 0xffffffff;
  57506. - uint32_t high = offset >> 32;
  57507. - return __syscall_pread(fd, buf, count, __LONG_LONG_PAIR(high, low));
  57508. -}
  57509. -weak_alias(__libc_pread64,pread64)
  57510. -# endif /* __UCLIBC_HAS_LFS__ */
  57511. -
  57512. -#endif /* __NR_pread */
  57513. -
  57514. -#ifdef __NR_pwrite
  57515. -
  57516. -# define __NR___syscall_pwrite __NR_pwrite
  57517. -static __inline__ _syscall5(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
  57518. - size_t, count, off_t, offset_hi, off_t, offset_lo)
  57519. -
  57520. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  57521. -{
  57522. - return __syscall_pwrite(fd, buf, count, __LONG_LONG_PAIR(offset >> 31, offset));
  57523. -}
  57524. -weak_alias(__libc_pwrite,pwrite)
  57525. -
  57526. -# ifdef __UCLIBC_HAS_LFS__
  57527. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  57528. -{
  57529. - uint32_t low = offset & 0xffffffff;
  57530. - uint32_t high = offset >> 32;
  57531. - return __syscall_pwrite(fd, buf, count, __LONG_LONG_PAIR(high, low));
  57532. -}
  57533. -weak_alias(__libc_pwrite64,pwrite64)
  57534. -# endif /* __UCLIBC_HAS_LFS__ */
  57535. -#endif /* __NR_pwrite */
  57536. -
  57537. -#if ! defined __NR_pread || ! defined __NR_pwrite
  57538. -
  57539. -static ssize_t __fake_pread_write(int fd, void *buf,
  57540. - size_t count, off_t offset, int do_pwrite)
  57541. -{
  57542. - int save_errno;
  57543. - ssize_t result;
  57544. - off_t old_offset;
  57545. -
  57546. - /* Since we must not change the file pointer preserve the
  57547. - * value so that we can restore it later. */
  57548. - if ((old_offset=lseek(fd, 0, SEEK_CUR)) == (off_t) -1)
  57549. - return -1;
  57550. -
  57551. - /* Set to wanted position. */
  57552. - if (lseek(fd, offset, SEEK_SET) == (off_t) -1)
  57553. - return -1;
  57554. -
  57555. - if (do_pwrite == 1) {
  57556. - /* Write the data. */
  57557. - result = write(fd, buf, count);
  57558. - } else {
  57559. - /* Read the data. */
  57560. - result = read(fd, buf, count);
  57561. - }
  57562. -
  57563. - /* Now we have to restore the position. If this fails we
  57564. - * have to return this as an error. */
  57565. - save_errno = errno;
  57566. - if (lseek(fd, old_offset, SEEK_SET) == (off_t) -1)
  57567. - {
  57568. - if (result == -1)
  57569. - __set_errno(save_errno);
  57570. - return -1;
  57571. - }
  57572. - __set_errno(save_errno);
  57573. - return(result);
  57574. -}
  57575. -
  57576. -# ifdef __UCLIBC_HAS_LFS__
  57577. +#ifndef MY_PREAD
  57578. +# ifdef __NR_pread
  57579. +# define __NR___syscall_pread __NR_pread
  57580. +# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
  57581. +static _syscall6(ssize_t, __syscall_pread, int, fd, void *, buf,
  57582. + size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
  57583. +# define MY_PREAD(fd, buf, count, offset) __syscall_pread(fd, buf, count, 0, OFF_HI_LO(offset))
  57584. +# define MY_PREAD64(fd, buf, count, offset) __syscall_pread(fd, buf, count, 0, OFF64_HI_LO(offset))
  57585. +# elif __WORDSIZE == 32
  57586. +static _syscall5(ssize_t, __syscall_pread, int, fd, void *, buf,
  57587. + size_t, count, off_t, offset_hi, off_t, offset_lo)
  57588. +# define MY_PREAD(fd, buf, count, offset) __syscall_pread(fd, buf, count, OFF_HI_LO(offset))
  57589. +# define MY_PREAD64(fd, buf, count, offset) __syscall_pread(fd, buf, count, OFF64_HI_LO(offset))
  57590. +# else
  57591. +static _syscall4(ssize_t, __syscall_pread, int, fd, void *, buf,
  57592. + size_t, count, off_t, offset)
  57593. +# define MY_PREAD(fd, buf, count, offset) __syscall_pread(fd, buf, count, offset)
  57594. +# define MY_PREAD64(fd, buf, count, offset) __syscall_pread(fd, buf, count, offset)
  57595. +# endif
  57596. +# endif
  57597. +#endif
  57598. -static ssize_t __fake_pread_write64(int fd, void *buf,
  57599. - size_t count, off64_t offset, int do_pwrite)
  57600. -{
  57601. - int save_errno;
  57602. - ssize_t result;
  57603. - off64_t old_offset;
  57604. -
  57605. - /* Since we must not change the file pointer preserve the
  57606. - * value so that we can restore it later. */
  57607. - if ((old_offset=lseek64(fd, 0, SEEK_CUR)) == (off64_t) -1)
  57608. - return -1;
  57609. -
  57610. - /* Set to wanted position. */
  57611. - if (lseek64(fd, offset, SEEK_SET) == (off64_t) -1)
  57612. - return -1;
  57613. -
  57614. - if (do_pwrite == 1) {
  57615. - /* Write the data. */
  57616. - result = write(fd, buf, count);
  57617. - } else {
  57618. - /* Read the data. */
  57619. - result = read(fd, buf, count);
  57620. - }
  57621. -
  57622. - /* Now we have to restore the position. */
  57623. - save_errno = errno;
  57624. - if (lseek64(fd, old_offset, SEEK_SET) == (off64_t) -1) {
  57625. - if (result == -1)
  57626. - __set_errno (save_errno);
  57627. - return -1;
  57628. - }
  57629. - __set_errno (save_errno);
  57630. - return result;
  57631. -}
  57632. -# endif /* __UCLIBC_HAS_LFS__ */
  57633. -#endif /* ! defined __NR_pread || ! defined __NR_pwrite */
  57634. +#ifndef MY_PWRITE
  57635. +# ifdef __NR_pwrite
  57636. +# define __NR___syscall_pwrite __NR_pwrite
  57637. +# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
  57638. +static _syscall6(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
  57639. + size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
  57640. +# define MY_PWRITE(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, 0, OFF_HI_LO(offset))
  57641. +# define MY_PWRITE64(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, 0, OFF64_HI_LO(offset))
  57642. +# elif __WORDSIZE == 32
  57643. +static _syscall5(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
  57644. + size_t, count, off_t, offset_hi, off_t, offset_lo)
  57645. +# define MY_PWRITE(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, OFF_HI_LO(offset))
  57646. +# define MY_PWRITE64(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, OFF64_HI_LO(offset))
  57647. +# else
  57648. +static _syscall4(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
  57649. + size_t, count, off_t, offset)
  57650. +# define MY_PWRITE(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, offset)
  57651. +# define MY_PWRITE64(fd, buf, count, offset) __syscall_pwrite(fd, buf, count, offset)
  57652. +# endif
  57653. +# endif
  57654. +#endif
  57655. -#ifndef __NR_pread
  57656. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  57657. +static ssize_t __NC(pread)(int fd, void *buf, size_t count, off_t offset)
  57658. {
  57659. - return __fake_pread_write(fd, buf, count, offset, 0);
  57660. + return MY_PREAD(fd, buf, count, offset);
  57661. }
  57662. -weak_alias(__libc_pread,pread)
  57663. +CANCELLABLE_SYSCALL(ssize_t, pread, (int fd, void *buf, size_t count, off_t offset),
  57664. + (fd, buf, count, offset))
  57665. -# ifdef __UCLIBC_HAS_LFS__
  57666. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  57667. +static ssize_t __NC(pwrite)(int fd, const void *buf, size_t count, off_t offset)
  57668. {
  57669. - return __fake_pread_write64(fd, buf, count, offset, 0);
  57670. + return MY_PWRITE(fd, buf, count, offset);
  57671. }
  57672. -weak_alias(__libc_pread64,pread64)
  57673. -# endif /* __UCLIBC_HAS_LFS__ */
  57674. -#endif /* ! __NR_pread */
  57675. +CANCELLABLE_SYSCALL(ssize_t, pwrite, (int fd, const void *buf, size_t count, off_t offset),
  57676. + (fd, buf, count, offset))
  57677. -#ifndef __NR_pwrite
  57678. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  57679. +#ifdef __UCLIBC_HAS_LFS__
  57680. +# if __WORDSIZE == 32
  57681. +static ssize_t __NC(pread64)(int fd, void *buf, size_t count, off64_t offset)
  57682. {
  57683. - /* we won't actually be modifying the buffer,
  57684. - *just cast it to get rid of warnings */
  57685. - return __fake_pread_write(fd, (void*)buf, count, offset, 1);
  57686. + return MY_PREAD64(fd, buf, count, offset);
  57687. }
  57688. -weak_alias(__libc_pwrite,pwrite)
  57689. +CANCELLABLE_SYSCALL(ssize_t, pread64, (int fd, void *buf, size_t count, off64_t offset),
  57690. + (fd, buf, count, offset))
  57691. -# ifdef __UCLIBC_HAS_LFS__
  57692. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  57693. -{
  57694. - return __fake_pread_write64(fd, (void*)buf, count, offset, 1);
  57695. -}
  57696. -weak_alias(__libc_pwrite64,pwrite64)
  57697. -# endif /* __UCLIBC_HAS_LFS__ */
  57698. -#endif /* ! __NR_pwrite */
  57699. +static ssize_t __NC(pwrite64)(int fd, const void *buf, size_t count, off64_t offset)
  57700. +{
  57701. + return MY_PWRITE64(fd, buf, count, offset);
  57702. +}
  57703. +CANCELLABLE_SYSCALL(ssize_t, pwrite64, (int fd, const void *buf, size_t count, off64_t offset),
  57704. + (fd, buf, count, offset))
  57705. +# else
  57706. +# ifdef __LINUXTHREADS_OLD__
  57707. +weak_alias(pread,pread64)
  57708. +weak_alias(pwrite,pwrite64)
  57709. +lt_strong_alias(pread64)
  57710. +lt_strong_alias(pwrite64)
  57711. +# else
  57712. +strong_alias_untyped(pread,pread64)
  57713. +strong_alias_untyped(pwrite,pwrite64)
  57714. +# endif
  57715. +# endif
  57716. +#endif
  57717. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/pselect.c uClibc-git/libc/sysdeps/linux/common/pselect.c
  57718. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/pselect.c 2012-05-15 09:20:09.000000000 +0200
  57719. +++ uClibc-git/libc/sysdeps/linux/common/pselect.c 2014-06-02 17:40:34.358713889 +0200
  57720. @@ -13,82 +13,53 @@
  57721. Lesser General Public License for more details.
  57722. You should have received a copy of the GNU Lesser General Public
  57723. - License along with the GNU C Library; if not, write to the Free
  57724. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  57725. - 02111-1307 USA. */
  57726. + License along with the GNU C Library; if not, see
  57727. + <http://www.gnu.org/licenses/>. */
  57728. -#include <errno.h>
  57729. -#include <signal.h>
  57730. -#include <stddef.h> /* For NULL. */
  57731. -#include <sys/time.h>
  57732. -#include <sys/select.h>
  57733. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57734. -#include <sysdep-cancel.h>
  57735. -#endif
  57736. +#include <features.h>
  57737. -libc_hidden_proto(sigprocmask)
  57738. -libc_hidden_proto(select)
  57739. +#ifdef __USE_XOPEN2K
  57740. +#include <sys/syscall.h>
  57741. +#include <sys/select.h>
  57742. +#include <sys/time.h>
  57743. +#include <signal.h>
  57744. +#include <cancel.h>
  57745. -/* Check the first NFDS descriptors each in READFDS (if not NULL) for read
  57746. - readiness, in WRITEFDS (if not NULL) for write readiness, and in EXCEPTFDS
  57747. - (if not NULL) for exceptional conditions. If TIMEOUT is not NULL, time out
  57748. - after waiting the interval specified therein. Additionally set the sigmask
  57749. - SIGMASK for this call. Returns the number of ready descriptors, or -1 for
  57750. - errors. */
  57751. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57752. -static int
  57753. -__pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
  57754. -#else
  57755. -int
  57756. -pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
  57757. -#endif
  57758. - const struct timespec *timeout, const sigset_t *sigmask)
  57759. +static int __NC(pselect)(int nfds, fd_set *readfds, fd_set *writefds,
  57760. + fd_set *exceptfds, const struct timespec *timeout,
  57761. + const sigset_t *sigmask)
  57762. {
  57763. - struct timeval tval;
  57764. - int retval;
  57765. - sigset_t savemask;
  57766. -
  57767. - /* Change nanosecond number to microseconds. This might mean losing
  57768. - precision and therefore the `pselect` should be available. But
  57769. - for now it is hardly found. */
  57770. - if (timeout != NULL)
  57771. - TIMESPEC_TO_TIMEVAL (&tval, timeout);
  57772. -
  57773. - /* The setting and restoring of the signal mask and the select call
  57774. - should be an atomic operation. This can't be done without kernel
  57775. - help. */
  57776. - if (sigmask != NULL)
  57777. - sigprocmask (SIG_SETMASK, sigmask, &savemask);
  57778. -
  57779. - /* Note the pselect() is a cancellation point. But since we call
  57780. - select() which itself is a cancellation point we do not have
  57781. - to do anything here. */
  57782. - retval = select (nfds, readfds, writefds, exceptfds,
  57783. - timeout != NULL ? &tval : NULL);
  57784. + struct timeval tval;
  57785. + int retval;
  57786. + sigset_t savemask;
  57787. +
  57788. + /* Change nanosecond number to microseconds. This might mean losing
  57789. + precision and therefore the `pselect` should be available. But
  57790. + for now it is hardly found. */
  57791. + if (timeout != NULL)
  57792. + TIMESPEC_TO_TIMEVAL (&tval, timeout);
  57793. +
  57794. + /* The setting and restoring of the signal mask and the select call
  57795. + should be an atomic operation. This can't be done without kernel
  57796. + help. */
  57797. + if (sigmask != NULL)
  57798. + sigprocmask (SIG_SETMASK, sigmask, &savemask);
  57799. +
  57800. + /* The comment below does not apply on uClibc, since we use __select_nocancel */
  57801. + /* Note the pselect() is a cancellation point. But since we call
  57802. + select() which itself is a cancellation point we do not have
  57803. + to do anything here. */
  57804. + retval = __NC(select)(nfds, readfds, writefds, exceptfds,
  57805. + timeout != NULL ? &tval : NULL);
  57806. - if (sigmask != NULL)
  57807. - sigprocmask (SIG_SETMASK, &savemask, NULL);
  57808. + if (sigmask != NULL)
  57809. + sigprocmask (SIG_SETMASK, &savemask, NULL);
  57810. - return retval;
  57811. + return retval;
  57812. }
  57813. +CANCELLABLE_SYSCALL(int, pselect, (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
  57814. + const struct timespec *timeout, const sigset_t *sigmask),
  57815. + (nfds, readfds, writefds, exceptfds, timeout, sigmask))
  57816. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57817. -int
  57818. -pselect (int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
  57819. - const struct timespec *timeout, const sigset_t *sigmask)
  57820. -{
  57821. - if (SINGLE_THREAD_P)
  57822. - return __pselect (nfds, readfds, writefds, exceptfds,
  57823. - timeout, sigmask);
  57824. -
  57825. - int oldtype = LIBC_CANCEL_ASYNC ();
  57826. -
  57827. - int result = __pselect (nfds, readfds, writefds, exceptfds,
  57828. - timeout, sigmask);
  57829. -
  57830. - LIBC_CANCEL_RESET (oldtype);
  57831. -
  57832. - return result;
  57833. -}
  57834. #endif
  57835. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/readahead.c uClibc-git/libc/sysdeps/linux/common/readahead.c
  57836. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/readahead.c 2012-05-15 09:20:09.000000000 +0200
  57837. +++ uClibc-git/libc/sysdeps/linux/common/readahead.c 2014-06-02 17:40:34.358713889 +0200
  57838. @@ -13,46 +13,33 @@
  57839. Lesser General Public License for more details.
  57840. You should have received a copy of the GNU Lesser General Public
  57841. - License along with the GNU C Library; if not, write to the Free
  57842. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  57843. - 02111-1307 USA. */
  57844. -
  57845. -#include <errno.h>
  57846. -#include <fcntl.h>
  57847. -#include <sys/types.h>
  57848. -#include <sys/syscall.h>
  57849. -#include <bits/wordsize.h>
  57850. -
  57851. -#ifdef __UCLIBC_HAS_LFS__
  57852. + License along with the GNU C Library; if not, see
  57853. + <http://www.gnu.org/licenses/>. */
  57854. -#include <_lfs_64.h>
  57855. +#include <sys/syscall.h>
  57856. -#ifdef __NR_readahead
  57857. +#if defined __NR_readahead && defined __UCLIBC_HAS_LFS__ && defined __USE_GNU
  57858. -# define __NR___readahead __NR_readahead
  57859. +# include <fcntl.h>
  57860. +# include <bits/wordsize.h>
  57861. # if __WORDSIZE == 64
  57862. -static __inline__ _syscall3(ssize_t, __readahead, int, fd,
  57863. - off_t, offset, size_t, count)
  57864. -
  57865. -ssize_t readahead(int fd, off_t offset, size_t count)
  57866. -{
  57867. - return __readahead(fd, offset, count);
  57868. -}
  57869. +_syscall3(ssize_t, readahead, int, fd, off_t, offset, size_t, count)
  57870. # else
  57871. -static __inline__ _syscall4(ssize_t, __readahead, int, fd,
  57872. - off_t, high_offset, off_t, low_offset, size_t, count)
  57873. -
  57874. ssize_t readahead(int fd, off64_t offset, size_t count)
  57875. {
  57876. - return __readahead(fd, (off_t) (offset >> 32), (off_t) (offset & 0xffffffff), count);
  57877. + return INLINE_SYSCALL(readahead,
  57878. +# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
  57879. + 5, fd, 0,
  57880. +# else
  57881. + 4, fd,
  57882. +# endif
  57883. + OFF64_HI_LO(offset), count);
  57884. }
  57885. # endif
  57886. #endif
  57887. -
  57888. -#endif /* __UCLIBC_HAS_LFS__ */
  57889. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/read.c uClibc-git/libc/sysdeps/linux/common/read.c
  57890. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/read.c 2012-05-15 09:20:09.000000000 +0200
  57891. +++ uClibc-git/libc/sysdeps/linux/common/read.c 2014-06-02 17:40:34.358713889 +0200
  57892. @@ -9,11 +9,11 @@
  57893. #include <sys/syscall.h>
  57894. #include <unistd.h>
  57895. +#include <cancel.h>
  57896. -_syscall3(ssize_t, read, int, fd, __ptr_t, buf, size_t, count)
  57897. -#ifndef __LINUXTHREADS_OLD__
  57898. -libc_hidden_def(read)
  57899. -#else
  57900. -libc_hidden_weak(read)
  57901. -strong_alias(read,__libc_read)
  57902. -#endif
  57903. +#define __NR___read_nocancel __NR_read
  57904. +_syscall3(ssize_t, __NC(read), int, fd, void *, buf, size_t, count)
  57905. +
  57906. +CANCELLABLE_SYSCALL(ssize_t, read, (int fd, void *buf, size_t count),
  57907. + (fd, buf, count))
  57908. +lt_libc_hidden(read)
  57909. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/readlinkat.c uClibc-git/libc/sysdeps/linux/common/readlinkat.c
  57910. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/readlinkat.c 2012-05-15 09:20:09.000000000 +0200
  57911. +++ uClibc-git/libc/sysdeps/linux/common/readlinkat.c 2014-06-02 17:40:34.358713889 +0200
  57912. @@ -11,6 +11,7 @@
  57913. #ifdef __NR_readlinkat
  57914. _syscall4(ssize_t, readlinkat, int, fd, const char *, path, char *, buf, size_t, len)
  57915. +libc_hidden_def(readlinkat)
  57916. #else
  57917. /* should add emulation with readlink() and /proc/self/fd/ ... */
  57918. #endif
  57919. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/readlink.c uClibc-git/libc/sysdeps/linux/common/readlink.c
  57920. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/readlink.c 2012-05-15 09:20:09.000000000 +0200
  57921. +++ uClibc-git/libc/sysdeps/linux/common/readlink.c 2014-06-02 17:40:34.358713889 +0200
  57922. @@ -10,5 +10,13 @@
  57923. #include <sys/syscall.h>
  57924. #include <unistd.h>
  57925. +#if defined(__NR_readlinkat) && !defined(__NR_readlink)
  57926. +# include <fcntl.h>
  57927. +ssize_t readlink (const char *path, char *buf, size_t len)
  57928. +{
  57929. + return readlinkat(AT_FDCWD, path, buf, len);
  57930. +}
  57931. +#else
  57932. _syscall3(ssize_t, readlink, const char *, path, char *, buf, size_t, bufsiz)
  57933. +#endif
  57934. libc_hidden_def(readlink)
  57935. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/readv.c uClibc-git/libc/sysdeps/linux/common/readv.c
  57936. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/readv.c 2012-05-15 09:20:09.000000000 +0200
  57937. +++ uClibc-git/libc/sysdeps/linux/common/readv.c 2014-06-02 17:40:34.358713889 +0200
  57938. @@ -10,41 +10,21 @@
  57939. #include <sys/syscall.h>
  57940. #include <sys/uio.h>
  57941. -
  57942. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  57943. -#include <sysdep-cancel.h>
  57944. +#include <cancel.h>
  57945. /* We should deal with kernel which have a smaller UIO_FASTIOV as well
  57946. as a very big count. */
  57947. -static ssize_t __readv (int fd, const struct iovec *vector, int count)
  57948. +static ssize_t __NC(readv)(int fd, const struct iovec *vector, int count)
  57949. {
  57950. - ssize_t bytes_read;
  57951. -
  57952. - bytes_read = INLINE_SYSCALL (readv, 3, fd, vector, count);
  57953. -
  57954. - if (bytes_read >= 0 || errno != EINVAL || count <= UIO_FASTIOV)
  57955. - return bytes_read;
  57956. -
  57957. - /* glibc tries again, but we do not. */
  57958. - //return __atomic_readv_replacement (fd, vector, count);
  57959. -
  57960. - return -1;
  57961. -}
  57962. -
  57963. -ssize_t readv (int fd, const struct iovec *vector, int count)
  57964. -{
  57965. - if (SINGLE_THREAD_P)
  57966. - return __readv (fd, vector, count);
  57967. -
  57968. - int oldtype = LIBC_CANCEL_ASYNC ();
  57969. + ssize_t bytes_read = INLINE_SYSCALL(readv, 3, fd, vector, count);
  57970. - int result = __readv (fd, vector, count);
  57971. + if (bytes_read >= 0 || errno != EINVAL || count <= UIO_FASTIOV)
  57972. + return bytes_read;
  57973. - LIBC_CANCEL_RESET (oldtype);
  57974. + /* glibc tries again, but we do not. */
  57975. + /* return __atomic_readv_replacement (fd, vector, count); */
  57976. - return result;
  57977. + return -1;
  57978. }
  57979. -#else
  57980. -_syscall3(ssize_t, readv, int, filedes, const struct iovec *, vector,
  57981. - int, count)
  57982. -#endif
  57983. +CANCELLABLE_SYSCALL(ssize_t, readv, (int fd, const struct iovec *vector, int count),
  57984. + (fd, vector, count))
  57985. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/renameat.c uClibc-git/libc/sysdeps/linux/common/renameat.c
  57986. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/renameat.c 2012-05-15 09:20:09.000000000 +0200
  57987. +++ uClibc-git/libc/sysdeps/linux/common/renameat.c 2014-06-02 17:40:34.358713889 +0200
  57988. @@ -11,6 +11,7 @@
  57989. #ifdef __NR_renameat
  57990. _syscall4(int, renameat, int, oldfd, const char *, old, int, newfd, const char *, new)
  57991. +libc_hidden_def(renameat)
  57992. #else
  57993. /* should add emulation with rename() and /proc/self/fd/ ... */
  57994. #endif
  57995. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/rename.c uClibc-git/libc/sysdeps/linux/common/rename.c
  57996. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/rename.c 2012-05-15 09:20:09.000000000 +0200
  57997. +++ uClibc-git/libc/sysdeps/linux/common/rename.c 2014-06-02 17:40:34.358713889 +0200
  57998. @@ -8,17 +8,15 @@
  57999. */
  58000. #include <sys/syscall.h>
  58001. -#include <unistd.h>
  58002. -#include <string.h>
  58003. -#include <sys/param.h>
  58004. #include <stdio.h>
  58005. +#include <unistd.h>
  58006. -#define __NR___syscall_rename __NR_rename
  58007. -static __inline__ _syscall2(int, __syscall_rename, const char *, oldpath,
  58008. - const char *, newpath)
  58009. -
  58010. -int rename(const char * oldpath, const char * newpath)
  58011. +#if defined __NR_renameat && !defined __NR_rename
  58012. +# include <fcntl.h>
  58013. +int rename(const char *oldpath, const char *newpath)
  58014. {
  58015. - return __syscall_rename(oldpath, newpath);
  58016. + return renameat(AT_FDCWD, oldpath, AT_FDCWD, newpath);
  58017. }
  58018. -
  58019. +#else
  58020. +_syscall2(int, rename, const char *, oldpath, const char *, newpath)
  58021. +#endif
  58022. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/rmdir.c uClibc-git/libc/sysdeps/linux/common/rmdir.c
  58023. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/rmdir.c 2012-05-15 09:20:09.000000000 +0200
  58024. +++ uClibc-git/libc/sysdeps/linux/common/rmdir.c 2014-06-02 17:40:34.358713889 +0200
  58025. @@ -11,5 +11,13 @@
  58026. #include <unistd.h>
  58027. +#if defined __NR_unlinkat && !defined __NR_rmdir
  58028. +# include <fcntl.h>
  58029. +int rmdir(const char *pathname)
  58030. +{
  58031. + return unlinkat(AT_FDCWD, pathname, AT_REMOVEDIR);
  58032. +}
  58033. +#else
  58034. _syscall1(int, rmdir, const char *, pathname)
  58035. +#endif
  58036. libc_hidden_def(rmdir)
  58037. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__rt_sigtimedwait.c uClibc-git/libc/sysdeps/linux/common/__rt_sigtimedwait.c
  58038. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/__rt_sigtimedwait.c 2012-05-15 09:20:09.000000000 +0200
  58039. +++ uClibc-git/libc/sysdeps/linux/common/__rt_sigtimedwait.c 2014-06-02 17:40:34.338713778 +0200
  58040. @@ -9,42 +9,49 @@
  58041. */
  58042. #include <sys/syscall.h>
  58043. -#include <signal.h>
  58044. -#include <string.h>
  58045. #ifdef __NR_rt_sigtimedwait
  58046. -
  58047. +# include <signal.h>
  58048. +# include <cancel.h>
  58049. # ifdef __UCLIBC_HAS_THREADS_NATIVE__
  58050. -# include <sysdep-cancel.h>
  58051. # include <pthreadP.h> /* SIGCANCEL */
  58052. +# endif
  58053. +# ifdef SIGCANCEL
  58054. +# define __need_NULL
  58055. +# include <stddef.h>
  58056. +# include <string.h>
  58057. +# endif
  58058. -static int do_sigtimedwait(const sigset_t *set, siginfo_t *info,
  58059. - const struct timespec *timeout)
  58060. +int __NC(sigtimedwait)(const sigset_t *set, siginfo_t *info,
  58061. + const struct timespec *timeout)
  58062. {
  58063. -# ifdef SIGCANCEL
  58064. +# ifdef SIGCANCEL
  58065. sigset_t tmpset;
  58066. - if (set != NULL && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
  58067. -# ifdef SIGSETXID
  58068. - || __builtin_expect (__sigismember (set, SIGSETXID), 0)
  58069. -# endif
  58070. + if (set != NULL && (unlikely (__sigismember (set, SIGCANCEL))
  58071. +# ifdef SIGSETXID
  58072. + || unlikely (__sigismember (set, SIGSETXID))
  58073. +# endif
  58074. ))
  58075. {
  58076. /* Create a temporary mask without the bit for SIGCANCEL set. */
  58077. // We are not copying more than we have to.
  58078. memcpy (&tmpset, set, _NSIG / 8);
  58079. __sigdelset (&tmpset, SIGCANCEL);
  58080. -# ifdef SIGSETXID
  58081. +# ifdef SIGSETXID
  58082. __sigdelset (&tmpset, SIGSETXID);
  58083. -# endif
  58084. +# endif
  58085. set = &tmpset;
  58086. }
  58087. -# endif
  58088. +# endif
  58089. +/* if this is enabled, enable the disabled section in sigwait.c */
  58090. +# if defined SI_TKILL && defined SI_USER
  58091. /* XXX The size argument hopefully will have to be changed to the
  58092. real size of the user-level sigset_t. */
  58093. - int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set, info,
  58094. - timeout, _NSIG / 8);
  58095. + /* on uClibc we use the kernel sigset_t size */
  58096. + int result = INLINE_SYSCALL(rt_sigtimedwait, 4, set, info,
  58097. + timeout, __SYSCALL_SIGSET_T_SIZE);
  58098. /* The kernel generates a SI_TKILL code in si_code in case tkill is
  58099. used. tkill is transparently used in raise(). Since having
  58100. @@ -54,39 +61,14 @@
  58101. info->si_code = SI_USER;
  58102. return result;
  58103. -}
  58104. -
  58105. -/* Return any pending signal or wait for one for the given time. */
  58106. -int attribute_hidden __sigtimedwait(const sigset_t *set, siginfo_t *info,
  58107. - const struct timespec *timeout)
  58108. -{
  58109. - if(SINGLE_THREAD_P)
  58110. - return do_sigtimedwait(set, info, timeout);
  58111. -
  58112. - int oldtype = LIBC_CANCEL_ASYNC();
  58113. -
  58114. - /* XXX The size argument hopefully will have to be changed to the
  58115. - real size of the user-level sigset_t. */
  58116. - int result = do_sigtimedwait(set, info, timeout);
  58117. -
  58118. - LIBC_CANCEL_RESET(oldtype);
  58119. -
  58120. - return result;
  58121. -}
  58122. # else
  58123. -# define __need_NULL
  58124. -# include <stddef.h>
  58125. -# define __NR___rt_sigtimedwait __NR_rt_sigtimedwait
  58126. -static _syscall4(int, __rt_sigtimedwait, const sigset_t *, set,
  58127. - siginfo_t *, info, const struct timespec *, timeout,
  58128. - size_t, setsize);
  58129. -
  58130. -int attribute_hidden __sigtimedwait(const sigset_t * set, siginfo_t * info,
  58131. - const struct timespec *timeout)
  58132. -{
  58133. - return __rt_sigtimedwait(set, info, timeout, _NSIG / 8);
  58134. + /* on uClibc we use the kernel sigset_t size */
  58135. + return INLINE_SYSCALL(rt_sigtimedwait, 4, set, info,
  58136. + timeout, __SYSCALL_SIGSET_T_SIZE);
  58137. +# endif
  58138. }
  58139. -# endif /* !__UCLIBC_HAS_THREADS_NATIVE__ */
  58140. -weak_alias(__sigtimedwait,sigtimedwait)
  58141. -libc_hidden_weak(sigtimedwait)
  58142. +CANCELLABLE_SYSCALL(int, sigtimedwait,
  58143. + (const sigset_t *set, siginfo_t *info, const struct timespec *timeout),
  58144. + (set, info, timeout))
  58145. +lt_libc_hidden(sigtimedwait)
  58146. #endif
  58147. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__rt_sigwaitinfo.c uClibc-git/libc/sysdeps/linux/common/__rt_sigwaitinfo.c
  58148. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/__rt_sigwaitinfo.c 2012-05-15 09:20:09.000000000 +0200
  58149. +++ uClibc-git/libc/sysdeps/linux/common/__rt_sigwaitinfo.c 2014-06-02 17:40:34.338713778 +0200
  58150. @@ -9,81 +9,17 @@
  58151. */
  58152. #include <sys/syscall.h>
  58153. -#include <signal.h>
  58154. -#include <string.h>
  58155. #ifdef __NR_rt_sigtimedwait
  58156. +# define __need_NULL
  58157. +# include <stddef.h>
  58158. +# include <signal.h>
  58159. +# include <cancel.h>
  58160. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  58161. -# include <sysdep-cancel.h>
  58162. -
  58163. -static int do_sigwaitinfo(const sigset_t *set, siginfo_t *info)
  58164. -{
  58165. -# ifdef SIGCANCEL
  58166. - sigset_t tmpset;
  58167. -
  58168. - if (set != NULL && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
  58169. -# ifdef SIGSETXID
  58170. - || __builtin_expect (__sigismember (set, SIGSETXID), 0)
  58171. -# endif
  58172. - ))
  58173. - {
  58174. - /* Create a temporary mask without the bit for SIGCANCEL set. */
  58175. - // We are not copying more than we have to.
  58176. - memcpy (&tmpset, set, _NSIG / 8);
  58177. - __sigdelset (&tmpset, SIGCANCEL);
  58178. -# ifdef SIGSETXID
  58179. - __sigdelset (&tmpset, SIGSETXID);
  58180. -# endif
  58181. - set = &tmpset;
  58182. - }
  58183. -# endif
  58184. -
  58185. - /* XXX The size argument hopefully will have to be changed to the
  58186. - real size of the user-level sigset_t. */
  58187. - int result = INLINE_SYSCALL (rt_sigtimedwait, 4, set, info,
  58188. - NULL, _NSIG / 8);
  58189. -
  58190. - /* The kernel generates a SI_TKILL code in si_code in case tkill is
  58191. - used. tkill is transparently used in raise(). Since having
  58192. - SI_TKILL as a code is useful in general we fold the results
  58193. - here. */
  58194. - if (result != -1 && info != NULL && info->si_code == SI_TKILL)
  58195. - info->si_code = SI_USER;
  58196. -
  58197. - return result;
  58198. -}
  58199. -
  58200. -/* Return any pending signal or wait for one for the given time. */
  58201. -int __sigwaitinfo(const sigset_t *set, siginfo_t *info)
  58202. -{
  58203. - if(SINGLE_THREAD_P)
  58204. - return do_sigwaitinfo(set, info);
  58205. -
  58206. - int oldtype = LIBC_CANCEL_ASYNC();
  58207. -
  58208. - /* XXX The size argument hopefully will have to be changed to the
  58209. - real size of the user-level sigset_t. */
  58210. - int result = do_sigwaitinfo(set, info);
  58211. -
  58212. - LIBC_CANCEL_RESET(oldtype);
  58213. -
  58214. - return result;
  58215. -}
  58216. -# else
  58217. -# define __need_NULL
  58218. -# include <stddef.h>
  58219. -# define __NR___rt_sigwaitinfo __NR_rt_sigtimedwait
  58220. -static _syscall4(int, __rt_sigwaitinfo, const sigset_t *, set,
  58221. - siginfo_t *, info, const struct timespec *, timeout,
  58222. - size_t, setsize);
  58223. -
  58224. -int attribute_hidden __sigwaitinfo(const sigset_t * set, siginfo_t * info)
  58225. +int sigwaitinfo(const sigset_t *set, siginfo_t *info)
  58226. {
  58227. - return __rt_sigwaitinfo(set, info, NULL, _NSIG / 8);
  58228. + return sigtimedwait(set, info, NULL);
  58229. }
  58230. -# endif
  58231. -libc_hidden_proto(sigwaitinfo)
  58232. -weak_alias (__sigwaitinfo, sigwaitinfo)
  58233. -libc_hidden_weak(sigwaitinfo)
  58234. +/* cancellation handled by sigtimedwait, noop on uClibc */
  58235. +LIBC_CANCEL_HANDLED();
  58236. #endif
  58237. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_cpucount.c uClibc-git/libc/sysdeps/linux/common/sched_cpucount.c
  58238. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_cpucount.c 2012-05-15 09:20:09.000000000 +0200
  58239. +++ uClibc-git/libc/sysdeps/linux/common/sched_cpucount.c 2014-06-02 17:40:34.358713889 +0200
  58240. @@ -12,9 +12,8 @@
  58241. Lesser General Public License for more details.
  58242. You should have received a copy of the GNU Lesser General Public
  58243. - License along with the GNU C Library; if not, write to the Free
  58244. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  58245. - 02111-1307 USA. */
  58246. + License along with the GNU C Library; if not, see
  58247. + <http://www.gnu.org/licenses/>. */
  58248. #include <limits.h>
  58249. #include <sched.h>
  58250. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_getaffinity.c uClibc-git/libc/sysdeps/linux/common/sched_getaffinity.c
  58251. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_getaffinity.c 2012-05-15 09:20:09.000000000 +0200
  58252. +++ uClibc-git/libc/sysdeps/linux/common/sched_getaffinity.c 2014-06-02 17:40:34.358713889 +0200
  58253. @@ -12,24 +12,19 @@
  58254. Lesser General Public License for more details.
  58255. You should have received a copy of the GNU Lesser General Public
  58256. - License along with the GNU C Library; if not, write to the Free
  58257. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  58258. - 02111-1307 USA. */
  58259. + License along with the GNU C Library; if not, see
  58260. + <http://www.gnu.org/licenses/>. */
  58261. -#include <features.h>
  58262. -#ifdef __USE_GNU
  58263. -
  58264. -#include <sched.h>
  58265. -#include <sys/types.h>
  58266. #include <sys/syscall.h>
  58267. -#include <string.h>
  58268. -#include <sys/param.h>
  58269. -
  58270. -#if defined __NR_sched_getaffinity
  58271. -#define __NR___syscall_sched_getaffinity __NR_sched_getaffinity
  58272. -static __inline__ _syscall3(int, __syscall_sched_getaffinity, __kernel_pid_t, pid,
  58273. - size_t, cpusetsize, cpu_set_t *, cpuset)
  58274. +#if defined __NR_sched_getaffinity && defined __USE_GNU
  58275. +# include <sched.h>
  58276. +# include <string.h>
  58277. +# include <sys/types.h>
  58278. +# include <sys/param.h>
  58279. +# define __NR___syscall_sched_getaffinity __NR_sched_getaffinity
  58280. +static __always_inline _syscall3(int, __syscall_sched_getaffinity, __kernel_pid_t, pid,
  58281. + size_t, cpusetsize, cpu_set_t *, cpuset)
  58282. int sched_getaffinity(pid_t pid, size_t cpusetsize, cpu_set_t *cpuset)
  58283. {
  58284. @@ -45,4 +40,3 @@
  58285. return res;
  58286. }
  58287. #endif
  58288. -#endif
  58289. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_setaffinity.c uClibc-git/libc/sysdeps/linux/common/sched_setaffinity.c
  58290. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sched_setaffinity.c 2012-05-15 09:20:09.000000000 +0200
  58291. +++ uClibc-git/libc/sysdeps/linux/common/sched_setaffinity.c 2014-06-02 17:40:34.358713889 +0200
  58292. @@ -12,26 +12,20 @@
  58293. Lesser General Public License for more details.
  58294. You should have received a copy of the GNU Lesser General Public
  58295. - License along with the GNU C Library; if not, write to the Free
  58296. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  58297. - 02111-1307 USA. */
  58298. + License along with the GNU C Library; if not, see
  58299. + <http://www.gnu.org/licenses/>. */
  58300. -#include <features.h>
  58301. -#ifdef __USE_GNU
  58302. -
  58303. -#include <sched.h>
  58304. -#include <sys/types.h>
  58305. #include <sys/syscall.h>
  58306. -#include <string.h>
  58307. -#include <unistd.h>
  58308. -#include <sys/param.h>
  58309. -#include <alloca.h>
  58310. -
  58311. -#if defined __NR_sched_setaffinity
  58312. -
  58313. -#define __NR___syscall_sched_setaffinity __NR_sched_setaffinity
  58314. -static __inline__ _syscall3(int, __syscall_sched_setaffinity, __kernel_pid_t, pid,
  58315. - size_t, cpusetsize, cpu_set_t *, cpuset)
  58316. +
  58317. +#if defined __NR_sched_setaffinity && defined __USE_GNU
  58318. +# include <sched.h>
  58319. +# include <sys/types.h>
  58320. +# include <string.h>
  58321. +# include <unistd.h>
  58322. +# include <alloca.h>
  58323. +# define __NR___syscall_sched_setaffinity __NR_sched_setaffinity
  58324. +static __always_inline _syscall3(int, __syscall_sched_setaffinity, __kernel_pid_t, pid,
  58325. + size_t, cpusetsize, const cpu_set_t *, cpuset)
  58326. static size_t __kernel_cpumask_size;
  58327. @@ -68,7 +62,6 @@
  58328. return -1;
  58329. }
  58330. - return INLINE_SYSCALL (sched_setaffinity, 3, pid, cpusetsize, cpuset);
  58331. + return __syscall_sched_setaffinity(pid, cpusetsize, cpuset);
  58332. }
  58333. #endif
  58334. -#endif /* __USE_GNU */
  58335. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/select.c uClibc-git/libc/sysdeps/linux/common/select.c
  58336. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/select.c 2012-05-15 09:20:09.000000000 +0200
  58337. +++ uClibc-git/libc/sysdeps/linux/common/select.c 2014-06-02 17:40:34.362713911 +0200
  58338. @@ -9,27 +9,24 @@
  58339. #include <sys/syscall.h>
  58340. #include <sys/select.h>
  58341. -#include <stdint.h>
  58342. +#include <cancel.h>
  58343. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  58344. -#include <sysdep-cancel.h>
  58345. -#else
  58346. -#define SINGLE_THREAD_P 1
  58347. +#ifdef __NR__newselect
  58348. +# undef __NR_select
  58349. +# define __NR_select __NR__newselect
  58350. #endif
  58351. -#define USEC_PER_SEC 1000000L
  58352. -
  58353. -extern __typeof(select) __libc_select;
  58354. -
  58355. -#if !defined(__NR__newselect) && !defined(__NR_select) && defined __USE_XOPEN2K
  58356. -# define __NR___libc_pselect6 __NR_pselect6
  58357. -static _syscall6(int, __libc_pselect6, int, n, fd_set *, readfds, fd_set *, writefds,
  58358. - fd_set *, exceptfds, const struct timespec *, timeout,
  58359. - const sigset_t *, sigmask)
  58360. +#if !defined __NR_select && defined __NR_pselect6
  58361. +# include <stdint.h>
  58362. +# define USEC_PER_SEC 1000000L
  58363. +#endif
  58364. -int __libc_select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
  58365. - struct timeval *timeout)
  58366. +int __NC(select)(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
  58367. + struct timeval *timeout)
  58368. {
  58369. +#ifdef __NR_select
  58370. + return INLINE_SYSCALL(select, 5, n, readfds, writefds, exceptfds, timeout);
  58371. +#elif defined __NR_pselect6
  58372. struct timespec _ts, *ts = 0;
  58373. if (timeout) {
  58374. uint32_t usec;
  58375. @@ -51,44 +48,14 @@
  58376. ts = &_ts;
  58377. }
  58378. -
  58379. - if (SINGLE_THREAD_P)
  58380. - return __libc_pselect6(n, readfds, writefds, exceptfds, ts, 0);
  58381. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  58382. - int oldtype = LIBC_CANCEL_ASYNC ();
  58383. - int result = __libc_pselect6(n, readfds, writefds, exceptfds, ts, 0);
  58384. - LIBC_CANCEL_RESET (oldtype);
  58385. - return result;
  58386. -#endif
  58387. -
  58388. -}
  58389. -
  58390. -#else
  58391. -
  58392. -#ifdef __NR__newselect
  58393. -# define __NR___syscall_select __NR__newselect
  58394. -#else
  58395. -# define __NR___syscall_select __NR_select
  58396. -#endif
  58397. -
  58398. -static _syscall5(int, __syscall_select, int, n, fd_set *, readfds,
  58399. - fd_set *, writefds, fd_set *, exceptfds, struct timeval *, timeout);
  58400. -
  58401. -int __libc_select(int n, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
  58402. - struct timeval *timeout)
  58403. -{
  58404. - if (SINGLE_THREAD_P)
  58405. - return __syscall_select(n, readfds, writefds, exceptfds, timeout);
  58406. -
  58407. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  58408. - int oldtype = LIBC_CANCEL_ASYNC ();
  58409. - int result = __syscall_select(n, readfds, writefds, exceptfds, timeout);
  58410. - LIBC_CANCEL_RESET (oldtype);
  58411. - return result;
  58412. + return INLINE_SYSCALL(pselect6, 6, n, readfds, writefds, exceptfds, ts, 0);
  58413. #endif
  58414. }
  58415. -
  58416. +/* we should guard it, but we need it in other files, so let it fail
  58417. + * if we miss any of the syscalls */
  58418. +#if 1 /*defined __NR_select || defined __NR_pselect6*/
  58419. +CANCELLABLE_SYSCALL(int, select, (int n, fd_set *readfds, fd_set *writefds,
  58420. + fd_set *exceptfds, struct timeval *timeout),
  58421. + (n, readfds, writefds, exceptfds, timeout))
  58422. +lt_libc_hidden(select)
  58423. #endif
  58424. -
  58425. -weak_alias(__libc_select,select)
  58426. -libc_hidden_weak(select)
  58427. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sendfile64.c uClibc-git/libc/sysdeps/linux/common/sendfile64.c
  58428. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sendfile64.c 2012-05-15 09:20:09.000000000 +0200
  58429. +++ uClibc-git/libc/sysdeps/linux/common/sendfile64.c 2014-06-02 17:40:34.362713911 +0200
  58430. @@ -10,15 +10,12 @@
  58431. * just the macro we need to order things, __LONG_LONG_PAIR.
  58432. */
  58433. -#include <features.h>
  58434. -#include <unistd.h>
  58435. -#include <errno.h>
  58436. -#include <endian.h>
  58437. -#include <stdint.h>
  58438. -#include <sys/sendfile.h>
  58439. +#include <_lfs_64.h>
  58440. #include <sys/syscall.h>
  58441. #include <bits/wordsize.h>
  58442. -#if defined __UCLIBC_HAS_LFS__ && defined __NR_sendfile64
  58443. +#if defined __NR_sendfile64 && __WORDSIZE != 64
  58444. +# include <sys/sendfile.h>
  58445. _syscall4(ssize_t,sendfile64, int, out_fd, int, in_fd, __off64_t *, offset, size_t, count)
  58446. +libc_hidden_def(sendfile64)
  58447. #endif
  58448. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sendfile.c uClibc-git/libc/sysdeps/linux/common/sendfile.c
  58449. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sendfile.c 2012-05-15 09:20:09.000000000 +0200
  58450. +++ uClibc-git/libc/sysdeps/linux/common/sendfile.c 2014-06-02 17:40:34.362713911 +0200
  58451. @@ -8,16 +8,57 @@
  58452. */
  58453. #include <sys/syscall.h>
  58454. -#include <unistd.h>
  58455. -#include <sys/sendfile.h>
  58456. -#ifdef __NR_sendfile
  58457. +# include <sys/sendfile.h>
  58458. +# include <bits/wordsize.h>
  58459. +#if defined __NR_sendfile
  58460. _syscall4(ssize_t, sendfile, int, out_fd, int, in_fd, __off_t *, offset,
  58461. - size_t, count)
  58462. + size_t, count)
  58463. +# if defined __UCLIBC_HAS_LFS__ && (!defined __NR_sendfile64 || __WORDSIZE == 64)
  58464. +libc_hidden_def(sendfile64)
  58465. +strong_alias_untyped(sendfile,sendfile64)
  58466. +# endif
  58467. -#if ! defined __NR_sendfile64 && defined __UCLIBC_HAS_LFS__
  58468. -strong_alias(sendfile,sendfile64)
  58469. -#endif
  58470. +#elif defined __NR_sendfile64 && !defined __NR_sendfile
  58471. +# include <unistd.h>
  58472. +# include <stddef.h>
  58473. +
  58474. +ssize_t sendfile(int out_fd, int in_fd, __off_t *offset, size_t count)
  58475. +{
  58476. + __off64_t off64, *off;
  58477. + ssize_t res;
  58478. +
  58479. + /*
  58480. + * Check if valid fds and valid pointers were passed
  58481. + * This does not prevent the user from passing
  58482. + * an arbitrary pointer causing a segfault or
  58483. + * other security issues
  58484. + */
  58485. +
  58486. + if (in_fd < 0 || out_fd < 0) {
  58487. + __set_errno(EBADF);
  58488. + return -1;
  58489. + }
  58490. +
  58491. + if (offset == NULL || (int)offset < 0) {
  58492. + __set_errno(EFAULT);
  58493. + return -1;
  58494. + }
  58495. -#endif /* __NR_sendfile */
  58496. + if (offset) {
  58497. + off = &off64;
  58498. + off64 = *offset;
  58499. + } else {
  58500. + off = NULL;
  58501. + }
  58502. +
  58503. + res = INLINE_SYSCALL(sendfile64, 4, out_fd, in_fd, off, count);
  58504. +
  58505. + if (res >= 0)
  58506. + *offset = off64;
  58507. +
  58508. + return res;
  58509. +}
  58510. +
  58511. +#endif
  58512. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setgroups.c uClibc-git/libc/sysdeps/linux/common/setgroups.c
  58513. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/setgroups.c 2012-05-15 09:20:09.000000000 +0200
  58514. +++ uClibc-git/libc/sysdeps/linux/common/setgroups.c 2014-06-02 17:40:34.362713911 +0200
  58515. @@ -8,12 +8,9 @@
  58516. */
  58517. #include <sys/syscall.h>
  58518. -#include <stdlib.h>
  58519. -#include <unistd.h>
  58520. -#include <grp.h>
  58521. #ifdef __USE_BSD
  58522. -
  58523. +#include <grp.h>
  58524. #if defined(__NR_setgroups32)
  58525. # undef __NR_setgroups
  58526. @@ -24,11 +21,14 @@
  58527. _syscall2(int, setgroups, size_t, size, const gid_t *, list)
  58528. #else
  58529. -
  58530. -
  58531. -#define __NR___syscall_setgroups __NR_setgroups
  58532. -static __inline__ _syscall2(int, __syscall_setgroups,
  58533. - size_t, size, const __kernel_gid_t *, list)
  58534. +# include <errno.h>
  58535. +# include <stdlib.h>
  58536. +# include <unistd.h>
  58537. +# include <sys/types.h>
  58538. +
  58539. +# define __NR___syscall_setgroups __NR_setgroups
  58540. +static __always_inline _syscall2(int, __syscall_setgroups,
  58541. + size_t, size, const __kernel_gid_t *, list)
  58542. int setgroups(size_t size, const gid_t *groups)
  58543. {
  58544. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setpgrp.c uClibc-git/libc/sysdeps/linux/common/setpgrp.c
  58545. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/setpgrp.c 2012-05-15 09:20:09.000000000 +0200
  58546. +++ uClibc-git/libc/sysdeps/linux/common/setpgrp.c 2014-06-02 17:40:34.362713911 +0200
  58547. @@ -4,10 +4,8 @@
  58548. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  58549. */
  58550. -#include <syscall.h>
  58551. #include <unistd.h>
  58552. -
  58553. int setpgrp(void)
  58554. {
  58555. return setpgid(0,0);
  58556. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setrlimit64.c uClibc-git/libc/sysdeps/linux/common/setrlimit64.c
  58557. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/setrlimit64.c 2012-05-15 09:20:09.000000000 +0200
  58558. +++ uClibc-git/libc/sysdeps/linux/common/setrlimit64.c 2014-06-02 17:40:34.362713911 +0200
  58559. @@ -12,20 +12,16 @@
  58560. Lesser General Public License for more details.
  58561. You should have received a copy of the GNU Lesser General Public
  58562. - License along with the GNU C Library; if not, write to the Free
  58563. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  58564. - 02111-1307 USA. */
  58565. + License along with the GNU C Library; if not, see
  58566. + <http://www.gnu.org/licenses/>. */
  58567. #include <_lfs_64.h>
  58568. -
  58569. -#include <sys/types.h>
  58570. -#include <sys/resource.h>
  58571. #include <bits/wordsize.h>
  58572. /* the regular setrlimit will work just fine for 64bit users */
  58573. +#if __WORDSIZE == 32
  58574. -#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 32
  58575. -
  58576. +# include <sys/resource.h>
  58577. /* Set the soft and hard limits for RESOURCE to *RLIMITS.
  58578. Only the super-user can increase hard limits.
  58579. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setrlimit.c uClibc-git/libc/sysdeps/linux/common/setrlimit.c
  58580. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/setrlimit.c 2012-05-15 09:20:09.000000000 +0200
  58581. +++ uClibc-git/libc/sysdeps/linux/common/setrlimit.c 2014-06-02 17:40:34.362713911 +0200
  58582. @@ -7,12 +7,9 @@
  58583. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  58584. */
  58585. -#define setrlimit64 __hide_setrlimit64
  58586. #include <sys/syscall.h>
  58587. -#include <unistd.h>
  58588. #include <sys/resource.h>
  58589. -#undef setrlimit64
  58590. -
  58591. +#include <bits/wordsize.h>
  58592. /* Only wrap setrlimit if the new usetrlimit is not present and setrlimit sucks */
  58593. @@ -25,7 +22,7 @@
  58594. const struct rlimit *, rlim)
  58595. int setrlimit(__rlimit_resource_t resource, struct rlimit *rlimits)
  58596. {
  58597. - return (__syscall_usetrlimit(resource, rlimits));
  58598. + return __syscall_usetrlimit(resource, rlimits);
  58599. }
  58600. #elif !defined(__UCLIBC_HANDLE_OLDER_RLIMIT__)
  58601. @@ -36,6 +33,11 @@
  58602. #else
  58603. +# define __need_NULL
  58604. +# include <stddef.h>
  58605. +# include <errno.h>
  58606. +# include <sys/param.h>
  58607. +
  58608. /* we have to handle old style setrlimit() */
  58609. # define __NR___syscall_setrlimit __NR_setrlimit
  58610. static __always_inline
  58611. @@ -52,18 +54,15 @@
  58612. /* We might have to correct the limits values. Since the old values
  58613. * were signed the new values might be too large. */
  58614. -# define RMIN(x, y) ((x) < (y) ? (x) : (y))
  58615. - rlimits_small.rlim_cur = RMIN((unsigned long int) rlimits->rlim_cur,
  58616. + rlimits_small.rlim_cur = MIN((unsigned long int) rlimits->rlim_cur,
  58617. RLIM_INFINITY >> 1);
  58618. - rlimits_small.rlim_max = RMIN((unsigned long int) rlimits->rlim_max,
  58619. + rlimits_small.rlim_max = MIN((unsigned long int) rlimits->rlim_max,
  58620. RLIM_INFINITY >> 1);
  58621. -#undef RMIN
  58622. - return (__syscall_setrlimit(resource, &rlimits_small));
  58623. + return __syscall_setrlimit(resource, &rlimits_small);
  58624. }
  58625. #endif
  58626. -
  58627. libc_hidden_def(setrlimit)
  58628. #if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  58629. -strong_alias(setrlimit, setrlimit64)
  58630. +strong_alias_untyped(setrlimit, setrlimit64)
  58631. #endif
  58632. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setsid.c uClibc-git/libc/sysdeps/linux/common/setsid.c
  58633. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/setsid.c 2012-05-15 09:20:09.000000000 +0200
  58634. +++ uClibc-git/libc/sysdeps/linux/common/setsid.c 2014-06-02 17:40:34.362713911 +0200
  58635. @@ -10,6 +10,5 @@
  58636. #include <sys/syscall.h>
  58637. #include <unistd.h>
  58638. -
  58639. _syscall0(pid_t, setsid)
  58640. libc_hidden_def(setsid)
  58641. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/settimeofday.c uClibc-git/libc/sysdeps/linux/common/settimeofday.c
  58642. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/settimeofday.c 2012-05-15 09:20:09.000000000 +0200
  58643. +++ uClibc-git/libc/sysdeps/linux/common/settimeofday.c 2014-06-02 17:40:34.362713911 +0200
  58644. @@ -8,12 +8,36 @@
  58645. */
  58646. #include <sys/syscall.h>
  58647. -#include <sys/time.h>
  58648. #ifdef __USE_BSD
  58649. +# include <sys/time.h>
  58650. +# ifdef __NR_settimeofday
  58651. +_syscall2(int, settimeofday, const struct timeval *, tv,
  58652. + const struct timezone *, tz)
  58653. +# elif defined __USE_SVID && defined __NR_stime
  58654. +# define __need_NULL
  58655. +# include <stddef.h>
  58656. +# include <errno.h>
  58657. +# include <time.h>
  58658. +int settimeofday(const struct timeval *tv, const struct timezone *tz)
  58659. +{
  58660. + time_t when;
  58661. + if (tv == NULL) {
  58662. + __set_errno(EINVAL);
  58663. + return -1;
  58664. + }
  58665. -_syscall2(int, settimeofday, const struct timeval *, tv,
  58666. - const struct timezone *, tz)
  58667. + if (tz != NULL || tv->tv_usec % 1000000 != 0) {
  58668. + __set_errno(ENOSYS);
  58669. + return -1;
  58670. + }
  58671. +
  58672. + when = tv->tv_sec + (tv->tv_usec / 1000000);
  58673. + return stime(&when);
  58674. +}
  58675. +# endif
  58676. +# if defined __NR_settimeofday || (defined __USE_SVID && defined __NR_stime)
  58677. libc_hidden_def(settimeofday)
  58678. +# endif
  58679. #endif
  58680. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/setuid.c uClibc-git/libc/sysdeps/linux/common/setuid.c
  58681. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/setuid.c 2012-05-15 09:20:09.000000000 +0200
  58682. +++ uClibc-git/libc/sysdeps/linux/common/setuid.c 2014-06-02 17:40:34.362713911 +0200
  58683. @@ -22,7 +22,7 @@
  58684. #else
  58685. # define __NR___syscall_setuid __NR_setuid
  58686. -static __inline__ _syscall1(int, __syscall_setuid, __kernel_uid_t, uid)
  58687. +static __always_inline _syscall1(int, __syscall_setuid, __kernel_uid_t, uid)
  58688. int setuid(uid_t uid)
  58689. {
  58690. @@ -30,6 +30,6 @@
  58691. __set_errno(EINVAL);
  58692. return -1;
  58693. }
  58694. - return (__syscall_setuid(uid));
  58695. + return __syscall_setuid(uid);
  58696. }
  58697. #endif
  58698. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/signalfd.c uClibc-git/libc/sysdeps/linux/common/signalfd.c
  58699. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/signalfd.c 2012-05-15 09:20:09.000000000 +0200
  58700. +++ uClibc-git/libc/sysdeps/linux/common/signalfd.c 2014-06-02 17:40:34.362713911 +0200
  58701. @@ -25,13 +25,13 @@
  58702. int signalfd (int fd, const sigset_t *mask, int flags)
  58703. {
  58704. #if defined __NR___syscall_signalfd4
  58705. - return __syscall_signalfd4(fd, mask, _NSIG / 8, flags);
  58706. + return __syscall_signalfd4(fd, mask, __SYSCALL_SIGSET_T_SIZE, flags);
  58707. #elif defined __NR___syscall_signalfd
  58708. if (flags != 0) {
  58709. __set_errno(EINVAL);
  58710. return -1;
  58711. }
  58712. - return __syscall_signalfd(fd, mask, _NSIG / 8);
  58713. + return __syscall_signalfd(fd, mask, __SYSCALL_SIGSET_T_SIZE);
  58714. #endif
  58715. }
  58716. #endif
  58717. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sigpending.c uClibc-git/libc/sysdeps/linux/common/sigpending.c
  58718. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sigpending.c 2012-05-15 09:20:09.000000000 +0200
  58719. +++ uClibc-git/libc/sysdeps/linux/common/sigpending.c 2014-06-02 17:40:34.362713911 +0200
  58720. @@ -19,7 +19,7 @@
  58721. int sigpending(sigset_t * set)
  58722. {
  58723. - return __rt_sigpending(set, _NSIG / 8);
  58724. + return __rt_sigpending(set, __SYSCALL_SIGSET_T_SIZE);
  58725. }
  58726. #else
  58727. _syscall1(int, sigpending, sigset_t *, set)
  58728. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sigprocmask.c uClibc-git/libc/sysdeps/linux/common/sigprocmask.c
  58729. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sigprocmask.c 2012-05-15 09:20:09.000000000 +0200
  58730. +++ uClibc-git/libc/sysdeps/linux/common/sigprocmask.c 2014-06-02 17:40:34.362713911 +0200
  58731. @@ -35,9 +35,9 @@
  58732. * The only thing we have to make sure here is that SIGCANCEL and
  58733. * SIGSETXID are not blocked.
  58734. */
  58735. - if (set != NULL && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
  58736. + if (set != NULL && (unlikely (__sigismember (set, SIGCANCEL))
  58737. # ifdef SIGSETXID
  58738. - || __builtin_expect (__sigismember (set, SIGSETXID), 0)
  58739. + || unlikely (__sigismember (set, SIGSETXID))
  58740. # endif
  58741. ))
  58742. {
  58743. @@ -50,7 +50,7 @@
  58744. }
  58745. #endif
  58746. - return __rt_sigprocmask(how, set, oldset, _NSIG / 8);
  58747. + return __rt_sigprocmask(how, set, oldset, __SYSCALL_SIGSET_T_SIZE);
  58748. }
  58749. @@ -70,9 +70,9 @@
  58750. * The only thing we have to make sure here is that SIGCANCEL and
  58751. * SIGSETXID are not blocked.
  58752. */
  58753. - if (set != NULL && (__builtin_expect (__sigismember (set, SIGCANCEL), 0)
  58754. + if (set != NULL && (unlikely (__sigismember (set, SIGCANCEL))
  58755. # ifdef SIGSETXID
  58756. - || __builtin_expect (__sigismember (set, SIGSETXID), 0)
  58757. + || unlikely (__sigismember (set, SIGSETXID))
  58758. # endif
  58759. ))
  58760. {
  58761. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sigqueue.c uClibc-git/libc/sysdeps/linux/common/sigqueue.c
  58762. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sigqueue.c 2012-05-15 09:20:09.000000000 +0200
  58763. +++ uClibc-git/libc/sysdeps/linux/common/sigqueue.c 2014-06-02 17:40:34.362713911 +0200
  58764. @@ -12,41 +12,35 @@
  58765. Lesser General Public License for more details.
  58766. You should have received a copy of the GNU Lesser General Public
  58767. - License along with the GNU C Library; if not, write to the Free
  58768. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  58769. - 02111-1307 USA. */
  58770. -
  58771. -#include <errno.h>
  58772. -#include <signal.h>
  58773. -#include <unistd.h>
  58774. -#include <string.h>
  58775. + License along with the GNU C Library; if not, see
  58776. + <http://www.gnu.org/licenses/>. */
  58777. #include <sys/syscall.h>
  58778. -#if defined __USE_POSIX199309
  58779. +#if defined __NR_rt_sigqueueinfo && defined __USE_POSIX199309
  58780. +# include <signal.h>
  58781. +# include <unistd.h>
  58782. +# include <string.h>
  58783. -#ifdef __NR_rt_sigqueueinfo
  58784. -
  58785. -# define __NR___libc_rt_sigqueueinfo __NR_rt_sigqueueinfo
  58786. -static __inline__ _syscall3(int, __libc_rt_sigqueueinfo, pid_t, pid, int, sig, void*, value)
  58787. +# define __NR___syscall_rt_sigqueueinfo __NR_rt_sigqueueinfo
  58788. +static __always_inline _syscall3(int, __syscall_rt_sigqueueinfo, pid_t, pid, int, sig, void*, value)
  58789. /* Return any pending signal or wait for one for the given time. */
  58790. int sigqueue (pid_t pid, int sig, const union sigval val)
  58791. {
  58792. - siginfo_t info;
  58793. + siginfo_t info;
  58794. - /* First, clear the siginfo_t structure, so that we don't pass our
  58795. - stack content to other tasks. */
  58796. - memset (&info, 0, sizeof (siginfo_t));
  58797. - /* We must pass the information about the data in a siginfo_t value. */
  58798. - info.si_signo = sig;
  58799. - info.si_code = SI_QUEUE;
  58800. - info.si_pid = getpid ();
  58801. - info.si_uid = getuid ();
  58802. - info.si_value = val;
  58803. + /* First, clear the siginfo_t structure, so that we don't pass our
  58804. + stack content to other tasks. */
  58805. + memset(&info, 0, sizeof(info));
  58806. + /* We must pass the information about the data in a siginfo_t value. */
  58807. + info.si_signo = sig;
  58808. + info.si_code = SI_QUEUE;
  58809. + info.si_pid = getpid ();
  58810. + info.si_uid = getuid ();
  58811. + info.si_value = val;
  58812. - return __libc_rt_sigqueueinfo(pid, sig, &info);
  58813. + return __syscall_rt_sigqueueinfo(pid, sig, &info);
  58814. }
  58815. #endif
  58816. -#endif
  58817. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sigsuspend.c uClibc-git/libc/sysdeps/linux/common/sigsuspend.c
  58818. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sigsuspend.c 2012-05-15 09:20:09.000000000 +0200
  58819. +++ uClibc-git/libc/sysdeps/linux/common/sigsuspend.c 2014-06-02 17:40:34.362713911 +0200
  58820. @@ -9,51 +9,18 @@
  58821. #include <sys/syscall.h>
  58822. -#if defined __USE_POSIX
  58823. +#ifdef __USE_POSIX
  58824. #include <signal.h>
  58825. -#undef sigsuspend
  58826. +#include <cancel.h>
  58827. -libc_hidden_proto(sigsuspend)
  58828. -
  58829. -#ifdef __NR_rt_sigsuspend
  58830. -# define __NR___rt_sigsuspend __NR_rt_sigsuspend
  58831. -
  58832. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  58833. -# include <errno.h>
  58834. -# include <sysdep-cancel.h>
  58835. -
  58836. -/* Change the set of blocked signals to SET,
  58837. - wait until a signal arrives, and restore the set of blocked signals. */
  58838. -int sigsuspend (const sigset_t *set)
  58839. +int __NC(sigsuspend)(const sigset_t *set)
  58840. {
  58841. - if (SINGLE_THREAD_P)
  58842. - return INLINE_SYSCALL (rt_sigsuspend, 2, set, _NSIG / 8);
  58843. -
  58844. - int oldtype = LIBC_CANCEL_ASYNC ();
  58845. -
  58846. - int result = INLINE_SYSCALL (rt_sigsuspend, 2, set, _NSIG / 8);
  58847. -
  58848. - LIBC_CANCEL_RESET (oldtype);
  58849. -
  58850. - return result;
  58851. -}
  58852. -# else
  58853. -static inline _syscall2(int, __rt_sigsuspend, const sigset_t *, mask, size_t, size)
  58854. -
  58855. -int sigsuspend(const sigset_t * mask)
  58856. -{
  58857. - return __rt_sigsuspend(mask, _NSIG / 8);
  58858. -}
  58859. -# endif
  58860. +#ifdef __NR_rt_sigsuspend
  58861. + return INLINE_SYSCALL(rt_sigsuspend, 2, set, __SYSCALL_SIGSET_T_SIZE);
  58862. #else
  58863. -# define __NR___syscall_sigsuspend __NR_sigsuspend
  58864. -static __inline__ _syscall3(int, __syscall_sigsuspend, int, a, unsigned long int, b,
  58865. - unsigned long int, c)
  58866. -
  58867. -int sigsuspend(const sigset_t * set)
  58868. -{
  58869. - return __syscall_sigsuspend(0, 0, set->__val[0]);
  58870. -}
  58871. + return INLINE_SYSCALL(sigsuspend, 3, 0, 0, set->__val[0]);
  58872. #endif
  58873. -libc_hidden_def(sigsuspend)
  58874. +}
  58875. +CANCELLABLE_SYSCALL(int, sigsuspend, (const sigset_t *set), (set))
  58876. +lt_libc_hidden(sigsuspend)
  58877. #endif
  58878. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__socketcall.c uClibc-git/libc/sysdeps/linux/common/__socketcall.c
  58879. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/__socketcall.c 2012-05-15 09:20:09.000000000 +0200
  58880. +++ uClibc-git/libc/sysdeps/linux/common/__socketcall.c 2014-06-02 17:40:34.338713778 +0200
  58881. @@ -8,8 +8,18 @@
  58882. */
  58883. #include <sys/syscall.h>
  58884. +
  58885. +/* At the time of this writing,
  58886. + * several arches provide the individual calls and do _not_ go through
  58887. + * this demuxer.
  58888. + *
  58889. + * Verify all arches supported by your kernel before you remove the
  58890. + * guard below!
  58891. + */
  58892. #ifdef __NR_socketcall
  58893. +#include <sys/socket.h>
  58894. +
  58895. #define __NR___socketcall __NR_socketcall
  58896. -int __socketcall(int __call, unsigned long *__args) attribute_hidden;
  58897. _syscall2(int, __socketcall, int, call, unsigned long *, args)
  58898. +
  58899. #endif
  58900. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/splice.c uClibc-git/libc/sysdeps/linux/common/splice.c
  58901. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/splice.c 2012-05-15 09:20:09.000000000 +0200
  58902. +++ uClibc-git/libc/sysdeps/linux/common/splice.c 2014-06-02 17:40:34.362713911 +0200
  58903. @@ -8,9 +8,10 @@
  58904. */
  58905. #include <sys/syscall.h>
  58906. -#include <fcntl.h>
  58907. -#ifdef __NR_splice
  58908. -_syscall6(ssize_t, splice, int, __fdin, __off64_t *, __offin, int, __fdout,
  58909. - __off64_t *, __offout, size_t, __len, unsigned int, __flags)
  58910. +#if defined __NR_splice && defined __UCLIBC_HAS_LFS__ && defined __USE_GNU
  58911. +# include <fcntl.h>
  58912. +
  58913. +_syscall6(ssize_t, splice, int, __fdin, off64_t *, __offin, int, __fdout,
  58914. + off64_t *, __offout, size_t, __len, unsigned int, __flags)
  58915. #endif
  58916. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ssp.c uClibc-git/libc/sysdeps/linux/common/ssp.c
  58917. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ssp.c 2012-05-15 09:20:09.000000000 +0200
  58918. +++ uClibc-git/libc/sysdeps/linux/common/ssp.c 2014-06-02 17:40:34.362713911 +0200
  58919. @@ -20,103 +20,113 @@
  58920. #error "file must not be compiled with stack protection enabled on it. Use -fno-stack-protector"
  58921. #endif
  58922. +#include <string.h>
  58923. +#include <unistd.h>
  58924. +#include <signal.h>
  58925. +#ifdef __UCLIBC_HAS_SYSLOG__
  58926. +#include <sys/syslog.h>
  58927. +#endif
  58928. +
  58929. #ifdef __PROPOLICE_BLOCK_SEGV__
  58930. # define SSP_SIGTYPE SIGSEGV
  58931. #else
  58932. # define SSP_SIGTYPE SIGABRT
  58933. #endif
  58934. -#include <string.h>
  58935. -#include <unistd.h>
  58936. -#include <signal.h>
  58937. -#if defined __UCLIBC_HAS_SYSLOG__
  58938. -#include <sys/syslog.h>
  58939. +static void do_write(const char *msg)
  58940. +{
  58941. + /* could use inlined syscall here to be sure ... */
  58942. + return (void) write(STDERR_FILENO, msg, strlen(msg));
  58943. +}
  58944. +static void __cold do_msg(const char *msg1, const char *msg2, const char *msg3)
  58945. +{
  58946. + do_write(msg1);
  58947. + do_write(msg2);
  58948. + do_write(msg3);
  58949. + do_write("\n");
  58950. +#ifdef __UCLIBC_HAS_SYSLOG__
  58951. + syslog(LOG_INFO, "%s%s%s()", msg1, msg2, msg3);
  58952. #endif
  58953. +}
  58954. -
  58955. -static void block_signals(void)
  58956. +static void __cold attribute_noreturn
  58957. +#ifdef __UCLIBC_HAS_SSP_COMPAT__
  58958. +ssp_handler(char func[])
  58959. +#else
  58960. +ssp_handler(void)
  58961. +#endif
  58962. {
  58963. + pid_t pid;
  58964. + static const char msg_ssd[] = "*** stack smashing detected ***: ";
  58965. + static const char msg_terminated[] = " terminated";
  58966. +#ifdef __UCLIBC_HAS_SSP_COMPAT__
  58967. + static const char msg_ssa[] = ": stack smashing attack in function ";
  58968. +#endif
  58969. +
  58970. +#ifdef __DODEBUG__
  58971. struct sigaction sa;
  58972. sigset_t mask;
  58973. __sigfillset(&mask);
  58974. __sigdelset(&mask, SSP_SIGTYPE); /* Block all signal handlers */
  58975. sigprocmask(SIG_BLOCK, &mask, NULL); /* except SSP_SIGTYPE */
  58976. +#endif
  58977. +
  58978. +#ifdef __UCLIBC_HAS_SSP_COMPAT__
  58979. + if (func != NULL)
  58980. + do_msg(__uclibc_progname, msg_ssa, func);
  58981. + else
  58982. +#endif
  58983. + do_msg(msg_ssd, __uclibc_progname, msg_terminated);
  58984. + pid = getpid();
  58985. +#ifdef __DODEBUG__
  58986. /* Make the default handler associated with the signal handler */
  58987. memset(&sa, 0, sizeof(sa));
  58988. __sigfillset(&sa.sa_mask); /* Block all signals */
  58989. if (SIG_DFL) /* if it's constant zero, it's already done */
  58990. sa.sa_handler = SIG_DFL;
  58991. - sigaction(SSP_SIGTYPE, &sa, NULL);
  58992. -}
  58993. -
  58994. -static void __cold ssp_write(int fd, const char *msg1, const char *msg2, const char *msg3)
  58995. -{
  58996. - write(fd, msg1, strlen(msg1));
  58997. - write(fd, msg2, strlen(msg2));
  58998. - write(fd, msg3, strlen(msg3));
  58999. - write(fd, "()\n", 3);
  59000. -#if defined __UCLIBC_HAS_SYSLOG__
  59001. - openlog("ssp", LOG_CONS | LOG_PID, LOG_USER);
  59002. - syslog(LOG_INFO, "%s%s%s()", msg1, msg2, msg3);
  59003. - closelog();
  59004. + if (sigaction(SSP_SIGTYPE, &sa, NULL) == 0)
  59005. + (void)kill(pid, SSP_SIGTYPE);
  59006. #endif
  59007. -}
  59008. -
  59009. -static attribute_noreturn void terminate(void)
  59010. -{
  59011. - (void) kill(getpid(), SSP_SIGTYPE);
  59012. - _exit(127);
  59013. + (void)kill(pid, SIGKILL);
  59014. + /* The loop is added only to keep gcc happy. */
  59015. + while(1)
  59016. + _exit(127);
  59017. }
  59018. #ifdef __UCLIBC_HAS_SSP_COMPAT__
  59019. -void __stack_smash_handler(char func[], int damaged __attribute__ ((unused))) attribute_noreturn __cold;
  59020. -void __stack_smash_handler(char func[], int damaged)
  59021. +void __stack_smash_handler(char func[], int damaged) attribute_noreturn __cold;
  59022. +void __stack_smash_handler(char func[], int damaged attribute_unused)
  59023. {
  59024. - static const char message[] = ": stack smashing attack in function ";
  59025. -
  59026. - block_signals();
  59027. -
  59028. - ssp_write(STDERR_FILENO, __uclibc_progname, message, func);
  59029. -
  59030. - /* The loop is added only to keep gcc happy. */
  59031. - while(1)
  59032. - terminate();
  59033. + ssp_handler(func);
  59034. }
  59035. -#endif
  59036. -#ifdef __UCLIBC_HAS_SSP__
  59037. -void __stack_chk_fail(void) attribute_noreturn __cold;
  59038. void __stack_chk_fail(void)
  59039. {
  59040. - static const char msg1[] = "stack smashing detected: ";
  59041. - static const char msg3[] = " terminated";
  59042. -
  59043. - block_signals();
  59044. -
  59045. - ssp_write(STDERR_FILENO, msg1, __uclibc_progname, msg3);
  59046. -
  59047. - /* The loop is added only to keep gcc happy. */
  59048. - while(1)
  59049. - terminate();
  59050. + ssp_handler(NULL);
  59051. }
  59052. +#else
  59053. +strong_alias(ssp_handler,__stack_chk_fail)
  59054. #endif
  59055. #ifdef __UCLIBC_HAS_FORTIFY__
  59056. +/* should be redone when activated to use common code above.
  59057. + * for now, it works without debugging support */
  59058. void __chk_fail(void)
  59059. {
  59060. - static const char msg1[] = "buffer overflow detected: ";
  59061. - static const char msg3[] = " terminated";
  59062. -
  59063. - block_signals();
  59064. + static const char msg_fail[] = "*** buffer overflow detected ***: ";
  59065. + static const char msg_terminated[] = " terminated";
  59066. + pid_t pid;
  59067. - ssp_write(STDERR_FILENO, msg1, __uclibc_progname, msg3);
  59068. + do_msg(msg_fail, __uclibc_progname, msg_terminated);
  59069. + pid = getpid();
  59070. + (void)kill(pid, SIGKILL);
  59071. /* The loop is added only to keep gcc happy. */
  59072. while(1)
  59073. - terminate();
  59074. + _exit(127);
  59075. }
  59076. libc_hidden_def(__chk_fail)
  59077. #endif
  59078. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ssp-local.c uClibc-git/libc/sysdeps/linux/common/ssp-local.c
  59079. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ssp-local.c 2012-05-15 09:20:09.000000000 +0200
  59080. +++ uClibc-git/libc/sysdeps/linux/common/ssp-local.c 2014-06-02 17:40:34.362713911 +0200
  59081. @@ -12,18 +12,19 @@
  59082. Lesser General Public License for more details.
  59083. You should have received a copy of the GNU Lesser General Public
  59084. - License along with the GNU C Library; if not, write to the Free
  59085. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  59086. - 02111-1307 USA. */
  59087. + License along with the GNU C Library; if not, see
  59088. + <http://www.gnu.org/licenses/>. */
  59089. /*
  59090. * Peter S. Mazinger ps.m[@]gmx.net
  59091. * copied stack_chk_fail_local.c from glibc and adapted for uClibc
  59092. */
  59093. -#include <features.h>
  59094. +#if defined __SSP__ || defined __SSP_ALL__
  59095. +# error "file must not be compiled with stack protection enabled on it. Use -fno-stack-protector"
  59096. +#endif
  59097. -extern void __stack_chk_fail (void) attribute_noreturn;
  59098. +#include <features.h>
  59099. /* On some architectures, this helps needless PIC pointer setup
  59100. that would be needed just for the __stack_chk_fail call. */
  59101. @@ -31,5 +32,5 @@
  59102. void __stack_chk_fail_local (void) attribute_noreturn attribute_hidden;
  59103. void __stack_chk_fail_local (void)
  59104. {
  59105. - __stack_chk_fail ();
  59106. + __stack_chk_fail ();
  59107. }
  59108. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/stat64.c uClibc-git/libc/sysdeps/linux/common/stat64.c
  59109. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/stat64.c 2012-05-15 09:20:09.000000000 +0200
  59110. +++ uClibc-git/libc/sysdeps/linux/common/stat64.c 2014-06-02 17:40:34.362713911 +0200
  59111. @@ -7,17 +7,28 @@
  59112. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  59113. */
  59114. +#include <_lfs_64.h>
  59115. #include <sys/syscall.h>
  59116. #include <sys/stat.h>
  59117. -#if defined __UCLIBC_HAS_LFS__ && defined __NR_stat64
  59118. +#if defined __UCLIBC_HAS_LFS__
  59119. -# define __NR___syscall_stat64 __NR_stat64
  59120. +# if defined __NR_fstatat64 && !defined __NR_stat64
  59121. +# include <fcntl.h>
  59122. # include <unistd.h>
  59123. -# include "xstatconv.h"
  59124. -static __inline__ _syscall2(int, __syscall_stat64,
  59125. - const char *, file_name, struct kernel_stat64 *, buf)
  59126. +int stat64(const char *file_name, struct stat64 *buf)
  59127. +{
  59128. + return fstatat64(AT_FDCWD, file_name, buf, 0);
  59129. +}
  59130. +libc_hidden_def(stat64)
  59131. +
  59132. +/* For systems which have both, prefer the old one */
  59133. +# elif defined __NR_stat64
  59134. +# define __NR___syscall_stat64 __NR_stat64
  59135. +# include "xstatconv.h"
  59136. +static __always_inline _syscall2(int, __syscall_stat64,
  59137. + const char *, file_name, struct kernel_stat64 *, buf)
  59138. int stat64(const char *file_name, struct stat64 *buf)
  59139. {
  59140. @@ -31,4 +42,6 @@
  59141. return result;
  59142. }
  59143. libc_hidden_def(stat64)
  59144. -#endif
  59145. +# endif
  59146. +
  59147. +#endif /* __UCLIBC_HAS_LFS__ */
  59148. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/stat.c uClibc-git/libc/sysdeps/linux/common/stat.c
  59149. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/stat.c 2012-05-15 09:20:09.000000000 +0200
  59150. +++ uClibc-git/libc/sysdeps/linux/common/stat.c 2014-06-02 17:40:34.362713911 +0200
  59151. @@ -10,14 +10,24 @@
  59152. #include <sys/syscall.h>
  59153. #include <unistd.h>
  59154. #include <sys/stat.h>
  59155. -#include "xstatconv.h"
  59156. #undef stat
  59157. +#if defined __NR_fstatat64 && !defined __NR_stat
  59158. +# include <fcntl.h>
  59159. +
  59160. +int stat(const char *file_name, struct stat *buf)
  59161. +{
  59162. + return fstatat(AT_FDCWD, file_name, buf, 0);
  59163. +}
  59164. +
  59165. +#else
  59166. +# include "xstatconv.h"
  59167. +
  59168. int stat(const char *file_name, struct stat *buf)
  59169. {
  59170. int result;
  59171. -#ifdef __NR_stat64
  59172. +# ifdef __NR_stat64
  59173. /* normal stat call has limited values for various stat elements
  59174. * e.g. uid device major/minor etc.
  59175. * so we use 64 variant if available
  59176. @@ -28,19 +38,21 @@
  59177. if (result == 0) {
  59178. __xstat32_conv(&kbuf, buf);
  59179. }
  59180. -#else
  59181. +# else
  59182. struct kernel_stat kbuf;
  59183. result = INLINE_SYSCALL(stat, 2, file_name, &kbuf);
  59184. if (result == 0) {
  59185. __xstat_conv(&kbuf, buf);
  59186. }
  59187. -#endif
  59188. +# endif /* __NR_stat64 */
  59189. return result;
  59190. }
  59191. +#endif /* __NR_fstat64 */
  59192. libc_hidden_def(stat)
  59193. -#if ! defined __NR_stat64 && defined __UCLIBC_HAS_LFS__
  59194. +#if ! defined __NR_stat64 && ! defined __NR_fstatat64 && \
  59195. + defined __UCLIBC_HAS_LFS__
  59196. strong_alias_untyped(stat,stat64)
  59197. libc_hidden_def(stat64)
  59198. #endif
  59199. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/statfs.c uClibc-git/libc/sysdeps/linux/common/statfs.c
  59200. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/statfs.c 2012-05-15 09:20:09.000000000 +0200
  59201. +++ uClibc-git/libc/sysdeps/linux/common/statfs.c 2014-06-02 17:40:34.362713911 +0200
  59202. @@ -13,10 +13,39 @@
  59203. #include <sys/vfs.h>
  59204. extern __typeof(statfs) __libc_statfs attribute_hidden;
  59205. -#define __NR___libc_statfs __NR_statfs
  59206. +
  59207. +#if defined __NR_statfs64 && !defined __NR_statfs
  59208. +
  59209. +int __libc_statfs(const char *path, struct statfs *buf)
  59210. +{
  59211. + int err = INLINE_SYSCALL(statfs64, 3, path, sizeof(*buf), buf);
  59212. +
  59213. + if (err == 0) {
  59214. + /* Did we overflow? */
  59215. + if (buf->__pad1 || buf->__pad2 || buf->__pad3 ||
  59216. + buf->__pad4 || buf->__pad5) {
  59217. + __set_errno(EOVERFLOW);
  59218. + return -1;
  59219. + }
  59220. + }
  59221. +
  59222. + return err;
  59223. +}
  59224. +# if defined __UCLIBC_LINUX_SPECIFIC__ || defined __UCLIBC_HAS_THREADS_NATIVE__
  59225. +/* statfs is used by NPTL, so it must exported in case */
  59226. +weak_alias(__libc_statfs, statfs)
  59227. +# endif
  59228. +
  59229. +/* For systems which have both, prefer the old one */
  59230. +#else
  59231. +
  59232. +# define __NR___libc_statfs __NR_statfs
  59233. _syscall2(int, __libc_statfs, const char *, path, struct statfs *, buf)
  59234. -#if defined __UCLIBC_LINUX_SPECIFIC__ || defined __UCLIBC_HAS_THREADS_NATIVE__
  59235. +# if defined __UCLIBC_LINUX_SPECIFIC__ || defined __UCLIBC_HAS_THREADS_NATIVE__
  59236. /* statfs is used by NPTL, so it must exported in case */
  59237. -weak_alias(__libc_statfs,statfs)
  59238. +weak_alias(__libc_statfs, statfs)
  59239. +# endif
  59240. +
  59241. #endif
  59242. +libc_hidden_def(statfs)
  59243. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/stime.c uClibc-git/libc/sysdeps/linux/common/stime.c
  59244. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/stime.c 2012-05-15 09:20:09.000000000 +0200
  59245. +++ uClibc-git/libc/sysdeps/linux/common/stime.c 2014-06-02 17:40:34.362713911 +0200
  59246. @@ -8,15 +8,17 @@
  59247. */
  59248. #include <sys/syscall.h>
  59249. -#include <time.h>
  59250. -#include <sys/time.h>
  59251. #ifdef __USE_SVID
  59252. -#ifdef __NR_stime
  59253. +# include <time.h>
  59254. +# ifdef __NR_stime
  59255. _syscall1(int, stime, const time_t *, t)
  59256. -#else
  59257. -
  59258. -int stime(const time_t * when)
  59259. +# elif defined __USE_BSD && defined __NR_settimeofday
  59260. +# define __need_NULL
  59261. +# include <stddef.h>
  59262. +# include <errno.h>
  59263. +# include <sys/time.h>
  59264. +int stime(const time_t *when)
  59265. {
  59266. struct timeval tv;
  59267. @@ -28,5 +30,8 @@
  59268. tv.tv_usec = 0;
  59269. return settimeofday(&tv, (struct timezone *) 0);
  59270. }
  59271. -#endif
  59272. +# endif
  59273. +# if defined __NR_stime || (defined __USE_BSD && defined __NR_settimeofday)
  59274. +libc_hidden_def(stime)
  59275. +# endif
  59276. #endif
  59277. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/stubs.c uClibc-git/libc/sysdeps/linux/common/stubs.c
  59278. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/stubs.c 2012-05-15 09:20:09.000000000 +0200
  59279. +++ uClibc-git/libc/sysdeps/linux/common/stubs.c 2014-06-02 17:40:34.362713911 +0200
  59280. @@ -6,31 +6,52 @@
  59281. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  59282. */
  59283. +/* Please keep the list sorted alphabetically, in ascending order
  59284. + * of the stub name! */
  59285. +
  59286. #include <errno.h>
  59287. #include <bits/wordsize.h>
  59288. #include <sys/syscall.h>
  59289. #ifdef __UCLIBC_HAS_STUBS__
  59290. -static int enosys_stub(void) __attribute_used__;
  59291. -static int enosys_stub(void)
  59292. +__attribute_used__ static int enosys_stub(void)
  59293. {
  59294. __set_errno(ENOSYS);
  59295. return -1;
  59296. }
  59297. +__attribute_used__ static int ret_enosys_stub(void)
  59298. +{
  59299. + return ENOSYS;
  59300. +}
  59301. +
  59302. #define make_stub(stub) \
  59303. link_warning(stub, #stub ": this function is not implemented") \
  59304. strong_alias(enosys_stub, stub)
  59305. +#define make_ret_stub(stub) \
  59306. + link_warning(stub, #stub ": this function is not implemented") \
  59307. + strong_alias(ret_enosys_stub, stub)
  59308. +
  59309. #ifndef __ARCH_USE_MMU__
  59310. # undef __NR_fork
  59311. #endif
  59312. -#ifndef __UCLIBC_HAS_LFS__
  59313. -# undef __NR_fadvise64
  59314. -# undef __NR_fadvise64_64
  59315. -# undef __NR_sync_file_range
  59316. +#ifdef __arm__
  59317. +# define __NR_fadvise64_64 __NR_arm_fadvise64_64
  59318. +# define __NR_fadvise64 __NR_arm_fadvise64_64
  59319. +/* ARM always provides funcs w/out syscalls; disable the stubs */
  59320. +# define __NR_ioperm 0
  59321. +# define __NR_iopl 0
  59322. +#endif
  59323. +
  59324. +#ifdef __mips__
  59325. +# define __NR_fadvise64_64 __NR_fadvise64
  59326. +#endif
  59327. +
  59328. +#ifdef __xtensa__
  59329. +# define __NR_fadvise64 __NR_fadvise64_64
  59330. #endif
  59331. #if !defined __NR_accept && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  59332. @@ -45,14 +66,6 @@
  59333. make_stub(arch_prctl)
  59334. #endif
  59335. -#if !defined __NR_capget && defined __UCLIBC_LINUX_SPECIFIC__
  59336. -make_stub(capget)
  59337. -#endif
  59338. -
  59339. -#if !defined __NR_capset && defined __UCLIBC_LINUX_SPECIFIC__
  59340. -make_stub(capset)
  59341. -#endif
  59342. -
  59343. #if !defined __NR_bdflush && defined __UCLIBC_LINUX_SPECIFIC__
  59344. make_stub(bdflush)
  59345. #endif
  59346. @@ -61,11 +74,11 @@
  59347. make_stub(bind)
  59348. #endif
  59349. -#ifndef __NR_capget
  59350. +#if !defined __NR_capget && defined __UCLIBC_LINUX_SPECIFIC__
  59351. make_stub(capget)
  59352. #endif
  59353. -#ifndef __NR_capset
  59354. +#if !defined __NR_capset && defined __UCLIBC_LINUX_SPECIFIC__
  59355. make_stub(capset)
  59356. #endif
  59357. @@ -81,38 +94,44 @@
  59358. make_stub(delete_module)
  59359. #endif
  59360. -#ifndef __NR_epoll_create
  59361. +#if !defined __NR_epoll_create && defined __UCLIBC_HAS_EPOLL__ \
  59362. + && !defined __NR_epoll_create1
  59363. make_stub(epoll_create)
  59364. #endif
  59365. -#ifndef __NR_epoll_ctl
  59366. +#if !defined __NR_epoll_ctl && defined __UCLIBC_HAS_EPOLL__
  59367. make_stub(epoll_ctl)
  59368. #endif
  59369. -#ifndef __NR_epoll_wait
  59370. +#if !defined __NR_epoll_pwait && defined __UCLIBC_HAS_EPOLL__
  59371. +make_stub(epoll_pwait)
  59372. +#endif
  59373. +
  59374. +#if !defined __NR_epoll_wait && defined __UCLIBC_HAS_EPOLL__ \
  59375. + && !defined __NR_epoll_pwait
  59376. make_stub(epoll_wait)
  59377. #endif
  59378. -#if !defined __NR_eventfd && defined __UCLIBC_LINUX_SPECIFIC__
  59379. +#if !defined __NR_eventfd && !defined __NR_eventfd2 && defined __UCLIBC_LINUX_SPECIFIC__
  59380. make_stub(eventfd)
  59381. #endif
  59382. -#ifndef __NR_fdatasync
  59383. +#if !defined __NR_fdatasync && !defined __NR_osf_fdatasync
  59384. make_stub(fdatasync)
  59385. #endif
  59386. +#ifndef __NR_fgetxattr
  59387. +make_stub(fgetxattr)
  59388. +#endif
  59389. +
  59390. #ifndef __NR_flistxattr
  59391. make_stub(flistxattr)
  59392. #endif
  59393. -#ifndef __NR_fork
  59394. +#if !defined __NR_fork && !defined __NR_clone
  59395. make_stub(fork)
  59396. #endif
  59397. -#ifndef __NR_fgetxattr
  59398. -make_stub(fgetxattr)
  59399. -#endif
  59400. -
  59401. #ifndef __NR_fremovexattr
  59402. make_stub(fremovexattr)
  59403. #endif
  59404. @@ -121,7 +140,8 @@
  59405. make_stub(fsetxattr)
  59406. #endif
  59407. -#if !defined __NR_fstatfs && defined __UCLIBC_LINUX_SPECIFIC__
  59408. +#if !defined __NR_fstatfs && !defined __NR_fstatfs64 \
  59409. + && defined __UCLIBC_LINUX_SPECIFIC__
  59410. make_stub(fstatfs)
  59411. #endif
  59412. @@ -129,10 +149,6 @@
  59413. make_stub(get_kernel_syms)
  59414. #endif
  59415. -#if !defined __NR_getcpu && defined __UCLIBC_LINUX_SPECIFIC__ && ((defined __x86_64__ && !defined __UCLIBC_HAS_TLS__) || !defined __x86_64__)
  59416. -make_stub(sched_getcpu)
  59417. -#endif
  59418. -
  59419. #if !defined __NR_getpeername && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  59420. make_stub(getpeername)
  59421. #endif
  59422. @@ -157,7 +173,12 @@
  59423. make_stub(init_module)
  59424. #endif
  59425. -#if !defined __NR_inotify_init && defined __UCLIBC_LINUX_SPECIFIC__
  59426. +#if !defined __NR_inotify_add_watch && defined __UCLIBC_LINUX_SPECIFIC__
  59427. +make_stub(inotify_add_watch)
  59428. +#endif
  59429. +
  59430. +#if !defined __NR_inotify_init && defined __UCLIBC_LINUX_SPECIFIC__ \
  59431. + && !defined __NR_inotify_init1
  59432. make_stub(inotify_init)
  59433. #endif
  59434. @@ -165,19 +186,15 @@
  59435. make_stub(inotify_init1)
  59436. #endif
  59437. -#if !defined __NR_inotify_add_watch && defined __UCLIBC_LINUX_SPECIFIC__
  59438. -make_stub(inotify_add_watch)
  59439. -#endif
  59440. -
  59441. #if !defined __NR_inotify_rm_watch && defined __UCLIBC_LINUX_SPECIFIC__
  59442. make_stub(inotify_rm_watch)
  59443. #endif
  59444. -#if !defined __NR_ioperm && defined __UCLIBC_LINUX_SPECIFIC__ && !defined __arm__
  59445. +#if !defined __NR_ioperm && defined __UCLIBC_LINUX_SPECIFIC__
  59446. make_stub(ioperm)
  59447. #endif
  59448. -#if !defined __NR_iopl && defined __UCLIBC_LINUX_SPECIFIC__ && !defined __arm__
  59449. +#if !defined __NR_iopl && defined __UCLIBC_LINUX_SPECIFIC__
  59450. make_stub(iopl)
  59451. #endif
  59452. @@ -213,6 +230,13 @@
  59453. make_stub(modify_ldt)
  59454. #endif
  59455. +#ifndef __NR_openat
  59456. +make_stub(openat)
  59457. +# ifdef __UCLIBC_HAS_LFS__
  59458. +make_stub(openat64)
  59459. +# endif
  59460. +#endif
  59461. +
  59462. #if !defined __NR_personality && defined __UCLIBC_LINUX_SPECIFIC__
  59463. make_stub(personality)
  59464. #endif
  59465. @@ -225,6 +249,18 @@
  59466. make_stub(pivot_root)
  59467. #endif
  59468. +#if !defined __NR_fadvise64 && defined __UCLIBC_HAS_LFS__
  59469. +make_ret_stub(posix_fadvise)
  59470. +#endif
  59471. +
  59472. +#if !defined __NR_fadvise64_64 && defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 32
  59473. +make_ret_stub(posix_fadvise64)
  59474. +#endif
  59475. +
  59476. +#ifndef __NR_madvise
  59477. +make_ret_stub(posix_madvise)
  59478. +#endif
  59479. +
  59480. #if !defined __NR_ppoll && defined __UCLIBC_LINUX_SPECIFIC__
  59481. make_stub(ppoll)
  59482. #endif
  59483. @@ -233,6 +269,10 @@
  59484. make_stub(prctl)
  59485. #endif
  59486. +#if !defined __NR_query_module && defined __UCLIBC_LINUX_MODULE_24__
  59487. +make_stub(query_module)
  59488. +#endif
  59489. +
  59490. #if !defined __NR_readahead && defined __UCLIBC_LINUX_SPECIFIC__
  59491. make_stub(readahead)
  59492. #endif
  59493. @@ -241,10 +281,6 @@
  59494. make_stub(reboot)
  59495. #endif
  59496. -#if !defined __NR_query_module && defined __UCLIBC_LINUX_MODULE_24__
  59497. -make_stub(query_module)
  59498. -#endif
  59499. -
  59500. #if !defined __NR_recv && !defined __NR_socketcall && !defined __NR_recvfrom && defined __UCLIBC_HAS_SOCKET__
  59501. make_stub(recv)
  59502. #endif
  59503. @@ -265,10 +301,18 @@
  59504. make_stub(removexattr)
  59505. #endif
  59506. +#ifndef __NR_renameat
  59507. +make_stub(renameat)
  59508. +#endif
  59509. +
  59510. #if !defined __NR_sched_getaffinity && defined __UCLIBC_LINUX_SPECIFIC__
  59511. make_stub(sched_getaffinity)
  59512. #endif
  59513. +#if !defined __NR_getcpu && defined __UCLIBC_LINUX_SPECIFIC__ && ((defined __x86_64__ && !defined __UCLIBC_HAS_TLS__) || !defined __x86_64__)
  59514. +make_stub(sched_getcpu)
  59515. +#endif
  59516. +
  59517. #if !defined __NR_sched_setaffinity && defined __UCLIBC_LINUX_SPECIFIC__
  59518. make_stub(sched_setaffinity)
  59519. #endif
  59520. @@ -277,7 +321,8 @@
  59521. make_stub(send)
  59522. #endif
  59523. -#if !defined __NR_sendfile && defined __UCLIBC_LINUX_SPECIFIC__
  59524. +#if !defined __NR_sendfile && !defined __NR_sendfile64 \
  59525. + && defined __UCLIBC_LINUX_SPECIFIC__
  59526. make_stub(sendfile)
  59527. #endif
  59528. @@ -325,6 +370,15 @@
  59529. make_stub(signalfd)
  59530. #endif
  59531. +#ifndef __NR_rt_sigtimedwait
  59532. +make_stub(sigtimedwait)
  59533. +make_stub(sigwaitinfo)
  59534. +#endif
  59535. +
  59536. +#ifndef __NR_rt_sigqueueinfo
  59537. +make_stub(sigqueue)
  59538. +#endif
  59539. +
  59540. #if !defined __NR_socket && !defined __NR_socketcall && defined __UCLIBC_HAS_SOCKET__
  59541. make_stub(socket)
  59542. #endif
  59543. @@ -337,9 +391,9 @@
  59544. make_stub(socketpair)
  59545. #endif
  59546. -#ifndef __NR_rt_sigtimedwait
  59547. -make_stub(sigtimedwait)
  59548. -make_stub(sigwaitinfo)
  59549. +#if !defined __NR_stime && !defined __NR_settimeofday
  59550. +make_stub(stime)
  59551. +make_stub(settimeofday)
  59552. #endif
  59553. #if !defined __NR_splice && defined __UCLIBC_LINUX_SPECIFIC__
  59554. @@ -354,6 +408,10 @@
  59555. make_stub(swapon)
  59556. #endif
  59557. +#if !defined __NR_symlink && !defined __NR_symlinkat
  59558. +make_stub(symlink)
  59559. +#endif
  59560. +
  59561. #if !defined __NR_sync_file_range && defined __UCLIBC_LINUX_SPECIFIC__
  59562. make_stub(sync_file_range)
  59563. #endif
  59564. @@ -382,6 +440,21 @@
  59565. make_stub(timerfd_gettime)
  59566. #endif
  59567. +#ifndef __NR_utimensat
  59568. +make_stub(futimens)
  59569. +make_stub(utimensat)
  59570. +# ifndef __NR_lutimes
  59571. +make_stub(lutimes)
  59572. +# endif
  59573. +#endif
  59574. +
  59575. +#ifndef __NR_utimensat
  59576. +#if !defined __NR_utime && !defined __NR_utimes
  59577. +/*make_stub(utime) obsoleted */
  59578. +make_stub(utimes)
  59579. +#endif
  59580. +#endif
  59581. +
  59582. #if !defined __NR_umount && !defined __NR_umount2 && defined __UCLIBC_LINUX_SPECIFIC__
  59583. make_stub(umount)
  59584. #endif
  59585. @@ -394,19 +467,15 @@
  59586. make_stub(unshare)
  59587. #endif
  59588. -#ifndef __NR_utimensat
  59589. -make_stub(futimens)
  59590. -make_stub(utimensat)
  59591. -# ifndef __NR_lutimes
  59592. -make_stub(lutimes)
  59593. -# endif
  59594. +#if defined __UCLIBC_SV4_DEPRECATED__ && !defined __NR_ustat
  59595. +make_stub(ustat)
  59596. #endif
  59597. #if !defined __NR_vhangup && defined __UCLIBC_LINUX_SPECIFIC__
  59598. make_stub(vhangup)
  59599. #endif
  59600. -#ifndef __NR_vmsplice
  59601. +#if !defined __NR_vmsplice && defined __UCLIBC_LINUX_SPECIFIC__
  59602. make_stub(vmsplice)
  59603. #endif
  59604. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/symlinkat.c uClibc-git/libc/sysdeps/linux/common/symlinkat.c
  59605. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/symlinkat.c 2012-05-15 09:20:09.000000000 +0200
  59606. +++ uClibc-git/libc/sysdeps/linux/common/symlinkat.c 2014-06-02 17:40:34.362713911 +0200
  59607. @@ -11,6 +11,7 @@
  59608. #ifdef __NR_symlinkat
  59609. _syscall3(int, symlinkat, const char *, from, int, tofd, const char *, to)
  59610. +libc_hidden_def(symlinkat)
  59611. #else
  59612. /* should add emulation with symlink() and /proc/self/fd/ ... */
  59613. #endif
  59614. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/symlink.c uClibc-git/libc/sysdeps/linux/common/symlink.c
  59615. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/symlink.c 2012-05-15 09:20:09.000000000 +0200
  59616. +++ uClibc-git/libc/sysdeps/linux/common/symlink.c 2014-06-02 17:40:34.362713911 +0200
  59617. @@ -9,6 +9,19 @@
  59618. #include <sys/syscall.h>
  59619. #if defined __USE_BSD || defined __USE_UNIX98 || defined __USE_XOPEN2K
  59620. -#include <unistd.h>
  59621. +# include <unistd.h>
  59622. +
  59623. +# if defined __NR_symlinkat && !defined __NR_symlink
  59624. +# include <fcntl.h>
  59625. +int symlink(const char *oldpath, const char *newpath)
  59626. +{
  59627. + return symlinkat(oldpath, AT_FDCWD, newpath);
  59628. +}
  59629. +
  59630. +# elif defined(__NR_symlink)
  59631. +
  59632. _syscall2(int, symlink, const char *, oldpath, const char *, newpath)
  59633. +
  59634. +# endif
  59635. +
  59636. #endif
  59637. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sync.c uClibc-git/libc/sysdeps/linux/common/sync.c
  59638. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sync.c 2012-05-15 09:20:09.000000000 +0200
  59639. +++ uClibc-git/libc/sysdeps/linux/common/sync.c 2014-06-02 17:40:34.362713911 +0200
  59640. @@ -8,12 +8,8 @@
  59641. */
  59642. #include <sys/syscall.h>
  59643. -# if defined __USE_BSD || defined __USE_UNIX98
  59644. -#include <sys/types.h>
  59645. -#include <unistd.h>
  59646. -void sync(void)
  59647. -{
  59648. - INLINE_SYSCALL(sync, 0);
  59649. -}
  59650. +#if defined __USE_BSD || defined __USE_UNIX98
  59651. +# include <unistd.h>
  59652. +_syscall0(void, sync)
  59653. #endif
  59654. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sync_file_range.c uClibc-git/libc/sysdeps/linux/common/sync_file_range.c
  59655. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sync_file_range.c 2012-05-15 09:20:09.000000000 +0200
  59656. +++ uClibc-git/libc/sysdeps/linux/common/sync_file_range.c 2014-06-02 17:40:34.362713911 +0200
  59657. @@ -4,24 +4,34 @@
  59658. *
  59659. * Copyright (C) 2008 Bernhard Reutner-Fischer <uclibc@uclibc.org>
  59660. *
  59661. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  59662. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  59663. */
  59664. #include <sys/syscall.h>
  59665. -#if defined __USE_GNU
  59666. -#include <fcntl.h>
  59667. +#if defined __UCLIBC_HAS_LFS__ && defined __USE_GNU
  59668. +# include <bits/wordsize.h>
  59669. +# include <endian.h>
  59670. +# include <fcntl.h>
  59671. +# include <cancel.h>
  59672. -#if defined __NR_sync_file_range && defined __UCLIBC_HAS_LFS__
  59673. -#define __NR___syscall_sync_file_range __NR_sync_file_range
  59674. -static __inline__ _syscall6(int, __syscall_sync_file_range, int, fd,
  59675. - off_t, offset_hi, off_t, offset_lo,
  59676. - off_t, nbytes_hi, off_t, nbytes_lo, unsigned int, flags)
  59677. -int sync_file_range(int fd, off64_t offset, off64_t nbytes, unsigned int flags)
  59678. +# ifdef __NR_sync_file_range2
  59679. +# undef __NR_sync_file_range
  59680. +# define __NR_sync_file_range __NR_sync_file_range2
  59681. +# endif
  59682. +
  59683. +# ifdef __NR_sync_file_range
  59684. +static int __NC(sync_file_range)(int fd, off64_t offset, off64_t nbytes, unsigned int flags)
  59685. {
  59686. - return __syscall_sync_file_range(fd,
  59687. - __LONG_LONG_PAIR((long)(offset >> 32), (long)(offset & 0xffffffff)),
  59688. - __LONG_LONG_PAIR((long)(nbytes >> 32), (long)(nbytes & 0xffffffff)),
  59689. - flags);
  59690. +# if defined __powerpc__ && __WORDSIZE == 64
  59691. + return INLINE_SYSCALL(sync_file_range, 4, fd, offset, nbytes, flags);
  59692. +# elif defined __mips__ && _MIPS_SIM == _ABIO32
  59693. + return INLINE_SYSCALL(sync_file_range, 7, fd, 0,
  59694. + OFF64_HI_LO(offset), OFF64_HI_LO(nbytes), flags);
  59695. +# else
  59696. + return INLINE_SYSCALL(sync_file_range, 6, fd,
  59697. + OFF64_HI_LO(offset), OFF64_HI_LO(nbytes), flags);
  59698. +# endif
  59699. }
  59700. -#endif
  59701. +CANCELLABLE_SYSCALL(int, sync_file_range, (int fd, off64_t offset, off64_t nbytes, unsigned int flags), (fd, offset, nbytes, flags))
  59702. +# endif
  59703. #endif
  59704. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/acct.h uClibc-git/libc/sysdeps/linux/common/sys/acct.h
  59705. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/acct.h 2012-05-15 09:20:09.000000000 +0200
  59706. +++ uClibc-git/libc/sysdeps/linux/common/sys/acct.h 2014-06-02 17:40:34.362713911 +0200
  59707. @@ -1,4 +1,4 @@
  59708. -/* Copyright (C) 1996, 1997, 1998, 1999 Free Software Foundation, Inc.
  59709. +/* Copyright (C) 1996, 1997, 1998, 1999, 2007 Free Software Foundation, Inc.
  59710. This file is part of the GNU C Library.
  59711. The GNU C Library is free software; you can redistribute it and/or
  59712. @@ -12,15 +12,15 @@
  59713. Lesser General Public License for more details.
  59714. You should have received a copy of the GNU Lesser General Public
  59715. - License along with the GNU C Library; if not, write to the Free
  59716. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  59717. - 02111-1307 USA. */
  59718. + License along with the GNU C Library; if not, see
  59719. + <http://www.gnu.org/licenses/>. */
  59720. #ifndef _SYS_ACCT_H
  59721. #define _SYS_ACCT_H 1
  59722. #include <features.h>
  59723. +#include <endian.h>
  59724. #define __need_time_t
  59725. #include <time.h>
  59726. #include <sys/types.h>
  59727. @@ -38,25 +38,51 @@
  59728. typedef u_int16_t comp_t;
  59729. struct acct
  59730. - {
  59731. - char ac_flag; /* Accounting flags. */
  59732. - u_int16_t ac_uid; /* Accounting user ID. */
  59733. - u_int16_t ac_gid; /* Accounting group ID. */
  59734. - u_int16_t ac_tty; /* Controlling tty. */
  59735. - u_int32_t ac_btime; /* Beginning time. */
  59736. - comp_t ac_utime; /* Accounting user time. */
  59737. - comp_t ac_stime; /* Accounting system time. */
  59738. - comp_t ac_etime; /* Accounting elapsed time. */
  59739. - comp_t ac_mem; /* Accounting average memory usage. */
  59740. - comp_t ac_io; /* Accounting chars transferred. */
  59741. - comp_t ac_rw; /* Accounting blocks read or written. */
  59742. - comp_t ac_minflt; /* Accounting minor pagefaults. */
  59743. - comp_t ac_majflt; /* Accounting major pagefaults. */
  59744. - comp_t ac_swaps; /* Accounting number of swaps. */
  59745. - u_int32_t ac_exitcode; /* Accounting process exitcode. */
  59746. - char ac_comm[ACCT_COMM+1]; /* Accounting command name. */
  59747. - char ac_pad[10]; /* Accounting padding bytes. */
  59748. - };
  59749. +{
  59750. + char ac_flag; /* Flags. */
  59751. + u_int16_t ac_uid; /* Real user ID. */
  59752. + u_int16_t ac_gid; /* Real group ID. */
  59753. + u_int16_t ac_tty; /* Controlling terminal. */
  59754. + u_int32_t ac_btime; /* Beginning time. */
  59755. + comp_t ac_utime; /* User time. */
  59756. + comp_t ac_stime; /* System time. */
  59757. + comp_t ac_etime; /* Elapsed time. */
  59758. + comp_t ac_mem; /* Average memory usage. */
  59759. + comp_t ac_io; /* Chars transferred. */
  59760. + comp_t ac_rw; /* Blocks read or written. */
  59761. + comp_t ac_minflt; /* Minor pagefaults. */
  59762. + comp_t ac_majflt; /* Major pagefaults. */
  59763. + comp_t ac_swaps; /* Number of swaps. */
  59764. + u_int32_t ac_exitcode; /* Process exitcode. */
  59765. + char ac_comm[ACCT_COMM+1]; /* Command name. */
  59766. + char ac_pad[10]; /* Padding bytes. */
  59767. +};
  59768. +
  59769. +#if 0
  59770. +struct acct_v3
  59771. +{
  59772. + char ac_flag; /* Flags */
  59773. + char ac_version; /* Always set to ACCT_VERSION */
  59774. + u_int16_t ac_tty; /* Control Terminal */
  59775. + u_int32_t ac_exitcode; /* Exitcode */
  59776. + u_int32_t ac_uid; /* Real User ID */
  59777. + u_int32_t ac_gid; /* Real Group ID */
  59778. + u_int32_t ac_pid; /* Process ID */
  59779. + u_int32_t ac_ppid; /* Parent Process ID */
  59780. + u_int32_t ac_btime; /* Process Creation Time */
  59781. + float ac_etime; /* Elapsed Time */
  59782. + comp_t ac_utime; /* User Time */
  59783. + comp_t ac_stime; /* System Time */
  59784. + comp_t ac_mem; /* Average Memory Usage */
  59785. + comp_t ac_io; /* Chars Transferred */
  59786. + comp_t ac_rw; /* Blocks Read or Written */
  59787. + comp_t ac_minflt; /* Minor Pagefaults */
  59788. + comp_t ac_majflt; /* Major Pagefaults */
  59789. + comp_t ac_swaps; /* Number of Swaps */
  59790. + char ac_comm[ACCT_COMM]; /* Command Name */
  59791. +};
  59792. +#endif
  59793. +
  59794. enum
  59795. {
  59796. @@ -66,11 +92,17 @@
  59797. AXSIG = 0x10 /* Killed by a signal. */
  59798. };
  59799. +#if __BYTE_ORDER == __BIG_ENDIAN
  59800. +# define ACCT_BYTEORDER 0x80 /* Accounting file is big endian. */
  59801. +#else
  59802. +# define ACCT_BYTEORDER 0x00 /* Accounting file is little endian. */
  59803. +#endif
  59804. +
  59805. #define AHZ 100
  59806. /* Switch process accounting on and off. */
  59807. -extern int acct (__const char *__filename) __THROW;
  59808. +extern int acct (const char *__filename) __THROW;
  59809. __END_DECLS
  59810. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/epoll.h uClibc-git/libc/sysdeps/linux/common/sys/epoll.h
  59811. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/epoll.h 2012-05-15 09:20:09.000000000 +0200
  59812. +++ uClibc-git/libc/sysdeps/linux/common/sys/epoll.h 2014-06-02 17:40:34.362713911 +0200
  59813. @@ -36,7 +36,6 @@
  59814. # define __EPOLL_PACKED
  59815. #endif
  59816. -
  59817. enum EPOLL_EVENTS
  59818. {
  59819. EPOLLIN = 0x001,
  59820. @@ -97,7 +96,7 @@
  59821. returned by epoll_create() should be closed with close(). */
  59822. extern int epoll_create (int __size) __THROW;
  59823. -/* Same as epoll_create but with an FLAGS parameter. The unused SIZE
  59824. +/* Same as epoll_create but with a FLAGS parameter. The unused SIZE
  59825. parameter has been dropped. */
  59826. extern int epoll_create1 (int __flags) __THROW;
  59827. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/eventfd.h uClibc-git/libc/sysdeps/linux/common/sys/eventfd.h
  59828. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/eventfd.h 2012-05-15 09:20:09.000000000 +0200
  59829. +++ uClibc-git/libc/sysdeps/linux/common/sys/eventfd.h 2014-06-02 17:40:34.362713911 +0200
  59830. @@ -1,4 +1,4 @@
  59831. -/* Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc.
  59832. +/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
  59833. This file is part of the GNU C Library.
  59834. The GNU C Library is free software; you can redistribute it and/or
  59835. @@ -12,30 +12,20 @@
  59836. Lesser General Public License for more details.
  59837. You should have received a copy of the GNU Lesser General Public
  59838. - License along with the GNU C Library; if not, write to the Free
  59839. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  59840. - 02111-1307 USA. */
  59841. + License along with the GNU C Library; if not, see
  59842. + <http://www.gnu.org/licenses/>. */
  59843. #ifndef _SYS_EVENTFD_H
  59844. #define _SYS_EVENTFD_H 1
  59845. #include <stdint.h>
  59846. +/* Get the platform-dependent flags. */
  59847. +#include <bits/eventfd.h>
  59848. /* Type for event counter. */
  59849. typedef uint64_t eventfd_t;
  59850. -/* Flags for signalfd. */
  59851. -enum
  59852. - {
  59853. - EFD_SEMAPHORE = 1,
  59854. -#define EFD_SEMAPHORE EFD_SEMAPHORE
  59855. - EFD_CLOEXEC = 02000000,
  59856. -#define EFD_CLOEXEC EFD_CLOEXEC
  59857. - EFD_NONBLOCK = 04000
  59858. -#define EFD_NONBLOCK EFD_NONBLOCK
  59859. - };
  59860. -
  59861. __BEGIN_DECLS
  59862. @@ -43,6 +33,16 @@
  59863. value to COUNT. */
  59864. extern int eventfd (int __count, int __flags) __THROW;
  59865. +#if 0 /* not (yet) implemented in uClibc */
  59866. +
  59867. +/* Read event counter and possibly wait for events. */
  59868. +extern int eventfd_read (int __fd, eventfd_t *__value);
  59869. +
  59870. +/* Increment event counter. */
  59871. +extern int eventfd_write (int __fd, eventfd_t __value);
  59872. +
  59873. +#endif
  59874. +
  59875. __END_DECLS
  59876. #endif /* sys/eventfd.h */
  59877. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/prctl.h uClibc-git/libc/sysdeps/linux/common/sys/prctl.h
  59878. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/prctl.h 2012-05-15 09:20:09.000000000 +0200
  59879. +++ uClibc-git/libc/sysdeps/linux/common/sys/prctl.h 2014-06-02 17:40:34.362713911 +0200
  59880. @@ -12,9 +12,8 @@
  59881. Lesser General Public License for more details.
  59882. You should have received a copy of the GNU Lesser General Public
  59883. - License along with the GNU C Library; if not, write to the Free
  59884. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  59885. - 02111-1307 USA. */
  59886. + License along with the GNU C Library; if not, see
  59887. + <http://www.gnu.org/licenses/>. */
  59888. #ifndef _SYS_PRCTL_H
  59889. #define _SYS_PRCTL_H 1
  59890. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/ptrace.h uClibc-git/libc/sysdeps/linux/common/sys/ptrace.h
  59891. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  59892. +++ uClibc-git/libc/sysdeps/linux/common/sys/ptrace.h 2014-06-02 17:40:34.362713911 +0200
  59893. @@ -1,5 +1,5 @@
  59894. /* `ptrace' debugger support interface. Linux version.
  59895. - Copyright (C) 1996-1999,2000,2006,2007 Free Software Foundation, Inc.
  59896. + Copyright (C) 1996-2012 Free Software Foundation, Inc.
  59897. This file is part of the GNU C Library.
  59898. The GNU C Library is free software; you can redistribute it and/or
  59899. @@ -13,9 +13,8 @@
  59900. Lesser General Public License for more details.
  59901. You should have received a copy of the GNU Lesser General Public
  59902. - License along with the GNU C Library; if not, write to the Free
  59903. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  59904. - 02111-1307 USA. */
  59905. + License along with the GNU C Library; if not, see
  59906. + <http://www.gnu.org/licenses/>. */
  59907. #ifndef _SYS_PTRACE_H
  59908. #define _SYS_PTRACE_H 1
  59909. @@ -125,13 +124,40 @@
  59910. #define PT_GETSIGINFO PTRACE_GETSIGINFO
  59911. /* Set new siginfo for process. */
  59912. - PTRACE_SETSIGINFO = 0x4203
  59913. + PTRACE_SETSIGINFO = 0x4203,
  59914. #define PT_SETSIGINFO PTRACE_SETSIGINFO
  59915. +
  59916. + /* Get register content. */
  59917. + PTRACE_GETREGSET = 0x4204,
  59918. +#define PTRACE_GETREGSET PTRACE_GETREGSET
  59919. +
  59920. + /* Set register content. */
  59921. + PTRACE_SETREGSET = 0x4205,
  59922. +#define PTRACE_SETREGSET PTRACE_SETREGSET
  59923. +
  59924. + /* Like PTRACE_ATTACH, but do not force tracee to trap and do not affect
  59925. + signal or group stop state. */
  59926. + PTRACE_SEIZE = 0x4206,
  59927. +#define PTRACE_SEIZE PTRACE_SEIZE
  59928. +
  59929. + /* Trap seized tracee. */
  59930. + PTRACE_INTERRUPT = 0x4207,
  59931. +#define PTRACE_INTERRUPT PTRACE_INTERRUPT
  59932. +
  59933. + /* Wait for next group event. */
  59934. + PTRACE_LISTEN = 0x4208
  59935. };
  59936. +/* Flag for PTRACE_LISTEN. */
  59937. +enum __ptrace_flags
  59938. +{
  59939. + PTRACE_SEIZE_DEVEL = 0x80000000
  59940. +};
  59941. +
  59942. /* Options set using PTRACE_SETOPTIONS. */
  59943. -enum __ptrace_setoptions {
  59944. +enum __ptrace_setoptions
  59945. +{
  59946. PTRACE_O_TRACESYSGOOD = 0x00000001,
  59947. PTRACE_O_TRACEFORK = 0x00000002,
  59948. PTRACE_O_TRACEVFORK = 0x00000004,
  59949. @@ -139,17 +165,20 @@
  59950. PTRACE_O_TRACEEXEC = 0x00000010,
  59951. PTRACE_O_TRACEVFORKDONE = 0x00000020,
  59952. PTRACE_O_TRACEEXIT = 0x00000040,
  59953. - PTRACE_O_MASK = 0x0000007f
  59954. + PTRACE_O_TRACESECCOMP = 0x00000080,
  59955. + PTRACE_O_MASK = 0x000000ff
  59956. };
  59957. /* Wait extended result codes for the above trace options. */
  59958. -enum __ptrace_eventcodes {
  59959. +enum __ptrace_eventcodes
  59960. +{
  59961. PTRACE_EVENT_FORK = 1,
  59962. PTRACE_EVENT_VFORK = 2,
  59963. PTRACE_EVENT_CLONE = 3,
  59964. PTRACE_EVENT_EXEC = 4,
  59965. PTRACE_EVENT_VFORK_DONE = 5,
  59966. - PTRACE_EVENT_EXIT = 6
  59967. + PTRACE_EVENT_EXIT = 6,
  59968. + PTRAVE_EVENT_SECCOMP = 7
  59969. };
  59970. /* Perform process tracing functions. REQUEST is one of the values
  59971. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_fcntl64.c uClibc-git/libc/sysdeps/linux/common/__syscall_fcntl64.c
  59972. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_fcntl64.c 2012-05-15 09:20:09.000000000 +0200
  59973. +++ uClibc-git/libc/sysdeps/linux/common/__syscall_fcntl64.c 2014-06-02 17:40:34.338713778 +0200
  59974. @@ -7,14 +7,18 @@
  59975. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  59976. */
  59977. +#include <_lfs_64.h>
  59978. #include <sys/syscall.h>
  59979. -#include <stdarg.h>
  59980. -#include <fcntl.h>
  59981. +#include <bits/wordsize.h>
  59982. -#if defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64
  59983. +#if defined __NR_fcntl64 && __WORDSIZE == 32
  59984. +# include <stdarg.h>
  59985. +# include <cancel.h>
  59986. +# include <fcntl.h>
  59987. +
  59988. +# define __NR___fcntl64_nocancel __NR_fcntl64
  59989. +_syscall3(int, __NC(fcntl64), int, fd, int, cmd, long, arg)
  59990. -#define __NR___syscall_fcntl64 __NR_fcntl64
  59991. -static __inline__ _syscall3(int, __syscall_fcntl64, int, fd, int, cmd, long, arg)
  59992. int fcntl64(int fd, int cmd, ...)
  59993. {
  59994. long arg;
  59995. @@ -24,7 +28,15 @@
  59996. arg = va_arg(list, long);
  59997. va_end(list);
  59998. - return (__syscall_fcntl64(fd, cmd, arg));
  59999. + if (SINGLE_THREAD_P || (cmd != F_SETLKW64))
  60000. + return __NC(fcntl64)(fd, cmd, arg);
  60001. +# ifdef __NEW_THREADS
  60002. + int oldtype = LIBC_CANCEL_ASYNC();
  60003. + int result = __NC(fcntl64)(fd, cmd, arg);
  60004. + LIBC_CANCEL_RESET(oldtype);
  60005. + return result;
  60006. +# endif
  60007. }
  60008. -libc_hidden_def(fcntl64)
  60009. +lt_strong_alias(fcntl64)
  60010. +lt_libc_hidden(fcntl64)
  60011. #endif
  60012. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_fcntl.c uClibc-git/libc/sysdeps/linux/common/__syscall_fcntl.c
  60013. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_fcntl.c 2012-05-15 09:20:09.000000000 +0200
  60014. +++ uClibc-git/libc/sysdeps/linux/common/__syscall_fcntl.c 2014-06-02 17:40:34.338713778 +0200
  60015. @@ -10,82 +10,61 @@
  60016. #include <sys/syscall.h>
  60017. #include <stdarg.h>
  60018. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  60019. -#include <sysdep-cancel.h> /* Must come before <fcntl.h>. */
  60020. -#endif
  60021. +#include <cancel.h> /* Must come before <fcntl.h>. */
  60022. #include <fcntl.h>
  60023. #include <bits/wordsize.h>
  60024. -extern __typeof(fcntl) __libc_fcntl;
  60025. -libc_hidden_proto(__libc_fcntl)
  60026. -
  60027. -int __fcntl_nocancel (int fd, int cmd, ...)
  60028. +int __NC(fcntl)(int fd, int cmd, long arg)
  60029. {
  60030. - va_list ap;
  60031. - void *arg;
  60032. -
  60033. - va_start (ap, cmd);
  60034. - arg = va_arg (ap, void *);
  60035. - va_end (ap);
  60036. -
  60037. -# if __WORDSIZE == 32
  60038. +#if __WORDSIZE == 32
  60039. if (cmd == F_GETLK64 || cmd == F_SETLK64 || cmd == F_SETLKW64) {
  60040. -# if defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64
  60041. - return INLINE_SYSCALL (fcntl64, 3, fd, cmd, arg);
  60042. -# else
  60043. +# if (defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64) || !defined __NR_fcntl
  60044. + return INLINE_SYSCALL(fcntl64, 3, fd, cmd, arg);
  60045. +# else
  60046. __set_errno(ENOSYS);
  60047. return -1;
  60048. -# endif
  60049. - }
  60050. # endif
  60051. - return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg);
  60052. + }
  60053. +#endif
  60054. +
  60055. +#if defined __NR_fcntl
  60056. + return INLINE_SYSCALL(fcntl, 3, fd, cmd, arg);
  60057. +#else
  60058. + __set_errno(ENOSYS);
  60059. + return -1;
  60060. +#endif
  60061. }
  60062. -libc_hidden_def(__fcntl_nocancel)
  60063. -int __libc_fcntl (int fd, int cmd, ...)
  60064. +int fcntl(int fd, int cmd, ...)
  60065. {
  60066. va_list ap;
  60067. - void *arg;
  60068. + long arg;
  60069. va_start (ap, cmd);
  60070. - arg = va_arg (ap, void *);
  60071. + arg = va_arg (ap, long);
  60072. va_end (ap);
  60073. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  60074. if (SINGLE_THREAD_P || (cmd != F_SETLKW && cmd != F_SETLKW64))
  60075. -# if defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64
  60076. - return INLINE_SYSCALL (fcntl64, 3, fd, cmd, arg);
  60077. -# else
  60078. - return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg);
  60079. -# endif
  60080. -
  60081. +#if defined __NR_fcntl
  60082. + return __NC(fcntl)(fd, cmd, arg);
  60083. +#else
  60084. + return INLINE_SYSCALL(fcntl64, 3, fd, cmd, arg);
  60085. +#endif
  60086. +#ifdef __NEW_THREADS
  60087. int oldtype = LIBC_CANCEL_ASYNC ();
  60088. -
  60089. -# if defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64
  60090. - int result = INLINE_SYSCALL (fcntl64, 3, fd, cmd, arg);
  60091. -# else
  60092. - int result = INLINE_SYSCALL (fcntl, 3, fd, cmd, arg);
  60093. -# endif
  60094. -
  60095. +#if defined __NR_fcntl
  60096. + int result = __NC(fcntl)(fd, cmd, arg);
  60097. +#else
  60098. + int result = INLINE_SYSCALL(fcntl64, 3, fd, cmd, arg);
  60099. +#endif
  60100. LIBC_CANCEL_RESET (oldtype);
  60101. -
  60102. return result;
  60103. -#else
  60104. -# if __WORDSIZE == 32
  60105. - if (cmd == F_GETLK64 || cmd == F_SETLK64 || cmd == F_SETLKW64) {
  60106. -# if defined __UCLIBC_HAS_LFS__ && defined __NR_fcntl64
  60107. - return INLINE_SYSCALL (fcntl64, 3, fd, cmd, arg);
  60108. -# else
  60109. - __set_errno(ENOSYS);
  60110. - return -1;
  60111. -# endif
  60112. - }
  60113. -# endif
  60114. - return INLINE_SYSCALL (fcntl, 3, fd, cmd, arg);
  60115. #endif
  60116. }
  60117. -libc_hidden_def(__libc_fcntl)
  60118. -
  60119. -libc_hidden_proto(fcntl)
  60120. -weak_alias(__libc_fcntl,fcntl)
  60121. -libc_hidden_weak(fcntl)
  60122. +lt_strong_alias(fcntl)
  60123. +lt_libc_hidden(fcntl)
  60124. +#if defined __UCLIBC_HAS_LFS__ && !defined __NR_fcntl64 && __WORDSIZE == 32
  60125. +strong_alias_untyped(fcntl,fcntl64)
  60126. +lt_strong_alias(fcntl64)
  60127. +lt_libc_hidden(fcntl64)
  60128. +#endif
  60129. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_rt_sigaction.c uClibc-git/libc/sysdeps/linux/common/__syscall_rt_sigaction.c
  60130. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_rt_sigaction.c 2012-05-15 09:20:09.000000000 +0200
  60131. +++ uClibc-git/libc/sysdeps/linux/common/__syscall_rt_sigaction.c 2014-06-02 17:40:34.338713778 +0200
  60132. @@ -12,11 +12,8 @@
  60133. #ifdef __NR_rt_sigaction
  60134. #include <signal.h>
  60135. -int __syscall_rt_sigaction (int __signum, const struct sigaction *__act,
  60136. - struct sigaction *__oldact, size_t __size);
  60137. -
  60138. #define __NR___syscall_rt_sigaction __NR_rt_sigaction
  60139. _syscall4(int, __syscall_rt_sigaction, int, signum,
  60140. - const struct sigaction *, act, struct sigaction *, oldact,
  60141. - size_t, size)
  60142. + const struct sigaction *, act, struct sigaction *, oldact,
  60143. + size_t, size)
  60144. #endif
  60145. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/syscalls.h uClibc-git/libc/sysdeps/linux/common/syscalls.h
  60146. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/syscalls.h 2012-05-15 09:20:09.000000000 +0200
  60147. +++ uClibc-git/libc/sysdeps/linux/common/syscalls.h 1970-01-01 01:00:00.000000000 +0100
  60148. @@ -1,24 +0,0 @@
  60149. -/* vi: set sw=4 ts=4: */
  60150. -/*
  60151. - * Common header file for uClibc syscalls
  60152. - *
  60153. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  60154. - *
  60155. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  60156. - */
  60157. -
  60158. -#define _LARGEFILE64_SOURCE
  60159. -#include <features.h>
  60160. -#include <errno.h>
  60161. -#include <sys/types.h>
  60162. -#include <sys/syscall.h>
  60163. -#include <endian.h>
  60164. -
  60165. -#undef __OPTIMIZE__
  60166. -/* We absolutely do _NOT_ want interfaces silently
  60167. - * being renamed under us or very bad things will happen... */
  60168. -#ifdef __USE_FILE_OFFSET64
  60169. -# undef __USE_FILE_OFFSET64
  60170. -#endif
  60171. -
  60172. -#include <bits/kernel_types.h>
  60173. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_sigaction.c uClibc-git/libc/sysdeps/linux/common/__syscall_sigaction.c
  60174. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/__syscall_sigaction.c 2012-05-15 09:20:09.000000000 +0200
  60175. +++ uClibc-git/libc/sysdeps/linux/common/__syscall_sigaction.c 2014-06-02 17:40:34.338713778 +0200
  60176. @@ -12,8 +12,7 @@
  60177. #ifndef __NR_rt_sigaction
  60178. #define __NR___syscall_sigaction __NR_sigaction
  60179. #include <signal.h>
  60180. -int __syscall_sigaction (int __signum, const struct sigaction *__act, struct sigaction *__oldact) attribute_hidden;
  60181. _syscall3(int, __syscall_sigaction, int, signum, const struct sigaction *,
  60182. - act, struct sigaction *, oldact)
  60183. + act, struct sigaction *, oldact)
  60184. #endif
  60185. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sysdep.h uClibc-git/libc/sysdeps/linux/common/sysdep.h
  60186. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  60187. +++ uClibc-git/libc/sysdeps/linux/common/sysdep.h 2014-06-02 17:40:34.362713911 +0200
  60188. @@ -13,9 +13,8 @@
  60189. Lesser General Public License for more details.
  60190. You should have received a copy of the GNU Lesser General Public
  60191. - License along with the GNU C Library; if not, write to the Free
  60192. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  60193. - 02111-1307 USA. */
  60194. + License along with the GNU C Library; if not, see
  60195. + <http://www.gnu.org/licenses/>. */
  60196. #include <sys/syscall.h>
  60197. @@ -49,6 +48,8 @@
  60198. #define JUMPTARGET(sym) sym
  60199. #endif
  60200. +#define ret_ERRVAL ret
  60201. +
  60202. /* Macros to generate eh_frame unwind information. */
  60203. # ifdef HAVE_ASM_CFI_DIRECTIVES
  60204. # define cfi_sections(sect...) .cfi_sections sect
  60205. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/sysinfo.c uClibc-git/libc/sysdeps/linux/common/sysinfo.c
  60206. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/sysinfo.c 2012-05-15 09:20:09.000000000 +0200
  60207. +++ uClibc-git/libc/sysdeps/linux/common/sysinfo.c 2014-06-02 17:40:34.362713911 +0200
  60208. @@ -8,5 +8,8 @@
  60209. */
  60210. #include <sys/syscall.h>
  60211. -#include <sys/sysinfo.h>
  60212. +
  60213. +#ifdef __NR_sysinfo
  60214. +# include <sys/sysinfo.h>
  60215. _syscall1(int, sysinfo, struct sysinfo *, info)
  60216. +#endif
  60217. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/tee.c uClibc-git/libc/sysdeps/linux/common/tee.c
  60218. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/tee.c 2012-05-15 09:20:09.000000000 +0200
  60219. +++ uClibc-git/libc/sysdeps/linux/common/tee.c 2014-06-02 17:40:34.362713911 +0200
  60220. @@ -8,9 +8,10 @@
  60221. */
  60222. #include <sys/syscall.h>
  60223. -#include <fcntl.h>
  60224. -#ifdef __NR_tee
  60225. +#if defined __NR_tee && defined __USE_GNU
  60226. +# include <fcntl.h>
  60227. +
  60228. _syscall4(ssize_t, tee, int, __fdin, int, __fdout, size_t, __len,
  60229. - unsigned int, __flags)
  60230. + unsigned int, __flags)
  60231. #endif
  60232. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/time.c uClibc-git/libc/sysdeps/linux/common/time.c
  60233. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/time.c 2012-05-15 09:20:09.000000000 +0200
  60234. +++ uClibc-git/libc/sysdeps/linux/common/time.c 2014-06-02 17:40:34.362713911 +0200
  60235. @@ -9,12 +9,11 @@
  60236. #include <sys/syscall.h>
  60237. #include <time.h>
  60238. -#include <sys/time.h>
  60239. -
  60240. #ifdef __NR_time
  60241. _syscall_noerr1(time_t, time, time_t *, t)
  60242. #else
  60243. +# include <sys/time.h>
  60244. time_t time(time_t * t)
  60245. {
  60246. time_t result;
  60247. @@ -25,9 +24,8 @@
  60248. */
  60249. gettimeofday(&tv, NULL);
  60250. result = (time_t) tv.tv_sec;
  60251. - if (t != NULL) {
  60252. + if (t != NULL)
  60253. *t = result;
  60254. - }
  60255. return result;
  60256. }
  60257. #endif
  60258. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/times.c uClibc-git/libc/sysdeps/linux/common/times.c
  60259. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/times.c 2012-05-15 09:20:09.000000000 +0200
  60260. +++ uClibc-git/libc/sysdeps/linux/common/times.c 2014-06-02 17:40:34.366713933 +0200
  60261. @@ -10,6 +10,5 @@
  60262. #include <sys/syscall.h>
  60263. #include <sys/times.h>
  60264. -
  60265. _syscall_noerr1(clock_t, times, struct tms *, buf)
  60266. libc_hidden_def(times)
  60267. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/truncate64.c uClibc-git/libc/sysdeps/linux/common/truncate64.c
  60268. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/truncate64.c 2012-05-15 09:20:09.000000000 +0200
  60269. +++ uClibc-git/libc/sysdeps/linux/common/truncate64.c 2014-06-02 17:40:34.366713933 +0200
  60270. @@ -7,49 +7,35 @@
  60271. * and on 32 bit machines this sends things into the kernel as
  60272. * two 32-bit arguments (high and low 32 bits of length) that
  60273. * are ordered based on endianess. It turns out endian.h has
  60274. - * just the macro we need to order things, __LONG_LONG_PAIR.
  60275. + * just the macro we need to order things, OFF64_HI_LO.
  60276. */
  60277. -#include <features.h>
  60278. -#include <unistd.h>
  60279. -#include <errno.h>
  60280. -#include <endian.h>
  60281. -#include <stdint.h>
  60282. -#include <sys/types.h>
  60283. +#include <_lfs_64.h>
  60284. #include <sys/syscall.h>
  60285. +#include <unistd.h>
  60286. -#if defined __UCLIBC_HAS_LFS__
  60287. -
  60288. -#if defined __NR_truncate64
  60289. -
  60290. -#if __WORDSIZE == 64
  60291. +#ifdef __NR_truncate64
  60292. +# include <bits/wordsize.h>
  60293. -/* For a 64 bit machine, life is simple... */
  60294. +# if __WORDSIZE == 64
  60295. _syscall2(int, truncate64, const char *, path, __off64_t, length)
  60296. -
  60297. -#elif __WORDSIZE == 32
  60298. -
  60299. -/* The exported truncate64 function. */
  60300. +# elif __WORDSIZE == 32
  60301. +# include <endian.h>
  60302. +# include <stdint.h>
  60303. int truncate64(const char * path, __off64_t length)
  60304. {
  60305. - uint32_t low = length & 0xffffffff;
  60306. - uint32_t high = length >> 32;
  60307. -#if defined(__UCLIBC_TRUNCATE64_HAS_4_ARGS__)
  60308. - return INLINE_SYSCALL(truncate64, 4, path, 0,
  60309. - __LONG_LONG_PAIR(high, low));
  60310. -#else
  60311. - return INLINE_SYSCALL(truncate64, 3, path,
  60312. - __LONG_LONG_PAIR(high, low));
  60313. -#endif
  60314. +# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
  60315. + return INLINE_SYSCALL(truncate64, 4, path, 0, OFF64_HI_LO(length));
  60316. +# else
  60317. + return INLINE_SYSCALL(truncate64, 3, path, OFF64_HI_LO(length));
  60318. +# endif
  60319. }
  60320. +# else
  60321. +# error Your machine is not 64 bit nor 32 bit, I am dazed and confused.
  60322. +# endif
  60323. -#else /* __WORDSIZE */
  60324. -#error Your machine is not 64 bit nor 32 bit, I am dazed and confused.
  60325. -#endif /* __WORDSIZE */
  60326. -
  60327. -#else /* __NR_truncate64 */
  60328. -
  60329. -
  60330. +#else
  60331. +# include <errno.h>
  60332. int truncate64(const char * path, __off64_t length)
  60333. {
  60334. __off_t x = (__off_t) length;
  60335. @@ -64,5 +50,4 @@
  60336. }
  60337. #endif /* __NR_truncate64 */
  60338. -
  60339. -#endif /* __UCLIBC_HAS_LFS__ */
  60340. +libc_hidden_def(truncate64)
  60341. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/truncate.c uClibc-git/libc/sysdeps/linux/common/truncate.c
  60342. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/truncate.c 2012-05-15 09:20:09.000000000 +0200
  60343. +++ uClibc-git/libc/sysdeps/linux/common/truncate.c 2014-06-02 17:40:34.366713933 +0200
  60344. @@ -10,6 +10,25 @@
  60345. #include <sys/syscall.h>
  60346. #include <unistd.h>
  60347. +#if defined(__NR_truncate64) && !defined(__NR_truncate)
  60348. +# include <endian.h>
  60349. +# include <stdint.h>
  60350. +int truncate(const char *path, __off_t length)
  60351. +{
  60352. +# if defined __UCLIBC_HAS_LFS
  60353. + return truncate64(path, length);
  60354. +# elif __WORDSIZE == 32
  60355. +# if defined(__UCLIBC_SYSCALL_ALIGN_64BIT__)
  60356. + return INLINE_SYSCALL(truncate64, 4, path, 0, OFF_HI_LO(length));
  60357. +# else
  60358. + return INLINE_SYSCALL(truncate64, 3, path, OFF_HI_LO(length));
  60359. +# endif
  60360. +# endif
  60361. +}
  60362. +libc_hidden_def(truncate);
  60363. +
  60364. +#else
  60365. _syscall2(int, truncate, const char *, path, __off_t, length)
  60366. libc_hidden_def(truncate)
  60367. +#endif
  60368. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/umask.c uClibc-git/libc/sysdeps/linux/common/umask.c
  60369. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/umask.c 2012-05-15 09:20:09.000000000 +0200
  60370. +++ uClibc-git/libc/sysdeps/linux/common/umask.c 2014-06-02 17:40:34.366713933 +0200
  60371. @@ -10,10 +10,4 @@
  60372. #include <sys/syscall.h>
  60373. #include <sys/stat.h>
  60374. -#define __NR___syscall_umask __NR_umask
  60375. -static __inline__ _syscall1(__kernel_mode_t, __syscall_umask, __kernel_mode_t, mode)
  60376. -
  60377. -mode_t umask(mode_t mode)
  60378. -{
  60379. - return __syscall_umask(mode);
  60380. -}
  60381. +_syscall_noerr1(mode_t, umask, mode_t, mode)
  60382. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/umount2.c uClibc-git/libc/sysdeps/linux/common/umount2.c
  60383. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/umount2.c 2012-05-15 09:20:09.000000000 +0200
  60384. +++ uClibc-git/libc/sysdeps/linux/common/umount2.c 2014-06-02 17:40:34.366713933 +0200
  60385. @@ -9,9 +9,8 @@
  60386. #include <sys/syscall.h>
  60387. -#if defined __USE_GNU
  60388. -#include <sys/mount.h>
  60389. -#ifdef __NR_umount2 /* Old kernels don't have umount2 */
  60390. +#if defined __UCLIBC_LINUX_SPECIFIC__ && defined __NR_umount2
  60391. +# include <sys/mount.h>
  60392. _syscall2(int, umount2, const char *, special_file, int, flags)
  60393. -#endif
  60394. +libc_hidden_def(umount2)
  60395. #endif
  60396. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/umount.c uClibc-git/libc/sysdeps/linux/common/umount.c
  60397. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/umount.c 2012-05-15 09:20:09.000000000 +0200
  60398. +++ uClibc-git/libc/sysdeps/linux/common/umount.c 2014-06-02 17:40:34.366713933 +0200
  60399. @@ -9,24 +9,15 @@
  60400. #include <sys/syscall.h>
  60401. -#if defined __USE_GNU
  60402. #include <sys/mount.h>
  60403. -
  60404. -/* arch provides umount() syscall */
  60405. #ifdef __NR_umount
  60406. -
  60407. _syscall1(int, umount, const char *, specialfile)
  60408. -
  60409. -/* arch provides umount2() syscall */
  60410. #elif defined __NR_umount2
  60411. -
  60412. -# define __NR___syscall_umount2 __NR_umount2
  60413. -static __inline__ _syscall2(int, __syscall_umount2, const char *, special_file, int, flags)
  60414. -
  60415. +# ifndef __UCLIBC_LINUX_SPECIFIC__
  60416. +static __always_inline _syscall2(int, umount2, const char *, special_file, int, flags)
  60417. +# endif
  60418. int umount(const char *special_file)
  60419. {
  60420. - return (__syscall_umount2(special_file, 0));
  60421. + return umount2(special_file, 0);
  60422. }
  60423. -
  60424. -#endif
  60425. #endif
  60426. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/uname.c uClibc-git/libc/sysdeps/linux/common/uname.c
  60427. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/uname.c 2012-05-15 09:20:09.000000000 +0200
  60428. +++ uClibc-git/libc/sysdeps/linux/common/uname.c 2014-06-02 17:40:34.366713933 +0200
  60429. @@ -10,6 +10,5 @@
  60430. #include <sys/syscall.h>
  60431. #include <sys/utsname.h>
  60432. -
  60433. _syscall1(int, uname, struct utsname *, buf)
  60434. libc_hidden_def(uname)
  60435. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/unlinkat.c uClibc-git/libc/sysdeps/linux/common/unlinkat.c
  60436. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/unlinkat.c 2012-05-15 09:20:09.000000000 +0200
  60437. +++ uClibc-git/libc/sysdeps/linux/common/unlinkat.c 2014-06-02 17:40:34.366713933 +0200
  60438. @@ -11,6 +11,7 @@
  60439. #ifdef __NR_unlinkat
  60440. _syscall3(int, unlinkat, int, fd, const char *, file, int, flag)
  60441. +libc_hidden_def(unlinkat)
  60442. #else
  60443. /* should add emulation with unlink() and /proc/self/fd/ ... */
  60444. #endif
  60445. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/unlink.c uClibc-git/libc/sysdeps/linux/common/unlink.c
  60446. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/unlink.c 2012-05-15 09:20:09.000000000 +0200
  60447. +++ uClibc-git/libc/sysdeps/linux/common/unlink.c 2014-06-02 17:40:34.366713933 +0200
  60448. @@ -10,6 +10,13 @@
  60449. #include <sys/syscall.h>
  60450. #include <unistd.h>
  60451. -
  60452. +#if defined __NR_unlinkat && !defined __NR_unlink
  60453. +# include <fcntl.h>
  60454. +int unlink(const char *pathname)
  60455. +{
  60456. + return unlinkat(AT_FDCWD, pathname, 0);
  60457. +}
  60458. +#else
  60459. _syscall1(int, unlink, const char *, pathname)
  60460. +#endif
  60461. libc_hidden_def(unlink)
  60462. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/unwind.h uClibc-git/libc/sysdeps/linux/common/unwind.h
  60463. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/unwind.h 2012-05-15 09:20:09.000000000 +0200
  60464. +++ uClibc-git/libc/sysdeps/linux/common/unwind.h 2014-06-02 17:40:34.366713933 +0200
  60465. @@ -14,9 +14,8 @@
  60466. Lesser General Public License for more details.
  60467. You should have received a copy of the GNU Lesser General Public
  60468. - License along with the GNU C Library; if not, write to the Free
  60469. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  60470. - 02111-1307 USA. */
  60471. + License along with the GNU C Library; if not, see
  60472. + <http://www.gnu.org/licenses/>. */
  60473. /* This is derived from the C++ ABI for IA-64. Where we diverge
  60474. for cross-architecture compatibility are noted with "@@@". */
  60475. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/ustat.c uClibc-git/libc/sysdeps/linux/common/ustat.c
  60476. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/ustat.c 2012-05-15 09:20:09.000000000 +0200
  60477. +++ uClibc-git/libc/sysdeps/linux/common/ustat.c 2014-06-02 17:40:34.366713933 +0200
  60478. @@ -11,16 +11,18 @@
  60479. #include <sys/ustat.h>
  60480. #include <sys/sysmacros.h>
  60481. -#define __NR___syscall_ustat __NR_ustat
  60482. +#ifdef __NR_ustat
  60483. +# define __NR___syscall_ustat __NR_ustat
  60484. /* Kernel's fs/super.c defines this:
  60485. * long sys_ustat(unsigned dev, struct ustat __user * ubuf),
  60486. * thus we use unsigned, not __kernel_dev_t.
  60487. */
  60488. -static __inline__ _syscall2(int, __syscall_ustat,
  60489. - unsigned, kdev_t,
  60490. - struct ustat *, ubuf)
  60491. +static __always_inline _syscall2(int, __syscall_ustat,
  60492. + unsigned, kdev_t,
  60493. + struct ustat *, ubuf)
  60494. int ustat(dev_t dev, struct ustat *ubuf)
  60495. {
  60496. return __syscall_ustat(dev, ubuf);
  60497. }
  60498. +#endif
  60499. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/utime.c uClibc-git/libc/sysdeps/linux/common/utime.c
  60500. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/utime.c 2012-05-15 09:20:09.000000000 +0200
  60501. +++ uClibc-git/libc/sysdeps/linux/common/utime.c 2014-06-02 17:40:34.366713933 +0200
  60502. @@ -10,13 +10,33 @@
  60503. #include <sys/syscall.h>
  60504. #include <utime.h>
  60505. +#if defined __NR_utimensat && !defined __NR_utime
  60506. +# include <fcntl.h>
  60507. +# include <stddef.h>
  60508. -#ifdef __NR_utime
  60509. -_syscall2(int, utime, const char *, file, const struct utimbuf *, times)
  60510. -#else
  60511. -#include <stdlib.h>
  60512. -#include <sys/time.h>
  60513. +int utime(const char *file, const struct utimbuf *times)
  60514. +{
  60515. + struct timespec tspecs[2], *ts;
  60516. +
  60517. + if (times) {
  60518. + ts = tspecs;
  60519. + ts[0].tv_sec = times->actime;
  60520. + ts[0].tv_nsec = 0;
  60521. + ts[1].tv_sec = times->modtime;
  60522. + ts[1].tv_nsec = 0;
  60523. + } else {
  60524. + ts = NULL;
  60525. + }
  60526. + return utimensat(AT_FDCWD, file, ts, 0);
  60527. +}
  60528. +
  60529. +#elif defined(__NR_utime)
  60530. +_syscall2(int, utime, const char *, file, const struct utimbuf *, times)
  60531. +#elif defined __NR_utimes /* alpha || ia64 */
  60532. +# define __need_NULL
  60533. +# include <stddef.h>
  60534. +# include <sys/time.h>
  60535. int utime(const char *file, const struct utimbuf *times)
  60536. {
  60537. @@ -25,11 +45,15 @@
  60538. if (times != NULL) {
  60539. timevals[0].tv_usec = 0L;
  60540. timevals[1].tv_usec = 0L;
  60541. - timevals[0].tv_sec = (long int) times->actime;
  60542. - timevals[1].tv_sec = (long int) times->modtime;
  60543. + timevals[0].tv_sec = (time_t) times->actime;
  60544. + timevals[1].tv_sec = (time_t) times->modtime;
  60545. }
  60546. return utimes(file, times ? timevals : NULL);
  60547. }
  60548. #endif
  60549. +
  60550. +#if (defined __NR_utimensat && !defined __NR_utime) || \
  60551. + defined __NR_utime || defined __NR_utimes
  60552. link_warning(utime, "the use of OBSOLESCENT `utime' is discouraged, use `utimes'")
  60553. libc_hidden_def(utime)
  60554. +#endif
  60555. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/utimes.c uClibc-git/libc/sysdeps/linux/common/utimes.c
  60556. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/utimes.c 2012-05-15 09:20:09.000000000 +0200
  60557. +++ uClibc-git/libc/sysdeps/linux/common/utimes.c 2014-06-02 17:40:34.366713933 +0200
  60558. @@ -8,15 +8,33 @@
  60559. */
  60560. #include <sys/syscall.h>
  60561. -#include <utime.h>
  60562. #include <sys/time.h>
  60563. +#if defined __NR_utimensat && !defined __NR_utimes
  60564. +# include <fcntl.h>
  60565. +# include <stddef.h>
  60566. +int utimes(const char *file, const struct timeval tvp[2])
  60567. +{
  60568. + struct timespec ts[2], *times;
  60569. + if (tvp) {
  60570. + times = ts;
  60571. + times[0].tv_sec = tvp[0].tv_sec;
  60572. + times[0].tv_nsec = tvp[0].tv_usec * 1000;
  60573. + times[1].tv_sec = tvp[1].tv_sec;
  60574. + times[1].tv_nsec = tvp[1].tv_usec * 1000;
  60575. + } else {
  60576. + times = NULL;
  60577. + }
  60578. -#ifdef __NR_utimes
  60579. -_syscall2(int, utimes, const char *, file, const struct timeval *, tvp)
  60580. -#else
  60581. -#include <stdlib.h>
  60582. + return utimensat(AT_FDCWD, file, times, 0);
  60583. +}
  60584. +#elif defined __NR_utimes
  60585. +_syscall2(int, utimes, const char *, file, const struct timeval *, tvp)
  60586. +#elif defined __NR_utime
  60587. +# define __need_NULL
  60588. +# include <stddef.h>
  60589. +# include <utime.h>
  60590. int utimes(const char *file, const struct timeval tvp[2])
  60591. {
  60592. @@ -32,4 +50,7 @@
  60593. return utime(file, times);
  60594. }
  60595. #endif
  60596. +
  60597. +#if defined __NR_utimensat || defined __NR_utimes || defined __NR_utime
  60598. libc_hidden_def(utimes)
  60599. +#endif
  60600. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/vfork.c uClibc-git/libc/sysdeps/linux/common/vfork.c
  60601. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/vfork.c 2012-05-15 09:20:09.000000000 +0200
  60602. +++ uClibc-git/libc/sysdeps/linux/common/vfork.c 2014-06-02 17:40:34.366713933 +0200
  60603. @@ -4,30 +4,37 @@
  60604. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  60605. */
  60606. -#include <unistd.h>
  60607. -#include <sys/types.h>
  60608. #include <sys/syscall.h>
  60609. +#if (defined __NR_vfork || defined __NR_clone || (defined __ARCH_USE_MMU__ && defined __NR_fork)) && (defined __USE_BSD || defined __USE_XOPEN_EXTENDED)
  60610. +# include <unistd.h>
  60611. extern __typeof(vfork) __vfork attribute_hidden;
  60612. -#ifdef __NR_vfork
  60613. +# if defined __NR_clone && !defined __NR_vfork
  60614. +# include <signal.h>
  60615. +# include <sys/types.h>
  60616. -# define __NR___vfork __NR_vfork
  60617. -_syscall0(pid_t, __vfork)
  60618. +pid_t __vfork(void)
  60619. +{
  60620. + pid_t pid = INLINE_SYSCALL(clone, 4, SIGCHLD,
  60621. + NULL, NULL, NULL);
  60622. -weak_alias(__vfork,vfork)
  60623. -libc_hidden_weak(vfork)
  60624. + if (pid < 0)
  60625. + return -1;
  60626. -#elif defined __ARCH_USE_MMU__ && defined __NR_fork
  60627. + return pid;
  60628. +}
  60629. +# elif defined __NR_vfork
  60630. +# define __NR___vfork __NR_vfork
  60631. +_syscall0(pid_t, __vfork)
  60632. +# else
  60633. /* Trivial implementation for arches that lack vfork */
  60634. -
  60635. pid_t __vfork(void)
  60636. {
  60637. return fork();
  60638. }
  60639. -
  60640. -weak_alias(__vfork,vfork)
  60641. +# endif
  60642. +strong_alias(__vfork,vfork)
  60643. libc_hidden_weak(vfork)
  60644. -
  60645. #endif
  60646. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/vmsplice.c uClibc-git/libc/sysdeps/linux/common/vmsplice.c
  60647. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/vmsplice.c 2012-05-15 09:20:09.000000000 +0200
  60648. +++ uClibc-git/libc/sysdeps/linux/common/vmsplice.c 2014-06-02 17:40:34.374713977 +0200
  60649. @@ -8,9 +8,10 @@
  60650. */
  60651. #include <sys/syscall.h>
  60652. -#include <fcntl.h>
  60653. -#ifdef __NR_vmsplice
  60654. +#if defined __NR_vmsplice && defined __USE_GNU
  60655. +# include <fcntl.h>
  60656. +
  60657. _syscall4(ssize_t, vmsplice, int, __fdout, const struct iovec *, __iov,
  60658. - size_t, __count, unsigned int, __flags)
  60659. + size_t, __count, unsigned int, __flags)
  60660. #endif
  60661. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/wait3.c uClibc-git/libc/sysdeps/linux/common/wait3.c
  60662. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/wait3.c 2012-05-15 09:20:09.000000000 +0200
  60663. +++ uClibc-git/libc/sysdeps/linux/common/wait3.c 2014-06-02 17:40:34.374713977 +0200
  60664. @@ -5,20 +5,12 @@
  60665. */
  60666. #include <sys/syscall.h>
  60667. -#include <sys/types.h>
  60668. -#include <sys/wait.h>
  60669. -#include <sys/resource.h>
  60670. -#if defined __USE_BSD
  60671. +#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
  60672. +# include <sys/wait.h>
  60673. -
  60674. -/* Wait for a child to exit. When one does, put its status in *STAT_LOC and
  60675. - * return its process ID. For errors return (pid_t) -1. If USAGE is not nil,
  60676. - * store information about the child's resource usage (as a `struct rusage')
  60677. - * there. If the WUNTRACED bit is set in OPTIONS, return status for stopped
  60678. - * children; otherwise don't. */
  60679. -pid_t wait3 (__WAIT_STATUS stat_loc, int options, struct rusage * usage)
  60680. +pid_t wait3(__WAIT_STATUS stat_loc, int options, struct rusage *usage)
  60681. {
  60682. - return wait4 (WAIT_ANY, stat_loc, options, usage);
  60683. + return __wait4_nocancel(WAIT_ANY, stat_loc, options, usage);
  60684. }
  60685. #endif
  60686. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/wait4.c uClibc-git/libc/sysdeps/linux/common/wait4.c
  60687. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/wait4.c 2012-05-15 09:20:09.000000000 +0200
  60688. +++ uClibc-git/libc/sysdeps/linux/common/wait4.c 2014-06-02 17:40:34.374713977 +0200
  60689. @@ -8,18 +8,16 @@
  60690. */
  60691. #include <sys/syscall.h>
  60692. -#if defined __USE_BSD || defined __USE_XOPEN_EXTENDED
  60693. #include <sys/wait.h>
  60694. -#include <sys/resource.h>
  60695. +# define __NR___syscall_wait4 __NR_wait4
  60696. +static __always_inline _syscall4(int, __syscall_wait4, __kernel_pid_t, pid,
  60697. + int *, status, int, opts, struct rusage *, rusage)
  60698. -#define __NR___syscall_wait4 __NR_wait4
  60699. -static __inline__ _syscall4(int, __syscall_wait4, __kernel_pid_t, pid,
  60700. - int *, status, int, opts, struct rusage *, rusage)
  60701. -
  60702. -pid_t wait4(pid_t pid, int *status, int opts, struct rusage *rusage)
  60703. +pid_t __wait4_nocancel(pid_t pid, int *status, int opts, struct rusage *rusage)
  60704. {
  60705. - return (__syscall_wait4(pid, status, opts, rusage));
  60706. + return __syscall_wait4(pid, status, opts, rusage);
  60707. }
  60708. -libc_hidden_def(wait4)
  60709. +#ifdef __USE_BSD
  60710. +strong_alias(__wait4_nocancel,wait4)
  60711. #endif
  60712. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/wait.c uClibc-git/libc/sysdeps/linux/common/wait.c
  60713. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/wait.c 2012-05-15 09:20:09.000000000 +0200
  60714. +++ uClibc-git/libc/sysdeps/linux/common/wait.c 2014-06-02 17:40:34.374713977 +0200
  60715. @@ -4,41 +4,11 @@
  60716. *
  60717. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  60718. */
  60719. -#include <stdlib.h>
  60720. -#include <syscall.h>
  60721. -#include <sys/types.h>
  60722. #include <sys/wait.h>
  60723. -#include <sys/resource.h>
  60724. +#include <cancel.h>
  60725. -extern __typeof(wait) __libc_wait;
  60726. -/* Wait for a child to die. When one does, put its status in *STAT_LOC
  60727. - * and return its process ID. For errors, return (pid_t) -1. */
  60728. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  60729. -#include <errno.h>
  60730. -#include <sysdep-cancel.h>
  60731. -
  60732. -pid_t attribute_hidden
  60733. -__libc_wait (__WAIT_STATUS_DEFN stat_loc)
  60734. -{
  60735. - if (SINGLE_THREAD_P)
  60736. - return INLINE_SYSCALL (wait4, 4, WAIT_ANY, stat_loc, 0,
  60737. - (struct rusage *) NULL);
  60738. -
  60739. - int oldtype = LIBC_CANCEL_ASYNC ();
  60740. -
  60741. - pid_t result = INLINE_SYSCALL (wait4, 4, WAIT_ANY, stat_loc, 0,
  60742. - (struct rusage *) NULL);
  60743. -
  60744. - LIBC_CANCEL_RESET (oldtype);
  60745. -
  60746. - return result;
  60747. -}
  60748. -#else
  60749. -/* Wait for a child to die. When one does, put its status in *STAT_LOC
  60750. - * and return its process ID. For errors, return (pid_t) -1. */
  60751. -__pid_t __libc_wait (__WAIT_STATUS_DEFN stat_loc)
  60752. +static pid_t __NC(wait)(__WAIT_STATUS_DEFN stat_loc)
  60753. {
  60754. - return wait4 (WAIT_ANY, stat_loc, 0, (struct rusage *) NULL);
  60755. + return __wait4_nocancel(WAIT_ANY, stat_loc, 0, (struct rusage *)NULL);
  60756. }
  60757. -#endif
  60758. -weak_alias(__libc_wait,wait)
  60759. +CANCELLABLE_SYSCALL(pid_t, wait, (__WAIT_STATUS_DEFN stat_loc), (stat_loc))
  60760. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/waitid.c uClibc-git/libc/sysdeps/linux/common/waitid.c
  60761. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/waitid.c 2012-05-15 09:20:09.000000000 +0200
  60762. +++ uClibc-git/libc/sysdeps/linux/common/waitid.c 2014-06-02 17:40:34.374713977 +0200
  60763. @@ -8,43 +8,19 @@
  60764. #include <features.h>
  60765. #if defined __USE_SVID || defined __USE_XOPEN
  60766. -# include <string.h>
  60767. -# include <sys/types.h>
  60768. -# include <sys/wait.h>
  60769. -# include <sys/syscall.h>
  60770. -
  60771. -# ifdef __NR_waitid
  60772. -
  60773. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  60774. -# include <sysdep-cancel.h>
  60775. -# else
  60776. -# define SINGLE_THREAD_P 1
  60777. -# endif
  60778. -/* The waitid() POSIX interface takes 4 arguments, but the kernel function
  60779. - * actually takes 5. The fifth is a pointer to struct rusage. Make sure
  60780. - * we pass NULL rather than letting whatever was in the register bleed up.
  60781. - */
  60782. -#define __NR_waitid5 __NR_waitid
  60783. -static __always_inline
  60784. -_syscall5(int, waitid5, idtype_t, idtype, id_t, id, siginfo_t*, infop,
  60785. - int, options, struct rusage*, ru)
  60786. -# endif
  60787. +#include <sys/syscall.h>
  60788. +#include <sys/wait.h>
  60789. +#include <cancel.h>
  60790. +#ifndef __NR_waitid
  60791. +# include <string.h>
  60792. +#endif
  60793. -int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options)
  60794. +static int __NC(waitid)(idtype_t idtype, id_t id, siginfo_t *infop, int options)
  60795. {
  60796. -# ifdef __NR_waitid
  60797. - if (SINGLE_THREAD_P)
  60798. - return waitid5(idtype, id, infop, options, NULL);
  60799. -
  60800. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  60801. - int oldtype = LIBC_CANCEL_ASYNC ();
  60802. - int result = waitid5(idtype, id, infop, options, NULL);
  60803. - LIBC_CANCEL_RESET (oldtype);
  60804. - return result;
  60805. -# endif
  60806. -
  60807. -# elif defined __NR_waitpid
  60808. +#ifdef __NR_waitid
  60809. + return INLINE_SYSCALL(waitid, 5, idtype, id, infop, options, NULL);
  60810. +#else
  60811. switch (idtype) {
  60812. case P_PID:
  60813. if (id <= 0)
  60814. @@ -65,17 +41,17 @@
  60815. }
  60816. memset(infop, 0, sizeof *infop);
  60817. - infop->si_pid = waitpid(id, &infop->si_status, options
  60818. -# ifdef WEXITED
  60819. + infop->si_pid = __NC(waitpid)(id, &infop->si_status, options
  60820. +# ifdef WEXITED
  60821. &~ WEXITED
  60822. -# endif
  60823. +# endif
  60824. );
  60825. if (infop->si_pid < 0)
  60826. return infop->si_pid;
  60827. return 0;
  60828. -# else
  60829. - __set_errno(ENOSYS);
  60830. - return -1;
  60831. -# endif
  60832. +#endif
  60833. }
  60834. +CANCELLABLE_SYSCALL(int, waitid, (idtype_t idtype, id_t id, siginfo_t *infop, int options),
  60835. + (idtype, id, infop, options))
  60836. +
  60837. #endif
  60838. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/waitpid.c uClibc-git/libc/sysdeps/linux/common/waitpid.c
  60839. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/waitpid.c 2012-05-15 09:20:09.000000000 +0200
  60840. +++ uClibc-git/libc/sysdeps/linux/common/waitpid.c 2014-06-02 17:40:34.374713977 +0200
  60841. @@ -6,32 +6,16 @@
  60842. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  60843. */
  60844. -#include <stdlib.h>
  60845. -#include <sys/types.h>
  60846. #include <sys/wait.h>
  60847. -#include <sys/resource.h>
  60848. +#include <cancel.h>
  60849. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  60850. -#include "sysdep-cancel.h"
  60851. -#else
  60852. -#define SINGLE_THREAD_P 1
  60853. -#endif
  60854. -
  60855. -libc_hidden_proto(wait4)
  60856. -
  60857. -extern __typeof(waitpid) __libc_waitpid;
  60858. -__pid_t __libc_waitpid(__pid_t pid, int *wait_stat, int options)
  60859. +pid_t __NC(waitpid)(pid_t pid, int *wait_stat, int options)
  60860. {
  60861. - if (SINGLE_THREAD_P)
  60862. - return wait4(pid, wait_stat, options, NULL);
  60863. -
  60864. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  60865. - int oldtype = LIBC_CANCEL_ASYNC ();
  60866. - int result = wait4(pid, wait_stat, options, NULL);
  60867. - LIBC_CANCEL_RESET (oldtype);
  60868. - return result;
  60869. +#if 1 /* kernel/exit.c says to avoid waitpid syscall */
  60870. + return __wait4_nocancel(pid, wait_stat, options, NULL);
  60871. +#else
  60872. + return INLINE_SYSCALL(waitpid, 3, pid, wait_stat, options);
  60873. #endif
  60874. }
  60875. -libc_hidden_proto(waitpid)
  60876. -weak_alias(__libc_waitpid,waitpid)
  60877. -libc_hidden_weak(waitpid)
  60878. +CANCELLABLE_SYSCALL(pid_t, waitpid, (pid_t pid, int *wait_stat, int options), (pid, wait_stat, options))
  60879. +lt_libc_hidden(waitpid)
  60880. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/write.c uClibc-git/libc/sysdeps/linux/common/write.c
  60881. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/write.c 2012-05-15 09:20:09.000000000 +0200
  60882. +++ uClibc-git/libc/sysdeps/linux/common/write.c 2014-06-02 17:40:34.374713977 +0200
  60883. @@ -9,17 +9,11 @@
  60884. #include <sys/syscall.h>
  60885. #include <unistd.h>
  60886. +#include <cancel.h>
  60887. -_syscall3(ssize_t, write, int, fd, const __ptr_t, buf, size_t, count)
  60888. -#ifndef __LINUXTHREADS_OLD__
  60889. -libc_hidden_def(write)
  60890. -#else
  60891. -libc_hidden_weak(write)
  60892. -strong_alias(write,__libc_write)
  60893. -#endif
  60894. +#define __NR___write_nocancel __NR_write
  60895. +_syscall3(ssize_t, __NC(write), int, fd, const void *, buf, size_t, count)
  60896. -#if 0
  60897. -/* Stupid libgcc.a from gcc 2.95.x uses __write in pure.o
  60898. - * which is a blatant GNU libc-ism... */
  60899. -strong_alias(write,__write)
  60900. -#endif
  60901. +CANCELLABLE_SYSCALL(ssize_t, write, (int fd, const void *buf, size_t count),
  60902. + (fd, buf, count))
  60903. +lt_libc_hidden(write)
  60904. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/writev.c uClibc-git/libc/sysdeps/linux/common/writev.c
  60905. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/writev.c 2012-05-15 09:20:09.000000000 +0200
  60906. +++ uClibc-git/libc/sysdeps/linux/common/writev.c 2014-06-02 17:40:34.374713977 +0200
  60907. @@ -9,42 +9,20 @@
  60908. #include <sys/syscall.h>
  60909. #include <sys/uio.h>
  60910. -
  60911. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  60912. -#include <errno.h>
  60913. -#include <sysdep-cancel.h>
  60914. +#include <cancel.h>
  60915. /* We should deal with kernel which have a smaller UIO_FASTIOV as well
  60916. as a very big count. */
  60917. -static ssize_t __writev (int fd, const struct iovec *vector, int count)
  60918. +static ssize_t __NC(writev)(int fd, const struct iovec *vector, int count)
  60919. {
  60920. - ssize_t bytes_written;
  60921. -
  60922. - bytes_written = INLINE_SYSCALL (writev, 3, fd, vector, count);
  60923. -
  60924. - if (bytes_written >= 0 || errno != EINVAL || count <= UIO_FASTIOV)
  60925. - return bytes_written;
  60926. -
  60927. - /* glibc tries again, but we do not. */
  60928. - /* return __atomic_writev_replacement (fd, vector, count); */
  60929. -
  60930. - return -1;
  60931. -}
  60932. -
  60933. -ssize_t writev (int fd, const struct iovec *vector, int count)
  60934. -{
  60935. - if (SINGLE_THREAD_P)
  60936. - return __writev (fd, vector, count);
  60937. -
  60938. - int oldtype = LIBC_CANCEL_ASYNC ();
  60939. + ssize_t bytes_written = INLINE_SYSCALL(writev, 3, fd, vector, count);
  60940. - ssize_t result = __writev (fd, vector, count);
  60941. + if (bytes_written >= 0 || errno != EINVAL || count <= UIO_FASTIOV)
  60942. + return bytes_written;
  60943. - LIBC_CANCEL_RESET (oldtype);
  60944. + /* glibc tries again, but we do not. */
  60945. + /* return __atomic_writev_replacement (fd, vector, count); */
  60946. - return result;
  60947. + return -1;
  60948. }
  60949. -#else
  60950. -_syscall3(ssize_t, writev, int, filedes, const struct iovec *, vector,
  60951. - int, count)
  60952. -#endif
  60953. +CANCELLABLE_SYSCALL(ssize_t, writev, (int fd, const struct iovec *vector, int count), (fd, vector, count))
  60954. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/xstatconv.c uClibc-git/libc/sysdeps/linux/common/xstatconv.c
  60955. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/xstatconv.c 2012-05-15 09:20:09.000000000 +0200
  60956. +++ uClibc-git/libc/sysdeps/linux/common/xstatconv.c 2014-06-02 17:40:34.374713977 +0200
  60957. @@ -13,14 +13,12 @@
  60958. Lesser General Public License for more details.
  60959. You should have received a copy of the GNU Lesser General Public
  60960. - License along with the GNU C Library; if not, write to the Free
  60961. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  60962. - 02111-1307 USA.
  60963. + License along with the GNU C Library; if not, see
  60964. + <http://www.gnu.org/licenses/>.
  60965. Modified for uClibc by Erik Andersen <andersen@codepoet.org>
  60966. */
  60967. -#include <sys/syscall.h>
  60968. #include <sys/stat.h>
  60969. #include <string.h>
  60970. #include "xstatconv.h"
  60971. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common/xstatconv.h uClibc-git/libc/sysdeps/linux/common/xstatconv.h
  60972. --- uClibc-0.9.33.2/libc/sysdeps/linux/common/xstatconv.h 2012-05-15 09:20:09.000000000 +0200
  60973. +++ uClibc-git/libc/sysdeps/linux/common/xstatconv.h 2014-06-02 17:40:34.374713977 +0200
  60974. @@ -13,9 +13,8 @@
  60975. Lesser General Public License for more details.
  60976. You should have received a copy of the GNU Lesser General Public
  60977. - License along with the GNU C Library; if not, write to the Free
  60978. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  60979. - 02111-1307 USA.
  60980. + License along with the GNU C Library; if not, see
  60981. + <http://www.gnu.org/licenses/>.
  60982. Modified for uClibc by Erik Andersen <andersen@codepoet.org>
  60983. */
  60984. @@ -23,11 +22,14 @@
  60985. /* Pull in whatever this particular arch's kernel thinks the kernel version of
  60986. * struct stat should look like. It turns out that each arch has a different
  60987. * opinion on the subject, and different kernel revs use different names... */
  60988. +#include <features.h>
  60989. #include <bits/kernel_stat.h>
  60990. +#ifdef __ARCH_HAS_DEPRECATED_SYSCALLS__
  60991. extern void __xstat_conv(struct kernel_stat *kbuf, struct stat *buf) attribute_hidden;
  60992. extern void __xstat32_conv(struct kernel_stat64 *kbuf, struct stat *buf) attribute_hidden;
  60993. #if defined __UCLIBC_HAS_LFS__
  60994. extern void __xstat64_conv(struct kernel_stat64 *kbuf, struct stat64 *buf) attribute_hidden;
  60995. #endif
  60996. +#endif
  60997. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/align64bit.h uClibc-git/libc/sysdeps/linux/common-generic/bits/align64bit.h
  60998. --- uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/align64bit.h 1970-01-01 01:00:00.000000000 +0100
  60999. +++ uClibc-git/libc/sysdeps/linux/common-generic/bits/align64bit.h 2014-06-02 17:40:34.338713778 +0200
  61000. @@ -0,0 +1,17 @@
  61001. +/*
  61002. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61003. + *
  61004. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61005. + */
  61006. +
  61007. +#ifndef _ALIGN_64_BIT_H
  61008. +#define _ALIGN_64_BIT_H
  61009. +
  61010. +/* Simple macro for getting the 64-bit struct arch alignment */
  61011. +
  61012. +struct __longlong_aligned { long long x; };
  61013. +
  61014. +#define __ARCH_64BIT_ALIGNMENT__ \
  61015. + __attribute__((aligned(__alignof__(struct __longlong_aligned))))
  61016. +
  61017. +#endif /* bits/align64bit.h */
  61018. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/dirent.h uClibc-git/libc/sysdeps/linux/common-generic/bits/dirent.h
  61019. --- uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/dirent.h 1970-01-01 01:00:00.000000000 +0100
  61020. +++ uClibc-git/libc/sysdeps/linux/common-generic/bits/dirent.h 2014-06-02 17:40:34.338713778 +0200
  61021. @@ -0,0 +1,53 @@
  61022. +/*
  61023. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61024. + *
  61025. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61026. + */
  61027. +
  61028. +#ifndef _DIRENT_H
  61029. +# error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
  61030. +#endif
  61031. +
  61032. +#include <bits/align64bit.h>
  61033. +#include <endian.h>
  61034. +
  61035. +struct dirent
  61036. + {
  61037. +#ifndef __USE_FILE_OFFSET64
  61038. +# if __BYTE_ORDER == __LITTLE_ENDIAN
  61039. + __U32_TYPE d_ino;
  61040. + __U32_TYPE __pad1;
  61041. + __S32_TYPE d_off;
  61042. + __S32_TYPE __pad2;
  61043. +# else
  61044. + __U32_TYPE __pad1;
  61045. + __U32_TYPE d_ino;
  61046. + __S32_TYPE __pad2;
  61047. + __S32_TYPE d_off;
  61048. +# endif /* __LITTLE_ENDIAN */
  61049. +#else
  61050. + __U64_TYPE d_ino;
  61051. + __S64_TYPE d_off;
  61052. +#endif
  61053. + unsigned short int d_reclen;
  61054. + unsigned char d_type;
  61055. + char d_name[256]; /* We must not include limits.h! */
  61056. + } __ARCH_64BIT_ALIGNMENT__;
  61057. +
  61058. +#ifdef __USE_LARGEFILE64
  61059. +struct dirent64
  61060. + {
  61061. + __U64_TYPE d_ino;
  61062. + __S64_TYPE d_off;
  61063. + unsigned short int d_reclen;
  61064. + unsigned char d_type;
  61065. + char d_name[256]; /* We must not include limits.h! */
  61066. + };
  61067. +#endif
  61068. +
  61069. +#define d_fileno d_ino /* Backwards compatibility. */
  61070. +
  61071. +#undef _DIRENT_HAVE_D_NAMLEN
  61072. +#define _DIRENT_HAVE_D_RECLEN
  61073. +#define _DIRENT_HAVE_D_OFF
  61074. +#define _DIRENT_HAVE_D_TYPE
  61075. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/kernel_stat.h uClibc-git/libc/sysdeps/linux/common-generic/bits/kernel_stat.h
  61076. --- uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/kernel_stat.h 1970-01-01 01:00:00.000000000 +0100
  61077. +++ uClibc-git/libc/sysdeps/linux/common-generic/bits/kernel_stat.h 2014-06-02 17:40:34.338713778 +0200
  61078. @@ -0,0 +1,28 @@
  61079. +/*
  61080. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61081. + *
  61082. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61083. + */
  61084. +
  61085. +#ifndef _BITS_STAT_STRUCT_H
  61086. +#define _BITS_STAT_STRUCT_H
  61087. +
  61088. +#include <sys/stat.h>
  61089. +
  61090. +/*
  61091. + * The stat structure defined in
  61092. + * libc/sysdeps/linux/common-generic/bits/stat.h
  61093. + * is the same as the kernel one for new architectures
  61094. + *
  61095. + * For the common-generic ABI we really don't need this file at all
  61096. + * However that requires more #ifndef in relevant wrappers,
  61097. + * further uglifying them
  61098. + */
  61099. +#if defined __UCLIBC_HAS_LFS__
  61100. +#define kernel_stat64 stat64
  61101. +#else
  61102. +#define kernel_stat64 stat
  61103. +#endif
  61104. +
  61105. +#endif /* _BITS_STAT_STRUCT_H */
  61106. +
  61107. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/statfs.h uClibc-git/libc/sysdeps/linux/common-generic/bits/statfs.h
  61108. --- uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/statfs.h 1970-01-01 01:00:00.000000000 +0100
  61109. +++ uClibc-git/libc/sysdeps/linux/common-generic/bits/statfs.h 2014-06-02 17:40:34.338713778 +0200
  61110. @@ -0,0 +1,78 @@
  61111. +/*
  61112. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61113. + *
  61114. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61115. + */
  61116. +
  61117. +#ifndef _SYS_STATFS_H
  61118. +# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
  61119. +#endif
  61120. +
  61121. +#include <endian.h>
  61122. +#include <bits/align64bit.h>
  61123. +#include <bits/types.h>
  61124. +
  61125. +
  61126. +struct statfs
  61127. + {
  61128. + __U32_TYPE f_type;
  61129. + __U32_TYPE f_bsize;
  61130. +#ifndef __USE_FILE_OFFSET64
  61131. +# if __BYTE_ORDER == __LITTLE_ENDIAN
  61132. + __U32_TYPE f_blocks;
  61133. + __U32_TYPE __pad1;
  61134. + __U32_TYPE f_bfree;
  61135. + __U32_TYPE __pad2;
  61136. + __U32_TYPE f_bavail;
  61137. + __U32_TYPE __pad3;
  61138. + __U32_TYPE f_files;
  61139. + __U32_TYPE __pad4;
  61140. + __U32_TYPE f_ffree;
  61141. + __U32_TYPE __pad5;
  61142. +# else
  61143. + __U32_TYPE __pad1;
  61144. + __U32_TYPE f_blocks;
  61145. + __U32_TYPE __pad2;
  61146. + __U32_TYPE f_bfree;
  61147. + __U32_TYPE __pad3;
  61148. + __U32_TYPE f_bavail;
  61149. + __U32_TYPE __pad4;
  61150. + __U32_TYPE f_files;
  61151. + __U32_TYPE __pad5;
  61152. + __U32_TYPE f_ffree;
  61153. +# endif /* __LITTLE_ENDIAN */
  61154. +#else
  61155. + __U64_TYPE f_blocks;
  61156. + __U64_TYPE f_bfree;
  61157. + __U64_TYPE f_bavail;
  61158. + __U64_TYPE f_files;
  61159. + __U64_TYPE f_ffree;
  61160. +#endif /* __USE_FILE_OFFSET64 */
  61161. + __fsid_t f_fsid;
  61162. + __U32_TYPE f_namelen;
  61163. + __U32_TYPE f_frsize;
  61164. + __U32_TYPE f_flags;
  61165. + __U32_TYPE f_spare[4];
  61166. + } __ARCH_64BIT_ALIGNMENT__;
  61167. +
  61168. +#ifdef __USE_LARGEFILE64
  61169. +struct statfs64
  61170. + {
  61171. + __U32_TYPE f_type;
  61172. + __U32_TYPE f_bsize;
  61173. + __U64_TYPE f_blocks;
  61174. + __U64_TYPE f_bfree;
  61175. + __U64_TYPE f_bavail;
  61176. + __U64_TYPE f_files;
  61177. + __U64_TYPE f_ffree;
  61178. + __fsid_t f_fsid;
  61179. + __U32_TYPE f_namelen;
  61180. + __U32_TYPE f_frsize;
  61181. + __U32_TYPE f_flags;
  61182. + __U32_TYPE f_spare[4];
  61183. + };
  61184. +#endif
  61185. +
  61186. +/* Tell code we have these members. */
  61187. +#define _STATFS_F_NAMELEN
  61188. +#define _STATFS_F_FRSIZE
  61189. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/stat.h uClibc-git/libc/sysdeps/linux/common-generic/bits/stat.h
  61190. --- uClibc-0.9.33.2/libc/sysdeps/linux/common-generic/bits/stat.h 1970-01-01 01:00:00.000000000 +0100
  61191. +++ uClibc-git/libc/sysdeps/linux/common-generic/bits/stat.h 2014-06-02 17:40:34.338713778 +0200
  61192. @@ -0,0 +1,195 @@
  61193. +/*
  61194. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61195. + *
  61196. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61197. + */
  61198. +
  61199. +#ifndef _SYS_STAT_H
  61200. +# error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  61201. +#endif
  61202. +
  61203. +#include <bits/align64bit.h>
  61204. +#include <endian.h>
  61205. +
  61206. +/* Versions of the `struct stat' data structure. */
  61207. +#define _STAT_VER_LINUX_OLD 1
  61208. +#define _STAT_VER_KERNEL 1
  61209. +#define _STAT_VER_SVR4 2
  61210. +#define _STAT_VER_LINUX 3
  61211. +#define _STAT_VER _STAT_VER_LINUX /* The one defined below. */
  61212. +
  61213. +/* Versions of the `xmknod' interface. */
  61214. +#define _MKNOD_VER_LINUX 1
  61215. +#define _MKNOD_VER_SVR4 2
  61216. +#define _MKNOD_VER _MKNOD_VER_LINUX /* The bits defined below. */
  61217. +
  61218. +/*
  61219. + * For 32-bit architectures, this struct is similar to the stat64 but it
  61220. + * uses 32-bit members along with 32-bit padding. For 64-bit architectures
  61221. + * this struct is exactly the same with the stat64 one
  61222. + */
  61223. +struct stat
  61224. + {
  61225. +#ifndef __USE_FILE_OFFSET64
  61226. +# if __BYTE_ORDER == __LITTLE_ENDIAN
  61227. + unsigned long st_dev; /* Device. */
  61228. + unsigned long __pad1;
  61229. + unsigned long st_ino; /* 32bit file serial number. */
  61230. + unsigned long __pad2;
  61231. + unsigned int st_mode; /* File mode. */
  61232. + unsigned int st_nlink; /* Link count. */
  61233. + unsigned int st_uid; /* User ID of the file's owner. */
  61234. + unsigned int st_gid; /* Group ID of the file's group.*/
  61235. + unsigned long st_rdev; /* Device number, if device. */
  61236. + unsigned long __pad3;
  61237. + unsigned long long __pad4;
  61238. + long st_size; /* SIze of file, in bytes. */
  61239. + long __pad5;
  61240. + int st_blksize; /* Optimal block size for I/O. */
  61241. + int __pad6;
  61242. + long st_blocks; /* Number 512-byte blocks allocated */
  61243. + long __pad7;
  61244. +# else
  61245. + unsigned long __pad1;
  61246. + unsigned long st_dev; /* Device. */
  61247. + unsigned long __pad2;
  61248. + unsigned long st_ino; /* 32bit file serial number. */
  61249. + unsigned int st_mode; /* File mode. */
  61250. + unsigned int st_nlink; /* Link count. */
  61251. + unsigned int st_uid; /* User ID of the file's owner. */
  61252. + unsigned int st_gid; /* Group ID of the file's group.*/
  61253. + unsigned long __pad3;
  61254. + unsigned long st_rdev; /* Device number, if device. */
  61255. + unsigned long long __pad4;
  61256. + long __pad5;
  61257. + long st_size; /* Size of file, in bytes. */
  61258. + int st_blksize; /* Optimal block size for I/O. */
  61259. + int __pad6;
  61260. + long __pad7;
  61261. + long st_blocks; /* Number 512-byte blocks allocated */
  61262. +# endif /* __LITTLE_ENDIAN */
  61263. +#else
  61264. + unsigned long long st_dev; /* Device. */
  61265. + unsigned long long st_ino; /* 32bit file serial number. */
  61266. + unsigned int st_mode; /* File mode. */
  61267. + unsigned int st_nlink; /* Link count. */
  61268. + unsigned int st_uid; /* User ID of the file's owner. */
  61269. + unsigned int st_gid; /* Group ID of the file's group.*/
  61270. + unsigned long long st_rdev; /* Device number, if device. */
  61271. + unsigned long long _pad1;
  61272. + long long st_size; /* SIze of file, in bytes. */
  61273. + int st_blksize; /* Optimal block size for I/O. */
  61274. + int __pad2;
  61275. + long long st_blocks; /* Number 512-byte blocks allocated */
  61276. +#endif
  61277. +#ifdef __USE_MISC
  61278. + /* Nanosecond resolution timestamps are stored in a format
  61279. + equivalent to 'struct timespec'. This is the type used
  61280. + whenever possible but the Unix namespace rules do not allow the
  61281. + identifier 'timespec' to appear in the <sys/stat.h> header.
  61282. + Therefore we have to handle the use of this header in strictly
  61283. + standard-compliant sources special. */
  61284. + struct timespec st_atim; /* Time of last access. */
  61285. + struct timespec st_mtim; /* Time of last modification. */
  61286. + struct timespec st_ctim; /* Time of last status change. */
  61287. +# define st_atime st_atim.tv_sec /* Backward compatibility. */
  61288. +# define st_mtime st_mtim.tv_sec
  61289. +# define st_ctime st_ctim.tv_sec
  61290. +#else
  61291. +# ifndef __USE_FILE_OFFSET64
  61292. + long st_atime; /* Time of last access. */
  61293. + unsigned long st_atime_nsec;
  61294. + long st_mtime; /* Time of last modification. */
  61295. + unsigned long st_mtime_nsec;
  61296. + long st_ctime; /* Time of last status change. */
  61297. + unsigned long st_ctime_nsec;
  61298. +# else
  61299. + int st_atime; /* Time of last access. */
  61300. + unsigned int st_atime_nsec;
  61301. + int st_mtime; /* Time of last modification. */
  61302. + unsigned int st_mtime_nsec;
  61303. + int st_ctime; /* Time of last status change. */
  61304. + unsigned int st_ctime_nsec;
  61305. +# endif
  61306. +#endif
  61307. + unsigned int __unused4;
  61308. + unsigned int __unused5;
  61309. + } __ARCH_64BIT_ALIGNMENT__;
  61310. +
  61311. +
  61312. +#ifdef __USE_LARGEFILE64
  61313. +struct stat64
  61314. + {
  61315. + unsigned long long st_dev; /* Device. */
  61316. + unsigned long long st_ino; /* 32bit file serial number. */
  61317. + unsigned int st_mode; /* File mode. */
  61318. + unsigned int st_nlink; /* Link count. */
  61319. + unsigned int st_uid; /* User ID of the file's owner. */
  61320. + unsigned int st_gid; /* Group ID of the file's group.*/
  61321. + unsigned long long st_rdev; /* Device number, if device. */
  61322. + unsigned long long __pad3;
  61323. + long long st_size; /* Size of file, in bytes. */
  61324. + int st_blksize; /* Optimal block size for I/O. */
  61325. + int __pad4;
  61326. + long long st_blocks; /* Number 512-byte blocks allocated */
  61327. +# ifdef __USE_MISC
  61328. + /* Nanosecond resolution timestamps are stored in a format
  61329. + equivalent to 'struct timespec'. This is the type used
  61330. + whenever possible but the Unix namespace rules do not allow the
  61331. + identifier 'timespec' to appear in the <sys/stat.h> header.
  61332. + Therefore we have to handle the use of this header in strictly
  61333. + standard-compliant sources special. */
  61334. + struct timespec st_atim; /* Time of last access. */
  61335. + struct timespec st_mtim; /* Time of last modification. */
  61336. + struct timespec st_ctim; /* Time of last status change. */
  61337. +# else
  61338. + int st_atime; /* Time of last access. */
  61339. + unsigned int st_atime_nsec;
  61340. + int st_mtime; /* Time of last modification. */
  61341. + unsigned int st_mtime_nsec;
  61342. + int st_ctime; /* Time of last status change. */
  61343. + unsigned int st_ctime_nsec;
  61344. +# endif
  61345. + unsigned int __unused4;
  61346. + unsigned int __unused5;
  61347. +};
  61348. +#endif
  61349. +
  61350. +/* Tell code we have these members. */
  61351. +#define _STATBUF_ST_BLKSIZE
  61352. +#define _STATBUF_ST_RDEV
  61353. +/* Nanosecond resolution time values are supported. */
  61354. +#define _STATBUF_ST_NSEC
  61355. +
  61356. +/* Encoding of the file mode. */
  61357. +
  61358. +#define __S_IFMT 0170000 /* These bits determine file type. */
  61359. +
  61360. +/* File types. */
  61361. +#define __S_IFDIR 0040000 /* Directory. */
  61362. +#define __S_IFCHR 0020000 /* Character device. */
  61363. +#define __S_IFBLK 0060000 /* Block device. */
  61364. +#define __S_IFREG 0100000 /* Regular file. */
  61365. +#define __S_IFIFO 0010000 /* FIFO. */
  61366. +#define __S_IFLNK 0120000 /* Symbolic link. */
  61367. +#define __S_IFSOCK 0140000 /* Socket. */
  61368. +
  61369. +/* POSIX.1b objects. Note that these macros always evaluate to zero. But
  61370. + they do it by enforcing the correct use of the macros. */
  61371. +#define __S_TYPEISMQ(buf) ((buf)->st_mode - (buf)->st_mode)
  61372. +#define __S_TYPEISSEM(buf) ((buf)->st_mode - (buf)->st_mode)
  61373. +#define __S_TYPEISSHM(buf) ((buf)->st_mode - (buf)->st_mode)
  61374. +
  61375. +/* Protection bits. */
  61376. +
  61377. +#define __S_ISUID 04000 /* Set user ID on execution. */
  61378. +#define __S_ISGID 02000 /* Set group ID on execution. */
  61379. +#define __S_ISVTX 01000 /* Save swapped text after use (sticky). */
  61380. +#define __S_IREAD 0400 /* Read by owner. */
  61381. +#define __S_IWRITE 0200 /* Write by owner. */
  61382. +#define __S_IEXEC 0100 /* Execute by owner. */
  61383. +
  61384. +#ifdef __USE_ATFILE
  61385. +# define UTIME_NOW ((1l << 30) - 1l)
  61386. +# define UTIME_OMIT ((1l << 30) - 2l)
  61387. +#endif
  61388. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/fcntl.h uClibc-git/libc/sysdeps/linux/cris/bits/fcntl.h
  61389. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  61390. +++ uClibc-git/libc/sysdeps/linux/cris/bits/fcntl.h 2014-06-02 17:40:34.386714044 +0200
  61391. @@ -14,9 +14,8 @@
  61392. Lesser General Public License for more details.
  61393. You should have received a copy of the GNU Lesser General Public
  61394. - License along with the GNU C Library; if not, write to the Free
  61395. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61396. - 02111-1307 USA. */
  61397. + License along with the GNU C Library; if not, see
  61398. + <http://www.gnu.org/licenses/>. */
  61399. #ifndef _FCNTL_H
  61400. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  61401. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/cris/bits/kernel_types.h
  61402. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  61403. +++ uClibc-git/libc/sysdeps/linux/cris/bits/kernel_types.h 2014-06-02 17:40:34.386714044 +0200
  61404. @@ -28,6 +28,8 @@
  61405. typedef unsigned short __kernel_old_uid_t;
  61406. typedef unsigned short __kernel_old_gid_t;
  61407. typedef __kernel_dev_t __kernel_old_dev_t;
  61408. +typedef long __kernel_long_t;
  61409. +typedef unsigned long __kernel_ulong_t;
  61410. #ifdef __GNUC__
  61411. typedef long long __kernel_loff_t;
  61412. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/setjmp.h uClibc-git/libc/sysdeps/linux/cris/bits/setjmp.h
  61413. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  61414. +++ uClibc-git/libc/sysdeps/linux/cris/bits/setjmp.h 2014-06-02 17:40:34.386714044 +0200
  61415. @@ -1,4 +1,4 @@
  61416. -/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
  61417. +/* Copyright (C) 1997, 1998, 2005 Free Software Foundation, Inc.
  61418. This file is part of the GNU C Library.
  61419. The GNU C Library is free software; you can redistribute it and/or
  61420. @@ -12,11 +12,10 @@
  61421. Lesser General Public License for more details.
  61422. You should have received a copy of the GNU Lesser General Public
  61423. - License along with the GNU C Library; if not, write to the Free
  61424. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61425. - 02111-1307 USA. */
  61426. + License along with the GNU C Library; if not, see
  61427. + <http://www.gnu.org/licenses/>. */
  61428. -/* Define the machine-dependent type `jmp_buf'. CRIS version. */
  61429. +/* Define the machine-dependent type `jmp_buf', CRIS version. */
  61430. #ifndef _BITS_SETJMP_H
  61431. #define _BITS_SETJMP_H 1
  61432. @@ -24,10 +23,8 @@
  61433. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  61434. #endif
  61435. -/*
  61436. - Note that we save and restore CCR to be able to
  61437. - correctly handle DI/EI. Note also that the "move x,ccr" does NOT affect
  61438. - the DMA enable bits (E and D).
  61439. +/* Note that saving and restoring CCR has no meaning in user mode, so we
  61440. + don't actually do it; the slot is now reserved.
  61441. jmp_buf[0] - PC
  61442. jmp_buf[1] - SP (R14)
  61443. @@ -46,21 +43,8 @@
  61444. jmp_buf[14] - R1
  61445. jmp_buf[15] - R0
  61446. jmp_buf[16] - SRP
  61447. - jmp_buf[17] - CCR
  61448. - */
  61449. + jmp_buf[17] - CCR */
  61450. -#define _JBLEN 18
  61451. -#if defined (__USE_MISC) || defined (_ASM)
  61452. -#define JB_SP 1
  61453. -#endif
  61454. -
  61455. -#ifndef _ASM
  61456. -typedef int __jmp_buf[_JBLEN];
  61457. -#endif
  61458. -
  61459. -/* Test if longjmp to JMPBUF would unwind the frame
  61460. - containing a local variable at ADDRESS. */
  61461. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  61462. - ((void *) (address) < (void *) (jmpbuf)[JB_SP])
  61463. +typedef int __jmp_buf[18];
  61464. #endif /* bits/setjmp.h */
  61465. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/cris/bits/stackinfo.h
  61466. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  61467. +++ uClibc-git/libc/sysdeps/linux/cris/bits/stackinfo.h 2014-06-02 17:40:34.386714044 +0200
  61468. @@ -12,9 +12,8 @@
  61469. Lesser General Public License for more details.
  61470. You should have received a copy of the GNU Lesser General Public
  61471. - License along with the GNU C Library; if not, write to the Free
  61472. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61473. - 02111-1307 USA. */
  61474. + License along with the GNU C Library; if not, see
  61475. + <http://www.gnu.org/licenses/>. */
  61476. /* This file contains a bit of information about the stack allocation
  61477. of the processor. */
  61478. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/termios.h uClibc-git/libc/sysdeps/linux/cris/bits/termios.h
  61479. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
  61480. +++ uClibc-git/libc/sysdeps/linux/cris/bits/termios.h 2014-06-02 17:40:34.386714044 +0200
  61481. @@ -14,9 +14,8 @@
  61482. Lesser General Public License for more details.
  61483. You should have received a copy of the GNU Lesser General Public
  61484. - License along with the GNU C Library; if not, write to the Free
  61485. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61486. - 02111-1307 USA. */
  61487. + License along with the GNU C Library; if not, see
  61488. + <http://www.gnu.org/licenses/>. */
  61489. #ifndef _TERMIOS_H
  61490. # error "Never include <bits/termios.h> directly; use <termios.h> instead."
  61491. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h
  61492. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  61493. +++ uClibc-git/libc/sysdeps/linux/cris/bits/uClibc_arch_features.h 2014-06-02 17:40:34.386714044 +0200
  61494. @@ -12,8 +12,8 @@
  61495. /* can your target use syscall6() for mmap ? */
  61496. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  61497. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  61498. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  61499. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  61500. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  61501. /* does your target have a broken create_module() ? */
  61502. #define __UCLIBC_BROKEN_CREATE_MODULE__
  61503. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/cris/bits/uClibc_page.h
  61504. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  61505. +++ uClibc-git/libc/sysdeps/linux/cris/bits/uClibc_page.h 2014-06-02 17:40:34.386714044 +0200
  61506. @@ -11,8 +11,8 @@
  61507. * Library General Public License for more details.
  61508. *
  61509. * You should have received a copy of the GNU Library General Public
  61510. - * License along with this library; if not, write to the Free
  61511. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  61512. + * License along with this library; if not, see
  61513. + * <http://www.gnu.org/licenses/>.
  61514. */
  61515. /* Supply an architecture specific value for PAGE_SIZE and friends. */
  61516. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/wordsize.h uClibc-git/libc/sysdeps/linux/cris/bits/wordsize.h
  61517. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  61518. +++ uClibc-git/libc/sysdeps/linux/cris/bits/wordsize.h 2014-06-02 17:40:34.386714044 +0200
  61519. @@ -13,7 +13,6 @@
  61520. You should have received a copy of the GNU Library General Public
  61521. License along with the GNU C Library; see the file COPYING.LIB. If not,
  61522. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  61523. - Boston, MA 02111-1307, USA. */
  61524. + see <http://www.gnu.org/licenses/>. */
  61525. #define __WORDSIZE 32
  61526. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/clone.S uClibc-git/libc/sysdeps/linux/cris/clone.S
  61527. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/clone.S 2012-05-15 09:20:09.000000000 +0200
  61528. +++ uClibc-git/libc/sysdeps/linux/cris/clone.S 2014-06-02 17:40:34.386714044 +0200
  61529. @@ -13,8 +13,7 @@
  61530. You should have received a copy of the GNU Library General Public
  61531. License along with the GNU C Library; see the file COPYING.LIB. If not,
  61532. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  61533. - Boston, MA 02111-1307, USA. */
  61534. + see <http://www.gnu.org/licenses/>. */
  61535. #include <features.h>
  61536. #include <sys/syscall.h>
  61537. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/fork.c uClibc-git/libc/sysdeps/linux/cris/fork.c
  61538. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/fork.c 2012-05-15 09:20:09.000000000 +0200
  61539. +++ uClibc-git/libc/sysdeps/linux/cris/fork.c 1970-01-01 01:00:00.000000000 +0100
  61540. @@ -1,18 +0,0 @@
  61541. -/*
  61542. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61543. - *
  61544. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61545. - */
  61546. -
  61547. -#include "sysdep.h"
  61548. -
  61549. -#define __NR___libc_fork __NR_fork
  61550. -SYSCALL__ (__libc_fork, 0)
  61551. - /* R1 is now 0 for the parent and 1 for the child. Decrement it to
  61552. - make it -1 (all bits set) for the parent, and 0 (no bits set)
  61553. - for the child. Then AND it with R0, so the parent gets
  61554. - R0&-1==R0, and the child gets R0&0==0. */
  61555. - /* i dunno what the blurb above is useful for. we just return. */
  61556. -__asm__("ret\n\tnop");
  61557. -weak_alias(__libc_fork,fork)
  61558. -libc_hidden_weak(fork)
  61559. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/cris/jmpbuf-offsets.h
  61560. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  61561. +++ uClibc-git/libc/sysdeps/linux/cris/jmpbuf-offsets.h 2014-06-02 17:40:34.386714044 +0200
  61562. @@ -0,0 +1,8 @@
  61563. +/* Private macros for accessing __jmp_buf contents. BFIN version. */
  61564. +/*
  61565. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61566. + *
  61567. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61568. + */
  61569. +
  61570. +#define JB_SP 1
  61571. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/cris/jmpbuf-unwind.h
  61572. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  61573. +++ uClibc-git/libc/sysdeps/linux/cris/jmpbuf-unwind.h 2014-06-02 17:40:34.386714044 +0200
  61574. @@ -0,0 +1,12 @@
  61575. +/*
  61576. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61577. + *
  61578. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61579. + */
  61580. +#include <setjmp.h>
  61581. +#include <jmpbuf-offsets.h>
  61582. +
  61583. +/* Test if longjmp to JMPBUF would unwind the frame
  61584. + containing a local variable at ADDRESS. */
  61585. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  61586. + ((void *) (address) < (void *) (jmpbuf)[JB_SP])
  61587. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/__longjmp.S uClibc-git/libc/sysdeps/linux/cris/__longjmp.S
  61588. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  61589. +++ uClibc-git/libc/sysdeps/linux/cris/__longjmp.S 2014-06-02 17:40:34.374713977 +0200
  61590. @@ -14,14 +14,9 @@
  61591. You should have received a copy of the GNU Library General Public
  61592. License along with the GNU C Library; see the file COPYING.LIB. If not,
  61593. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  61594. - Boston, MA 02111-1307, USA. */
  61595. + see <http://www.gnu.org/licenses/>. */
  61596. -#include <features.h>
  61597. #include "sysdep.h"
  61598. -#define _SETJMP_H
  61599. -#define _ASM
  61600. -#include <bits/setjmp.h>
  61601. .syntax no_register_prefix
  61602. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/Makefile.arch uClibc-git/libc/sysdeps/linux/cris/Makefile.arch
  61603. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  61604. +++ uClibc-git/libc/sysdeps/linux/cris/Makefile.arch 2014-06-02 17:40:34.374713977 +0200
  61605. @@ -5,9 +5,7 @@
  61606. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61607. #
  61608. -CSRC := __init_brk.c brk.c sbrk.c
  61609. +CSRC-y := __init_brk.c brk.c sbrk.c
  61610. -SSRC := setjmp.S __longjmp.S clone.S sysdep.S syscall.S vfork.S
  61611. -ifeq ($(UNIFIED_SYSCALL),y)
  61612. -SSRC += __uClibc_syscall.S
  61613. -endif
  61614. +SSRC-y := setjmp.S __longjmp.S clone.S sysdep.S syscall.S vfork.S
  61615. +SSRC-$(UNIFIED_SYSCALL) += __uClibc_syscall.S
  61616. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/setjmp.S uClibc-git/libc/sysdeps/linux/cris/setjmp.S
  61617. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  61618. +++ uClibc-git/libc/sysdeps/linux/cris/setjmp.S 2014-06-02 17:40:34.386714044 +0200
  61619. @@ -14,13 +14,9 @@
  61620. You should have received a copy of the GNU Library General Public
  61621. License along with the GNU C Library; see the file COPYING.LIB. If not,
  61622. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  61623. - Boston, MA 02111-1307, USA. */
  61624. + see <http://www.gnu.org/licenses/>. */
  61625. #include "sysdep.h"
  61626. -#define _SETJMP_H
  61627. -#define _ASM
  61628. -#include <bits/setjmp.h>
  61629. .syntax no_register_prefix
  61630. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/sys/procfs.h uClibc-git/libc/sysdeps/linux/cris/sys/procfs.h
  61631. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  61632. +++ uClibc-git/libc/sysdeps/linux/cris/sys/procfs.h 2014-06-02 17:40:34.386714044 +0200
  61633. @@ -13,8 +13,7 @@
  61634. You should have received a copy of the GNU Library General Public
  61635. License along with the GNU C Library; see the file COPYING.LIB. If not,
  61636. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  61637. - Boston, MA 02111-1307, USA. */
  61638. + see <http://www.gnu.org/licenses/>. */
  61639. #ifndef _SYS_PROCFS_H
  61640. #define _SYS_PROCFS_H 1
  61641. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/sys/ucontext.h uClibc-git/libc/sysdeps/linux/cris/sys/ucontext.h
  61642. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  61643. +++ uClibc-git/libc/sysdeps/linux/cris/sys/ucontext.h 2014-06-02 17:40:34.386714044 +0200
  61644. @@ -12,9 +12,8 @@
  61645. Lesser General Public License for more details.
  61646. You should have received a copy of the GNU Lesser General Public
  61647. - License along with the GNU C Library; if not, write to the Free
  61648. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61649. - 02111-1307 USA. */
  61650. + License along with the GNU C Library; if not, see
  61651. + <http://www.gnu.org/licenses/>. */
  61652. /* System V/cris ABI compliant context switching support. */
  61653. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/syscall.S uClibc-git/libc/sysdeps/linux/cris/syscall.S
  61654. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/syscall.S 2012-05-15 09:20:09.000000000 +0200
  61655. +++ uClibc-git/libc/sysdeps/linux/cris/syscall.S 2014-06-02 17:40:34.386714044 +0200
  61656. @@ -13,8 +13,7 @@
  61657. You should have received a copy of the GNU Library General Public
  61658. License along with the GNU C Library; see the file COPYING.LIB. If not,
  61659. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  61660. - Boston, MA 02111-1307, USA. */
  61661. + see <http://www.gnu.org/licenses/>. */
  61662. #include "sysdep.h"
  61663. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/sysdep.h uClibc-git/libc/sysdeps/linux/cris/sysdep.h
  61664. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  61665. +++ uClibc-git/libc/sysdeps/linux/cris/sysdep.h 2014-06-02 17:40:34.386714044 +0200
  61666. @@ -14,13 +14,12 @@
  61667. You should have received a copy of the GNU Library General Public
  61668. License along with the GNU C Library; see the file COPYING.LIB. If not,
  61669. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  61670. - Boston, MA 02111-1307, USA. */
  61671. + see <http://www.gnu.org/licenses/>. */
  61672. #ifndef _SYSDEP_H_
  61673. #define _SYSDEP_H_
  61674. -#include <sys/syscall.h>
  61675. +#include <common/sysdep.h>
  61676. #ifndef C_LABEL
  61677. @@ -126,6 +125,14 @@
  61678. ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME (name), function) @ \
  61679. .align ALIGNARG (2) @ \
  61680. C_LABEL(name)
  61681. +
  61682. +#define HIDDEN_ENTRY(name) \
  61683. + .text @ \
  61684. + ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME (name) @ \
  61685. + .hidden C_SYMBOL_NAME (name) @ \
  61686. + ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME (name), function) @ \
  61687. + .align ALIGNARG (2) @ \
  61688. + C_LABEL(name)
  61689. #undef END
  61690. #define END(name) \
  61691. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/sysdep.S uClibc-git/libc/sysdeps/linux/cris/sysdep.S
  61692. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/sysdep.S 2012-05-15 09:20:09.000000000 +0200
  61693. +++ uClibc-git/libc/sysdeps/linux/cris/sysdep.S 2014-06-02 17:40:34.386714044 +0200
  61694. @@ -13,8 +13,7 @@
  61695. You should have received a copy of the GNU Library General Public
  61696. License along with the GNU C Library; see the file COPYING.LIB. If not,
  61697. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  61698. - Boston, MA 02111-1307, USA. */
  61699. + see <http://www.gnu.org/licenses/>. */
  61700. #include <features.h>
  61701. #include "sysdep.h"
  61702. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/cris/vfork.S uClibc-git/libc/sysdeps/linux/cris/vfork.S
  61703. --- uClibc-0.9.33.2/libc/sysdeps/linux/cris/vfork.S 2012-05-15 09:20:09.000000000 +0200
  61704. +++ uClibc-git/libc/sysdeps/linux/cris/vfork.S 2014-06-02 17:40:34.386714044 +0200
  61705. @@ -16,7 +16,7 @@
  61706. * enclosing function
  61707. */
  61708. -ENTRY(__vfork)
  61709. +HIDDEN_ENTRY(__vfork)
  61710. movu.w __NR_vfork,$r9
  61711. break 13
  61712. cmps.w -4096,$r10
  61713. @@ -27,4 +27,4 @@
  61714. PSEUDO_END(__vfork)
  61715. weak_alias(__vfork,vfork)
  61716. -libc_hidden_weak(vfork)
  61717. +libc_hidden_def(vfork)
  61718. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fcntl.h uClibc-git/libc/sysdeps/linux/e1/bits/fcntl.h
  61719. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  61720. +++ uClibc-git/libc/sysdeps/linux/e1/bits/fcntl.h 2014-06-02 17:40:34.410714177 +0200
  61721. @@ -13,9 +13,8 @@
  61722. Lesser General Public License for more details.
  61723. You should have received a copy of the GNU Lesser General Public
  61724. - License along with the GNU C Library; if not, write to the Free
  61725. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61726. - 02111-1307 USA. */
  61727. + License along with the GNU C Library; if not, see
  61728. + <http://www.gnu.org/licenses/>. */
  61729. #ifndef _FCNTL_H
  61730. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  61731. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fenv.h uClibc-git/libc/sysdeps/linux/e1/bits/fenv.h
  61732. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  61733. +++ uClibc-git/libc/sysdeps/linux/e1/bits/fenv.h 2014-06-02 17:40:34.410714177 +0200
  61734. @@ -15,9 +15,8 @@
  61735. Lesser General Public License for more details.
  61736. You should have received a copy of the GNU Lesser General Public
  61737. - License along with the GNU C Library; if not, write to the Free
  61738. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61739. - 02111-1307 USA. */
  61740. + License along with the GNU C Library; if not, see
  61741. + <http://www.gnu.org/licenses/>. */
  61742. #ifndef _FENV_H
  61743. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  61744. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fenvinline.h uClibc-git/libc/sysdeps/linux/e1/bits/fenvinline.h
  61745. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/fenvinline.h 2012-05-15 09:20:09.000000000 +0200
  61746. +++ uClibc-git/libc/sysdeps/linux/e1/bits/fenvinline.h 2014-06-02 17:40:34.410714177 +0200
  61747. @@ -16,9 +16,8 @@
  61748. Lesser General Public License for more details.
  61749. You should have received a copy of the GNU Lesser General Public
  61750. - License along with the GNU C Library; if not, write to the Free
  61751. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61752. - 02111-1307 USA. */
  61753. + License along with the GNU C Library; if not, see
  61754. + <http://www.gnu.org/licenses/>. */
  61755. #if defined __GNUC__ && !defined _SOFT_FLOAT && !defined __NO_MATH_INLINES
  61756. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/e1/bits/kernel_types.h
  61757. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  61758. +++ uClibc-git/libc/sysdeps/linux/e1/bits/kernel_types.h 2014-06-02 17:40:34.410714177 +0200
  61759. @@ -31,6 +31,8 @@
  61760. typedef unsigned short __kernel_old_uid_t;
  61761. typedef unsigned short __kernel_old_gid_t;
  61762. typedef __kernel_dev_t __kernel_old_dev_t;
  61763. +typedef long __kernel_long_t;
  61764. +typedef unsigned long __kernel_ulong_t;
  61765. typedef long long __kernel_loff_t;
  61766. /*
  61767. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/e1/bits/uClibc_arch_features.h
  61768. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  61769. +++ uClibc-git/libc/sysdeps/linux/e1/bits/uClibc_arch_features.h 2014-06-02 17:40:34.410714177 +0200
  61770. @@ -12,8 +12,8 @@
  61771. /* can your target use syscall6() for mmap ? */
  61772. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  61773. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  61774. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  61775. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  61776. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  61777. /* does your target have a broken create_module() ? */
  61778. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  61779. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/unistd.h uClibc-git/libc/sysdeps/linux/e1/bits/unistd.h
  61780. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/unistd.h 2012-05-15 09:20:09.000000000 +0200
  61781. +++ uClibc-git/libc/sysdeps/linux/e1/bits/unistd.h 2014-06-02 17:40:34.410714177 +0200
  61782. @@ -378,13 +378,6 @@
  61783. return (type)(par1); \
  61784. }
  61785. -#include <sys/types.h>
  61786. -/* Taken from <bits/errno.h> */
  61787. -#ifndef _LIBC
  61788. -/* We don't support pthreads for the moment*/
  61789. -#define __set_errno(val) ((errno) = (val))
  61790. -#endif
  61791. -
  61792. #if 0
  61793. #define _syscall3(type, name,atype, a , btype, b, ctype, c) \
  61794. type name(atype a, btype b, ctype c,) \
  61795. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/wordsize.h uClibc-git/libc/sysdeps/linux/e1/bits/wordsize.h
  61796. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  61797. +++ uClibc-git/libc/sysdeps/linux/e1/bits/wordsize.h 2014-06-02 17:40:34.410714177 +0200
  61798. @@ -15,8 +15,7 @@
  61799. Lesser General Public License for more details.
  61800. You should have received a copy of the GNU Lesser General Public
  61801. - License along with the GNU C Library; if not, write to the Free
  61802. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61803. - 02111-1307 USA. */
  61804. + License along with the GNU C Library; if not, see
  61805. + <http://www.gnu.org/licenses/>. */
  61806. #define __WORDSIZE 32
  61807. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/crt1.c uClibc-git/libc/sysdeps/linux/e1/crt1.c
  61808. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/crt1.c 2012-05-15 09:20:09.000000000 +0200
  61809. +++ uClibc-git/libc/sysdeps/linux/e1/crt1.c 2014-06-02 17:40:34.410714177 +0200
  61810. @@ -18,8 +18,8 @@
  61811. * for more details.
  61812. *
  61813. * You should have received a copy of the GNU Library General Public License
  61814. - * along with this program; if not, write to the Free Software Foundation,
  61815. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  61816. + * along with this program; see the file COPYING.LIB. If not, see
  61817. + * <http://www.gnu.org/licenses/>.
  61818. */
  61819. /* Stick in a dummy reference to main(), so that if an application
  61820. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/Makefile uClibc-git/libc/sysdeps/linux/e1/Makefile
  61821. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/Makefile 2012-05-15 09:20:09.000000000 +0200
  61822. +++ uClibc-git/libc/sysdeps/linux/e1/Makefile 2014-06-02 17:40:34.390714065 +0200
  61823. @@ -17,7 +17,7 @@
  61824. CTOR_TARGETS := $(TOPDIR)lib/crti.o $(TOPDIR)lib/crtn.o
  61825. # why is crt1.c listed in CSRC ?
  61826. -CSRC := crt1.c syscalls.c longjmp.c setjmp.c vfork.c
  61827. +CSRC := crt1.c syscalls.c longjmp.c setjmp.c
  61828. OBJS := $(patsubst %.c,%.o, $(CSRC))
  61829. OBJ_LIST := ../../../obj.sysdeps.$(TARGET_ARCH)
  61830. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/procfs.h uClibc-git/libc/sysdeps/linux/e1/sys/procfs.h
  61831. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  61832. +++ uClibc-git/libc/sysdeps/linux/e1/sys/procfs.h 2014-06-02 17:40:34.410714177 +0200
  61833. @@ -12,9 +12,8 @@
  61834. Lesser General Public License for more details.
  61835. You should have received a copy of the GNU Lesser General Public
  61836. - License along with the GNU C Library; if not, write to the Free
  61837. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61838. - 02111-1307 USA. */
  61839. + License along with the GNU C Library; if not, see
  61840. + <http://www.gnu.org/licenses/>. */
  61841. #ifndef _SYS_PROCFS_H
  61842. #define _SYS_PROCFS_H 1
  61843. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/reg.h uClibc-git/libc/sysdeps/linux/e1/sys/reg.h
  61844. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/reg.h 2012-05-15 09:20:09.000000000 +0200
  61845. +++ uClibc-git/libc/sysdeps/linux/e1/sys/reg.h 2014-06-02 17:40:34.410714177 +0200
  61846. @@ -12,9 +12,8 @@
  61847. Lesser General Public License for more details.
  61848. You should have received a copy of the GNU Lesser General Public
  61849. - License along with the GNU C Library; if not, write to the Free
  61850. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61851. - 02111-1307 USA. */
  61852. + License along with the GNU C Library; if not, see
  61853. + <http://www.gnu.org/licenses/>. */
  61854. #ifndef _SYS_REG_H
  61855. #define _SYS_REG_H 1
  61856. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/ucontext.h uClibc-git/libc/sysdeps/linux/e1/sys/ucontext.h
  61857. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  61858. +++ uClibc-git/libc/sysdeps/linux/e1/sys/ucontext.h 2014-06-02 17:40:34.410714177 +0200
  61859. @@ -12,9 +12,8 @@
  61860. Lesser General Public License for more details.
  61861. You should have received a copy of the GNU Lesser General Public
  61862. - License along with the GNU C Library; if not, write to the Free
  61863. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61864. - 02111-1307 USA. */
  61865. + License along with the GNU C Library; if not, see
  61866. + <http://www.gnu.org/licenses/>. */
  61867. /* System V/m68k ABI compliant context switching support. */
  61868. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/e1/vfork.c uClibc-git/libc/sysdeps/linux/e1/vfork.c
  61869. --- uClibc-0.9.33.2/libc/sysdeps/linux/e1/vfork.c 2012-05-15 09:20:09.000000000 +0200
  61870. +++ uClibc-git/libc/sysdeps/linux/e1/vfork.c 1970-01-01 01:00:00.000000000 +0100
  61871. @@ -1,14 +0,0 @@
  61872. -/*
  61873. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  61874. - *
  61875. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  61876. - */
  61877. -
  61878. -#include <sys/types.h>
  61879. -#include <sys/syscall.h>
  61880. -#include <errno.h>
  61881. -
  61882. -#define __NR___vfork __NR_vfork
  61883. -attribute_hidden _syscall0(pid_t, __vfork)
  61884. -weak_alias(__vfork,vfork)
  61885. -libc_hidden_weak(vfork)
  61886. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/elf-fdpic.h uClibc-git/libc/sysdeps/linux/frv/bits/elf-fdpic.h
  61887. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/elf-fdpic.h 2012-05-15 09:20:09.000000000 +0200
  61888. +++ uClibc-git/libc/sysdeps/linux/frv/bits/elf-fdpic.h 2014-06-02 17:40:34.410714177 +0200
  61889. @@ -22,8 +22,7 @@
  61890. You should have received a copy of the GNU Lesser General Public
  61891. License along with the GNU C Library; see the file COPYING.LIB. If
  61892. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  61893. -Cambridge, MA 02139, USA. */
  61894. +not, see <http://www.gnu.org/licenses/>. */
  61895. #ifndef _BITS_ELF_FDPIC_H
  61896. #define _BITS_ELF_FDPIC_H
  61897. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/fcntl.h uClibc-git/libc/sysdeps/linux/frv/bits/fcntl.h
  61898. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  61899. +++ uClibc-git/libc/sysdeps/linux/frv/bits/fcntl.h 2014-06-02 17:40:34.410714177 +0200
  61900. @@ -13,9 +13,8 @@
  61901. Lesser General Public License for more details.
  61902. You should have received a copy of the GNU Lesser General Public
  61903. - License along with the GNU C Library; if not, write to the Free
  61904. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61905. - 02111-1307 USA. */
  61906. + License along with the GNU C Library; if not, see
  61907. + <http://www.gnu.org/licenses/>. */
  61908. #ifndef _FCNTL_H
  61909. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  61910. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/setjmp.h uClibc-git/libc/sysdeps/linux/frv/bits/setjmp.h
  61911. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  61912. +++ uClibc-git/libc/sysdeps/linux/frv/bits/setjmp.h 2014-06-02 17:40:34.410714177 +0200
  61913. @@ -12,9 +12,8 @@
  61914. Lesser General Public License for more details.
  61915. You should have received a copy of the GNU Lesser General Public
  61916. - License along with the GNU C Library; if not, write to the Free
  61917. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61918. - 02111-1307 USA. */
  61919. + License along with the GNU C Library; if not, see
  61920. + <http://www.gnu.org/licenses/>. */
  61921. /* Define the machine-dependent type `jmp_buf'. FRV version. */
  61922. @@ -35,7 +34,6 @@
  61923. #define __SETJMP_FP (__SETJMP_SP+1)
  61924. -#ifndef _ASM
  61925. typedef struct
  61926. /* Demand 64-bit alignment such that we can use std/ldd in
  61927. setjmp/longjmp. */
  61928. @@ -48,11 +46,5 @@
  61929. unsigned long __sp; /* stack pointer */
  61930. unsigned long __fp; /* frame pointer */
  61931. } __jmp_buf[1];
  61932. -#endif
  61933. -
  61934. -/* Test if longjmp to JMPBUF would unwind the frame
  61935. - containing a local variable at ADDRESS. */
  61936. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  61937. - ((void *) (address) < (void *) (jmpbuf)->__sp)
  61938. #endif /* bits/setjmp.h */
  61939. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/frv/bits/stackinfo.h
  61940. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  61941. +++ uClibc-git/libc/sysdeps/linux/frv/bits/stackinfo.h 2014-06-02 17:40:34.410714177 +0200
  61942. @@ -12,9 +12,8 @@
  61943. Lesser General Public License for more details.
  61944. You should have received a copy of the GNU Lesser General Public
  61945. - License along with the GNU C Library; if not, write to the Free
  61946. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61947. - 02111-1307 USA. */
  61948. + License along with the GNU C Library; if not, see
  61949. + <http://www.gnu.org/licenses/>. */
  61950. /* This file contains a bit of information about the stack allocation
  61951. of the processor. */
  61952. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/stat.h uClibc-git/libc/sysdeps/linux/frv/bits/stat.h
  61953. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  61954. +++ uClibc-git/libc/sysdeps/linux/frv/bits/stat.h 2014-06-02 17:40:34.410714177 +0200
  61955. @@ -12,9 +12,8 @@
  61956. Lesser General Public License for more details.
  61957. You should have received a copy of the GNU Lesser General Public
  61958. - License along with the GNU C Library; if not, write to the Free
  61959. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  61960. - 02111-1307 USA. */
  61961. + License along with the GNU C Library; if not, see
  61962. + <http://www.gnu.org/licenses/>. */
  61963. #ifndef _SYS_STAT_H
  61964. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  61965. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/syscalls.h uClibc-git/libc/sysdeps/linux/frv/bits/syscalls.h
  61966. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
  61967. +++ uClibc-git/libc/sysdeps/linux/frv/bits/syscalls.h 2014-06-02 17:40:34.410714177 +0200
  61968. @@ -15,8 +15,7 @@
  61969. # define __syscall_return(type, res) \
  61970. do { \
  61971. unsigned long __sr2 = (res); \
  61972. - if (__builtin_expect ((unsigned long)(__sr2) \
  61973. - >= (unsigned long)(-4095), 0)) { \
  61974. + if (unlikely ((unsigned long)(__sr2) >= (unsigned long)(-4095))) { \
  61975. extern int __syscall_error (int); \
  61976. return (type) __syscall_error (__sr2); \
  61977. } \
  61978. @@ -26,8 +25,7 @@
  61979. # define __syscall_return(type, res) \
  61980. do { \
  61981. unsigned long __sr2 = (res); \
  61982. - if (__builtin_expect ((unsigned long)(__sr2) \
  61983. - >= (unsigned long)(-4095), 0)) { \
  61984. + if (unlikely ((unsigned long)(__sr2) >= (unsigned long)(-4095))) { \
  61985. __set_errno (-__sr2); \
  61986. __sr2 = -1; \
  61987. } \
  61988. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h
  61989. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  61990. +++ uClibc-git/libc/sysdeps/linux/frv/bits/uClibc_arch_features.h 2014-06-02 17:40:34.430714287 +0200
  61991. @@ -12,8 +12,8 @@
  61992. /* can your target use syscall6() for mmap ? */
  61993. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  61994. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  61995. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  61996. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  61997. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  61998. /* does your target have a broken create_module() ? */
  61999. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  62000. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/frv/bits/uClibc_page.h
  62001. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  62002. +++ uClibc-git/libc/sysdeps/linux/frv/bits/uClibc_page.h 2014-06-02 17:40:34.430714287 +0200
  62003. @@ -11,8 +11,8 @@
  62004. * Library General Public License for more details.
  62005. *
  62006. * You should have received a copy of the GNU Library General Public
  62007. - * License along with this library; if not, write to the Free
  62008. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  62009. + * License along with this library; if not, see
  62010. + * <http://www.gnu.org/licenses/>.
  62011. */
  62012. /* Supply an architecture specific value for PAGE_SIZE and friends. */
  62013. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/wordsize.h uClibc-git/libc/sysdeps/linux/frv/bits/wordsize.h
  62014. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  62015. +++ uClibc-git/libc/sysdeps/linux/frv/bits/wordsize.h 2014-06-02 17:40:34.430714287 +0200
  62016. @@ -12,8 +12,7 @@
  62017. Lesser General Public License for more details.
  62018. You should have received a copy of the GNU Lesser General Public
  62019. - License along with the GNU C Library; if not, write to the Free
  62020. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62021. - 02111-1307 USA. */
  62022. + License along with the GNU C Library; if not, see
  62023. + <http://www.gnu.org/licenses/>. */
  62024. #define __WORDSIZE 32
  62025. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/clone.S uClibc-git/libc/sysdeps/linux/frv/clone.S
  62026. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/clone.S 2012-05-15 09:20:09.000000000 +0200
  62027. +++ uClibc-git/libc/sysdeps/linux/frv/clone.S 2014-06-02 17:40:34.430714287 +0200
  62028. @@ -13,9 +13,8 @@
  62029. Lesser General Public License for more details.
  62030. You should have received a copy of the GNU Lesser General Public
  62031. - License along with the GNU C Library; if not, write to the Free
  62032. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62033. - 02111-1307 USA. */
  62034. + License along with the GNU C Library; if not, see
  62035. + <http://www.gnu.org/licenses/>. */
  62036. /* clone() is even more special than fork() as it mucks with stacks
  62037. and invokes a function in the right context after its all over. */
  62038. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/crt0.S uClibc-git/libc/sysdeps/linux/frv/crt0.S
  62039. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/crt0.S 2012-05-15 09:20:09.000000000 +0200
  62040. +++ uClibc-git/libc/sysdeps/linux/frv/crt0.S 2014-06-02 17:40:34.430714287 +0200
  62041. @@ -22,8 +22,7 @@
  62042. You should have received a copy of the GNU Lesser General Public
  62043. License along with the GNU C Library; see the file COPYING.LIB. If
  62044. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  62045. -Cambridge, MA 02139, USA. */
  62046. +not, see <http://www.gnu.org/licenses/>. */
  62047. /* Based on ../i386/crt0.S and newlib's libgloss/frv/crt0.S */
  62048. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/crti.S uClibc-git/libc/sysdeps/linux/frv/crti.S
  62049. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/crti.S 2012-05-15 09:20:09.000000000 +0200
  62050. +++ uClibc-git/libc/sysdeps/linux/frv/crti.S 2014-06-02 17:40:34.434714309 +0200
  62051. @@ -22,8 +22,7 @@
  62052. You should have received a copy of the GNU Lesser General Public
  62053. License along with the GNU C Library; see the file COPYING.LIB. If
  62054. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  62055. -Cambridge, MA 02139, USA. */
  62056. +not, see <http://www.gnu.org/licenses/>. */
  62057. .section .init,"x"
  62058. .p2align 2
  62059. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/crtn.S uClibc-git/libc/sysdeps/linux/frv/crtn.S
  62060. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/crtn.S 2012-05-15 09:20:09.000000000 +0200
  62061. +++ uClibc-git/libc/sysdeps/linux/frv/crtn.S 2014-06-02 17:40:34.434714309 +0200
  62062. @@ -22,8 +22,7 @@
  62063. You should have received a copy of the GNU Lesser General Public
  62064. License along with the GNU C Library; see the file COPYING.LIB. If
  62065. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  62066. -Cambridge, MA 02139, USA. */
  62067. +not, see <http://www.gnu.org/licenses/>. */
  62068. .section .init,"x"
  62069. .globl _init
  62070. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/crtreloc.c uClibc-git/libc/sysdeps/linux/frv/crtreloc.c
  62071. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/crtreloc.c 2012-05-15 09:20:09.000000000 +0200
  62072. +++ uClibc-git/libc/sysdeps/linux/frv/crtreloc.c 2014-06-02 17:40:34.434714309 +0200
  62073. @@ -23,8 +23,7 @@
  62074. You should have received a copy of the GNU Lesser General Public
  62075. License along with the GNU C Library; see the file COPYING.LIB. If
  62076. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  62077. -Cambridge, MA 02139, USA. */
  62078. +not, see <http://www.gnu.org/licenses/>. */
  62079. #include <sys/types.h>
  62080. #include <link.h>
  62081. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/dl-iterate-phdr.c uClibc-git/libc/sysdeps/linux/frv/dl-iterate-phdr.c
  62082. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/dl-iterate-phdr.c 2012-05-15 09:20:09.000000000 +0200
  62083. +++ uClibc-git/libc/sysdeps/linux/frv/dl-iterate-phdr.c 2014-06-02 17:40:34.434714309 +0200
  62084. @@ -13,8 +13,7 @@
  62085. You should have received a copy of the GNU Lesser General Public
  62086. License along with the GNU C Library; see the file COPYING.LIB. If
  62087. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  62088. -Cambridge, MA 02139, USA. */
  62089. +not, see <http://www.gnu.org/licenses/>. */
  62090. #include <link.h>
  62091. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/fstat64.c uClibc-git/libc/sysdeps/linux/frv/fstat64.c
  62092. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/fstat64.c 2012-05-15 09:20:09.000000000 +0200
  62093. +++ uClibc-git/libc/sysdeps/linux/frv/fstat64.c 2014-06-02 17:40:34.434714309 +0200
  62094. @@ -9,11 +9,9 @@
  62095. * Adapted to FR-V by Alexandre Oliva <aoliva@redhat.com>
  62096. */
  62097. +#include <_lfs_64.h>
  62098. #include <sys/syscall.h>
  62099. -#include <unistd.h>
  62100. #include <sys/stat.h>
  62101. -#ifdef __UCLIBC_HAS_LFS__
  62102. _syscall2(int, fstat64, int, fd, struct stat64 *, buf)
  62103. libc_hidden_def(fstat64)
  62104. -#endif
  62105. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/frv/jmpbuf-unwind.h
  62106. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  62107. +++ uClibc-git/libc/sysdeps/linux/frv/jmpbuf-unwind.h 2014-06-02 17:40:34.434714309 +0200
  62108. @@ -0,0 +1,14 @@
  62109. +/*
  62110. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  62111. + *
  62112. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  62113. + */
  62114. +
  62115. +#include <setjmp.h>
  62116. +
  62117. +/* Test if longjmp to JMPBUF would unwind the frame
  62118. + containing a local variable at ADDRESS. */
  62119. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  62120. + ((void *) (address) < (void *) (jmpbuf)->__sp)
  62121. +
  62122. +#endif /* bits/setjmp.h */
  62123. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/__longjmp.S uClibc-git/libc/sysdeps/linux/frv/__longjmp.S
  62124. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  62125. +++ uClibc-git/libc/sysdeps/linux/frv/__longjmp.S 2014-06-02 17:40:34.410714177 +0200
  62126. @@ -4,10 +4,6 @@
  62127. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  62128. */
  62129. -#define _SETJMP_H
  62130. -#define _ASM
  62131. -#include <bits/setjmp.h>
  62132. -
  62133. # setjmp/longjmp for Frv. The jmpbuf looks like this:
  62134. #
  62135. # Register jmpbuf offset
  62136. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/lstat64.c uClibc-git/libc/sysdeps/linux/frv/lstat64.c
  62137. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/lstat64.c 2012-05-15 09:20:09.000000000 +0200
  62138. +++ uClibc-git/libc/sysdeps/linux/frv/lstat64.c 2014-06-02 17:40:34.434714309 +0200
  62139. @@ -9,11 +9,9 @@
  62140. * Adapted to FR-V by Alexandre Oliva <aoliva@redhat.com>
  62141. */
  62142. +#include <_lfs_64.h>
  62143. #include <sys/syscall.h>
  62144. -#include <unistd.h>
  62145. #include <sys/stat.h>
  62146. -#ifdef __UCLIBC_HAS_LFS__
  62147. _syscall2(int, lstat64, const char *, file_name, struct stat64 *, buf)
  62148. libc_hidden_def(lstat64)
  62149. -#endif
  62150. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/Makefile uClibc-git/libc/sysdeps/linux/frv/Makefile
  62151. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/Makefile 2012-05-15 09:20:09.000000000 +0200
  62152. +++ uClibc-git/libc/sysdeps/linux/frv/Makefile 2014-06-02 17:40:34.410714177 +0200
  62153. @@ -17,7 +17,7 @@
  62154. SSRC := __longjmp.S setjmp.S clone.S vfork.S
  62155. SOBJ := $(patsubst %.S,%.o, $(SSRC))
  62156. -CSRC = mmap.c sysdep.c syscall.c brk.c sbrk.c __init_brk.c dl-iterate-phdr.c
  62157. +CSRC = sysdep.c syscall.c brk.c sbrk.c __init_brk.c dl-iterate-phdr.c
  62158. CSRC += xstatconv.c stat.c stat64.c fstat.c fstat64.c lstat.c lstat64.c
  62159. COBJ := $(patsubst %.c,%.o, $(CSRC))
  62160. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/mmap.c uClibc-git/libc/sysdeps/linux/frv/mmap.c
  62161. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/mmap.c 2012-05-15 09:20:09.000000000 +0200
  62162. +++ uClibc-git/libc/sysdeps/linux/frv/mmap.c 1970-01-01 01:00:00.000000000 +0100
  62163. @@ -1,50 +0,0 @@
  62164. -/* Copyright (C) 1997, 1998, 1999, 2002, 2003 Free Software Foundation, Inc.
  62165. - This file is part of the GNU C Library.
  62166. - Contributed by Daniel Jacobowitz <dan@debian.org>, 1999.
  62167. -
  62168. - The GNU C Library is free software; you can redistribute it and/or
  62169. - modify it under the terms of the GNU Lesser General Public
  62170. - License as published by the Free Software Foundation; either
  62171. - version 2.1 of the License, or (at your option) any later version.
  62172. -
  62173. - The GNU C Library is distributed in the hope that it will be useful,
  62174. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  62175. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  62176. - Lesser General Public License for more details.
  62177. -
  62178. - You should have received a copy of the GNU Lesser General Public
  62179. - License along with the GNU C Library; if not, write to the Free
  62180. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62181. - 02111-1307 USA. */
  62182. -
  62183. -/* Massivly hacked up for uClibc by Erik Andersen */
  62184. -
  62185. -/* Extracted from ../common/mmap64.c by Alexandre Oliva <aoliva@redhat.com>
  62186. -
  62187. - We don't want to use the old mmap interface. */
  62188. -
  62189. -#include <features.h>
  62190. -#include <errno.h>
  62191. -#include <unistd.h>
  62192. -#include <sys/syscall.h>
  62193. -#include <sys/mman.h>
  62194. -
  62195. -
  62196. -#define __NR___syscall_mmap2 __NR_mmap2
  62197. -static __inline__ _syscall6(__ptr_t, __syscall_mmap2, __ptr_t, addr,
  62198. - size_t, len, int, prot, int, flags, int, fd, off_t, offset)
  62199. -
  62200. -/* This is always 12, even on architectures where PAGE_SHIFT != 12. */
  62201. -# ifndef MMAP2_PAGE_SHIFT
  62202. -# define MMAP2_PAGE_SHIFT 12
  62203. -# endif
  62204. -
  62205. -__ptr_t mmap(__ptr_t addr, size_t len, int prot, int flags, int fd, __off_t offset)
  62206. -{
  62207. - if (offset & ((1 << MMAP2_PAGE_SHIFT) - 1)) {
  62208. - __set_errno (EINVAL);
  62209. - return MAP_FAILED;
  62210. - }
  62211. - return(__syscall_mmap2(addr, len, prot, flags, fd, (off_t) (offset >> MMAP2_PAGE_SHIFT)));
  62212. -}
  62213. -libc_hidden_def(mmap)
  62214. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/stat64.c uClibc-git/libc/sysdeps/linux/frv/stat64.c
  62215. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/stat64.c 2012-05-15 09:20:09.000000000 +0200
  62216. +++ uClibc-git/libc/sysdeps/linux/frv/stat64.c 2014-06-02 17:40:34.434714309 +0200
  62217. @@ -9,11 +9,9 @@
  62218. * Adapted to FR-V by Alexandre Oliva <aoliva@redhat.com>
  62219. */
  62220. +#include <_lfs_64.h>
  62221. #include <sys/syscall.h>
  62222. -#include <unistd.h>
  62223. #include <sys/stat.h>
  62224. -#ifdef __UCLIBC_HAS_LFS__
  62225. _syscall2(int, stat64, const char *, file_name, struct stat64 *, buf)
  62226. libc_hidden_def(stat64)
  62227. -#endif
  62228. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/procfs.h uClibc-git/libc/sysdeps/linux/frv/sys/procfs.h
  62229. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  62230. +++ uClibc-git/libc/sysdeps/linux/frv/sys/procfs.h 2014-06-02 17:40:34.434714309 +0200
  62231. @@ -12,9 +12,8 @@
  62232. Lesser General Public License for more details.
  62233. You should have received a copy of the GNU Lesser General Public
  62234. - License along with the GNU C Library; if not, write to the Free
  62235. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62236. - 02111-1307 USA. */
  62237. + License along with the GNU C Library; if not, see
  62238. + <http://www.gnu.org/licenses/>. */
  62239. #ifndef _SYS_PROCFS_H
  62240. #define _SYS_PROCFS_H 1
  62241. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/ptrace.h uClibc-git/libc/sysdeps/linux/frv/sys/ptrace.h
  62242. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  62243. +++ uClibc-git/libc/sysdeps/linux/frv/sys/ptrace.h 2014-06-02 17:40:34.434714309 +0200
  62244. @@ -14,9 +14,8 @@
  62245. Lesser General Public License for more details.
  62246. You should have received a copy of the GNU Lesser General Public
  62247. - License along with the GNU C Library; if not, write to the Free
  62248. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62249. - 02111-1307 USA. */
  62250. + License along with the GNU C Library; if not, see
  62251. + <http://www.gnu.org/licenses/>. */
  62252. #ifndef _SYS_PTRACE_H
  62253. #define _SYS_PTRACE_H 1
  62254. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/ucontext.h uClibc-git/libc/sysdeps/linux/frv/sys/ucontext.h
  62255. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  62256. +++ uClibc-git/libc/sysdeps/linux/frv/sys/ucontext.h 2014-06-02 17:40:34.434714309 +0200
  62257. @@ -13,8 +13,7 @@
  62258. You should have received a copy of the GNU Library General Public
  62259. License along with the GNU C Library; see the file COPYING.LIB. If not,
  62260. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  62261. - Boston, MA 02111-1307, USA. */
  62262. + see <http://www.gnu.org/licenses/>. */
  62263. #ifndef _SYS_UCONTEXT_H
  62264. #define _SYS_UCONTEXT_H 1
  62265. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/syscall.c uClibc-git/libc/sysdeps/linux/frv/syscall.c
  62266. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/syscall.c 2012-05-15 09:20:09.000000000 +0200
  62267. +++ uClibc-git/libc/sysdeps/linux/frv/syscall.c 2014-06-02 17:40:34.434714309 +0200
  62268. @@ -13,8 +13,8 @@
  62269. * for more details.
  62270. *
  62271. * You should have received a copy of the GNU Library General Public License
  62272. - * along with this program; if not, write to the Free Software Foundation,
  62273. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  62274. + * along with this program; see the file COPYING.LIB. If not, see
  62275. + * <http://www.gnu.org/licenses/>.
  62276. */
  62277. #include <features.h>
  62278. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/sysdep.c uClibc-git/libc/sysdeps/linux/frv/sysdep.c
  62279. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/sysdep.c 2012-05-15 09:20:09.000000000 +0200
  62280. +++ uClibc-git/libc/sysdeps/linux/frv/sysdep.c 2014-06-02 17:40:34.434714309 +0200
  62281. @@ -12,9 +12,8 @@
  62282. Lesser General Public License for more details.
  62283. You should have received a copy of the GNU Lesser General Public
  62284. - License along with the GNU C Library; if not, write to the Free
  62285. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62286. - 02111-1307 USA. */
  62287. + License along with the GNU C Library; if not, see
  62288. + <http://www.gnu.org/licenses/>. */
  62289. #include <errno.h>
  62290. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/frv/vfork.S uClibc-git/libc/sysdeps/linux/frv/vfork.S
  62291. --- uClibc-0.9.33.2/libc/sysdeps/linux/frv/vfork.S 2012-05-15 09:20:09.000000000 +0200
  62292. +++ uClibc-git/libc/sysdeps/linux/frv/vfork.S 2014-06-02 17:40:34.434714309 +0200
  62293. @@ -13,15 +13,10 @@
  62294. Lesser General Public License for more details.
  62295. You should have received a copy of the GNU Lesser General Public
  62296. - License along with the GNU C Library; if not, write to the Free
  62297. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62298. - 02111-1307 USA. */
  62299. -
  62300. -#include <features.h>
  62301. -
  62302. -#include <asm/unistd.h>
  62303. -#define _ERRNO_H 1
  62304. -#include <bits/errno.h>
  62305. + License along with the GNU C Library; if not, see
  62306. + <http://www.gnu.org/licenses/>. */
  62307. +
  62308. +#include <sys/syscall.h>
  62309. .text
  62310. .globl __vfork
  62311. @@ -44,4 +39,4 @@
  62312. .size __vfork,.-__vfork
  62313. weak_alias(__vfork,vfork)
  62314. -libc_hidden_weak(vfork)
  62315. +libc_hidden_def(vfork)
  62316. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/byteswap.h uClibc-git/libc/sysdeps/linux/h8300/bits/byteswap.h
  62317. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
  62318. +++ uClibc-git/libc/sysdeps/linux/h8300/bits/byteswap.h 2014-06-02 17:40:34.434714309 +0200
  62319. @@ -14,8 +14,7 @@
  62320. You should have received a copy of the GNU Library General Public
  62321. License along with the GNU C Library; see the file COPYING.LIB. If not,
  62322. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  62323. - Boston, MA 02111-1307, USA. */
  62324. + see <http://www.gnu.org/licenses/>. */
  62325. #ifndef _ASM_BITS_BYTESWAP_H
  62326. #define _ASM_BITS_BYTESWAP_H 1
  62327. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/fcntl.h uClibc-git/libc/sysdeps/linux/h8300/bits/fcntl.h
  62328. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  62329. +++ uClibc-git/libc/sysdeps/linux/h8300/bits/fcntl.h 2014-06-02 17:40:34.434714309 +0200
  62330. @@ -13,9 +13,8 @@
  62331. Lesser General Public License for more details.
  62332. You should have received a copy of the GNU Lesser General Public
  62333. - License along with the GNU C Library; if not, write to the Free
  62334. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62335. - 02111-1307 USA. */
  62336. + License along with the GNU C Library; if not, see
  62337. + <http://www.gnu.org/licenses/>. */
  62338. #ifndef _FCNTL_H
  62339. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  62340. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/h8300/bits/kernel_types.h
  62341. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  62342. +++ uClibc-git/libc/sysdeps/linux/h8300/bits/kernel_types.h 2014-06-02 17:40:34.434714309 +0200
  62343. @@ -32,6 +32,8 @@
  62344. typedef unsigned short __kernel_old_gid_t;
  62345. typedef long long __kernel_loff_t;
  62346. typedef __kernel_dev_t __kernel_old_dev_t;
  62347. +typedef long __kernel_long_t;
  62348. +typedef unsigned long __kernel_ulong_t;
  62349. typedef struct {
  62350. #ifdef __USE_ALL
  62351. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/setjmp.h uClibc-git/libc/sysdeps/linux/h8300/bits/setjmp.h
  62352. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  62353. +++ uClibc-git/libc/sysdeps/linux/h8300/bits/setjmp.h 2014-06-02 17:40:34.434714309 +0200
  62354. @@ -9,24 +9,10 @@
  62355. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  62356. #endif
  62357. -#ifndef _ASM
  62358. -
  62359. typedef struct
  62360. {
  62361. unsigned long __regs[4]; /* save er4 - er7(sp) */
  62362. unsigned long __pc; /* the return address */
  62363. } __jmp_buf[1];
  62364. -#endif /* _ASM */
  62365. -
  62366. -#define JB_REGS 0
  62367. -#define JB_PC 16
  62368. -#define JB_SIZE 20
  62369. -
  62370. -
  62371. -/* Test if longjmp to JMPBUF would unwind the frame
  62372. - containing a local variable at ADDRESS. */
  62373. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  62374. - ((void *) (address) < (void *) (jmpbuf)->__regs[3])
  62375. -
  62376. #endif /* bits/setjmp.h */
  62377. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/h8300/bits/sigcontextinfo.h
  62378. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  62379. +++ uClibc-git/libc/sysdeps/linux/h8300/bits/sigcontextinfo.h 2014-06-02 17:40:34.434714309 +0200
  62380. @@ -13,9 +13,8 @@
  62381. Lesser General Public License for more details.
  62382. You should have received a copy of the GNU Lesser General Public
  62383. - License along with the GNU C Library; if not, write to the Free
  62384. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62385. - 02111-1307 USA. */
  62386. + License along with the GNU C Library; if not, see
  62387. + <http://www.gnu.org/licenses/>. */
  62388. #define SIGCONTEXT int _code, struct sigcontext *
  62389. #define SIGCONTEXT_EXTRA_ARGS _code,
  62390. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/h8300/bits/stackinfo.h
  62391. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  62392. +++ uClibc-git/libc/sysdeps/linux/h8300/bits/stackinfo.h 2014-06-02 17:40:34.434714309 +0200
  62393. @@ -12,9 +12,8 @@
  62394. Lesser General Public License for more details.
  62395. You should have received a copy of the GNU Lesser General Public
  62396. - License along with the GNU C Library; if not, write to the Free
  62397. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62398. - 02111-1307 USA. */
  62399. + License along with the GNU C Library; if not, see
  62400. + <http://www.gnu.org/licenses/>. */
  62401. /* This file contains a bit of information about the stack allocation
  62402. of the processor. */
  62403. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/h8300/bits/uClibc_arch_features.h
  62404. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  62405. +++ uClibc-git/libc/sysdeps/linux/h8300/bits/uClibc_arch_features.h 2014-06-02 17:40:34.434714309 +0200
  62406. @@ -12,8 +12,8 @@
  62407. /* can your target use syscall6() for mmap ? */
  62408. #define __UCLIBC_MMAP_HAS_6_ARGS__
  62409. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  62410. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  62411. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  62412. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  62413. /* does your target have a broken create_module() ? */
  62414. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  62415. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/h8300/bsd-setjmp.S
  62416. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  62417. +++ uClibc-git/libc/sysdeps/linux/h8300/bsd-setjmp.S 2014-06-02 17:40:34.434714309 +0200
  62418. @@ -1,8 +1,6 @@
  62419. /* BSD `_setjmp' entry point to `sigsetjmp (..., 1)'. H8/300 version. */
  62420. -#define _ASM
  62421. -#define _SETJMP_H
  62422. -#include <bits/setjmp.h>
  62423. +#include <jmpbuf-offsets.h>
  62424. #ifdef __H8300S__
  62425. .h8300s
  62426. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/h8300/bsd-_setjmp.S
  62427. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  62428. +++ uClibc-git/libc/sysdeps/linux/h8300/bsd-_setjmp.S 2014-06-02 17:40:34.434714309 +0200
  62429. @@ -1,8 +1,6 @@
  62430. /* BSD `_setjmp' entry point to `sigsetjmp (..., 0)'. H8/300 version. */
  62431. -#define _ASM
  62432. -#define _SETJMP_H
  62433. -#include <bits/setjmp.h>
  62434. +#include <jmpbuf-offsets.h>
  62435. #ifdef __H8300S__
  62436. .h8300s
  62437. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/crt0.S uClibc-git/libc/sysdeps/linux/h8300/crt0.S
  62438. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/crt0.S 2012-05-15 09:20:09.000000000 +0200
  62439. +++ uClibc-git/libc/sysdeps/linux/h8300/crt0.S 2014-06-02 17:40:34.438714331 +0200
  62440. @@ -14,8 +14,7 @@
  62441. You should have received a copy of the GNU Library General Public
  62442. License along with the GNU C Library; see the file COPYING.LIB. If
  62443. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  62444. -Cambridge, MA 02139, USA. */
  62445. +not, see <http://www.gnu.org/licenses/>. */
  62446. #include <features.h>
  62447. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/h8300/jmpbuf-offsets.h
  62448. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  62449. +++ uClibc-git/libc/sysdeps/linux/h8300/jmpbuf-offsets.h 2014-06-02 17:40:34.438714331 +0200
  62450. @@ -0,0 +1,9 @@
  62451. +/*
  62452. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  62453. + *
  62454. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  62455. + */
  62456. +
  62457. +#define JB_REGS 0
  62458. +#define JB_PC 16
  62459. +#define JB_SIZE 20
  62460. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/h8300/jmpbuf-unwind.h
  62461. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  62462. +++ uClibc-git/libc/sysdeps/linux/h8300/jmpbuf-unwind.h 2014-06-02 17:40:34.438714331 +0200
  62463. @@ -0,0 +1,12 @@
  62464. +/*
  62465. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  62466. + *
  62467. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  62468. + */
  62469. +
  62470. +#include <setjmp.h>
  62471. +
  62472. +/* Test if longjmp to JMPBUF would unwind the frame
  62473. + containing a local variable at ADDRESS. */
  62474. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  62475. + ((void *) (address) < (void *) (jmpbuf)->__regs[3])
  62476. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/__longjmp.S uClibc-git/libc/sysdeps/linux/h8300/__longjmp.S
  62477. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  62478. +++ uClibc-git/libc/sysdeps/linux/h8300/__longjmp.S 2014-06-02 17:40:34.434714309 +0200
  62479. @@ -20,3 +20,5 @@
  62480. mov.l @er0+,er3 ; return PC
  62481. adds #4,sp ; adjust return stack
  62482. jmp @er3
  62483. +
  62484. +libc_hidden_def(__longjmp)
  62485. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/setjmp.S uClibc-git/libc/sysdeps/linux/h8300/setjmp.S
  62486. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  62487. +++ uClibc-git/libc/sysdeps/linux/h8300/setjmp.S 2014-06-02 17:40:34.438714331 +0200
  62488. @@ -1,6 +1,4 @@
  62489. -#define _ASM
  62490. -#define _SETJMP_H
  62491. -#include <bits/setjmp.h>
  62492. +#include <jmpbuf-offsets.h>
  62493. #ifdef __H8300S__
  62494. .h8300s
  62495. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/sys/procfs.h uClibc-git/libc/sysdeps/linux/h8300/sys/procfs.h
  62496. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  62497. +++ uClibc-git/libc/sysdeps/linux/h8300/sys/procfs.h 2014-06-02 17:40:34.438714331 +0200
  62498. @@ -12,9 +12,8 @@
  62499. Lesser General Public License for more details.
  62500. You should have received a copy of the GNU Lesser General Public
  62501. - License along with the GNU C Library; if not, write to the Free
  62502. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62503. - 02111-1307 USA. */
  62504. + License along with the GNU C Library; if not, see
  62505. + <http://www.gnu.org/licenses/>. */
  62506. #ifndef _SYS_PROCFS_H
  62507. #define _SYS_PROCFS_H 1
  62508. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/sys/ucontext.h uClibc-git/libc/sysdeps/linux/h8300/sys/ucontext.h
  62509. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  62510. +++ uClibc-git/libc/sysdeps/linux/h8300/sys/ucontext.h 2014-06-02 17:40:34.442714354 +0200
  62511. @@ -12,9 +12,8 @@
  62512. Lesser General Public License for more details.
  62513. You should have received a copy of the GNU Lesser General Public
  62514. - License along with the GNU C Library; if not, write to the Free
  62515. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62516. - 02111-1307 USA. */
  62517. + License along with the GNU C Library; if not, see
  62518. + <http://www.gnu.org/licenses/>. */
  62519. /* H8/300 compliant context switching support. */
  62520. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/h8300/vfork.S uClibc-git/libc/sysdeps/linux/h8300/vfork.S
  62521. --- uClibc-0.9.33.2/libc/sysdeps/linux/h8300/vfork.S 2012-05-15 09:20:09.000000000 +0200
  62522. +++ uClibc-git/libc/sysdeps/linux/h8300/vfork.S 2014-06-02 17:40:34.442714354 +0200
  62523. @@ -1,5 +1,5 @@
  62524. -#include <asm/unistd.h>
  62525. +#include <sys/syscall.h>
  62526. #ifndef __NR_vfork
  62527. #define __NR_vfork __NR_fork /* uClinux-2.0 only has fork which is vfork */
  62528. @@ -12,7 +12,6 @@
  62529. #endif
  62530. .text
  62531. .align 2
  62532. - .globl _errno
  62533. .globl ___vfork
  62534. .hidden ___vfork
  62535. .type ___vfork,@function
  62536. @@ -38,4 +37,4 @@
  62537. jmp @er1 /* don't return, just jmp directly */
  62538. weak_alias(__vfork,vfork)
  62539. -libc_hidden_weak(vfork)
  62540. +libc_hidden_def(vfork)
  62541. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/add_n.s uClibc-git/libc/sysdeps/linux/hppa/add_n.s
  62542. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/add_n.s 2012-05-15 09:20:09.000000000 +0200
  62543. +++ uClibc-git/libc/sysdeps/linux/hppa/add_n.s 2014-06-02 17:40:34.442714354 +0200
  62544. @@ -16,9 +16,8 @@
  62545. ;! License for more details.
  62546. ;! You should have received a copy of the GNU Lesser General Public License
  62547. -;! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
  62548. -;! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
  62549. -;! MA 02111-1307, USA.
  62550. +;! along with the GNU MP Library; see the file COPYING.LIB. If not, see
  62551. +;! <http://www.gnu.org/licenses/>.
  62552. ;! INPUT PARAMETERS
  62553. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/atomic.h uClibc-git/libc/sysdeps/linux/hppa/bits/atomic.h
  62554. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  62555. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/atomic.h 2014-06-02 17:40:34.442714354 +0200
  62556. @@ -13,11 +13,11 @@
  62557. Lesser General Public License for more details.
  62558. You should have received a copy of the GNU Lesser General Public
  62559. - License along with the GNU C Library; if not, write to the Free
  62560. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62561. - 02111-1307 USA. */
  62562. + License along with the GNU C Library; if not, see
  62563. + <http://www.gnu.org/licenses/>. */
  62564. #include <stdint.h>
  62565. +#include <errno.h>
  62566. #include <bits/kernel-features.h>
  62567. #define ABORT_INSTRUCTION __asm__(__UCLIBC_ABORT_INSTRUCTION__)
  62568. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/eventfd.h uClibc-git/libc/sysdeps/linux/hppa/bits/eventfd.h
  62569. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/eventfd.h 1970-01-01 01:00:00.000000000 +0100
  62570. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/eventfd.h 2014-06-02 17:40:34.442714354 +0200
  62571. @@ -0,0 +1,32 @@
  62572. +/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
  62573. + This file is part of the GNU C Library.
  62574. +
  62575. + The GNU C Library is free software; you can redistribute it and/or
  62576. + modify it under the terms of the GNU Lesser General Public
  62577. + License as published by the Free Software Foundation; either
  62578. + version 2.1 of the License, or (at your option) any later version.
  62579. +
  62580. + The GNU C Library is distributed in the hope that it will be useful,
  62581. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  62582. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  62583. + Lesser General Public License for more details.
  62584. +
  62585. + You should have received a copy of the GNU Lesser General Public
  62586. + License along with the GNU C Library. If not, see
  62587. + <http://www.gnu.org/licenses/>. */
  62588. +
  62589. +#ifndef _SYS_EVENTFD_H
  62590. +# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
  62591. +#endif
  62592. +
  62593. +/* Flags for signalfd. */
  62594. +enum
  62595. + {
  62596. + EFD_SEMAPHORE = 000000001,
  62597. +#define EFD_SEMAPHORE EFD_SEMAPHORE
  62598. + EFD_CLOEXEC = 010000000,
  62599. +#define EFD_CLOEXEC EFD_CLOEXEC
  62600. +/* the below value looks suspicious, should be 000200004 for consistency */
  62601. + EFD_NONBLOCK = 00200004 /* HPUX has separate NDELAY & NONBLOCK */
  62602. +#define EFD_NONBLOCK EFD_NONBLOCK
  62603. + };
  62604. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/fcntl.h uClibc-git/libc/sysdeps/linux/hppa/bits/fcntl.h
  62605. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  62606. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/fcntl.h 2014-06-02 17:40:34.442714354 +0200
  62607. @@ -14,9 +14,8 @@
  62608. Lesser General Public License for more details.
  62609. You should have received a copy of the GNU Lesser General Public
  62610. - License along with the GNU C Library; if not, write to the Free
  62611. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62612. - 02111-1307 USA. */
  62613. + License along with the GNU C Library; if not, see
  62614. + <http://www.gnu.org/licenses/>. */
  62615. #ifndef _FCNTL_H
  62616. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  62617. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/fenv.h uClibc-git/libc/sysdeps/linux/hppa/bits/fenv.h
  62618. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  62619. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/fenv.h 2014-06-02 17:40:34.442714354 +0200
  62620. @@ -13,9 +13,8 @@
  62621. Lesser General Public License for more details.
  62622. You should have received a copy of the GNU Lesser General Public
  62623. - License along with the GNU C Library; if not, write to the Free
  62624. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62625. - 02111-1307 USA. */
  62626. + License along with the GNU C Library; if not, see
  62627. + <http://www.gnu.org/licenses/>. */
  62628. #ifndef _FENV_H
  62629. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  62630. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/ipc.h uClibc-git/libc/sysdeps/linux/hppa/bits/ipc.h
  62631. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  62632. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/ipc.h 2014-06-02 17:40:34.442714354 +0200
  62633. @@ -12,9 +12,8 @@
  62634. Lesser General Public License for more details.
  62635. You should have received a copy of the GNU Lesser General Public
  62636. - License along with the GNU C Library; if not, write to the Free
  62637. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62638. - 02111-1307 USA. */
  62639. + License along with the GNU C Library; if not, see
  62640. + <http://www.gnu.org/licenses/>. */
  62641. #ifndef _SYS_IPC_H
  62642. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  62643. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h uClibc-git/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h
  62644. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h 2012-05-15 09:20:09.000000000 +0200
  62645. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/kernel_sigaction.h 2014-06-02 17:40:34.442714354 +0200
  62646. @@ -12,12 +12,4 @@
  62647. unsigned long sa_flags;
  62648. };
  62649. -/* In uclibc, userspace struct sigaction is identical to
  62650. - * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
  62651. - * See sigaction.h
  62652. - */
  62653. -
  62654. -extern int __syscall_rt_sigaction (int, const struct sigaction *,
  62655. - struct sigaction *, size_t) attribute_hidden;
  62656. -
  62657. #endif
  62658. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/hppa/bits/kernel_types.h
  62659. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  62660. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/kernel_types.h 2014-06-02 17:40:34.442714354 +0200
  62661. @@ -45,6 +45,8 @@
  62662. typedef unsigned long long __kernel_ino64_t;
  62663. typedef unsigned int __kernel_old_dev_t;
  62664. +typedef long __kernel_long_t;
  62665. +typedef unsigned long __kernel_ulong_t;
  62666. typedef struct {
  62667. #ifdef __USE_ALL
  62668. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/mman.h uClibc-git/libc/sysdeps/linux/hppa/bits/mman.h
  62669. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
  62670. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/mman.h 2014-06-02 17:40:34.442714354 +0200
  62671. @@ -13,9 +13,8 @@
  62672. Lesser General Public License for more details.
  62673. You should have received a copy of the GNU Lesser General Public
  62674. - License along with the GNU C Library; if not, write to the Free
  62675. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62676. - 02111-1307 USA. */
  62677. + License along with the GNU C Library; if not, see
  62678. + <http://www.gnu.org/licenses/>. */
  62679. #ifndef _SYS_MMAN_H
  62680. # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
  62681. @@ -45,7 +44,7 @@
  62682. #define MAP_GROWSDOWN 0x8000 /* stack-like segment */
  62683. #define MAP_POPULATE 0x10000 /* populate (prefault) pagetables */
  62684. #define MAP_NONBLOCK 0x20000 /* do not block on IO */
  62685. -#define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
  62686. +#define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
  62687. be uninitialized. */
  62688. #define MS_SYNC 1 /* synchronous memory sync */
  62689. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/setjmp.h uClibc-git/libc/sysdeps/linux/hppa/bits/setjmp.h
  62690. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  62691. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/setjmp.h 2014-06-02 17:40:34.442714354 +0200
  62692. @@ -1,4 +1,4 @@
  62693. -/* Copyright (C) 2000 Free Software Foundation, Inc.
  62694. +/* Copyright (C) 2000, 2005, 2006 Free Software Foundation, Inc.
  62695. This file is part of the GNU C Library.
  62696. The GNU C Library is free software; you can redistribute it and/or
  62697. @@ -12,9 +12,8 @@
  62698. Lesser General Public License for more details.
  62699. You should have received a copy of the GNU Lesser General Public
  62700. - License along with the GNU C Library; if not, write to the Free
  62701. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62702. - 02111-1307 USA. */
  62703. + License along with the GNU C Library; if not, see
  62704. + <http://www.gnu.org/licenses/>. */
  62705. /* Define the machine-dependent type `jmp_buf'. HPPA version. */
  62706. #ifndef _BITS_SETJMP_H
  62707. @@ -29,17 +28,6 @@
  62708. easier, and to ensure proper alignment. Naturally, user code should
  62709. not depend on either representation. */
  62710. -#if defined __USE_MISC || defined _ASM
  62711. -#define JB_SP (76/4)
  62712. -#endif
  62713. -
  62714. -#ifndef _ASM
  62715. typedef double __jmp_buf[21];
  62716. -#endif
  62717. -
  62718. -/* Test if longjmp to JMPBUF would unwind the frame containing a local
  62719. - variable at ADDRESS. */
  62720. -#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
  62721. - ((void *)(_address) > (void *)(((unsigned long *) _jmpbuf)[JB_SP]))
  62722. #endif /* bits/setjmp.h */
  62723. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/sigaction.h uClibc-git/libc/sysdeps/linux/hppa/bits/sigaction.h
  62724. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
  62725. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/sigaction.h 2014-06-02 17:40:34.442714354 +0200
  62726. @@ -13,9 +13,8 @@
  62727. Lesser General Public License for more details.
  62728. You should have received a copy of the GNU Lesser General Public
  62729. - License along with the GNU C Library; if not, write to the Free
  62730. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62731. - 02111-1307 USA. */
  62732. + License along with the GNU C Library; if not, see
  62733. + <http://www.gnu.org/licenses/>. */
  62734. #ifndef _SIGNAL_H
  62735. # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
  62736. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/signum.h uClibc-git/libc/sysdeps/linux/hppa/bits/signum.h
  62737. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/signum.h 2012-05-15 09:20:09.000000000 +0200
  62738. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/signum.h 2014-06-02 17:40:34.442714354 +0200
  62739. @@ -13,9 +13,8 @@
  62740. Lesser General Public License for more details.
  62741. You should have received a copy of the GNU Lesser General Public
  62742. - License along with the GNU C Library; if not, write to the Free
  62743. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62744. - 02111-1307 USA. */
  62745. + License along with the GNU C Library; if not, see
  62746. + <http://www.gnu.org/licenses/>. */
  62747. #ifdef _SIGNAL_H
  62748. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/socket_type.h uClibc-git/libc/sysdeps/linux/hppa/bits/socket_type.h
  62749. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/socket_type.h 1970-01-01 01:00:00.000000000 +0100
  62750. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/socket_type.h 2014-06-02 17:40:34.442714354 +0200
  62751. @@ -0,0 +1,54 @@
  62752. +/* Define enum __socket_type for Linux/HP-PARISC.
  62753. + Copyright (C) 2012 Free Software Foundation, Inc.
  62754. + This file is part of the GNU C Library.
  62755. +
  62756. + The GNU C Library is free software; you can redistribute it and/or
  62757. + modify it under the terms of the GNU Lesser General Public
  62758. + License as published by the Free Software Foundation; either
  62759. + version 2.1 of the License, or (at your option) any later version.
  62760. +
  62761. + The GNU C Library is distributed in the hope that it will be useful,
  62762. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  62763. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  62764. + Lesser General Public License for more details.
  62765. +
  62766. + You should have received a copy of the GNU Lesser General Public
  62767. + License along with the GNU C Library; if not, see
  62768. + <http://www.gnu.org/licenses/>. */
  62769. +
  62770. +#ifndef _SYS_SOCKET_H
  62771. +# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
  62772. +#endif
  62773. +
  62774. +/* Types of sockets. */
  62775. +enum __socket_type
  62776. +{
  62777. + SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
  62778. + byte streams. */
  62779. +#define SOCK_STREAM SOCK_STREAM
  62780. + SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
  62781. + of fixed maximum length. */
  62782. +#define SOCK_DGRAM SOCK_DGRAM
  62783. + SOCK_RAW = 3, /* Raw protocol interface. */
  62784. +#define SOCK_RAW SOCK_RAW
  62785. + SOCK_RDM = 4, /* Reliably-delivered messages. */
  62786. +#define SOCK_RDM SOCK_RDM
  62787. + SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
  62788. + datagrams of fixed maximum length. */
  62789. +#define SOCK_SEQPACKET SOCK_SEQPACKET
  62790. + SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */
  62791. +#define SOCK_DCCP SOCK_DCCP
  62792. + SOCK_PACKET = 10, /* Linux specific way of getting packets
  62793. + at the dev level. For writing rarp and
  62794. + other similar things on the user level. */
  62795. +#define SOCK_PACKET SOCK_PACKET
  62796. +
  62797. + /* Flags to be ORed into the type parameter of socket and socketpair. */
  62798. +
  62799. + SOCK_CLOEXEC = 010000000, /* Atomically set close-on-exec flag for the
  62800. + new descriptor(s). */
  62801. +#define SOCK_CLOEXEC SOCK_CLOEXEC
  62802. + SOCK_NONBLOCK = 0x40000000 /* Atomically mark descriptor(s) as
  62803. + non-blocking. */
  62804. +#define SOCK_NONBLOCK SOCK_NONBLOCK
  62805. +};
  62806. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/hppa/bits/stackinfo.h
  62807. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  62808. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/stackinfo.h 2014-06-02 17:40:34.442714354 +0200
  62809. @@ -12,9 +12,8 @@
  62810. Lesser General Public License for more details.
  62811. You should have received a copy of the GNU Lesser General Public
  62812. - License along with the GNU C Library; if not, write to the Free
  62813. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62814. - 02111-1307 USA. */
  62815. + License along with the GNU C Library; if not, see
  62816. + <http://www.gnu.org/licenses/>. */
  62817. /* This file contains a bit of information about the stack allocation
  62818. of the processor. */
  62819. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/hppa/bits/uClibc_arch_features.h
  62820. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  62821. +++ uClibc-git/libc/sysdeps/linux/hppa/bits/uClibc_arch_features.h 2014-06-02 17:40:34.442714354 +0200
  62822. @@ -9,10 +9,10 @@
  62823. #define __UCLIBC_ABORT_INSTRUCTION__ "iitlbp %r0,(%sr0,%r0)"
  62824. /* can your target use syscall6() for mmap ? */
  62825. -#undef __UCLIBC_MMAP_HAS_6_ARGS__
  62826. +#define __UCLIBC_MMAP_HAS_6_ARGS__
  62827. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  62828. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  62829. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  62830. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  62831. /* does your target have a broken create_module() ? */
  62832. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  62833. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/brk.c uClibc-git/libc/sysdeps/linux/hppa/brk.c
  62834. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/brk.c 2012-05-15 09:20:09.000000000 +0200
  62835. +++ uClibc-git/libc/sysdeps/linux/hppa/brk.c 2014-06-02 17:40:34.442714354 +0200
  62836. @@ -13,9 +13,8 @@
  62837. Lesser General Public License for more details.
  62838. You should have received a copy of the GNU Lesser General Public
  62839. - License along with the GNU C Library; if not, write to the Free
  62840. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62841. - 02111-1307 USA. */
  62842. + License along with the GNU C Library; if not, see
  62843. + <http://www.gnu.org/licenses/>. */
  62844. #include <errno.h>
  62845. #include <sys/syscall.h>
  62846. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/hppa/bsd-setjmp.S
  62847. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  62848. +++ uClibc-git/libc/sysdeps/linux/hppa/bsd-setjmp.S 2014-06-02 17:40:34.446714376 +0200
  62849. @@ -13,9 +13,8 @@
  62850. Lesser General Public License for more details.
  62851. You should have received a copy of the GNU Lesser General Public
  62852. - License along with the GNU C Library; if not, write to the Free
  62853. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62854. - 02111-1307 USA. */
  62855. + License along with the GNU C Library; if not, see
  62856. + <http://www.gnu.org/licenses/>. */
  62857. /* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
  62858. We cannot do it in C because it must be a tail-call, so frame-unwinding
  62859. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/hppa/bsd-_setjmp.S
  62860. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  62861. +++ uClibc-git/libc/sysdeps/linux/hppa/bsd-_setjmp.S 2014-06-02 17:40:34.446714376 +0200
  62862. @@ -13,9 +13,8 @@
  62863. Lesser General Public License for more details.
  62864. You should have received a copy of the GNU Lesser General Public
  62865. - License along with the GNU C Library; if not, write to the Free
  62866. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62867. - 02111-1307 USA. */
  62868. + License along with the GNU C Library; if not, see
  62869. + <http://www.gnu.org/licenses/>. */
  62870. /* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
  62871. We cannot do it in C because it must be a tail-call, so frame-unwinding
  62872. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/clone.S uClibc-git/libc/sysdeps/linux/hppa/clone.S
  62873. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/clone.S 2012-05-15 09:20:09.000000000 +0200
  62874. +++ uClibc-git/libc/sysdeps/linux/hppa/clone.S 2014-06-02 17:40:34.446714376 +0200
  62875. @@ -14,9 +14,8 @@
  62876. Lesser General Public License for more details.
  62877. You should have received a copy of the GNU Lesser General Public
  62878. - License along with the GNU C Library; if not, write to the Free
  62879. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62880. - 02111-1307 USA. */
  62881. + License along with the GNU C Library; if not, see
  62882. + <http://www.gnu.org/licenses/>. */
  62883. /* clone() is even more special than fork() as it mucks with stacks
  62884. and invokes a function in the right context after its all over. */
  62885. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/crt1.S uClibc-git/libc/sysdeps/linux/hppa/crt1.S
  62886. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/crt1.S 2012-05-15 09:20:09.000000000 +0200
  62887. +++ uClibc-git/libc/sysdeps/linux/hppa/crt1.S 2014-06-02 17:40:34.446714376 +0200
  62888. @@ -30,9 +30,8 @@
  62889. Lesser General Public License for more details.
  62890. You should have received a copy of the GNU Lesser General Public
  62891. - License along with the GNU C Library; if not, write to the Free
  62892. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62893. - 02111-1307 USA. */
  62894. + License along with the GNU C Library; if not, see
  62895. + <http://www.gnu.org/licenses/>. */
  62896. .import main, code
  62897. .import $global$, data
  62898. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/hppa/jmpbuf-offsets.h
  62899. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  62900. +++ uClibc-git/libc/sysdeps/linux/hppa/jmpbuf-offsets.h 2014-06-02 17:40:34.446714376 +0200
  62901. @@ -0,0 +1,19 @@
  62902. +/* Private macros for accessing __jmp_buf contents. HPPA version.
  62903. + Copyright (C) 2006 Free Software Foundation, Inc.
  62904. + This file is part of the GNU C Library.
  62905. +
  62906. + The GNU C Library is free software; you can redistribute it and/or
  62907. + modify it under the terms of the GNU Lesser General Public
  62908. + License as published by the Free Software Foundation; either
  62909. + version 2.1 of the License, or (at your option) any later version.
  62910. +
  62911. + The GNU C Library is distributed in the hope that it will be useful,
  62912. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  62913. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  62914. + Lesser General Public License for more details.
  62915. +
  62916. + You should have received a copy of the GNU Lesser General Public
  62917. + License along with the GNU C Library; if not, see
  62918. + <http://www.gnu.org/licenses/>. */
  62919. +
  62920. +#define JB_SP (76/4)
  62921. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/hppa/jmpbuf-unwind.h
  62922. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  62923. +++ uClibc-git/libc/sysdeps/linux/hppa/jmpbuf-unwind.h 2014-06-02 17:40:34.446714376 +0200
  62924. @@ -0,0 +1,12 @@
  62925. +/*
  62926. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  62927. + *
  62928. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  62929. + */
  62930. +#include <setjmp.h>
  62931. +#include <jmpbuf-offsets.h>
  62932. +
  62933. +/* Test if longjmp to JMPBUF would unwind the frame containing a local
  62934. + variable at ADDRESS. */
  62935. +#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
  62936. + ((void *)(_address) > (void *)(((unsigned long *) _jmpbuf)[JB_SP]))
  62937. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/__longjmp.S uClibc-git/libc/sysdeps/linux/hppa/__longjmp.S
  62938. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  62939. +++ uClibc-git/libc/sysdeps/linux/hppa/__longjmp.S 2014-06-02 17:40:34.442714354 +0200
  62940. @@ -13,14 +13,8 @@
  62941. Lesser General Public License for more details.
  62942. You should have received a copy of the GNU Lesser General Public
  62943. - License along with the GNU C Library; if not, write to the Free
  62944. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  62945. - 02111-1307 USA. */
  62946. -
  62947. -#include <features.h>
  62948. -#define _SETJMP_H
  62949. -#define _ASM
  62950. -#include <bits/setjmp.h>
  62951. + License along with the GNU C Library; if not, see
  62952. + <http://www.gnu.org/licenses/>. */
  62953. /* __longjmp(jmpbuf, val) */
  62954. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/lshift.s uClibc-git/libc/sysdeps/linux/hppa/lshift.s
  62955. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/lshift.s 2012-05-15 09:20:09.000000000 +0200
  62956. +++ uClibc-git/libc/sysdeps/linux/hppa/lshift.s 2014-06-02 17:40:34.446714376 +0200
  62957. @@ -15,9 +15,8 @@
  62958. ;! License for more details.
  62959. ;! You should have received a copy of the GNU Lesser General Public License
  62960. -;! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
  62961. -;! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
  62962. -;! MA 02111-1307, USA.
  62963. +;! along with the GNU MP Library; see the file COPYING.LIB. If not, see
  62964. +;! <http://www.gnu.org/licenses/>.
  62965. ;! INPUT PARAMETERS
  62966. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/Makefile.arch uClibc-git/libc/sysdeps/linux/hppa/Makefile.arch
  62967. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  62968. +++ uClibc-git/libc/sysdeps/linux/hppa/Makefile.arch 2014-06-02 17:40:34.442714354 +0200
  62969. @@ -5,7 +5,7 @@
  62970. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  62971. #
  62972. -CSRC := __syscall_error.c brk.c mmap.c syscall.c
  62973. +CSRC-y := __syscall_error.c brk.c syscall.c
  62974. -SSRC := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S \
  62975. +SSRC-y := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S \
  62976. add_n.s lshift.s rshift.s sub_n.s udiv_qrnnd.s
  62977. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/mmap.c uClibc-git/libc/sysdeps/linux/hppa/mmap.c
  62978. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/mmap.c 2012-05-15 09:20:09.000000000 +0200
  62979. +++ uClibc-git/libc/sysdeps/linux/hppa/mmap.c 1970-01-01 01:00:00.000000000 +0100
  62980. @@ -1,19 +0,0 @@
  62981. -/* vi: set sw=4 ts=4: */
  62982. -/*
  62983. - * mmap() for uClibc/x86_64
  62984. - *
  62985. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  62986. - * Copyright (C) 2005 by Mike Frysinger <vapier@gentoo.org>
  62987. - *
  62988. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  62989. - */
  62990. -
  62991. -#include <errno.h>
  62992. -#include <unistd.h>
  62993. -#include <sys/mman.h>
  62994. -#include <sys/syscall.h>
  62995. -
  62996. -
  62997. -_syscall6(void *, mmap, void *, start, size_t, length, int, prot,
  62998. - int, flags, int, fd, off_t, offset)
  62999. -libc_hidden_def(mmap)
  63000. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/rshift.s uClibc-git/libc/sysdeps/linux/hppa/rshift.s
  63001. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/rshift.s 2012-05-15 09:20:09.000000000 +0200
  63002. +++ uClibc-git/libc/sysdeps/linux/hppa/rshift.s 2014-06-02 17:40:34.446714376 +0200
  63003. @@ -15,9 +15,8 @@
  63004. ;! License for more details.
  63005. ;! You should have received a copy of the GNU Lesser General Public License
  63006. -;! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
  63007. -;! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
  63008. -;! MA 02111-1307, USA.
  63009. +;! along with the GNU MP Library; see the file COPYING.LIB. If not, see
  63010. +;! <http://www.gnu.org/licenses/>.
  63011. ;! INPUT PARAMETERS
  63012. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/setjmp.S uClibc-git/libc/sysdeps/linux/hppa/setjmp.S
  63013. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  63014. +++ uClibc-git/libc/sysdeps/linux/hppa/setjmp.S 2014-06-02 17:40:34.446714376 +0200
  63015. @@ -13,9 +13,8 @@
  63016. Lesser General Public License for more details.
  63017. You should have received a copy of the GNU Lesser General Public
  63018. - License along with the GNU C Library; if not, write to the Free
  63019. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63020. - 02111-1307 USA. */
  63021. + License along with the GNU C Library; if not, see
  63022. + <http://www.gnu.org/licenses/>. */
  63023. .text
  63024. .align 4
  63025. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sub_n.s uClibc-git/libc/sysdeps/linux/hppa/sub_n.s
  63026. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sub_n.s 2012-05-15 09:20:09.000000000 +0200
  63027. +++ uClibc-git/libc/sysdeps/linux/hppa/sub_n.s 2014-06-02 17:40:34.446714376 +0200
  63028. @@ -16,9 +16,8 @@
  63029. ;! License for more details.
  63030. ;! You should have received a copy of the GNU Lesser General Public License
  63031. -;! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
  63032. -;! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
  63033. -;! MA 02111-1307, USA.
  63034. +;! along with the GNU MP Library; see the file COPYING.LIB. If not, see
  63035. +;! <http://www.gnu.org/licenses/>.
  63036. ;! INPUT PARAMETERS
  63037. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sys/procfs.h uClibc-git/libc/sysdeps/linux/hppa/sys/procfs.h
  63038. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  63039. +++ uClibc-git/libc/sysdeps/linux/hppa/sys/procfs.h 2014-06-02 17:40:34.446714376 +0200
  63040. @@ -12,9 +12,8 @@
  63041. Lesser General Public License for more details.
  63042. You should have received a copy of the GNU Lesser General Public
  63043. - License along with the GNU C Library; if not, write to the Free
  63044. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63045. - 02111-1307 USA. */
  63046. + License along with the GNU C Library; if not, see
  63047. + <http://www.gnu.org/licenses/>. */
  63048. #ifndef _SYS_PROCFS_H
  63049. #define _SYS_PROCFS_H 1
  63050. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sys/ucontext.h uClibc-git/libc/sysdeps/linux/hppa/sys/ucontext.h
  63051. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  63052. +++ uClibc-git/libc/sysdeps/linux/hppa/sys/ucontext.h 2014-06-02 17:40:34.446714376 +0200
  63053. @@ -12,9 +12,8 @@
  63054. Lesser General Public License for more details.
  63055. You should have received a copy of the GNU Lesser General Public
  63056. - License along with the GNU C Library; if not, write to the Free
  63057. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63058. - 02111-1307 USA. */
  63059. + License along with the GNU C Library; if not, see
  63060. + <http://www.gnu.org/licenses/>. */
  63061. /* Don't rely on this, the interface is currently messed up and may need to
  63062. be broken to be fixed. */
  63063. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/syscall.c uClibc-git/libc/sysdeps/linux/hppa/syscall.c
  63064. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/syscall.c 2012-05-15 09:20:09.000000000 +0200
  63065. +++ uClibc-git/libc/sysdeps/linux/hppa/syscall.c 2014-06-02 17:40:34.446714376 +0200
  63066. @@ -12,9 +12,8 @@
  63067. Lesser General Public License for more details.
  63068. You should have received a copy of the GNU Lesser General Public
  63069. - License along with the GNU C Library; if not, write to the Free
  63070. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63071. - 02111-1307 USA. */
  63072. + License along with the GNU C Library; if not, see
  63073. + <http://www.gnu.org/licenses/>. */
  63074. #include <stdarg.h>
  63075. #include <errno.h>
  63076. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/hppa/udiv_qrnnd.s uClibc-git/libc/sysdeps/linux/hppa/udiv_qrnnd.s
  63077. --- uClibc-0.9.33.2/libc/sysdeps/linux/hppa/udiv_qrnnd.s 2012-05-15 09:20:09.000000000 +0200
  63078. +++ uClibc-git/libc/sysdeps/linux/hppa/udiv_qrnnd.s 2014-06-02 17:40:34.446714376 +0200
  63079. @@ -16,9 +16,8 @@
  63080. ;! License for more details.
  63081. ;! You should have received a copy of the GNU Lesser General Public License
  63082. -;! along with the GNU MP Library; see the file COPYING.LIB. If not, write to
  63083. -;! the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
  63084. -;! MA 02111-1307, USA.
  63085. +;! along with the GNU MP Library; see the file COPYING.LIB. If not, see
  63086. +;! <http://www.gnu.org/licenses/>.
  63087. ;! INPUT PARAMETERS
  63088. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/atomic.h uClibc-git/libc/sysdeps/linux/i386/bits/atomic.h
  63089. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  63090. +++ uClibc-git/libc/sysdeps/linux/i386/bits/atomic.h 2014-06-02 17:40:34.446714376 +0200
  63091. @@ -13,9 +13,8 @@
  63092. Lesser General Public License for more details.
  63093. You should have received a copy of the GNU Lesser General Public
  63094. - License along with the GNU C Library; if not, write to the Free
  63095. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63096. - 02111-1307 USA. */
  63097. + License along with the GNU C Library; if not, see
  63098. + <http://www.gnu.org/licenses/>. */
  63099. #include <stdint.h>
  63100. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/byteswap.h uClibc-git/libc/sysdeps/linux/i386/bits/byteswap.h
  63101. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
  63102. +++ uClibc-git/libc/sysdeps/linux/i386/bits/byteswap.h 2014-06-02 17:40:34.446714376 +0200
  63103. @@ -13,9 +13,8 @@
  63104. Lesser General Public License for more details.
  63105. You should have received a copy of the GNU Lesser General Public
  63106. - License along with the GNU C Library; if not, write to the Free
  63107. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63108. - 02111-1307 USA. */
  63109. + License along with the GNU C Library; if not, see
  63110. + <http://www.gnu.org/licenses/>. */
  63111. #ifndef _ASM_BITS_BYTESWAP_H
  63112. #define _ASM_BITS_BYTESWAP_H 1
  63113. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/fcntl.h uClibc-git/libc/sysdeps/linux/i386/bits/fcntl.h
  63114. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  63115. +++ uClibc-git/libc/sysdeps/linux/i386/bits/fcntl.h 2014-06-02 17:40:34.446714376 +0200
  63116. @@ -14,9 +14,8 @@
  63117. Lesser General Public License for more details.
  63118. You should have received a copy of the GNU Lesser General Public
  63119. - License along with the GNU C Library; if not, write to the Free
  63120. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63121. - 02111-1307 USA. */
  63122. + License along with the GNU C Library; if not, see
  63123. + <http://www.gnu.org/licenses/>. */
  63124. #ifndef _FCNTL_H
  63125. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  63126. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/fenv.h uClibc-git/libc/sysdeps/linux/i386/bits/fenv.h
  63127. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  63128. +++ uClibc-git/libc/sysdeps/linux/i386/bits/fenv.h 2014-06-02 17:40:34.446714376 +0200
  63129. @@ -12,9 +12,8 @@
  63130. Lesser General Public License for more details.
  63131. You should have received a copy of the GNU Lesser General Public
  63132. - License along with the GNU C Library; if not, write to the Free
  63133. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63134. - 02111-1307 USA. */
  63135. + License along with the GNU C Library; if not, see
  63136. + <http://www.gnu.org/licenses/>. */
  63137. #ifndef _FENV_H
  63138. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  63139. @@ -82,9 +81,9 @@
  63140. fenv_t;
  63141. /* If the default argument is used we use this value. */
  63142. -#define FE_DFL_ENV ((__const fenv_t *) -1)
  63143. +#define FE_DFL_ENV ((const fenv_t *) -1)
  63144. #ifdef __USE_GNU
  63145. /* Floating-point environment where none of the exception is masked. */
  63146. -# define FE_NOMASK_ENV ((__const fenv_t *) -2)
  63147. +# define FE_NOMASK_ENV ((const fenv_t *) -2)
  63148. #endif
  63149. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/huge_vall.h uClibc-git/libc/sysdeps/linux/i386/bits/huge_vall.h
  63150. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/huge_vall.h 1970-01-01 01:00:00.000000000 +0100
  63151. +++ uClibc-git/libc/sysdeps/linux/i386/bits/huge_vall.h 2014-06-02 17:40:34.446714376 +0200
  63152. @@ -0,0 +1,42 @@
  63153. +/* `HUGE_VALL' constant for ix86 (where it is infinity).
  63154. + Used by <stdlib.h> and <math.h> functions for overflow.
  63155. + Copyright (C) 1992, 1995, 1996, 1997, 1999, 2000, 2004
  63156. + Free Software Foundation, Inc.
  63157. + This file is part of the GNU C Library.
  63158. +
  63159. + The GNU C Library is free software; you can redistribute it and/or
  63160. + modify it under the terms of the GNU Lesser General Public
  63161. + License as published by the Free Software Foundation; either
  63162. + version 2.1 of the License, or (at your option) any later version.
  63163. +
  63164. + The GNU C Library is distributed in the hope that it will be useful,
  63165. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  63166. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  63167. + Lesser General Public License for more details.
  63168. +
  63169. + You should have received a copy of the GNU Lesser General Public
  63170. + License along with the GNU C Library; if not, see
  63171. + <http://www.gnu.org/licenses/>. */
  63172. +
  63173. +#ifndef _MATH_H
  63174. +# error "Never use <bits/huge_vall.h> directly; include <math.h> instead."
  63175. +#endif
  63176. +
  63177. +#if __GNUC_PREREQ(3,3)
  63178. +# define HUGE_VALL (__builtin_huge_vall())
  63179. +#elif __GNUC_PREREQ(2,96)
  63180. +# define HUGE_VALL (__extension__ 0x1.0p32767L)
  63181. +#else
  63182. +
  63183. +# define __HUGE_VALL_bytes { 0, 0, 0, 0, 0, 0, 0, 0x80, 0xff, 0x7f, 0, 0 }
  63184. +
  63185. +# define __huge_vall_t union { unsigned char __c[12]; long double __ld; }
  63186. +# ifdef __GNUC__
  63187. +# define HUGE_VALL (__extension__ \
  63188. + ((__huge_vall_t) { __c: __HUGE_VALL_bytes }).__ld)
  63189. +# else /* Not GCC. */
  63190. +static __huge_vall_t __huge_vall = { __HUGE_VALL_bytes };
  63191. +# define HUGE_VALL (__huge_vall.__ld)
  63192. +# endif /* GCC. */
  63193. +
  63194. +#endif /* GCC 2.95 */
  63195. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/i386/bits/kernel_types.h
  63196. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  63197. +++ uClibc-git/libc/sysdeps/linux/i386/bits/kernel_types.h 2014-06-02 17:40:34.446714376 +0200
  63198. @@ -40,6 +40,8 @@
  63199. typedef unsigned short __kernel_old_uid_t;
  63200. typedef unsigned short __kernel_old_gid_t;
  63201. typedef __kernel_dev_t __kernel_old_dev_t;
  63202. +typedef long __kernel_long_t;
  63203. +typedef unsigned long __kernel_ulong_t;
  63204. typedef long long __kernel_loff_t;
  63205. typedef struct {
  63206. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/mathdef.h uClibc-git/libc/sysdeps/linux/i386/bits/mathdef.h
  63207. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  63208. +++ uClibc-git/libc/sysdeps/linux/i386/bits/mathdef.h 2014-06-02 17:40:34.446714376 +0200
  63209. @@ -12,9 +12,8 @@
  63210. Lesser General Public License for more details.
  63211. You should have received a copy of the GNU Lesser General Public
  63212. - License along with the GNU C Library; if not, write to the Free
  63213. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63214. - 02111-1307 USA. */
  63215. + License along with the GNU C Library; if not, see
  63216. + <http://www.gnu.org/licenses/>. */
  63217. #if !defined _MATH_H && !defined _COMPLEX_H
  63218. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  63219. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/mathinline.h uClibc-git/libc/sysdeps/linux/i386/bits/mathinline.h
  63220. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
  63221. +++ uClibc-git/libc/sysdeps/linux/i386/bits/mathinline.h 2014-06-02 17:40:34.450714398 +0200
  63222. @@ -15,9 +15,8 @@
  63223. Lesser General Public License for more details.
  63224. You should have received a copy of the GNU Lesser General Public
  63225. - License along with the GNU C Library; if not, write to the Free
  63226. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63227. - 02111-1307 USA. */
  63228. + License along with the GNU C Library; if not, see
  63229. + <http://www.gnu.org/licenses/>. */
  63230. #ifndef _MATH_H
  63231. # error "Never use <bits/mathinline.h> directly; include <math.h> instead."
  63232. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/select.h uClibc-git/libc/sysdeps/linux/i386/bits/select.h
  63233. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/select.h 2012-05-15 09:20:09.000000000 +0200
  63234. +++ uClibc-git/libc/sysdeps/linux/i386/bits/select.h 2014-06-02 17:40:34.450714398 +0200
  63235. @@ -12,9 +12,8 @@
  63236. Lesser General Public License for more details.
  63237. You should have received a copy of the GNU Lesser General Public
  63238. - License along with the GNU C Library; if not, write to the Free
  63239. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63240. - 02111-1307 USA. */
  63241. + License along with the GNU C Library; if not, see
  63242. + <http://www.gnu.org/licenses/>. */
  63243. #ifndef _SYS_SELECT_H
  63244. # error "Never use <bits/select.h> directly; include <sys/select.h> instead."
  63245. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/setjmp.h uClibc-git/libc/sysdeps/linux/i386/bits/setjmp.h
  63246. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  63247. +++ uClibc-git/libc/sysdeps/linux/i386/bits/setjmp.h 2014-06-02 17:40:34.450714398 +0200
  63248. @@ -1,4 +1,5 @@
  63249. -/* Copyright (C) 1997, 1998, 2000, 2001, 2003 Free Software Foundation, Inc.
  63250. +/* Copyright (C) 1997,1998,2000,2001,2003,2005,2006
  63251. + Free Software Foundation, Inc.
  63252. This file is part of the GNU C Library.
  63253. The GNU C Library is free software; you can redistribute it and/or
  63254. @@ -12,9 +13,8 @@
  63255. Lesser General Public License for more details.
  63256. You should have received a copy of the GNU Lesser General Public
  63257. - License along with the GNU C Library; if not, write to the Free
  63258. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63259. - 02111-1307 USA. */
  63260. + License along with the GNU C Library; if not, see
  63261. + <http://www.gnu.org/licenses/>. */
  63262. /* Define the machine-dependent type `jmp_buf'. Intel 386 version. */
  63263. #ifndef _BITS_SETJMP_H
  63264. @@ -24,23 +24,6 @@
  63265. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  63266. #endif
  63267. -#if defined __USE_MISC || defined _ASM
  63268. -# define JB_BX 0
  63269. -# define JB_SI 1
  63270. -# define JB_DI 2
  63271. -# define JB_BP 3
  63272. -# define JB_SP 4
  63273. -# define JB_PC 5
  63274. -# define JB_SIZE 24
  63275. -#endif
  63276. -
  63277. -#ifndef _ASM
  63278. typedef int __jmp_buf[6];
  63279. -#endif
  63280. -
  63281. -/* Test if longjmp to JMPBUF would unwind the frame
  63282. - containing a local variable at ADDRESS. */
  63283. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  63284. - ((void *) (address) < (void *) (jmpbuf)[JB_SP])
  63285. #endif /* bits/setjmp.h */
  63286. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/i386/bits/sigcontextinfo.h
  63287. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  63288. +++ uClibc-git/libc/sysdeps/linux/i386/bits/sigcontextinfo.h 2014-06-02 17:40:34.450714398 +0200
  63289. @@ -13,9 +13,8 @@
  63290. Lesser General Public License for more details.
  63291. You should have received a copy of the GNU Lesser General Public
  63292. - License along with the GNU C Library; if not, write to the Free
  63293. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63294. - 02111-1307 USA. */
  63295. + License along with the GNU C Library; if not, see
  63296. + <http://www.gnu.org/licenses/>. */
  63297. #define SIGCONTEXT struct sigcontext
  63298. #define SIGCONTEXT_EXTRA_ARGS
  63299. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/i386/bits/stackinfo.h
  63300. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  63301. +++ uClibc-git/libc/sysdeps/linux/i386/bits/stackinfo.h 2014-06-02 17:40:34.450714398 +0200
  63302. @@ -12,9 +12,8 @@
  63303. Lesser General Public License for more details.
  63304. You should have received a copy of the GNU Lesser General Public
  63305. - License along with the GNU C Library; if not, write to the Free
  63306. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63307. - 02111-1307 USA. */
  63308. + License along with the GNU C Library; if not, see
  63309. + <http://www.gnu.org/licenses/>. */
  63310. /* This file contains a bit of information about the stack allocation
  63311. of the processor. */
  63312. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/syscalls.h uClibc-git/libc/sysdeps/linux/i386/bits/syscalls.h
  63313. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
  63314. +++ uClibc-git/libc/sysdeps/linux/i386/bits/syscalls.h 2014-06-02 17:40:34.450714398 +0200
  63315. @@ -136,7 +136,7 @@
  63316. #define ASMFMT_5(arg1, arg2, arg3, arg4, arg5) \
  63317. , "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5)
  63318. #define ASMFMT_6(arg1, arg2, arg3, arg4, arg5, arg6) \
  63319. - , "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5), "m" (arg6)
  63320. + , "a" (arg1), "c" (arg2), "d" (arg3), "S" (arg4), "D" (arg5), "g" (arg6)
  63321. #else /* !PIC */
  63322. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h
  63323. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  63324. +++ uClibc-git/libc/sysdeps/linux/i386/bits/uClibc_arch_features.h 2014-06-02 17:40:34.450714398 +0200
  63325. @@ -11,8 +11,8 @@
  63326. /* can your target use syscall6() for mmap ? */
  63327. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  63328. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  63329. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  63330. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  63331. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  63332. /* does your target have a broken create_module() ? */
  63333. #define __UCLIBC_BROKEN_CREATE_MODULE__
  63334. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/wchar.h uClibc-git/libc/sysdeps/linux/i386/bits/wchar.h
  63335. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/wchar.h 2012-05-15 09:20:09.000000000 +0200
  63336. +++ uClibc-git/libc/sysdeps/linux/i386/bits/wchar.h 2014-06-02 17:40:34.450714398 +0200
  63337. @@ -13,9 +13,8 @@
  63338. Lesser General Public License for more details.
  63339. You should have received a copy of the GNU Lesser General Public
  63340. - License along with the GNU C Library; if not, write to the Free
  63341. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63342. - 02111-1307 USA. */
  63343. + License along with the GNU C Library; if not, see
  63344. + <http://www.gnu.org/licenses/>. */
  63345. #ifndef _BITS_WCHAR_H
  63346. #define _BITS_WCHAR_H 1
  63347. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/wordsize.h uClibc-git/libc/sysdeps/linux/i386/bits/wordsize.h
  63348. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  63349. +++ uClibc-git/libc/sysdeps/linux/i386/bits/wordsize.h 2014-06-02 17:40:34.474714531 +0200
  63350. @@ -12,9 +12,8 @@
  63351. Lesser General Public License for more details.
  63352. You should have received a copy of the GNU Lesser General Public
  63353. - License along with the GNU C Library; if not, write to the Free
  63354. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63355. - 02111-1307 USA. */
  63356. + License along with the GNU C Library; if not, see
  63357. + <http://www.gnu.org/licenses/>. */
  63358. #define __WORDSIZE 32
  63359. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/brk.c uClibc-git/libc/sysdeps/linux/i386/brk.c
  63360. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/brk.c 2012-05-15 09:20:09.000000000 +0200
  63361. +++ uClibc-git/libc/sysdeps/linux/i386/brk.c 2014-06-02 17:40:34.474714531 +0200
  63362. @@ -13,9 +13,8 @@
  63363. Lesser General Public License for more details.
  63364. You should have received a copy of the GNU Lesser General Public
  63365. - License along with the GNU C Library; if not, write to the Free
  63366. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63367. - 02111-1307 USA. */
  63368. + License along with the GNU C Library; if not, see
  63369. + <http://www.gnu.org/licenses/>. */
  63370. #include <errno.h>
  63371. #include <unistd.h>
  63372. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/i386/bsd-setjmp.S
  63373. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  63374. +++ uClibc-git/libc/sysdeps/linux/i386/bsd-setjmp.S 2014-06-02 17:40:34.498714663 +0200
  63375. @@ -13,13 +13,8 @@
  63376. Lesser General Public License for more details.
  63377. You should have received a copy of the GNU Lesser General Public
  63378. - License along with the GNU C Library; if not, write to the Free
  63379. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63380. - 02111-1307 USA. */
  63381. -
  63382. -#define _ASM
  63383. -#define _SETJMP_H
  63384. -#include <bits/setjmp.h>
  63385. + License along with the GNU C Library; if not, see
  63386. + <http://www.gnu.org/licenses/>. */
  63387. .global setjmp
  63388. .type setjmp,%function
  63389. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/i386/bsd-_setjmp.S
  63390. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  63391. +++ uClibc-git/libc/sysdeps/linux/i386/bsd-_setjmp.S 2014-06-02 17:40:34.494714642 +0200
  63392. @@ -13,17 +13,14 @@
  63393. Lesser General Public License for more details.
  63394. You should have received a copy of the GNU Lesser General Public
  63395. - License along with the GNU C Library; if not, write to the Free
  63396. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63397. - 02111-1307 USA. */
  63398. + License along with the GNU C Library; if not, see
  63399. + <http://www.gnu.org/licenses/>. */
  63400. /* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
  63401. We cannot do it in C because it must be a tail-call, so frame-unwinding
  63402. in setjmp doesn't clobber the state restored by longjmp. */
  63403. -#define _ASM
  63404. -#define _SETJMP_H
  63405. -#include <bits/setjmp.h>
  63406. +#include <jmpbuf-offsets.h>
  63407. .global _setjmp
  63408. .type _setjmp,%function
  63409. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/clone.S uClibc-git/libc/sysdeps/linux/i386/clone.S
  63410. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/clone.S 2012-05-15 09:20:09.000000000 +0200
  63411. +++ uClibc-git/libc/sysdeps/linux/i386/clone.S 2014-06-02 17:40:34.498714663 +0200
  63412. @@ -13,9 +13,8 @@
  63413. Lesser General Public License for more details.
  63414. You should have received a copy of the GNU Lesser General Public
  63415. - License along with the GNU C Library; if not, write to the Free
  63416. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63417. - 02111-1307 USA. */
  63418. + License along with the GNU C Library; if not, see
  63419. + <http://www.gnu.org/licenses/>. */
  63420. /* clone() is even more special than fork() as it mucks with stacks
  63421. and invokes a function in the right context after its all over.
  63422. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/crt1.S uClibc-git/libc/sysdeps/linux/i386/crt1.S
  63423. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/crt1.S 2012-05-15 09:20:09.000000000 +0200
  63424. +++ uClibc-git/libc/sysdeps/linux/i386/crt1.S 2014-06-02 17:40:34.498714663 +0200
  63425. @@ -31,9 +31,8 @@
  63426. Lesser General Public License for more details.
  63427. You should have received a copy of the GNU Lesser General Public
  63428. - License along with the GNU C Library; if not, write to the Free
  63429. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63430. - 02111-1307 USA. */
  63431. + License along with the GNU C Library; if not, see
  63432. + <http://www.gnu.org/licenses/>. */
  63433. /* This is the canonical entry point, usually the first thing in the text
  63434. segment. The SVR4/i386 ABI (pages 3-31, 3-32) says that when the entry
  63435. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/fpu_control.h uClibc-git/libc/sysdeps/linux/i386/fpu_control.h
  63436. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  63437. +++ uClibc-git/libc/sysdeps/linux/i386/fpu_control.h 2014-06-02 17:40:34.498714663 +0200
  63438. @@ -14,9 +14,8 @@
  63439. Lesser General Public License for more details.
  63440. You should have received a copy of the GNU Lesser General Public
  63441. - License along with the GNU C Library; if not, write to the Free
  63442. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63443. - 02111-1307 USA. */
  63444. + License along with the GNU C Library; if not, see
  63445. + <http://www.gnu.org/licenses/>. */
  63446. #ifndef _FPU_CONTROL_H
  63447. #define _FPU_CONTROL_H 1
  63448. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/getcontext.S uClibc-git/libc/sysdeps/linux/i386/getcontext.S
  63449. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/getcontext.S 1970-01-01 01:00:00.000000000 +0100
  63450. +++ uClibc-git/libc/sysdeps/linux/i386/getcontext.S 2014-06-02 17:40:34.498714663 +0200
  63451. @@ -0,0 +1,84 @@
  63452. +/* Save current context.
  63453. + Copyright (C) 2001-2012 Free Software Foundation, Inc.
  63454. + This file is part of the GNU C Library.
  63455. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
  63456. +
  63457. + The GNU C Library is free software; you can redistribute it and/or
  63458. + modify it under the terms of the GNU Lesser General Public
  63459. + License as published by the Free Software Foundation; either
  63460. + version 2.1 of the License, or (at your option) any later version.
  63461. +
  63462. + The GNU C Library is distributed in the hope that it will be useful,
  63463. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  63464. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  63465. + Lesser General Public License for more details.
  63466. +
  63467. + You should have received a copy of the GNU Lesser General Public
  63468. + License along with the GNU C Library; if not, see
  63469. + <http://www.gnu.org/licenses/>. */
  63470. +
  63471. +#include <sysdep.h>
  63472. +
  63473. +#include "ucontext_i.h"
  63474. +
  63475. +
  63476. +ENTRY(__getcontext)
  63477. + /* Load address of the context data structure. */
  63478. + movl 4(%esp), %eax
  63479. +
  63480. + /* Return value of getcontext. EAX is the only register whose
  63481. + value is not preserved. */
  63482. + movl $0, oEAX(%eax)
  63483. +
  63484. + /* Save the 32-bit register values and the return address. */
  63485. + movl %ecx, oECX(%eax)
  63486. + movl %edx, oEDX(%eax)
  63487. + movl %edi, oEDI(%eax)
  63488. + movl %esi, oESI(%eax)
  63489. + movl %ebp, oEBP(%eax)
  63490. + movl (%esp), %ecx
  63491. + movl %ecx, oEIP(%eax)
  63492. + leal 4(%esp), %ecx /* Exclude the return address. */
  63493. + movl %ecx, oESP(%eax)
  63494. + movl %ebx, oEBX(%eax)
  63495. +
  63496. + /* Save the FS segment register. We don't touch the GS register
  63497. + since it is used for threads. */
  63498. + xorl %edx, %edx
  63499. + movw %fs, %dx
  63500. + movl %edx, oFS(%eax)
  63501. +
  63502. + /* We have separate floating-point register content memory on the
  63503. + stack. We use the __fpregs_mem block in the context. Set the
  63504. + links up correctly. */
  63505. + leal oFPREGSMEM(%eax), %ecx
  63506. + movl %ecx, oFPREGS(%eax)
  63507. + /* Save the floating-point context. */
  63508. + fnstenv (%ecx)
  63509. + /* And load it right back since the processor changes the mask.
  63510. + Intel thought this opcode to be used in interrupt handlers which
  63511. + would block all exceptions. */
  63512. + fldenv (%ecx)
  63513. +
  63514. + /* Save the current signal mask. */
  63515. + pushl %ebx
  63516. + cfi_adjust_cfa_offset (4)
  63517. + cfi_rel_offset (ebx, 0)
  63518. + leal oSIGMASK(%eax), %edx
  63519. + xorl %ecx, %ecx
  63520. + movl $SIG_BLOCK, %ebx
  63521. + movl $__NR_sigprocmask, %eax
  63522. + ENTER_KERNEL
  63523. + popl %ebx
  63524. + cfi_adjust_cfa_offset (-4)
  63525. + cfi_restore (ebx)
  63526. + cmpl $-4095, %eax /* Check %eax for error. */
  63527. + jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
  63528. +
  63529. + /* All done, return 0 for success. */
  63530. + xorl %eax, %eax
  63531. +L(pseudo_end):
  63532. + ret
  63533. +PSEUDO_END(__getcontext)
  63534. +
  63535. +weak_alias (__getcontext, getcontext)
  63536. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/i386/jmpbuf-offsets.h
  63537. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  63538. +++ uClibc-git/libc/sysdeps/linux/i386/jmpbuf-offsets.h 2014-06-02 17:40:34.498714663 +0200
  63539. @@ -0,0 +1,25 @@
  63540. +/* Private macros for accessing __jmp_buf contents. i386 version.
  63541. + Copyright (C) 2006 Free Software Foundation, Inc.
  63542. + This file is part of the GNU C Library.
  63543. +
  63544. + The GNU C Library is free software; you can redistribute it and/or
  63545. + modify it under the terms of the GNU Lesser General Public
  63546. + License as published by the Free Software Foundation; either
  63547. + version 2.1 of the License, or (at your option) any later version.
  63548. +
  63549. + The GNU C Library is distributed in the hope that it will be useful,
  63550. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  63551. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  63552. + Lesser General Public License for more details.
  63553. +
  63554. + You should have received a copy of the GNU Lesser General Public
  63555. + License along with the GNU C Library; if not, see
  63556. + <http://www.gnu.org/licenses/>. */
  63557. +
  63558. +#define JB_BX 0
  63559. +#define JB_SI 1
  63560. +#define JB_DI 2
  63561. +#define JB_BP 3
  63562. +#define JB_SP 4
  63563. +#define JB_PC 5
  63564. +#define JB_SIZE 24
  63565. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/i386/jmpbuf-unwind.h
  63566. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  63567. +++ uClibc-git/libc/sysdeps/linux/i386/jmpbuf-unwind.h 2014-06-02 17:40:34.498714663 +0200
  63568. @@ -0,0 +1,23 @@
  63569. +/*
  63570. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  63571. + *
  63572. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  63573. + */
  63574. +#include <setjmp.h>
  63575. +#include <jmpbuf-offsets.h>
  63576. +
  63577. +/* Test if longjmp to JMPBUF would unwind the frame
  63578. + containing a local variable at ADDRESS. */
  63579. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  63580. + ((void *) (address) < (void *) (jmpbuf)[JB_SP])
  63581. +
  63582. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  63583. +#include <stdint.h>
  63584. +#include <unwind.h>
  63585. +
  63586. +#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
  63587. + _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
  63588. +
  63589. +#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  63590. + ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
  63591. +#endif
  63592. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/__longjmp.S uClibc-git/libc/sysdeps/linux/i386/__longjmp.S
  63593. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  63594. +++ uClibc-git/libc/sysdeps/linux/i386/__longjmp.S 2014-06-02 17:40:34.446714376 +0200
  63595. @@ -14,13 +14,9 @@
  63596. You should have received a copy of the GNU Library General Public
  63597. License along with the GNU C Library; see the file COPYING.LIB. If not,
  63598. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  63599. - Boston, MA 02111-1307, USA. */
  63600. + see <http://www.gnu.org/licenses/>. */
  63601. -#include <features.h>
  63602. -#define _ASM
  63603. -#define _SETJMP_H
  63604. -#include <bits/setjmp.h>
  63605. +#include <jmpbuf-offsets.h>
  63606. .global __longjmp
  63607. .type __longjmp,%function
  63608. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/makecontext.S uClibc-git/libc/sysdeps/linux/i386/makecontext.S
  63609. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/makecontext.S 1970-01-01 01:00:00.000000000 +0100
  63610. +++ uClibc-git/libc/sysdeps/linux/i386/makecontext.S 2014-06-02 17:40:34.498714663 +0200
  63611. @@ -0,0 +1,123 @@
  63612. +/* Create new context.
  63613. + Copyright (C) 2001,2002,2005,2007,2008,2009 Free Software Foundation, Inc.
  63614. + This file is part of the GNU C Library.
  63615. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
  63616. +
  63617. + The GNU C Library is free software; you can redistribute it and/or
  63618. + modify it under the terms of the GNU Lesser General Public
  63619. + License as published by the Free Software Foundation; either
  63620. + version 2.1 of the License, or (at your option) any later version.
  63621. +
  63622. + The GNU C Library is distributed in the hope that it will be useful,
  63623. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  63624. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  63625. + Lesser General Public License for more details.
  63626. +
  63627. + You should have received a copy of the GNU Lesser General Public
  63628. + License along with the GNU C Library; if not, see
  63629. + <http://www.gnu.org/licenses/>. */
  63630. +
  63631. +#include <sysdep.h>
  63632. +
  63633. +#include "ucontext_i.h"
  63634. +
  63635. +
  63636. +ENTRY(__makecontext)
  63637. + movl 4(%esp), %eax
  63638. +
  63639. + /* Load the address of the function we are supposed to run. */
  63640. + movl 8(%esp), %ecx
  63641. +
  63642. + /* Compute the address of the stack. The information comes from
  63643. + to us_stack element. */
  63644. + movl oSS_SP(%eax), %edx
  63645. + movl %ecx, oEIP(%eax)
  63646. + addl oSS_SIZE(%eax), %edx
  63647. +
  63648. + /* Remember the number of parameters for the exit handler since
  63649. + it has to remove them. We store the number in the EBX register
  63650. + which the function we will call must preserve. */
  63651. + movl 12(%esp), %ecx
  63652. + movl %ecx, oEBX(%eax)
  63653. +
  63654. + /* Make room on the new stack for the parameters.
  63655. + Room for the arguments, return address (== L(exitcode)) and
  63656. + oLINK pointer is needed. One of the pointer sizes is subtracted
  63657. + after aligning the stack. */
  63658. + negl %ecx
  63659. + leal -4(%edx,%ecx,4), %edx
  63660. + negl %ecx
  63661. +
  63662. + /* Align the stack. */
  63663. + andl $0xfffffff0, %edx
  63664. + subl $4, %edx
  63665. +
  63666. + /* Store the future stack pointer. */
  63667. + movl %edx, oESP(%eax)
  63668. +
  63669. + /* Put the next context on the new stack (from the uc_link
  63670. + element). */
  63671. + movl oLINK(%eax), %eax
  63672. + movl %eax, 4(%edx,%ecx,4)
  63673. +
  63674. + /* Copy all the parameters. */
  63675. + jecxz 2f
  63676. +1: movl 12(%esp,%ecx,4), %eax
  63677. + movl %eax, (%edx,%ecx,4)
  63678. + decl %ecx
  63679. + jnz 1b
  63680. +2:
  63681. +
  63682. + /* If the function we call returns we must continue with the
  63683. + context which is given in the uc_link element. To do this
  63684. + set the return address for the function the user provides
  63685. + to a little bit of helper code which does the magic (see
  63686. + below). */
  63687. +#ifdef __PIC__
  63688. + call 1f
  63689. + cfi_adjust_cfa_offset (4)
  63690. +1: popl %ecx
  63691. + cfi_adjust_cfa_offset (-4)
  63692. + addl $L(exitcode)-1b, %ecx
  63693. + movl %ecx, (%edx)
  63694. +#else
  63695. + movl $L(exitcode), (%edx)
  63696. +#endif
  63697. + /* 'makecontext' returns no value. */
  63698. +L(pseudo_end):
  63699. + ret
  63700. +
  63701. + /* This is the helper code which gets called if a function which
  63702. + is registered with 'makecontext' returns. In this case we
  63703. + have to install the context listed in the uc_link element of
  63704. + the context 'makecontext' manipulated at the time of the
  63705. + 'makecontext' call. If the pointer is NULL the process must
  63706. + terminate. */
  63707. + cfi_endproc
  63708. +L(exitcode):
  63709. + /* This removes the parameters passed to the function given to
  63710. + 'makecontext' from the stack. EBX contains the number of
  63711. + parameters (see above). */
  63712. + leal (%esp,%ebx,4), %esp
  63713. +
  63714. +#ifdef __PIC__
  63715. + call 1f
  63716. +1: popl %ebx
  63717. + addl $_GLOBAL_OFFSET_TABLE_+[.-1b], %ebx
  63718. +#endif
  63719. + cmpl $0, (%esp) /* Check the next context. */
  63720. + je 2f /* If it is zero exit. */
  63721. +
  63722. + call JUMPTARGET(__setcontext)
  63723. + /* If this returns (which can happen if the syscall fails) we'll
  63724. + exit the program with the return error value (-1). */
  63725. +
  63726. + movl %eax, (%esp)
  63727. +2: call HIDDEN_JUMPTARGET(exit)
  63728. + /* The 'exit' call should never return. In case it does cause
  63729. + the process to terminate. */
  63730. + hlt
  63731. + cfi_startproc
  63732. +END(__makecontext)
  63733. +
  63734. +weak_alias (__makecontext, makecontext)
  63735. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/Makefile.arch uClibc-git/libc/sysdeps/linux/i386/Makefile.arch
  63736. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  63737. +++ uClibc-git/libc/sysdeps/linux/i386/Makefile.arch 2014-06-02 17:40:34.446714376 +0200
  63738. @@ -5,13 +5,13 @@
  63739. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  63740. #
  63741. -CSRC := brk.c __syscall_error.c sigaction.c
  63742. +CSRC-y := brk.c __syscall_error.c sigaction.c
  63743. -SSRC := \
  63744. +SSRC-y := \
  63745. __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
  63746. - sync_file_range.S syscall.S mmap.S mmap64.S posix_fadvise64.S
  63747. + sync_file_range.S syscall.S mmap.S
  63748. -
  63749. -ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  63750. -SSRC += vfork.S clone.S
  63751. -endif
  63752. +SSRC-$(UCLIBC_HAS_LFS) += mmap64.S
  63753. +SSRC-$(if $(findstring yy,$(UCLIBC_HAS_ADVANCED_REALTIME)$(UCLIBC_HAS_LFS)),y) += posix_fadvise64.S
  63754. +SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += vfork.S clone.S
  63755. +SSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += makecontext.S setcontext.S getcontext.S swapcontext.S
  63756. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/mmap64.S uClibc-git/libc/sysdeps/linux/i386/mmap64.S
  63757. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/mmap64.S 2012-05-15 09:20:09.000000000 +0200
  63758. +++ uClibc-git/libc/sysdeps/linux/i386/mmap64.S 2014-06-02 17:40:34.498714663 +0200
  63759. @@ -12,18 +12,16 @@
  63760. Lesser General Public License for more details.
  63761. You should have received a copy of the GNU Lesser General Public
  63762. - License along with the GNU C Library; if not, write to the Free
  63763. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63764. - 02111-1307 USA. */
  63765. + License along with the GNU C Library; if not, see
  63766. + <http://www.gnu.org/licenses/>. */
  63767. +#include <_lfs_64.h>
  63768. #define _ERRNO_H 1
  63769. -#include <features.h>
  63770. #include <bits/errno.h>
  63771. #include <sys/syscall.h>
  63772. -#if defined __UCLIBC_HAS_LFS__ && defined __NR_mmap2
  63773. -
  63774. +#ifdef __NR_mmap2
  63775. #define LINKAGE 4
  63776. #define PTR_SIZE 4
  63777. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/mmap.S uClibc-git/libc/sysdeps/linux/i386/mmap.S
  63778. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/mmap.S 2012-05-15 09:20:09.000000000 +0200
  63779. +++ uClibc-git/libc/sysdeps/linux/i386/mmap.S 2014-06-02 17:40:34.498714663 +0200
  63780. @@ -12,9 +12,8 @@
  63781. Lesser General Public License for more details.
  63782. You should have received a copy of the GNU Lesser General Public
  63783. - License along with the GNU C Library; if not, write to the Free
  63784. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63785. - 02111-1307 USA. */
  63786. + License along with the GNU C Library; if not, see
  63787. + <http://www.gnu.org/licenses/>. */
  63788. #define _ERRNO_H 1
  63789. #include <features.h>
  63790. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/posix_fadvise64.S uClibc-git/libc/sysdeps/linux/i386/posix_fadvise64.S
  63791. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/posix_fadvise64.S 2012-05-15 09:20:09.000000000 +0200
  63792. +++ uClibc-git/libc/sysdeps/linux/i386/posix_fadvise64.S 2014-06-02 17:40:34.498714663 +0200
  63793. @@ -13,29 +13,18 @@
  63794. Lesser General Public License for more details.
  63795. You should have received a copy of the GNU Lesser General Public
  63796. - License along with the GNU C Library; if not, write to the Free
  63797. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63798. - 02111-1307 USA. */
  63799. -
  63800. -#define _ERRNO_H 1
  63801. -#include <features.h>
  63802. -#include <bits/errno.h>
  63803. -#include <sys/syscall.h>
  63804. + License along with the GNU C Library; if not, see
  63805. + <http://www.gnu.org/licenses/>. */
  63806. -#if defined __NR_fadvise64_64 || defined __NR_fadvise64
  63807. +#include <_lfs_64.h>
  63808. +#include <sys/syscall.h>
  63809. -/* Was named __libc_posix_fadvise64 for some inexplicable reason.
  63810. -** google says only uclibc has *__libc*_posix_fadviseXXX,
  63811. -** so it cannot be compat with anything.
  63812. -**
  63813. -** Remove this comment and one at the end after 0.9.31
  63814. -*/
  63815. +#ifdef __NR_fadvise64_64
  63816. .text
  63817. .global posix_fadvise64
  63818. .type posix_fadvise64,%function
  63819. posix_fadvise64:
  63820. -#if defined __NR_fadvise64_64
  63821. /* Save regs */
  63822. pushl %ebp
  63823. pushl %ebx
  63824. @@ -63,47 +52,7 @@
  63825. /* Returns 0 on success, else an error code. */
  63826. negl %eax
  63827. -#elif defined __NR_fadvise64
  63828. - /* Save regs */
  63829. - pushl %ebx
  63830. - pushl %esi
  63831. - pushl %edi
  63832. -#if 0
  63833. - /* does len overflow long? */
  63834. - cmpl $0, 28(%esp)
  63835. - movl $-EOVERFLOW, %eax
  63836. - jne overflow
  63837. -#endif
  63838. - movl $__NR_fadvise64, %eax /* Syscall number in %eax. */
  63839. -
  63840. - movl 16(%esp), %ebx
  63841. - movl 20(%esp), %ecx
  63842. - movl 24(%esp), %edx
  63843. - movl 28(%esp), %esi
  63844. - movl 32(%esp), %edi
  63845. -
  63846. - /* Do the system call trap. */
  63847. - int $0x80
  63848. -overflow:
  63849. - /* Restore regs */
  63850. - popl %edi
  63851. - popl %esi
  63852. - popl %ebx
  63853. -
  63854. - /* Returns 0 on success, else an error code. */
  63855. - negl %eax
  63856. -#endif
  63857. -
  63858. /* Successful; return the syscall's value. */
  63859. ret
  63860. -
  63861. .size posix_fadvise64,.-posix_fadvise64
  63862. -
  63863. -/*
  63864. -** libc_hidden_def(__libc_posix_fadvise64)
  63865. -** #if defined __UCLIBC_HAS_LFS__ && defined __UCLIBC_HAS_ADVANCED_REALTIME__
  63866. -** weak_alias(__libc_posix_fadvise64,posix_fadvise64)
  63867. -** #endif
  63868. -*/
  63869. -
  63870. #endif
  63871. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/setcontext.S uClibc-git/libc/sysdeps/linux/i386/setcontext.S
  63872. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/setcontext.S 1970-01-01 01:00:00.000000000 +0100
  63873. +++ uClibc-git/libc/sysdeps/linux/i386/setcontext.S 2014-06-02 17:40:34.498714663 +0200
  63874. @@ -0,0 +1,96 @@
  63875. +/* Install given context.
  63876. + Copyright (C) 2001-2012 Free Software Foundation, Inc.
  63877. + This file is part of the GNU C Library.
  63878. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
  63879. +
  63880. + The GNU C Library is free software; you can redistribute it and/or
  63881. + modify it under the terms of the GNU Lesser General Public
  63882. + License as published by the Free Software Foundation; either
  63883. + version 2.1 of the License, or (at your option) any later version.
  63884. +
  63885. + The GNU C Library is distributed in the hope that it will be useful,
  63886. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  63887. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  63888. + Lesser General Public License for more details.
  63889. +
  63890. + You should have received a copy of the GNU Lesser General Public
  63891. + License along with the GNU C Library; if not, see
  63892. + <http://www.gnu.org/licenses/>. */
  63893. +
  63894. +#include <sysdep.h>
  63895. +
  63896. +#include "ucontext_i.h"
  63897. +
  63898. +
  63899. +ENTRY(__setcontext)
  63900. + /* Load address of the context data structure. */
  63901. + movl 4(%esp), %eax
  63902. +
  63903. + /* Get the current signal mask. Note that we preserve EBX in case
  63904. + the system call fails and we return from the function with an
  63905. + error. */
  63906. + pushl %ebx
  63907. + cfi_adjust_cfa_offset (4)
  63908. + xorl %edx, %edx
  63909. + leal oSIGMASK(%eax), %ecx
  63910. + movl $SIG_SETMASK, %ebx
  63911. + cfi_rel_offset (ebx, 0)
  63912. + movl $__NR_sigprocmask, %eax
  63913. + ENTER_KERNEL
  63914. + popl %ebx
  63915. + cfi_adjust_cfa_offset (-4)
  63916. + cfi_restore (ebx)
  63917. + cmpl $-4095, %eax /* Check %eax for error. */
  63918. + jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
  63919. +
  63920. + /* EAX was modified, reload it. */
  63921. + movl 4(%esp), %eax
  63922. +
  63923. + /* Restore the floating-point context. Not the registers, only the
  63924. + rest. */
  63925. + movl oFPREGS(%eax), %ecx
  63926. + fldenv (%ecx)
  63927. +
  63928. + /* Restore the FS segment register. We don't touch the GS register
  63929. + since it is used for threads. */
  63930. + movl oFS(%eax), %ecx
  63931. + movw %cx, %fs
  63932. +
  63933. + /* Fetch the address to return to. */
  63934. + movl oEIP(%eax), %ecx
  63935. +
  63936. + /* Load the new stack pointer. */
  63937. + cfi_def_cfa (eax, 0)
  63938. + cfi_offset (edi, oEDI)
  63939. + cfi_offset (esi, oESI)
  63940. + cfi_offset (ebp, oEBP)
  63941. + cfi_offset (ebx, oEBX)
  63942. + cfi_offset (edx, oEDX)
  63943. + cfi_offset (ecx, oECX)
  63944. + movl oESP(%eax), %esp
  63945. +
  63946. + /* Push the return address on the new stack so we can return there. */
  63947. + pushl %ecx
  63948. +
  63949. + /* Load the values of all the 32-bit registers (except ESP).
  63950. + Since we are loading from EAX, it must be last. */
  63951. + movl oEDI(%eax), %edi
  63952. + movl oESI(%eax), %esi
  63953. + movl oEBP(%eax), %ebp
  63954. + movl oEBX(%eax), %ebx
  63955. + movl oEDX(%eax), %edx
  63956. + movl oECX(%eax), %ecx
  63957. + movl oEAX(%eax), %eax
  63958. +
  63959. + /* End FDE here, we fall into another context. */
  63960. + cfi_endproc
  63961. + cfi_startproc
  63962. +
  63963. + /* The following 'ret' will pop the address of the code and jump
  63964. + to it. */
  63965. +
  63966. +L(pseudo_end):
  63967. + ret
  63968. +PSEUDO_END(__setcontext)
  63969. +
  63970. +weak_alias (__setcontext, setcontext)
  63971. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/setjmp.S uClibc-git/libc/sysdeps/linux/i386/setjmp.S
  63972. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  63973. +++ uClibc-git/libc/sysdeps/linux/i386/setjmp.S 2014-06-02 17:40:34.498714663 +0200
  63974. @@ -13,14 +13,8 @@
  63975. Lesser General Public License for more details.
  63976. You should have received a copy of the GNU Lesser General Public
  63977. - License along with the GNU C Library; if not, write to the Free
  63978. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  63979. - 02111-1307 USA. */
  63980. -
  63981. -#define _ASM
  63982. -#define _SETJMP_H
  63983. -#include <bits/setjmp.h>
  63984. -
  63985. + License along with the GNU C Library; if not, see
  63986. + <http://www.gnu.org/licenses/>. */
  63987. .global __sigsetjmp
  63988. .type __sigsetjmp,%function
  63989. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sigaction.c uClibc-git/libc/sysdeps/linux/i386/sigaction.c
  63990. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  63991. +++ uClibc-git/libc/sysdeps/linux/i386/sigaction.c 2014-06-02 17:40:34.498714663 +0200
  63992. @@ -13,8 +13,7 @@
  63993. You should have received a copy of the GNU Library General Public
  63994. License along with the GNU C Library; see the file COPYING.LIB. If not,
  63995. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  63996. - Boston, MA 02111-1307, USA.
  63997. + see <http://www.gnu.org/licenses/>.
  63998. Totally hacked up for uClibc by Erik Andersen <andersen@codepoet.org>
  63999. */
  64000. @@ -27,9 +26,6 @@
  64001. #define SA_RESTORER 0x04000000
  64002. -extern __typeof(sigaction) __libc_sigaction;
  64003. -
  64004. -
  64005. #if defined __NR_rt_sigaction
  64006. extern void restore_rt(void) __asm__ ("__restore_rt") attribute_hidden;
  64007. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/swapcontext.S uClibc-git/libc/sysdeps/linux/i386/swapcontext.S
  64008. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/swapcontext.S 1970-01-01 01:00:00.000000000 +0100
  64009. +++ uClibc-git/libc/sysdeps/linux/i386/swapcontext.S 2014-06-02 17:40:34.498714663 +0200
  64010. @@ -0,0 +1,110 @@
  64011. +/* Save current context and install the given one.
  64012. + Copyright (C) 2001-2012 Free Software Foundation, Inc.
  64013. + This file is part of the GNU C Library.
  64014. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2001.
  64015. +
  64016. + The GNU C Library is free software; you can redistribute it and/or
  64017. + modify it under the terms of the GNU Lesser General Public
  64018. + License as published by the Free Software Foundation; either
  64019. + version 2.1 of the License, or (at your option) any later version.
  64020. +
  64021. + The GNU C Library is distributed in the hope that it will be useful,
  64022. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  64023. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  64024. + Lesser General Public License for more details.
  64025. +
  64026. + You should have received a copy of the GNU Lesser General Public
  64027. + License along with the GNU C Library; if not, see
  64028. + <http://www.gnu.org/licenses/>. */
  64029. +
  64030. +#include <sysdep.h>
  64031. +
  64032. +#include "ucontext_i.h"
  64033. +
  64034. +
  64035. +ENTRY(__swapcontext)
  64036. + /* Load address of the context data structure we save in. */
  64037. + movl 4(%esp), %eax
  64038. +
  64039. + /* Return value of swapcontext. EAX is the only register whose
  64040. + value is not preserved. */
  64041. + movl $0, oEAX(%eax)
  64042. +
  64043. + /* Save the 32-bit register values and the return address. */
  64044. + movl %ecx, oECX(%eax)
  64045. + movl %edx, oEDX(%eax)
  64046. + movl %edi, oEDI(%eax)
  64047. + movl %esi, oESI(%eax)
  64048. + movl %ebp, oEBP(%eax)
  64049. + movl (%esp), %ecx
  64050. + movl %ecx, oEIP(%eax)
  64051. + leal 4(%esp), %ecx
  64052. + movl %ecx, oESP(%eax)
  64053. + movl %ebx, oEBX(%eax)
  64054. +
  64055. + /* Save the FS segment register. */
  64056. + xorl %edx, %edx
  64057. + movw %fs, %dx
  64058. + movl %edx, oFS(%eax)
  64059. +
  64060. + /* We have separate floating-point register content memory on the
  64061. + stack. We use the __fpregs_mem block in the context. Set the
  64062. + links up correctly. */
  64063. + leal oFPREGSMEM(%eax), %ecx
  64064. + movl %ecx, oFPREGS(%eax)
  64065. + /* Save the floating-point context. */
  64066. + fnstenv (%ecx)
  64067. +
  64068. + /* Load address of the context data structure we have to load. */
  64069. + movl 8(%esp), %ecx
  64070. +
  64071. + /* Save the current signal mask and install the new one. */
  64072. + pushl %ebx
  64073. + leal oSIGMASK(%eax), %edx
  64074. + leal oSIGMASK(%ecx), %ecx
  64075. + movl $SIG_SETMASK, %ebx
  64076. + movl $__NR_sigprocmask, %eax
  64077. + ENTER_KERNEL
  64078. + popl %ebx
  64079. + cmpl $-4095, %eax /* Check %eax for error. */
  64080. + jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
  64081. +
  64082. + /* EAX was modified, reload it. */
  64083. + movl 8(%esp), %eax
  64084. +
  64085. + /* Restore the floating-point context. Not the registers, only the
  64086. + rest. */
  64087. + movl oFPREGS(%eax), %ecx
  64088. + fldenv (%ecx)
  64089. +
  64090. + /* Restore the FS segment register. We don't touch the GS register
  64091. + since it is used for threads. */
  64092. + movl oFS(%eax), %edx
  64093. + movw %dx, %fs
  64094. +
  64095. + /* Fetch the address to return to. */
  64096. + movl oEIP(%eax), %ecx
  64097. +
  64098. + /* Load the new stack pointer. */
  64099. + movl oESP(%eax), %esp
  64100. +
  64101. + /* Push the return address on the new stack so we can return there. */
  64102. + pushl %ecx
  64103. +
  64104. + /* Load the values of all the 32-bit registers (except ESP).
  64105. + Since we are loading from EAX, it must be last. */
  64106. + movl oEDI(%eax), %edi
  64107. + movl oESI(%eax), %esi
  64108. + movl oEBP(%eax), %ebp
  64109. + movl oEBX(%eax), %ebx
  64110. + movl oEDX(%eax), %edx
  64111. + movl oECX(%eax), %ecx
  64112. + movl oEAX(%eax), %eax
  64113. +
  64114. + /* The following 'ret' will pop the address of the code and jump
  64115. + to it. */
  64116. +L(pseudo_end):
  64117. + ret
  64118. +PSEUDO_END(__swapcontext)
  64119. +
  64120. +weak_alias (__swapcontext, swapcontext)
  64121. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sync_file_range.S uClibc-git/libc/sysdeps/linux/i386/sync_file_range.S
  64122. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sync_file_range.S 2012-05-15 09:20:09.000000000 +0200
  64123. +++ uClibc-git/libc/sysdeps/linux/i386/sync_file_range.S 2014-06-02 17:40:34.498714663 +0200
  64124. @@ -12,9 +12,8 @@
  64125. Lesser General Public License for more details.
  64126. You should have received a copy of the GNU Lesser General Public
  64127. - License along with the GNU C Library; if not, write to the Free
  64128. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64129. - 02111-1307 USA. */
  64130. + License along with the GNU C Library; if not, see
  64131. + <http://www.gnu.org/licenses/>. */
  64132. #define _ERRNO_H 1
  64133. #include <features.h>
  64134. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/debugreg.h uClibc-git/libc/sysdeps/linux/i386/sys/debugreg.h
  64135. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/debugreg.h 2012-05-15 09:20:09.000000000 +0200
  64136. +++ uClibc-git/libc/sysdeps/linux/i386/sys/debugreg.h 2014-06-02 17:40:34.498714663 +0200
  64137. @@ -12,9 +12,8 @@
  64138. Lesser General Public License for more details.
  64139. You should have received a copy of the GNU Lesser General Public
  64140. - License along with the GNU C Library; if not, write to the Free
  64141. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64142. - 02111-1307 USA. */
  64143. + License along with the GNU C Library; if not, see
  64144. + <http://www.gnu.org/licenses/>. */
  64145. #ifndef _SYS_DEBUGREG_H
  64146. #define _SYS_DEBUGREG_H 1
  64147. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/elf.h uClibc-git/libc/sysdeps/linux/i386/sys/elf.h
  64148. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/elf.h 2012-05-15 09:20:09.000000000 +0200
  64149. +++ uClibc-git/libc/sysdeps/linux/i386/sys/elf.h 2014-06-02 17:40:34.498714663 +0200
  64150. @@ -12,9 +12,8 @@
  64151. Lesser General Public License for more details.
  64152. You should have received a copy of the GNU Lesser General Public
  64153. - License along with the GNU C Library; if not, write to the Free
  64154. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64155. - 02111-1307 USA. */
  64156. + License along with the GNU C Library; if not, see
  64157. + <http://www.gnu.org/licenses/>. */
  64158. #ifndef _SYS_ELF_H
  64159. #define _SYS_ELF_H 1
  64160. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/io.h uClibc-git/libc/sysdeps/linux/i386/sys/io.h
  64161. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/io.h 2012-05-15 09:20:09.000000000 +0200
  64162. +++ uClibc-git/libc/sysdeps/linux/i386/sys/io.h 2014-06-02 17:40:34.498714663 +0200
  64163. @@ -12,9 +12,8 @@
  64164. Lesser General Public License for more details.
  64165. You should have received a copy of the GNU Lesser General Public
  64166. - License along with the GNU C Library; if not, write to the Free
  64167. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64168. - 02111-1307 USA. */
  64169. + License along with the GNU C Library; if not, see
  64170. + <http://www.gnu.org/licenses/>. */
  64171. #ifndef _SYS_IO_H
  64172. #define _SYS_IO_H 1
  64173. @@ -33,7 +32,6 @@
  64174. E.g., Linux/Alpha for Alpha PCs supports this. */
  64175. extern int ioperm (unsigned long int __from, unsigned long int __num,
  64176. int __turn_on) __THROW;
  64177. -libc_hidden_proto(ioperm)
  64178. /* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
  64179. access any I/O port is granted. This call requires root
  64180. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/perm.h uClibc-git/libc/sysdeps/linux/i386/sys/perm.h
  64181. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/perm.h 2012-05-15 09:20:09.000000000 +0200
  64182. +++ uClibc-git/libc/sysdeps/linux/i386/sys/perm.h 2014-06-02 17:40:34.498714663 +0200
  64183. @@ -12,9 +12,8 @@
  64184. Lesser General Public License for more details.
  64185. You should have received a copy of the GNU Lesser General Public
  64186. - License along with the GNU C Library; if not, write to the Free
  64187. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64188. - 02111-1307 USA. */
  64189. + License along with the GNU C Library; if not, see
  64190. + <http://www.gnu.org/licenses/>. */
  64191. #ifndef _SYS_PERM_H
  64192. @@ -26,7 +25,6 @@
  64193. /* Set port input/output permissions. */
  64194. extern int ioperm (unsigned long int __from, unsigned long int __num,
  64195. int __turn_on) __THROW;
  64196. -libc_hidden_proto(ioperm)
  64197. /* Change I/O privilege level. */
  64198. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/procfs.h uClibc-git/libc/sysdeps/linux/i386/sys/procfs.h
  64199. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  64200. +++ uClibc-git/libc/sysdeps/linux/i386/sys/procfs.h 2014-06-02 17:40:34.498714663 +0200
  64201. @@ -12,9 +12,8 @@
  64202. Lesser General Public License for more details.
  64203. You should have received a copy of the GNU Lesser General Public
  64204. - License along with the GNU C Library; if not, write to the Free
  64205. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64206. - 02111-1307 USA. */
  64207. + License along with the GNU C Library; if not, see
  64208. + <http://www.gnu.org/licenses/>. */
  64209. #ifndef _SYS_PROCFS_H
  64210. #define _SYS_PROCFS_H 1
  64211. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/reg.h uClibc-git/libc/sysdeps/linux/i386/sys/reg.h
  64212. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/reg.h 2012-05-15 09:20:09.000000000 +0200
  64213. +++ uClibc-git/libc/sysdeps/linux/i386/sys/reg.h 2014-06-02 17:40:34.498714663 +0200
  64214. @@ -12,9 +12,8 @@
  64215. Lesser General Public License for more details.
  64216. You should have received a copy of the GNU Lesser General Public
  64217. - License along with the GNU C Library; if not, write to the Free
  64218. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64219. - 02111-1307 USA. */
  64220. + License along with the GNU C Library; if not, see
  64221. + <http://www.gnu.org/licenses/>. */
  64222. #ifndef _SYS_REG_H
  64223. #define _SYS_REG_H 1
  64224. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/ucontext.h uClibc-git/libc/sysdeps/linux/i386/sys/ucontext.h
  64225. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  64226. +++ uClibc-git/libc/sysdeps/linux/i386/sys/ucontext.h 2014-06-02 17:40:34.498714663 +0200
  64227. @@ -12,9 +12,8 @@
  64228. Lesser General Public License for more details.
  64229. You should have received a copy of the GNU Lesser General Public
  64230. - License along with the GNU C Library; if not, write to the Free
  64231. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64232. - 02111-1307 USA. */
  64233. + License along with the GNU C Library; if not, see
  64234. + <http://www.gnu.org/licenses/>. */
  64235. #ifndef _SYS_UCONTEXT_H
  64236. #define _SYS_UCONTEXT_H 1
  64237. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/user.h uClibc-git/libc/sysdeps/linux/i386/sys/user.h
  64238. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  64239. +++ uClibc-git/libc/sysdeps/linux/i386/sys/user.h 2014-06-02 17:40:34.498714663 +0200
  64240. @@ -12,9 +12,8 @@
  64241. Lesser General Public License for more details.
  64242. You should have received a copy of the GNU Lesser General Public
  64243. - License along with the GNU C Library; if not, write to the Free
  64244. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64245. - 02111-1307 USA. */
  64246. + License along with the GNU C Library; if not, see
  64247. + <http://www.gnu.org/licenses/>. */
  64248. #ifndef _SYS_USER_H
  64249. #define _SYS_USER_H 1
  64250. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/vm86.h uClibc-git/libc/sysdeps/linux/i386/sys/vm86.h
  64251. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sys/vm86.h 2012-05-15 09:20:09.000000000 +0200
  64252. +++ uClibc-git/libc/sysdeps/linux/i386/sys/vm86.h 2014-06-02 17:40:34.498714663 +0200
  64253. @@ -12,9 +12,8 @@
  64254. Lesser General Public License for more details.
  64255. You should have received a copy of the GNU Lesser General Public
  64256. - License along with the GNU C Library; if not, write to the Free
  64257. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64258. - 02111-1307 USA. */
  64259. + License along with the GNU C Library; if not, see
  64260. + <http://www.gnu.org/licenses/>. */
  64261. #ifndef _SYS_VM86_H
  64262. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/sysdep.h uClibc-git/libc/sysdeps/linux/i386/sysdep.h
  64263. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  64264. +++ uClibc-git/libc/sysdeps/linux/i386/sysdep.h 2014-06-02 17:40:34.498714663 +0200
  64265. @@ -14,9 +14,8 @@
  64266. Lesser General Public License for more details.
  64267. You should have received a copy of the GNU Lesser General Public
  64268. - License along with the GNU C Library; if not, write to the Free
  64269. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64270. - 02111-1307 USA. */
  64271. + License along with the GNU C Library; if not, see
  64272. + <http://www.gnu.org/licenses/>. */
  64273. #ifndef _LINUX_I386_SYSDEP_H
  64274. #define _LINUX_I386_SYSDEP_H 1
  64275. @@ -44,12 +43,9 @@
  64276. incomplete stabs information. Fake some entries here which specify
  64277. the current source file. */
  64278. #define ENTRY(name) \
  64279. - STABS_CURRENT_FILE1("") \
  64280. - STABS_CURRENT_FILE(name) \
  64281. ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name); \
  64282. ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name),@function) \
  64283. .align ALIGNARG(4); \
  64284. - STABS_FUN(name) \
  64285. C_LABEL(name) \
  64286. cfi_startproc; \
  64287. CALL_MCOUNT
  64288. @@ -58,30 +54,6 @@
  64289. #define END(name) \
  64290. cfi_endproc; \
  64291. ASM_SIZE_DIRECTIVE(name) \
  64292. - STABS_FUN_END(name)
  64293. -
  64294. -#ifdef HAVE_CPP_ASM_DEBUGINFO
  64295. -/* Disable that goop, because we just pass -g through to the assembler
  64296. - and it generates proper line number information directly. */
  64297. -# define STABS_CURRENT_FILE1(name)
  64298. -# define STABS_CURRENT_FILE(name)
  64299. -# define STABS_FUN(name)
  64300. -# define STABS_FUN_END(name)
  64301. -#else
  64302. -/* Remove the following two lines once the gdb bug is fixed. */
  64303. -#define STABS_CURRENT_FILE(name) \
  64304. - STABS_CURRENT_FILE1 (#name)
  64305. -#define STABS_CURRENT_FILE1(name) \
  64306. - 1: .stabs name,100,0,0,1b;
  64307. -/* Emit stabs definition lines. We use F(0,1) and define t(0,1) as `int',
  64308. - the same way gcc does it. */
  64309. -#define STABS_FUN(name) STABS_FUN2(name, name##:F(0,1))
  64310. -#define STABS_FUN2(name, namestr) \
  64311. - .stabs "int:t(0,1)=r(0,1);-2147483648;2147483647;",128,0,0,0; \
  64312. - .stabs #namestr,36,0,0,name;
  64313. -#define STABS_FUN_END(name) \
  64314. - 1: .stabs "",36,0,0,1b-name;
  64315. -#endif
  64316. /* If compiled for profiling, call `mcount' at the start of each function. */
  64317. #ifdef PROF
  64318. @@ -150,10 +122,6 @@
  64319. #undef __i686
  64320. #endif /* __ASSEMBLER__ */
  64321. -#ifndef offsetof
  64322. -# define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
  64323. -#endif
  64324. -
  64325. /* For Linux we can use the system call table in the header file
  64326. /usr/include/asm/unistd.h
  64327. of the kernel. But these symbols do not follow the SYS_* syntax
  64328. @@ -227,8 +195,6 @@
  64329. #define PSEUDO_END_ERRVAL(name) \
  64330. END (name)
  64331. -#define ret_ERRVAL ret
  64332. -
  64333. #ifndef __PIC__
  64334. # define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
  64335. #else
  64336. @@ -444,6 +410,7 @@
  64337. # define PTR_DEMANGLE(reg) rorl $9, reg; \
  64338. xorl %gs:POINTER_GUARD, reg
  64339. # else
  64340. +# include <stddef.h>
  64341. # define PTR_MANGLE(var) __asm__ ("xorl %%gs:%c2, %0\n" \
  64342. "roll $9, %0" \
  64343. : "=r" (var) \
  64344. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/ucontext_i.sym uClibc-git/libc/sysdeps/linux/i386/ucontext_i.sym
  64345. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/ucontext_i.sym 1970-01-01 01:00:00.000000000 +0100
  64346. +++ uClibc-git/libc/sysdeps/linux/i386/ucontext_i.sym 2014-06-02 17:40:34.498714663 +0200
  64347. @@ -0,0 +1,30 @@
  64348. +#include <stddef.h>
  64349. +#include <signal.h>
  64350. +#include <sys/ucontext.h>
  64351. +
  64352. +--
  64353. +
  64354. +SIG_BLOCK
  64355. +SIG_SETMASK
  64356. +
  64357. +#define ucontext(member) offsetof (ucontext_t, member)
  64358. +#define mcontext(member) ucontext (uc_mcontext.member)
  64359. +#define mreg(reg) mcontext (gregs[REG_##reg])
  64360. +
  64361. +oLINK ucontext (uc_link)
  64362. +oSS_SP ucontext (uc_stack.ss_sp)
  64363. +oSS_SIZE ucontext (uc_stack.ss_size)
  64364. +oGS mreg (GS)
  64365. +oFS mreg (FS)
  64366. +oEDI mreg (EDI)
  64367. +oESI mreg (ESI)
  64368. +oEBP mreg (EBP)
  64369. +oESP mreg (ESP)
  64370. +oEBX mreg (EBX)
  64371. +oEDX mreg (EDX)
  64372. +oECX mreg (ECX)
  64373. +oEAX mreg (EAX)
  64374. +oEIP mreg (EIP)
  64375. +oFPREGS mcontext (fpregs)
  64376. +oSIGMASK ucontext (uc_sigmask)
  64377. +oFPREGSMEM ucontext (__fpregs_mem)
  64378. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i386/vfork.S uClibc-git/libc/sysdeps/linux/i386/vfork.S
  64379. --- uClibc-0.9.33.2/libc/sysdeps/linux/i386/vfork.S 2012-05-15 09:20:09.000000000 +0200
  64380. +++ uClibc-git/libc/sysdeps/linux/i386/vfork.S 2014-06-02 17:40:34.498714663 +0200
  64381. @@ -38,4 +38,4 @@
  64382. .size __vfork,.-__vfork
  64383. weak_alias(__vfork,vfork)
  64384. -libc_hidden_weak(vfork)
  64385. +libc_hidden_def(vfork)
  64386. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/bits/fcntl.h uClibc-git/libc/sysdeps/linux/i960/bits/fcntl.h
  64387. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  64388. +++ uClibc-git/libc/sysdeps/linux/i960/bits/fcntl.h 2014-06-02 17:40:34.498714663 +0200
  64389. @@ -13,9 +13,8 @@
  64390. Lesser General Public License for more details.
  64391. You should have received a copy of the GNU Lesser General Public
  64392. - License along with the GNU C Library; if not, write to the Free
  64393. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64394. - 02111-1307 USA. */
  64395. + License along with the GNU C Library; if not, see
  64396. + <http://www.gnu.org/licenses/>. */
  64397. #ifndef _FCNTL_H
  64398. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  64399. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/i960/bits/uClibc_arch_features.h
  64400. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  64401. +++ uClibc-git/libc/sysdeps/linux/i960/bits/uClibc_arch_features.h 2014-06-02 17:40:34.498714663 +0200
  64402. @@ -12,8 +12,8 @@
  64403. /* can your target use syscall6() for mmap ? */
  64404. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  64405. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  64406. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  64407. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  64408. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  64409. /* does your target have a broken create_module() ? */
  64410. #define __UCLIBC_BROKEN_CREATE_MODULE__
  64411. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/bits/wordsize.h uClibc-git/libc/sysdeps/linux/i960/bits/wordsize.h
  64412. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  64413. +++ uClibc-git/libc/sysdeps/linux/i960/bits/wordsize.h 2014-06-02 17:40:34.498714663 +0200
  64414. @@ -12,8 +12,7 @@
  64415. Lesser General Public License for more details.
  64416. You should have received a copy of the GNU Lesser General Public
  64417. - License along with the GNU C Library; if not, write to the Free
  64418. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64419. - 02111-1307 USA. */
  64420. + License along with the GNU C Library; if not, see
  64421. + <http://www.gnu.org/licenses/>. */
  64422. #define __WORDSIZE 32
  64423. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/clone.S uClibc-git/libc/sysdeps/linux/i960/clone.S
  64424. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/clone.S 2012-05-15 09:20:09.000000000 +0200
  64425. +++ uClibc-git/libc/sysdeps/linux/i960/clone.S 2014-06-02 17:40:34.498714663 +0200
  64426. @@ -14,8 +14,7 @@
  64427. # details.
  64428. #
  64429. # You should have received a copy of the GNU Library General Public License
  64430. -# along with this program; if not, write to the Free Software Foundation, Inc.,
  64431. -# at 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  64432. +# along with this program; if not, see <http://www.gnu.org/licenses/>.
  64433. #
  64434. # Derived from an old port of uC-libc to the i960 by Keith Adams (kma@cse.ogi.edu).
  64435. #
  64436. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/crt0.S uClibc-git/libc/sysdeps/linux/i960/crt0.S
  64437. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/crt0.S 2012-05-15 09:20:09.000000000 +0200
  64438. +++ uClibc-git/libc/sysdeps/linux/i960/crt0.S 2014-06-02 17:40:34.498714663 +0200
  64439. @@ -14,8 +14,7 @@
  64440. # details.
  64441. #
  64442. # You should have received a copy of the GNU Library General Public License
  64443. -# along with this program; if not, write to the Free Software Foundation, Inc.,
  64444. -# at 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  64445. +# along with this program; if not, see <http://www.gnu.org/licenses/>.
  64446. #
  64447. /*
  64448. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/mmap.S uClibc-git/libc/sysdeps/linux/i960/mmap.S
  64449. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/mmap.S 2012-05-15 09:20:09.000000000 +0200
  64450. +++ uClibc-git/libc/sysdeps/linux/i960/mmap.S 2014-06-02 17:40:34.498714663 +0200
  64451. @@ -14,8 +14,7 @@
  64452. # details.
  64453. #
  64454. # You should have received a copy of the GNU Library General Public License
  64455. -# along with this program; if not, write to the Free Software Foundation, Inc.,
  64456. -# at 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  64457. +# along with this program; if not, see <http://www.gnu.org/licenses/>.
  64458. #
  64459. # Derived from an old port of uC-libc to the i960 by Keith Adams (kma@cse.ogi.edu).
  64460. #
  64461. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/setjmp.S uClibc-git/libc/sysdeps/linux/i960/setjmp.S
  64462. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  64463. +++ uClibc-git/libc/sysdeps/linux/i960/setjmp.S 2014-06-02 17:40:34.502714686 +0200
  64464. @@ -122,3 +122,5 @@
  64465. mov 1, g0 /* return 1 by default */
  64466. 0:
  64467. ret /* return to caller of __sigsetjmp */
  64468. +
  64469. +libc_hidden_def(__longjmp)
  64470. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/sys/procfs.h uClibc-git/libc/sysdeps/linux/i960/sys/procfs.h
  64471. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  64472. +++ uClibc-git/libc/sysdeps/linux/i960/sys/procfs.h 2014-06-02 17:40:34.502714686 +0200
  64473. @@ -12,9 +12,8 @@
  64474. Lesser General Public License for more details.
  64475. You should have received a copy of the GNU Lesser General Public
  64476. - License along with the GNU C Library; if not, write to the Free
  64477. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64478. - 02111-1307 USA. */
  64479. + License along with the GNU C Library; if not, see
  64480. + <http://www.gnu.org/licenses/>. */
  64481. #ifndef _SYS_PROCFS_H
  64482. #define _SYS_PROCFS_H 1
  64483. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/sys/ucontext.h uClibc-git/libc/sysdeps/linux/i960/sys/ucontext.h
  64484. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  64485. +++ uClibc-git/libc/sysdeps/linux/i960/sys/ucontext.h 2014-06-02 17:40:34.502714686 +0200
  64486. @@ -12,9 +12,8 @@
  64487. Lesser General Public License for more details.
  64488. You should have received a copy of the GNU Lesser General Public
  64489. - License along with the GNU C Library; if not, write to the Free
  64490. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64491. - 02111-1307 USA. */
  64492. + License along with the GNU C Library; if not, see
  64493. + <http://www.gnu.org/licenses/>. */
  64494. /* Don't rely on this, the interface is currently messed up and may need to
  64495. be broken to be fixed. */
  64496. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/i960/vfork.S uClibc-git/libc/sysdeps/linux/i960/vfork.S
  64497. --- uClibc-0.9.33.2/libc/sysdeps/linux/i960/vfork.S 2012-05-15 09:20:09.000000000 +0200
  64498. +++ uClibc-git/libc/sysdeps/linux/i960/vfork.S 2014-06-02 17:40:34.502714686 +0200
  64499. @@ -18,6 +18,7 @@
  64500. .globl ___vfork
  64501. .hidden ___vfork
  64502. + .type ___vfork,@function
  64503. ___vfork:
  64504. mov g13, r3
  64505. ldconst __NR_vfork, g13
  64506. @@ -30,4 +31,4 @@
  64507. ret
  64508. weak_alias(__vfork,vfork)
  64509. -libc_hidden_weak(vfork)
  64510. +libc_hidden_def(vfork)
  64511. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/atomic.h uClibc-git/libc/sysdeps/linux/ia64/bits/atomic.h
  64512. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  64513. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/atomic.h 2014-06-02 17:40:34.522714796 +0200
  64514. @@ -12,9 +12,8 @@
  64515. Lesser General Public License for more details.
  64516. You should have received a copy of the GNU Lesser General Public
  64517. - License along with the GNU C Library; if not, write to the Free
  64518. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64519. - 02111-1307 USA. */
  64520. + License along with the GNU C Library; if not, see
  64521. + <http://www.gnu.org/licenses/>. */
  64522. #include <stdint.h>
  64523. #include <ia64intrin.h>
  64524. @@ -92,12 +91,12 @@
  64525. do \
  64526. { \
  64527. __oldval = __val; \
  64528. - if (__builtin_expect (__val <= 0, 0)) \
  64529. + if (unlikely (__val <= 0)) \
  64530. break; \
  64531. __val = atomic_compare_and_exchange_val_acq (__memp, __oldval - 1, \
  64532. __oldval); \
  64533. } \
  64534. - while (__builtin_expect (__val != __oldval, 0)); \
  64535. + while (unlikely (__val != __oldval)); \
  64536. __oldval; })
  64537. #define atomic_bit_test_set(mem, bit) \
  64538. @@ -113,7 +112,7 @@
  64539. __oldval | __mask, \
  64540. __oldval); \
  64541. } \
  64542. - while (__builtin_expect (__val != __oldval, 0)); \
  64543. + while (unlikely (__val != __oldval)); \
  64544. __oldval & __mask; })
  64545. #define atomic_full_barrier() __sync_synchronize ()
  64546. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/byteswap.h uClibc-git/libc/sysdeps/linux/ia64/bits/byteswap.h
  64547. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
  64548. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/byteswap.h 2014-06-02 17:40:34.522714796 +0200
  64549. @@ -13,9 +13,8 @@
  64550. Lesser General Public License for more details.
  64551. You should have received a copy of the GNU Lesser General Public
  64552. - License along with the GNU C Library; if not, write to the Free
  64553. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64554. - 02111-1307 USA. */
  64555. + License along with the GNU C Library; if not, see
  64556. + <http://www.gnu.org/licenses/>. */
  64557. #ifndef _ASM_BITS_BYTESWAP_H
  64558. #define _ASM_BITS_BYTESWAP_H 1
  64559. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/fcntl.h uClibc-git/libc/sysdeps/linux/ia64/bits/fcntl.h
  64560. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  64561. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/fcntl.h 2014-06-02 17:40:34.522714796 +0200
  64562. @@ -13,9 +13,8 @@
  64563. Lesser General Public License for more details.
  64564. You should have received a copy of the GNU Lesser General Public
  64565. - License along with the GNU C Library; if not, write to the Free
  64566. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64567. - 02111-1307 USA. */
  64568. + License along with the GNU C Library; if not, see
  64569. + <http://www.gnu.org/licenses/>. */
  64570. #ifndef _FCNTL_H
  64571. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  64572. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/fenv.h uClibc-git/libc/sysdeps/linux/ia64/bits/fenv.h
  64573. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  64574. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/fenv.h 2014-06-02 17:40:34.522714796 +0200
  64575. @@ -12,9 +12,8 @@
  64576. Lesser General Public License for more details.
  64577. You should have received a copy of the GNU Lesser General Public
  64578. - License along with the GNU C Library; if not, write to the Free
  64579. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64580. - 02111-1307 USA. */
  64581. + License along with the GNU C Library; if not, see
  64582. + <http://www.gnu.org/licenses/>. */
  64583. #ifndef _FENV_H
  64584. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  64585. @@ -73,15 +72,15 @@
  64586. typedef unsigned long int fenv_t;
  64587. /* If the default argument is used we use this value. */
  64588. -#define FE_DFL_ENV ((__const fenv_t *) 0xc009804c0270033fUL)
  64589. +#define FE_DFL_ENV ((const fenv_t *) 0xc009804c0270033fUL)
  64590. #ifdef __USE_GNU
  64591. /* Floating-point environment where only FE_UNNORMAL is masked since this
  64592. exception is not generally supported by glibc. */
  64593. -# define FE_NOMASK_ENV ((__const fenv_t *) 0xc009804c02700302UL)
  64594. +# define FE_NOMASK_ENV ((const fenv_t *) 0xc009804c02700302UL)
  64595. /* Floating-point environment with (processor-dependent) non-IEEE
  64596. floating point. In this case, turning on flush-to-zero mode for
  64597. s0, s2, and s3. */
  64598. -# define FE_NONIEEE_ENV ((__const fenv_t *) 0xc009a04d0270037fUL)
  64599. +# define FE_NONIEEE_ENV ((const fenv_t *) 0xc009a04d0270037fUL)
  64600. #endif
  64601. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/huge_vall.h uClibc-git/libc/sysdeps/linux/ia64/bits/huge_vall.h
  64602. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/huge_vall.h 1970-01-01 01:00:00.000000000 +0100
  64603. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/huge_vall.h 2014-06-02 17:40:34.522714796 +0200
  64604. @@ -0,0 +1,41 @@
  64605. +/* `HUGE_VALL' constant for ia64 (where it is infinity).
  64606. + Used by <stdlib.h> and <math.h> functions for overflow.
  64607. + Copyright (C) 2000, 2004 Free Software Foundation, Inc.
  64608. + This file is part of the GNU C Library.
  64609. +
  64610. + The GNU C Library is free software; you can redistribute it and/or
  64611. + modify it under the terms of the GNU Lesser General Public
  64612. + License as published by the Free Software Foundation; either
  64613. + version 2.1 of the License, or (at your option) any later version.
  64614. +
  64615. + The GNU C Library is distributed in the hope that it will be useful,
  64616. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  64617. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  64618. + Lesser General Public License for more details.
  64619. +
  64620. + You should have received a copy of the GNU Lesser General Public
  64621. + License along with the GNU C Library; if not, see
  64622. + <http://www.gnu.org/licenses/>. */
  64623. +
  64624. +#ifndef _MATH_H
  64625. +# error "Never use <bits/huge_vall.h> directly; include <math.h> instead."
  64626. +#endif
  64627. +
  64628. +#if __GNUC_PREREQ(3,3)
  64629. +# define HUGE_VALL (__builtin_huge_vall())
  64630. +#elif __GNUC_PREREQ(2,96)
  64631. +# define HUGE_VALL (__extension__ 0x1.0p32767L)
  64632. +#else
  64633. +
  64634. +# define __HUGE_VALL_bytes { 0,0,0,0,0,0,0, 0x80, 0xff, 0x7f, 0,0,0,0,0,0}
  64635. +
  64636. +# define __huge_vall_t union { unsigned char __c[16]; long double __ld; }
  64637. +# ifdef __GNUC__
  64638. +# define HUGE_VALL (__extension__ \
  64639. + ((__huge_vall_t) { __c: __HUGE_VALL_bytes }).__ld)
  64640. +# else /* Not GCC. */
  64641. +static __huge_vall_t __huge_vall = { __HUGE_VALL_bytes };
  64642. +# define HUGE_VALL (__huge_vall.__ld)
  64643. +# endif /* GCC. */
  64644. +
  64645. +#endif /* GCC 2.95 */
  64646. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/ipc.h uClibc-git/libc/sysdeps/linux/ia64/bits/ipc.h
  64647. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  64648. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/ipc.h 2014-06-02 17:40:34.522714796 +0200
  64649. @@ -13,9 +13,8 @@
  64650. Lesser General Public License for more details.
  64651. You should have received a copy of the GNU Lesser General Public
  64652. - License along with the GNU C Library; if not, write to the Free
  64653. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64654. - 02111-1307 USA. */
  64655. + License along with the GNU C Library; if not, see
  64656. + <http://www.gnu.org/licenses/>. */
  64657. #ifndef _SYS_IPC_H
  64658. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  64659. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/ia64/bits/kernel_types.h
  64660. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  64661. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/kernel_types.h 2014-06-02 17:40:34.522714796 +0200
  64662. @@ -52,5 +52,7 @@
  64663. typedef unsigned int __kernel_dev_t;
  64664. typedef unsigned int __kernel_old_dev_t;
  64665. +typedef long __kernel_long_t;
  64666. +typedef unsigned long __kernel_ulong_t;
  64667. #endif /* _ASM_IA64_POSIX_TYPES_H */
  64668. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/local_lim.h uClibc-git/libc/sysdeps/linux/ia64/bits/local_lim.h
  64669. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/local_lim.h 1970-01-01 01:00:00.000000000 +0100
  64670. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/local_lim.h 2014-06-02 17:40:34.522714796 +0200
  64671. @@ -0,0 +1,99 @@
  64672. +/* Minimum guaranteed maximum values for system limits. Linux/IA-64 version.
  64673. + Copyright (C) 1993-1998,2000,2002-2004,2008 Free Software Foundation, Inc.
  64674. + This file is part of the GNU C Library.
  64675. +
  64676. + The GNU C Library is free software; you can redistribute it and/or
  64677. + modify it under the terms of the GNU Library General Public License as
  64678. + published by the Free Software Foundation; either version 2 of the
  64679. + License, or (at your option) any later version.
  64680. +
  64681. + The GNU C Library is distributed in the hope that it will be useful,
  64682. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  64683. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  64684. + Library General Public License for more details.
  64685. +
  64686. + You should have received a copy of the GNU Library General Public
  64687. + License along with the GNU C Library; see the file COPYING.LIB. If not,
  64688. + see <http://www.gnu.org/licenses/>. */
  64689. +
  64690. +/* The kernel header pollutes the namespace with the NR_OPEN symbol
  64691. + and defines LINK_MAX although filesystems have different maxima. A
  64692. + similar thing is true for OPEN_MAX: the limit can be changed at
  64693. + runtime and therefore the macro must not be defined. Remove this
  64694. + after including the header if necessary. */
  64695. +#ifndef NR_OPEN
  64696. +# define __undef_NR_OPEN
  64697. +#endif
  64698. +#ifndef LINK_MAX
  64699. +# define __undef_LINK_MAX
  64700. +#endif
  64701. +#ifndef OPEN_MAX
  64702. +# define __undef_OPEN_MAX
  64703. +#endif
  64704. +#ifndef ARG_MAX
  64705. +# define __undef_ARG_MAX
  64706. +#endif
  64707. +
  64708. +/* The kernel sources contain a file with all the needed information. */
  64709. +#include <linux/limits.h>
  64710. +
  64711. +/* Have to remove NR_OPEN? */
  64712. +#ifdef __undef_NR_OPEN
  64713. +# undef NR_OPEN
  64714. +# undef __undef_NR_OPEN
  64715. +#endif
  64716. +/* Have to remove LINK_MAX? */
  64717. +#ifdef __undef_LINK_MAX
  64718. +# undef LINK_MAX
  64719. +# undef __undef_LINK_MAX
  64720. +#endif
  64721. +/* Have to remove OPEN_MAX? */
  64722. +#ifdef __undef_OPEN_MAX
  64723. +# undef OPEN_MAX
  64724. +# undef __undef_OPEN_MAX
  64725. +#endif
  64726. +/* Have to remove ARG_MAX? */
  64727. +#ifdef __undef_ARG_MAX
  64728. +# undef ARG_MAX
  64729. +# undef __undef_ARG_MAX
  64730. +#endif
  64731. +
  64732. +/* The number of data keys per process. */
  64733. +#define _POSIX_THREAD_KEYS_MAX 128
  64734. +/* This is the value this implementation supports. */
  64735. +#define PTHREAD_KEYS_MAX 1024
  64736. +
  64737. +/* Controlling the iterations of destructors for thread-specific data. */
  64738. +#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
  64739. +/* Number of iterations this implementation does. */
  64740. +#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
  64741. +
  64742. +/* The number of threads per process. */
  64743. +#define _POSIX_THREAD_THREADS_MAX 64
  64744. +/* We have no predefined limit on the number of threads. */
  64745. +#undef PTHREAD_THREADS_MAX
  64746. +
  64747. +/* Maximum amount by which a process can descrease its asynchronous I/O
  64748. + priority level. */
  64749. +#define AIO_PRIO_DELTA_MAX 20
  64750. +
  64751. +/* Minimum size for a thread. We are free to choose a reasonable value. */
  64752. +#define PTHREAD_STACK_MIN 196608
  64753. +
  64754. +/* Maximum number of timer expiration overruns. */
  64755. +#define DELAYTIMER_MAX 2147483647
  64756. +
  64757. +/* Maximum tty name length. */
  64758. +#define TTY_NAME_MAX 32
  64759. +
  64760. +/* Maximum login name length. This is arbitrary. */
  64761. +#define LOGIN_NAME_MAX 256
  64762. +
  64763. +/* Maximum host name length. */
  64764. +#define HOST_NAME_MAX 64
  64765. +
  64766. +/* Maximum message queue priority level. */
  64767. +#define MQ_PRIO_MAX 32768
  64768. +
  64769. +/* Maximum value the semaphore can have. */
  64770. +#define SEM_VALUE_MAX (2147483647)
  64771. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/mathdef.h uClibc-git/libc/sysdeps/linux/ia64/bits/mathdef.h
  64772. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  64773. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/mathdef.h 2014-06-02 17:40:34.522714796 +0200
  64774. @@ -12,9 +12,8 @@
  64775. Lesser General Public License for more details.
  64776. You should have received a copy of the GNU Lesser General Public
  64777. - License along with the GNU C Library; if not, write to the Free
  64778. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64779. - 02111-1307 USA. */
  64780. + License along with the GNU C Library; if not, see
  64781. + <http://www.gnu.org/licenses/>. */
  64782. #if !defined _MATH_H && !defined _COMPLEX_H
  64783. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  64784. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/mathinline.h uClibc-git/libc/sysdeps/linux/ia64/bits/mathinline.h
  64785. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
  64786. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/mathinline.h 2014-06-02 17:40:34.522714796 +0200
  64787. @@ -13,9 +13,8 @@
  64788. Lesser General Public License for more details.
  64789. You should have received a copy of the GNU Lesser General Public
  64790. - License along with the GNU C Library; if not, write to the Free
  64791. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64792. - 02111-1307 USA. */
  64793. + License along with the GNU C Library; if not, see
  64794. + <http://www.gnu.org/licenses/>. */
  64795. #ifndef _MATH_H
  64796. # error "Never use <bits/mathinline.h> directly; include <math.h> instead."
  64797. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/msq.h uClibc-git/libc/sysdeps/linux/ia64/bits/msq.h
  64798. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
  64799. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/msq.h 2014-06-02 17:40:34.522714796 +0200
  64800. @@ -13,9 +13,8 @@
  64801. Lesser General Public License for more details.
  64802. You should have received a copy of the GNU Lesser General Public
  64803. - License along with the GNU C Library; if not, write to the Free
  64804. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64805. - 02111-1307 USA. */
  64806. + License along with the GNU C Library; if not, see
  64807. + <http://www.gnu.org/licenses/>. */
  64808. #ifndef _SYS_MSG_H
  64809. #error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  64810. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sem.h uClibc-git/libc/sysdeps/linux/ia64/bits/sem.h
  64811. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
  64812. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/sem.h 2014-06-02 17:40:34.522714796 +0200
  64813. @@ -14,9 +14,8 @@
  64814. Lesser General Public License for more details.
  64815. You should have received a copy of the GNU Lesser General Public
  64816. - License along with the GNU C Library; if not, write to the Free
  64817. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64818. - 02111-1307 USA. */
  64819. + License along with the GNU C Library; if not, see
  64820. + <http://www.gnu.org/licenses/>. */
  64821. #ifndef _SYS_SEM_H
  64822. # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
  64823. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/setjmp.h uClibc-git/libc/sysdeps/linux/ia64/bits/setjmp.h
  64824. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  64825. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/setjmp.h 2014-06-02 17:40:34.522714796 +0200
  64826. @@ -1,5 +1,5 @@
  64827. /* Define the machine-dependent type `jmp_buf'. Linux/IA-64 version.
  64828. - Copyright (C) 1999, 2000, 2003 Free Software Foundation, Inc.
  64829. + Copyright (C) 1999,2000,2003,2005,2006 Free Software Foundation, Inc.
  64830. This file is part of the GNU C Library.
  64831. Contributed by David Mosberger-Tang <davidm@hpl.hp.com>.
  64832. @@ -14,9 +14,8 @@
  64833. Lesser General Public License for more details.
  64834. You should have received a copy of the GNU Lesser General Public
  64835. - License along with the GNU C Library; if not, write to the Free
  64836. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64837. - 02111-1307 USA. */
  64838. + License along with the GNU C Library; if not, see
  64839. + <http://www.gnu.org/licenses/>. */
  64840. #ifndef _BITS_SETJMP_H
  64841. #define _BITS_SETJMP_H 1
  64842. @@ -32,9 +31,4 @@
  64843. /* the __jmp_buf element type should be __float80 per ABI... */
  64844. typedef long __jmp_buf[_JBLEN] __attribute__ ((aligned (16))); /* guarantees 128-bit alignment! */
  64845. -/* Test if longjmp to JMPBUF would unwind the frame containing a local
  64846. - variable at ADDRESS. */
  64847. -#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
  64848. - ((void *)(_address) < (void *)(((long *)_jmpbuf)[0]))
  64849. -
  64850. #endif /* bits/setjmp.h */
  64851. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/shm.h uClibc-git/libc/sysdeps/linux/ia64/bits/shm.h
  64852. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  64853. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/shm.h 2014-06-02 17:40:34.522714796 +0200
  64854. @@ -12,9 +12,8 @@
  64855. Lesser General Public License for more details.
  64856. You should have received a copy of the GNU Lesser General Public
  64857. - License along with the GNU C Library; if not, write to the Free
  64858. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64859. - 02111-1307 USA. */
  64860. + License along with the GNU C Library; if not, see
  64861. + <http://www.gnu.org/licenses/>. */
  64862. #ifndef _SYS_SHM_H
  64863. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  64864. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigaction.h uClibc-git/libc/sysdeps/linux/ia64/bits/sigaction.h
  64865. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
  64866. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/sigaction.h 2014-06-02 17:40:34.522714796 +0200
  64867. @@ -13,9 +13,8 @@
  64868. Lesser General Public License for more details.
  64869. You should have received a copy of the GNU Lesser General Public
  64870. - License along with the GNU C Library; if not, write to the Free
  64871. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64872. - 02111-1307 USA. */
  64873. + License along with the GNU C Library; if not, see
  64874. + <http://www.gnu.org/licenses/>. */
  64875. #ifndef _SIGNAL_H
  64876. # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
  64877. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/ia64/bits/sigcontext.h
  64878. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
  64879. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/sigcontext.h 2014-06-02 17:40:34.522714796 +0200
  64880. @@ -14,9 +14,8 @@
  64881. Lesser General Public License for more details.
  64882. You should have received a copy of the GNU Lesser General Public
  64883. - License along with the GNU C Library; if not, write to the Free
  64884. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64885. - 02111-1307 USA. */
  64886. + License along with the GNU C Library; if not, see
  64887. + <http://www.gnu.org/licenses/>. */
  64888. #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
  64889. # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
  64890. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/siginfo.h uClibc-git/libc/sysdeps/linux/ia64/bits/siginfo.h
  64891. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/siginfo.h 2012-05-15 09:20:09.000000000 +0200
  64892. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/siginfo.h 2014-06-02 17:40:34.522714796 +0200
  64893. @@ -14,9 +14,8 @@
  64894. Lesser General Public License for more details.
  64895. You should have received a copy of the GNU Lesser General Public
  64896. - License along with the GNU C Library; if not, write to the Free
  64897. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64898. - 02111-1307 USA. */
  64899. + License along with the GNU C Library; if not, see
  64900. + <http://www.gnu.org/licenses/>. */
  64901. #if !defined _SIGNAL_H && !defined __need_siginfo_t \
  64902. && !defined __need_sigevent_t
  64903. @@ -298,7 +297,11 @@
  64904. /* Structure to transport application-defined values with signals. */
  64905. # define __SIGEV_MAX_SIZE 64
  64906. -# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
  64907. +# if __WORDSIZE == 64
  64908. +# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
  64909. +# else
  64910. +# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
  64911. +# endif
  64912. typedef struct sigevent
  64913. {
  64914. @@ -310,6 +313,10 @@
  64915. {
  64916. int _pad[__SIGEV_PAD_SIZE];
  64917. + /* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
  64918. + thread to receive the signal. */
  64919. + __pid_t _tid;
  64920. +
  64921. struct
  64922. {
  64923. void (*_function) (sigval_t); /* Function to start. */
  64924. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigstack.h uClibc-git/libc/sysdeps/linux/ia64/bits/sigstack.h
  64925. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/sigstack.h 2012-05-15 09:20:09.000000000 +0200
  64926. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/sigstack.h 2014-06-02 17:40:34.522714796 +0200
  64927. @@ -13,9 +13,8 @@
  64928. Lesser General Public License for more details.
  64929. You should have received a copy of the GNU Lesser General Public
  64930. - License along with the GNU C Library; if not, write to the Free
  64931. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64932. - 02111-1307 USA. */
  64933. + License along with the GNU C Library; if not, see
  64934. + <http://www.gnu.org/licenses/>. */
  64935. #ifndef _SIGNAL_H
  64936. # error "Never include this file directly. Use <signal.h> instead"
  64937. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/ia64/bits/stackinfo.h
  64938. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  64939. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/stackinfo.h 2014-06-02 17:40:34.522714796 +0200
  64940. @@ -12,9 +12,8 @@
  64941. Lesser General Public License for more details.
  64942. You should have received a copy of the GNU Lesser General Public
  64943. - License along with the GNU C Library; if not, write to the Free
  64944. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64945. - 02111-1307 USA. */
  64946. + License along with the GNU C Library; if not, see
  64947. + <http://www.gnu.org/licenses/>. */
  64948. /* This file contains a bit of information about the stack allocation
  64949. of the processor. */
  64950. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/stat.h uClibc-git/libc/sysdeps/linux/ia64/bits/stat.h
  64951. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  64952. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/stat.h 2014-06-02 17:40:34.522714796 +0200
  64953. @@ -12,9 +12,8 @@
  64954. Lesser General Public License for more details.
  64955. You should have received a copy of the GNU Lesser General Public
  64956. - License along with the GNU C Library; if not, write to the Free
  64957. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64958. - 02111-1307 USA. */
  64959. + License along with the GNU C Library; if not, see
  64960. + <http://www.gnu.org/licenses/>. */
  64961. #ifndef _SYS_STAT_H
  64962. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  64963. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/syscalls.h uClibc-git/libc/sysdeps/linux/ia64/bits/syscalls.h
  64964. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
  64965. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/syscalls.h 2014-06-02 17:40:34.526714818 +0200
  64966. @@ -15,9 +15,8 @@
  64967. Lesser General Public License for more details.
  64968. You should have received a copy of the GNU Lesser General Public
  64969. - License along with the GNU C Library; if not, write to the Free
  64970. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64971. - 02111-1307 USA. */
  64972. + License along with the GNU C Library; if not, see
  64973. + <http://www.gnu.org/licenses/>. */
  64974. #ifndef _BITS_SYSCALLS_H
  64975. #define _BITS_SYSCALLS_H
  64976. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/ia64/bits/uClibc_arch_features.h
  64977. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  64978. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/uClibc_arch_features.h 2014-06-02 17:40:34.526714818 +0200
  64979. @@ -11,8 +11,8 @@
  64980. /* can your target use syscall6() for mmap ? */
  64981. #define __UCLIBC_MMAP_HAS_6_ARGS__
  64982. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  64983. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  64984. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  64985. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  64986. /* does your target have a broken create_module() ? */
  64987. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  64988. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/wordsize.h uClibc-git/libc/sysdeps/linux/ia64/bits/wordsize.h
  64989. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  64990. +++ uClibc-git/libc/sysdeps/linux/ia64/bits/wordsize.h 2014-06-02 17:40:34.526714818 +0200
  64991. @@ -12,8 +12,7 @@
  64992. Lesser General Public License for more details.
  64993. You should have received a copy of the GNU Lesser General Public
  64994. - License along with the GNU C Library; if not, write to the Free
  64995. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  64996. - 02111-1307 USA. */
  64997. + License along with the GNU C Library; if not, see
  64998. + <http://www.gnu.org/licenses/>. */
  64999. #define __WORDSIZE 64
  65000. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/brk.S uClibc-git/libc/sysdeps/linux/ia64/brk.S
  65001. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/brk.S 2012-05-15 09:20:09.000000000 +0200
  65002. +++ uClibc-git/libc/sysdeps/linux/ia64/brk.S 2014-06-02 17:40:34.526714818 +0200
  65003. @@ -15,9 +15,8 @@
  65004. Lesser General Public License for more details.
  65005. You should have received a copy of the GNU Lesser General Public
  65006. - License along with the GNU C Library; if not, write to the Free
  65007. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65008. - 02111-1307 USA. */
  65009. + License along with the GNU C Library; if not, see
  65010. + <http://www.gnu.org/licenses/>. */
  65011. #include "sysdep.h"
  65012. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/clone2.S uClibc-git/libc/sysdeps/linux/ia64/clone2.S
  65013. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/clone2.S 2012-05-15 09:20:09.000000000 +0200
  65014. +++ uClibc-git/libc/sysdeps/linux/ia64/clone2.S 2014-06-02 17:40:34.526714818 +0200
  65015. @@ -12,9 +12,8 @@
  65016. Lesser General Public License for more details.
  65017. You should have received a copy of the GNU Lesser General Public
  65018. - License along with the GNU C Library; if not, write to the Free
  65019. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65020. - 02111-1307 USA. */
  65021. + License along with the GNU C Library; if not, see
  65022. + <http://www.gnu.org/licenses/>. */
  65023. #include "sysdep.h"
  65024. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/crt1.S uClibc-git/libc/sysdeps/linux/ia64/crt1.S
  65025. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/crt1.S 2012-05-15 09:20:09.000000000 +0200
  65026. +++ uClibc-git/libc/sysdeps/linux/ia64/crt1.S 2014-06-02 17:40:34.526714818 +0200
  65027. @@ -30,9 +30,8 @@
  65028. Lesser General Public License for more details.
  65029. You should have received a copy of the GNU Lesser General Public
  65030. - License along with the GNU C Library; if not, write to the Free
  65031. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65032. - 02111-1307 USA. */
  65033. + License along with the GNU C Library; if not, see
  65034. + <http://www.gnu.org/licenses/>. */
  65035. #define __ASSEMBLY__
  65036. #include "sysdep.h"
  65037. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/fork.S uClibc-git/libc/sysdeps/linux/ia64/fork.S
  65038. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/fork.S 2012-05-15 09:20:09.000000000 +0200
  65039. +++ uClibc-git/libc/sysdeps/linux/ia64/fork.S 2014-06-02 17:40:34.526714818 +0200
  65040. @@ -12,9 +12,8 @@
  65041. Lesser General Public License for more details.
  65042. You should have received a copy of the GNU Lesser General Public
  65043. - License along with the GNU C Library; if not, write to the Free
  65044. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65045. - 02111-1307 USA. */
  65046. + License along with the GNU C Library; if not, see
  65047. + <http://www.gnu.org/licenses/>. */
  65048. #include "sysdep.h"
  65049. @@ -24,7 +23,10 @@
  65050. /* pid_t fork(void); */
  65051. /* Implemented as a clone system call with parameters SIGCHLD and 0 */
  65052. -ENTRY(__libc_fork)
  65053. +#ifdef __UCLIBC_HAS_THREADS__
  65054. +.weak fork
  65055. +#endif
  65056. +ENTRY(fork)
  65057. alloc r2=ar.pfs,0,0,2,0
  65058. mov out0=SIGCHLD /* Return SIGCHLD when child finishes */
  65059. /* no other clone flags; nothing shared */
  65060. @@ -34,9 +36,8 @@
  65061. cmp.eq p6,p0=-1,r10
  65062. (p6) br.cond.spnt.few __syscall_error
  65063. ret
  65064. -PSEUDO_END(__libc_fork)
  65065. -
  65066. -weak_alias (__libc_fork, __fork)
  65067. -libc_hidden_def (__fork)
  65068. -weak_alias (__libc_fork, fork)
  65069. -libc_hidden_weak (fork)
  65070. +PSEUDO_END(fork)
  65071. +#ifdef __UCLIBC_HAS_THREADS__
  65072. +strong_alias(fork,__libc_fork)
  65073. +#endif
  65074. +libc_hidden_def(fork)
  65075. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/ia64/jmpbuf-unwind.h
  65076. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  65077. +++ uClibc-git/libc/sysdeps/linux/ia64/jmpbuf-unwind.h 2014-06-02 17:40:34.526714818 +0200
  65078. @@ -0,0 +1,11 @@
  65079. +/*
  65080. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  65081. + *
  65082. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  65083. + */
  65084. +#include <setjmp.h>
  65085. +
  65086. +/* Test if longjmp to JMPBUF would unwind the frame containing a local
  65087. + variable at ADDRESS. */
  65088. +#define _JMPBUF_UNWINDS(_jmpbuf, _address) \
  65089. + ((void *)(_address) < (void *)(((long *)_jmpbuf)[0]))
  65090. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/__longjmp.S uClibc-git/libc/sysdeps/linux/ia64/__longjmp.S
  65091. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  65092. +++ uClibc-git/libc/sysdeps/linux/ia64/__longjmp.S 2014-06-02 17:40:34.502714686 +0200
  65093. @@ -12,9 +12,8 @@
  65094. Lesser General Public License for more details.
  65095. You should have received a copy of the GNU Lesser General Public
  65096. - License along with the GNU C Library; if not, write to the Free
  65097. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65098. - 02111-1307 USA.
  65099. + License along with the GNU C Library; if not, see
  65100. + <http://www.gnu.org/licenses/>.
  65101. Note that __sigsetjmp() did NOT flush the register stack. Instead,
  65102. we do it here since __longjmp() is usually much less frequently
  65103. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/Makefile.arch uClibc-git/libc/sysdeps/linux/ia64/Makefile.arch
  65104. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  65105. +++ uClibc-git/libc/sysdeps/linux/ia64/Makefile.arch 2014-06-02 17:40:34.502714686 +0200
  65106. @@ -5,8 +5,8 @@
  65107. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  65108. #
  65109. -CSRC := __syscall_error.c
  65110. +CSRC-y := __syscall_error.c
  65111. -SSRC := \
  65112. +SSRC-y := \
  65113. __longjmp.S brk.S bsd-setjmp.S bsd-_setjmp.S clone2.S fork.S \
  65114. pipe.S setjmp.S syscall.S vfork.S
  65115. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/pipe.S uClibc-git/libc/sysdeps/linux/ia64/pipe.S
  65116. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/pipe.S 2012-05-15 09:20:09.000000000 +0200
  65117. +++ uClibc-git/libc/sysdeps/linux/ia64/pipe.S 2014-06-02 17:40:34.526714818 +0200
  65118. @@ -13,9 +13,8 @@
  65119. Lesser General Public License for more details.
  65120. You should have received a copy of the GNU Lesser General Public
  65121. - License along with the GNU C Library; if not, write to the Free
  65122. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65123. - 02111-1307 USA. */
  65124. + License along with the GNU C Library; if not, see
  65125. + <http://www.gnu.org/licenses/>. */
  65126. /* __pipe is a special syscall since it returns two values. */
  65127. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/setjmp.S uClibc-git/libc/sysdeps/linux/ia64/setjmp.S
  65128. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  65129. +++ uClibc-git/libc/sysdeps/linux/ia64/setjmp.S 2014-06-02 17:40:34.526714818 +0200
  65130. @@ -13,9 +13,8 @@
  65131. Lesser General Public License for more details.
  65132. You should have received a copy of the GNU Lesser General Public
  65133. - License along with the GNU C Library; if not, write to the Free
  65134. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65135. - 02111-1307 USA.
  65136. + License along with the GNU C Library; if not, see
  65137. + <http://www.gnu.org/licenses/>.
  65138. The layout of the jmp_buf is as follows. This is subject to change
  65139. and user-code should never depend on the particular layout of
  65140. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/io.h uClibc-git/libc/sysdeps/linux/ia64/sys/io.h
  65141. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/io.h 2012-05-15 09:20:09.000000000 +0200
  65142. +++ uClibc-git/libc/sysdeps/linux/ia64/sys/io.h 2014-06-02 17:40:34.526714818 +0200
  65143. @@ -13,9 +13,8 @@
  65144. Lesser General Public License for more details.
  65145. You should have received a copy of the GNU Lesser General Public
  65146. - License along with the GNU C Library; if not, write to the Free
  65147. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65148. - 02111-1307 USA. */
  65149. + License along with the GNU C Library; if not, see
  65150. + <http://www.gnu.org/licenses/>. */
  65151. #ifndef _SYS_IO_H
  65152. #define _SYS_IO_H 1
  65153. @@ -24,6 +23,7 @@
  65154. __BEGIN_DECLS
  65155. +#if defined __UCLIBC_LINUX_SPECIFIC__
  65156. /* If TURN_ON is TRUE, request for permission to do direct i/o on the
  65157. port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
  65158. permission off for that range. This call requires root privileges.
  65159. @@ -33,12 +33,12 @@
  65160. E.g., Linux/Alpha for Alpha PCs supports this. */
  65161. extern int ioperm (unsigned long int __from, unsigned long int __num,
  65162. int __turn_on);
  65163. -libc_hidden_proto(ioperm)
  65164. /* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
  65165. access any I/O port is granted. This call requires root
  65166. privileges. */
  65167. extern int iopl (int __level);
  65168. +#endif /* __UCLIBC_LINUX_SPECIFIC__ */
  65169. extern unsigned int _inb (unsigned long int __port);
  65170. extern unsigned int _inb (unsigned long int __port);
  65171. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/procfs.h uClibc-git/libc/sysdeps/linux/ia64/sys/procfs.h
  65172. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  65173. +++ uClibc-git/libc/sysdeps/linux/ia64/sys/procfs.h 2014-06-02 17:40:34.526714818 +0200
  65174. @@ -12,9 +12,8 @@
  65175. Lesser General Public License for more details.
  65176. You should have received a copy of the GNU Lesser General Public
  65177. - License along with the GNU C Library; if not, write to the Free
  65178. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65179. - 02111-1307 USA. */
  65180. + License along with the GNU C Library; if not, see
  65181. + <http://www.gnu.org/licenses/>. */
  65182. #ifndef _SYS_PROCFS_H
  65183. #define _SYS_PROCFS_H 1
  65184. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/ptrace.h uClibc-git/libc/sysdeps/linux/ia64/sys/ptrace.h
  65185. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  65186. +++ uClibc-git/libc/sysdeps/linux/ia64/sys/ptrace.h 2014-06-02 17:40:34.526714818 +0200
  65187. @@ -13,9 +13,8 @@
  65188. Lesser General Public License for more details.
  65189. You should have received a copy of the GNU Lesser General Public
  65190. - License along with the GNU C Library; if not, write to the Free
  65191. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65192. - 02111-1307 USA. */
  65193. + License along with the GNU C Library; if not, see
  65194. + <http://www.gnu.org/licenses/>. */
  65195. #ifndef _SYS_PTRACE_H
  65196. #define _SYS_PTRACE_H 1
  65197. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/ucontext.h uClibc-git/libc/sysdeps/linux/ia64/sys/ucontext.h
  65198. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  65199. +++ uClibc-git/libc/sysdeps/linux/ia64/sys/ucontext.h 2014-06-02 17:40:34.526714818 +0200
  65200. @@ -12,9 +12,8 @@
  65201. Lesser General Public License for more details.
  65202. You should have received a copy of the GNU Lesser General Public
  65203. - License along with the GNU C Library; if not, write to the Free
  65204. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65205. - 02111-1307 USA. */
  65206. + License along with the GNU C Library; if not, see
  65207. + <http://www.gnu.org/licenses/>. */
  65208. #ifndef _SYS_UCONTEXT_H
  65209. #define _SYS_UCONTEXT_H 1
  65210. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/user.h uClibc-git/libc/sysdeps/linux/ia64/sys/user.h
  65211. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  65212. +++ uClibc-git/libc/sysdeps/linux/ia64/sys/user.h 2014-06-02 17:40:34.526714818 +0200
  65213. @@ -12,9 +12,8 @@
  65214. Lesser General Public License for more details.
  65215. You should have received a copy of the GNU Lesser General Public
  65216. - License along with the GNU C Library; if not, write to the Free
  65217. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65218. - 02111-1307 USA. */
  65219. + License along with the GNU C Library; if not, see
  65220. + <http://www.gnu.org/licenses/>. */
  65221. #ifndef _SYS_USER_H
  65222. #define _SYS_USER_H 1
  65223. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/syscall.S uClibc-git/libc/sysdeps/linux/ia64/syscall.S
  65224. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/syscall.S 2012-05-15 09:20:09.000000000 +0200
  65225. +++ uClibc-git/libc/sysdeps/linux/ia64/syscall.S 2014-06-02 17:40:34.526714818 +0200
  65226. @@ -13,9 +13,8 @@
  65227. Lesser General Public License for more details.
  65228. You should have received a copy of the GNU Lesser General Public
  65229. - License along with the GNU C Library; if not, write to the Free
  65230. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65231. - 02111-1307 USA. */
  65232. + License along with the GNU C Library; if not, see
  65233. + <http://www.gnu.org/licenses/>. */
  65234. #include "sysdep.h"
  65235. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sysdep.h uClibc-git/libc/sysdeps/linux/ia64/sysdep.h
  65236. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  65237. +++ uClibc-git/libc/sysdeps/linux/ia64/sysdep.h 2014-06-02 17:40:34.526714818 +0200
  65238. @@ -14,13 +14,13 @@
  65239. Lesser General Public License for more details.
  65240. You should have received a copy of the GNU Lesser General Public
  65241. - License along with the GNU C Library; if not, write to the Free
  65242. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65243. - 02111-1307 USA. */
  65244. + License along with the GNU C Library; if not, see
  65245. + <http://www.gnu.org/licenses/>. */
  65246. #ifndef _LINUX_IA64_SYSDEP_H
  65247. #define _LINUX_IA64_SYSDEP_H 1
  65248. +#include <common/sysdep.h>
  65249. #include <features.h>
  65250. #include <asm/unistd.h>
  65251. @@ -49,6 +49,15 @@
  65252. C_LABEL(name) \
  65253. CALL_MCOUNT
  65254. +#define HIDDEN_ENTRY(name) \
  65255. + .text; \
  65256. + .align 32; \
  65257. + .proc C_SYMBOL_NAME(name); \
  65258. + .global C_SYMBOL_NAME(name); \
  65259. + .hidden C_SYMBOL_NAME(name); \
  65260. + C_LABEL(name) \
  65261. + CALL_MCOUNT
  65262. +
  65263. #define LEAF(name) \
  65264. .text; \
  65265. .align 32; \
  65266. @@ -161,7 +170,6 @@
  65267. #define ret br.ret.sptk.few b0
  65268. #define ret_NOERRNO ret
  65269. -#define ret_ERRVAL ret
  65270. #endif /* not __ASSEMBLER__ */
  65271. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/ia64/vfork.S uClibc-git/libc/sysdeps/linux/ia64/vfork.S
  65272. --- uClibc-0.9.33.2/libc/sysdeps/linux/ia64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  65273. +++ uClibc-git/libc/sysdeps/linux/ia64/vfork.S 2014-06-02 17:40:34.526714818 +0200
  65274. @@ -12,9 +12,8 @@
  65275. Lesser General Public License for more details.
  65276. You should have received a copy of the GNU Lesser General Public
  65277. - License along with the GNU C Library; if not, write to the Free
  65278. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65279. - 02111-1307 USA. */
  65280. + License along with the GNU C Library; if not, see
  65281. + <http://www.gnu.org/licenses/>. */
  65282. #include "sysdep.h"
  65283. @@ -29,7 +28,7 @@
  65284. /* pid_t vfork(void); */
  65285. /* Implemented as __clone_syscall(CLONE_VFORK | CLONE_VM | SIGCHLD, 0) */
  65286. -ENTRY(__vfork)
  65287. +HIDDEN_ENTRY(__vfork)
  65288. alloc r2=ar.pfs,0,0,2,0
  65289. mov out0=CLONE_VM+CLONE_VFORK+SIGCHLD
  65290. mov out1=0 /* Standard sp value. */
  65291. @@ -41,4 +40,4 @@
  65292. PSEUDO_END(__vfork)
  65293. weak_alias(__vfork,vfork)
  65294. -libc_hidden_weak(vfork)
  65295. +libc_hidden_def(vfork)
  65296. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/byteswap.h uClibc-git/libc/sysdeps/linux/m68k/bits/byteswap.h
  65297. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
  65298. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/byteswap.h 2014-06-02 17:40:34.526714818 +0200
  65299. @@ -13,9 +13,8 @@
  65300. Lesser General Public License for more details.
  65301. You should have received a copy of the GNU Lesser General Public
  65302. - License along with the GNU C Library; if not, write to the Free
  65303. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65304. - 02111-1307 USA. */
  65305. + License along with the GNU C Library; if not, see
  65306. + <http://www.gnu.org/licenses/>. */
  65307. #ifndef _ASM_BITS_BYTESWAP_H
  65308. #define _ASM_BITS_BYTESWAP_H 1
  65309. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/fcntl.h uClibc-git/libc/sysdeps/linux/m68k/bits/fcntl.h
  65310. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  65311. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/fcntl.h 2014-06-02 17:40:34.526714818 +0200
  65312. @@ -13,9 +13,8 @@
  65313. Lesser General Public License for more details.
  65314. You should have received a copy of the GNU Lesser General Public
  65315. - License along with the GNU C Library; if not, write to the Free
  65316. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65317. - 02111-1307 USA. */
  65318. + License along with the GNU C Library; if not, see
  65319. + <http://www.gnu.org/licenses/>. */
  65320. #ifndef _FCNTL_H
  65321. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  65322. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/fenv.h uClibc-git/libc/sysdeps/linux/m68k/bits/fenv.h
  65323. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  65324. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/fenv.h 2014-06-02 17:40:34.526714818 +0200
  65325. @@ -12,9 +12,8 @@
  65326. Lesser General Public License for more details.
  65327. You should have received a copy of the GNU Lesser General Public
  65328. - License along with the GNU C Library; if not, write to the Free
  65329. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65330. - 02111-1307 USA. */
  65331. + License along with the GNU C Library; if not, see
  65332. + <http://www.gnu.org/licenses/>. */
  65333. #ifndef _FENV_H
  65334. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  65335. @@ -71,9 +70,9 @@
  65336. fenv_t;
  65337. /* If the default argument is used we use this value. */
  65338. -#define FE_DFL_ENV ((__const fenv_t *) -1)
  65339. +#define FE_DFL_ENV ((const fenv_t *) -1)
  65340. #ifdef __USE_GNU
  65341. /* Floating-point environment where none of the exceptions are masked. */
  65342. -# define FE_NOMASK_ENV ((__const fenv_t *) -2)
  65343. +# define FE_NOMASK_ENV ((const fenv_t *) -2)
  65344. #endif
  65345. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/huge_vall.h uClibc-git/libc/sysdeps/linux/m68k/bits/huge_vall.h
  65346. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/huge_vall.h 1970-01-01 01:00:00.000000000 +0100
  65347. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/huge_vall.h 2014-06-02 17:40:34.526714818 +0200
  65348. @@ -0,0 +1,42 @@
  65349. +/* `HUGE_VALL' constant for m68k (where it is infinity).
  65350. + Used by <stdlib.h> and <math.h> functions for overflow.
  65351. + Copyright (C) 1992, 1995, 1996, 1997, 1999, 2000, 2004
  65352. + Free Software Foundation, Inc.
  65353. + This file is part of the GNU C Library.
  65354. +
  65355. + The GNU C Library is free software; you can redistribute it and/or
  65356. + modify it under the terms of the GNU Lesser General Public
  65357. + License as published by the Free Software Foundation; either
  65358. + version 2.1 of the License, or (at your option) any later version.
  65359. +
  65360. + The GNU C Library is distributed in the hope that it will be useful,
  65361. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  65362. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  65363. + Lesser General Public License for more details.
  65364. +
  65365. + You should have received a copy of the GNU Lesser General Public
  65366. + License along with the GNU C Library; if not, see
  65367. + <http://www.gnu.org/licenses/>. */
  65368. +
  65369. +#ifndef _MATH_H
  65370. +# error "Never use <bits/huge_val.h> directly; include <math.h> instead."
  65371. +#endif
  65372. +
  65373. +#if __GNUC_PREREQ(3,3)
  65374. +# define HUGE_VALL (__builtin_huge_vall ())
  65375. +#elif __GNUC_PREREQ(2,96)
  65376. +# define HUGE_VALL (__extension__ 0x1.0p32767L)
  65377. +#elif defined__GNUC__
  65378. +
  65379. +# define HUGE_VALL \
  65380. + (__extension__ \
  65381. + ((union { unsigned long __l[3]; long double __ld; }) \
  65382. + { __l: { 0x7fff0000UL, 0x80000000UL, 0UL } }).__ld)
  65383. +
  65384. +#else /* not GCC */
  65385. +
  65386. +static union { unsigned char __c[12]; long double __ld; } __huge_vall =
  65387. + { { 0x7f, 0xff, 0, 0, 0x80, 0, 0, 0, 0, 0, 0, 0 } };
  65388. +# define HUGE_VALL (__huge_vall.__ld)
  65389. +
  65390. +#endif /* GCC 2.95. */
  65391. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/m68k/bits/kernel_types.h
  65392. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  65393. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/kernel_types.h 2014-06-02 17:40:34.526714818 +0200
  65394. @@ -32,6 +32,8 @@
  65395. typedef unsigned short __kernel_old_gid_t;
  65396. typedef long long __kernel_loff_t;
  65397. typedef __kernel_dev_t __kernel_old_dev_t;
  65398. +typedef long __kernel_long_t;
  65399. +typedef unsigned long __kernel_ulong_t;
  65400. typedef struct {
  65401. #ifdef __USE_ALL
  65402. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/mathdef.h uClibc-git/libc/sysdeps/linux/m68k/bits/mathdef.h
  65403. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  65404. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/mathdef.h 2014-06-02 17:40:34.526714818 +0200
  65405. @@ -12,9 +12,8 @@
  65406. Lesser General Public License for more details.
  65407. You should have received a copy of the GNU Lesser General Public
  65408. - License along with the GNU C Library; if not, write to the Free
  65409. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65410. - 02111-1307 USA. */
  65411. + License along with the GNU C Library; if not, see
  65412. + <http://www.gnu.org/licenses/>. */
  65413. #if !defined _MATH_H && !defined _COMPLEX_H
  65414. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  65415. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/mathinline.h uClibc-git/libc/sysdeps/linux/m68k/bits/mathinline.h
  65416. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
  65417. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/mathinline.h 2014-06-02 17:40:34.526714818 +0200
  65418. @@ -14,9 +14,8 @@
  65419. Lesser General Public License for more details.
  65420. You should have received a copy of the GNU Lesser General Public
  65421. - License along with the GNU C Library; if not, write to the Free
  65422. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65423. - 02111-1307 USA. */
  65424. + License along with the GNU C Library; if not, see
  65425. + <http://www.gnu.org/licenses/>. */
  65426. #ifdef __GNUC__
  65427. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/poll.h uClibc-git/libc/sysdeps/linux/m68k/bits/poll.h
  65428. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
  65429. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/poll.h 2014-06-02 17:40:34.526714818 +0200
  65430. @@ -12,9 +12,8 @@
  65431. Lesser General Public License for more details.
  65432. You should have received a copy of the GNU Lesser General Public
  65433. - License along with the GNU C Library; if not, write to the Free
  65434. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65435. - 02111-1307 USA. */
  65436. + License along with the GNU C Library; if not, see
  65437. + <http://www.gnu.org/licenses/>. */
  65438. #ifndef _SYS_POLL_H
  65439. # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
  65440. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/setjmp.h uClibc-git/libc/sysdeps/linux/m68k/bits/setjmp.h
  65441. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  65442. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/setjmp.h 2014-06-02 17:40:34.526714818 +0200
  65443. @@ -13,9 +13,8 @@
  65444. Lesser General Public License for more details.
  65445. You should have received a copy of the GNU Lesser General Public
  65446. - License along with the GNU C Library; if not, write to the Free
  65447. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65448. - 02111-1307 USA. */
  65449. + License along with the GNU C Library; if not, see
  65450. + <http://www.gnu.org/licenses/>. */
  65451. /* Define the machine-dependent type `jmp_buf'. m68k version. */
  65452. #ifndef _BITS_SETJMP_H
  65453. @@ -25,7 +24,7 @@
  65454. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  65455. #endif
  65456. -#ifndef _ASM
  65457. +#include <features.h>
  65458. typedef struct
  65459. {
  65460. @@ -37,7 +36,7 @@
  65461. int *__fp;
  65462. int *__sp;
  65463. -#if defined __HAVE_68881__ || defined __HAVE_FPU__
  65464. +#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
  65465. /* There are eight floating point registers which
  65466. are saved in IEEE 96-bit extended format. */
  65467. char __fpregs[8 * (96 / 8)];
  65468. @@ -45,24 +44,4 @@
  65469. } __jmp_buf[1];
  65470. -#endif
  65471. -
  65472. -#define JB_REGS 0
  65473. -#define JB_DREGS 0
  65474. -#define JB_AREGS 24
  65475. -#define JB_PC 48
  65476. -#define JB_FPREGS 52
  65477. -
  65478. -#if defined __HAVE_68881__ || defined __HAVE_FPU__
  65479. -# define JB_SIZE 76
  65480. -#else
  65481. -# define JB_SIZE 52
  65482. -#endif
  65483. -
  65484. -
  65485. -/* Test if longjmp to JMPBUF would unwind the frame
  65486. - containing a local variable at ADDRESS. */
  65487. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  65488. - ((void *) (address) < (void *) (jmpbuf)->__aregs[5])
  65489. -
  65490. #endif /* bits/setjmp.h */
  65491. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/m68k/bits/sigcontextinfo.h
  65492. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  65493. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/sigcontextinfo.h 2014-06-02 17:40:34.526714818 +0200
  65494. @@ -13,9 +13,8 @@
  65495. Lesser General Public License for more details.
  65496. You should have received a copy of the GNU Lesser General Public
  65497. - License along with the GNU C Library; if not, write to the Free
  65498. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65499. - 02111-1307 USA. */
  65500. + License along with the GNU C Library; if not, see
  65501. + <http://www.gnu.org/licenses/>. */
  65502. #define SIGCONTEXT int _code, struct sigcontext *
  65503. #define SIGCONTEXT_EXTRA_ARGS _code,
  65504. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/m68k/bits/stackinfo.h
  65505. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  65506. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/stackinfo.h 2014-06-02 17:40:34.526714818 +0200
  65507. @@ -12,9 +12,8 @@
  65508. Lesser General Public License for more details.
  65509. You should have received a copy of the GNU Lesser General Public
  65510. - License along with the GNU C Library; if not, write to the Free
  65511. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65512. - 02111-1307 USA. */
  65513. + License along with the GNU C Library; if not, see
  65514. + <http://www.gnu.org/licenses/>. */
  65515. /* This file contains a bit of information about the stack allocation
  65516. of the processor. */
  65517. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/stat.h uClibc-git/libc/sysdeps/linux/m68k/bits/stat.h
  65518. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  65519. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/stat.h 2014-06-02 17:40:34.526714818 +0200
  65520. @@ -13,9 +13,8 @@
  65521. Lesser General Public License for more details.
  65522. You should have received a copy of the GNU Lesser General Public
  65523. - License along with the GNU C Library; if not, write to the Free
  65524. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65525. - 02111-1307 USA. */
  65526. + License along with the GNU C Library; if not, see
  65527. + <http://www.gnu.org/licenses/>. */
  65528. #ifndef _SYS_STAT_H
  65529. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  65530. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/m68k/bits/uClibc_arch_features.h
  65531. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  65532. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/uClibc_arch_features.h 2014-06-02 17:40:34.526714818 +0200
  65533. @@ -15,8 +15,8 @@
  65534. /* can your target use syscall6() for mmap ? */
  65535. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  65536. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  65537. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  65538. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  65539. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  65540. /* does your target have a broken create_module() ? */
  65541. #define __UCLIBC_BROKEN_CREATE_MODULE__
  65542. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/m68k/bits/uClibc_page.h
  65543. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  65544. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/uClibc_page.h 2014-06-02 17:40:34.526714818 +0200
  65545. @@ -11,8 +11,8 @@
  65546. * Library General Public License for more details.
  65547. *
  65548. * You should have received a copy of the GNU Library General Public
  65549. - * License along with this library; if not, write to the Free
  65550. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  65551. + * License along with this library; if not, see
  65552. + * <http://www.gnu.org/licenses/>.
  65553. */
  65554. /* Supply an architecture specific value for PAGE_SIZE and friends. */
  65555. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/wordsize.h uClibc-git/libc/sysdeps/linux/m68k/bits/wordsize.h
  65556. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  65557. +++ uClibc-git/libc/sysdeps/linux/m68k/bits/wordsize.h 2014-06-02 17:40:34.526714818 +0200
  65558. @@ -12,8 +12,7 @@
  65559. Lesser General Public License for more details.
  65560. You should have received a copy of the GNU Lesser General Public
  65561. - License along with the GNU C Library; if not, write to the Free
  65562. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65563. - 02111-1307 USA. */
  65564. + License along with the GNU C Library; if not, see
  65565. + <http://www.gnu.org/licenses/>. */
  65566. #define __WORDSIZE 32
  65567. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/m68k/bsd-setjmp.S
  65568. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  65569. +++ uClibc-git/libc/sysdeps/linux/m68k/bsd-setjmp.S 2014-06-02 17:40:34.530714841 +0200
  65570. @@ -2,9 +2,8 @@
  65571. /* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
  65572. /* This file is released under the LGPL, any version you like */
  65573. -#define _ASM
  65574. -#define _SETJMP_H
  65575. -#include <bits/setjmp.h>
  65576. +#include <features.h>
  65577. +#include <jmpbuf-offsets.h>
  65578. #include "m68k_pic.S"
  65579. .globl setjmp;
  65580. @@ -15,7 +14,7 @@
  65581. moveal %sp@(4), %a0
  65582. movel %sp@(0), %a0@(JB_PC)
  65583. moveml %d2-%d7/%a2-%a7, %a0@(JB_REGS)
  65584. -#if defined(__HAVE_68881__) || defined(__HAVE_FPU__)
  65585. +#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
  65586. fmovemx %fp2-%fp7, %a0@(JB_FPREGS)
  65587. #endif
  65588. clrl %d0
  65589. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/m68k/bsd-_setjmp.S
  65590. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  65591. +++ uClibc-git/libc/sysdeps/linux/m68k/bsd-_setjmp.S 2014-06-02 17:40:34.530714841 +0200
  65592. @@ -2,9 +2,8 @@
  65593. /* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
  65594. /* This file is released under the LGPL, any version you like */
  65595. -#define _ASM
  65596. -#define _SETJMP_H
  65597. -#include <bits/setjmp.h>
  65598. +#include <features.h>
  65599. +#include <jmpbuf-offsets.h>
  65600. .globl _setjmp;
  65601. .type _setjmp,@function
  65602. @@ -14,7 +13,7 @@
  65603. moveal %sp@(4), %a0
  65604. movel %sp@(0), %a0@(JB_PC)
  65605. moveml %d2-%d7/%a2-%a7, %a0@(JB_REGS)
  65606. -#if defined(__HAVE_68881__) || defined(__HAVE_FPU__)
  65607. +#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
  65608. fmovemx %fp2-%fp7, %a0@(JB_FPREGS)
  65609. #endif
  65610. clrl %d0
  65611. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/crt1.S uClibc-git/libc/sysdeps/linux/m68k/crt1.S
  65612. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/crt1.S 2012-05-15 09:20:09.000000000 +0200
  65613. +++ uClibc-git/libc/sysdeps/linux/m68k/crt1.S 2014-06-02 17:40:34.530714841 +0200
  65614. @@ -30,9 +30,8 @@
  65615. Lesser General Public License for more details.
  65616. You should have received a copy of the GNU Lesser General Public
  65617. - License along with the GNU C Library; if not, write to the Free
  65618. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65619. - 02111-1307 USA. */
  65620. + License along with the GNU C Library; if not, see
  65621. + <http://www.gnu.org/licenses/>. */
  65622. #include <features.h>
  65623. #include "m68k_pic.S"
  65624. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/fpu_control.h uClibc-git/libc/sysdeps/linux/m68k/fpu_control.h
  65625. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  65626. +++ uClibc-git/libc/sysdeps/linux/m68k/fpu_control.h 2014-06-02 17:40:34.530714841 +0200
  65627. @@ -13,9 +13,8 @@
  65628. Lesser General Public License for more details.
  65629. You should have received a copy of the GNU Lesser General Public
  65630. - License along with the GNU C Library; if not, write to the Free
  65631. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65632. - 02111-1307 USA. */
  65633. + License along with the GNU C Library; if not, see
  65634. + <http://www.gnu.org/licenses/>. */
  65635. #ifndef _FPU_CONTROL_H
  65636. #define _FPU_CONTROL_H
  65637. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/m68k/jmpbuf-offsets.h
  65638. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  65639. +++ uClibc-git/libc/sysdeps/linux/m68k/jmpbuf-offsets.h 2014-06-02 17:40:34.530714841 +0200
  65640. @@ -0,0 +1,19 @@
  65641. +/*
  65642. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  65643. + *
  65644. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  65645. + */
  65646. +
  65647. +#include <features.h>
  65648. +
  65649. +#define JB_REGS 0
  65650. +#define JB_DREGS 0
  65651. +#define JB_AREGS 24
  65652. +#define JB_PC 48
  65653. +#define JB_FPREGS 52
  65654. +
  65655. +#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
  65656. +# define JB_SIZE 76
  65657. +#else
  65658. +# define JB_SIZE 52
  65659. +#endif
  65660. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/m68k/jmpbuf-unwind.h
  65661. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  65662. +++ uClibc-git/libc/sysdeps/linux/m68k/jmpbuf-unwind.h 2014-06-02 17:40:34.530714841 +0200
  65663. @@ -0,0 +1,11 @@
  65664. +/*
  65665. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  65666. + *
  65667. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  65668. + */
  65669. +#include <setjmp.h>
  65670. +
  65671. +/* Test if longjmp to JMPBUF would unwind the frame
  65672. + containing a local variable at ADDRESS. */
  65673. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  65674. + ((void *) (address) < (void *) (jmpbuf)->__aregs[5])
  65675. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/__longjmp.S uClibc-git/libc/sysdeps/linux/m68k/__longjmp.S
  65676. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  65677. +++ uClibc-git/libc/sysdeps/linux/m68k/__longjmp.S 2014-06-02 17:40:34.526714818 +0200
  65678. @@ -2,10 +2,8 @@
  65679. /* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
  65680. /* This file is released under the LGPL, any version you like */
  65681. -#define _ASM
  65682. -#define _SETJMP_H
  65683. #include <features.h>
  65684. -#include <bits/setjmp.h>
  65685. +#include <jmpbuf-offsets.h>
  65686. .globl __longjmp
  65687. .type __longjmp,@function
  65688. @@ -17,7 +15,7 @@
  65689. movel #1, %d0
  65690. 1:
  65691. moveml %a0@(JB_REGS), %d2-%d7/%a2-%a7
  65692. -#if defined(__HAVE_68881__) || defined(__HAVE_FPU__)
  65693. +#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
  65694. fmovemx %a0@(JB_FPREGS), %fp2-%fp7
  65695. #endif
  65696. movel %a0@(JB_PC), %sp@
  65697. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/Makefile.arch uClibc-git/libc/sysdeps/linux/m68k/Makefile.arch
  65698. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  65699. +++ uClibc-git/libc/sysdeps/linux/m68k/Makefile.arch 2014-06-02 17:40:34.526714818 +0200
  65700. @@ -5,6 +5,6 @@
  65701. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  65702. #
  65703. -CSRC := brk.c __syscall_error.c
  65704. +CSRC-y := brk.c __syscall_error.c
  65705. -SSRC := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S vfork.S
  65706. +SSRC-y := __longjmp.S bsd-_setjmp.S bsd-setjmp.S clone.S setjmp.S vfork.S
  65707. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/setjmp.S uClibc-git/libc/sysdeps/linux/m68k/setjmp.S
  65708. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  65709. +++ uClibc-git/libc/sysdeps/linux/m68k/setjmp.S 2014-06-02 17:40:34.530714841 +0200
  65710. @@ -2,9 +2,8 @@
  65711. /* Copyright (C) 2002, David McCullough <davidm@snapgear.com> */
  65712. /* This file is released under the LGPL, any version you like */
  65713. -#define _ASM
  65714. -#define _SETJMP_H
  65715. -#include <bits/setjmp.h>
  65716. +#include <features.h>
  65717. +#include <jmpbuf-offsets.h>
  65718. #include "m68k_pic.S"
  65719. .globl __sigsetjmp;
  65720. @@ -15,7 +14,7 @@
  65721. moveal %sp@(4), %a0
  65722. movel %sp@(0), %a0@(JB_PC)
  65723. moveml %d2-%d7/%a2-%a7, %a0@(JB_REGS)
  65724. -#if defined(__HAVE_68881__) || defined(__HAVE_FPU__)
  65725. +#if defined __HAVE_68881__ || defined __UCLIBC_HAS_FPU__
  65726. fmovemx %fp2-%fp7, %a0@(JB_FPREGS)
  65727. #endif
  65728. clrl %d0
  65729. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/procfs.h uClibc-git/libc/sysdeps/linux/m68k/sys/procfs.h
  65730. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  65731. +++ uClibc-git/libc/sysdeps/linux/m68k/sys/procfs.h 2014-06-02 17:40:34.530714841 +0200
  65732. @@ -12,9 +12,8 @@
  65733. Lesser General Public License for more details.
  65734. You should have received a copy of the GNU Lesser General Public
  65735. - License along with the GNU C Library; if not, write to the Free
  65736. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65737. - 02111-1307 USA. */
  65738. + License along with the GNU C Library; if not, see
  65739. + <http://www.gnu.org/licenses/>. */
  65740. #ifndef _SYS_PROCFS_H
  65741. #define _SYS_PROCFS_H 1
  65742. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/reg.h uClibc-git/libc/sysdeps/linux/m68k/sys/reg.h
  65743. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/reg.h 2012-05-15 09:20:09.000000000 +0200
  65744. +++ uClibc-git/libc/sysdeps/linux/m68k/sys/reg.h 2014-06-02 17:40:34.530714841 +0200
  65745. @@ -12,9 +12,8 @@
  65746. Lesser General Public License for more details.
  65747. You should have received a copy of the GNU Lesser General Public
  65748. - License along with the GNU C Library; if not, write to the Free
  65749. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65750. - 02111-1307 USA. */
  65751. + License along with the GNU C Library; if not, see
  65752. + <http://www.gnu.org/licenses/>. */
  65753. #ifndef _SYS_REG_H
  65754. #define _SYS_REG_H 1
  65755. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/ucontext.h uClibc-git/libc/sysdeps/linux/m68k/sys/ucontext.h
  65756. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  65757. +++ uClibc-git/libc/sysdeps/linux/m68k/sys/ucontext.h 2014-06-02 17:40:34.530714841 +0200
  65758. @@ -12,9 +12,8 @@
  65759. Lesser General Public License for more details.
  65760. You should have received a copy of the GNU Lesser General Public
  65761. - License along with the GNU C Library; if not, write to the Free
  65762. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65763. - 02111-1307 USA. */
  65764. + License along with the GNU C Library; if not, see
  65765. + <http://www.gnu.org/licenses/>. */
  65766. /* System V/m68k ABI compliant context switching support. */
  65767. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/m68k/vfork.S uClibc-git/libc/sysdeps/linux/m68k/vfork.S
  65768. --- uClibc-0.9.33.2/libc/sysdeps/linux/m68k/vfork.S 2012-05-15 09:20:09.000000000 +0200
  65769. +++ uClibc-git/libc/sysdeps/linux/m68k/vfork.S 2014-06-02 17:40:34.530714841 +0200
  65770. @@ -4,9 +4,7 @@
  65771. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  65772. */
  65773. -#include <features.h>
  65774. -
  65775. -#include <asm/unistd.h>
  65776. +#include <sys/syscall.h>
  65777. #ifndef __NR_vfork
  65778. #define __NR_vfork __NR_fork /* uClinux-2.0 only has fork which is vfork */
  65779. @@ -16,7 +14,6 @@
  65780. .text
  65781. .align 2
  65782. - .globl errno
  65783. .globl __vfork
  65784. .hidden __vfork
  65785. .type __vfork,@function
  65786. @@ -42,4 +39,4 @@
  65787. .size __vfork,.-__vfork
  65788. weak_alias(__vfork,vfork)
  65789. -libc_hidden_weak(vfork)
  65790. +libc_hidden_def(vfork)
  65791. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/Makefile.commonarch uClibc-git/libc/sysdeps/linux/Makefile.commonarch
  65792. --- uClibc-0.9.33.2/libc/sysdeps/linux/Makefile.commonarch 2012-05-15 09:20:09.000000000 +0200
  65793. +++ uClibc-git/libc/sysdeps/linux/Makefile.commonarch 2014-06-02 17:40:34.258713336 +0200
  65794. @@ -8,15 +8,15 @@
  65795. ARCH_DIR := $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)
  65796. ARCH_OUT := $(top_builddir)libc/sysdeps/linux/$(TARGET_ARCH)
  65797. -ARCH_CSRC := $(patsubst %.c,$(ARCH_DIR)/%.c,$(CSRC))
  65798. -ARCH_COBJ := $(patsubst %.c,$(ARCH_OUT)/%.o,$(CSRC))
  65799. -ARCH_SSRC = $(patsubst %.s,$(ARCH_DIR)/%.s,$(patsubst %.S,$(ARCH_DIR)/%.S,$(SSRC)))
  65800. -ARCH_SOBJ = $(patsubst %.s,$(ARCH_OUT)/%.o,$(patsubst %.S,$(ARCH_OUT)/%.o,$(SSRC)))
  65801. +ARCH_CSRC := $(addprefix $(ARCH_DIR)/,$(CSRC-y))
  65802. +ARCH_COBJ := $(addprefix $(ARCH_OUT)/,$(CSRC-y:.c=.o))
  65803. +ARCH_SSRC = $(addprefix $(ARCH_DIR)/,$(SSRC-y))
  65804. +ARCH_SOBJ = $(patsubst %.s,%.o,$(patsubst %.S,%.o,$(addprefix $(ARCH_OUT)/,$(SSRC-y))))
  65805. -ARCH_OBJS = $(ARCH_COBJ) $(ARCH_SOBJ)
  65806. +ARCH_OBJS-y = $(ARCH_COBJ) $(ARCH_SOBJ)
  65807. crt-y := FORCE
  65808. -libc-y += $(ARCH_OBJS)
  65809. +libc-y += $(ARCH_OBJS-y)
  65810. libc-nomulti-y += $(ARCH_SOBJ)
  65811. objclean-y += CLEAN_$(subst $(top_builddir),,$(ARCH_OUT))
  65812. @@ -37,5 +37,23 @@
  65813. headers_clean-y += HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT))
  65814. HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT)):
  65815. $(do_rm) $(ARCH_HEADERS_OUT)
  65816. -
  65817. endif
  65818. +
  65819. +CFLAGS-ucontext_i.c = -S
  65820. +
  65821. +$(ARCH_OUT)/ucontext_i.c: $(ARCH_DIR)/ucontext_i.sym
  65822. + $(do_awk) $(top_srcdir)extra/scripts/gen-as-const.awk $< > $@
  65823. +
  65824. +$(ARCH_OUT)/ucontext_i.s: $(ARCH_OUT)/ucontext_i.c
  65825. + $(compile.c)
  65826. +
  65827. +$(ARCH_OUT)/ucontext_i.h: $(ARCH_OUT)/ucontext_i.s
  65828. + $(do_sed) $(PTHREAD_GENERATE_MANGLE) $< > $@
  65829. +
  65830. +pregen-headers-$(UCLIBC_HAS_CONTEXT_FUNCS) += $(ARCH_OUT)/ucontext_i.h
  65831. +
  65832. +headers_clean-$(UCLIBC_HAS_CONTEXT_FUNCS) += \
  65833. + HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT)/ucontext_i)
  65834. +
  65835. +HEADERCLEAN_$(subst $(top_builddir),,$(ARCH_OUT)/ucontext_i):
  65836. + $(do_rm) $(addprefix $(ARCH_OUT)/ucontext_i., c h s)
  65837. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/atomic.h uClibc-git/libc/sysdeps/linux/metag/bits/atomic.h
  65838. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/atomic.h 1970-01-01 01:00:00.000000000 +0100
  65839. +++ uClibc-git/libc/sysdeps/linux/metag/bits/atomic.h 2014-06-02 17:40:34.530714841 +0200
  65840. @@ -0,0 +1,66 @@
  65841. +/*
  65842. + * Copyrith (C) 2013 Imagination Technologies Ltd.
  65843. + *
  65844. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  65845. + *
  65846. + */
  65847. +
  65848. +#include <stdint.h>
  65849. +#include <sysdep.h>
  65850. +
  65851. +typedef int8_t atomic8_t;
  65852. +typedef uint8_t uatomic8_t;
  65853. +typedef int_fast8_t atomic_fast8_t;
  65854. +typedef uint_fast8_t uatomic_fast8_t;
  65855. +
  65856. +typedef int32_t atomic32_t;
  65857. +typedef uint32_t uatomic32_t;
  65858. +typedef int_fast32_t atomic_fast32_t;
  65859. +typedef uint_fast32_t uatomic_fast32_t;
  65860. +
  65861. +typedef intptr_t atomicptr_t;
  65862. +typedef uintptr_t uatomicptr_t;
  65863. +typedef intmax_t atomic_max_t;
  65864. +typedef uintmax_t uatomic_max_t;
  65865. +
  65866. +void __metag_link_error (void);
  65867. +
  65868. +#define atomic_full_barrier() \
  65869. + __asm__ __volatile__("": : :"memory")
  65870. +
  65871. +/* Atomic compare and exchange. This sequence relies on the kernel to
  65872. + provide a compare and exchange operation which is atomic. */
  65873. +
  65874. +#define __arch_compare_and_exchange_val_8_acq(mem, newval, oldval) \
  65875. + ({ __metag_link_error (); oldval; })
  65876. +
  65877. +#define __arch_compare_and_exchange_val_16_acq(mem, newval, oldval) \
  65878. + ({ __metag_link_error (); oldval; })
  65879. +
  65880. +/* This code uses the kernel helper to do cmpxchg. It relies on the fact
  65881. + the helper code only clobbers D0Re0. */
  65882. +#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
  65883. + ({ register __typeof (oldval) a_current __asm__ ("D1Ar1"); \
  65884. + register __typeof (oldval) a_newval __asm__ ("D0Ar2") = (newval); \
  65885. + register __typeof (mem) a_ptr __asm__ ("D1Ar3") = (mem); \
  65886. + register __typeof (oldval) a_oldval __asm__ ("D0Ar4") = (oldval); \
  65887. + __asm__ __volatile__ \
  65888. + ("0:\n\t" \
  65889. + "GETD %[cur], [%[ptr]]\n\t" \
  65890. + "CMP %[cur], %[old]\n\t" \
  65891. + "BNE 1f\n\t" \
  65892. + "MOVT D1RtP, #0x6fff\n\t" \
  65893. + "ADD D1RtP, D1RtP, #0xf040\n\t" \
  65894. + "SWAP D1RtP, PC\n\t" \
  65895. + "MOV %[cur], %[old]\n\t" \
  65896. + "CMP D0Re0, #0\n\t" \
  65897. + "BNE 0b\n\t" \
  65898. + "1:" \
  65899. + : [cur] "=&r" (a_current) \
  65900. + : [new] "r" (a_newval), [ptr] "r" (a_ptr), \
  65901. + [old] "r" (a_oldval) \
  65902. + : "D0Re0", "D1RtP", "cc", "memory"); \
  65903. + a_current; })
  65904. +
  65905. +#define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
  65906. + ({ __metag_link_error (); oldval; })
  65907. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/endian.h uClibc-git/libc/sysdeps/linux/metag/bits/endian.h
  65908. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/endian.h 1970-01-01 01:00:00.000000000 +0100
  65909. +++ uClibc-git/libc/sysdeps/linux/metag/bits/endian.h 2014-06-02 17:40:34.530714841 +0200
  65910. @@ -0,0 +1,12 @@
  65911. +/* Meta is little endian
  65912. + *
  65913. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  65914. + *
  65915. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  65916. + */
  65917. +
  65918. +#ifndef _ENDIAN_H
  65919. +# error "Never use <bits/endian.h> directly; include <endian.h> instead."
  65920. +#endif
  65921. +
  65922. +#define __BYTE_ORDER __LITTLE_ENDIAN
  65923. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/fcntl.h uClibc-git/libc/sysdeps/linux/metag/bits/fcntl.h
  65924. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/fcntl.h 1970-01-01 01:00:00.000000000 +0100
  65925. +++ uClibc-git/libc/sysdeps/linux/metag/bits/fcntl.h 2014-06-02 17:40:34.530714841 +0200
  65926. @@ -0,0 +1,238 @@
  65927. +/* O_*, F_*, FD_* bit values for Linux.
  65928. + Copyright (C) 1995-1998, 2000, 2004, 2006, 2007, 2008
  65929. + Free Software Foundation, Inc.
  65930. + This file is part of the GNU C Library.
  65931. +
  65932. + The GNU C Library is free software; you can redistribute it and/or
  65933. + modify it under the terms of the GNU Lesser General Public
  65934. + License as published by the Free Software Foundation; either
  65935. + version 2.1 of the License, or (at your option) any later version.
  65936. +
  65937. + The GNU C Library is distributed in the hope that it will be useful,
  65938. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  65939. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  65940. + Lesser General Public License for more details.
  65941. +
  65942. + You should have received a copy of the GNU Lesser General Public
  65943. + License along with the GNU C Library; if not, write to the Free
  65944. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  65945. + 02111-1307 USA. */
  65946. +
  65947. +#ifndef _FCNTL_H
  65948. +# error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  65949. +#endif
  65950. +
  65951. +#include <sys/types.h>
  65952. +#ifdef __USE_GNU
  65953. +# include <bits/uio.h>
  65954. +#endif
  65955. +
  65956. +
  65957. +/* open/fcntl - O_SYNC is only implemented on blocks devices and on files
  65958. + located on an ext2 file system */
  65959. +#define O_ACCMODE 0003
  65960. +#define O_RDONLY 00
  65961. +#define O_WRONLY 01
  65962. +#define O_RDWR 02
  65963. +#define O_CREAT 0100 /* not fcntl */
  65964. +#define O_EXCL 0200 /* not fcntl */
  65965. +#define O_NOCTTY 0400 /* not fcntl */
  65966. +#define O_TRUNC 01000 /* not fcntl */
  65967. +#define O_APPEND 02000
  65968. +#define O_NONBLOCK 04000
  65969. +#define O_NDELAY O_NONBLOCK
  65970. +#define O_SYNC 010000
  65971. +#define O_FSYNC O_SYNC
  65972. +#define O_ASYNC 020000
  65973. +
  65974. +#ifdef __USE_GNU
  65975. +# define O_DIRECT 040000 /* Direct disk access. */
  65976. +# define O_DIRECTORY 0200000 /* Must be a directory. */
  65977. +# define O_NOFOLLOW 0400000 /* Do not follow links. */
  65978. +# define O_NOATIME 01000000 /* Do not set atime. */
  65979. +# define O_CLOEXEC 02000000 /* Set close_on_exec. */
  65980. +#endif
  65981. +
  65982. +/* For now Linux has synchronisity options for data and read operations.
  65983. + We define the symbols here but let them do the same as O_SYNC since
  65984. + this is a superset. */
  65985. +#if defined __USE_POSIX199309 || defined __USE_UNIX98
  65986. +# define O_DSYNC O_SYNC /* Synchronize data. */
  65987. +# define O_RSYNC O_SYNC /* Synchronize read operations. */
  65988. +#endif
  65989. +
  65990. +#ifdef __USE_LARGEFILE64
  65991. +# define O_LARGEFILE 0100000
  65992. +#endif
  65993. +
  65994. +/* Values for the second argument to `fcntl'. */
  65995. +#define F_DUPFD 0 /* Duplicate file descriptor. */
  65996. +#define F_GETFD 1 /* Get file descriptor flags. */
  65997. +#define F_SETFD 2 /* Set file descriptor flags. */
  65998. +#define F_GETFL 3 /* Get file status flags. */
  65999. +#define F_SETFL 4 /* Set file status flags. */
  66000. +#ifndef __USE_FILE_OFFSET64
  66001. +# define F_GETLK 5 /* Get record locking info. */
  66002. +# define F_SETLK 6 /* Set record locking info (non-blocking). */
  66003. +# define F_SETLKW 7 /* Set record locking info (blocking). */
  66004. +#else
  66005. +# define F_GETLK F_GETLK64 /* Get record locking info. */
  66006. +# define F_SETLK F_SETLK64 /* Set record locking info (non-blocking).*/
  66007. +# define F_SETLKW F_SETLKW64 /* Set record locking info (blocking). */
  66008. +#endif
  66009. +#define F_GETLK64 12 /* Get record locking info. */
  66010. +#define F_SETLK64 13 /* Set record locking info (non-blocking). */
  66011. +#define F_SETLKW64 14 /* Set record locking info (blocking). */
  66012. +
  66013. +#if defined __USE_BSD || defined __USE_UNIX98
  66014. +# define F_SETOWN 8 /* Get owner of socket (receiver of SIGIO). */
  66015. +# define F_GETOWN 9 /* Set owner of socket (receiver of SIGIO). */
  66016. +#endif
  66017. +
  66018. +#ifdef __USE_GNU
  66019. +# define F_SETSIG 10 /* Set number of signal to be sent. */
  66020. +# define F_GETSIG 11 /* Get number of signal to be sent. */
  66021. +#endif
  66022. +
  66023. +#ifdef __USE_GNU
  66024. +# define F_SETLEASE 1024 /* Set a lease. */
  66025. +# define F_GETLEASE 1025 /* Enquire what lease is active. */
  66026. +# define F_NOTIFY 1026 /* Request notfications on a directory. */
  66027. +# define F_DUPFD_CLOEXEC 1030 /* Duplicate file descriptor with
  66028. + close-on-exit set on new fd. */
  66029. +#endif
  66030. +
  66031. +/* For F_[GET|SET]FD. */
  66032. +#define FD_CLOEXEC 1 /* actually anything with low bit set goes */
  66033. +
  66034. +/* For posix fcntl() and `l_type' field of a `struct flock' for lockf(). */
  66035. +#define F_RDLCK 0 /* Read lock. */
  66036. +#define F_WRLCK 1 /* Write lock. */
  66037. +#define F_UNLCK 2 /* Remove lock. */
  66038. +
  66039. +/* For old implementation of bsd flock(). */
  66040. +#define F_EXLCK 4 /* or 3 */
  66041. +#define F_SHLCK 8 /* or 4 */
  66042. +
  66043. +#ifdef __USE_BSD
  66044. +/* Operations for bsd flock(), also used by the kernel implementation. */
  66045. +# define LOCK_SH 1 /* shared lock */
  66046. +# define LOCK_EX 2 /* exclusive lock */
  66047. +# define LOCK_NB 4 /* or'd with one of the above to prevent
  66048. + blocking */
  66049. +# define LOCK_UN 8 /* remove lock */
  66050. +#endif
  66051. +
  66052. +#ifdef __USE_GNU
  66053. +# define LOCK_MAND 32 /* This is a mandatory flock: */
  66054. +# define LOCK_READ 64 /* ... which allows concurrent read operations. */
  66055. +# define LOCK_WRITE 128 /* ... which allows concurrent write operations. */
  66056. +# define LOCK_RW 192 /* ... Which allows concurrent read & write operations. */
  66057. +#endif
  66058. +
  66059. +#ifdef __USE_GNU
  66060. +/* Types of directory notifications that may be requested with F_NOTIFY. */
  66061. +# define DN_ACCESS 0x00000001 /* File accessed. */
  66062. +# define DN_MODIFY 0x00000002 /* File modified. */
  66063. +# define DN_CREATE 0x00000004 /* File created. */
  66064. +# define DN_DELETE 0x00000008 /* File removed. */
  66065. +# define DN_RENAME 0x00000010 /* File renamed. */
  66066. +# define DN_ATTRIB 0x00000020 /* File changed attibutes. */
  66067. +# define DN_MULTISHOT 0x80000000 /* Don't remove notifier. */
  66068. +#endif
  66069. +
  66070. +struct flock
  66071. + {
  66072. + short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
  66073. + short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
  66074. +#ifndef __USE_FILE_OFFSET64
  66075. + __off_t l_start; /* Offset where the lock begins. */
  66076. + __off_t l_len; /* Size of the locked area; zero means until EOF. */
  66077. +#else
  66078. + __off64_t l_start; /* Offset where the lock begins. */
  66079. + __off64_t l_len; /* Size of the locked area; zero means until EOF. */
  66080. +#endif
  66081. + __pid_t l_pid; /* Process holding the lock. */
  66082. + };
  66083. +
  66084. +#ifdef __USE_LARGEFILE64
  66085. +struct flock64
  66086. + {
  66087. + short int l_type; /* Type of lock: F_RDLCK, F_WRLCK, or F_UNLCK. */
  66088. + short int l_whence; /* Where `l_start' is relative to (like `lseek'). */
  66089. + __off64_t l_start; /* Offset where the lock begins. */
  66090. + __off64_t l_len; /* Size of the locked area; zero means until EOF. */
  66091. + __pid_t l_pid; /* Process holding the lock. */
  66092. + };
  66093. +#endif
  66094. +
  66095. +/* Define some more compatibility macros to be backward compatible with
  66096. + BSD systems which did not managed to hide these kernel macros. */
  66097. +#ifdef __USE_BSD
  66098. +# define FAPPEND O_APPEND
  66099. +# define FFSYNC O_FSYNC
  66100. +# define FASYNC O_ASYNC
  66101. +# define FNONBLOCK O_NONBLOCK
  66102. +# define FNDELAY O_NDELAY
  66103. +#endif /* Use BSD. */
  66104. +
  66105. +/* Advise to `posix_fadvise'. */
  66106. +#ifdef __USE_XOPEN2K
  66107. +# define POSIX_FADV_NORMAL 0 /* No further special treatment. */
  66108. +# define POSIX_FADV_RANDOM 1 /* Expect random page references. */
  66109. +# define POSIX_FADV_SEQUENTIAL 2 /* Expect sequential page references. */
  66110. +# define POSIX_FADV_WILLNEED 3 /* Will need these pages. */
  66111. +# define POSIX_FADV_DONTNEED 4 /* Don't need these pages. */
  66112. +# define POSIX_FADV_NOREUSE 5 /* Data will be accessed once. */
  66113. +#endif
  66114. +
  66115. +
  66116. +#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
  66117. +/* Flags for SYNC_FILE_RANGE. */
  66118. +# define SYNC_FILE_RANGE_WAIT_BEFORE 1 /* Wait upon writeout of all pages
  66119. + in the range before performing the
  66120. + write. */
  66121. +# define SYNC_FILE_RANGE_WRITE 2 /* Initiate writeout of all those
  66122. + dirty pages in the range which are
  66123. + not presently under writeback. */
  66124. +# define SYNC_FILE_RANGE_WAIT_AFTER 4 /* Wait upon writeout of all pages in
  66125. + the range after performing the
  66126. + write. */
  66127. +
  66128. +/* Flags for SPLICE and VMSPLICE. */
  66129. +# define SPLICE_F_MOVE 1 /* Move pages instead of copying. */
  66130. +# define SPLICE_F_NONBLOCK 2 /* Don't block on the pipe splicing
  66131. + (but we may still block on the fd
  66132. + we splice from/to). */
  66133. +# define SPLICE_F_MORE 4 /* Expect more data. */
  66134. +# define SPLICE_F_GIFT 8 /* Pages passed in are a gift. */
  66135. +#endif
  66136. +
  66137. +__BEGIN_DECLS
  66138. +
  66139. +#if defined __USE_GNU && defined __UCLIBC_LINUX_SPECIFIC__
  66140. +
  66141. +/* Provide kernel hint to read ahead. */
  66142. +extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
  66143. + __THROW;
  66144. +
  66145. +/* Selective file content synch'ing. */
  66146. +extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
  66147. + unsigned int __flags);
  66148. +
  66149. +/* Splice address range into a pipe. */
  66150. +extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
  66151. + size_t __count, unsigned int __flags);
  66152. +
  66153. +/* Splice two files together. */
  66154. +extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
  66155. + __off64_t *__offout, size_t __len,
  66156. + unsigned int __flags);
  66157. +
  66158. +/* In-kernel implementation of tee for pipe buffers. */
  66159. +extern ssize_t tee (int __fdin, int __fdout, size_t __len,
  66160. + unsigned int __flags);
  66161. +
  66162. +#endif
  66163. +__END_DECLS
  66164. +
  66165. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/fenv.h uClibc-git/libc/sysdeps/linux/metag/bits/fenv.h
  66166. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/fenv.h 1970-01-01 01:00:00.000000000 +0100
  66167. +++ uClibc-git/libc/sysdeps/linux/metag/bits/fenv.h 2014-06-02 17:40:34.530714841 +0200
  66168. @@ -0,0 +1,77 @@
  66169. +/* Copyright (C) 2013 Imagination Technologies Ltd.
  66170. + This file is part of the GNU C Library.
  66171. +
  66172. + The GNU C Library is free software; you can redistribute it and/or
  66173. + modify it under the terms of the GNU Lesser General Public
  66174. + License as published by the Free Software Foundation; either
  66175. + version 2.1 of the License, or (at your option) any later version.
  66176. +
  66177. + The GNU C Library is distributed in the hope that it will be useful,
  66178. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  66179. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  66180. + Lesser General Public License for more details.
  66181. +
  66182. + You should have received a copy of the GNU Lesser General Public
  66183. + License along with the GNU C Library; if not, write to the Free
  66184. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  66185. + 02111-1307 USA. */
  66186. +
  66187. +#ifndef _FENV_H
  66188. +# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  66189. +#endif
  66190. +
  66191. +
  66192. +/* Define bits representing the exception. We use the bit positions
  66193. + of the appropriate bits in TXDEFR. */
  66194. +enum
  66195. + {
  66196. + FE_INEXACT = 0x1,
  66197. +#define FE_INEXACT FE_INEXACT
  66198. + FE_UNDERFLOW = 0x2,
  66199. +#define FE_UNDERFLOW FE_UNDERFLOW
  66200. + FE_OVERFLOW = 0x4,
  66201. +#define FE_OVERFLOW FE_OVERFLOW
  66202. + FE_DIVBYZERO = 0x8,
  66203. +#define FE_DIVBYZERO FE_DIVBYZERO
  66204. + FE_INVALID = 0x10,
  66205. +#define FE_INVALID FE_INVALID
  66206. + };
  66207. +
  66208. +#define FE_ALL_EXCEPT \
  66209. + (FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID)
  66210. +
  66211. +/* The Meta FPU supports all of the four defined rounding modes. We
  66212. + use the values of the rounding mode bits in TXMODE as the values
  66213. + for the appropriate macros. */
  66214. +enum
  66215. + {
  66216. + FE_TONEAREST = 0x0,
  66217. +#define FE_TONEAREST FE_TONEAREST
  66218. + FE_TOWARDZERO = 0x1,
  66219. +#define FE_TOWARDZERO FE_TOWARDZERO
  66220. + FE_UPWARD = 0x2,
  66221. +#define FE_UPWARD FE_UPWARD
  66222. + FE_DOWNWARD = 0x3
  66223. +#define FE_DOWNWARD FE_DOWNWARD
  66224. + };
  66225. +
  66226. +
  66227. +/* Type representing exception flags. */
  66228. +typedef unsigned int fexcept_t;
  66229. +
  66230. +
  66231. +/* Type representing floating-point environment. */
  66232. +typedef struct
  66233. + {
  66234. + unsigned int txdefr;
  66235. + unsigned int txmode;
  66236. + }
  66237. +fenv_t;
  66238. +
  66239. +/* If the default argument is used we use this value. */
  66240. +#define FE_DFL_ENV ((__const fenv_t *) -1)
  66241. +
  66242. +#ifdef __USE_GNU
  66243. +/* Floating-point environment where none of the exception is masked. */
  66244. +# define FE_NOMASK_ENV ((__const fenv_t *) -2)
  66245. +#endif
  66246. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/ipc.h uClibc-git/libc/sysdeps/linux/metag/bits/ipc.h
  66247. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/ipc.h 1970-01-01 01:00:00.000000000 +0100
  66248. +++ uClibc-git/libc/sysdeps/linux/metag/bits/ipc.h 2014-06-02 17:40:34.530714841 +0200
  66249. @@ -0,0 +1,55 @@
  66250. +/* Copyright (C) 1995-1999, 2000, 2005, 2007 Free Software Foundation, Inc.
  66251. + This file is part of the GNU C Library.
  66252. +
  66253. + The GNU C Library is free software; you can redistribute it and/or
  66254. + modify it under the terms of the GNU Lesser General Public
  66255. + License as published by the Free Software Foundation; either
  66256. + version 2.1 of the License, or (at your option) any later version.
  66257. +
  66258. + The GNU C Library is distributed in the hope that it will be useful,
  66259. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  66260. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  66261. + Lesser General Public License for more details.
  66262. +
  66263. + You should have received a copy of the GNU Lesser General Public
  66264. + License along with the GNU C Library; if not, write to the Free
  66265. + Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  66266. + Boston, MA 02110-1301, USA. */
  66267. +
  66268. +#ifndef _SYS_IPC_H
  66269. +# error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  66270. +#endif
  66271. +
  66272. +#include <bits/types.h>
  66273. +
  66274. +/* Mode bits for `msgget', `semget', and `shmget'. */
  66275. +#define IPC_CREAT 01000 /* Create key if key does not exist. */
  66276. +#define IPC_EXCL 02000 /* Fail if key exists. */
  66277. +#define IPC_NOWAIT 04000 /* Return error on wait. */
  66278. +
  66279. +/* Control commands for `msgctl', `semctl', and `shmctl'. */
  66280. +#define IPC_RMID 0 /* Remove identifier. */
  66281. +#define IPC_SET 1 /* Set `ipc_perm' options. */
  66282. +#define IPC_STAT 2 /* Get `ipc_perm' options. */
  66283. +#ifdef __USE_GNU
  66284. +# define IPC_INFO 3 /* See ipcs. */
  66285. +#endif
  66286. +
  66287. +/* Special key values. */
  66288. +#define IPC_PRIVATE ((__key_t) 0) /* Private key. */
  66289. +
  66290. +
  66291. +/* Data structure used to pass permission information to IPC operations. */
  66292. +struct ipc_perm
  66293. + {
  66294. + __key_t __key; /* Key. */
  66295. + __uid_t uid; /* Owner's user ID. */
  66296. + __gid_t gid; /* Owner's group ID. */
  66297. + __uid_t cuid; /* Creator's user ID. */
  66298. + __gid_t cgid; /* Creator's group ID. */
  66299. + unsigned int mode; /* Read/write permission. */
  66300. + unsigned short __seq; /* Sequence number. */
  66301. + unsigned short __pad1;
  66302. + unsigned long __unused1;
  66303. + unsigned long __unused2;
  66304. + };
  66305. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/metag/bits/kernel_types.h
  66306. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/kernel_types.h 1970-01-01 01:00:00.000000000 +0100
  66307. +++ uClibc-git/libc/sysdeps/linux/metag/bits/kernel_types.h 2014-06-02 17:40:34.530714841 +0200
  66308. @@ -0,0 +1,47 @@
  66309. +/* Note that we use the exact same include guard #define names
  66310. + * as asm/posix_types.h. This will avoid gratuitous conflicts
  66311. + * with the posix_types.h kernel header, and will ensure that
  66312. + * our private content, and not the kernel header, will win.
  66313. + * -Erik
  66314. + *
  66315. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  66316. + *
  66317. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66318. + */
  66319. +
  66320. +#ifndef __ASM_GENERIC_POSIX_TYPES_H
  66321. +#define __ASM_GENERIC_POSIX_TYPES_H
  66322. +
  66323. +typedef unsigned int __kernel_dev_t;
  66324. +typedef unsigned int __kernel_ino_t;
  66325. +typedef unsigned int __kernel_mode_t;
  66326. +typedef unsigned long __kernel_nlink_t;
  66327. +typedef long __kernel_off_t;
  66328. +typedef int __kernel_pid_t;
  66329. +typedef unsigned int __kernel_uid_t;
  66330. +typedef unsigned int __kernel_gid_t;
  66331. +typedef unsigned int __kernel_size_t;
  66332. +typedef int __kernel_ssize_t;
  66333. +typedef long __kernel_ptrdiff_t;
  66334. +typedef long __kernel_time_t;
  66335. +typedef long __kernel_suseconds_t;
  66336. +typedef long __kernel_clock_t;
  66337. +typedef int __kernel_daddr_t;
  66338. +typedef char * __kernel_caddr_t;
  66339. +typedef int __kernel_ipc_pid_t;
  66340. +typedef unsigned short __kernel_uid16_t;
  66341. +typedef unsigned short __kernel_gid16_t;
  66342. +typedef unsigned int __kernel_uid32_t;
  66343. +typedef unsigned int __kernel_gid32_t;
  66344. +typedef unsigned int __kernel_old_uid_t;
  66345. +typedef unsigned int __kernel_old_gid_t;
  66346. +typedef __kernel_dev_t __kernel_old_dev_t;
  66347. +typedef long long __kernel_loff_t;
  66348. +typedef long __kernel_long_t;
  66349. +typedef unsigned long __kernel_ulong_t;
  66350. +
  66351. +typedef struct {
  66352. + int val[2];
  66353. +} __kernel_fsid_t;
  66354. +
  66355. +#endif /* __ASM_GENERIC_POSIX_TYPES_H */
  66356. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/profil-counter.h uClibc-git/libc/sysdeps/linux/metag/bits/profil-counter.h
  66357. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/profil-counter.h 1970-01-01 01:00:00.000000000 +0100
  66358. +++ uClibc-git/libc/sysdeps/linux/metag/bits/profil-counter.h 2014-06-02 17:40:34.530714841 +0200
  66359. @@ -0,0 +1,17 @@
  66360. +/*
  66361. + * Low-level statistical profiling support function. Linux/Meta version.
  66362. + *
  66363. + * Copyright (C) 2013, Imagination Technologies Ltd.
  66364. + *
  66365. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66366. + *
  66367. + * Based on the SH version from the GNU C Library.
  66368. + */
  66369. +
  66370. +#include <signal.h>
  66371. +
  66372. +static void
  66373. +profil_counter (int signo, struct sigcontext sc)
  66374. +{
  66375. + profil_count (sc.cbuf.ctx.CurrPC);
  66376. +}
  66377. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/setjmp.h uClibc-git/libc/sysdeps/linux/metag/bits/setjmp.h
  66378. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/setjmp.h 1970-01-01 01:00:00.000000000 +0100
  66379. +++ uClibc-git/libc/sysdeps/linux/metag/bits/setjmp.h 2014-06-02 17:40:34.530714841 +0200
  66380. @@ -0,0 +1,44 @@
  66381. +/*
  66382. + * Copyright (C) 2013, Imagination Technologies Ltd.
  66383. + *
  66384. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66385. + */
  66386. +
  66387. +/* Define the machine-dependent type `jmp_buf' */
  66388. +#ifndef _BITS_SETJMP_H
  66389. +#define _BITS_SETJMP_H 1
  66390. +
  66391. +#if !defined _SETJMP_H && !defined _PTHREAD_H
  66392. +# error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  66393. +#endif
  66394. +
  66395. +/*
  66396. + jmp_buf[0] - A0StP
  66397. + jmp_buf[1] - A1GbP
  66398. + jmp_buf[2] - A0FrP
  66399. + jmp_buf[3] - A1LbP
  66400. + jmp_buf[4] - D0FrT
  66401. + jmp_buf[5] - D1RtP
  66402. + jmp_buf[6] - D0.5
  66403. + jmp_buf[7] - D1.5
  66404. + jmp_buf[8] - D0.6
  66405. + jmp_buf[9] - D1.6
  66406. + jmp_buf[10] - D0.7
  66407. + jmp_buf[11] - D1.7
  66408. + */
  66409. +
  66410. +#define _JBLEN 24
  66411. +#if defined (__USE_MISC) || defined (_ASM)
  66412. +#define JB_SP 0
  66413. +#endif
  66414. +
  66415. +#ifndef _ASM
  66416. +typedef int __jmp_buf[_JBLEN] __attribute__((aligned (8)));
  66417. +#endif
  66418. +
  66419. +/* Test if longjmp to JMPBUF would unwind the frame
  66420. + containing a local variable at ADDRESS. */
  66421. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  66422. + ((void *) (address) > (void *) (jmpbuf)[JB_SP])
  66423. +
  66424. +#endif /* bits/setjmp.h */
  66425. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/metag/bits/sigcontextinfo.h
  66426. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/sigcontextinfo.h 1970-01-01 01:00:00.000000000 +0100
  66427. +++ uClibc-git/libc/sysdeps/linux/metag/bits/sigcontextinfo.h 2014-06-02 17:40:34.530714841 +0200
  66428. @@ -0,0 +1,14 @@
  66429. +/*
  66430. + * Copyright (C) 2013, Imagination Technologies Ltd.
  66431. + *
  66432. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66433. + *
  66434. + */
  66435. +
  66436. +#define SIGCONTEXT struct sigcontext
  66437. +#define SIGCONTEXT_EXTRA_ARGS
  66438. +#define GET_PC(ctx) ((void *) ctx.cbuf.ctx.CurrPC)
  66439. +#define GET_FRAME(ctx) ((void *) ctx.cbuf.ctx.AX[1].U0)
  66440. +#define GET_STACK(ctx) ((void *) ctx.cbuf.ctx.AX[0].U0)
  66441. +#define CALL_SIGHANDLER(handler, signo, ctx) \
  66442. + (handler)((signo), SIGCONTEXT_EXTRA_ARGS (ctx))
  66443. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/metag/bits/stackinfo.h
  66444. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/stackinfo.h 1970-01-01 01:00:00.000000000 +0100
  66445. +++ uClibc-git/libc/sysdeps/linux/metag/bits/stackinfo.h 2014-06-02 17:40:34.530714841 +0200
  66446. @@ -0,0 +1,28 @@
  66447. +/* Copyright (C) 2001 Free Software Foundation, Inc.
  66448. + This file is part of the GNU C Library.
  66449. +
  66450. + The GNU C Library is free software; you can redistribute it and/or
  66451. + modify it under the terms of the GNU Lesser General Public
  66452. + License as published by the Free Software Foundation; either
  66453. + version 2.1 of the License, or (at your option) any later version.
  66454. +
  66455. + The GNU C Library is distributed in the hope that it will be useful,
  66456. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  66457. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  66458. + Lesser General Public License for more details.
  66459. +
  66460. + You should have received a copy of the GNU Lesser General Public
  66461. + License along with the GNU C Library; if not, write to the Free
  66462. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  66463. + 02111-1307 USA. */
  66464. +
  66465. +/* This file contains a bit of information about the stack allocation
  66466. + of the processor. */
  66467. +
  66468. +#ifndef _STACKINFO_H
  66469. +#define _STACKINFO_H 1
  66470. +
  66471. +/* On Meta the stack grows up. */
  66472. +#define _STACK_GROWS_UP 1
  66473. +
  66474. +#endif /* stackinfo.h */
  66475. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/syscalls.h uClibc-git/libc/sysdeps/linux/metag/bits/syscalls.h
  66476. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/syscalls.h 1970-01-01 01:00:00.000000000 +0100
  66477. +++ uClibc-git/libc/sysdeps/linux/metag/bits/syscalls.h 2014-06-02 17:40:34.530714841 +0200
  66478. @@ -0,0 +1,120 @@
  66479. +/*
  66480. + * Copyright (C) 2013 Imagination Technologies Ltd.
  66481. + *
  66482. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66483. + *
  66484. + */
  66485. +
  66486. +#ifndef _BITS_SYSCALLS_H
  66487. +#define _BITS_SYSCALLS_H
  66488. +#ifndef _SYSCALL_H
  66489. +# error "Never use <bits/syscalls.h> directly; include <sys/syscall.h> instead."
  66490. +#endif
  66491. +
  66492. +/*
  66493. + Meta version adapted from the ARM version.
  66494. +*/
  66495. +
  66496. +#define SYS_ify(syscall_name) (__NR_##syscall_name)
  66497. +
  66498. +#ifdef __ASSEMBLER__
  66499. +
  66500. +/* Call a given syscall, with arguments loaded. */
  66501. +#undef DO_CALL
  66502. +#define DO_CALL(syscall_name, args) \
  66503. + MOV D1Re0, #SYS_ify (syscall_name); \
  66504. + SWITCH #0x440001
  66505. +
  66506. +#else
  66507. +
  66508. +#include <errno.h>
  66509. +
  66510. +#undef INLINE_SYSCALL_NCS
  66511. +#define INLINE_SYSCALL_NCS(name, nr, args...) \
  66512. +(__extension__ \
  66513. + ({ unsigned int _inline_sys_result = INTERNAL_SYSCALL_NCS (name, , nr, args); \
  66514. + if (unlikely(INTERNAL_SYSCALL_ERROR_P (_inline_sys_result, ))) \
  66515. + { \
  66516. + __set_errno (INTERNAL_SYSCALL_ERRNO (_inline_sys_result, )); \
  66517. + _inline_sys_result = (unsigned int) -1; \
  66518. + } \
  66519. + (int) _inline_sys_result; }) \
  66520. +)
  66521. +
  66522. +#undef INTERNAL_SYSCALL_DECL
  66523. +#define INTERNAL_SYSCALL_DECL(err) do { } while (0)
  66524. +
  66525. +#undef INTERNAL_SYSCALL_NCS
  66526. +#define INTERNAL_SYSCALL_NCS(name, err, nr, args...) \
  66527. +(__extension__ \
  66528. + ({unsigned int __sys_result; \
  66529. + { \
  66530. + PREP_ARGS_##nr (args); \
  66531. + register int _result __asm__ ("D0Re0"), _nr __asm__ ("D1Re0"); \
  66532. + LOAD_ARGS_##nr; \
  66533. + _nr = (name); \
  66534. + __asm__ volatile ("SWITCH #0x440001 ! syscall " #name \
  66535. + : "=r" (_result) \
  66536. + : "d" (_nr) ASM_ARGS_##nr \
  66537. + : "memory"); \
  66538. + __sys_result = _result; \
  66539. + } \
  66540. + (int) __sys_result; }) \
  66541. +)
  66542. +
  66543. +#undef INTERNAL_SYSCALL_ERROR_P
  66544. +#define INTERNAL_SYSCALL_ERROR_P(val, err) \
  66545. + ((unsigned int) (val) >= 0xfffff001u)
  66546. +
  66547. +#undef INTERNAL_SYSCALL_ERRNO
  66548. +#define INTERNAL_SYSCALL_ERRNO(val, err) (-(val))
  66549. +
  66550. +#define PREP_ARGS_0()
  66551. +#define PREP_ARGS_1(a1) \
  66552. + int _t1 = (int) (a1); \
  66553. + PREP_ARGS_0 ()
  66554. +#define PREP_ARGS_2(a1, a2) \
  66555. + int _t2 = (int) (a2); \
  66556. + PREP_ARGS_1 (a1)
  66557. +#define PREP_ARGS_3(a1, a2, a3) \
  66558. + int _t3 = (int) (a3); \
  66559. + PREP_ARGS_2 (a1, a2)
  66560. +#define PREP_ARGS_4(a1, a2, a3, a4) \
  66561. + int _t4 = (int) (a4); \
  66562. + PREP_ARGS_3 (a1, a2, a3)
  66563. +#define PREP_ARGS_5(a1, a2, a3, a4, a5) \
  66564. + int _t5 = (int) (a5); \
  66565. + PREP_ARGS_4 (a1, a2, a3, a4)
  66566. +#define PREP_ARGS_6(a1, a2, a3, a4, a5, a6) \
  66567. + int _t6 = (int) (a6); \
  66568. + PREP_ARGS_5 (a1, a2, a3, a4, a5)
  66569. +
  66570. +#define LOAD_ARGS_0
  66571. +#define ASM_ARGS_0
  66572. +#define LOAD_ARGS_1 \
  66573. + register int _a1 __asm__ ("D1Ar1") = (int) (_t1); \
  66574. + LOAD_ARGS_0
  66575. +#define ASM_ARGS_1 ASM_ARGS_0, "d" (_a1)
  66576. +#define LOAD_ARGS_2 \
  66577. + register int _a2 __asm__ ("D0Ar2") = (int) (_t2); \
  66578. + LOAD_ARGS_1
  66579. +#define ASM_ARGS_2 ASM_ARGS_1, "d" (_a2)
  66580. +#define LOAD_ARGS_3 \
  66581. + register int _a3 __asm__ ("D1Ar3") = (int) (_t3); \
  66582. + LOAD_ARGS_2
  66583. +#define ASM_ARGS_3 ASM_ARGS_2, "d" (_a3)
  66584. +#define LOAD_ARGS_4 \
  66585. + register int _a4 __asm__ ("D0Ar4") = (int) (_t4); \
  66586. + LOAD_ARGS_3
  66587. +#define ASM_ARGS_4 ASM_ARGS_3, "d" (_a4)
  66588. +#define LOAD_ARGS_5 \
  66589. + register int _a5 __asm__ ("D1Ar5") = (int) (_t5); \
  66590. + LOAD_ARGS_4
  66591. +#define ASM_ARGS_5 ASM_ARGS_4, "d" (_a5)
  66592. +#define LOAD_ARGS_6 \
  66593. + register int _a6 __asm__ ("D0Ar6") = (int) (_t6); \
  66594. + LOAD_ARGS_5
  66595. +#define ASM_ARGS_6 ASM_ARGS_5, "d" (_a6)
  66596. +
  66597. +#endif /* __ASSEMBLER__ */
  66598. +#endif /* _BITS_SYSCALLS_H */
  66599. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/metag/bits/uClibc_arch_features.h
  66600. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/uClibc_arch_features.h 1970-01-01 01:00:00.000000000 +0100
  66601. +++ uClibc-git/libc/sysdeps/linux/metag/bits/uClibc_arch_features.h 2014-06-02 17:40:34.530714841 +0200
  66602. @@ -0,0 +1,46 @@
  66603. +/*
  66604. + * Track misc arch-specific features that aren't config options
  66605. + *
  66606. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  66607. + *
  66608. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66609. + */
  66610. +
  66611. +#ifndef _BITS_UCLIBC_ARCH_FEATURES_H
  66612. +#define _BITS_UCLIBC_ARCH_FEATURES_H
  66613. +
  66614. +/* instruction used when calling abort() to kill yourself */
  66615. +/*#define __UCLIBC_ABORT_INSTRUCTION__ "asm instruction"*/
  66616. +#undef __UCLIBC_ABORT_INSTRUCTION__
  66617. +
  66618. +/* can your target use syscall6() for mmap ? */
  66619. +#define __UCLIBC_MMAP_HAS_6_ARGS__
  66620. +
  66621. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  66622. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  66623. +
  66624. +/* does your target have a broken create_module() ? */
  66625. +#undef __UCLIBC_BROKEN_CREATE_MODULE__
  66626. +
  66627. +/* does your target have to worry about older [gs]etrlimit() ? */
  66628. +#undef __UCLIBC_HANDLE_OLDER_RLIMIT__
  66629. +
  66630. +/* does your target have an asm .set ? */
  66631. +#define __UCLIBC_HAVE_ASM_SET_DIRECTIVE__
  66632. +
  66633. +/* define if target doesn't like .global */
  66634. +#undef __UCLIBC_ASM_GLOBAL_DIRECTIVE__
  66635. +
  66636. +/* define if target supports .weak */
  66637. +#define __UCLIBC_HAVE_ASM_WEAK_DIRECTIVE__
  66638. +
  66639. +/* define if target supports .weakext */
  66640. +#undef __UCLIBC_HAVE_ASM_WEAKEXT_DIRECTIVE__
  66641. +
  66642. +/* needed probably only for ppc64 */
  66643. +#undef __UCLIBC_HAVE_ASM_GLOBAL_DOT_NAME__
  66644. +
  66645. +/* define if target supports IEEE signed zero floats */
  66646. +#define __UCLIBC_HAVE_SIGNED_ZERO__
  66647. +
  66648. +#endif /* _BITS_UCLIBC_ARCH_FEATURES_H */
  66649. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/wordsize.h uClibc-git/libc/sysdeps/linux/metag/bits/wordsize.h
  66650. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/bits/wordsize.h 1970-01-01 01:00:00.000000000 +0100
  66651. +++ uClibc-git/libc/sysdeps/linux/metag/bits/wordsize.h 2014-06-02 17:40:34.530714841 +0200
  66652. @@ -0,0 +1,19 @@
  66653. +/* Copyright (C) 1999 Free Software Foundation, Inc.
  66654. + This file is part of the GNU C Library.
  66655. +
  66656. + The GNU C Library is free software; you can redistribute it and/or
  66657. + modify it under the terms of the GNU Lesser General Public
  66658. + License as published by the Free Software Foundation; either
  66659. + version 2.1 of the License, or (at your option) any later version.
  66660. +
  66661. + The GNU C Library is distributed in the hope that it will be useful,
  66662. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  66663. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  66664. + Lesser General Public License for more details.
  66665. +
  66666. + You should have received a copy of the GNU Lesser General Public
  66667. + License along with the GNU C Library; if not, write to the Free
  66668. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  66669. + 02111-1307 USA. */
  66670. +
  66671. +#define __WORDSIZE 32
  66672. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/brk.c uClibc-git/libc/sysdeps/linux/metag/brk.c
  66673. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/brk.c 1970-01-01 01:00:00.000000000 +0100
  66674. +++ uClibc-git/libc/sysdeps/linux/metag/brk.c 2014-06-02 17:40:34.530714841 +0200
  66675. @@ -0,0 +1,38 @@
  66676. +/*
  66677. + * Copyright (C) 2013 Imagination Technologies Ltd.
  66678. + *
  66679. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66680. + */
  66681. +
  66682. +#include <errno.h>
  66683. +#include <unistd.h>
  66684. +#include <sys/syscall.h>
  66685. +
  66686. +libc_hidden_proto(brk)
  66687. +
  66688. +/* This must be initialized data because commons can't have aliases. */
  66689. +void * __curbrk attribute_hidden = 0;
  66690. +
  66691. +int brk (void *addr)
  66692. +{
  66693. + void *newbrk;
  66694. +
  66695. + __asm__ __volatile__ ("MOV D1Re0,%2\n\t"
  66696. + "MOV D1Ar1,%1\n\t"
  66697. + "SWITCH #0x440001\n\t"
  66698. + "MOV %0,D0Re0"
  66699. + : "=r" (newbrk)
  66700. + : "r" (addr), "K" (__NR_brk)
  66701. + : "D0Re0", "D1Re0", "D1Ar1");
  66702. +
  66703. + __curbrk = newbrk;
  66704. +
  66705. + if (newbrk < addr)
  66706. + {
  66707. + __set_errno (ENOMEM);
  66708. + return -1;
  66709. + }
  66710. +
  66711. + return 0;
  66712. +}
  66713. +libc_hidden_def(brk)
  66714. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/clone.S uClibc-git/libc/sysdeps/linux/metag/clone.S
  66715. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/clone.S 1970-01-01 01:00:00.000000000 +0100
  66716. +++ uClibc-git/libc/sysdeps/linux/metag/clone.S 2014-06-02 17:40:34.530714841 +0200
  66717. @@ -0,0 +1,101 @@
  66718. +! Copyright (C) 2013 Imagination Technologies Ltd.
  66719. +
  66720. +! Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66721. +
  66722. +! clone() is even more special than fork() as it mucks with stacks
  66723. +! and invokes a function in the right context after its all over.
  66724. +
  66725. +#include <asm/errno.h>
  66726. +#include <asm/unistd.h>
  66727. +
  66728. +#define CLONE_VM 0x00000100
  66729. +#define CLONE_THREAD 0x00010000
  66730. +
  66731. +#ifdef __PIC__
  66732. +#define __CLONE_METAG_LOAD_TP ___metag_load_tp@PLT
  66733. +#else
  66734. +#define __CLONE_METAG_LOAD_TP ___metag_load_tp
  66735. +#endif
  66736. +
  66737. +/* int clone(int (*fn)(void *arg), void *child_stack, int flags, void *arg,
  66738. + pid_t *ptid, struct user_desc *tls, pid_t *ctid); */
  66739. +
  66740. + .text
  66741. + .global __clone
  66742. + .type __clone,function
  66743. +__clone:
  66744. + ! sanity check args
  66745. + MOV D0Re0, #-EINVAL
  66746. + CMP D1Ar1, #0
  66747. + BEQ ___error
  66748. + CMP D0Ar2, #0
  66749. + BEQ ___error
  66750. +
  66751. + ! save function pointer
  66752. + MOV D0FrT, D1Ar1
  66753. +
  66754. + ! do the system call
  66755. + MOV D1Ar1, D1Ar3
  66756. + MOV D1Ar3, D1Ar5
  66757. + MOV D1Ar5, D0Ar6
  66758. + MOV D0Ar6, D0Ar4
  66759. + GETD D0Ar4, [A0StP+#-4]
  66760. +
  66761. + ! new sp is already in D0Ar2
  66762. + MOV D1Re0, #__NR_clone
  66763. + SWITCH #0x440001
  66764. + CMP D0Re0,#0
  66765. + ! Error on -1
  66766. + BLT ___error
  66767. + ! If non-zero we are the parent
  66768. + MOVNE PC, D1RtP
  66769. + ! BRKPNT
  66770. +
  66771. + ! We are the child
  66772. +#ifdef RESET_PID
  66773. + SETL [A0StP++], D0FrT, D1RtP
  66774. + MOVT D0FrT, #HI(CLONE_THREAD)
  66775. + ADD D0FrT, D0FrT, #LO(CLONE_THREAD)
  66776. + ANDS D0FrT, D0FrT, D1Ar1
  66777. + BNZ 3f
  66778. + MOVT D0FrT, #HI(CLONE_VM)
  66779. + ADD D0FrT, D0FrT, #LO(CLONE_VM)
  66780. + ANDS D0FrT, D0FrT, D1Ar1
  66781. + BZ 1f
  66782. + MOV D1Ar1, #-1
  66783. + BA 2f
  66784. +1: MOV D1Re0, #__NR_getpid
  66785. + SWITCH #0x440001
  66786. + MOV D1Ar1, D0Re0
  66787. +2: CALLR D1RtP, __CLONE_METAG_LOAD_TP
  66788. + SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE
  66789. + SETD [D0Re0 + #PID], D1Ar1
  66790. + SETD [D0Re0 + #TID], D1Ar1
  66791. +3: GETL D0FrT, D1RtP, [--A0StP]
  66792. +#endif
  66793. + ! Rearrange the function arg and call address from registers
  66794. + MOV D0Ar2, D0FrT
  66795. + MOV D1Ar1, D0Ar6
  66796. + MOV D1RtP, PC
  66797. + ADD D1RtP, D1RtP, #8
  66798. + MOV PC, D0Ar2
  66799. +
  66800. + ! and we are done, passing the return value D0Re0 through D1Ar1
  66801. + MOV D1Ar1, D0Re0
  66802. +#ifdef __PIC__
  66803. + B _exit@PLT
  66804. +#else
  66805. + B _exit
  66806. +#endif
  66807. +
  66808. +___error:
  66809. + MOV D1Ar1, D0Re0
  66810. +#ifdef __PIC__
  66811. + B ___syscall_error@PLT
  66812. +#else
  66813. + B ___syscall_error
  66814. +#endif
  66815. + .size __clone, .-__clone
  66816. +
  66817. +.weak _clone
  66818. +_clone = __clone
  66819. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/crt1.S uClibc-git/libc/sysdeps/linux/metag/crt1.S
  66820. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/crt1.S 1970-01-01 01:00:00.000000000 +0100
  66821. +++ uClibc-git/libc/sysdeps/linux/metag/crt1.S 2014-06-02 17:40:34.530714841 +0200
  66822. @@ -0,0 +1,75 @@
  66823. +! Copyright (C) 2013 Imagination Technologies Ltd.
  66824. +
  66825. +! Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66826. +
  66827. +
  66828. +#include <asm/unistd.h>
  66829. +
  66830. + .text
  66831. + .global __start
  66832. + .type __start,function
  66833. +__start:
  66834. + MOV D0FrT,A0StP
  66835. + MOV A0FrP,A0StP
  66836. +
  66837. + MOV A0.2,#0
  66838. + MOV A0.3,#0
  66839. +
  66840. + MOV A1.1,#0
  66841. + MOV A1.2,#0
  66842. + MOV A1.3,#0
  66843. +
  66844. + MOV D0.5,#0
  66845. + MOV D0.6,#0
  66846. + MOV D0.7,#0
  66847. +
  66848. + MOV D1.5,#0
  66849. + MOV D1.6,#0
  66850. + MOV D1.7,#0
  66851. +
  66852. + MOV D1Ar3,D0Ar2 ! argv
  66853. + MOV D0Ar2,D1Ar1 ! argc
  66854. + MOV D0Ar6,D0Ar4 ! rtld_fini
  66855. +
  66856. +#ifdef __PIC__
  66857. + ADDT A1LbP,CPC1,#HI(__GLOBAL_OFFSET_TABLE__)
  66858. + ADD A1LbP,A1LbP,#LO(__GLOBAL_OFFSET_TABLE__+4)
  66859. +
  66860. + MOV D1Ar1,A1LbP
  66861. + ADDT D1Ar1,D1Ar1,#HI(_main@GOTOFF)
  66862. + ADD D1Ar1,D1Ar1,#LO(_main@GOTOFF)
  66863. +
  66864. + MOV D0Ar4,A1LbP
  66865. + ADDT D0Ar4,D0Ar4,#HI(__init@GOTOFF)
  66866. + ADD D0Ar4,D0Ar4,#LO(__init@GOTOFF)
  66867. +
  66868. + MOV D1Ar5,A1LbP
  66869. + ADDT D1Ar5,D1Ar5,#HI(__fini@GOTOFF)
  66870. + ADD D1Ar5,D1Ar5,#LO(__fini@GOTOFF)
  66871. +#else
  66872. + MOVT D1Ar1,#HI(_main)
  66873. + ADD D1Ar1,D1Ar1,#LO(_main)
  66874. + MOVT D0Ar4,#HI(__init)
  66875. + ADD D0Ar4,D0Ar4,#LO(__init)
  66876. + MOVT D1Ar5,#HI(__fini)
  66877. + ADD D1Ar5,D1Ar5,#LO(__fini)
  66878. +#endif
  66879. +
  66880. + MOVT D1Re0,#0x80
  66881. +
  66882. + SETL [A0StP++],D0Re0,D1Re0 ! stack_end (8Mb)
  66883. +
  66884. + MOV D1Re0,#0
  66885. + MOV D0Re0,#0
  66886. +
  66887. +#ifdef __PIC__
  66888. + CALLR D1RtP, ___uClibc_main@PLT
  66889. +#else
  66890. + CALLR D1RtP, ___uClibc_main
  66891. +#endif
  66892. +
  66893. + MOV D1Re0,#__NR_exit
  66894. + MOV D1Ar1,#0x1
  66895. + SWITCH #0x440001 ! exit syscall
  66896. +
  66897. + .size __start,.-__start
  66898. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/crti.S uClibc-git/libc/sysdeps/linux/metag/crti.S
  66899. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/crti.S 1970-01-01 01:00:00.000000000 +0100
  66900. +++ uClibc-git/libc/sysdeps/linux/metag/crti.S 2014-06-02 17:40:34.530714841 +0200
  66901. @@ -0,0 +1,19 @@
  66902. +! Copyright (C) 2013 Imagination Technologies Ltd.
  66903. +
  66904. +! Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66905. +
  66906. + .section .init
  66907. + .global __init
  66908. + .type __init,function
  66909. +__init:
  66910. + MOV D0FrT, A0FrP
  66911. + ADD A0FrP, A0StP, #0
  66912. + SETL [A0StP++], D0.4, D1RtP
  66913. +
  66914. + .section .fini
  66915. + .global __fini
  66916. + .type __fini,function
  66917. +__fini:
  66918. + MOV D0FrT, A0FrP
  66919. + ADD A0FrP, A0StP, #0
  66920. + SETL [A0StP++], D0.4, D1RtP
  66921. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/crtn.S uClibc-git/libc/sysdeps/linux/metag/crtn.S
  66922. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/crtn.S 1970-01-01 01:00:00.000000000 +0100
  66923. +++ uClibc-git/libc/sysdeps/linux/metag/crtn.S 2014-06-02 17:40:34.530714841 +0200
  66924. @@ -0,0 +1,19 @@
  66925. +! Copyright (C) 2013 Imagination Technologies Ltd.
  66926. +
  66927. +! Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66928. +
  66929. + .section .init
  66930. + .global __init
  66931. + .type __init,function
  66932. + GETL D0.4, D1RtP, [A0FrP+#8++]
  66933. + SUB A0StP, A0FrP, #8
  66934. + MOV A0FrP, D0.4
  66935. + MOV PC, D1RtP
  66936. +
  66937. + .section .fini
  66938. + .global __fini
  66939. + .type __fini,function
  66940. + GETL D0.4, D1RtP, [A0FrP+#8++]
  66941. + SUB A0StP, A0FrP, #8
  66942. + MOV A0FrP, D0.4
  66943. + MOV PC, D1RtP
  66944. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/libc-metag_load_tp.S uClibc-git/libc/sysdeps/linux/metag/libc-metag_load_tp.S
  66945. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/libc-metag_load_tp.S 1970-01-01 01:00:00.000000000 +0100
  66946. +++ uClibc-git/libc/sysdeps/linux/metag/libc-metag_load_tp.S 2014-06-02 17:40:34.530714841 +0200
  66947. @@ -0,0 +1,7 @@
  66948. +/*
  66949. + * Copyright (C) 2013 Imagination Technologies Ltd.
  66950. + *
  66951. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66952. + */
  66953. +
  66954. +#include <ldso/ldso/metag/metag_load_tp.S>
  66955. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/_longjmp.S uClibc-git/libc/sysdeps/linux/metag/_longjmp.S
  66956. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/_longjmp.S 1970-01-01 01:00:00.000000000 +0100
  66957. +++ uClibc-git/libc/sysdeps/linux/metag/_longjmp.S 2014-06-02 17:40:34.530714841 +0200
  66958. @@ -0,0 +1,25 @@
  66959. +! Copyright (C) 2013 Imagination Technologies Ltd.
  66960. +
  66961. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66962. +
  66963. +
  66964. + .text
  66965. + .global ___longjmp
  66966. + .type ___longjmp,function
  66967. +
  66968. +___longjmp:
  66969. + !! If val is 0, set it to 1
  66970. + CMP D0Ar2,#0
  66971. + ADDZ D0Ar2,D0Ar2,#1
  66972. +
  66973. + !! Restore A0/A1 regs
  66974. + MGETL A0.0,A0.1,[D1Ar1++]
  66975. + !! Restore D0/D1 regs
  66976. + MOV A0.3,D1Ar1
  66977. + MGETL D0FrT,D0.5,D0.6,D0.7,[A0.3++]
  66978. + !! Move 2nd argument to return value
  66979. + MOV D0Re0,D0Ar2
  66980. + MOV PC,D1RtP
  66981. + .size ___longjmp,.-___longjmp
  66982. +
  66983. +libc_hidden_def(__longjmp)
  66984. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/Makefile uClibc-git/libc/sysdeps/linux/metag/Makefile
  66985. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/Makefile 1970-01-01 01:00:00.000000000 +0100
  66986. +++ uClibc-git/libc/sysdeps/linux/metag/Makefile 2014-06-02 17:40:34.530714841 +0200
  66987. @@ -0,0 +1,13 @@
  66988. +# Makefile for uClibc
  66989. +#
  66990. +# Copyright (C) 2000-2005 Erik Andersen <andersen@uclibc.org>
  66991. +#
  66992. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  66993. +#
  66994. +
  66995. +top_srcdir=../../../../
  66996. +top_builddir=../../../../
  66997. +all: objs
  66998. +include $(top_builddir)Rules.mak
  66999. +include Makefile.arch
  67000. +include $(top_srcdir)Makerules
  67001. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/Makefile.arch uClibc-git/libc/sysdeps/linux/metag/Makefile.arch
  67002. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/Makefile.arch 1970-01-01 01:00:00.000000000 +0100
  67003. +++ uClibc-git/libc/sysdeps/linux/metag/Makefile.arch 2014-06-02 17:40:34.530714841 +0200
  67004. @@ -0,0 +1,12 @@
  67005. +# Makefile for uClibc
  67006. +#
  67007. +# Copyright (C) 2013 Imagination Technologies Ltd.
  67008. +#
  67009. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67010. +#
  67011. +
  67012. +CSRC-y := brk.c syscall.c metag.c __syscall_error.c
  67013. +
  67014. +SSRC-y := _longjmp.S clone.S setjmp.S vfork.S
  67015. +
  67016. +SSRC-$(UCLIBC_HAS_THREADS_NATIVE) += libc-metag_load_tp.S
  67017. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/metag.c uClibc-git/libc/sysdeps/linux/metag/metag.c
  67018. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/metag.c 1970-01-01 01:00:00.000000000 +0100
  67019. +++ uClibc-git/libc/sysdeps/linux/metag/metag.c 2014-06-02 17:40:34.530714841 +0200
  67020. @@ -0,0 +1,11 @@
  67021. +/*
  67022. + * Copyright (C) 2013 Imagination Technologies Ltd.
  67023. + *
  67024. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67025. + */
  67026. +
  67027. +#include <errno.h>
  67028. +#include <sys/syscall.h>
  67029. +
  67030. +_syscall2(int,metag_setglobalbit,char *,addr,int,mask)
  67031. +_syscall1(void,metag_set_fpu_flags,unsigned int,flags)
  67032. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/setjmp.S uClibc-git/libc/sysdeps/linux/metag/setjmp.S
  67033. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/setjmp.S 1970-01-01 01:00:00.000000000 +0100
  67034. +++ uClibc-git/libc/sysdeps/linux/metag/setjmp.S 2014-06-02 17:40:34.530714841 +0200
  67035. @@ -0,0 +1,52 @@
  67036. +/*
  67037. + * Copyright (C) 2013 Imagination Technologies Ltd.
  67038. + *
  67039. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67040. + */
  67041. +
  67042. +!!! setjmp and variants
  67043. + .text
  67044. +
  67045. +!! int _setjmp (jmp_buf __env)
  67046. +!! Store the calling environment in ENV, not saving the signal mask.
  67047. +!! Return 0. */
  67048. + .global __setjmp
  67049. + .type __setjmp,function
  67050. +__setjmp:
  67051. + MOV D0Ar2,#0
  67052. + B ___sigsetjmp1
  67053. + .size __setjmp,.-__setjmp
  67054. +
  67055. +!! int setjmp (jmp_buf __env)
  67056. +!! Store the calling environment in ENV, also saving the signal mask.
  67057. +!! Return 0. */
  67058. + .global _setjmp
  67059. + .type _setjmp,function
  67060. +_setjmp:
  67061. + MOV D0Ar2,#1
  67062. + !! fall through to __sigsetjmp
  67063. + .size _setjmp,.-_setjmp
  67064. +
  67065. +!! int __sigsetjmp (jmp_buf __env, int __savemask)
  67066. +!! Store the calling environment in ENV, also saving the
  67067. +!! signal mask if SAVEMASK is nonzero. Return 0.
  67068. +!! This is the internal name for `sigsetjmp'.
  67069. + .global ___sigsetjmp
  67070. + .type ___sigsetjmp,function
  67071. +___sigsetjmp:
  67072. +___sigsetjmp1:
  67073. + !! Save A0/A1 regs
  67074. + MSETL [D1Ar1++],A0.0,A0.1
  67075. + !! Use A0.3 as temp
  67076. + MOV A0.3,D1Ar1
  67077. + !! Rewind D1Ar1 that was modified above
  67078. + SUB D1Ar1,D1Ar1,#(2*8)
  67079. + !! Save D0/D1 regs
  67080. + MSETL [A0.3++],D0FrT,D0.5,D0.6,D0.7
  67081. + !! Tail call __sigjmp_save
  67082. +#ifdef __PIC__
  67083. + B ___sigjmp_save@PLT
  67084. +#else
  67085. + B ___sigjmp_save
  67086. +#endif
  67087. + .size ___sigsetjmp,.-___sigsetjmp
  67088. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/io.h uClibc-git/libc/sysdeps/linux/metag/sys/io.h
  67089. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/io.h 1970-01-01 01:00:00.000000000 +0100
  67090. +++ uClibc-git/libc/sysdeps/linux/metag/sys/io.h 2014-06-02 17:40:34.534714863 +0200
  67091. @@ -0,0 +1,48 @@
  67092. +/* Copyright (C) 1996, 1998, 1999, 2000 Free Software Foundation, Inc.
  67093. + This file is part of the GNU C Library.
  67094. +
  67095. + The GNU C Library is free software; you can redistribute it and/or
  67096. + modify it under the terms of the GNU Lesser General Public
  67097. + License as published by the Free Software Foundation; either
  67098. + version 2.1 of the License, or (at your option) any later version.
  67099. +
  67100. + The GNU C Library is distributed in the hope that it will be useful,
  67101. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  67102. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  67103. + Lesser General Public License for more details.
  67104. +
  67105. + You should have received a copy of the GNU Lesser General Public
  67106. + License along with the GNU C Library; if not, write to the Free
  67107. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67108. + 02111-1307 USA. */
  67109. +
  67110. +#ifndef _SYS_IO_H
  67111. +
  67112. +#define _SYS_IO_H 1
  67113. +#include <features.h>
  67114. +
  67115. +__BEGIN_DECLS
  67116. +
  67117. +/* If TURN_ON is TRUE, request for permission to do direct i/o on the
  67118. + port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
  67119. + permission off for that range. This call requires root privileges. */
  67120. +extern int ioperm (unsigned long int __from, unsigned long int __num,
  67121. + int __turn_on) __THROW;
  67122. +
  67123. +/* Set the I/O privilege level to LEVEL. If LEVEL is nonzero,
  67124. + permission to access any I/O port is granted. This call requires
  67125. + root privileges. */
  67126. +extern int iopl (int __level) __THROW;
  67127. +
  67128. +/* The functions that actually perform reads and writes. */
  67129. +extern unsigned char inb (unsigned long int port) __THROW;
  67130. +extern unsigned short int inw (unsigned long int port) __THROW;
  67131. +extern unsigned long int inl (unsigned long int port) __THROW;
  67132. +
  67133. +extern void outb (unsigned char value, unsigned long int port) __THROW;
  67134. +extern void outw (unsigned short value, unsigned long int port) __THROW;
  67135. +extern void outl (unsigned long value, unsigned long int port) __THROW;
  67136. +
  67137. +__END_DECLS
  67138. +
  67139. +#endif /* _SYS_IO_H */
  67140. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/procfs.h uClibc-git/libc/sysdeps/linux/metag/sys/procfs.h
  67141. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/procfs.h 1970-01-01 01:00:00.000000000 +0100
  67142. +++ uClibc-git/libc/sysdeps/linux/metag/sys/procfs.h 2014-06-02 17:40:34.534714863 +0200
  67143. @@ -0,0 +1,121 @@
  67144. +/* Copyright (C) 1996, 1997, 1999, 2007 Free Software Foundation, Inc.
  67145. + This file is part of the GNU C Library.
  67146. +
  67147. + The GNU C Library is free software; you can redistribute it and/or
  67148. + modify it under the terms of the GNU Lesser General Public
  67149. + License as published by the Free Software Foundation; either
  67150. + version 2.1 of the License, or (at your option) any later version.
  67151. +
  67152. + The GNU C Library is distributed in the hope that it will be useful,
  67153. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  67154. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  67155. + Lesser General Public License for more details.
  67156. +
  67157. + You should have received a copy of the GNU Lesser General Public
  67158. + License along with the GNU C Library; if not, write to the Free
  67159. + Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  67160. + Boston, MA 02110-1301, USA. */
  67161. +
  67162. +#ifndef _SYS_PROCFS_H
  67163. +#define _SYS_PROCFS_H 1
  67164. +
  67165. +/* This is somewhat modelled after the file of the same name on SVR4
  67166. + systems. It provides a definition of the core file format for ELF
  67167. + used on Linux. It doesn't have anything to do with the /proc file
  67168. + system, even though Linux has one.
  67169. +
  67170. + Anyway, the whole purpose of this file is for GDB and GDB only.
  67171. + Don't read too much into it. Don't use it for anything other than
  67172. + GDB unless you know what you are doing. */
  67173. +
  67174. +#include <features.h>
  67175. +#include <sys/time.h>
  67176. +#include <sys/types.h>
  67177. +#include <sys/user.h>
  67178. +
  67179. +__BEGIN_DECLS
  67180. +
  67181. +/* Type for a general-purpose register. */
  67182. +typedef unsigned long elf_greg_t;
  67183. +
  67184. +#define ELF_NGREG 30
  67185. +typedef elf_greg_t elf_gregset_t[ELF_NGREG];
  67186. +
  67187. +/* Register set for the floating-point registers. */
  67188. +#define ELF_NFPREG 18
  67189. +typedef unsigned long elf_fpreg_t;
  67190. +typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
  67191. +
  67192. +/* Signal info. */
  67193. +struct elf_siginfo
  67194. + {
  67195. + int si_signo; /* Signal number. */
  67196. + int si_code; /* Extra code. */
  67197. + int si_errno; /* Errno. */
  67198. + };
  67199. +
  67200. +/* Definitions to generate Intel SVR4-like core files. These mostly
  67201. + have the same names as the SVR4 types with "elf_" tacked on the
  67202. + front to prevent clashes with Linux definitions, and the typedef
  67203. + forms have been avoided. This is mostly like the SVR4 structure,
  67204. + but more Linuxy, with things that Linux does not support and which
  67205. + GDB doesn't really use excluded. */
  67206. +
  67207. +struct elf_prstatus
  67208. + {
  67209. + struct elf_siginfo pr_info; /* Info associated with signal. */
  67210. + short int pr_cursig; /* Current signal. */
  67211. + unsigned long int pr_sigpend; /* Set of pending signals. */
  67212. + unsigned long int pr_sighold; /* Set of held signals. */
  67213. + __pid_t pr_pid;
  67214. + __pid_t pr_ppid;
  67215. + __pid_t pr_pgrp;
  67216. + __pid_t pr_sid;
  67217. + struct timeval pr_utime; /* User time. */
  67218. + struct timeval pr_stime; /* System time. */
  67219. + struct timeval pr_cutime; /* Cumulative user time. */
  67220. + struct timeval pr_cstime; /* Cumulative system time. */
  67221. + elf_gregset_t pr_reg; /* GP registers. */
  67222. + int pr_fpvalid; /* True if math copro being used. */
  67223. + };
  67224. +
  67225. +
  67226. +#define ELF_PRARGSZ (80) /* Number of chars for args. */
  67227. +
  67228. +struct elf_prpsinfo
  67229. + {
  67230. + char pr_state; /* Numeric process state. */
  67231. + char pr_sname; /* Char for pr_state. */
  67232. + char pr_zomb; /* Zombie. */
  67233. + char pr_nice; /* Nice val. */
  67234. + unsigned long int pr_flag; /* Flags. */
  67235. + unsigned short int pr_uid;
  67236. + unsigned short int pr_gid;
  67237. + int pr_pid, pr_ppid, pr_pgrp, pr_sid;
  67238. + /* Lots missing */
  67239. + char pr_fname[16]; /* Filename of executable. */
  67240. + char pr_psargs[ELF_PRARGSZ]; /* Initial part of arg list. */
  67241. + };
  67242. +
  67243. +/* The rest of this file provides the types for emulation of the
  67244. + Solaris <proc_service.h> interfaces that should be implemented by
  67245. + users of libthread_db. */
  67246. +
  67247. +/* Addresses. */
  67248. +typedef void *psaddr_t;
  67249. +
  67250. +/* Register sets. Linux has different names. */
  67251. +typedef elf_gregset_t prgregset_t;
  67252. +typedef elf_fpregset_t prfpregset_t;
  67253. +
  67254. +/* We don't have any differences between processes and threads,
  67255. + therefore have only one PID type. */
  67256. +typedef __pid_t lwpid_t;
  67257. +
  67258. +/* Process status and info. In the end we do provide typedefs for them. */
  67259. +typedef struct elf_prstatus prstatus_t;
  67260. +typedef struct elf_prpsinfo prpsinfo_t;
  67261. +
  67262. +__END_DECLS
  67263. +
  67264. +#endif /* sys/procfs.h */
  67265. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/ucontext.h uClibc-git/libc/sysdeps/linux/metag/sys/ucontext.h
  67266. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/ucontext.h 1970-01-01 01:00:00.000000000 +0100
  67267. +++ uClibc-git/libc/sysdeps/linux/metag/sys/ucontext.h 2014-06-02 17:40:34.534714863 +0200
  67268. @@ -0,0 +1,96 @@
  67269. +/* Copyright (C) 1998, 1999, 2001, 2006 Free Software Foundation, Inc.
  67270. + This file is part of the GNU C Library.
  67271. +
  67272. + The GNU C Library is free software; you can redistribute it and/or
  67273. + modify it under the terms of the GNU Lesser General Public
  67274. + License as published by the Free Software Foundation; either
  67275. + version 2.1 of the License, or (at your option) any later version.
  67276. +
  67277. + The GNU C Library is distributed in the hope that it will be useful,
  67278. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  67279. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  67280. + Lesser General Public License for more details.
  67281. +
  67282. + You should have received a copy of the GNU Lesser General Public
  67283. + License along with the GNU C Library; if not, write to the Free
  67284. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67285. + 02111-1307 USA. */
  67286. +
  67287. +/* Meta ABI compliant context switching support. */
  67288. +
  67289. +#ifndef _SYS_UCONTEXT_H
  67290. +#define _SYS_UCONTEXT_H 1
  67291. +
  67292. +#include <features.h>
  67293. +#include <signal.h>
  67294. +#include <sys/procfs.h>
  67295. +
  67296. +/* We need the signal context definitions even if they are not used
  67297. + included in <signal.h>. */
  67298. +#include <bits/sigcontext.h>
  67299. +
  67300. +typedef int greg_t;
  67301. +
  67302. +/* Number of general registers. */
  67303. +#define NGREG 18
  67304. +
  67305. +/* Container for all general registers. */
  67306. +typedef elf_gregset_t gregset_t;
  67307. +
  67308. +/* Number of each register is the `gregset_t' array. */
  67309. +enum
  67310. +{
  67311. + R0 = 0,
  67312. +#define R0 R0
  67313. + R1 = 1,
  67314. +#define R1 R1
  67315. + R2 = 2,
  67316. +#define R2 R2
  67317. + R3 = 3,
  67318. +#define R3 R3
  67319. + R4 = 4,
  67320. +#define R4 R4
  67321. + R5 = 5,
  67322. +#define R5 R5
  67323. + R6 = 6,
  67324. +#define R6 R6
  67325. + R7 = 7,
  67326. +#define R7 R7
  67327. + R8 = 8,
  67328. +#define R8 R8
  67329. + R9 = 9,
  67330. +#define R9 R9
  67331. + R10 = 10,
  67332. +#define R10 R10
  67333. + R11 = 11,
  67334. +#define R11 R11
  67335. + R12 = 12,
  67336. +#define R12 R12
  67337. + R13 = 13,
  67338. +#define R13 R13
  67339. + R14 = 14,
  67340. +#define R14 R14
  67341. + R15 = 15
  67342. +#define R15 R15
  67343. +};
  67344. +
  67345. +/* Structure to describe FPU registers. */
  67346. +typedef elf_fpregset_t fpregset_t;
  67347. +
  67348. +/* Context to describe whole processor state. This only describes
  67349. + the core registers; coprocessor registers get saved elsewhere
  67350. + (e.g. in uc_regspace, or somewhere unspecified on the stack
  67351. + during non-RT signal handlers). */
  67352. +typedef struct sigcontext mcontext_t;
  67353. +
  67354. +/* Userlevel context. */
  67355. +typedef struct ucontext
  67356. + {
  67357. + unsigned long uc_flags;
  67358. + struct ucontext *uc_link;
  67359. + stack_t uc_stack;
  67360. + mcontext_t uc_mcontext;
  67361. + __sigset_t uc_sigmask;
  67362. + } ucontext_t;
  67363. +
  67364. +#endif /* sys/ucontext.h */
  67365. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/user.h uClibc-git/libc/sysdeps/linux/metag/sys/user.h
  67366. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/sys/user.h 1970-01-01 01:00:00.000000000 +0100
  67367. +++ uClibc-git/libc/sysdeps/linux/metag/sys/user.h 2014-06-02 17:40:34.534714863 +0200
  67368. @@ -0,0 +1,7 @@
  67369. +/*
  67370. + * This file is not needed, but in practice gdb might try to include it.
  67371. + *
  67372. + * Copyright (C) 2013 Imagination Technologies Ltd.
  67373. + *
  67374. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67375. + */
  67376. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/syscall.c uClibc-git/libc/sysdeps/linux/metag/syscall.c
  67377. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/syscall.c 1970-01-01 01:00:00.000000000 +0100
  67378. +++ uClibc-git/libc/sysdeps/linux/metag/syscall.c 2014-06-02 17:40:34.534714863 +0200
  67379. @@ -0,0 +1,40 @@
  67380. +/* syscall for META/uClibc
  67381. + *
  67382. + * Copyright (C) 2013 Imagination Technologies
  67383. + *
  67384. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67385. + */
  67386. +
  67387. +#include <features.h>
  67388. +#include <errno.h>
  67389. +#include <sys/types.h>
  67390. +#include <sys/syscall.h>
  67391. +
  67392. +long syscall(long sysnum,
  67393. + long arg1, long arg2, long arg3,
  67394. + long arg4, long arg5, long arg6)
  67395. +{
  67396. +
  67397. + register long __call __asm__ ("D1Re0") = sysnum;
  67398. + register long __res __asm__ ("D0Re0");
  67399. + register long __a __asm__ ("D1Ar1") = arg1;
  67400. + register long __b __asm__ ("D0Ar2") = arg2;
  67401. + register long __c __asm__ ("D1Ar3") = arg3;
  67402. + register long __d __asm__ ("D0Ar4") = arg4;
  67403. + register long __e __asm__ ("D1Ar5") = arg5;
  67404. + register long __f __asm__ ("D0Ar6") = arg6;
  67405. +
  67406. +
  67407. + __asm__ __volatile__ ("SWITCH #0x440001"
  67408. + : "=d" (__res)
  67409. + : "d" (__call), "d" (__a), "d" (__b),
  67410. + "d" (__c), "d" (__d), "d" (__e) , "d" (__f)
  67411. + : "memory");
  67412. +
  67413. + if(__res >= (unsigned long) -4095) {
  67414. + long err = __res;
  67415. + (*__errno_location()) = (-err);
  67416. + __res = (unsigned long) -1;
  67417. + }
  67418. + return (long) __res;
  67419. +}
  67420. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/__syscall_error.c uClibc-git/libc/sysdeps/linux/metag/__syscall_error.c
  67421. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/__syscall_error.c 1970-01-01 01:00:00.000000000 +0100
  67422. +++ uClibc-git/libc/sysdeps/linux/metag/__syscall_error.c 2014-06-02 17:40:34.530714841 +0200
  67423. @@ -0,0 +1,18 @@
  67424. +/* Wrapper for setting errno.
  67425. + *
  67426. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  67427. + *
  67428. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67429. + */
  67430. +
  67431. +#include <errno.h>
  67432. +#include <features.h>
  67433. +
  67434. +/* This routine is jumped to by all the syscall handlers, to stash
  67435. + * an error number into errno. */
  67436. +int __syscall_error(int err_no) attribute_hidden;
  67437. +int __syscall_error(int err_no)
  67438. +{
  67439. + __set_errno(-err_no);
  67440. + return -1;
  67441. +}
  67442. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/sysdep.h uClibc-git/libc/sysdeps/linux/metag/sysdep.h
  67443. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/sysdep.h 1970-01-01 01:00:00.000000000 +0100
  67444. +++ uClibc-git/libc/sysdeps/linux/metag/sysdep.h 2014-06-02 17:40:34.534714863 +0200
  67445. @@ -0,0 +1,59 @@
  67446. +/*
  67447. + * Assembler macros for Meta.
  67448. + *
  67449. + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67450. + */
  67451. +
  67452. +#include <common/sysdep.h>
  67453. +
  67454. +#include <features.h>
  67455. +#include <libc-internal.h>
  67456. +
  67457. +#ifdef __ASSEMBLER__
  67458. +
  67459. +#ifdef SHARED
  67460. +#define PLTJMP(_x) _x##@PLT
  67461. +#else
  67462. +#define PLTJMP(_x) _x
  67463. +#endif
  67464. +
  67465. +#undef PSEUDO_END
  67466. +#define PSEUDO_END(name) \
  67467. + SYSCALL_ERROR_HANDLER \
  67468. + END (name)
  67469. +
  67470. +#if defined NOT_IN_libc
  67471. +# define SYSCALL_ERROR __local_syscall_error
  67472. +# ifdef RTLD_PRIVATE_ERRNO
  67473. +# define SYSCALL_ERROR_HANDLER \
  67474. +__local_syscall_error: \
  67475. + NEG D0Re0, D0Re0; \
  67476. + ADDT D1Re0, CPC1, #HI(_rtld_errno); \
  67477. + ADD D1Re0, D1Re0, #LO(_rtld_errno) + 4; \
  67478. + SETD [D1Re0], D0Re0; \
  67479. + NEG D0Re0, #0x1; \
  67480. + MOV PC, D1RtP;
  67481. +# else
  67482. +# define SYSCALL_ERROR_HANDLER \
  67483. +__local_syscall_error: \
  67484. + MOV D1Re0, D1RtP; \
  67485. + SETL [A0StP++], D0Re0, D1Re0; \
  67486. + CALLR D1RtP, PLTJMP(___errno_location); \
  67487. + GETD D1Re0, [A0StP+#-8]; \
  67488. + NEG D1Re0, D1Re0; \
  67489. + SETD [D0Re0], D1Re0; \
  67490. + NEG D0Re0, #0x1; \
  67491. + GETD D1RtP, [A0StP+#-4]; \
  67492. + SUB A0StP, A0StP, #0x8; \
  67493. + MOV PC, D1RtP;
  67494. +# endif
  67495. +#else
  67496. +# define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
  67497. +# define SYSCALL_ERROR ___syscall_error
  67498. +#endif
  67499. +
  67500. +#endif /* __ASSEMBLER __*/
  67501. +
  67502. +/* Pointer mangling is not yet supported for META. */
  67503. +#define PTR_MANGLE(var) (void) (var)
  67504. +#define PTR_DEMANGLE(var) (void) (var)
  67505. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/metag/vfork.S uClibc-git/libc/sysdeps/linux/metag/vfork.S
  67506. --- uClibc-0.9.33.2/libc/sysdeps/linux/metag/vfork.S 1970-01-01 01:00:00.000000000 +0100
  67507. +++ uClibc-git/libc/sysdeps/linux/metag/vfork.S 2014-06-02 17:40:34.534714863 +0200
  67508. @@ -0,0 +1,67 @@
  67509. +! Copyright (C) 2013 Imagination Technologies Ltd.
  67510. +
  67511. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  67512. +
  67513. +#include <asm/unistd.h>
  67514. +
  67515. +#define _ERRNO_H
  67516. +#include <bits/errno.h>
  67517. +#include <sys/syscall.h>
  67518. +
  67519. +#ifndef SAVE_PID
  67520. +#define SAVE_PID
  67521. +#endif
  67522. +
  67523. +#ifndef RESTORE_PID
  67524. +#define RESTORE_PID
  67525. +#endif
  67526. +
  67527. +#ifdef __NR_vfork
  67528. +#define __VFORK_NR __NR_vfork
  67529. +#else
  67530. +#define __VFORK_NR __NR_fork
  67531. +#endif
  67532. +
  67533. +/* Clone the calling process, but without copying the whole address space.
  67534. + The calling process is suspended until the new process exits or is
  67535. + replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
  67536. + and the process ID of the new process to the old process. */
  67537. +
  67538. + .balign 4
  67539. + .global ___vfork
  67540. + .hidden ___vfork
  67541. + .type ___vfork, @function
  67542. +___vfork:
  67543. +
  67544. + SAVE_PID
  67545. +
  67546. + MOV D1Ar1, #0x4111 /* CLONE_VM | CLONE_VFORK | SIGCHLD */
  67547. + MOV D0Ar2, #0
  67548. + MOV D1Ar3, #0
  67549. + MOV D0Ar4, #0
  67550. + MOV D1Ar5, #0
  67551. + MOV D0Ar6, #0
  67552. + MOV D1Re0, #__NR_clone
  67553. + SWITCH #0x440001
  67554. +
  67555. + RESTORE_PID
  67556. +
  67557. + MOVT D1Re0, #HI(-4096)
  67558. + ADD D1Re0, D1Re0, #LO(-4096)
  67559. + CMP D1Re0, D0Re0
  67560. + BCS error
  67561. +
  67562. + /* Syscall worked. Return to child/parent */
  67563. + MOV PC, D1RtP
  67564. +
  67565. +error:
  67566. + MOV D1Ar1, D0Re0
  67567. +#ifdef __PIC__
  67568. + B ___syscall_error@PLT
  67569. +#else
  67570. + B ___syscall_error
  67571. +#endif
  67572. + .size ___vfork,.-___vfork
  67573. +
  67574. +weak_alias(__vfork,vfork)
  67575. +libc_hidden_weak(vfork)
  67576. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/fcntl.h uClibc-git/libc/sysdeps/linux/microblaze/bits/fcntl.h
  67577. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  67578. +++ uClibc-git/libc/sysdeps/linux/microblaze/bits/fcntl.h 2014-06-02 17:40:34.534714863 +0200
  67579. @@ -13,9 +13,8 @@
  67580. Lesser General Public License for more details.
  67581. You should have received a copy of the GNU Lesser General Public
  67582. - License along with the GNU C Library; if not, write to the Free
  67583. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67584. - 02111-1307 USA. */
  67585. + License along with the GNU C Library; if not, see
  67586. + <http://www.gnu.org/licenses/>. */
  67587. #ifndef _FCNTL_H
  67588. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  67589. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/microblaze/bits/kernel_types.h
  67590. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  67591. +++ uClibc-git/libc/sysdeps/linux/microblaze/bits/kernel_types.h 2014-06-02 17:40:34.534714863 +0200
  67592. @@ -44,6 +44,8 @@
  67593. typedef unsigned int __kernel_old_uid_t;
  67594. typedef unsigned int __kernel_old_gid_t;
  67595. typedef unsigned int __kernel_old_dev_t;
  67596. +typedef long __kernel_long_t;
  67597. +typedef unsigned long __kernel_ulong_t;
  67598. #ifdef __GNUC__
  67599. typedef long long __kernel_loff_t;
  67600. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/poll.h uClibc-git/libc/sysdeps/linux/microblaze/bits/poll.h
  67601. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
  67602. +++ uClibc-git/libc/sysdeps/linux/microblaze/bits/poll.h 2014-06-02 17:40:34.534714863 +0200
  67603. @@ -12,9 +12,8 @@
  67604. Lesser General Public License for more details.
  67605. You should have received a copy of the GNU Lesser General Public
  67606. - License along with the GNU C Library; if not, write to the Free
  67607. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67608. - 02111-1307 USA. */
  67609. + License along with the GNU C Library; if not, see
  67610. + <http://www.gnu.org/licenses/>. */
  67611. #ifndef _SYS_POLL_H
  67612. # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
  67613. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/setjmp.h uClibc-git/libc/sysdeps/linux/microblaze/bits/setjmp.h
  67614. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  67615. +++ uClibc-git/libc/sysdeps/linux/microblaze/bits/setjmp.h 2014-06-02 17:40:34.534714863 +0200
  67616. @@ -19,7 +19,6 @@
  67617. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  67618. #endif
  67619. -#ifndef _ASM
  67620. typedef struct
  67621. {
  67622. /* Stack pointer. */
  67623. @@ -35,13 +34,5 @@
  67624. /* Callee-saved registers r18-r31. */
  67625. int __regs[14];
  67626. } __jmp_buf[1];
  67627. -#endif
  67628. -
  67629. -#define JB_SIZE (4 * 18)
  67630. -
  67631. -/* Test if longjmp to JMPBUF would unwind the frame
  67632. - containing a local variable at ADDRESS. */
  67633. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  67634. - ((void *) (address) < (void *) (jmpbuf)[0].__sp)
  67635. #endif /* bits/setjmp.h */
  67636. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/microblaze/bits/stackinfo.h
  67637. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  67638. +++ uClibc-git/libc/sysdeps/linux/microblaze/bits/stackinfo.h 2014-06-02 17:40:34.534714863 +0200
  67639. @@ -12,9 +12,8 @@
  67640. Lesser General Public License for more details.
  67641. You should have received a copy of the GNU Lesser General Public
  67642. - License along with the GNU C Library; if not, write to the Free
  67643. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67644. - 02111-1307 USA. */
  67645. + License along with the GNU C Library; if not, see
  67646. + <http://www.gnu.org/licenses/>. */
  67647. /* This file contains a bit of information about the stack allocation
  67648. of the processor. */
  67649. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/microblaze/bits/uClibc_arch_features.h
  67650. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  67651. +++ uClibc-git/libc/sysdeps/linux/microblaze/bits/uClibc_arch_features.h 2014-06-02 17:40:34.534714863 +0200
  67652. @@ -12,8 +12,8 @@
  67653. /* can your target use syscall6() for mmap ? */
  67654. #define __UCLIBC_MMAP_HAS_6_ARGS__
  67655. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  67656. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  67657. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  67658. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  67659. /* does your target have a broken create_module() ? */
  67660. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  67661. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/microblaze/bits/uClibc_page.h
  67662. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  67663. +++ uClibc-git/libc/sysdeps/linux/microblaze/bits/uClibc_page.h 2014-06-02 17:40:34.534714863 +0200
  67664. @@ -11,8 +11,8 @@
  67665. * Library General Public License for more details.
  67666. *
  67667. * You should have received a copy of the GNU Library General Public
  67668. - * License along with this library; if not, write to the Free
  67669. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  67670. + * License along with this library; if not, see
  67671. + * <http://www.gnu.org/licenses/>.
  67672. */
  67673. /* Supply an architecture specific value for PAGE_SIZE and friends. */
  67674. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/wordsize.h uClibc-git/libc/sysdeps/linux/microblaze/bits/wordsize.h
  67675. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  67676. +++ uClibc-git/libc/sysdeps/linux/microblaze/bits/wordsize.h 2014-06-02 17:40:34.534714863 +0200
  67677. @@ -12,8 +12,7 @@
  67678. Lesser General Public License for more details.
  67679. You should have received a copy of the GNU Lesser General Public
  67680. - License along with the GNU C Library; if not, write to the Free
  67681. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67682. - 02111-1307 USA. */
  67683. + License along with the GNU C Library; if not, see
  67684. + <http://www.gnu.org/licenses/>. */
  67685. #define __WORDSIZE 32
  67686. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/microblaze/jmpbuf-offsets.h
  67687. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  67688. +++ uClibc-git/libc/sysdeps/linux/microblaze/jmpbuf-offsets.h 2014-06-02 17:40:34.534714863 +0200
  67689. @@ -0,0 +1,6 @@
  67690. +/*
  67691. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  67692. + *
  67693. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  67694. + */
  67695. +#define JB_SIZE (4 * 18)
  67696. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/microblaze/jmpbuf-unwind.h
  67697. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  67698. +++ uClibc-git/libc/sysdeps/linux/microblaze/jmpbuf-unwind.h 2014-06-02 17:40:34.534714863 +0200
  67699. @@ -0,0 +1,11 @@
  67700. +/*
  67701. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  67702. + *
  67703. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  67704. + */
  67705. +#include <setjmp.h>
  67706. +
  67707. +/* Test if longjmp to JMPBUF would unwind the frame
  67708. + containing a local variable at ADDRESS. */
  67709. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  67710. + ((void *) (address) < (void *) (jmpbuf)[0].__sp)
  67711. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/__longjmp.S uClibc-git/libc/sysdeps/linux/microblaze/__longjmp.S
  67712. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  67713. +++ uClibc-git/libc/sysdeps/linux/microblaze/__longjmp.S 2014-06-02 17:40:34.534714863 +0200
  67714. @@ -12,10 +12,6 @@
  67715. * Written by Miles Bader <miles@gnu.org>
  67716. */
  67717. -#define _SETJMP_H
  67718. -#define _ASM
  67719. -#include <bits/setjmp.h>
  67720. -
  67721. #include <libc-symbols.h>
  67722. .text
  67723. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/Makefile uClibc-git/libc/sysdeps/linux/microblaze/Makefile
  67724. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/Makefile 2012-05-15 09:20:09.000000000 +0200
  67725. +++ uClibc-git/libc/sysdeps/linux/microblaze/Makefile 2014-06-02 17:40:34.534714863 +0200
  67726. @@ -13,8 +13,7 @@
  67727. # details.
  67728. #
  67729. # You should have received a copy of the GNU Library General Public License
  67730. -# along with this program; if not, write to the Free Software Foundation, Inc.,
  67731. -# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  67732. +# along with this program; if not, see <http://www.gnu.org/licenses/>.
  67733. top_srcdir=../../../../
  67734. top_builddir=../../../../
  67735. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/Makefile.arch uClibc-git/libc/sysdeps/linux/microblaze/Makefile.arch
  67736. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  67737. +++ uClibc-git/libc/sysdeps/linux/microblaze/Makefile.arch 2014-06-02 17:40:34.534714863 +0200
  67738. @@ -5,8 +5,8 @@
  67739. #
  67740. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  67741. -CSRC := mmap.c clone.c fixdfsi.c
  67742. +CSRC-y := clone.c fixdfsi.c
  67743. -SSRC := setjmp.S __longjmp.S vfork.S
  67744. +SSRC-y := setjmp.S __longjmp.S vfork.S
  67745. ARCH_HEADERS := floatlib.h
  67746. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/mmap.c uClibc-git/libc/sysdeps/linux/microblaze/mmap.c
  67747. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/mmap.c 2012-05-15 09:20:09.000000000 +0200
  67748. +++ uClibc-git/libc/sysdeps/linux/microblaze/mmap.c 1970-01-01 01:00:00.000000000 +0100
  67749. @@ -1,16 +0,0 @@
  67750. -/* Use new style mmap for microblaze */
  67751. -/*
  67752. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  67753. - *
  67754. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  67755. - */
  67756. -
  67757. -#include <unistd.h>
  67758. -#include <errno.h>
  67759. -#include <sys/mman.h>
  67760. -#include <sys/syscall.h>
  67761. -
  67762. -
  67763. -_syscall6 (__ptr_t, mmap, __ptr_t, addr, size_t, len, int, prot,
  67764. - int, flags, int, fd, __off_t, offset)
  67765. -libc_hidden_def(mmap)
  67766. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/setjmp.S uClibc-git/libc/sysdeps/linux/microblaze/setjmp.S
  67767. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  67768. +++ uClibc-git/libc/sysdeps/linux/microblaze/setjmp.S 2014-06-02 17:40:34.534714863 +0200
  67769. @@ -25,13 +25,8 @@
  67770. Lesser General Public License for more details.
  67771. You should have received a copy of the GNU Lesser General Public
  67772. - License along with the GNU C Library; if not, write to the Free
  67773. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67774. - 02111-1307 USA. */
  67775. -
  67776. -#define _SETJMP_H
  67777. -#define _ASM
  67778. -#include <bits/setjmp.h>
  67779. + License along with the GNU C Library; if not, see
  67780. + <http://www.gnu.org/licenses/>. */
  67781. #include <libc-symbols.h>
  67782. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/procfs.h uClibc-git/libc/sysdeps/linux/microblaze/sys/procfs.h
  67783. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  67784. +++ uClibc-git/libc/sysdeps/linux/microblaze/sys/procfs.h 2014-06-02 17:40:34.534714863 +0200
  67785. @@ -12,9 +12,8 @@
  67786. Lesser General Public License for more details.
  67787. You should have received a copy of the GNU Lesser General Public
  67788. - License along with the GNU C Library; if not, write to the Free
  67789. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67790. - 02111-1307 USA. */
  67791. + License along with the GNU C Library; if not, see
  67792. + <http://www.gnu.org/licenses/>. */
  67793. #ifndef _SYS_PROCFS_H
  67794. #define _SYS_PROCFS_H 1
  67795. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/ptrace.h uClibc-git/libc/sysdeps/linux/microblaze/sys/ptrace.h
  67796. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  67797. +++ uClibc-git/libc/sysdeps/linux/microblaze/sys/ptrace.h 2014-06-02 17:40:34.534714863 +0200
  67798. @@ -13,9 +13,8 @@
  67799. Lesser General Public License for more details.
  67800. You should have received a copy of the GNU Lesser General Public
  67801. - License along with the GNU C Library; if not, write to the Free
  67802. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67803. - 02111-1307 USA. */
  67804. + License along with the GNU C Library; if not, see
  67805. + <http://www.gnu.org/licenses/>. */
  67806. #ifndef _SYS_PTRACE_H
  67807. #define _SYS_PTRACE_H 1
  67808. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/ucontext.h uClibc-git/libc/sysdeps/linux/microblaze/sys/ucontext.h
  67809. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  67810. +++ uClibc-git/libc/sysdeps/linux/microblaze/sys/ucontext.h 2014-06-02 17:40:34.534714863 +0200
  67811. @@ -12,9 +12,8 @@
  67812. Lesser General Public License for more details.
  67813. You should have received a copy of the GNU Lesser General Public
  67814. - License along with the GNU C Library; if not, write to the Free
  67815. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67816. - 02111-1307 USA. */
  67817. + License along with the GNU C Library; if not, see
  67818. + <http://www.gnu.org/licenses/>. */
  67819. #ifndef _SYS_UCONTEXT_H
  67820. #define _SYS_UCONTEXT_H 1
  67821. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/user.h uClibc-git/libc/sysdeps/linux/microblaze/sys/user.h
  67822. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  67823. +++ uClibc-git/libc/sysdeps/linux/microblaze/sys/user.h 2014-06-02 17:40:34.534714863 +0200
  67824. @@ -12,9 +12,8 @@
  67825. Lesser General Public License for more details.
  67826. You should have received a copy of the GNU Lesser General Public
  67827. - License along with the GNU C Library; if not, write to the Free
  67828. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67829. - 02111-1307 USA. */
  67830. + License along with the GNU C Library; if not, see
  67831. + <http://www.gnu.org/licenses/>. */
  67832. #ifndef _SYS_USER_H
  67833. #define _SYS_USER_H 1
  67834. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/vfork.S uClibc-git/libc/sysdeps/linux/microblaze/vfork.S
  67835. --- uClibc-0.9.33.2/libc/sysdeps/linux/microblaze/vfork.S 2012-05-15 09:20:09.000000000 +0200
  67836. +++ uClibc-git/libc/sysdeps/linux/microblaze/vfork.S 2014-06-02 17:40:34.534714863 +0200
  67837. @@ -13,21 +13,15 @@
  67838. * Microblaze port by John Williams
  67839. */
  67840. -#define _ERRNO_H 1
  67841. -#include <bits/errno.h>
  67842. -#define _SYSCALL_H
  67843. -#include <bits/sysnum.h>
  67844. -
  67845. -#include <libc-symbols.h>
  67846. +#include <sys/syscall.h>
  67847. /* Clone the calling process, but without copying the whole address space.
  67848. The calling process is suspended until the new process exits or is
  67849. replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
  67850. and the process ID of the new process to the old process. */
  67851. -.global C_SYMBOL_NAME(errno)
  67852. -
  67853. .globl __vfork
  67854. + .hidden __vfork
  67855. .align 4
  67856. __vfork:
  67857. addi r12, r0, SYS_vfork
  67858. @@ -50,4 +44,4 @@
  67859. .size __vfork, .-__vfork
  67860. weak_alias(__vfork,vfork)
  67861. -libc_hidden_weak(vfork)
  67862. +libc_hidden_def(vfork)
  67863. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/atomic.h uClibc-git/libc/sysdeps/linux/mips/bits/atomic.h
  67864. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  67865. +++ uClibc-git/libc/sysdeps/linux/mips/bits/atomic.h 2014-06-02 17:40:34.538714885 +0200
  67866. @@ -13,9 +13,8 @@
  67867. Lesser General Public License for more details.
  67868. You should have received a copy of the GNU Lesser General Public
  67869. - License along with the GNU C Library; if not, write to the Free
  67870. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67871. - 02111-1307 USA. */
  67872. + License along with the GNU C Library; if not, see
  67873. + <http://www.gnu.org/licenses/>. */
  67874. #ifndef _MIPS_BITS_ATOMIC_H
  67875. #define _MIPS_BITS_ATOMIC_H 1
  67876. @@ -84,10 +83,10 @@
  67877. in which values are returned. */
  67878. #define __arch_compare_and_exchange_xxx_8_int(mem, newval, oldval, rel, acq) \
  67879. - (abort (), __prev = __cmp = 0)
  67880. + (abort (), __prev = 0, __cmp = 0)
  67881. #define __arch_compare_and_exchange_xxx_16_int(mem, newval, oldval, rel, acq) \
  67882. - (abort (), __prev = __cmp = 0)
  67883. + (abort (), __prev = 0, __cmp = 0)
  67884. #define __arch_compare_and_exchange_xxx_32_int(mem, newval, oldval, rel, acq) \
  67885. __asm__ __volatile__ ( \
  67886. @@ -111,7 +110,7 @@
  67887. #if _MIPS_SIM == _ABIO32
  67888. /* We can't do an atomic 64-bit operation in O32. */
  67889. #define __arch_compare_and_exchange_xxx_64_int(mem, newval, oldval, rel, acq) \
  67890. - (abort (), __prev = __cmp = 0)
  67891. + (abort (), __prev = 0, __cmp = 0)
  67892. #else
  67893. #define __arch_compare_and_exchange_xxx_64_int(mem, newval, oldval, rel, acq) \
  67894. __asm__ __volatile__ ("\n" \
  67895. @@ -136,22 +135,22 @@
  67896. /* For all "bool" routines, we return FALSE if exchange succesful. */
  67897. #define __arch_compare_and_exchange_bool_8_int(mem, new, old, rel, acq) \
  67898. -({ __typeof (*mem) __prev; int __cmp; \
  67899. +({ __typeof (*mem) __prev attribute_unused; int __cmp; \
  67900. __arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq); \
  67901. !__cmp; })
  67902. #define __arch_compare_and_exchange_bool_16_int(mem, new, old, rel, acq) \
  67903. -({ __typeof (*mem) __prev; int __cmp; \
  67904. +({ __typeof (*mem) __prev attribute_unused; int __cmp; \
  67905. __arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq); \
  67906. !__cmp; })
  67907. #define __arch_compare_and_exchange_bool_32_int(mem, new, old, rel, acq) \
  67908. -({ __typeof (*mem) __prev; int __cmp; \
  67909. +({ __typeof (*mem) __prev attribute_unused; int __cmp; \
  67910. __arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq); \
  67911. !__cmp; })
  67912. #define __arch_compare_and_exchange_bool_64_int(mem, new, old, rel, acq) \
  67913. -({ __typeof (*mem) __prev; int __cmp; \
  67914. +({ __typeof (*mem) __prev attribute_unused; int __cmp; \
  67915. __arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq); \
  67916. !__cmp; })
  67917. @@ -159,22 +158,22 @@
  67918. successful or not. */
  67919. #define __arch_compare_and_exchange_val_8_int(mem, new, old, rel, acq) \
  67920. -({ __typeof (*mem) __prev; int __cmp; \
  67921. +({ __typeof (*mem) __prev attribute_unused; int __cmp attribute_unused; \
  67922. __arch_compare_and_exchange_xxx_8_int(mem, new, old, rel, acq); \
  67923. (__typeof (*mem))__prev; })
  67924. #define __arch_compare_and_exchange_val_16_int(mem, new, old, rel, acq) \
  67925. -({ __typeof (*mem) __prev; int __cmp; \
  67926. +({ __typeof (*mem) __prev attribute_unused; int __cmp attribute_unused; \
  67927. __arch_compare_and_exchange_xxx_16_int(mem, new, old, rel, acq); \
  67928. (__typeof (*mem))__prev; })
  67929. #define __arch_compare_and_exchange_val_32_int(mem, new, old, rel, acq) \
  67930. -({ __typeof (*mem) __prev; int __cmp; \
  67931. +({ __typeof (*mem) __prev attribute_unused; int __cmp attribute_unused; \
  67932. __arch_compare_and_exchange_xxx_32_int(mem, new, old, rel, acq); \
  67933. (__typeof (*mem))__prev; })
  67934. #define __arch_compare_and_exchange_val_64_int(mem, new, old, rel, acq) \
  67935. -({ __typeof (*mem) __prev; int __cmp; \
  67936. +({ __typeof (*mem) __prev attribute_unused; int __cmp attribute_unused; \
  67937. __arch_compare_and_exchange_xxx_64_int(mem, new, old, rel, acq); \
  67938. (__typeof (*mem))__prev; })
  67939. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/dirent.h uClibc-git/libc/sysdeps/linux/mips/bits/dirent.h
  67940. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/dirent.h 2012-05-15 09:20:09.000000000 +0200
  67941. +++ uClibc-git/libc/sysdeps/linux/mips/bits/dirent.h 2014-06-02 17:40:34.538714885 +0200
  67942. @@ -12,9 +12,8 @@
  67943. Lesser General Public License for more details.
  67944. You should have received a copy of the GNU Lesser General Public
  67945. - License along with the GNU C Library; if not, write to the Free
  67946. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67947. - 02111-1307 USA. */
  67948. + License along with the GNU C Library; if not, see
  67949. + <http://www.gnu.org/licenses/>. */
  67950. #ifndef _DIRENT_H
  67951. # error "Never use <bits/dirent.h> directly; include <dirent.h> instead."
  67952. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/dlfcn.h uClibc-git/libc/sysdeps/linux/mips/bits/dlfcn.h
  67953. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/dlfcn.h 2012-05-15 09:20:09.000000000 +0200
  67954. +++ uClibc-git/libc/sysdeps/linux/mips/bits/dlfcn.h 2014-06-02 17:40:34.538714885 +0200
  67955. @@ -14,9 +14,8 @@
  67956. Lesser General Public License for more details.
  67957. You should have received a copy of the GNU Lesser General Public
  67958. - License along with the GNU C Library; if not, write to the Free
  67959. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  67960. - 02111-1307 USA. */
  67961. + License along with the GNU C Library; if not, see
  67962. + <http://www.gnu.org/licenses/>. */
  67963. #ifndef _DLFCN_H
  67964. # error "Never use <bits/dlfcn.h> directly; include <dlfcn.h> instead."
  67965. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/eventfd.h uClibc-git/libc/sysdeps/linux/mips/bits/eventfd.h
  67966. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/eventfd.h 1970-01-01 01:00:00.000000000 +0100
  67967. +++ uClibc-git/libc/sysdeps/linux/mips/bits/eventfd.h 2014-06-02 17:40:34.538714885 +0200
  67968. @@ -0,0 +1,31 @@
  67969. +/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
  67970. + This file is part of the GNU C Library.
  67971. +
  67972. + The GNU C Library is free software; you can redistribute it and/or
  67973. + modify it under the terms of the GNU Lesser General Public
  67974. + License as published by the Free Software Foundation; either
  67975. + version 2.1 of the License, or (at your option) any later version.
  67976. +
  67977. + The GNU C Library is distributed in the hope that it will be useful,
  67978. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  67979. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  67980. + Lesser General Public License for more details.
  67981. +
  67982. + You should have received a copy of the GNU Lesser General Public
  67983. + License along with the GNU C Library; if not, see
  67984. + <http://www.gnu.org/licenses/>. */
  67985. +
  67986. +#ifndef _SYS_EVENTFD_H
  67987. +# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
  67988. +#endif
  67989. +
  67990. +/* Flags for eventfd. */
  67991. +enum
  67992. + {
  67993. + EFD_SEMAPHORE = 00000001,
  67994. +#define EFD_SEMAPHORE EFD_SEMAPHORE
  67995. + EFD_CLOEXEC = 02000000,
  67996. +#define EFD_CLOEXEC EFD_CLOEXEC
  67997. + EFD_NONBLOCK = 00000200
  67998. +#define EFD_NONBLOCK EFD_NONBLOCK
  67999. + };
  68000. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/fcntl.h uClibc-git/libc/sysdeps/linux/mips/bits/fcntl.h
  68001. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  68002. +++ uClibc-git/libc/sysdeps/linux/mips/bits/fcntl.h 2014-06-02 17:40:34.538714885 +0200
  68003. @@ -14,9 +14,8 @@
  68004. Lesser General Public License for more details.
  68005. You should have received a copy of the GNU Lesser General Public
  68006. - License along with the GNU C Library; if not, write to the Free
  68007. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68008. - 02111-1307 USA. */
  68009. + License along with the GNU C Library; if not, see
  68010. + <http://www.gnu.org/licenses/>. */
  68011. #ifndef _FCNTL_H
  68012. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  68013. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/fenv.h uClibc-git/libc/sysdeps/linux/mips/bits/fenv.h
  68014. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  68015. +++ uClibc-git/libc/sysdeps/linux/mips/bits/fenv.h 2014-06-02 17:40:34.538714885 +0200
  68016. @@ -12,9 +12,8 @@
  68017. Lesser General Public License for more details.
  68018. You should have received a copy of the GNU Lesser General Public
  68019. - License along with the GNU C Library; if not, write to the Free
  68020. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68021. - 02111-1307 USA. */
  68022. + License along with the GNU C Library; if not, see
  68023. + <http://www.gnu.org/licenses/>. */
  68024. #ifndef _FENV_H
  68025. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  68026. @@ -69,9 +68,9 @@
  68027. fenv_t;
  68028. /* If the default argument is used we use this value. */
  68029. -#define FE_DFL_ENV ((__const fenv_t *) -1)
  68030. +#define FE_DFL_ENV ((const fenv_t *) -1)
  68031. #ifdef __USE_GNU
  68032. /* Floating-point environment where none of the exception is masked. */
  68033. -# define FE_NOMASK_ENV ((__const fenv_t *) -2)
  68034. +# define FE_NOMASK_ENV ((const fenv_t *) -2)
  68035. #endif
  68036. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/ioctl-types.h uClibc-git/libc/sysdeps/linux/mips/bits/ioctl-types.h
  68037. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/ioctl-types.h 2012-05-15 09:20:09.000000000 +0200
  68038. +++ uClibc-git/libc/sysdeps/linux/mips/bits/ioctl-types.h 2014-06-02 17:40:34.538714885 +0200
  68039. @@ -13,9 +13,8 @@
  68040. Lesser General Public License for more details.
  68041. You should have received a copy of the GNU Lesser General Public
  68042. - License along with the GNU C Library; if not, write to the Free
  68043. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68044. - 02111-1307 USA. */
  68045. + License along with the GNU C Library; if not, see
  68046. + <http://www.gnu.org/licenses/>. */
  68047. #ifndef _SYS_IOCTL_H
  68048. # error "Never use <bits/ioctl-types.h> directly; include <sys/ioctl.h> instead."
  68049. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/ipc.h uClibc-git/libc/sysdeps/linux/mips/bits/ipc.h
  68050. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  68051. +++ uClibc-git/libc/sysdeps/linux/mips/bits/ipc.h 2014-06-02 17:40:34.538714885 +0200
  68052. @@ -12,9 +12,8 @@
  68053. Lesser General Public License for more details.
  68054. You should have received a copy of the GNU Lesser General Public
  68055. - License along with the GNU C Library; if not, write to the Free
  68056. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68057. - 02111-1307 USA. */
  68058. + License along with the GNU C Library; if not, see
  68059. + <http://www.gnu.org/licenses/>. */
  68060. #ifndef _SYS_IPC_H
  68061. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  68062. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/kernel_sigaction.h uClibc-git/libc/sysdeps/linux/mips/bits/kernel_sigaction.h
  68063. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/kernel_sigaction.h 2012-05-15 09:20:09.000000000 +0200
  68064. +++ uClibc-git/libc/sysdeps/linux/mips/bits/kernel_sigaction.h 2014-06-02 17:40:34.538714885 +0200
  68065. @@ -24,12 +24,4 @@
  68066. #endif
  68067. };
  68068. -/* In uclibc, userspace struct sigaction is identical to
  68069. - * "new" struct kernel_sigaction (one from the Linux 2.1.68 kernel).
  68070. - * See sigaction.h
  68071. - */
  68072. -
  68073. -extern int __syscall_rt_sigaction (int, const struct sigaction *,
  68074. - struct sigaction *, size_t) attribute_hidden;
  68075. -
  68076. #endif
  68077. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/mips/bits/kernel_types.h
  68078. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  68079. +++ uClibc-git/libc/sysdeps/linux/mips/bits/kernel_types.h 2014-06-02 17:40:34.538714885 +0200
  68080. @@ -32,6 +32,8 @@
  68081. typedef __kernel_uid_t __kernel_old_uid_t;
  68082. typedef __kernel_gid_t __kernel_old_gid_t;
  68083. typedef __kernel_dev_t __kernel_old_dev_t;
  68084. +typedef long __kernel_long_t;
  68085. +typedef unsigned long __kernel_ulong_t;
  68086. typedef long long __kernel_loff_t;
  68087. #else
  68088. typedef unsigned int __kernel_dev_t;
  68089. @@ -68,6 +70,8 @@
  68090. typedef __kernel_uid_t __kernel_old_uid_t;
  68091. typedef __kernel_gid_t __kernel_old_gid_t;
  68092. typedef __kernel_dev_t __kernel_old_dev_t;
  68093. +typedef long __kernel_long_t;
  68094. +typedef unsigned long __kernel_ulong_t;
  68095. typedef long long __kernel_loff_t;
  68096. #endif
  68097. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/mathdef.h uClibc-git/libc/sysdeps/linux/mips/bits/mathdef.h
  68098. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  68099. +++ uClibc-git/libc/sysdeps/linux/mips/bits/mathdef.h 2014-06-02 17:40:34.538714885 +0200
  68100. @@ -13,9 +13,8 @@
  68101. Lesser General Public License for more details.
  68102. You should have received a copy of the GNU Lesser General Public
  68103. - License along with the GNU C Library; if not, write to the Free
  68104. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68105. - 02111-1307 USA. */
  68106. + License along with the GNU C Library; if not, see
  68107. + <http://www.gnu.org/licenses/>. */
  68108. #if !defined _MATH_H && !defined _COMPLEX_H
  68109. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  68110. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/mman.h uClibc-git/libc/sysdeps/linux/mips/bits/mman.h
  68111. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
  68112. +++ uClibc-git/libc/sysdeps/linux/mips/bits/mman.h 2014-06-02 17:40:34.538714885 +0200
  68113. @@ -14,9 +14,8 @@
  68114. Lesser General Public License for more details.
  68115. You should have received a copy of the GNU Lesser General Public
  68116. - License along with the GNU C Library; if not, write to the Free
  68117. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68118. - 02111-1307 USA. */
  68119. + License along with the GNU C Library; if not, see
  68120. + <http://www.gnu.org/licenses/>. */
  68121. #ifndef _SYS_MMAN_H
  68122. # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
  68123. @@ -66,7 +65,7 @@
  68124. # define MAP_LOCKED 0x8000 /* pages are locked */
  68125. # define MAP_POPULATE 0x10000 /* populate (prefault) pagetables */
  68126. # define MAP_NONBLOCK 0x20000 /* do not block on IO */
  68127. -# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
  68128. +# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
  68129. be uninitialized. */
  68130. #endif
  68131. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/msq.h uClibc-git/libc/sysdeps/linux/mips/bits/msq.h
  68132. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
  68133. +++ uClibc-git/libc/sysdeps/linux/mips/bits/msq.h 2014-06-02 17:40:34.538714885 +0200
  68134. @@ -12,9 +12,8 @@
  68135. Lesser General Public License for more details.
  68136. You should have received a copy of the GNU Lesser General Public
  68137. - License along with the GNU C Library; if not, write to the Free
  68138. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68139. - 02111-1307 USA. */
  68140. + License along with the GNU C Library; if not, see
  68141. + <http://www.gnu.org/licenses/>. */
  68142. #ifndef _SYS_MSG_H
  68143. # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  68144. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/poll.h uClibc-git/libc/sysdeps/linux/mips/bits/poll.h
  68145. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
  68146. +++ uClibc-git/libc/sysdeps/linux/mips/bits/poll.h 2014-06-02 17:40:34.538714885 +0200
  68147. @@ -12,9 +12,8 @@
  68148. Lesser General Public License for more details.
  68149. You should have received a copy of the GNU Lesser General Public
  68150. - License along with the GNU C Library; if not, write to the Free
  68151. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68152. - 02111-1307 USA. */
  68153. + License along with the GNU C Library; if not, see
  68154. + <http://www.gnu.org/licenses/>. */
  68155. #ifndef _SYS_POLL_H
  68156. # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
  68157. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/resource.h uClibc-git/libc/sysdeps/linux/mips/bits/resource.h
  68158. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/resource.h 2012-05-15 09:20:09.000000000 +0200
  68159. +++ uClibc-git/libc/sysdeps/linux/mips/bits/resource.h 2014-06-02 17:40:34.538714885 +0200
  68160. @@ -14,9 +14,8 @@
  68161. Lesser General Public License for more details.
  68162. You should have received a copy of the GNU Lesser General Public
  68163. - License along with the GNU C Library; if not, write to the Free
  68164. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68165. - 02111-1307 USA. */
  68166. + License along with the GNU C Library; if not, see
  68167. + <http://www.gnu.org/licenses/>. */
  68168. #ifndef _SYS_RESOURCE_H
  68169. # error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
  68170. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sem.h uClibc-git/libc/sysdeps/linux/mips/bits/sem.h
  68171. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
  68172. +++ uClibc-git/libc/sysdeps/linux/mips/bits/sem.h 2014-06-02 17:40:34.538714885 +0200
  68173. @@ -12,9 +12,8 @@
  68174. Lesser General Public License for more details.
  68175. You should have received a copy of the GNU Lesser General Public
  68176. - License along with the GNU C Library; if not, write to the Free
  68177. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68178. - 02111-1307 USA. */
  68179. + License along with the GNU C Library; if not, see
  68180. + <http://www.gnu.org/licenses/>. */
  68181. #ifndef _SYS_SEM_H
  68182. # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
  68183. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/setjmp.h uClibc-git/libc/sysdeps/linux/mips/bits/setjmp.h
  68184. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  68185. +++ uClibc-git/libc/sysdeps/linux/mips/bits/setjmp.h 2014-06-02 17:40:34.538714885 +0200
  68186. @@ -13,9 +13,8 @@
  68187. Lesser General Public License for more details.
  68188. You should have received a copy of the GNU Lesser General Public
  68189. - License along with the GNU C Library; if not, write to the Free
  68190. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68191. - 02111-1307 USA. */
  68192. + License along with the GNU C Library; if not, see
  68193. + <http://www.gnu.org/licenses/>. */
  68194. #ifndef _BITS_SETJMP_H
  68195. #define _BITS_SETJMP_H 1
  68196. @@ -26,13 +25,19 @@
  68197. #include <sgidefs.h>
  68198. +#if _MIPS_SIM == _MIPS_SIM_ABI32
  68199. +#define ptrsize void *
  68200. +#else
  68201. +#define ptrsize long long
  68202. +#endif
  68203. +
  68204. typedef struct
  68205. {
  68206. /* Program counter. */
  68207. - void * __pc;
  68208. + ptrsize __pc;
  68209. /* Stack pointer. */
  68210. - void * __sp;
  68211. + ptrsize __sp;
  68212. /* Callee-saved registers s0 through s7. */
  68213. #if _MIPS_SIM == _MIPS_SIM_ABI32
  68214. @@ -42,10 +47,10 @@
  68215. #endif
  68216. /* The frame pointer. */
  68217. - void * __fp;
  68218. + ptrsize __fp;
  68219. /* The global pointer. */
  68220. - void * __gp;
  68221. + ptrsize __gp;
  68222. /* Floating point status register. */
  68223. int __fpc_csr;
  68224. @@ -58,15 +63,4 @@
  68225. #endif /* N32 || O32 */
  68226. } __jmp_buf[1];
  68227. -#ifdef __USE_MISC
  68228. -/* Offset to the program counter in `jmp_buf'. */
  68229. -# define JB_PC 0
  68230. -#endif
  68231. -
  68232. -
  68233. -/* Test if longjmp to JMPBUF would unwind the frame
  68234. - containing a local variable at ADDRESS. */
  68235. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  68236. - ((void *) (address) < (void *) (jmpbuf)[0].__sp)
  68237. -
  68238. #endif /* bits/setjmp.h */
  68239. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/shm.h uClibc-git/libc/sysdeps/linux/mips/bits/shm.h
  68240. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  68241. +++ uClibc-git/libc/sysdeps/linux/mips/bits/shm.h 2014-06-02 17:40:34.538714885 +0200
  68242. @@ -12,9 +12,8 @@
  68243. Lesser General Public License for more details.
  68244. You should have received a copy of the GNU Lesser General Public
  68245. - License along with the GNU C Library; if not, write to the Free
  68246. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68247. - 02111-1307 USA. */
  68248. + License along with the GNU C Library; if not, see
  68249. + <http://www.gnu.org/licenses/>. */
  68250. #ifndef _SYS_SHM_H
  68251. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  68252. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigaction.h uClibc-git/libc/sysdeps/linux/mips/bits/sigaction.h
  68253. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
  68254. +++ uClibc-git/libc/sysdeps/linux/mips/bits/sigaction.h 2014-06-02 17:40:34.538714885 +0200
  68255. @@ -14,9 +14,8 @@
  68256. Lesser General Public License for more details.
  68257. You should have received a copy of the GNU Lesser General Public
  68258. - License along with the GNU C Library; if not, write to the Free
  68259. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68260. - 02111-1307 USA. */
  68261. + License along with the GNU C Library; if not, see
  68262. + <http://www.gnu.org/licenses/>. */
  68263. #ifndef _SIGNAL_H
  68264. # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
  68265. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/mips/bits/sigcontext.h
  68266. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
  68267. +++ uClibc-git/libc/sysdeps/linux/mips/bits/sigcontext.h 2014-06-02 17:40:34.538714885 +0200
  68268. @@ -12,9 +12,8 @@
  68269. Lesser General Public License for more details.
  68270. You should have received a copy of the GNU Lesser General Public
  68271. - License along with the GNU C Library; if not, write to the Free
  68272. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68273. - 02111-1307 USA. */
  68274. + License along with the GNU C Library; if not, see
  68275. + <http://www.gnu.org/licenses/>. */
  68276. #ifndef _BITS_SIGCONTEXT_H
  68277. #define _BITS_SIGCONTEXT_H 1
  68278. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/mips/bits/sigcontextinfo.h
  68279. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  68280. +++ uClibc-git/libc/sysdeps/linux/mips/bits/sigcontextinfo.h 2014-06-02 17:40:34.538714885 +0200
  68281. @@ -13,9 +13,8 @@
  68282. Lesser General Public License for more details.
  68283. You should have received a copy of the GNU Lesser General Public
  68284. - License along with the GNU C Library; if not, write to the Free
  68285. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68286. - 02111-1307 USA. */
  68287. + License along with the GNU C Library; if not, see
  68288. + <http://www.gnu.org/licenses/>. */
  68289. #include <sgidefs.h>
  68290. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/siginfo.h uClibc-git/libc/sysdeps/linux/mips/bits/siginfo.h
  68291. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/siginfo.h 2012-05-15 09:20:09.000000000 +0200
  68292. +++ uClibc-git/libc/sysdeps/linux/mips/bits/siginfo.h 2014-06-02 17:40:34.538714885 +0200
  68293. @@ -14,9 +14,8 @@
  68294. Lesser General Public License for more details.
  68295. You should have received a copy of the GNU Lesser General Public
  68296. - License along with the GNU C Library; if not, write to the Free
  68297. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68298. - 02111-1307 USA. */
  68299. + License along with the GNU C Library; if not, see
  68300. + <http://www.gnu.org/licenses/>. */
  68301. #if !defined _SIGNAL_H && !defined __need_siginfo_t \
  68302. && !defined __need_sigevent_t
  68303. @@ -265,8 +264,11 @@
  68304. /* Structure to transport application-defined values with signals. */
  68305. # define __SIGEV_MAX_SIZE 64
  68306. -# define __SIGEV_HEAD_SIZE (sizeof(long) + 2*sizeof(int))
  68307. -# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE - __SIGEV_HEAD_SIZE) / sizeof (int))
  68308. +# if __WORDSIZE == 64
  68309. +# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 4)
  68310. +# else
  68311. +# define __SIGEV_PAD_SIZE ((__SIGEV_MAX_SIZE / sizeof (int)) - 3)
  68312. +# endif
  68313. /* Forward declaration of the `pthread_attr_t' type. */
  68314. struct __pthread_attr_s;
  68315. @@ -282,6 +284,10 @@
  68316. {
  68317. int _pad[__SIGEV_PAD_SIZE];
  68318. + /* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
  68319. + thread to receive the signal. */
  68320. + __pid_t _tid;
  68321. +
  68322. struct
  68323. {
  68324. void (*_function) (sigval_t); /* Function to start. */
  68325. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/signum.h uClibc-git/libc/sysdeps/linux/mips/bits/signum.h
  68326. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/signum.h 2012-05-15 09:20:09.000000000 +0200
  68327. +++ uClibc-git/libc/sysdeps/linux/mips/bits/signum.h 2014-06-02 17:40:34.538714885 +0200
  68328. @@ -13,9 +13,8 @@
  68329. Lesser General Public License for more details.
  68330. You should have received a copy of the GNU Lesser General Public
  68331. - License along with the GNU C Library; if not, write to the Free
  68332. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68333. - 02111-1307 USA. */
  68334. + License along with the GNU C Library; if not, see
  68335. + <http://www.gnu.org/licenses/>. */
  68336. #ifdef _SIGNAL_H
  68337. @@ -54,7 +53,20 @@
  68338. #define SIGXCPU 30 /* CPU limit exceeded (4.2 BSD). */
  68339. #define SIGXFSZ 31 /* File size limit exceeded (4.2 BSD). */
  68340. -/* Biggest signal number + 1 (including real-time signals). */
  68341. -#define _NSIG 129
  68342. +/* MIPS is special by having 128 signals.
  68343. + * All (?) other architectures have at most 64 signals.
  68344. + * Having 128 signals is problematic because signal nos are 1-based
  68345. + * and last signal number is then 128.
  68346. + * This plays havoc with WIFSIGNALED and WCOREDUMP in waitpid status word,
  68347. + * when process dies from signal 128.
  68348. + * Linux kernel 3.9 accepts signal 128, with awful results :/
  68349. + * It is being fixed.
  68350. + *
  68351. + * glibc (accidentally?) papers over this issue by declaring _NSIG to be 128,
  68352. + * not 129 (despite claiming that _NSIG is "biggest signal number + 1"
  68353. + * in the comment above that definition). We follow suit.
  68354. + * Note that this results in __SIGRTMAX == 127. It is intended.
  68355. + */
  68356. +#define _NSIG 128
  68357. #endif /* <signal.h> included. */
  68358. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigstack.h uClibc-git/libc/sysdeps/linux/mips/bits/sigstack.h
  68359. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/sigstack.h 2012-05-15 09:20:09.000000000 +0200
  68360. +++ uClibc-git/libc/sysdeps/linux/mips/bits/sigstack.h 2014-06-02 17:40:34.538714885 +0200
  68361. @@ -13,9 +13,8 @@
  68362. Lesser General Public License for more details.
  68363. You should have received a copy of the GNU Lesser General Public
  68364. - License along with the GNU C Library; if not, write to the Free
  68365. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68366. - 02111-1307 USA. */
  68367. + License along with the GNU C Library; if not, see
  68368. + <http://www.gnu.org/licenses/>. */
  68369. #ifndef _SIGNAL_H
  68370. # error "Never include this file directly. Use <signal.h> instead"
  68371. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/socket.h uClibc-git/libc/sysdeps/linux/mips/bits/socket.h
  68372. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/socket.h 2012-05-15 09:20:09.000000000 +0200
  68373. +++ uClibc-git/libc/sysdeps/linux/mips/bits/socket.h 1970-01-01 01:00:00.000000000 +0100
  68374. @@ -1,369 +0,0 @@
  68375. -/* System-specific socket constants and types. Linux/MIPS version.
  68376. - Copyright (C) 1991, 92, 1994-1999, 2000, 2001, 2004, 2005, 2006
  68377. - Free Software Foundation, Inc.
  68378. - This file is part of the GNU C Library.
  68379. -
  68380. - The GNU C Library is free software; you can redistribute it and/or
  68381. - modify it under the terms of the GNU Lesser General Public
  68382. - License as published by the Free Software Foundation; either
  68383. - version 2.1 of the License, or (at your option) any later version.
  68384. -
  68385. - The GNU C Library is distributed in the hope that it will be useful,
  68386. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  68387. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  68388. - Lesser General Public License for more details.
  68389. -
  68390. - You should have received a copy of the GNU Lesser General Public
  68391. - License along with the GNU C Library; if not, write to the Free
  68392. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68393. - 02111-1307 USA. */
  68394. -
  68395. -#ifndef __BITS_SOCKET_H
  68396. -#define __BITS_SOCKET_H
  68397. -
  68398. -#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
  68399. -# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
  68400. -#endif
  68401. -
  68402. -#define __need_size_t
  68403. -#define __need_NULL
  68404. -#include <stddef.h>
  68405. -
  68406. -#include <limits.h>
  68407. -#include <sys/types.h>
  68408. -
  68409. -/* Type for length arguments in socket calls. */
  68410. -#ifndef __socklen_t_defined
  68411. -typedef __socklen_t socklen_t;
  68412. -# define __socklen_t_defined
  68413. -#endif
  68414. -
  68415. -/* Types of sockets. */
  68416. -enum __socket_type
  68417. -{
  68418. - SOCK_DGRAM = 1, /* Connectionless, unreliable datagrams
  68419. - of fixed maximum length. */
  68420. -#define SOCK_DGRAM SOCK_DGRAM
  68421. - SOCK_STREAM = 2, /* Sequenced, reliable, connection-based
  68422. - byte streams. */
  68423. -#define SOCK_STREAM SOCK_STREAM
  68424. - SOCK_RAW = 3, /* Raw protocol interface. */
  68425. -#define SOCK_RAW SOCK_RAW
  68426. - SOCK_RDM = 4, /* Reliably-delivered messages. */
  68427. -#define SOCK_RDM SOCK_RDM
  68428. - SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
  68429. - datagrams of fixed maximum length. */
  68430. -#define SOCK_SEQPACKET SOCK_SEQPACKET
  68431. - SOCK_DCCP = 6,
  68432. -#define SOCK_DCCP SOCK_DCCP /* Datagram Congestion Control Protocol. */
  68433. - SOCK_PACKET = 10, /* Linux specific way of getting packets
  68434. - at the dev level. For writing rarp and
  68435. - other similar things on the user level. */
  68436. -#define SOCK_PACKET SOCK_PACKET
  68437. - /* Flags to be ORed into the type parameter of socket and socketpair and
  68438. - used for the flags parameter of paccept. */
  68439. -
  68440. - SOCK_CLOEXEC = 02000000, /* Atomically set close-on-exec flag for the
  68441. - new descriptor(s). */
  68442. -#define SOCK_CLOEXEC SOCK_CLOEXEC
  68443. - SOCK_NONBLOCK = 0200 /* Atomically mark descriptor(s) as
  68444. - non-blocking. */
  68445. -#define SOCK_NONBLOCK SOCK_NONBLOCK
  68446. -};
  68447. -
  68448. -/* Protocol families. */
  68449. -#define PF_UNSPEC 0 /* Unspecified. */
  68450. -#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */
  68451. -#define PF_UNIX PF_LOCAL /* Old BSD name for PF_LOCAL. */
  68452. -#define PF_FILE PF_LOCAL /* Another non-standard name for PF_LOCAL. */
  68453. -#define PF_INET 2 /* IP protocol family. */
  68454. -#define PF_AX25 3 /* Amateur Radio AX.25. */
  68455. -#define PF_IPX 4 /* Novell Internet Protocol. */
  68456. -#define PF_APPLETALK 5 /* Appletalk DDP. */
  68457. -#define PF_NETROM 6 /* Amateur radio NetROM. */
  68458. -#define PF_BRIDGE 7 /* Multiprotocol bridge. */
  68459. -#define PF_ATMPVC 8 /* ATM PVCs. */
  68460. -#define PF_X25 9 /* Reserved for X.25 project. */
  68461. -#define PF_INET6 10 /* IP version 6. */
  68462. -#define PF_ROSE 11 /* Amateur Radio X.25 PLP. */
  68463. -#define PF_DECnet 12 /* Reserved for DECnet project. */
  68464. -#define PF_NETBEUI 13 /* Reserved for 802.2LLC project. */
  68465. -#define PF_SECURITY 14 /* Security callback pseudo AF. */
  68466. -#define PF_KEY 15 /* PF_KEY key management API. */
  68467. -#define PF_NETLINK 16
  68468. -#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD. */
  68469. -#define PF_PACKET 17 /* Packet family. */
  68470. -#define PF_ASH 18 /* Ash. */
  68471. -#define PF_ECONET 19 /* Acorn Econet. */
  68472. -#define PF_ATMSVC 20 /* ATM SVCs. */
  68473. -#define PF_SNA 22 /* Linux SNA Project */
  68474. -#define PF_IRDA 23 /* IRDA sockets. */
  68475. -#define PF_PPPOX 24 /* PPPoX sockets. */
  68476. -#define PF_WANPIPE 25 /* Wanpipe API sockets. */
  68477. -#define PF_LLC 26 /* Linux LLC. */
  68478. -#define PF_CAN 29 /* Controller Area Network. */
  68479. -#define PF_TIPC 30 /* TIPC sockets. */
  68480. -#define PF_BLUETOOTH 31 /* Bluetooth sockets. */
  68481. -#define PF_IUCV 32 /* IUCV sockets. */
  68482. -#define PF_RXRPC 33 /* RxRPC sockets. */
  68483. -#define PF_ISDN 34 /* mISDN sockets. */
  68484. -#define PF_PHONET 35 /* Phonet sockets. */
  68485. -#define PF_IEEE802154 36 /* IEEE 802.15.4 sockets. */
  68486. -#define PF_CAIF 37 /* CAIF sockets. */
  68487. -#define PF_ALG 38 /* Algorithm sockets. */
  68488. -#define PF_MAX 39 /* For now.. */
  68489. -
  68490. -/* Address families. */
  68491. -#define AF_UNSPEC PF_UNSPEC
  68492. -#define AF_LOCAL PF_LOCAL
  68493. -#define AF_UNIX PF_UNIX
  68494. -#define AF_FILE PF_FILE
  68495. -#define AF_INET PF_INET
  68496. -#define AF_AX25 PF_AX25
  68497. -#define AF_IPX PF_IPX
  68498. -#define AF_APPLETALK PF_APPLETALK
  68499. -#define AF_NETROM PF_NETROM
  68500. -#define AF_BRIDGE PF_BRIDGE
  68501. -#define AF_ATMPVC PF_ATMPVC
  68502. -#define AF_X25 PF_X25
  68503. -#define AF_INET6 PF_INET6
  68504. -#define AF_ROSE PF_ROSE
  68505. -#define AF_DECnet PF_DECnet
  68506. -#define AF_NETBEUI PF_NETBEUI
  68507. -#define AF_SECURITY PF_SECURITY
  68508. -#define AF_KEY PF_KEY
  68509. -#define AF_NETLINK PF_NETLINK
  68510. -#define AF_ROUTE PF_ROUTE
  68511. -#define AF_PACKET PF_PACKET
  68512. -#define AF_ASH PF_ASH
  68513. -#define AF_ECONET PF_ECONET
  68514. -#define AF_ATMSVC PF_ATMSVC
  68515. -#define AF_SNA PF_SNA
  68516. -#define AF_IRDA PF_IRDA
  68517. -#define AF_PPPOX PF_PPPOX
  68518. -#define AF_WANPIPE PF_WANPIPE
  68519. -#define AF_LLC PF_LLC
  68520. -#define AF_CAN PF_CAN
  68521. -#define AF_TIPC PF_TIPC
  68522. -#define AF_BLUETOOTH PF_BLUETOOTH
  68523. -#define AF_IUCV PF_IUCV
  68524. -#define AF_RXRPC PF_RXRPC
  68525. -#define AF_ISDN PF_ISDN
  68526. -#define AF_PHONET PF_PHONET
  68527. -#define AF_IEEE802154 PF_IEEE802154
  68528. -#define AF_CAIF PF_CAIF
  68529. -#define AF_ALG PF_ALG
  68530. -#define AF_MAX PF_MAX
  68531. -
  68532. -/* Socket level values. Others are defined in the appropriate headers.
  68533. -
  68534. - XXX These definitions also should go into the appropriate headers as
  68535. - far as they are available. */
  68536. -#define SOL_RAW 255
  68537. -#define SOL_DECNET 261
  68538. -#define SOL_X25 262
  68539. -#define SOL_PACKET 263
  68540. -#define SOL_ATM 264 /* ATM layer (cell level). */
  68541. -#define SOL_AAL 265 /* ATM Adaption Layer (packet level). */
  68542. -#define SOL_IRDA 266
  68543. -
  68544. -/* Maximum queue length specifiable by listen. */
  68545. -#define SOMAXCONN 128
  68546. -
  68547. -/* Get the definition of the macro to define the common sockaddr members. */
  68548. -#include <bits/sockaddr.h>
  68549. -
  68550. -/* Structure describing a generic socket address. */
  68551. -struct sockaddr
  68552. - {
  68553. - __SOCKADDR_COMMON (sa_); /* Common data: address family and length. */
  68554. - char sa_data[14]; /* Address data. */
  68555. - };
  68556. -
  68557. -
  68558. -/* Structure large enough to hold any socket address (with the historical
  68559. - exception of AF_UNIX). We reserve 128 bytes. */
  68560. -#define __ss_aligntype unsigned long int
  68561. -#define _SS_SIZE 128
  68562. -#define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_aligntype)))
  68563. -
  68564. -struct sockaddr_storage
  68565. - {
  68566. - __SOCKADDR_COMMON (ss_); /* Address family, etc. */
  68567. - __ss_aligntype __ss_align; /* Force desired alignment. */
  68568. - char __ss_padding[_SS_PADSIZE];
  68569. - };
  68570. -
  68571. -
  68572. -/* Bits in the FLAGS argument to `send', `recv', et al. */
  68573. -enum
  68574. - {
  68575. - MSG_OOB = 0x01, /* Process out-of-band data. */
  68576. -#define MSG_OOB MSG_OOB
  68577. - MSG_PEEK = 0x02, /* Peek at incoming messages. */
  68578. -#define MSG_PEEK MSG_PEEK
  68579. - MSG_DONTROUTE = 0x04, /* Don't use local routing. */
  68580. -#define MSG_DONTROUTE MSG_DONTROUTE
  68581. -#ifdef __USE_GNU
  68582. - /* DECnet uses a different name. */
  68583. - MSG_TRYHARD = MSG_DONTROUTE,
  68584. -# define MSG_TRYHARD MSG_DONTROUTE
  68585. -#endif
  68586. - MSG_CTRUNC = 0x08, /* Control data lost before delivery. */
  68587. -#define MSG_CTRUNC MSG_CTRUNC
  68588. - MSG_PROXY = 0x10, /* Supply or ask second address. */
  68589. -#define MSG_PROXY MSG_PROXY
  68590. - MSG_TRUNC = 0x20,
  68591. -#define MSG_TRUNC MSG_TRUNC
  68592. - MSG_DONTWAIT = 0x40, /* Nonblocking IO. */
  68593. -#define MSG_DONTWAIT MSG_DONTWAIT
  68594. - MSG_EOR = 0x80, /* End of record. */
  68595. -#define MSG_EOR MSG_EOR
  68596. - MSG_WAITALL = 0x100, /* Wait for a full request. */
  68597. -#define MSG_WAITALL MSG_WAITALL
  68598. - MSG_FIN = 0x200,
  68599. -#define MSG_FIN MSG_FIN
  68600. - MSG_SYN = 0x400,
  68601. -#define MSG_SYN MSG_SYN
  68602. - MSG_CONFIRM = 0x800, /* Confirm path validity. */
  68603. -#define MSG_CONFIRM MSG_CONFIRM
  68604. - MSG_RST = 0x1000,
  68605. -#define MSG_RST MSG_RST
  68606. - MSG_ERRQUEUE = 0x2000, /* Fetch message from error queue. */
  68607. -#define MSG_ERRQUEUE MSG_ERRQUEUE
  68608. - MSG_NOSIGNAL = 0x4000, /* Do not generate SIGPIPE. */
  68609. -#define MSG_NOSIGNAL MSG_NOSIGNAL
  68610. - MSG_MORE = 0x8000, /* Sender will send more. */
  68611. -#define MSG_MORE MSG_MORE
  68612. - MSG_WAITFORONE = 0x10000, /* Wait for at least one packet to return.*/
  68613. -#define MSG_WAITFORONE MSG_WAITFORONE
  68614. -
  68615. - MSG_CMSG_CLOEXEC = 0x40000000 /* Set close_on_exit for file
  68616. - descriptor received through
  68617. - SCM_RIGHTS. */
  68618. -#define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC
  68619. - };
  68620. -
  68621. -
  68622. -/* Structure describing messages sent by
  68623. - `sendmsg' and received by `recvmsg'. */
  68624. -/* Note: do not change these members to match glibc; these match the
  68625. - SuSv3 spec already (e.g. msg_iovlen/msg_controllen).
  68626. - http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/socket.h.html */
  68627. -/* Note: linux kernel uses __kernel_size_t (which is 8bytes on 64bit
  68628. - platforms, and 4bytes on 32bit platforms) for msg_iovlen/msg_controllen */
  68629. -struct msghdr
  68630. - {
  68631. - void *msg_name; /* Address to send to/receive from. */
  68632. - socklen_t msg_namelen; /* Length of address data. */
  68633. -
  68634. - struct iovec *msg_iov; /* Vector of data to send/receive into. */
  68635. -#if __WORDSIZE == 32
  68636. - int msg_iovlen; /* Number of elements in the vector. */
  68637. -#else
  68638. - size_t msg_iovlen; /* Number of elements in the vector. */
  68639. -#endif
  68640. -
  68641. - void *msg_control; /* Ancillary data (eg BSD filedesc passing). */
  68642. -#if __WORDSIZE == 32
  68643. - socklen_t msg_controllen; /* Ancillary data buffer length. */
  68644. -#else
  68645. - size_t msg_controllen; /* Ancillary data buffer length. */
  68646. -#endif
  68647. -
  68648. - int msg_flags; /* Flags on received message. */
  68649. - };
  68650. -
  68651. -/* Structure used for storage of ancillary data object information. */
  68652. -struct cmsghdr
  68653. - {
  68654. - size_t cmsg_len; /* Length of data in cmsg_data plus length
  68655. - of cmsghdr structure. */
  68656. - int cmsg_level; /* Originating protocol. */
  68657. - int cmsg_type; /* Protocol specific type. */
  68658. -#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
  68659. - __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data. */
  68660. -#endif
  68661. - };
  68662. -
  68663. -/* Ancillary data object manipulation macros. */
  68664. -#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
  68665. -# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
  68666. -#else
  68667. -# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
  68668. -#endif
  68669. -#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
  68670. -#define CMSG_FIRSTHDR(mhdr) \
  68671. - ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
  68672. - ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
  68673. -#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
  68674. - & (size_t) ~(sizeof (size_t) - 1))
  68675. -#define CMSG_SPACE(len) (CMSG_ALIGN (len) \
  68676. - + CMSG_ALIGN (sizeof (struct cmsghdr)))
  68677. -#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
  68678. -
  68679. -extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
  68680. - struct cmsghdr *__cmsg) __THROW;
  68681. -libc_hidden_proto(__cmsg_nxthdr)
  68682. -#ifdef __USE_EXTERN_INLINES
  68683. -# ifndef _EXTERN_INLINE
  68684. -# define _EXTERN_INLINE extern __inline
  68685. -# endif
  68686. -_EXTERN_INLINE struct cmsghdr *
  68687. -__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
  68688. -{
  68689. - if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
  68690. - /* The kernel header does this so there may be a reason. */
  68691. - return 0;
  68692. -
  68693. - __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
  68694. - + CMSG_ALIGN (__cmsg->cmsg_len));
  68695. - if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
  68696. - + __mhdr->msg_controllen)
  68697. - || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
  68698. - > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
  68699. - /* No more entries. */
  68700. - return 0;
  68701. - return __cmsg;
  68702. -}
  68703. -#endif /* Use `extern inline'. */
  68704. -
  68705. -/* Socket level message types. This must match the definitions in
  68706. - <linux/socket.h>. */
  68707. -enum
  68708. - {
  68709. - SCM_RIGHTS = 0x01 /* Transfer file descriptors. */
  68710. -#define SCM_RIGHTS SCM_RIGHTS
  68711. -#ifdef __USE_BSD
  68712. - , SCM_CREDENTIALS = 0x02 /* Credentials passing. */
  68713. -# define SCM_CREDENTIALS SCM_CREDENTIALS
  68714. -#endif
  68715. - };
  68716. -
  68717. -/* User visible structure for SCM_CREDENTIALS message */
  68718. -
  68719. -struct ucred
  68720. -{
  68721. - pid_t pid; /* PID of sending process. */
  68722. - uid_t uid; /* UID of sending process. */
  68723. - gid_t gid; /* GID of sending process. */
  68724. -};
  68725. -
  68726. -/* Get socket manipulation related informations from kernel headers. */
  68727. -#ifndef __GLIBC__
  68728. -#define __GLIBC__ 2
  68729. -#include <asm/socket.h>
  68730. -#undef __GLIBC__
  68731. -#else
  68732. -#include <asm/socket.h>
  68733. -#endif
  68734. -
  68735. -
  68736. -/* Structure used to manipulate the SO_LINGER option. */
  68737. -struct linger
  68738. - {
  68739. - int l_onoff; /* Nonzero to linger on close. */
  68740. - int l_linger; /* Time to linger. */
  68741. - };
  68742. -
  68743. -#endif /* bits/socket.h */
  68744. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/socket_type.h uClibc-git/libc/sysdeps/linux/mips/bits/socket_type.h
  68745. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/socket_type.h 1970-01-01 01:00:00.000000000 +0100
  68746. +++ uClibc-git/libc/sysdeps/linux/mips/bits/socket_type.h 2014-06-02 17:40:34.538714885 +0200
  68747. @@ -0,0 +1,55 @@
  68748. +/* System-specific socket constants and types. Linux/MIPS version.
  68749. + Copyright (C) 1991, 92, 1994-1999, 2000, 2001, 2004, 2005, 2006
  68750. + Free Software Foundation, Inc.
  68751. + This file is part of the GNU C Library.
  68752. +
  68753. + The GNU C Library is free software; you can redistribute it and/or
  68754. + modify it under the terms of the GNU Lesser General Public
  68755. + License as published by the Free Software Foundation; either
  68756. + version 2.1 of the License, or (at your option) any later version.
  68757. +
  68758. + The GNU C Library is distributed in the hope that it will be useful,
  68759. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  68760. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  68761. + Lesser General Public License for more details.
  68762. +
  68763. + You should have received a copy of the GNU Lesser General Public
  68764. + License along with the GNU C Library; if not, see
  68765. + <http://www.gnu.org/licenses/>. */
  68766. +
  68767. +#ifndef _SYS_SOCKET_H
  68768. +# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
  68769. +#endif
  68770. +
  68771. +/* Types of sockets. */
  68772. +enum __socket_type
  68773. +{
  68774. + SOCK_DGRAM = 1, /* Connectionless, unreliable datagrams
  68775. + of fixed maximum length. */
  68776. +#define SOCK_DGRAM SOCK_DGRAM
  68777. + SOCK_STREAM = 2, /* Sequenced, reliable, connection-based
  68778. + byte streams. */
  68779. +#define SOCK_STREAM SOCK_STREAM
  68780. + SOCK_RAW = 3, /* Raw protocol interface. */
  68781. +#define SOCK_RAW SOCK_RAW
  68782. + SOCK_RDM = 4, /* Reliably-delivered messages. */
  68783. +#define SOCK_RDM SOCK_RDM
  68784. + SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
  68785. + datagrams of fixed maximum length. */
  68786. +#define SOCK_SEQPACKET SOCK_SEQPACKET
  68787. + SOCK_DCCP = 6,
  68788. +#define SOCK_DCCP SOCK_DCCP /* Datagram Congestion Control Protocol. */
  68789. + SOCK_PACKET = 10, /* Linux specific way of getting packets
  68790. + at the dev level. For writing rarp and
  68791. + other similar things on the user level. */
  68792. +#define SOCK_PACKET SOCK_PACKET
  68793. +
  68794. + /* Flags to be ORed into the type parameter of socket and socketpair. */
  68795. +
  68796. + SOCK_CLOEXEC = 02000000, /* Atomically set close-on-exec flag for the
  68797. + new descriptor(s). */
  68798. +#define SOCK_CLOEXEC SOCK_CLOEXEC
  68799. + SOCK_NONBLOCK = 00000200 /* Atomically mark descriptor(s) as
  68800. + non-blocking. */
  68801. +#define SOCK_NONBLOCK SOCK_NONBLOCK
  68802. +};
  68803. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/mips/bits/stackinfo.h
  68804. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  68805. +++ uClibc-git/libc/sysdeps/linux/mips/bits/stackinfo.h 2014-06-02 17:40:34.538714885 +0200
  68806. @@ -12,9 +12,8 @@
  68807. Lesser General Public License for more details.
  68808. You should have received a copy of the GNU Lesser General Public
  68809. - License along with the GNU C Library; if not, write to the Free
  68810. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68811. - 02111-1307 USA. */
  68812. + License along with the GNU C Library; if not, see
  68813. + <http://www.gnu.org/licenses/>. */
  68814. /* This file contains a bit of information about the stack allocation
  68815. of the processor. */
  68816. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/statfs.h uClibc-git/libc/sysdeps/linux/mips/bits/statfs.h
  68817. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/statfs.h 2012-05-15 09:20:09.000000000 +0200
  68818. +++ uClibc-git/libc/sysdeps/linux/mips/bits/statfs.h 2014-06-02 17:40:34.538714885 +0200
  68819. @@ -12,9 +12,8 @@
  68820. Lesser General Public License for more details.
  68821. You should have received a copy of the GNU Lesser General Public
  68822. - License along with the GNU C Library; if not, write to the Free
  68823. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68824. - 02111-1307 USA. */
  68825. + License along with the GNU C Library; if not, see
  68826. + <http://www.gnu.org/licenses/>. */
  68827. #ifndef _SYS_STATFS_H
  68828. # error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
  68829. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/stat.h uClibc-git/libc/sysdeps/linux/mips/bits/stat.h
  68830. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  68831. +++ uClibc-git/libc/sysdeps/linux/mips/bits/stat.h 2014-06-02 17:40:34.538714885 +0200
  68832. @@ -13,9 +13,8 @@
  68833. Lesser General Public License for more details.
  68834. You should have received a copy of the GNU Lesser General Public
  68835. - License along with the GNU C Library; if not, write to the Free
  68836. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68837. - 02111-1307 USA. */
  68838. + License along with the GNU C Library; if not, see
  68839. + <http://www.gnu.org/licenses/>. */
  68840. #ifndef _SYS_STAT_H
  68841. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  68842. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/syscalls.h uClibc-git/libc/sysdeps/linux/mips/bits/syscalls.h
  68843. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
  68844. +++ uClibc-git/libc/sysdeps/linux/mips/bits/syscalls.h 2014-06-02 17:40:34.538714885 +0200
  68845. @@ -29,7 +29,7 @@
  68846. } \
  68847. result_var; })
  68848. -#define INTERNAL_SYSCALL_DECL(err) long err
  68849. +#define INTERNAL_SYSCALL_DECL(err) long err attribute_unused
  68850. #define INTERNAL_SYSCALL_ERROR_P(val, err) ((long) (err))
  68851. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/termios.h uClibc-git/libc/sysdeps/linux/mips/bits/termios.h
  68852. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
  68853. +++ uClibc-git/libc/sysdeps/linux/mips/bits/termios.h 2014-06-02 17:40:34.538714885 +0200
  68854. @@ -13,9 +13,8 @@
  68855. Lesser General Public License for more details.
  68856. You should have received a copy of the GNU Lesser General Public
  68857. - License along with the GNU C Library; if not, write to the Free
  68858. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68859. - 02111-1307 USA. */
  68860. + License along with the GNU C Library; if not, see
  68861. + <http://www.gnu.org/licenses/>. */
  68862. #ifndef _TERMIOS_H
  68863. # error "Never include <bits/termios.h> directly; use <termios.h> instead."
  68864. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/mips/bits/uClibc_arch_features.h
  68865. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  68866. +++ uClibc-git/libc/sysdeps/linux/mips/bits/uClibc_arch_features.h 2014-06-02 17:40:34.538714885 +0200
  68867. @@ -4,6 +4,7 @@
  68868. #ifndef _BITS_UCLIBC_ARCH_FEATURES_H
  68869. #define _BITS_UCLIBC_ARCH_FEATURES_H
  68870. +#include <sgidefs.h>
  68871. /* instruction used when calling abort() to kill yourself */
  68872. #define __UCLIBC_ABORT_INSTRUCTION__ "break 255"
  68873. @@ -11,8 +12,12 @@
  68874. /* can your target use syscall6() for mmap ? */
  68875. #define __UCLIBC_MMAP_HAS_6_ARGS__
  68876. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  68877. -#define __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  68878. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  68879. +#if _MIPS_SIM == _ABIO32
  68880. +#define __UCLIBC_SYSCALL_ALIGN_64BIT__
  68881. +#else
  68882. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  68883. +#endif
  68884. /* does your target have a broken create_module() ? */
  68885. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  68886. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/mips/bits/uClibc_page.h
  68887. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  68888. +++ uClibc-git/libc/sysdeps/linux/mips/bits/uClibc_page.h 2014-06-02 17:40:34.538714885 +0200
  68889. @@ -11,8 +11,8 @@
  68890. * Library General Public License for more details.
  68891. *
  68892. * You should have received a copy of the GNU Library General Public
  68893. - * License along with this library; if not, write to the Free
  68894. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  68895. + * License along with this library; if not, see
  68896. + * <http://www.gnu.org/licenses/>.
  68897. */
  68898. /* Supply an architecture specific value for PAGE_SIZE and friends. */
  68899. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/wordsize.h uClibc-git/libc/sysdeps/linux/mips/bits/wordsize.h
  68900. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  68901. +++ uClibc-git/libc/sysdeps/linux/mips/bits/wordsize.h 2014-06-02 17:40:34.538714885 +0200
  68902. @@ -12,8 +12,7 @@
  68903. Lesser General Public License for more details.
  68904. You should have received a copy of the GNU Lesser General Public
  68905. - License along with the GNU C Library; if not, write to the Free
  68906. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68907. - 02111-1307 USA. */
  68908. + License along with the GNU C Library; if not, see
  68909. + <http://www.gnu.org/licenses/>. */
  68910. #define __WORDSIZE _MIPS_SZPTR
  68911. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/brk.c uClibc-git/libc/sysdeps/linux/mips/brk.c
  68912. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/brk.c 2012-05-15 09:20:09.000000000 +0200
  68913. +++ uClibc-git/libc/sysdeps/linux/mips/brk.c 2014-06-02 17:40:34.538714885 +0200
  68914. @@ -13,9 +13,8 @@
  68915. Lesser General Public License for more details.
  68916. You should have received a copy of the GNU Lesser General Public
  68917. - License along with the GNU C Library; if not, write to the Free
  68918. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68919. - 02111-1307 USA. */
  68920. + License along with the GNU C Library; if not, see
  68921. + <http://www.gnu.org/licenses/>. */
  68922. #include <errno.h>
  68923. #include <unistd.h>
  68924. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/mips/bsd-setjmp.S
  68925. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  68926. +++ uClibc-git/libc/sysdeps/linux/mips/bsd-setjmp.S 2014-06-02 17:40:34.538714885 +0200
  68927. @@ -13,9 +13,8 @@
  68928. Lesser General Public License for more details.
  68929. You should have received a copy of the GNU Lesser General Public
  68930. - License along with the GNU C Library; if not, write to the Free
  68931. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68932. - 02111-1307 USA. */
  68933. + License along with the GNU C Library; if not, see
  68934. + <http://www.gnu.org/licenses/>. */
  68935. /* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
  68936. We cannot do it in C because it must be a tail-call, so frame-unwinding
  68937. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/mips/bsd-_setjmp.S
  68938. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  68939. +++ uClibc-git/libc/sysdeps/linux/mips/bsd-_setjmp.S 2014-06-02 17:40:34.538714885 +0200
  68940. @@ -13,9 +13,8 @@
  68941. Lesser General Public License for more details.
  68942. You should have received a copy of the GNU Lesser General Public
  68943. - License along with the GNU C Library; if not, write to the Free
  68944. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68945. - 02111-1307 USA. */
  68946. + License along with the GNU C Library; if not, see
  68947. + <http://www.gnu.org/licenses/>. */
  68948. /* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
  68949. We cannot do it in C because it must be a tail-call, so frame-unwinding
  68950. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/cacheflush.c uClibc-git/libc/sysdeps/linux/mips/cacheflush.c
  68951. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/cacheflush.c 2012-05-15 09:20:09.000000000 +0200
  68952. +++ uClibc-git/libc/sysdeps/linux/mips/cacheflush.c 2014-06-02 17:40:34.538714885 +0200
  68953. @@ -12,19 +12,18 @@
  68954. Lesser General Public License for more details.
  68955. You should have received a copy of the GNU Lesser General Public
  68956. - License along with the uClibc Library; if not, write to the Free
  68957. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68958. - 02111-1307 USA. */
  68959. + License along with the uClibc Library; if not, see
  68960. + <http://www.gnu.org/licenses/>. */
  68961. -#include <errno.h>
  68962. -#include <unistd.h>
  68963. #include <sys/syscall.h>
  68964. #ifdef __NR_cacheflush
  68965. +# include <sys/cachectl.h>
  68966. _syscall3(int, cacheflush, void *, addr, const int, nbytes, const int, op)
  68967. -strong_alias(cacheflush, _flush_cache)
  68968. +strong_alias_untyped(cacheflush, _flush_cache)
  68969. #endif
  68970. #ifdef __NR_cachectl
  68971. +# include <sys/cachectl.h>
  68972. _syscall3(int, cachectl, void *, addr, const int, nbytes, const int, op)
  68973. #endif
  68974. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/clone.S uClibc-git/libc/sysdeps/linux/mips/clone.S
  68975. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/clone.S 2012-05-15 09:20:09.000000000 +0200
  68976. +++ uClibc-git/libc/sysdeps/linux/mips/clone.S 2014-06-02 17:40:34.538714885 +0200
  68977. @@ -13,9 +13,8 @@
  68978. Lesser General Public License for more details.
  68979. You should have received a copy of the GNU Lesser General Public
  68980. - License along with the GNU C Library; if not, write to the Free
  68981. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68982. - 02111-1307 USA. */
  68983. + License along with the GNU C Library; if not, see
  68984. + <http://www.gnu.org/licenses/>. */
  68985. /* clone() is even more special than fork() as it mucks with stacks
  68986. and invokes a function in the right context after its all over. */
  68987. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/crt1.S uClibc-git/libc/sysdeps/linux/mips/crt1.S
  68988. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/crt1.S 2012-05-15 09:20:09.000000000 +0200
  68989. +++ uClibc-git/libc/sysdeps/linux/mips/crt1.S 2014-06-02 17:40:34.538714885 +0200
  68990. @@ -31,9 +31,8 @@
  68991. Lesser General Public License for more details.
  68992. You should have received a copy of the GNU Lesser General Public
  68993. - License along with the GNU C Library; if not, write to the Free
  68994. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  68995. - 02111-1307 USA. */
  68996. + License along with the GNU C Library; if not, see
  68997. + <http://www.gnu.org/licenses/>. */
  68998. #include <sys/regdef.h>
  68999. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/fpu_control.h uClibc-git/libc/sysdeps/linux/mips/fpu_control.h
  69000. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  69001. +++ uClibc-git/libc/sysdeps/linux/mips/fpu_control.h 2014-06-02 17:40:34.542714907 +0200
  69002. @@ -14,9 +14,8 @@
  69003. Lesser General Public License for more details.
  69004. You should have received a copy of the GNU Lesser General Public
  69005. - License along with the GNU C Library; if not, write to the Free
  69006. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  69007. - 02111-1307 USA. */
  69008. + License along with the GNU C Library; if not, see
  69009. + <http://www.gnu.org/licenses/>. */
  69010. #ifndef _FPU_CONTROL_H
  69011. #define _FPU_CONTROL_H
  69012. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/getcontext.S uClibc-git/libc/sysdeps/linux/mips/getcontext.S
  69013. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/getcontext.S 1970-01-01 01:00:00.000000000 +0100
  69014. +++ uClibc-git/libc/sysdeps/linux/mips/getcontext.S 2014-06-02 17:40:34.542714907 +0200
  69015. @@ -0,0 +1,148 @@
  69016. +/* Save current context.
  69017. + Copyright (C) 2009 Free Software Foundation, Inc.
  69018. + This file is part of the GNU C Library.
  69019. + Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
  69020. +
  69021. + The GNU C Library is free software; you can redistribute it and/or
  69022. + modify it under the terms of the GNU Lesser General Public
  69023. + License as published by the Free Software Foundation; either
  69024. + version 2.1 of the License, or (at your option) any later version.
  69025. +
  69026. + The GNU C Library is distributed in the hope that it will be useful,
  69027. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  69028. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  69029. + Lesser General Public License for more details.
  69030. +
  69031. + You should have received a copy of the GNU Lesser General Public
  69032. + License along with the GNU C Library. If not, see
  69033. + <http://www.gnu.org/licenses/>. */
  69034. +
  69035. +#include <sysdep.h>
  69036. +#include <sys/asm.h>
  69037. +#include <sys/fpregdef.h>
  69038. +#include <sys/regdef.h>
  69039. +
  69040. +#include "ucontext_i.h"
  69041. +
  69042. +/* int getcontext (ucontext_t *ucp) */
  69043. +
  69044. + .text
  69045. +LOCALSZ = 0
  69046. +MASK = 0x00000000
  69047. +#ifdef __PIC__
  69048. +LOCALSZ = 1 /* save gp */
  69049. +# if _MIPS_SIM != _ABIO32
  69050. +MASK = 0x10000000
  69051. +# endif
  69052. +#endif
  69053. +FRAMESZ = ((LOCALSZ * SZREG) + ALSZ) & ALMASK
  69054. +GPOFF = FRAMESZ - (1 * SZREG)
  69055. +
  69056. +NESTED (__getcontext, FRAMESZ, ra)
  69057. + .mask MASK, 0
  69058. + .fmask 0x00000000, 0
  69059. +
  69060. +#ifdef __PIC__
  69061. + SETUP_GP
  69062. +
  69063. + move a2, sp
  69064. +# define _SP a2
  69065. +
  69066. +# if _MIPS_SIM != _ABIO32
  69067. + move a3, gp
  69068. +# define _GP a3
  69069. +# endif
  69070. +
  69071. + PTR_ADDIU sp, -FRAMESZ
  69072. + SETUP_GP64 (GPOFF, __getcontext)
  69073. + SAVE_GP (GPOFF)
  69074. +
  69075. +#else /* ! __PIC__ */
  69076. +# define _SP sp
  69077. +# define _GP gp
  69078. +
  69079. +#endif /* ! __PIC__ */
  69080. +
  69081. +#ifdef PROF
  69082. + .set noat
  69083. + move AT, ra
  69084. + jal _mcount
  69085. + .set at
  69086. +#endif
  69087. +
  69088. + /* Store a magic flag. */
  69089. + li v1, 1
  69090. + REG_S v1, (0 * SZREG + MCONTEXT_GREGS)(a0) /* zero */
  69091. +
  69092. + REG_S s0, (16 * SZREG + MCONTEXT_GREGS)(a0)
  69093. + REG_S s1, (17 * SZREG + MCONTEXT_GREGS)(a0)
  69094. + REG_S s2, (18 * SZREG + MCONTEXT_GREGS)(a0)
  69095. + REG_S s3, (19 * SZREG + MCONTEXT_GREGS)(a0)
  69096. + REG_S s4, (20 * SZREG + MCONTEXT_GREGS)(a0)
  69097. + REG_S s5, (21 * SZREG + MCONTEXT_GREGS)(a0)
  69098. + REG_S s6, (22 * SZREG + MCONTEXT_GREGS)(a0)
  69099. + REG_S s7, (23 * SZREG + MCONTEXT_GREGS)(a0)
  69100. +#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
  69101. + REG_S _GP, (28 * SZREG + MCONTEXT_GREGS)(a0)
  69102. +#endif
  69103. + REG_S _SP, (29 * SZREG + MCONTEXT_GREGS)(a0)
  69104. + REG_S fp, (30 * SZREG + MCONTEXT_GREGS)(a0)
  69105. + REG_S ra, (31 * SZREG + MCONTEXT_GREGS)(a0)
  69106. + REG_S ra, MCONTEXT_PC(a0)
  69107. +
  69108. +#ifdef __mips_hard_float
  69109. +# if _MIPS_SIM == _ABI64
  69110. + s.d fs0, (24 * SZREG + MCONTEXT_FPREGS)(a0)
  69111. + s.d fs1, (25 * SZREG + MCONTEXT_FPREGS)(a0)
  69112. + s.d fs2, (26 * SZREG + MCONTEXT_FPREGS)(a0)
  69113. + s.d fs3, (27 * SZREG + MCONTEXT_FPREGS)(a0)
  69114. + s.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
  69115. + s.d fs5, (29 * SZREG + MCONTEXT_FPREGS)(a0)
  69116. + s.d fs6, (30 * SZREG + MCONTEXT_FPREGS)(a0)
  69117. + s.d fs7, (31 * SZREG + MCONTEXT_FPREGS)(a0)
  69118. +
  69119. +# else /* _MIPS_SIM != _ABI64 */
  69120. + s.d fs0, (20 * SZREG + MCONTEXT_FPREGS)(a0)
  69121. + s.d fs1, (22 * SZREG + MCONTEXT_FPREGS)(a0)
  69122. + s.d fs2, (24 * SZREG + MCONTEXT_FPREGS)(a0)
  69123. + s.d fs3, (26 * SZREG + MCONTEXT_FPREGS)(a0)
  69124. + s.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
  69125. + s.d fs5, (30 * SZREG + MCONTEXT_FPREGS)(a0)
  69126. +
  69127. +# endif /* _MIPS_SIM != _ABI64 */
  69128. +
  69129. + cfc1 v1, fcr31
  69130. + sw v1, MCONTEXT_FPC_CSR(a0)
  69131. +#endif /* __mips_hard_float */
  69132. +
  69133. +/* rt_sigprocmask (SIG_BLOCK, NULL, &ucp->uc_sigmask, _NSIG8) */
  69134. + li a3, _NSIG8
  69135. + PTR_ADDU a2, a0, UCONTEXT_SIGMASK
  69136. + move a1, zero
  69137. + li a0, SIG_BLOCK
  69138. +
  69139. + li v0, SYS_ify (rt_sigprocmask)
  69140. + syscall
  69141. + bnez a3, 99f
  69142. +
  69143. +#ifdef __PIC__
  69144. + RESTORE_GP64
  69145. + PTR_ADDIU sp, FRAMESZ
  69146. +#endif
  69147. + move v0, zero
  69148. + jr ra
  69149. +
  69150. +99:
  69151. +#ifdef __PIC__
  69152. + PTR_LA t9, JUMPTARGET (__syscall_error)
  69153. + RESTORE_GP64
  69154. + PTR_ADDIU sp, FRAMESZ
  69155. + jr t9
  69156. +
  69157. +#else /* ! __PIC__ */
  69158. +
  69159. + j JUMPTARGET (__syscall_error)
  69160. +#endif /* ! __PIC__ */
  69161. +PSEUDO_END (__getcontext)
  69162. +
  69163. +weak_alias (__getcontext, getcontext)
  69164. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/mips/jmpbuf-unwind.h
  69165. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  69166. +++ uClibc-git/libc/sysdeps/linux/mips/jmpbuf-unwind.h 2014-06-02 17:40:34.542714907 +0200
  69167. @@ -0,0 +1,22 @@
  69168. +/*
  69169. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  69170. + *
  69171. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  69172. + */
  69173. +#include <setjmp.h>
  69174. +
  69175. +/* Test if longjmp to JMPBUF would unwind the frame
  69176. + containing a local variable at ADDRESS. */
  69177. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  69178. + ((void *) (address) < (void *) (jmpbuf)[0].__sp)
  69179. +
  69180. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  69181. +#include <stdint.h>
  69182. +#include <unwind.h>
  69183. +
  69184. +#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
  69185. + _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
  69186. +
  69187. +#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  69188. + ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[0].__sp - (_adj))
  69189. +#endif
  69190. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/kernel_rt_sigframe.h uClibc-git/libc/sysdeps/linux/mips/kernel_rt_sigframe.h
  69191. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/kernel_rt_sigframe.h 1970-01-01 01:00:00.000000000 +0100
  69192. +++ uClibc-git/libc/sysdeps/linux/mips/kernel_rt_sigframe.h 2014-06-02 17:40:34.542714907 +0200
  69193. @@ -0,0 +1,10 @@
  69194. +/* Linux kernel RT signal frame. */
  69195. +typedef struct kernel_rt_sigframe
  69196. + {
  69197. + uint32_t rs_ass[4];
  69198. + uint32_t rs_code[2];
  69199. + siginfo_t rs_info;
  69200. + struct ucontext rs_uc;
  69201. + uint32_t rs_altcode[8] __attribute__ ((__aligned__ (1 << 7)));
  69202. + }
  69203. +kernel_rt_sigframe_t;
  69204. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/__longjmp.c uClibc-git/libc/sysdeps/linux/mips/__longjmp.c
  69205. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/__longjmp.c 2012-05-15 09:20:09.000000000 +0200
  69206. +++ uClibc-git/libc/sysdeps/linux/mips/__longjmp.c 2014-06-02 17:40:34.534714863 +0200
  69207. @@ -13,9 +13,8 @@
  69208. Lesser General Public License for more details.
  69209. You should have received a copy of the GNU Lesser General Public
  69210. - License along with the GNU C Library; if not, write to the Free
  69211. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  69212. - 02111-1307 USA. */
  69213. + License along with the GNU C Library; if not, see
  69214. + <http://www.gnu.org/licenses/>. */
  69215. #include <features.h>
  69216. #include <setjmp.h>
  69217. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/makecontext.S uClibc-git/libc/sysdeps/linux/mips/makecontext.S
  69218. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/makecontext.S 1970-01-01 01:00:00.000000000 +0100
  69219. +++ uClibc-git/libc/sysdeps/linux/mips/makecontext.S 2014-06-02 17:40:34.542714907 +0200
  69220. @@ -0,0 +1,188 @@
  69221. +/* Modify saved context.
  69222. + Copyright (C) 2009 Free Software Foundation, Inc.
  69223. + This file is part of the GNU C Library.
  69224. + Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
  69225. +
  69226. + The GNU C Library is free software; you can redistribute it and/or
  69227. + modify it under the terms of the GNU Lesser General Public
  69228. + License as published by the Free Software Foundation; either
  69229. + version 2.1 of the License, or (at your option) any later version.
  69230. +
  69231. + The GNU C Library is distributed in the hope that it will be useful,
  69232. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  69233. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  69234. + Lesser General Public License for more details.
  69235. +
  69236. + You should have received a copy of the GNU Lesser General Public
  69237. + License along with the GNU C Library. If not, see
  69238. + <http://www.gnu.org/licenses/>. */
  69239. +
  69240. +#include <sysdep.h>
  69241. +#include <sys/asm.h>
  69242. +#include <sys/fpregdef.h>
  69243. +#include <sys/regdef.h>
  69244. +
  69245. +#include "ucontext_i.h"
  69246. +
  69247. +/* int makecontext (ucontext_t *ucp, (void *func) (), int argc, ...) */
  69248. +
  69249. + .text
  69250. +LOCALSZ = 0
  69251. +ARGSZ = 0
  69252. +MASK = 0x00000000
  69253. +#ifdef __PIC__
  69254. +LOCALSZ = 1 /* save gp */
  69255. +#endif
  69256. +#if _MIPS_SIM != _ABIO32
  69257. +ARGSZ = 5 /* save a3-a7 */
  69258. +# ifdef __PIC__
  69259. +MASK = 0x10000000
  69260. +# endif
  69261. +#endif
  69262. +FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
  69263. +GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
  69264. +#if _MIPS_SIM != _ABIO32
  69265. +A3OFF = FRAMESZ - (5 * SZREG) /* callee-allocated */
  69266. +A4OFF = FRAMESZ - (4 * SZREG)
  69267. +A5OFF = FRAMESZ - (3 * SZREG)
  69268. +A6OFF = FRAMESZ - (2 * SZREG)
  69269. +A7OFF = FRAMESZ - (1 * SZREG)
  69270. +NARGREGS = 8
  69271. +#else
  69272. +A3OFF = FRAMESZ + (3 * SZREG) /* caller-allocated */
  69273. +NARGREGS = 4
  69274. +#endif
  69275. +
  69276. +NESTED (__makecontext, FRAMESZ, ra)
  69277. + .mask MASK, -(ARGSZ * SZREG)
  69278. + .fmask 0x00000000, 0
  69279. +
  69280. +98:
  69281. +#ifdef __PIC__
  69282. + SETUP_GP
  69283. +#endif
  69284. +
  69285. + PTR_ADDIU sp, -FRAMESZ
  69286. +
  69287. +#ifdef __PIC__
  69288. + SETUP_GP64 (GPOFF, __makecontext)
  69289. + SAVE_GP (GPOFF)
  69290. +#endif
  69291. +
  69292. +#ifdef PROF
  69293. + .set noat
  69294. + move AT, ra
  69295. + jal _mcount
  69296. + .set at
  69297. +#endif
  69298. +
  69299. + /* Store args to be passed. */
  69300. + REG_S a3, A3OFF(sp)
  69301. +#if _MIPS_SIM != _ABIO32
  69302. + REG_S a4, A4OFF(sp)
  69303. + REG_S a5, A5OFF(sp)
  69304. + REG_S a6, A6OFF(sp)
  69305. + REG_S a7, A7OFF(sp)
  69306. +#endif
  69307. +
  69308. + /* Store a magic flag. */
  69309. + li v1, 1
  69310. + REG_S v1, (0 * SZREG + MCONTEXT_GREGS)(a0) /* zero */
  69311. +
  69312. + /* Set up the stack. */
  69313. + PTR_L t0, STACK_SP(a0)
  69314. + PTR_L t2, STACK_SIZE(a0)
  69315. + PTR_ADDIU t1, sp, A3OFF
  69316. + PTR_ADDU t0, t2
  69317. + and t0, ALMASK
  69318. + blez a2, 2f /* no arguments */
  69319. +
  69320. + /* Store register arguments. */
  69321. + PTR_ADDIU t2, a0, MCONTEXT_GREGS + 4 * SZREG
  69322. + move t3, zero
  69323. +0:
  69324. + addiu t3, 1
  69325. + REG_L v1, (t1)
  69326. + PTR_ADDIU t1, SZREG
  69327. + REG_S v1, (t2)
  69328. + PTR_ADDIU t2, SZREG
  69329. + bgeu t3, a2, 2f /* all done */
  69330. + bltu t3, NARGREGS, 0b /* next */
  69331. +
  69332. + /* Make room for stack arguments. */
  69333. + PTR_SUBU t2, a2, t3
  69334. + PTR_SLL t2, 3
  69335. + PTR_SUBU t0, t2
  69336. + and t0, ALMASK
  69337. +
  69338. + /* Store stack arguments. */
  69339. + move t2, t0
  69340. +1:
  69341. + addiu t3, 1
  69342. + REG_L v1, (t1)
  69343. + PTR_ADDIU t1, SZREG
  69344. + REG_S v1, (t2)
  69345. + PTR_ADDIU t2, SZREG
  69346. + bltu t3, a2, 1b /* next */
  69347. +
  69348. +2:
  69349. +#if _MIPS_SIM == _ABIO32
  69350. + /* Make room for a0-a3 storage. */
  69351. + PTR_ADDIU t0, -(NARGSAVE * SZREG)
  69352. +#endif
  69353. + PTR_L v1, UCONTEXT_LINK(a0)
  69354. +#ifdef __PIC__
  69355. + PTR_ADDIU t9, 99f - 98b
  69356. +#else
  69357. + PTR_LA t9, 99f
  69358. +#endif
  69359. + REG_S t0, (29 * SZREG + MCONTEXT_GREGS)(a0) /* sp */
  69360. + REG_S v1, (16 * SZREG + MCONTEXT_GREGS)(a0) /* s0 */
  69361. +#ifdef __PIC__
  69362. + REG_S gp, (17 * SZREG + MCONTEXT_GREGS)(a0) /* s1 */
  69363. +#endif
  69364. + REG_S t9, (31 * SZREG + MCONTEXT_GREGS)(a0) /* ra */
  69365. + REG_S a1, MCONTEXT_PC(a0)
  69366. +
  69367. +#ifdef __PIC__
  69368. + RESTORE_GP64
  69369. + PTR_ADDIU sp, FRAMESZ
  69370. +#endif
  69371. + jr ra
  69372. +
  69373. +99:
  69374. +#ifdef __PIC__
  69375. + move gp, s1
  69376. +#endif
  69377. + move a0, zero
  69378. + beqz s0, 0f
  69379. +
  69380. + /* setcontext (ucp) */
  69381. + move a0, s0
  69382. +#ifdef __PIC__
  69383. + PTR_LA t9, JUMPTARGET (__setcontext)
  69384. + jalr t9
  69385. +# if _MIPS_SIM == _ABIO32
  69386. + move gp, s1
  69387. +# endif
  69388. +#else
  69389. + jal JUMPTARGET (__setcontext)
  69390. +#endif
  69391. + move a0, v0
  69392. +
  69393. +0:
  69394. + /* exit (a0) */
  69395. +#ifdef __PIC__
  69396. + PTR_LA t9, HIDDEN_JUMPTARGET (exit)
  69397. + jalr t9
  69398. +#else
  69399. + jal HIDDEN_JUMPTARGET (exit)
  69400. +#endif
  69401. +
  69402. + /* You don't exist, you won't feel anything. */
  69403. +1:
  69404. + lb zero, (zero)
  69405. + b 1b
  69406. +PSEUDO_END (__makecontext)
  69407. +
  69408. +weak_alias (__makecontext, makecontext)
  69409. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/Makefile.arch uClibc-git/libc/sysdeps/linux/mips/Makefile.arch
  69410. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  69411. +++ uClibc-git/libc/sysdeps/linux/mips/Makefile.arch 2014-06-02 17:40:34.534714863 +0200
  69412. @@ -5,20 +5,18 @@
  69413. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  69414. #
  69415. -CSRC := \
  69416. - __longjmp.c brk.c setjmp_aux.c mmap.c \
  69417. - cacheflush.c pread_write.c sigaction.c sysmips.c _test_and_set.c \
  69418. - readahead.c
  69419. -
  69420. -SSRC := bsd-_setjmp.S bsd-setjmp.S setjmp.S syscall.S pipe.S syscall_error.S
  69421. -
  69422. -ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
  69423. -CSRC += posix_fadvise.c posix_fadvise64.c
  69424. -endif
  69425. -
  69426. -ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  69427. -SSRC += vfork.S clone.S
  69428. -endif
  69429. +CSRC-y := \
  69430. + __longjmp.c brk.c setjmp_aux.c \
  69431. + pread_write.c sigaction.c _test_and_set.c
  69432. +
  69433. +SSRC-y := bsd-_setjmp.S bsd-setjmp.S setjmp.S syscall.S pipe.S syscall_error.S
  69434. +
  69435. +CSRC-$(UCLIBC_LINUX_SPECIFIC) += cacheflush.c sysmips.c
  69436. +CSRC-$(UCLIBC_HAS_ADVANCED_REALTIME) += posix_fadvise.c
  69437. +CSRC-$(if $(findstring yy,$(UCLIBC_HAS_LFS)$(UCLIBC_HAS_ADVANCED_REALTIME)),y) += posix_fadvise64.c
  69438. +SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += vfork.S clone.S
  69439. +SSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += makecontext.S setcontext.S getcontext.S \
  69440. + swapcontext.S
  69441. ASFLAGS-syscall_error.S += -D_LIBC_REENTRANT
  69442. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/mmap.c uClibc-git/libc/sysdeps/linux/mips/mmap.c
  69443. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/mmap.c 2012-05-15 09:20:09.000000000 +0200
  69444. +++ uClibc-git/libc/sysdeps/linux/mips/mmap.c 1970-01-01 01:00:00.000000000 +0100
  69445. @@ -1,26 +0,0 @@
  69446. -/* Use new style mmap for mips */
  69447. -/*
  69448. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  69449. - *
  69450. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  69451. - */
  69452. -
  69453. -#include <unistd.h>
  69454. -#include <errno.h>
  69455. -#include <sys/mman.h>
  69456. -#include <sys/syscall.h>
  69457. -
  69458. -
  69459. -#if 0
  69460. -/* For now, leave mmap using mmap1 since mmap2 seems
  69461. - * to have issues (i.e. it doesn't work 100% properly).
  69462. - */
  69463. -#ifdef __NR_mmap2
  69464. -# undef __NR_mmap
  69465. -# define __NR_mmap __NR_mmap2
  69466. -#endif
  69467. -#endif
  69468. -
  69469. -_syscall6 (__ptr_t, mmap, __ptr_t, addr, size_t, len, int, prot,
  69470. - int, flags, int, fd, __off_t, offset)
  69471. -libc_hidden_def(mmap)
  69472. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/posix_fadvise64.c uClibc-git/libc/sysdeps/linux/mips/posix_fadvise64.c
  69473. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/posix_fadvise64.c 2012-05-15 09:20:09.000000000 +0200
  69474. +++ uClibc-git/libc/sysdeps/linux/mips/posix_fadvise64.c 2014-06-02 17:40:34.542714907 +0200
  69475. @@ -8,36 +8,28 @@
  69476. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  69477. */
  69478. -#include <features.h>
  69479. -#include <unistd.h>
  69480. -#include <errno.h>
  69481. -#include <endian.h>
  69482. -#include <stdint.h>
  69483. -#include <sys/types.h>
  69484. +#include <_lfs_64.h>
  69485. #include <sys/syscall.h>
  69486. -#include <fcntl.h>
  69487. +#include <bits/wordsize.h>
  69488. -#ifdef __UCLIBC_HAS_LFS__
  69489. +/* MIPS kernel only has NR_fadvise64 which acts as NR_fadvise64_64 */
  69490. +#if defined __NR_fadvise64 && __WORDSIZE == 32
  69491. +# include <fcntl.h>
  69492. +# include <endian.h>
  69493. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advice)
  69494. +int posix_fadvise64(int fd, off64_t offset, off64_t len, int advice)
  69495. {
  69496. -/* MIPS kernel only has NR_fadvise64 which acts as NR_fadvise64_64 */
  69497. -#ifdef __NR_fadvise64
  69498. INTERNAL_SYSCALL_DECL(err);
  69499. -# if _MIPS_SIM == _MIPS_SIM_ABI32
  69500. +# if _MIPS_SIM == _ABIO32
  69501. int ret = INTERNAL_SYSCALL(fadvise64, err, 7, fd, 0,
  69502. - __LONG_LONG_PAIR ((long) (offset >> 32), (long) offset),
  69503. - __LONG_LONG_PAIR ((long) (len >> 32), (long) len),
  69504. - advice);
  69505. + __LONG_LONG_PAIR ((long) (offset >> 32), (long) offset),
  69506. + __LONG_LONG_PAIR ((long) (len >> 32), (long) len),
  69507. + advice);
  69508. # else /* N32 || N64 */
  69509. int ret = INTERNAL_SYSCALL(fadvise64, err, 4, fd, offset, len, advice);
  69510. # endif
  69511. if (INTERNAL_SYSCALL_ERROR_P (ret, err))
  69512. return INTERNAL_SYSCALL_ERRNO (ret, err);
  69513. return 0;
  69514. -#else
  69515. - return ENOSYS;
  69516. -#endif
  69517. }
  69518. -
  69519. -#endif /* __UCLIBC_HAS_LFS__ */
  69520. +#endif
  69521. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/posix_fadvise.c uClibc-git/libc/sysdeps/linux/mips/posix_fadvise.c
  69522. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/posix_fadvise.c 2012-05-15 09:20:09.000000000 +0200
  69523. +++ uClibc-git/libc/sysdeps/linux/mips/posix_fadvise.c 2014-06-02 17:40:34.542714907 +0200
  69524. @@ -8,19 +8,16 @@
  69525. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  69526. */
  69527. -#include <features.h>
  69528. -#include <unistd.h>
  69529. -#include <errno.h>
  69530. -#include <endian.h>
  69531. -#include <stdint.h>
  69532. -#include <sys/types.h>
  69533. #include <sys/syscall.h>
  69534. -#include <fcntl.h>
  69535. -int posix_fadvise(int fd, off_t offset, off_t len, int advice)
  69536. -{
  69537. /* MIPS kernel only has NR_fadvise64 which acts as NR_fadvise64_64 */
  69538. #ifdef __NR_fadvise64
  69539. +# include <fcntl.h>
  69540. +# include <endian.h>
  69541. +# include <bits/wordsize.h>
  69542. +
  69543. +int posix_fadvise(int fd, off_t offset, off_t len, int advice)
  69544. +{
  69545. INTERNAL_SYSCALL_DECL(err);
  69546. # if _MIPS_SIM == _ABIO32
  69547. int ret = INTERNAL_SYSCALL(fadvise64, err, 7, fd, 0,
  69548. @@ -33,7 +30,9 @@
  69549. if (INTERNAL_SYSCALL_ERROR_P (ret, err))
  69550. return INTERNAL_SYSCALL_ERRNO (ret, err);
  69551. return 0;
  69552. -#else
  69553. - return ENOSYS;
  69554. -#endif
  69555. }
  69556. +# if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 64
  69557. +strong_alias(posix_fadvise,posix_fadvise64)
  69558. +# endif
  69559. +
  69560. +#endif
  69561. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/pread_write.c uClibc-git/libc/sysdeps/linux/mips/pread_write.c
  69562. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/pread_write.c 2012-05-15 09:20:09.000000000 +0200
  69563. +++ uClibc-git/libc/sysdeps/linux/mips/pread_write.c 2014-06-02 17:40:34.542714907 +0200
  69564. @@ -4,112 +4,28 @@
  69565. *
  69566. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  69567. */
  69568. -/*
  69569. - * Based in part on the files
  69570. - * ./sysdeps/unix/sysv/linux/pwrite.c,
  69571. - * ./sysdeps/unix/sysv/linux/pread.c,
  69572. - * sysdeps/posix/pread.c
  69573. - * sysdeps/posix/pwrite.c
  69574. - * from GNU libc 2.2.5, but reworked considerably...
  69575. - */
  69576. #include <sys/syscall.h>
  69577. #include <unistd.h>
  69578. -#include <stdint.h>
  69579. #include <endian.h>
  69580. #include <sgidefs.h>
  69581. -#ifdef __NR_pread64 /* Newer kernels renamed but it's the same. */
  69582. -# ifdef __NR_pread
  69583. -# error "__NR_pread and __NR_pread64 both defined???"
  69584. -# endif
  69585. -# define __NR_pread __NR_pread64
  69586. -#endif
  69587. -
  69588. -extern __typeof(pread) __libc_pread;
  69589. -extern __typeof(pwrite) __libc_pwrite;
  69590. -#ifdef __UCLIBC_HAS_LFS__
  69591. -extern __typeof(pread64) __libc_pread64;
  69592. -extern __typeof(pwrite64) __libc_pwrite64;
  69593. -#endif
  69594. -
  69595. -#include <bits/kernel_types.h>
  69596. -
  69597. -
  69598. -#ifdef __NR_pread
  69599. -
  69600. -# if _MIPS_SIM == _MIPS_SIM_ABI64
  69601. -# define __NR___libc_pread __NR_pread
  69602. -_syscall4(ssize_t, __libc_pread, int, fd, void *, buf, size_t, count, off_t, offset)
  69603. -weak_alias (__libc_pread, pread)
  69604. -# ifdef __UCLIBC_HAS_LFS__
  69605. -# define __NR___libc_pread64 __NR_pread
  69606. -_syscall4(ssize_t, __libc_pread64, int, fd, void *, buf, size_t, count, off64_t, offset)
  69607. -weak_alias (__libc_pread64, pread64)
  69608. -# endif /* __UCLIBC_HAS_LFS__ */
  69609. -# else /* O32 || N32 */
  69610. -# define __NR___syscall_pread __NR_pread
  69611. -static __inline__ _syscall6(ssize_t, __syscall_pread, int, fd, void *, buf,
  69612. - size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
  69613. -
  69614. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  69615. -{
  69616. - return(__syscall_pread(fd,buf,count,0,__LONG_LONG_PAIR(offset>>31,offset)));
  69617. -}
  69618. -weak_alias(__libc_pread,pread)
  69619. -
  69620. -# ifdef __UCLIBC_HAS_LFS__
  69621. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  69622. -{
  69623. - uint32_t low = offset & 0xffffffff;
  69624. - uint32_t high = offset >> 32;
  69625. - return(__syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR (high, low)));
  69626. -}
  69627. -weak_alias(__libc_pread64,pread64)
  69628. -# endif /* __UCLIBC_HAS_LFS__ */
  69629. -# endif /* O32 || N32 */
  69630. -
  69631. -#endif /* __NR_pread */
  69632. -
  69633. -/**********************************************************************/
  69634. -
  69635. -#ifdef __NR_pwrite64 /* Newer kernels renamed but it's the same. */
  69636. -# ifdef __NR_pwrite
  69637. -# error "__NR_pwrite and __NR_pwrite64 both defined???"
  69638. -# endif
  69639. -# define __NR_pwrite __NR_pwrite64
  69640. +/* We should generalize this for 32bit userlands w/64bit regs. This applies
  69641. + * to the x86_64 x32 and the mips n32 ABIs. */
  69642. +#if _MIPS_SIM == _MIPS_SIM_NABI32
  69643. +# define __NR___syscall_pread __NR_pread64
  69644. +static _syscall4(ssize_t, __syscall_pread, int, fd, void *, buf, size_t, count, off_t, offset)
  69645. +# define MY_PREAD(fd, buf, count, offset) \
  69646. + __syscall_pread(fd, buf, count, offset)
  69647. +# define MY_PREAD64(fd, buf, count, offset) \
  69648. + __syscall_pread(fd, buf, count, offset)
  69649. +
  69650. +# define __NR___syscall_pwrite __NR_pwrite64
  69651. +static _syscall4(ssize_t, __syscall_pwrite, int, fd, const void *, buf, size_t, count, off_t, offset)
  69652. +# define MY_PWRITE(fd, buf, count, offset) \
  69653. + __syscall_pwrite(fd, buf, count, offset)
  69654. +# define MY_PWRITE64(fd, buf, count, offset) \
  69655. + __syscall_pwrite(fd, buf, count, offset)
  69656. #endif
  69657. -#ifdef __NR_pwrite
  69658. -
  69659. -# if _MIPS_SIM == _MIPS_SIM_ABI64
  69660. -# define __NR___libc_pwrite __NR_pwrite
  69661. -_syscall4(ssize_t, __libc_pwrite, int, fd, const void *, buf, size_t, count, off_t, offset)
  69662. -weak_alias (__libc_pwrite, pwrite)
  69663. -# ifdef __UCLIBC_HAS_LFS__
  69664. -# define __NR___libc_pwrite64 __NR_pwrite
  69665. -_syscall4(ssize_t, __libc_pwrite64, int, fd, const void *, buf, size_t, count, off64_t, offset)
  69666. -weak_alias (__libc_pwrite64, pwrite64)
  69667. -# endif /* __UCLIBC_HAS_LFS__ */
  69668. -# else /* O32 || N32 */
  69669. -# define __NR___syscall_pwrite __NR_pwrite
  69670. -static __inline__ _syscall6(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
  69671. - size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
  69672. -
  69673. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  69674. -{
  69675. - return(__syscall_pwrite(fd,buf,count,0,__LONG_LONG_PAIR(offset>>31,offset)));
  69676. -}
  69677. -weak_alias(__libc_pwrite,pwrite)
  69678. -
  69679. -# ifdef __UCLIBC_HAS_LFS__
  69680. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  69681. -{
  69682. - uint32_t low = offset & 0xffffffff;
  69683. - uint32_t high = offset >> 32;
  69684. - return(__syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR (high, low)));
  69685. -}
  69686. -weak_alias(__libc_pwrite64,pwrite64)
  69687. -# endif /* __UCLIBC_HAS_LFS__ */
  69688. -# endif /* O32 || N32 */
  69689. -#endif /* __NR_pwrite */
  69690. +#include "../common/pread_write.c"
  69691. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/readahead.c uClibc-git/libc/sysdeps/linux/mips/readahead.c
  69692. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/readahead.c 2012-05-15 09:20:09.000000000 +0200
  69693. +++ uClibc-git/libc/sysdeps/linux/mips/readahead.c 1970-01-01 01:00:00.000000000 +0100
  69694. @@ -1,41 +0,0 @@
  69695. -/* Provide kernel hint to read ahead.
  69696. - Copyright (C) 2002, 2003, 2004 Free Software Foundation, Inc.
  69697. - This file is part of the GNU C Library.
  69698. -
  69699. - The GNU C Library is free software; you can redistribute it and/or
  69700. - modify it under the terms of the GNU Lesser General Public
  69701. - License as published by the Free Software Foundation; either
  69702. - version 2.1 of the License, or (at your option) any later version.
  69703. -
  69704. - The GNU C Library is distributed in the hope that it will be useful,
  69705. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  69706. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  69707. - Lesser General Public License for more details.
  69708. -
  69709. - You should have received a copy of the GNU Lesser General Public
  69710. - License along with the GNU C Library; if not, write to the Free
  69711. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  69712. - 02111-1307 USA. */
  69713. -
  69714. -#include <errno.h>
  69715. -#include <fcntl.h>
  69716. -#include <sys/types.h>
  69717. -#include <sys/syscall.h>
  69718. -
  69719. -#ifdef __UCLIBC_HAS_LFS__
  69720. -#include <_lfs_64.h>
  69721. -# ifdef __NR_readahead
  69722. -
  69723. -ssize_t readahead(int fd, off64_t offset, size_t count)
  69724. -{
  69725. -# if _MIPS_SIM == _ABIO32
  69726. - return INLINE_SYSCALL (readahead, 5, fd, 0,
  69727. - __LONG_LONG_PAIR ((off_t) (offset >> 32), (off_t) offset),
  69728. - count);
  69729. -# else /* N32 || N64 */
  69730. - return INLINE_SYSCALL (readahead, 3, fd, offset, count);
  69731. -# endif
  69732. -}
  69733. -
  69734. -# endif
  69735. -#endif
  69736. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/setcontext.S uClibc-git/libc/sysdeps/linux/mips/setcontext.S
  69737. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/setcontext.S 1970-01-01 01:00:00.000000000 +0100
  69738. +++ uClibc-git/libc/sysdeps/linux/mips/setcontext.S 2014-06-02 17:40:34.542714907 +0200
  69739. @@ -0,0 +1,191 @@
  69740. +/* Set current context.
  69741. + Copyright (C) 2009 Free Software Foundation, Inc.
  69742. + This file is part of the GNU C Library.
  69743. + Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
  69744. +
  69745. + The GNU C Library is free software; you can redistribute it and/or
  69746. + modify it under the terms of the GNU Lesser General Public
  69747. + License as published by the Free Software Foundation; either
  69748. + version 2.1 of the License, or (at your option) any later version.
  69749. +
  69750. + The GNU C Library is distributed in the hope that it will be useful,
  69751. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  69752. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  69753. + Lesser General Public License for more details.
  69754. +
  69755. + You should have received a copy of the GNU Lesser General Public
  69756. + License along with the GNU C Library. If not, see
  69757. + <http://www.gnu.org/licenses/>. */
  69758. +
  69759. +#include <sysdep.h>
  69760. +#include <sys/asm.h>
  69761. +#include <sys/fpregdef.h>
  69762. +#include <sys/regdef.h>
  69763. +
  69764. +#include "ucontext_i.h"
  69765. +
  69766. +/* int setcontext (const ucontext_t *ucp) */
  69767. +
  69768. + .text
  69769. +LOCALSZ = 0
  69770. +ARGSZ = 0
  69771. +MASK = 0x00000000
  69772. +#ifdef __PIC__
  69773. +LOCALSZ = 1 /* save gp */
  69774. +#endif
  69775. +#if _MIPS_SIM != _ABIO32
  69776. +ARGSZ = 1 /* save a0 */
  69777. +# ifdef __PIC__
  69778. +MASK = 0x10000000
  69779. +# endif
  69780. +#endif
  69781. +FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
  69782. +GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
  69783. +#if _MIPS_SIM != _ABIO32
  69784. +A0OFF = FRAMESZ - (1 * SZREG) /* callee-allocated */
  69785. +#else
  69786. +A0OFF = FRAMESZ + (0 * SZREG) /* caller-allocated */
  69787. +#endif
  69788. +
  69789. +NESTED (__setcontext, FRAMESZ, ra)
  69790. + .mask MASK, -(ARGSZ * SZREG)
  69791. + .fmask 0x00000000, 0
  69792. +
  69793. +#ifdef __PIC__
  69794. + SETUP_GP
  69795. +#endif
  69796. +
  69797. + PTR_ADDIU sp, -FRAMESZ
  69798. +
  69799. +#ifdef __PIC__
  69800. + SETUP_GP64 (GPOFF, __setcontext)
  69801. + SAVE_GP (GPOFF)
  69802. +#endif
  69803. +
  69804. +#ifdef PROF
  69805. + .set noat
  69806. + move AT, ra
  69807. + jal _mcount
  69808. + .set at
  69809. +#endif
  69810. +
  69811. + /* Check for the magic flag. */
  69812. + li v0, 1
  69813. + REG_L v1, (0 * SZREG + MCONTEXT_GREGS)(a0) /* zero */
  69814. + bne v0, v1, 98f
  69815. +
  69816. + REG_S a0, A0OFF(sp)
  69817. +
  69818. +/* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, NULL, _NSIG8) */
  69819. + li a3, _NSIG8
  69820. + move a2, zero
  69821. + PTR_ADDU a1, a0, UCONTEXT_SIGMASK
  69822. + li a0, SIG_SETMASK
  69823. +
  69824. + li v0, SYS_ify (rt_sigprocmask)
  69825. + syscall
  69826. + bnez a3, 99f
  69827. +
  69828. + REG_L v0, A0OFF(sp)
  69829. +
  69830. +#ifdef __mips_hard_float
  69831. +# if _MIPS_SIM == _ABI64
  69832. + l.d fs0, (24 * SZREG + MCONTEXT_FPREGS)(v0)
  69833. + l.d fs1, (25 * SZREG + MCONTEXT_FPREGS)(v0)
  69834. + l.d fs2, (26 * SZREG + MCONTEXT_FPREGS)(v0)
  69835. + l.d fs3, (27 * SZREG + MCONTEXT_FPREGS)(v0)
  69836. + l.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
  69837. + l.d fs5, (29 * SZREG + MCONTEXT_FPREGS)(v0)
  69838. + l.d fs6, (30 * SZREG + MCONTEXT_FPREGS)(v0)
  69839. + l.d fs7, (31 * SZREG + MCONTEXT_FPREGS)(v0)
  69840. +
  69841. +# else /* _MIPS_SIM != _ABI64 */
  69842. + l.d fs0, (20 * SZREG + MCONTEXT_FPREGS)(v0)
  69843. + l.d fs1, (22 * SZREG + MCONTEXT_FPREGS)(v0)
  69844. + l.d fs2, (24 * SZREG + MCONTEXT_FPREGS)(v0)
  69845. + l.d fs3, (26 * SZREG + MCONTEXT_FPREGS)(v0)
  69846. + l.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
  69847. + l.d fs5, (30 * SZREG + MCONTEXT_FPREGS)(v0)
  69848. +
  69849. +# endif /* _MIPS_SIM != _ABI64 */
  69850. +
  69851. + lw v1, MCONTEXT_FPC_CSR(v0)
  69852. + ctc1 v1, fcr31
  69853. +#endif /* __mips_hard_float */
  69854. +
  69855. + /* Note the contents of argument registers will be random
  69856. + unless makecontext() has been called. */
  69857. + REG_L a0, (4 * SZREG + MCONTEXT_GREGS)(v0)
  69858. + REG_L a1, (5 * SZREG + MCONTEXT_GREGS)(v0)
  69859. + REG_L a2, (6 * SZREG + MCONTEXT_GREGS)(v0)
  69860. + REG_L a3, (7 * SZREG + MCONTEXT_GREGS)(v0)
  69861. +#if _MIPS_SIM != _ABIO32
  69862. + REG_L a4, (8 * SZREG + MCONTEXT_GREGS)(v0)
  69863. + REG_L a5, (9 * SZREG + MCONTEXT_GREGS)(v0)
  69864. + REG_L a6, (10 * SZREG + MCONTEXT_GREGS)(v0)
  69865. + REG_L a7, (11 * SZREG + MCONTEXT_GREGS)(v0)
  69866. +#endif
  69867. +
  69868. + REG_L s0, (16 * SZREG + MCONTEXT_GREGS)(v0)
  69869. + REG_L s1, (17 * SZREG + MCONTEXT_GREGS)(v0)
  69870. + REG_L s2, (18 * SZREG + MCONTEXT_GREGS)(v0)
  69871. + REG_L s3, (19 * SZREG + MCONTEXT_GREGS)(v0)
  69872. + REG_L s4, (20 * SZREG + MCONTEXT_GREGS)(v0)
  69873. + REG_L s5, (21 * SZREG + MCONTEXT_GREGS)(v0)
  69874. + REG_L s6, (22 * SZREG + MCONTEXT_GREGS)(v0)
  69875. + REG_L s7, (23 * SZREG + MCONTEXT_GREGS)(v0)
  69876. +#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
  69877. + REG_L gp, (28 * SZREG + MCONTEXT_GREGS)(v0)
  69878. +#endif
  69879. + REG_L sp, (29 * SZREG + MCONTEXT_GREGS)(v0)
  69880. + REG_L fp, (30 * SZREG + MCONTEXT_GREGS)(v0)
  69881. + REG_L ra, (31 * SZREG + MCONTEXT_GREGS)(v0)
  69882. + REG_L t9, MCONTEXT_PC(v0)
  69883. +
  69884. + move v0, zero
  69885. + jr t9
  69886. +
  69887. +98:
  69888. + /* This is a context obtained from a signal handler.
  69889. + Perform a full restore by pushing the context
  69890. + passed onto a simulated signal frame on the stack
  69891. + and call the signal return syscall as if a signal
  69892. + handler exited normally. */
  69893. + PTR_ADDIU sp, -((RT_SIGFRAME_SIZE + ALSZ) & ALMASK)
  69894. +
  69895. + /* Only ucontext is referred to from rt_sigreturn,
  69896. + copy it. */
  69897. + PTR_ADDIU t1, sp, RT_SIGFRAME_UCONTEXT
  69898. + li t3, ((UCONTEXT_SIZE + SZREG - 1) / SZREG) - 1
  69899. +0:
  69900. + REG_L t2, (a0)
  69901. + PTR_ADDIU a0, SZREG
  69902. + REG_S t2, (t1)
  69903. + PTR_ADDIU t1, SZREG
  69904. + .set noreorder
  69905. + bgtz t3, 0b
  69906. + addiu t3, -1
  69907. + .set reorder
  69908. +
  69909. +/* rt_sigreturn () -- no arguments, sp points to struct rt_sigframe. */
  69910. + li v0, SYS_ify (rt_sigreturn)
  69911. + syscall
  69912. +
  69913. + /* Restore the stack and fall through to the error
  69914. + path. Successful rt_sigreturn never returns to
  69915. + its calling place. */
  69916. + PTR_ADDIU sp, ((RT_SIGFRAME_SIZE + ALSZ) & ALMASK)
  69917. +99:
  69918. +#ifdef __PIC__
  69919. + PTR_LA t9, JUMPTARGET (__syscall_error)
  69920. + RESTORE_GP64
  69921. + PTR_ADDIU sp, FRAMESZ
  69922. + jr t9
  69923. +
  69924. +#else /* ! __PIC__ */
  69925. +
  69926. + j JUMPTARGET (__syscall_error)
  69927. +#endif /* ! __PIC__ */
  69928. +PSEUDO_END (__setcontext)
  69929. +
  69930. +weak_alias (__setcontext, setcontext)
  69931. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/setjmp_aux.c uClibc-git/libc/sysdeps/linux/mips/setjmp_aux.c
  69932. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/setjmp_aux.c 2012-05-15 09:20:09.000000000 +0200
  69933. +++ uClibc-git/libc/sysdeps/linux/mips/setjmp_aux.c 2014-06-02 17:40:34.542714907 +0200
  69934. @@ -13,9 +13,8 @@
  69935. Lesser General Public License for more details.
  69936. You should have received a copy of the GNU Lesser General Public
  69937. - License along with the GNU C Library; if not, write to the Free
  69938. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  69939. - 02111-1307 USA. */
  69940. + License along with the GNU C Library; if not, see
  69941. + <http://www.gnu.org/licenses/>. */
  69942. #include <features.h>
  69943. #include <setjmp.h>
  69944. @@ -27,11 +26,9 @@
  69945. pointer. We do things this way because it's difficult to reliably
  69946. access them in C. */
  69947. -extern int __sigjmp_save (sigjmp_buf, int);
  69948. -
  69949. int
  69950. #if _MIPS_SIM == _MIPS_SIM_ABI64
  69951. -__sigsetjmp_aux (jmp_buf env, int savemask, long sp, long fp)
  69952. +__sigsetjmp_aux (jmp_buf env, int savemask, long long sp, long long fp, long long gp)
  69953. #else /* O32 || N32 */
  69954. __sigsetjmp_aux (jmp_buf env, int savemask, int sp, int fp)
  69955. #endif /* O32 || N32 */
  69956. @@ -65,14 +62,14 @@
  69957. #endif
  69958. /* .. and the stack pointer; */
  69959. - env[0].__jmpbuf[0].__sp = (void *) sp;
  69960. + env[0].__jmpbuf[0].__sp = (ptrsize) sp;
  69961. /* .. and the FP; it'll be in s8. */
  69962. - env[0].__jmpbuf[0].__fp = (void *) fp;
  69963. + env[0].__jmpbuf[0].__fp = (ptrsize) fp;
  69964. /* .. and the GP; */
  69965. #if _MIPS_SIM == _MIPS_SIM_ABI64
  69966. - __asm__ __volatile__ ("sd $gp, %0" : : "m" (env[0].__jmpbuf[0].__gp));
  69967. + env[0].__jmpbuf[0].__gp = (ptrsize) gp;
  69968. #else
  69969. __asm__ __volatile__ ("sw $gp, %0" : : "m" (env[0].__jmpbuf[0].__gp));
  69970. #endif
  69971. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/setjmp.S uClibc-git/libc/sysdeps/linux/mips/setjmp.S
  69972. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  69973. +++ uClibc-git/libc/sysdeps/linux/mips/setjmp.S 2014-06-02 17:40:34.542714907 +0200
  69974. @@ -12,9 +12,8 @@
  69975. Lesser General Public License for more details.
  69976. You should have received a copy of the GNU Lesser General Public
  69977. - License along with the GNU C Library; if not, write to the Free
  69978. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  69979. - 02111-1307 USA. */
  69980. + License along with the GNU C Library; if not, see
  69981. + <http://www.gnu.org/licenses/>. */
  69982. #include <sys/regdef.h>
  69983. #include <sys/asm.h>
  69984. @@ -53,6 +52,7 @@
  69985. PTR_LA t9, __sigsetjmp_aux
  69986. #if _MIPS_SIM != _MIPS_SIM_ABI32
  69987. .cpreturn
  69988. + move a4, gp
  69989. #endif
  69990. jr t9
  69991. #else
  69992. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sgidefs.h uClibc-git/libc/sysdeps/linux/mips/sgidefs.h
  69993. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sgidefs.h 2012-05-15 09:20:09.000000000 +0200
  69994. +++ uClibc-git/libc/sysdeps/linux/mips/sgidefs.h 2014-06-02 17:40:34.542714907 +0200
  69995. @@ -13,9 +13,8 @@
  69996. Lesser General Public License for more details.
  69997. You should have received a copy of the GNU Lesser General Public
  69998. - License along with the GNU C Library; if not, write to the Free
  69999. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70000. - 02111-1307 USA. */
  70001. + License along with the GNU C Library; if not, see
  70002. + <http://www.gnu.org/licenses/>. */
  70003. #ifndef _SGIDEFS_H
  70004. #define _SGIDEFS_H 1
  70005. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sigaction.c uClibc-git/libc/sysdeps/linux/mips/sigaction.c
  70006. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  70007. +++ uClibc-git/libc/sysdeps/linux/mips/sigaction.c 2014-06-02 17:40:34.542714907 +0200
  70008. @@ -13,8 +13,7 @@
  70009. You should have received a copy of the GNU Library General Public
  70010. License along with the GNU C Library; see the file COPYING.LIB. If not,
  70011. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  70012. - Boston, MA 02111-1307, USA.
  70013. + see <http://www.gnu.org/licenses/>.
  70014. Totally hacked up for uClibc by Erik Andersen <andersen@codepoet.org>
  70015. */
  70016. @@ -27,9 +26,6 @@
  70017. #define SA_RESTORER 0x04000000
  70018. -extern __typeof(sigaction) __libc_sigaction;
  70019. -
  70020. -
  70021. #ifdef __NR_rt_sigaction
  70022. # if _MIPS_SIM != _ABIO32
  70023. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/swapcontext.S uClibc-git/libc/sysdeps/linux/mips/swapcontext.S
  70024. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/swapcontext.S 1970-01-01 01:00:00.000000000 +0100
  70025. +++ uClibc-git/libc/sysdeps/linux/mips/swapcontext.S 2014-06-02 17:40:34.542714907 +0200
  70026. @@ -0,0 +1,211 @@
  70027. +/* Save and set current context.
  70028. + Copyright (C) 2009 Free Software Foundation, Inc.
  70029. + This file is part of the GNU C Library.
  70030. + Contributed by Maciej W. Rozycki <macro@codesourcery.com>.
  70031. +
  70032. + The GNU C Library is free software; you can redistribute it and/or
  70033. + modify it under the terms of the GNU Lesser General Public
  70034. + License as published by the Free Software Foundation; either
  70035. + version 2.1 of the License, or (at your option) any later version.
  70036. +
  70037. + The GNU C Library is distributed in the hope that it will be useful,
  70038. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  70039. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  70040. + Lesser General Public License for more details.
  70041. +
  70042. + You should have received a copy of the GNU Lesser General Public
  70043. + License along with the GNU C Library. If not, see
  70044. + <http://www.gnu.org/licenses/>. */
  70045. +
  70046. +#include <sysdep.h>
  70047. +#include <sys/asm.h>
  70048. +#include <sys/fpregdef.h>
  70049. +#include <sys/regdef.h>
  70050. +
  70051. +#include "ucontext_i.h"
  70052. +
  70053. +/* int swapcontext (ucontext_t *oucp, const ucontext_t *ucp) */
  70054. +
  70055. + .text
  70056. +LOCALSZ = 0
  70057. +ARGSZ = 0
  70058. +MASK = 0x00000000
  70059. +#ifdef __PIC__
  70060. +LOCALSZ = 1 /* save gp */
  70061. +#endif
  70062. +#if _MIPS_SIM != _ABIO32
  70063. +ARGSZ = 1 /* save a1 */
  70064. +# ifdef __PIC__
  70065. +MASK = 0x10000000
  70066. +# endif
  70067. +#endif
  70068. +FRAMESZ = (((ARGSZ + LOCALSZ) * SZREG) + ALSZ) & ALMASK
  70069. +GPOFF = FRAMESZ - ((ARGSZ + 1) * SZREG)
  70070. +#if _MIPS_SIM != _ABIO32
  70071. +A1OFF = FRAMESZ - (1 * SZREG) /* callee-allocated */
  70072. +#else
  70073. +A1OFF = FRAMESZ + (1 * SZREG) /* caller-allocated */
  70074. +#endif
  70075. +
  70076. +NESTED (__swapcontext, FRAMESZ, ra)
  70077. + .mask MASK, -(ARGSZ * SZREG)
  70078. + .fmask 0x00000000, 0
  70079. +
  70080. +#ifdef __PIC__
  70081. + SETUP_GP
  70082. +
  70083. + move a2, sp
  70084. +# define _SP a2
  70085. +
  70086. +# if _MIPS_SIM != _ABIO32
  70087. + move a3, gp
  70088. +# define _GP a3
  70089. +# endif
  70090. +
  70091. + PTR_ADDIU sp, -FRAMESZ
  70092. + SETUP_GP64 (GPOFF, __swapcontext)
  70093. + SAVE_GP (GPOFF)
  70094. +
  70095. +#else /* ! __PIC__ */
  70096. +# define _SP sp
  70097. +# define _GP gp
  70098. +
  70099. +#endif /* ! __PIC__ */
  70100. +
  70101. +#ifdef PROF
  70102. + .set noat
  70103. + move AT, ra
  70104. + jal _mcount
  70105. + .set at
  70106. +#endif
  70107. +
  70108. + /* Store a magic flag. */
  70109. + li v1, 1
  70110. + REG_S v1, (0 * SZREG + MCONTEXT_GREGS)(a0) /* zero */
  70111. +
  70112. + REG_S s0, (16 * SZREG + MCONTEXT_GREGS)(a0)
  70113. + REG_S s1, (17 * SZREG + MCONTEXT_GREGS)(a0)
  70114. + REG_S s2, (18 * SZREG + MCONTEXT_GREGS)(a0)
  70115. + REG_S s3, (19 * SZREG + MCONTEXT_GREGS)(a0)
  70116. + REG_S s4, (20 * SZREG + MCONTEXT_GREGS)(a0)
  70117. + REG_S s5, (21 * SZREG + MCONTEXT_GREGS)(a0)
  70118. + REG_S s6, (22 * SZREG + MCONTEXT_GREGS)(a0)
  70119. + REG_S s7, (23 * SZREG + MCONTEXT_GREGS)(a0)
  70120. +#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
  70121. + REG_S _GP, (28 * SZREG + MCONTEXT_GREGS)(a0)
  70122. +#endif
  70123. + REG_S _SP, (29 * SZREG + MCONTEXT_GREGS)(a0)
  70124. + REG_S fp, (30 * SZREG + MCONTEXT_GREGS)(a0)
  70125. + REG_S ra, (31 * SZREG + MCONTEXT_GREGS)(a0)
  70126. + REG_S ra, MCONTEXT_PC(a0)
  70127. +
  70128. +#ifdef __mips_hard_float
  70129. +# if _MIPS_SIM == _ABI64
  70130. + s.d fs0, (24 * SZREG + MCONTEXT_FPREGS)(a0)
  70131. + s.d fs1, (25 * SZREG + MCONTEXT_FPREGS)(a0)
  70132. + s.d fs2, (26 * SZREG + MCONTEXT_FPREGS)(a0)
  70133. + s.d fs3, (27 * SZREG + MCONTEXT_FPREGS)(a0)
  70134. + s.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
  70135. + s.d fs5, (29 * SZREG + MCONTEXT_FPREGS)(a0)
  70136. + s.d fs6, (30 * SZREG + MCONTEXT_FPREGS)(a0)
  70137. + s.d fs7, (31 * SZREG + MCONTEXT_FPREGS)(a0)
  70138. +
  70139. +# else /* _MIPS_SIM != _ABI64 */
  70140. + s.d fs0, (20 * SZREG + MCONTEXT_FPREGS)(a0)
  70141. + s.d fs1, (22 * SZREG + MCONTEXT_FPREGS)(a0)
  70142. + s.d fs2, (24 * SZREG + MCONTEXT_FPREGS)(a0)
  70143. + s.d fs3, (26 * SZREG + MCONTEXT_FPREGS)(a0)
  70144. + s.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(a0)
  70145. + s.d fs5, (30 * SZREG + MCONTEXT_FPREGS)(a0)
  70146. +
  70147. +# endif /* _MIPS_SIM != _ABI64 */
  70148. +
  70149. + cfc1 v1, fcr31
  70150. + sw v1, MCONTEXT_FPC_CSR(a0)
  70151. +#endif /* __mips_hard_float */
  70152. +
  70153. + REG_S a1, A1OFF(sp)
  70154. +
  70155. +/* rt_sigprocmask (SIG_SETMASK, &ucp->uc_sigmask, &oucp->uc_sigmask, _NSIG8) */
  70156. + li a3, _NSIG8
  70157. + PTR_ADDU a2, a0, UCONTEXT_SIGMASK
  70158. + PTR_ADDU a1, a1, UCONTEXT_SIGMASK
  70159. + li a0, SIG_SETMASK
  70160. +
  70161. + li v0, SYS_ify (rt_sigprocmask)
  70162. + syscall
  70163. + bnez a3, 99f
  70164. +
  70165. + REG_L v0, A1OFF(sp)
  70166. +
  70167. +#ifdef __mips_hard_float
  70168. +# if _MIPS_SIM == _ABI64
  70169. + l.d fs0, (24 * SZREG + MCONTEXT_FPREGS)(v0)
  70170. + l.d fs1, (25 * SZREG + MCONTEXT_FPREGS)(v0)
  70171. + l.d fs2, (26 * SZREG + MCONTEXT_FPREGS)(v0)
  70172. + l.d fs3, (27 * SZREG + MCONTEXT_FPREGS)(v0)
  70173. + l.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
  70174. + l.d fs5, (29 * SZREG + MCONTEXT_FPREGS)(v0)
  70175. + l.d fs6, (30 * SZREG + MCONTEXT_FPREGS)(v0)
  70176. + l.d fs7, (31 * SZREG + MCONTEXT_FPREGS)(v0)
  70177. +
  70178. +# else /* _MIPS_SIM != _ABI64 */
  70179. + l.d fs0, (20 * SZREG + MCONTEXT_FPREGS)(v0)
  70180. + l.d fs1, (22 * SZREG + MCONTEXT_FPREGS)(v0)
  70181. + l.d fs2, (24 * SZREG + MCONTEXT_FPREGS)(v0)
  70182. + l.d fs3, (26 * SZREG + MCONTEXT_FPREGS)(v0)
  70183. + l.d fs4, (28 * SZREG + MCONTEXT_FPREGS)(v0)
  70184. + l.d fs5, (30 * SZREG + MCONTEXT_FPREGS)(v0)
  70185. +
  70186. +# endif /* _MIPS_SIM != _ABI64 */
  70187. +
  70188. + lw v1, MCONTEXT_FPC_CSR(v0)
  70189. + ctc1 v1, fcr31
  70190. +#endif /* __mips_hard_float */
  70191. +
  70192. + /* Note the contents of argument registers will be random
  70193. + unless makecontext() has been called. */
  70194. + REG_L a0, (4 * SZREG + MCONTEXT_GREGS)(v0)
  70195. + REG_L a1, (5 * SZREG + MCONTEXT_GREGS)(v0)
  70196. + REG_L a2, (6 * SZREG + MCONTEXT_GREGS)(v0)
  70197. + REG_L a3, (7 * SZREG + MCONTEXT_GREGS)(v0)
  70198. +#if _MIPS_SIM != _ABIO32
  70199. + REG_L a4, (8 * SZREG + MCONTEXT_GREGS)(v0)
  70200. + REG_L a5, (9 * SZREG + MCONTEXT_GREGS)(v0)
  70201. + REG_L a6, (10 * SZREG + MCONTEXT_GREGS)(v0)
  70202. + REG_L a7, (11 * SZREG + MCONTEXT_GREGS)(v0)
  70203. +#endif
  70204. +
  70205. + REG_L s0, (16 * SZREG + MCONTEXT_GREGS)(v0)
  70206. + REG_L s1, (17 * SZREG + MCONTEXT_GREGS)(v0)
  70207. + REG_L s2, (18 * SZREG + MCONTEXT_GREGS)(v0)
  70208. + REG_L s3, (19 * SZREG + MCONTEXT_GREGS)(v0)
  70209. + REG_L s4, (20 * SZREG + MCONTEXT_GREGS)(v0)
  70210. + REG_L s5, (21 * SZREG + MCONTEXT_GREGS)(v0)
  70211. + REG_L s6, (22 * SZREG + MCONTEXT_GREGS)(v0)
  70212. + REG_L s7, (23 * SZREG + MCONTEXT_GREGS)(v0)
  70213. +#if ! defined (__PIC__) || _MIPS_SIM != _ABIO32
  70214. + REG_L gp, (28 * SZREG + MCONTEXT_GREGS)(v0)
  70215. +#endif
  70216. + REG_L sp, (29 * SZREG + MCONTEXT_GREGS)(v0)
  70217. + REG_L fp, (30 * SZREG + MCONTEXT_GREGS)(v0)
  70218. + REG_L ra, (31 * SZREG + MCONTEXT_GREGS)(v0)
  70219. + REG_L t9, MCONTEXT_PC(v0)
  70220. +
  70221. + move v0, zero
  70222. + jr t9
  70223. +
  70224. +99:
  70225. +#ifdef __PIC__
  70226. + PTR_LA t9, JUMPTARGET (__syscall_error)
  70227. + RESTORE_GP64
  70228. + PTR_ADDIU sp, FRAMESZ
  70229. + jr t9
  70230. +
  70231. +#else /* ! __PIC__ */
  70232. +
  70233. + j JUMPTARGET (__syscall_error)
  70234. +#endif /* ! __PIC__ */
  70235. +PSEUDO_END (__swapcontext)
  70236. +
  70237. +weak_alias (__swapcontext, swapcontext)
  70238. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/asm.h uClibc-git/libc/sysdeps/linux/mips/sys/asm.h
  70239. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/asm.h 2012-05-15 09:20:09.000000000 +0200
  70240. +++ uClibc-git/libc/sysdeps/linux/mips/sys/asm.h 2014-06-02 17:40:34.542714907 +0200
  70241. @@ -13,9 +13,8 @@
  70242. Lesser General Public License for more details.
  70243. You should have received a copy of the GNU Lesser General Public
  70244. - License along with the GNU C Library; if not, write to the Free
  70245. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70246. - 02111-1307 USA. */
  70247. + License along with the GNU C Library; if not, see
  70248. + <http://www.gnu.org/licenses/>. */
  70249. #ifndef _SYS_ASM_H
  70250. #define _SYS_ASM_H
  70251. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/cachectl.h uClibc-git/libc/sysdeps/linux/mips/sys/cachectl.h
  70252. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/cachectl.h 2012-05-15 09:20:09.000000000 +0200
  70253. +++ uClibc-git/libc/sysdeps/linux/mips/sys/cachectl.h 2014-06-02 17:40:34.542714907 +0200
  70254. @@ -12,9 +12,8 @@
  70255. Lesser General Public License for more details.
  70256. You should have received a copy of the GNU Lesser General Public
  70257. - License along with the GNU C Library; if not, write to the Free
  70258. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70259. - 02111-1307 USA. */
  70260. + License along with the GNU C Library; if not, see
  70261. + <http://www.gnu.org/licenses/>. */
  70262. #ifndef _SYS_CACHECTL_H
  70263. #define _SYS_CACHECTL_H 1
  70264. @@ -29,13 +28,15 @@
  70265. __BEGIN_DECLS
  70266. #ifdef __USE_MISC
  70267. -extern int cachectl (void *addr, __const int nbytes, __const int op) __THROW;
  70268. +extern int cachectl (void *addr, const int nbytes, const int op) __THROW;
  70269. +#endif
  70270. +#if 0
  70271. +extern int __cachectl (void *addr, const int nbytes, const int op) __THROW;
  70272. #endif
  70273. -extern int __cachectl (void *addr, __const int nbytes, __const int op) __THROW;
  70274. #ifdef __USE_MISC
  70275. -extern int cacheflush (void *addr, __const int nbytes, __const int op) __THROW;
  70276. +extern int cacheflush (void *addr, const int nbytes, const int op) __THROW;
  70277. #endif
  70278. -extern int _flush_cache (char *addr, __const int nbytes, __const int op) __THROW;
  70279. +extern int _flush_cache (char *addr, const int nbytes, const int op) __THROW;
  70280. __END_DECLS
  70281. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/fpregdef.h uClibc-git/libc/sysdeps/linux/mips/sys/fpregdef.h
  70282. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/fpregdef.h 2012-05-15 09:20:09.000000000 +0200
  70283. +++ uClibc-git/libc/sysdeps/linux/mips/sys/fpregdef.h 2014-06-02 17:40:34.542714907 +0200
  70284. @@ -12,9 +12,8 @@
  70285. Lesser General Public License for more details.
  70286. You should have received a copy of the GNU Lesser General Public
  70287. - License along with the GNU C Library; if not, write to the Free
  70288. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70289. - 02111-1307 USA. */
  70290. + License along with the GNU C Library; if not, see
  70291. + <http://www.gnu.org/licenses/>. */
  70292. #ifndef _SYS_FPREGDEF_H
  70293. #define _SYS_FPREGDEF_H
  70294. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/procfs.h uClibc-git/libc/sysdeps/linux/mips/sys/procfs.h
  70295. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  70296. +++ uClibc-git/libc/sysdeps/linux/mips/sys/procfs.h 2014-06-02 17:40:34.542714907 +0200
  70297. @@ -12,9 +12,8 @@
  70298. Lesser General Public License for more details.
  70299. You should have received a copy of the GNU Lesser General Public
  70300. - License along with the GNU C Library; if not, write to the Free
  70301. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70302. - 02111-1307 USA. */
  70303. + License along with the GNU C Library; if not, see
  70304. + <http://www.gnu.org/licenses/>. */
  70305. #ifndef _SYS_PROCFS_H
  70306. #define _SYS_PROCFS_H 1
  70307. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/regdef.h uClibc-git/libc/sysdeps/linux/mips/sys/regdef.h
  70308. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/regdef.h 2012-05-15 09:20:09.000000000 +0200
  70309. +++ uClibc-git/libc/sysdeps/linux/mips/sys/regdef.h 2014-06-02 17:40:34.542714907 +0200
  70310. @@ -13,9 +13,8 @@
  70311. Lesser General Public License for more details.
  70312. You should have received a copy of the GNU Lesser General Public
  70313. - License along with the GNU C Library; if not, write to the Free
  70314. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70315. - 02111-1307 USA. */
  70316. + License along with the GNU C Library; if not, see
  70317. + <http://www.gnu.org/licenses/>. */
  70318. #ifndef _SYS_REGDEF_H
  70319. #define _SYS_REGDEF_H
  70320. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/sysmips.h uClibc-git/libc/sysdeps/linux/mips/sys/sysmips.h
  70321. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/sysmips.h 2012-05-15 09:20:09.000000000 +0200
  70322. +++ uClibc-git/libc/sysdeps/linux/mips/sys/sysmips.h 2014-06-02 17:40:34.542714907 +0200
  70323. @@ -12,9 +12,8 @@
  70324. Lesser General Public License for more details.
  70325. You should have received a copy of the GNU Lesser General Public
  70326. - License along with the GNU C Library; if not, write to the Free
  70327. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70328. - 02111-1307 USA. */
  70329. + License along with the GNU C Library; if not, see
  70330. + <http://www.gnu.org/licenses/>. */
  70331. #ifndef _SYS_SYSMIPS_H
  70332. #define _SYS_SYSMIPS_H 1
  70333. @@ -36,8 +35,8 @@
  70334. __BEGIN_DECLS
  70335. -extern int sysmips (__const int cmd, __const long arg1,
  70336. - __const int arg2, __const int arg3) __THROW;
  70337. +extern int sysmips (const int cmd, const long arg1,
  70338. + const int arg2, const int arg3) __THROW;
  70339. __END_DECLS
  70340. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/tas.h uClibc-git/libc/sysdeps/linux/mips/sys/tas.h
  70341. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/tas.h 2012-05-15 09:20:09.000000000 +0200
  70342. +++ uClibc-git/libc/sysdeps/linux/mips/sys/tas.h 2014-06-02 17:40:34.542714907 +0200
  70343. @@ -13,9 +13,8 @@
  70344. Lesser General Public License for more details.
  70345. You should have received a copy of the GNU Lesser General Public
  70346. - License along with the GNU C Library; if not, write to the Free
  70347. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70348. - 02111-1307 USA. */
  70349. + License along with the GNU C Library; if not, see
  70350. + <http://www.gnu.org/licenses/>. */
  70351. #ifndef _SYS_TAS_H
  70352. #define _SYS_TAS_H 1
  70353. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/ucontext.h uClibc-git/libc/sysdeps/linux/mips/sys/ucontext.h
  70354. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  70355. +++ uClibc-git/libc/sysdeps/linux/mips/sys/ucontext.h 2014-06-02 17:40:34.542714907 +0200
  70356. @@ -12,9 +12,8 @@
  70357. Lesser General Public License for more details.
  70358. You should have received a copy of the GNU Lesser General Public
  70359. - License along with the GNU C Library; if not, write to the Free
  70360. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70361. - 02111-1307 USA. */
  70362. + License along with the GNU C Library; if not, see
  70363. + <http://www.gnu.org/licenses/>. */
  70364. /* Don't rely on this, the interface is currently messed up and may need to
  70365. be broken to be fixed. */
  70366. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/user.h uClibc-git/libc/sysdeps/linux/mips/sys/user.h
  70367. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  70368. +++ uClibc-git/libc/sysdeps/linux/mips/sys/user.h 2014-06-02 17:40:34.542714907 +0200
  70369. @@ -12,9 +12,8 @@
  70370. Lesser General Public License for more details.
  70371. You should have received a copy of the GNU Lesser General Public
  70372. - License along with the GNU C Library; if not, write to the Free
  70373. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70374. - 02111-1307 USA. */
  70375. + License along with the GNU C Library; if not, see
  70376. + <http://www.gnu.org/licenses/>. */
  70377. #ifndef _SYS_USER_H
  70378. #define _SYS_USER_H 1
  70379. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/syscall_error.S uClibc-git/libc/sysdeps/linux/mips/syscall_error.S
  70380. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/syscall_error.S 2012-05-15 09:20:09.000000000 +0200
  70381. +++ uClibc-git/libc/sysdeps/linux/mips/syscall_error.S 2014-06-02 17:40:34.542714907 +0200
  70382. @@ -14,9 +14,8 @@
  70383. Lesser General Public License for more details.
  70384. You should have received a copy of the GNU Lesser General Public
  70385. - License along with the GNU C Library; if not, write to the Free
  70386. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70387. - 02111-1307 USA. */
  70388. + License along with the GNU C Library; if not, see
  70389. + <http://www.gnu.org/licenses/>. */
  70390. #include <sys/asm.h>
  70391. #include <sysdep.h>
  70392. @@ -43,7 +42,7 @@
  70393. #ifdef __PIC__
  70394. SAVE_GP(GPOFF)
  70395. #endif
  70396. - REG_S v0, V0OFF(sp)
  70397. + REG_S a0, V0OFF(sp)
  70398. REG_S ra, RAOFF(sp)
  70399. /* Find our per-thread errno address */
  70400. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/syscall.S uClibc-git/libc/sysdeps/linux/mips/syscall.S
  70401. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/syscall.S 2012-05-15 09:20:09.000000000 +0200
  70402. +++ uClibc-git/libc/sysdeps/linux/mips/syscall.S 2014-06-02 17:40:34.542714907 +0200
  70403. @@ -12,9 +12,8 @@
  70404. Lesser General Public License for more details.
  70405. You should have received a copy of the GNU Lesser General Public
  70406. - License along with the GNU C Library; if not, write to the Free
  70407. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70408. - 02111-1307 USA. */
  70409. + License along with the GNU C Library; if not, see
  70410. + <http://www.gnu.org/licenses/>. */
  70411. #include <features.h>
  70412. #include <sys/asm.h>
  70413. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/sysdep.h uClibc-git/libc/sysdeps/linux/mips/sysdep.h
  70414. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  70415. +++ uClibc-git/libc/sysdeps/linux/mips/sysdep.h 2014-06-02 17:40:34.542714907 +0200
  70416. @@ -14,9 +14,8 @@
  70417. Lesser General Public License for more details.
  70418. You should have received a copy of the GNU Lesser General Public
  70419. - License along with the GNU C Library; if not, write to the Free
  70420. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70421. - 02111-1307 USA. */
  70422. + License along with the GNU C Library; if not, see
  70423. + <http://www.gnu.org/licenses/>. */
  70424. #ifndef _LINUX_MIPS_SYSDEP_H
  70425. #define _LINUX_MIPS_SYSDEP_H 1
  70426. @@ -78,8 +77,6 @@
  70427. #undef PSEUDO_END_ERRVAL
  70428. #define PSEUDO_END_ERRVAL(sym) .end sym; .size sym,.-sym
  70429. -#define ret_ERRVAL ret
  70430. -
  70431. #define r0 v0
  70432. #define r1 v1
  70433. /* The mips move insn is d,s. */
  70434. @@ -133,258 +130,6 @@
  70435. #else /* ! __ASSEMBLER__ */
  70436. -/* Define a macro which expands into the inline wrapper code for a system
  70437. - call. */
  70438. -#undef INLINE_SYSCALL
  70439. -#define INLINE_SYSCALL(name, nr, args...) \
  70440. - ({ INTERNAL_SYSCALL_DECL(err); \
  70441. - long result_var = INTERNAL_SYSCALL (name, err, nr, args); \
  70442. - if ( INTERNAL_SYSCALL_ERROR_P (result_var, err) ) \
  70443. - { \
  70444. - __set_errno (INTERNAL_SYSCALL_ERRNO (result_var, err)); \
  70445. - result_var = -1L; \
  70446. - } \
  70447. - result_var; })
  70448. -
  70449. -#undef INTERNAL_SYSCALL_DECL
  70450. -#define INTERNAL_SYSCALL_DECL(err) long err
  70451. -
  70452. -#undef INTERNAL_SYSCALL_ERROR_P
  70453. -#define INTERNAL_SYSCALL_ERROR_P(val, err) ((long) (err))
  70454. -
  70455. -#undef INTERNAL_SYSCALL_ERRNO
  70456. -#define INTERNAL_SYSCALL_ERRNO(val, err) (val)
  70457. -
  70458. -#undef INTERNAL_SYSCALL
  70459. -#define INTERNAL_SYSCALL(name, err, nr, args...) \
  70460. - internal_syscall##nr (, "li\t$2, %2\t\t\t# " #name "\n\t", \
  70461. - "i" (SYS_ify (name)), err, args)
  70462. -
  70463. -#undef INTERNAL_SYSCALL_NCS
  70464. -#define INTERNAL_SYSCALL_NCS(number, err, nr, args...) \
  70465. - internal_syscall##nr (= number, , "r" (__v0), err, args)
  70466. -#undef internal_syscall0
  70467. -#define internal_syscall0(ncs_init, cs_init, input, err, dummy...) \
  70468. -({ \
  70469. - long _sys_result; \
  70470. - \
  70471. - { \
  70472. - register long __v0 __asm__("$2") ncs_init; \
  70473. - register long __a3 __asm__("$7"); \
  70474. - __asm__ __volatile__ ( \
  70475. - ".set\tnoreorder\n\t" \
  70476. - cs_init \
  70477. - "syscall\n\t" \
  70478. - ".set reorder" \
  70479. - : "=r" (__v0), "=r" (__a3) \
  70480. - : input \
  70481. - : __SYSCALL_CLOBBERS); \
  70482. - err = __a3; \
  70483. - _sys_result = __v0; \
  70484. - } \
  70485. - _sys_result; \
  70486. -})
  70487. -
  70488. -#undef internal_syscall1
  70489. -#define internal_syscall1(ncs_init, cs_init, input, err, arg1) \
  70490. -({ \
  70491. - long _sys_result; \
  70492. - \
  70493. - { \
  70494. - register long __v0 __asm__("$2") ncs_init; \
  70495. - register long __a0 __asm__("$4") = (long) arg1; \
  70496. - register long __a3 __asm__("$7"); \
  70497. - __asm__ __volatile__ ( \
  70498. - ".set\tnoreorder\n\t" \
  70499. - cs_init \
  70500. - "syscall\n\t" \
  70501. - ".set reorder" \
  70502. - : "=r" (__v0), "=r" (__a3) \
  70503. - : input, "r" (__a0) \
  70504. - : __SYSCALL_CLOBBERS); \
  70505. - err = __a3; \
  70506. - _sys_result = __v0; \
  70507. - } \
  70508. - _sys_result; \
  70509. -})
  70510. -
  70511. -#undef internal_syscall2
  70512. -#define internal_syscall2(ncs_init, cs_init, input, err, arg1, arg2) \
  70513. -({ \
  70514. - long _sys_result; \
  70515. - \
  70516. - { \
  70517. - register long __v0 __asm__("$2") ncs_init; \
  70518. - register long __a0 __asm__("$4") = (long) arg1; \
  70519. - register long __a1 __asm__("$5") = (long) arg2; \
  70520. - register long __a3 __asm__("$7"); \
  70521. - __asm__ __volatile__ ( \
  70522. - ".set\tnoreorder\n\t" \
  70523. - cs_init \
  70524. - "syscall\n\t" \
  70525. - ".set\treorder" \
  70526. - : "=r" (__v0), "=r" (__a3) \
  70527. - : input, "r" (__a0), "r" (__a1) \
  70528. - : __SYSCALL_CLOBBERS); \
  70529. - err = __a3; \
  70530. - _sys_result = __v0; \
  70531. - } \
  70532. - _sys_result; \
  70533. -})
  70534. -
  70535. -#undef internal_syscall3
  70536. -#define internal_syscall3(ncs_init, cs_init, input, err, arg1, arg2, arg3)\
  70537. -({ \
  70538. - long _sys_result; \
  70539. - \
  70540. - { \
  70541. - register long __v0 __asm__("$2") ncs_init; \
  70542. - register long __a0 __asm__("$4") = (long) arg1; \
  70543. - register long __a1 __asm__("$5") = (long) arg2; \
  70544. - register long __a2 __asm__("$6") = (long) arg3; \
  70545. - register long __a3 __asm__("$7"); \
  70546. - __asm__ __volatile__ ( \
  70547. - ".set\tnoreorder\n\t" \
  70548. - cs_init \
  70549. - "syscall\n\t" \
  70550. - ".set\treorder" \
  70551. - : "=r" (__v0), "=r" (__a3) \
  70552. - : input, "r" (__a0), "r" (__a1), "r" (__a2) \
  70553. - : __SYSCALL_CLOBBERS); \
  70554. - err = __a3; \
  70555. - _sys_result = __v0; \
  70556. - } \
  70557. - _sys_result; \
  70558. -})
  70559. -
  70560. -#undef internal_syscall4
  70561. -#define internal_syscall4(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4)\
  70562. -({ \
  70563. - long _sys_result; \
  70564. - \
  70565. - { \
  70566. - register long __v0 __asm__("$2") ncs_init; \
  70567. - register long __a0 __asm__("$4") = (long) arg1; \
  70568. - register long __a1 __asm__("$5") = (long) arg2; \
  70569. - register long __a2 __asm__("$6") = (long) arg3; \
  70570. - register long __a3 __asm__("$7") = (long) arg4; \
  70571. - __asm__ __volatile__ ( \
  70572. - ".set\tnoreorder\n\t" \
  70573. - cs_init \
  70574. - "syscall\n\t" \
  70575. - ".set\treorder" \
  70576. - : "=r" (__v0), "+r" (__a3) \
  70577. - : input, "r" (__a0), "r" (__a1), "r" (__a2) \
  70578. - : __SYSCALL_CLOBBERS); \
  70579. - err = __a3; \
  70580. - _sys_result = __v0; \
  70581. - } \
  70582. - _sys_result; \
  70583. -})
  70584. -
  70585. -/* We need to use a frame pointer for the functions in which we
  70586. - adjust $sp around the syscall, or debug information and unwind
  70587. - information will be $sp relative and thus wrong during the syscall. As
  70588. - of GCC 3.4.3, this is sufficient. */
  70589. -#define FORCE_FRAME_POINTER alloca (4)
  70590. -
  70591. -#undef internal_syscall5
  70592. -#define internal_syscall5(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5)\
  70593. -({ \
  70594. - long _sys_result; \
  70595. - \
  70596. - FORCE_FRAME_POINTER; \
  70597. - { \
  70598. - register long __v0 __asm__("$2") ncs_init; \
  70599. - register long __a0 __asm__("$4") = (long) arg1; \
  70600. - register long __a1 __asm__("$5") = (long) arg2; \
  70601. - register long __a2 __asm__("$6") = (long) arg3; \
  70602. - register long __a3 __asm__("$7") = (long) arg4; \
  70603. - __asm__ __volatile__ ( \
  70604. - ".set\tnoreorder\n\t" \
  70605. - "subu\t$29, 32\n\t" \
  70606. - "sw\t%6, 16($29)\n\t" \
  70607. - cs_init \
  70608. - "syscall\n\t" \
  70609. - "addiu\t$29, 32\n\t" \
  70610. - ".set\treorder" \
  70611. - : "=r" (__v0), "+r" (__a3) \
  70612. - : input, "r" (__a0), "r" (__a1), "r" (__a2), \
  70613. - "r" ((long)arg5) \
  70614. - : __SYSCALL_CLOBBERS); \
  70615. - err = __a3; \
  70616. - _sys_result = __v0; \
  70617. - } \
  70618. - _sys_result; \
  70619. -})
  70620. -
  70621. -#undef internal_syscall6
  70622. -#define internal_syscall6(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5, arg6)\
  70623. -({ \
  70624. - long _sys_result; \
  70625. - \
  70626. - FORCE_FRAME_POINTER; \
  70627. - { \
  70628. - register long __v0 __asm__("$2") ncs_init; \
  70629. - register long __a0 __asm__("$4") = (long) arg1; \
  70630. - register long __a1 __asm__("$5") = (long) arg2; \
  70631. - register long __a2 __asm__("$6") = (long) arg3; \
  70632. - register long __a3 __asm__("$7") = (long) arg4; \
  70633. - __asm__ __volatile__ ( \
  70634. - ".set\tnoreorder\n\t" \
  70635. - "subu\t$29, 32\n\t" \
  70636. - "sw\t%6, 16($29)\n\t" \
  70637. - "sw\t%7, 20($29)\n\t" \
  70638. - cs_init \
  70639. - "syscall\n\t" \
  70640. - "addiu\t$29, 32\n\t" \
  70641. - ".set\treorder" \
  70642. - : "=r" (__v0), "+r" (__a3) \
  70643. - : input, "r" (__a0), "r" (__a1), "r" (__a2), \
  70644. - "r" ((long)arg5), "r" ((long)arg6) \
  70645. - : __SYSCALL_CLOBBERS); \
  70646. - err = __a3; \
  70647. - _sys_result = __v0; \
  70648. - } \
  70649. - _sys_result; \
  70650. -})
  70651. -
  70652. -#undef internal_syscall7
  70653. -#define internal_syscall7(ncs_init, cs_init, input, err, arg1, arg2, arg3, arg4, arg5, arg6, arg7)\
  70654. -({ \
  70655. - long _sys_result; \
  70656. - \
  70657. - FORCE_FRAME_POINTER; \
  70658. - { \
  70659. - register long __v0 __asm__("$2") ncs_init; \
  70660. - register long __a0 __asm__("$4") = (long) arg1; \
  70661. - register long __a1 __asm__("$5") = (long) arg2; \
  70662. - register long __a2 __asm__("$6") = (long) arg3; \
  70663. - register long __a3 __asm__("$7") = (long) arg4; \
  70664. - __asm__ __volatile__ ( \
  70665. - ".set\tnoreorder\n\t" \
  70666. - "subu\t$29, 32\n\t" \
  70667. - "sw\t%6, 16($29)\n\t" \
  70668. - "sw\t%7, 20($29)\n\t" \
  70669. - "sw\t%8, 24($29)\n\t" \
  70670. - cs_init \
  70671. - "syscall\n\t" \
  70672. - "addiu\t$29, 32\n\t" \
  70673. - ".set\treorder" \
  70674. - : "=r" (__v0), "+r" (__a3) \
  70675. - : input, "r" (__a0), "r" (__a1), "r" (__a2), \
  70676. - "r" ((long)arg5), "r" ((long)arg6), "r" ((long)arg7) \
  70677. - : __SYSCALL_CLOBBERS); \
  70678. - err = __a3; \
  70679. - _sys_result = __v0; \
  70680. - } \
  70681. - _sys_result; \
  70682. -})
  70683. -
  70684. -#undef __SYSCALL_CLOBBERS
  70685. -#define __SYSCALL_CLOBBERS "$1", "$3", "$8", "$9", "$10", "$11", "$12", "$13", \
  70686. - "$14", "$15", "$24", "$25", "memory"
  70687. -
  70688. /* Pointer mangling is not yet supported for MIPS. */
  70689. #define PTR_MANGLE(var) (void) (var)
  70690. #define PTR_DEMANGLE(var) (void) (var)
  70691. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/_test_and_set.c uClibc-git/libc/sysdeps/linux/mips/_test_and_set.c
  70692. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/_test_and_set.c 2012-05-15 09:20:09.000000000 +0200
  70693. +++ uClibc-git/libc/sysdeps/linux/mips/_test_and_set.c 2014-06-02 17:40:34.534714863 +0200
  70694. @@ -13,9 +13,8 @@
  70695. Lesser General Public License for more details.
  70696. You should have received a copy of the GNU Lesser General Public
  70697. - License along with the GNU C Library; if not, write to the Free
  70698. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70699. - 02111-1307 USA. */
  70700. + License along with the GNU C Library; if not, see
  70701. + <http://www.gnu.org/licenses/>. */
  70702. /* Define the real-function versions of all inline functions
  70703. defined in sys/tas.h */
  70704. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/ucontext_i.sym uClibc-git/libc/sysdeps/linux/mips/ucontext_i.sym
  70705. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/ucontext_i.sym 1970-01-01 01:00:00.000000000 +0100
  70706. +++ uClibc-git/libc/sysdeps/linux/mips/ucontext_i.sym 2014-06-02 17:40:34.542714907 +0200
  70707. @@ -0,0 +1,52 @@
  70708. +#include <inttypes.h>
  70709. +#include <signal.h>
  70710. +#include <stddef.h>
  70711. +#include <sys/ucontext.h>
  70712. +
  70713. +#include <kernel_rt_sigframe.h>
  70714. +
  70715. +-- Constants used by the rt_sigprocmask call.
  70716. +
  70717. +SIG_BLOCK
  70718. +SIG_SETMASK
  70719. +
  70720. +_NSIG8 (_NSIG / 8)
  70721. +
  70722. +-- Offsets of the fields in the kernel rt_sigframe_t structure.
  70723. +#define rt_sigframe(member) offsetof (kernel_rt_sigframe_t, member)
  70724. +
  70725. +RT_SIGFRAME_UCONTEXT rt_sigframe (rs_uc)
  70726. +
  70727. +RT_SIGFRAME_SIZE sizeof (kernel_rt_sigframe_t)
  70728. +
  70729. +-- Offsets of the fields in the ucontext_t structure.
  70730. +#define ucontext(member) offsetof (ucontext_t, member)
  70731. +#define stack(member) ucontext (uc_stack.member)
  70732. +#define mcontext(member) ucontext (uc_mcontext.member)
  70733. +
  70734. +UCONTEXT_FLAGS ucontext (uc_flags)
  70735. +UCONTEXT_LINK ucontext (uc_link)
  70736. +UCONTEXT_STACK ucontext (uc_stack)
  70737. +UCONTEXT_MCONTEXT ucontext (uc_mcontext)
  70738. +UCONTEXT_SIGMASK ucontext (uc_sigmask)
  70739. +
  70740. +STACK_SP stack (ss_sp)
  70741. +STACK_SIZE stack (ss_size)
  70742. +STACK_FLAGS stack (ss_flags)
  70743. +
  70744. +MCONTEXT_GREGS mcontext (gregs)
  70745. +MCONTEXT_FPREGS mcontext (fpregs)
  70746. +MCONTEXT_MDHI mcontext (mdhi)
  70747. +MCONTEXT_HI1 mcontext (hi1)
  70748. +MCONTEXT_HI2 mcontext (hi2)
  70749. +MCONTEXT_HI3 mcontext (hi3)
  70750. +MCONTEXT_MDLO mcontext (mdlo)
  70751. +MCONTEXT_LO1 mcontext (lo1)
  70752. +MCONTEXT_LO2 mcontext (lo2)
  70753. +MCONTEXT_LO3 mcontext (lo3)
  70754. +MCONTEXT_PC mcontext (pc)
  70755. +MCONTEXT_FPC_CSR mcontext (fpc_csr)
  70756. +MCONTEXT_USED_MATH mcontext (used_math)
  70757. +MCONTEXT_DSP mcontext (dsp)
  70758. +
  70759. +UCONTEXT_SIZE sizeof (ucontext_t)
  70760. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/mips/vfork.S uClibc-git/libc/sysdeps/linux/mips/vfork.S
  70761. --- uClibc-0.9.33.2/libc/sysdeps/linux/mips/vfork.S 2012-05-15 09:20:09.000000000 +0200
  70762. +++ uClibc-git/libc/sysdeps/linux/mips/vfork.S 2014-06-02 17:40:34.542714907 +0200
  70763. @@ -12,12 +12,12 @@
  70764. Lesser General Public License for more details.
  70765. You should have received a copy of the GNU Lesser General Public
  70766. - License along with the GNU C Library; if not, write to the Free
  70767. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70768. - 02111-1307 USA. */
  70769. + License along with the GNU C Library; if not, see
  70770. + <http://www.gnu.org/licenses/>. */
  70771. /* vfork() is just a special case of clone(). */
  70772. +#include <sys/syscall.h>
  70773. #include <sys/asm.h>
  70774. #include <sysdep.h>
  70775. @@ -34,6 +34,7 @@
  70776. /* int vfork() */
  70777. .text
  70778. + .hidden __vfork
  70779. LOCALSZ= 1
  70780. FRAMESZ= (((NARGSAVE+LOCALSZ)*SZREG)+ALSZ)&ALMASK
  70781. GPOFF= FRAMESZ-(1*SZREG)
  70782. @@ -84,6 +85,7 @@
  70783. /* Something bad happened -- no child created. */
  70784. L(error):
  70785. + move a0, v0
  70786. #ifdef __PIC__
  70787. PTR_LA t9, __syscall_error
  70788. RESTORE_GP64
  70789. @@ -95,6 +97,6 @@
  70790. END(__vfork)
  70791. weak_alias(__vfork,vfork)
  70792. -libc_hidden_weak(vfork)
  70793. +libc_hidden_def(vfork)
  70794. #endif
  70795. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/fcntl.h uClibc-git/libc/sysdeps/linux/nios/bits/fcntl.h
  70796. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  70797. +++ uClibc-git/libc/sysdeps/linux/nios/bits/fcntl.h 2014-06-02 17:40:34.542714907 +0200
  70798. @@ -14,8 +14,7 @@
  70799. You should have received a copy of the GNU Library General Public
  70800. License along with the GNU C Library; see the file COPYING.LIB. If not,
  70801. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  70802. - Boston, MA 02111-1307, USA. */
  70803. + see <http://www.gnu.org/licenses/>. */
  70804. #ifndef _FCNTL_H
  70805. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  70806. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/mathdef.h uClibc-git/libc/sysdeps/linux/nios/bits/mathdef.h
  70807. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  70808. +++ uClibc-git/libc/sysdeps/linux/nios/bits/mathdef.h 2014-06-02 17:40:34.542714907 +0200
  70809. @@ -12,9 +12,8 @@
  70810. Lesser General Public License for more details.
  70811. You should have received a copy of the GNU Lesser General Public
  70812. - License along with the GNU C Library; if not, write to the Free
  70813. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70814. - 02111-1307 USA. */
  70815. + License along with the GNU C Library; if not, see
  70816. + <http://www.gnu.org/licenses/>. */
  70817. #if !defined _MATH_H && !defined _COMPLEX_H
  70818. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  70819. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/setjmp.h uClibc-git/libc/sysdeps/linux/nios/bits/setjmp.h
  70820. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  70821. +++ uClibc-git/libc/sysdeps/linux/nios/bits/setjmp.h 2014-06-02 17:40:34.542714907 +0200
  70822. @@ -12,9 +12,8 @@
  70823. Lesser General Public License for more details.
  70824. You should have received a copy of the GNU Lesser General Public
  70825. - License along with the GNU C Library; if not, write to the Free
  70826. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70827. - 02111-1307 USA. */
  70828. + License along with the GNU C Library; if not, see
  70829. + <http://www.gnu.org/licenses/>. */
  70830. /* Define the machine-dependent type `jmp_buf'. Nios version. */
  70831. #ifndef _BITS_SETJMP_H
  70832. @@ -24,8 +23,6 @@
  70833. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  70834. #endif
  70835. -#ifndef _ASM
  70836. -
  70837. #include <signal.h>
  70838. typedef struct
  70839. @@ -44,33 +41,4 @@
  70840. } __jmp_buf[1];
  70841. -/* Test if longjmp to JMPBUF would unwind the frame
  70842. - containing a local variable at ADDRESS. */
  70843. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  70844. - ((void *) (address) < (void *) (jmpbuf)->__sp)
  70845. -
  70846. -#else /* _ASM */
  70847. -
  70848. -#define jmpbuf_l0 0x00
  70849. -#define jmpbuf_l1 0x01
  70850. -#define jmpbuf_l2 0x02
  70851. -#define jmpbuf_l3 0x03
  70852. -#define jmpbuf_l4 0x04
  70853. -#define jmpbuf_l5 0x05
  70854. -#define jmpbuf_l6 0x06
  70855. -#define jmpbuf_l7 0x07
  70856. -
  70857. -#define jmpbuf_i0 0x08
  70858. -#define jmpbuf_i1 0x09
  70859. -#define jmpbuf_i2 0x0a
  70860. -#define jmpbuf_i3 0x0b
  70861. -#define jmpbuf_i4 0x0c
  70862. -#define jmpbuf_i5 0x0d
  70863. -
  70864. -#define jmpbuf_sp 0x0e
  70865. -#define jmpbuf_jmpret 0x0f
  70866. -#define jmpbuf_callersret 0x10
  70867. -
  70868. -#endif /* _ASM */
  70869. -
  70870. #endif /* bits/setjmp.h */
  70871. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/nios/bits/sigcontextinfo.h
  70872. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  70873. +++ uClibc-git/libc/sysdeps/linux/nios/bits/sigcontextinfo.h 2014-06-02 17:40:34.542714907 +0200
  70874. @@ -13,9 +13,8 @@
  70875. Lesser General Public License for more details.
  70876. You should have received a copy of the GNU Lesser General Public
  70877. - License along with the GNU C Library; if not, write to the Free
  70878. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70879. - 02111-1307 USA. */
  70880. + License along with the GNU C Library; if not, see
  70881. + <http://www.gnu.org/licenses/>. */
  70882. #define SIGCONTEXT struct sigcontext *
  70883. #define SIGCONTEXT_EXTRA_ARGS
  70884. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/nios/bits/stackinfo.h
  70885. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  70886. +++ uClibc-git/libc/sysdeps/linux/nios/bits/stackinfo.h 2014-06-02 17:40:34.542714907 +0200
  70887. @@ -12,9 +12,8 @@
  70888. Lesser General Public License for more details.
  70889. You should have received a copy of the GNU Lesser General Public
  70890. - License along with the GNU C Library; if not, write to the Free
  70891. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70892. - 02111-1307 USA. */
  70893. + License along with the GNU C Library; if not, see
  70894. + <http://www.gnu.org/licenses/>. */
  70895. /* This file contains a bit of information about the stack allocation
  70896. of the processor. */
  70897. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/stat.h uClibc-git/libc/sysdeps/linux/nios/bits/stat.h
  70898. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  70899. +++ uClibc-git/libc/sysdeps/linux/nios/bits/stat.h 2014-06-02 17:40:34.542714907 +0200
  70900. @@ -12,9 +12,8 @@
  70901. Lesser General Public License for more details.
  70902. You should have received a copy of the GNU Lesser General Public
  70903. - License along with the GNU C Library; if not, write to the Free
  70904. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70905. - 02111-1307 USA. */
  70906. + License along with the GNU C Library; if not, see
  70907. + <http://www.gnu.org/licenses/>. */
  70908. #ifndef _SYS_STAT_H
  70909. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  70910. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/nios/bits/uClibc_arch_features.h
  70911. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  70912. +++ uClibc-git/libc/sysdeps/linux/nios/bits/uClibc_arch_features.h 2014-06-02 17:40:34.546714929 +0200
  70913. @@ -12,8 +12,8 @@
  70914. /* can your target use syscall6() for mmap ? */
  70915. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  70916. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  70917. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  70918. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  70919. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  70920. /* does your target have a broken create_module() ? */
  70921. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  70922. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/wordsize.h uClibc-git/libc/sysdeps/linux/nios/bits/wordsize.h
  70923. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  70924. +++ uClibc-git/libc/sysdeps/linux/nios/bits/wordsize.h 2014-06-02 17:40:34.546714929 +0200
  70925. @@ -12,8 +12,7 @@
  70926. Lesser General Public License for more details.
  70927. You should have received a copy of the GNU Lesser General Public
  70928. - License along with the GNU C Library; if not, write to the Free
  70929. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70930. - 02111-1307 USA. */
  70931. + License along with the GNU C Library; if not, see
  70932. + <http://www.gnu.org/licenses/>. */
  70933. #define __WORDSIZE 32
  70934. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/brk.c uClibc-git/libc/sysdeps/linux/nios/brk.c
  70935. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/brk.c 2012-05-15 09:20:09.000000000 +0200
  70936. +++ uClibc-git/libc/sysdeps/linux/nios/brk.c 2014-06-02 17:40:34.546714929 +0200
  70937. @@ -13,9 +13,8 @@
  70938. Lesser General Public License for more details.
  70939. You should have received a copy of the GNU Lesser General Public
  70940. - License along with the GNU C Library; if not, write to the Free
  70941. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70942. - 02111-1307 USA. */
  70943. + License along with the GNU C Library; if not, see
  70944. + <http://www.gnu.org/licenses/>. */
  70945. #include <unistd.h>
  70946. #include <sys/syscall.h>
  70947. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/clone.S uClibc-git/libc/sysdeps/linux/nios/clone.S
  70948. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/clone.S 2012-05-15 09:20:09.000000000 +0200
  70949. +++ uClibc-git/libc/sysdeps/linux/nios/clone.S 2014-06-02 17:40:34.546714929 +0200
  70950. @@ -13,9 +13,8 @@
  70951. Lesser General Public License for more details.
  70952. You should have received a copy of the GNU Lesser General Public
  70953. - License along with the GNU C Library; if not, write to the Free
  70954. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70955. - 02111-1307 USA. */
  70956. + License along with the GNU C Library; if not, see
  70957. + <http://www.gnu.org/licenses/>. */
  70958. /* clone() is even more special than fork() as it mucks with stacks
  70959. and invokes a function in the right context after its all over. */
  70960. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/crt1.S uClibc-git/libc/sysdeps/linux/nios/crt1.S
  70961. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/crt1.S 2012-05-15 09:20:09.000000000 +0200
  70962. +++ uClibc-git/libc/sysdeps/linux/nios/crt1.S 2014-06-02 17:40:34.558714996 +0200
  70963. @@ -14,8 +14,7 @@
  70964. You should have received a copy of the GNU Library General Public
  70965. License along with the GNU C Library; see the file COPYING.LIB. If
  70966. -not, write to the Free Software Foundation, Inc., 675 Mass Ave,
  70967. -Cambridge, MA 02139, USA. */
  70968. +not, see <http://www.gnu.org/licenses/>. */
  70969. #include <features.h>
  70970. #include <asm/unistd.h>
  70971. @@ -29,9 +28,6 @@
  70972. .weak _fini
  70973. .type main,@function
  70974. .type __uClibc_main,@function
  70975. - .type __h_errno_location, @function
  70976. - .type _stdio_init, @function
  70977. - .type _stdio_term, @function
  70978. .text
  70979. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/fpu_control.h uClibc-git/libc/sysdeps/linux/nios/fpu_control.h
  70980. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  70981. +++ uClibc-git/libc/sysdeps/linux/nios/fpu_control.h 2014-06-02 17:40:34.562715017 +0200
  70982. @@ -13,9 +13,8 @@
  70983. Lesser General Public License for more details.
  70984. You should have received a copy of the GNU Lesser General Public
  70985. - License along with the GNU C Library; if not, write to the Free
  70986. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  70987. - 02111-1307 USA. */
  70988. + License along with the GNU C Library; if not, see
  70989. + <http://www.gnu.org/licenses/>. */
  70990. #ifndef _FPU_CONTROL_H
  70991. #define _FPU_CONTROL_H
  70992. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/nios/jmpbuf-offsets.h
  70993. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  70994. +++ uClibc-git/libc/sysdeps/linux/nios/jmpbuf-offsets.h 2014-06-02 17:40:34.562715017 +0200
  70995. @@ -0,0 +1,25 @@
  70996. +/*
  70997. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  70998. + *
  70999. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  71000. + */
  71001. +
  71002. +#define jmpbuf_l0 0x00
  71003. +#define jmpbuf_l1 0x01
  71004. +#define jmpbuf_l2 0x02
  71005. +#define jmpbuf_l3 0x03
  71006. +#define jmpbuf_l4 0x04
  71007. +#define jmpbuf_l5 0x05
  71008. +#define jmpbuf_l6 0x06
  71009. +#define jmpbuf_l7 0x07
  71010. +
  71011. +#define jmpbuf_i0 0x08
  71012. +#define jmpbuf_i1 0x09
  71013. +#define jmpbuf_i2 0x0a
  71014. +#define jmpbuf_i3 0x0b
  71015. +#define jmpbuf_i4 0x0c
  71016. +#define jmpbuf_i5 0x0d
  71017. +
  71018. +#define jmpbuf_sp 0x0e
  71019. +#define jmpbuf_jmpret 0x0f
  71020. +#define jmpbuf_callersret 0x10
  71021. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/nios/jmpbuf-unwind.h
  71022. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  71023. +++ uClibc-git/libc/sysdeps/linux/nios/jmpbuf-unwind.h 2014-06-02 17:40:34.562715017 +0200
  71024. @@ -0,0 +1,11 @@
  71025. +/*
  71026. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  71027. + *
  71028. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  71029. + */
  71030. +#include <setjmp.h>
  71031. +
  71032. +/* Test if longjmp to JMPBUF would unwind the frame
  71033. + containing a local variable at ADDRESS. */
  71034. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  71035. + ((void *) (address) < (void *) (jmpbuf)->__sp)
  71036. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/__longjmp.S uClibc-git/libc/sysdeps/linux/nios/__longjmp.S
  71037. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  71038. +++ uClibc-git/libc/sysdeps/linux/nios/__longjmp.S 2014-06-02 17:40:34.542714907 +0200
  71039. @@ -13,14 +13,9 @@
  71040. You should have received a copy of the GNU Library General Public
  71041. License along with the GNU C Library; see the file COPYING.LIB. If not,
  71042. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  71043. - Boston, MA 02111-1307, USA. */
  71044. -
  71045. -#include <features.h>
  71046. -#define _ASM
  71047. -#define _SETJMP_H
  71048. -#include <bits/setjmp.h>
  71049. + see <http://www.gnu.org/licenses/>. */
  71050. +#include <jmpbuf-offsets.h>
  71051. ;----------------------------------------
  71052. ; Name: __longjmp
  71053. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/Makefile.arch uClibc-git/libc/sysdeps/linux/nios/Makefile.arch
  71054. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  71055. +++ uClibc-git/libc/sysdeps/linux/nios/Makefile.arch 2014-06-02 17:40:34.542714907 +0200
  71056. @@ -5,8 +5,8 @@
  71057. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  71058. #
  71059. -CSRC := brk.c crtbegin.c crtend.c
  71060. +CSRC-y := brk.c crtbegin.c crtend.c
  71061. -SSRC := \
  71062. +SSRC-y := \
  71063. __longjmp.S bsd-_setjmp.S bsd-setjmp.S setjmp.S \
  71064. clone.S vfork.S
  71065. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/setjmp.S uClibc-git/libc/sysdeps/linux/nios/setjmp.S
  71066. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  71067. +++ uClibc-git/libc/sysdeps/linux/nios/setjmp.S 2014-06-02 17:40:34.562715017 +0200
  71068. @@ -13,13 +13,9 @@
  71069. You should have received a copy of the GNU Library General Public
  71070. License along with the GNU C Library; see the file COPYING.LIB. If not,
  71071. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  71072. - Boston, MA 02111-1307, USA. */
  71073. + see <http://www.gnu.org/licenses/>. */
  71074. -#include <features.h>
  71075. -#define _ASM
  71076. -#define _SETJMP_H
  71077. -#include <bits/setjmp.h>
  71078. +#include <jmpbuf-offsets.h>
  71079. #include "NM_Macros.S"
  71080. ;----------------------------------------
  71081. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/sys/procfs.h uClibc-git/libc/sysdeps/linux/nios/sys/procfs.h
  71082. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  71083. +++ uClibc-git/libc/sysdeps/linux/nios/sys/procfs.h 2014-06-02 17:40:34.562715017 +0200
  71084. @@ -12,9 +12,8 @@
  71085. Lesser General Public License for more details.
  71086. You should have received a copy of the GNU Lesser General Public
  71087. - License along with the GNU C Library; if not, write to the Free
  71088. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71089. - 02111-1307 USA. */
  71090. + License along with the GNU C Library; if not, see
  71091. + <http://www.gnu.org/licenses/>. */
  71092. #ifndef _SYS_PROCFS_H
  71093. #define _SYS_PROCFS_H 1
  71094. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/sys/ucontext.h uClibc-git/libc/sysdeps/linux/nios/sys/ucontext.h
  71095. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  71096. +++ uClibc-git/libc/sysdeps/linux/nios/sys/ucontext.h 2014-06-02 17:40:34.562715017 +0200
  71097. @@ -12,9 +12,8 @@
  71098. Lesser General Public License for more details.
  71099. You should have received a copy of the GNU Lesser General Public
  71100. - License along with the GNU C Library; if not, write to the Free
  71101. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71102. - 02111-1307 USA. */
  71103. + License along with the GNU C Library; if not, see
  71104. + <http://www.gnu.org/licenses/>. */
  71105. #ifndef _SYS_UCONTEXT_H
  71106. #define _SYS_UCONTEXT_H 1
  71107. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios/vfork.S uClibc-git/libc/sysdeps/linux/nios/vfork.S
  71108. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios/vfork.S 2012-05-15 09:20:09.000000000 +0200
  71109. +++ uClibc-git/libc/sysdeps/linux/nios/vfork.S 2014-06-02 17:40:34.562715017 +0200
  71110. @@ -10,9 +10,6 @@
  71111. * Written by Wentao Xu <wentao@microtronix.com>
  71112. */
  71113. -#include <features.h>
  71114. -
  71115. -#include <bits/errno.h>
  71116. #include <sys/syscall.h>
  71117. #include "NM_Macros.S"
  71118. @@ -51,4 +48,4 @@
  71119. .size __vfork,.-__vfork
  71120. weak_alias(__vfork,vfork)
  71121. -libc_hidden_weak(vfork)
  71122. +libc_hidden_def(vfork)
  71123. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/fcntl.h uClibc-git/libc/sysdeps/linux/nios2/bits/fcntl.h
  71124. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  71125. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/fcntl.h 2014-06-02 17:40:34.562715017 +0200
  71126. @@ -13,9 +13,8 @@
  71127. Lesser General Public License for more details.
  71128. You should have received a copy of the GNU Lesser General Public
  71129. - License along with the GNU C Library; if not, write to the Free
  71130. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71131. - 02111-1307 USA. */
  71132. + License along with the GNU C Library; if not, see
  71133. + <http://www.gnu.org/licenses/>. */
  71134. #ifndef _FCNTL_H
  71135. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  71136. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/nios2/bits/kernel_types.h
  71137. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  71138. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/kernel_types.h 2014-06-02 17:40:34.562715017 +0200
  71139. @@ -31,6 +31,8 @@
  71140. typedef unsigned short __kernel_old_uid_t;
  71141. typedef unsigned short __kernel_old_gid_t;
  71142. typedef unsigned short __kernel_old_dev_t;
  71143. +typedef long __kernel_long_t;
  71144. +typedef unsigned long __kernel_ulong_t;
  71145. typedef long long __kernel_loff_t;
  71146. typedef struct {
  71147. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/mathdef.h uClibc-git/libc/sysdeps/linux/nios2/bits/mathdef.h
  71148. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  71149. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/mathdef.h 2014-06-02 17:40:34.562715017 +0200
  71150. @@ -12,9 +12,8 @@
  71151. Lesser General Public License for more details.
  71152. You should have received a copy of the GNU Lesser General Public
  71153. - License along with the GNU C Library; if not, write to the Free
  71154. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71155. - 02111-1307 USA. */
  71156. + License along with the GNU C Library; if not, see
  71157. + <http://www.gnu.org/licenses/>. */
  71158. #if !defined _MATH_H && !defined _COMPLEX_H
  71159. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  71160. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/setjmp.h uClibc-git/libc/sysdeps/linux/nios2/bits/setjmp.h
  71161. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  71162. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/setjmp.h 2014-06-02 17:40:34.562715017 +0200
  71163. @@ -13,9 +13,8 @@
  71164. Lesser General Public License for more details.
  71165. You should have received a copy of the GNU Lesser General Public
  71166. - License along with the GNU C Library; if not, write to the Free
  71167. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71168. - 02111-1307 USA. */
  71169. + License along with the GNU C Library; if not, see
  71170. + <http://www.gnu.org/licenses/>. */
  71171. #ifndef _BITS_SETJMP_H
  71172. #define _BITS_SETJMP_H 1
  71173. @@ -24,7 +23,6 @@
  71174. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  71175. #endif
  71176. -#ifndef _ASM
  71177. typedef struct
  71178. {
  71179. /* Callee-saved registers r16 through r23. */
  71180. @@ -43,30 +41,9 @@
  71181. unsigned long __gp;
  71182. /* floating point regs, if any */
  71183. -#if defined __HAVE_FPU__
  71184. +#ifdef __UCLIBC_HAS_FPU__
  71185. unsigned long __fpregs[64];
  71186. #endif
  71187. } __jmp_buf[1];
  71188. -#endif
  71189. -
  71190. -#define JB_REGS 0
  71191. -#define JB_PC 32
  71192. -#define JB_SP 36
  71193. -#define JB_FP 40
  71194. -#define JB_GP 44
  71195. -#define JB_FPREGS 48
  71196. -
  71197. -#if defined __HAVE_FPU__
  71198. -# define JB_SIZE 304
  71199. -#else
  71200. -# define JB_SIZE 48
  71201. -#endif
  71202. -
  71203. -
  71204. -/* Test if longjmp to JMPBUF would unwind the frame
  71205. - containing a local variable at ADDRESS. */
  71206. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  71207. - ((void *) (address) < (void*)(jmpbuf)->__sp)
  71208. -
  71209. #endif /* bits/setjmp.h */
  71210. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/nios2/bits/sigcontextinfo.h
  71211. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  71212. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/sigcontextinfo.h 2014-06-02 17:40:34.562715017 +0200
  71213. @@ -13,9 +13,8 @@
  71214. Lesser General Public License for more details.
  71215. You should have received a copy of the GNU Lesser General Public
  71216. - License along with the GNU C Library; if not, write to the Free
  71217. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71218. - 02111-1307 USA. */
  71219. + License along with the GNU C Library; if not, see
  71220. + <http://www.gnu.org/licenses/>. */
  71221. #define SIGCONTEXT struct sigcontext *
  71222. #define SIGCONTEXT_EXTRA_ARGS
  71223. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/nios2/bits/stackinfo.h
  71224. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  71225. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/stackinfo.h 2014-06-02 17:40:34.562715017 +0200
  71226. @@ -12,9 +12,8 @@
  71227. Lesser General Public License for more details.
  71228. You should have received a copy of the GNU Lesser General Public
  71229. - License along with the GNU C Library; if not, write to the Free
  71230. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71231. - 02111-1307 USA. */
  71232. + License along with the GNU C Library; if not, see
  71233. + <http://www.gnu.org/licenses/>. */
  71234. /* This file contains a bit of information about the stack allocation
  71235. of the processor. */
  71236. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/stat.h uClibc-git/libc/sysdeps/linux/nios2/bits/stat.h
  71237. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  71238. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/stat.h 2014-06-02 17:40:34.562715017 +0200
  71239. @@ -12,9 +12,8 @@
  71240. Lesser General Public License for more details.
  71241. You should have received a copy of the GNU Lesser General Public
  71242. - License along with the GNU C Library; if not, write to the Free
  71243. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71244. - 02111-1307 USA. */
  71245. + License along with the GNU C Library; if not, see
  71246. + <http://www.gnu.org/licenses/>. */
  71247. #ifndef _SYS_STAT_H
  71248. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  71249. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/nios2/bits/uClibc_arch_features.h
  71250. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  71251. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/uClibc_arch_features.h 2014-06-02 17:40:34.574715084 +0200
  71252. @@ -12,8 +12,8 @@
  71253. /* can your target use syscall6() for mmap ? */
  71254. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  71255. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  71256. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  71257. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  71258. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  71259. /* does your target have a broken create_module() ? */
  71260. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  71261. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/nios2/bits/uClibc_page.h
  71262. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  71263. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/uClibc_page.h 1970-01-01 01:00:00.000000000 +0100
  71264. @@ -1,29 +0,0 @@
  71265. -/* Copyright (C) 2004 Erik Andersen
  71266. - *
  71267. - * This library is free software; you can redistribute it and/or
  71268. - * modify it under the terms of the GNU Lesser General Public
  71269. - * License as published by the Free Software Foundation; either
  71270. - * version 2.1 of the License, or (at your option) any later version.
  71271. - *
  71272. - * The GNU C Library is distributed in the hope that it will be useful,
  71273. - * but WITHOUT ANY WARRANTY; without even the implied warranty of
  71274. - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  71275. - * Lesser General Public License for more details.
  71276. - *
  71277. - * You should have received a copy of the GNU Lesser General Public
  71278. - * License along with the GNU C Library; if not, write to the Free
  71279. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71280. - * 02111-1307 USA.
  71281. - */
  71282. -
  71283. -/* Supply an architecture specific value for PAGE_SIZE and friends. */
  71284. -
  71285. -#ifndef _UCLIBC_PAGE_H
  71286. -#define _UCLIBC_PAGE_H
  71287. -
  71288. -/* PAGE_SHIFT determines the page size -- in this case 4096 */
  71289. -#define PAGE_SHIFT (12)
  71290. -#define PAGE_SIZE (1UL << PAGE_SHIFT)
  71291. -#define PAGE_MASK (~(PAGE_SIZE-1))
  71292. -
  71293. -#endif /* _UCLIBC_PAGE_H */
  71294. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/wordsize.h uClibc-git/libc/sysdeps/linux/nios2/bits/wordsize.h
  71295. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  71296. +++ uClibc-git/libc/sysdeps/linux/nios2/bits/wordsize.h 2014-06-02 17:40:34.574715084 +0200
  71297. @@ -12,8 +12,7 @@
  71298. Lesser General Public License for more details.
  71299. You should have received a copy of the GNU Lesser General Public
  71300. - License along with the GNU C Library; if not, write to the Free
  71301. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71302. - 02111-1307 USA. */
  71303. + License along with the GNU C Library; if not, see
  71304. + <http://www.gnu.org/licenses/>. */
  71305. #define __WORDSIZE 32
  71306. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/brk.c uClibc-git/libc/sysdeps/linux/nios2/brk.c
  71307. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/brk.c 2012-05-15 09:20:09.000000000 +0200
  71308. +++ uClibc-git/libc/sysdeps/linux/nios2/brk.c 2014-06-02 17:40:34.574715084 +0200
  71309. @@ -13,9 +13,8 @@
  71310. Lesser General Public License for more details.
  71311. You should have received a copy of the GNU Lesser General Public
  71312. - License along with the GNU C Library; if not, write to the Free
  71313. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71314. - 02111-1307 USA. */
  71315. + License along with the GNU C Library; if not, see
  71316. + <http://www.gnu.org/licenses/>. */
  71317. #include <unistd.h>
  71318. #include <sys/syscall.h>
  71319. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/nios2/bsd-setjmp.S
  71320. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  71321. +++ uClibc-git/libc/sysdeps/linux/nios2/bsd-setjmp.S 2014-06-02 17:40:34.574715084 +0200
  71322. @@ -12,9 +12,8 @@
  71323. */
  71324. -#define _ASM
  71325. -#define _SETJMP_H
  71326. -#include <bits/setjmp.h>
  71327. +#include <features.h>
  71328. +#include <jmpbuf-offsets.h>
  71329. .globl setjmp
  71330. .type setjmp,@function
  71331. @@ -35,7 +34,7 @@
  71332. stw fp, JB_FP(r4)
  71333. stw gp, JB_GP(r4)
  71334. -#if defined(__HAVE_FPU__)
  71335. +#ifdef __UCLIBC_HAS_FPU__
  71336. SAVE_FPU r4 JB_FPREGS
  71337. #endif
  71338. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/nios2/bsd-_setjmp.S
  71339. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  71340. +++ uClibc-git/libc/sysdeps/linux/nios2/bsd-_setjmp.S 2014-06-02 17:40:34.574715084 +0200
  71341. @@ -11,9 +11,8 @@
  71342. *
  71343. */
  71344. -#define _ASM
  71345. -#define _SETJMP_H
  71346. -#include <bits/setjmp.h>
  71347. +#include <features.h>
  71348. +#include <jmpbuf-offsets.h>
  71349. .globl _setjmp
  71350. .type _setjmp,@function
  71351. @@ -34,7 +33,7 @@
  71352. stw fp, JB_FP(r4)
  71353. stw gp, JB_GP(r4)
  71354. -#if defined(__HAVE_FPU__)
  71355. +#ifdef __UCLIBC_HAS_FPU__
  71356. SAVE_FPU r4 JB_FPREGS
  71357. #endif
  71358. stw r0, JB_SIZE(r4) /* signal mask is not saved */
  71359. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/crt1.S uClibc-git/libc/sysdeps/linux/nios2/crt1.S
  71360. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/crt1.S 2012-05-15 09:20:09.000000000 +0200
  71361. +++ uClibc-git/libc/sysdeps/linux/nios2/crt1.S 2014-06-02 17:40:34.574715084 +0200
  71362. @@ -25,9 +25,6 @@
  71363. #endif
  71364. .type main,@function
  71365. .type __uClibc_main,@function
  71366. - .type __h_errno_location, @function
  71367. - .type _stdio_init, @function
  71368. - .type _stdio_term, @function
  71369. .text
  71370. .balign 4
  71371. _start:
  71372. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/fpu_control.h uClibc-git/libc/sysdeps/linux/nios2/fpu_control.h
  71373. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  71374. +++ uClibc-git/libc/sysdeps/linux/nios2/fpu_control.h 2014-06-02 17:40:34.574715084 +0200
  71375. @@ -13,9 +13,8 @@
  71376. Lesser General Public License for more details.
  71377. You should have received a copy of the GNU Lesser General Public
  71378. - License along with the GNU C Library; if not, write to the Free
  71379. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71380. - 02111-1307 USA. */
  71381. + License along with the GNU C Library; if not, see
  71382. + <http://www.gnu.org/licenses/>. */
  71383. #ifndef _FPU_CONTROL_H
  71384. #define _FPU_CONTROL_H
  71385. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/nios2/jmpbuf-offsets.h
  71386. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  71387. +++ uClibc-git/libc/sysdeps/linux/nios2/jmpbuf-offsets.h 2014-06-02 17:40:34.574715084 +0200
  71388. @@ -0,0 +1,20 @@
  71389. +/*
  71390. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  71391. + *
  71392. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  71393. + */
  71394. +
  71395. +#include <features.h>
  71396. +
  71397. +#define JB_REGS 0
  71398. +#define JB_PC 32
  71399. +#define JB_SP 36
  71400. +#define JB_FP 40
  71401. +#define JB_GP 44
  71402. +#define JB_FPREGS 48
  71403. +
  71404. +#ifdef __UCLIBC_HAS_FPU__
  71405. +# define JB_SIZE 304
  71406. +#else
  71407. +# define JB_SIZE 48
  71408. +#endif
  71409. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/nios2/jmpbuf-unwind.h
  71410. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  71411. +++ uClibc-git/libc/sysdeps/linux/nios2/jmpbuf-unwind.h 2014-06-02 17:40:34.574715084 +0200
  71412. @@ -0,0 +1,11 @@
  71413. +/*
  71414. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  71415. + *
  71416. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  71417. + */
  71418. +#include <setjmp.h>
  71419. +
  71420. +/* Test if longjmp to JMPBUF would unwind the frame
  71421. + containing a local variable at ADDRESS. */
  71422. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  71423. + ((void *) (address) < (void *) (jmpbuf)->__sp)
  71424. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/__longjmp.S uClibc-git/libc/sysdeps/linux/nios2/__longjmp.S
  71425. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  71426. +++ uClibc-git/libc/sysdeps/linux/nios2/__longjmp.S 2014-06-02 17:40:34.562715017 +0200
  71427. @@ -12,9 +12,7 @@
  71428. */
  71429. #include <features.h>
  71430. -#define _ASM
  71431. -#define _SETJMP_H
  71432. -#include <bits/setjmp.h>
  71433. +#include <jmpbuf-offsets.h>
  71434. .globl __longjmp
  71435. .type __longjmp,@function
  71436. @@ -39,7 +37,7 @@
  71437. ldw gp, JB_GP(r4)
  71438. ldw sp, JB_SP(r4)
  71439. -#if defined(__HAVE_FPU__)
  71440. +#ifdef __UCLIBC_HAS_FPU__
  71441. RESTORE_FPU r4 JB_FPREGS
  71442. #endif
  71443. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/Makefile.arch uClibc-git/libc/sysdeps/linux/nios2/Makefile.arch
  71444. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  71445. +++ uClibc-git/libc/sysdeps/linux/nios2/Makefile.arch 2014-06-02 17:40:34.562715017 +0200
  71446. @@ -5,8 +5,8 @@
  71447. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  71448. #
  71449. -CSRC := brk.c syscall.c
  71450. +CSRC-y := brk.c syscall.c
  71451. -SSRC := \
  71452. +SSRC-y := \
  71453. __longjmp.S bsd-_setjmp.S bsd-setjmp.S setjmp.S \
  71454. vfork.S clone.S
  71455. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/setjmp.S uClibc-git/libc/sysdeps/linux/nios2/setjmp.S
  71456. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  71457. +++ uClibc-git/libc/sysdeps/linux/nios2/setjmp.S 2014-06-02 17:40:34.574715084 +0200
  71458. @@ -12,9 +12,7 @@
  71459. */
  71460. #include <features.h>
  71461. -#define _ASM
  71462. -#define _SETJMP_H
  71463. -#include <bits/setjmp.h>
  71464. +#include <jmpbuf-offsets.h>
  71465. .globl __sigsetjmp
  71466. .type __sigsetjmp,@function
  71467. @@ -35,7 +33,7 @@
  71468. stw fp, JB_FP(r4)
  71469. stw gp, JB_GP(r4)
  71470. -#if defined(__HAVE_FPU__)
  71471. +#ifdef __UCLIBC_HAS_FPU__
  71472. SAVE_FPU r4 JB_FPREGS
  71473. #endif
  71474. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/sys/procfs.h uClibc-git/libc/sysdeps/linux/nios2/sys/procfs.h
  71475. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  71476. +++ uClibc-git/libc/sysdeps/linux/nios2/sys/procfs.h 2014-06-02 17:40:34.574715084 +0200
  71477. @@ -12,9 +12,8 @@
  71478. Lesser General Public License for more details.
  71479. You should have received a copy of the GNU Lesser General Public
  71480. - License along with the GNU C Library; if not, write to the Free
  71481. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71482. - 02111-1307 USA. */
  71483. + License along with the GNU C Library; if not, see
  71484. + <http://www.gnu.org/licenses/>. */
  71485. #ifndef _SYS_PROCFS_H
  71486. #define _SYS_PROCFS_H 1
  71487. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/sys/ucontext.h uClibc-git/libc/sysdeps/linux/nios2/sys/ucontext.h
  71488. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  71489. +++ uClibc-git/libc/sysdeps/linux/nios2/sys/ucontext.h 2014-06-02 17:40:34.574715084 +0200
  71490. @@ -12,9 +12,8 @@
  71491. Lesser General Public License for more details.
  71492. You should have received a copy of the GNU Lesser General Public
  71493. - License along with the GNU C Library; if not, write to the Free
  71494. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71495. - 02111-1307 USA. */
  71496. + License along with the GNU C Library; if not, see
  71497. + <http://www.gnu.org/licenses/>. */
  71498. #ifndef _SYS_UCONTEXT_H
  71499. #define _SYS_UCONTEXT_H 1
  71500. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/syscall.c uClibc-git/libc/sysdeps/linux/nios2/syscall.c
  71501. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/syscall.c 2012-05-15 09:20:09.000000000 +0200
  71502. +++ uClibc-git/libc/sysdeps/linux/nios2/syscall.c 2014-06-02 17:40:34.574715084 +0200
  71503. @@ -14,8 +14,8 @@
  71504. * for more details.
  71505. *
  71506. * You should have received a copy of the GNU Library General Public License
  71507. - * along with this program; if not, write to the Free Software Foundation,
  71508. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  71509. + * along with this program; see the file COPYING.LIB. If not, see
  71510. + * <http://www.gnu.org/licenses/>.
  71511. */
  71512. #include <features.h>
  71513. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/nios2/vfork.S uClibc-git/libc/sysdeps/linux/nios2/vfork.S
  71514. --- uClibc-0.9.33.2/libc/sysdeps/linux/nios2/vfork.S 2012-05-15 09:20:09.000000000 +0200
  71515. +++ uClibc-git/libc/sysdeps/linux/nios2/vfork.S 2014-06-02 17:40:34.574715084 +0200
  71516. @@ -10,11 +10,7 @@
  71517. * Written by Wentao Xu <wentao@microtronix.com>
  71518. */
  71519. -#include <features.h>
  71520. -
  71521. -#define _ERRNO_H
  71522. -#include <bits/errno.h>
  71523. -#include <asm/unistd.h>
  71524. +#include <sys/syscall.h>
  71525. #ifndef __NR_vfork
  71526. #define __NR_vfork __NR_fork /* uClinux-2.0 only has fork which is vfork */
  71527. @@ -53,4 +49,4 @@
  71528. .size __vfork,.-__vfork
  71529. weak_alias(__vfork,vfork)
  71530. -libc_hidden_weak(vfork)
  71531. +libc_hidden_def(vfork)
  71532. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/atomic.h uClibc-git/libc/sysdeps/linux/powerpc/bits/atomic.h
  71533. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  71534. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/atomic.h 2014-06-02 17:40:34.574715084 +0200
  71535. @@ -14,9 +14,8 @@
  71536. Lesser General Public License for more details.
  71537. You should have received a copy of the GNU Lesser General Public
  71538. - License along with the GNU C Library; if not, write to the Free
  71539. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71540. - 02111-1307 USA. */
  71541. + License along with the GNU C Library; if not, see
  71542. + <http://www.gnu.org/licenses/>. */
  71543. #include <bits/wordsize.h>
  71544. @@ -37,9 +36,8 @@
  71545. Lesser General Public License for more details.
  71546. You should have received a copy of the GNU Lesser General Public
  71547. - License along with the GNU C Library; if not, write to the Free
  71548. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71549. - 02111-1307 USA. */
  71550. + License along with the GNU C Library; if not, see
  71551. + <http://www.gnu.org/licenses/>. */
  71552. /* The 32-bit exchange_bool is different on powerpc64 because the subf
  71553. does signed 64-bit arthmatic while the lwarx is 32-bit unsigned
  71554. @@ -260,9 +258,8 @@
  71555. Lesser General Public License for more details.
  71556. You should have received a copy of the GNU Lesser General Public
  71557. - License along with the GNU C Library; if not, write to the Free
  71558. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71559. - 02111-1307 USA. */
  71560. + License along with the GNU C Library; if not, see
  71561. + <http://www.gnu.org/licenses/>. */
  71562. /*
  71563. * The 32-bit exchange_bool is different on powerpc64 because the subf
  71564. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/endian.h uClibc-git/libc/sysdeps/linux/powerpc/bits/endian.h
  71565. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/endian.h 2012-05-15 09:20:09.000000000 +0200
  71566. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/endian.h 2014-06-02 17:40:34.574715084 +0200
  71567. @@ -12,9 +12,8 @@
  71568. Lesser General Public License for more details.
  71569. You should have received a copy of the GNU Lesser General Public
  71570. - License along with the GNU C Library; if not, write to the Free
  71571. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71572. - 02111-1307 USA. */
  71573. + License along with the GNU C Library; if not, see
  71574. + <http://www.gnu.org/licenses/>. */
  71575. /* PowerPC can be little or big endian. Hopefully gcc will know... */
  71576. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fcntl.h uClibc-git/libc/sysdeps/linux/powerpc/bits/fcntl.h
  71577. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  71578. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/fcntl.h 2014-06-02 17:40:34.574715084 +0200
  71579. @@ -14,9 +14,8 @@
  71580. Lesser General Public License for more details.
  71581. You should have received a copy of the GNU Lesser General Public
  71582. - License along with the GNU C Library; if not, write to the Free
  71583. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71584. - 02111-1307 USA. */
  71585. + License along with the GNU C Library; if not, see
  71586. + <http://www.gnu.org/licenses/>. */
  71587. #ifndef _FCNTL_H
  71588. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  71589. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fenv.h uClibc-git/libc/sysdeps/linux/powerpc/bits/fenv.h
  71590. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  71591. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/fenv.h 2014-06-02 17:40:34.574715084 +0200
  71592. @@ -12,9 +12,8 @@
  71593. Lesser General Public License for more details.
  71594. You should have received a copy of the GNU Lesser General Public
  71595. - License along with the GNU C Library; if not, write to the Free
  71596. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71597. - 02111-1307 USA. */
  71598. + License along with the GNU C Library; if not, see
  71599. + <http://www.gnu.org/licenses/>. */
  71600. #ifndef _FENV_H
  71601. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  71602. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fenvinline.h uClibc-git/libc/sysdeps/linux/powerpc/bits/fenvinline.h
  71603. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/fenvinline.h 2012-05-15 09:20:09.000000000 +0200
  71604. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/fenvinline.h 2014-06-02 17:40:34.578715107 +0200
  71605. @@ -14,9 +14,8 @@
  71606. Lesser General Public License for more details.
  71607. You should have received a copy of the GNU Lesser General Public
  71608. - License along with the GNU C Library; if not, write to the Free
  71609. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71610. - 02111-1307 USA. */
  71611. + License along with the GNU C Library; if not, see
  71612. + <http://www.gnu.org/licenses/>. */
  71613. #include <features.h>
  71614. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/ipc.h uClibc-git/libc/sysdeps/linux/powerpc/bits/ipc.h
  71615. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  71616. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/ipc.h 2014-06-02 17:40:34.578715107 +0200
  71617. @@ -12,9 +12,8 @@
  71618. Lesser General Public License for more details.
  71619. You should have received a copy of the GNU Lesser General Public
  71620. - License along with the GNU C Library; if not, write to the Free
  71621. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71622. - 02111-1307 USA. */
  71623. + License along with the GNU C Library; if not, see
  71624. + <http://www.gnu.org/licenses/>. */
  71625. #ifndef _SYS_IPC_H
  71626. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  71627. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/powerpc/bits/kernel_types.h
  71628. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  71629. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/kernel_types.h 2014-06-02 17:40:34.578715107 +0200
  71630. @@ -36,6 +36,8 @@
  71631. typedef unsigned int __kernel_old_uid_t;
  71632. typedef unsigned int __kernel_old_gid_t;
  71633. typedef __kernel_dev_t __kernel_old_dev_t;
  71634. +typedef long __kernel_long_t;
  71635. +typedef unsigned long __kernel_ulong_t;
  71636. #else
  71637. typedef unsigned int __kernel_dev_t;
  71638. typedef unsigned int __kernel_ino_t;
  71639. @@ -61,6 +63,8 @@
  71640. typedef unsigned int __kernel_old_uid_t;
  71641. typedef unsigned int __kernel_old_gid_t;
  71642. typedef __kernel_dev_t __kernel_old_dev_t;
  71643. +typedef long __kernel_long_t;
  71644. +typedef unsigned long __kernel_ulong_t;
  71645. typedef long long __kernel_loff_t;
  71646. #endif
  71647. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/local_lim.h uClibc-git/libc/sysdeps/linux/powerpc/bits/local_lim.h
  71648. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/local_lim.h 1970-01-01 01:00:00.000000000 +0100
  71649. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/local_lim.h 2014-06-02 17:40:34.578715107 +0200
  71650. @@ -0,0 +1,101 @@
  71651. +/* Minimum guaranteed maximum values for system limits. Linux/PPC version.
  71652. + Copyright (C) 1993-1998,2000,2002-2004,2006,2008
  71653. + Free Software Foundation, Inc.
  71654. + This file is part of the GNU C Library.
  71655. +
  71656. + The GNU C Library is free software; you can redistribute it and/or
  71657. + modify it under the terms of the GNU Lesser General Public License as
  71658. + published by the Free Software Foundation; either version 2.1 of the
  71659. + License, or (at your option) any later version.
  71660. +
  71661. + The GNU C Library is distributed in the hope that it will be useful,
  71662. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  71663. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  71664. + Lesser General Public License for more details.
  71665. +
  71666. + You should have received a copy of the GNU Lesser General Public
  71667. + License along with the GNU C Library; see the file COPYING.LIB. If
  71668. + not, see <http://www.gnu.org/licenses/>. */
  71669. +
  71670. +/* The kernel header pollutes the namespace with the NR_OPEN symbol
  71671. + and defines LINK_MAX although filesystems have different maxima. A
  71672. + similar thing is true for OPEN_MAX: the limit can be changed at
  71673. + runtime and therefore the macro must not be defined. Remove this
  71674. + after including the header if necessary. */
  71675. +#ifndef NR_OPEN
  71676. +# define __undef_NR_OPEN
  71677. +#endif
  71678. +#ifndef LINK_MAX
  71679. +# define __undef_LINK_MAX
  71680. +#endif
  71681. +#ifndef OPEN_MAX
  71682. +# define __undef_OPEN_MAX
  71683. +#endif
  71684. +#ifndef ARG_MAX
  71685. +# define __undef_ARG_MAX
  71686. +#endif
  71687. +
  71688. +/* The kernel sources contain a file with all the needed information. */
  71689. +#include <linux/limits.h>
  71690. +
  71691. +/* Have to remove NR_OPEN? */
  71692. +#ifdef __undef_NR_OPEN
  71693. +# undef NR_OPEN
  71694. +# undef __undef_NR_OPEN
  71695. +#endif
  71696. +/* Have to remove LINK_MAX? */
  71697. +#ifdef __undef_LINK_MAX
  71698. +# undef LINK_MAX
  71699. +# undef __undef_LINK_MAX
  71700. +#endif
  71701. +/* Have to remove OPEN_MAX? */
  71702. +#ifdef __undef_OPEN_MAX
  71703. +# undef OPEN_MAX
  71704. +# undef __undef_OPEN_MAX
  71705. +#endif
  71706. +/* Have to remove ARG_MAX? */
  71707. +#ifdef __undef_ARG_MAX
  71708. +# undef ARG_MAX
  71709. +# undef __undef_ARG_MAX
  71710. +#endif
  71711. +
  71712. +/* The number of data keys per process. */
  71713. +#define _POSIX_THREAD_KEYS_MAX 128
  71714. +/* This is the value this implementation supports. */
  71715. +#define PTHREAD_KEYS_MAX 1024
  71716. +
  71717. +/* Controlling the iterations of destructors for thread-specific data. */
  71718. +#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
  71719. +/* Number of iterations this implementation does. */
  71720. +#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
  71721. +
  71722. +/* The number of threads per process. */
  71723. +#define _POSIX_THREAD_THREADS_MAX 64
  71724. +/* We have no predefined limit on the number of threads. */
  71725. +#undef PTHREAD_THREADS_MAX
  71726. +
  71727. +/* Maximum amount by which a process can descrease its asynchronous I/O
  71728. + priority level. */
  71729. +#define AIO_PRIO_DELTA_MAX 20
  71730. +
  71731. +/* Minimum size for a thread. At least two pages for systems with 64k
  71732. + pages. */
  71733. +#define PTHREAD_STACK_MIN 131072
  71734. +
  71735. +/* Maximum number of timer expiration overruns. */
  71736. +#define DELAYTIMER_MAX 2147483647
  71737. +
  71738. +/* Maximum tty name length. */
  71739. +#define TTY_NAME_MAX 32
  71740. +
  71741. +/* Maximum login name length. This is arbitrary. */
  71742. +#define LOGIN_NAME_MAX 256
  71743. +
  71744. +/* Maximum host name length. */
  71745. +#define HOST_NAME_MAX 64
  71746. +
  71747. +/* Maximum message queue priority level. */
  71748. +#define MQ_PRIO_MAX 32768
  71749. +
  71750. +/* Maximum value the semaphore can have. */
  71751. +#define SEM_VALUE_MAX (2147483647)
  71752. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mathdef.h uClibc-git/libc/sysdeps/linux/powerpc/bits/mathdef.h
  71753. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  71754. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/mathdef.h 2014-06-02 17:40:34.578715107 +0200
  71755. @@ -13,9 +13,8 @@
  71756. Lesser General Public License for more details.
  71757. You should have received a copy of the GNU Lesser General Public
  71758. - License along with the GNU C Library; if not, write to the Free
  71759. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71760. - 02111-1307 USA. */
  71761. + License along with the GNU C Library; if not, see
  71762. + <http://www.gnu.org/licenses/>. */
  71763. #include <features.h>
  71764. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mathinline.h uClibc-git/libc/sysdeps/linux/powerpc/bits/mathinline.h
  71765. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
  71766. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/mathinline.h 2014-06-02 17:40:34.578715107 +0200
  71767. @@ -14,9 +14,8 @@
  71768. Lesser General Public License for more details.
  71769. You should have received a copy of the GNU Lesser General Public
  71770. - License along with the GNU C Library; if not, write to the Free
  71771. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71772. - 02111-1307 USA. */
  71773. + License along with the GNU C Library; if not, see
  71774. + <http://www.gnu.org/licenses/>. */
  71775. #include <features.h>
  71776. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mman.h uClibc-git/libc/sysdeps/linux/powerpc/bits/mman.h
  71777. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
  71778. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/mman.h 2014-06-02 17:40:34.578715107 +0200
  71779. @@ -13,9 +13,8 @@
  71780. Lesser General Public License for more details.
  71781. You should have received a copy of the GNU Lesser General Public
  71782. - License along with the GNU C Library; if not, write to the Free
  71783. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71784. - 02111-1307 USA. */
  71785. + License along with the GNU C Library; if not, see
  71786. + <http://www.gnu.org/licenses/>. */
  71787. #ifndef _SYS_MMAN_H
  71788. # error "Never use <bits/mman.h> directly; iclude <sys/mman.h> instead."
  71789. @@ -63,7 +62,7 @@
  71790. # define MAP_NORESERVE 0x00040 /* Don't check for reservations. */
  71791. # define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */
  71792. # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
  71793. -# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
  71794. +# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
  71795. be uninitialized. */
  71796. #endif
  71797. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/msq.h uClibc-git/libc/sysdeps/linux/powerpc/bits/msq.h
  71798. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
  71799. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/msq.h 2014-06-02 17:40:34.578715107 +0200
  71800. @@ -12,9 +12,8 @@
  71801. Lesser General Public License for more details.
  71802. You should have received a copy of the GNU Lesser General Public
  71803. - License along with the GNU C Library; if not, write to the Free
  71804. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71805. - 02111-1307 USA. */
  71806. + License along with the GNU C Library; if not, see
  71807. + <http://www.gnu.org/licenses/>. */
  71808. #ifndef _SYS_MSG_H
  71809. # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  71810. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/sem.h uClibc-git/libc/sysdeps/linux/powerpc/bits/sem.h
  71811. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
  71812. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/sem.h 2014-06-02 17:40:34.578715107 +0200
  71813. @@ -13,9 +13,8 @@
  71814. Lesser General Public License for more details.
  71815. You should have received a copy of the GNU Lesser General Public
  71816. - License along with the GNU C Library; if not, write to the Free
  71817. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71818. - 02111-1307 USA. */
  71819. + License along with the GNU C Library; if not, see
  71820. + <http://www.gnu.org/licenses/>. */
  71821. #ifndef _SYS_SEM_H
  71822. # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
  71823. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/setjmp.h uClibc-git/libc/sysdeps/linux/powerpc/bits/setjmp.h
  71824. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  71825. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/setjmp.h 2014-06-02 17:40:34.578715107 +0200
  71826. @@ -1,4 +1,5 @@
  71827. -/* Copyright (C) 1997, 1998, 2000, 2003, 2004 Free Software Foundation, Inc.
  71828. +/* Copyright (C) 1997,1998,2000,2003,2004,2005,2006
  71829. + Free Software Foundation, Inc.
  71830. This file is part of the GNU C Library.
  71831. The GNU C Library is free software; you can redistribute it and/or
  71832. @@ -12,9 +13,8 @@
  71833. Lesser General Public License for more details.
  71834. You should have received a copy of the GNU Lesser General Public
  71835. - License along with the GNU C Library; if not, write to the Free
  71836. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71837. - 02111-1307 USA. */
  71838. + License along with the GNU C Library; if not, see
  71839. + <http://www.gnu.org/licenses/>. */
  71840. /* Define the machine-dependent type `jmp_buf'. PowerPC version. */
  71841. #ifndef _BITS_SETJMP_H
  71842. @@ -31,30 +31,6 @@
  71843. #include <bits/wordsize.h>
  71844. -#if defined __USE_MISC || defined _ASM
  71845. -# define JB_GPR1 0 /* Also known as the stack pointer */
  71846. -# define JB_GPR2 1
  71847. -# define JB_LR 2 /* The address we will return to */
  71848. -# if __WORDSIZE == 64
  71849. -# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18*2 words total. */
  71850. -# define JB_CR 21 /* Condition code registers with the VRSAVE at */
  71851. - /* offset 172 (low half of the double word. */
  71852. -# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */
  71853. -# define JB_SIZE (64 * 8) /* As per PPC64-VMX ABI. */
  71854. -# define JB_VRSAVE 21 /* VRSAVE shares a double word with the CR at offset */
  71855. - /* 168 (high half of the double word). */
  71856. -# define JB_VRS 40 /* VRs 20 through 31 are saved, 12*4 words total. */
  71857. -# else
  71858. -# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total. */
  71859. -# define JB_CR 21 /* Condition code registers. */
  71860. -# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */
  71861. -# define JB_SIZE ((64 + (12 * 4)) * 4)
  71862. -# define JB_VRSAVE 62
  71863. -# define JB_VRS 64
  71864. -# endif
  71865. -#endif
  71866. -
  71867. -
  71868. /* The current powerpc 32-bit Altivec ABI specifies for SVR4 ABI and EABI
  71869. the vrsave must be at byte 248 & v20 at byte 256. So we must pad this
  71870. correctly on 32 bit. It also insists that vecregs are only gauranteed
  71871. @@ -62,19 +38,12 @@
  71872. We have to version the code because members like int __mask_was_saved
  71873. in the jmp_buf will move as jmp_buf is now larger than 248 bytes. We
  71874. cannot keep the altivec jmp_buf backward compatible with the jmp_buf. */
  71875. -#ifndef _ASM
  71876. -# if __WORDSIZE == 64
  71877. +#if __WORDSIZE == 64
  71878. typedef long int __jmp_buf[64] __attribute__ ((__aligned__ (16)));
  71879. -# else
  71880. +#else
  71881. /* The alignment is not essential, i.e.the buffer can be copied to a 4 byte
  71882. aligned buffer as per the ABI it is just added for performance reasons. */
  71883. typedef long int __jmp_buf[64 + (12 * 4)] __attribute__ ((__aligned__ (16)));
  71884. -# endif
  71885. #endif
  71886. -/* Test if longjmp to JMPBUF would unwind the frame
  71887. - containing a local variable at ADDRESS. */
  71888. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  71889. - ((void *) (address) < (void *) (jmpbuf)[JB_GPR1])
  71890. -
  71891. -#endif /* bits/setjmp.h */
  71892. +#endif /* bits/setjmp.h */
  71893. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/shm.h uClibc-git/libc/sysdeps/linux/powerpc/bits/shm.h
  71894. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  71895. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/shm.h 2014-06-02 17:40:34.578715107 +0200
  71896. @@ -13,9 +13,8 @@
  71897. Lesser General Public License for more details.
  71898. You should have received a copy of the GNU Lesser General Public
  71899. - License along with the GNU C Library; if not, write to the Free
  71900. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71901. - 02111-1307 USA. */
  71902. + License along with the GNU C Library; if not, see
  71903. + <http://www.gnu.org/licenses/>. */
  71904. #ifndef _SYS_SHM_H
  71905. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  71906. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/powerpc/bits/sigcontextinfo.h
  71907. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  71908. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/sigcontextinfo.h 2014-06-02 17:40:34.578715107 +0200
  71909. @@ -12,9 +12,8 @@
  71910. Lesser General Public License for more details.
  71911. You should have received a copy of the GNU Lesser General Public
  71912. - License along with the GNU C Library; if not, write to the Free
  71913. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71914. - 02111-1307 USA. */
  71915. + License along with the GNU C Library; if not, see
  71916. + <http://www.gnu.org/licenses/>. */
  71917. #include <signal.h>
  71918. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/powerpc/bits/stackinfo.h
  71919. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  71920. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/stackinfo.h 2014-06-02 17:40:34.578715107 +0200
  71921. @@ -12,9 +12,8 @@
  71922. Lesser General Public License for more details.
  71923. You should have received a copy of the GNU Lesser General Public
  71924. - License along with the GNU C Library; if not, write to the Free
  71925. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71926. - 02111-1307 USA. */
  71927. + License along with the GNU C Library; if not, see
  71928. + <http://www.gnu.org/licenses/>. */
  71929. /* This file contains a bit of information about the stack allocation
  71930. of the processor. */
  71931. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/stat.h uClibc-git/libc/sysdeps/linux/powerpc/bits/stat.h
  71932. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  71933. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/stat.h 2014-06-02 17:40:34.578715107 +0200
  71934. @@ -13,9 +13,8 @@
  71935. Lesser General Public License for more details.
  71936. You should have received a copy of the GNU Lesser General Public
  71937. - License along with the GNU C Library; if not, write to the Free
  71938. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71939. - 02111-1307 USA. */
  71940. + License along with the GNU C Library; if not, see
  71941. + <http://www.gnu.org/licenses/>. */
  71942. #ifndef _SYS_STAT_H
  71943. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  71944. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/syscalls.h uClibc-git/libc/sysdeps/linux/powerpc/bits/syscalls.h
  71945. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/syscalls.h 2012-05-15 09:20:09.000000000 +0200
  71946. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/syscalls.h 2014-06-02 17:40:34.578715107 +0200
  71947. @@ -12,9 +12,8 @@
  71948. Lesser General Public License for more details.
  71949. You should have received a copy of the GNU Lesser General Public
  71950. - License along with the GNU C Library; if not, write to the Free
  71951. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71952. - 02111-1307 USA. */
  71953. + License along with the GNU C Library; if not, see
  71954. + <http://www.gnu.org/licenses/>. */
  71955. #ifndef _BITS_SYSCALLS_H
  71956. #define _BITS_SYSCALLS_H
  71957. @@ -168,7 +167,7 @@
  71958. }) \
  71959. )
  71960. # define INTERNAL_SYSCALL_ERROR_P(val, err) \
  71961. - ((void) (val), __builtin_expect ((err) & (1 << 28), 0))
  71962. + ((void) (val), unlikely ((err) & (1 << 28)))
  71963. # define INTERNAL_SYSCALL_ERRNO(val, err) (val)
  71964. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/termios.h uClibc-git/libc/sysdeps/linux/powerpc/bits/termios.h
  71965. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
  71966. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/termios.h 2014-06-02 17:40:34.578715107 +0200
  71967. @@ -12,9 +12,8 @@
  71968. Lesser General Public License for more details.
  71969. You should have received a copy of the GNU Lesser General Public
  71970. - License along with the GNU C Library; if not, write to the Free
  71971. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71972. - 02111-1307 USA. */
  71973. + License along with the GNU C Library; if not, see
  71974. + <http://www.gnu.org/licenses/>. */
  71975. #ifndef _TERMIOS_H
  71976. # error "Never include <bits/termios.h> directly; use <termios.h> instead."
  71977. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h
  71978. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  71979. +++ uClibc-git/libc/sysdeps/linux/powerpc/bits/uClibc_arch_features.h 2014-06-02 17:40:34.578715107 +0200
  71980. @@ -11,8 +11,8 @@
  71981. /* can your target use syscall6() for mmap ? */
  71982. #define __UCLIBC_MMAP_HAS_6_ARGS__
  71983. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  71984. -#define __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  71985. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  71986. +#define __UCLIBC_SYSCALL_ALIGN_64BIT__
  71987. /* does your target have a broken create_module() ? */
  71988. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  71989. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/brk.S uClibc-git/libc/sysdeps/linux/powerpc/brk.S
  71990. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/brk.S 2012-05-15 09:20:09.000000000 +0200
  71991. +++ uClibc-git/libc/sysdeps/linux/powerpc/brk.S 2014-06-02 17:40:34.578715107 +0200
  71992. @@ -13,9 +13,8 @@
  71993. Lesser General Public License for more details.
  71994. You should have received a copy of the GNU Lesser General Public
  71995. - License along with the GNU C Library; if not, write to the Free
  71996. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  71997. - 02111-1307 USA. */
  71998. + License along with the GNU C Library; if not, see
  71999. + <http://www.gnu.org/licenses/>. */
  72000. #include <features.h>
  72001. #include "ppc_asm.h"
  72002. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/powerpc/bsd-setjmp.S
  72003. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  72004. +++ uClibc-git/libc/sysdeps/linux/powerpc/bsd-setjmp.S 2014-06-02 17:40:34.578715107 +0200
  72005. @@ -13,9 +13,8 @@
  72006. Lesser General Public License for more details.
  72007. You should have received a copy of the GNU Lesser General Public
  72008. - License along with the GNU C Library; if not, write to the Free
  72009. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72010. - 02111-1307 USA. */
  72011. + License along with the GNU C Library; if not, see
  72012. + <http://www.gnu.org/licenses/>. */
  72013. /* This just does a tail-call to `__sigsetjmp (ARG, 1)'.
  72014. We cannot do it in C because it must be a tail-call, so frame-unwinding
  72015. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/powerpc/bsd-_setjmp.S
  72016. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  72017. +++ uClibc-git/libc/sysdeps/linux/powerpc/bsd-_setjmp.S 2014-06-02 17:40:34.578715107 +0200
  72018. @@ -13,9 +13,8 @@
  72019. Lesser General Public License for more details.
  72020. You should have received a copy of the GNU Lesser General Public
  72021. - License along with the GNU C Library; if not, write to the Free
  72022. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72023. - 02111-1307 USA. */
  72024. + License along with the GNU C Library; if not, see
  72025. + <http://www.gnu.org/licenses/>. */
  72026. /* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
  72027. We cannot do it in C because it must be a tail-call, so frame-unwinding
  72028. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/clone.S uClibc-git/libc/sysdeps/linux/powerpc/clone.S
  72029. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/clone.S 2012-05-15 09:20:09.000000000 +0200
  72030. +++ uClibc-git/libc/sysdeps/linux/powerpc/clone.S 2014-06-02 17:40:34.578715107 +0200
  72031. @@ -13,9 +13,8 @@
  72032. Lesser General Public License for more details.
  72033. You should have received a copy of the GNU Lesser General Public
  72034. - License along with the GNU C Library; if not, write to the Free
  72035. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72036. - 02111-1307 USA. */
  72037. + License along with the GNU C Library; if not, see
  72038. + <http://www.gnu.org/licenses/>. */
  72039. #include <features.h>
  72040. #define _ERRNO_H 1
  72041. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/crt1.S uClibc-git/libc/sysdeps/linux/powerpc/crt1.S
  72042. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/crt1.S 2012-05-15 09:20:09.000000000 +0200
  72043. +++ uClibc-git/libc/sysdeps/linux/powerpc/crt1.S 2014-06-02 17:40:34.578715107 +0200
  72044. @@ -12,8 +12,8 @@
  72045. * for more details.
  72046. *
  72047. * You should have received a copy of the GNU Library General Public License
  72048. - * along with this program; if not, write to the Free Software Foundation,
  72049. - * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  72050. + * along with this program; see the file COPYING.LIB. If not, see
  72051. + * <http://www.gnu.org/licenses/>.
  72052. */
  72053. #include <features.h>
  72054. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/fenv.h uClibc-git/libc/sysdeps/linux/powerpc/fenv.h
  72055. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/fenv.h 2012-05-15 09:20:09.000000000 +0200
  72056. +++ uClibc-git/libc/sysdeps/linux/powerpc/fenv.h 2014-06-02 17:40:34.578715107 +0200
  72057. @@ -12,9 +12,8 @@
  72058. Lesser General Public License for more details.
  72059. You should have received a copy of the GNU Lesser General Public
  72060. - License along with the GNU C Library; if not, write to the Free
  72061. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72062. - 02111-1307 USA. */
  72063. + License along with the GNU C Library; if not, see
  72064. + <http://www.gnu.org/licenses/>. */
  72065. /*
  72066. * ISO C99 7.6: Floating-point environment <fenv.h>
  72067. @@ -73,7 +72,7 @@
  72068. /* Set complete status for exceptions indicated by EXCEPTS according to
  72069. the representation in the object pointed to by FLAGP. */
  72070. -extern int fesetexceptflag (__const fexcept_t *__flagp, int __excepts) __THROW;
  72071. +extern int fesetexceptflag (const fexcept_t *__flagp, int __excepts) __THROW;
  72072. /* Determine which of subset of the exceptions specified by EXCEPTS are
  72073. currently set. */
  72074. @@ -102,12 +101,12 @@
  72075. /* Establish the floating-point environment represented by the object
  72076. pointed to by ENVP. */
  72077. -extern int fesetenv (__const fenv_t *__envp) __THROW;
  72078. +extern int fesetenv (const fenv_t *__envp) __THROW;
  72079. /* Save current exceptions in temporary storage, install environment
  72080. represented by object pointed to by ENVP and raise exceptions
  72081. according to saved exceptions. */
  72082. -extern int feupdateenv (__const fenv_t *__envp) __THROW;
  72083. +extern int feupdateenv (const fenv_t *__envp) __THROW;
  72084. /* Include optimization. */
  72085. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/fpu_control.h uClibc-git/libc/sysdeps/linux/powerpc/fpu_control.h
  72086. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  72087. +++ uClibc-git/libc/sysdeps/linux/powerpc/fpu_control.h 2014-06-02 17:40:34.578715107 +0200
  72088. @@ -14,9 +14,8 @@
  72089. Lesser General Public License for more details.
  72090. You should have received a copy of the GNU Lesser General Public
  72091. - License along with the GNU C Library; if not, write to the Free
  72092. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72093. - 02111-1307 USA. */
  72094. + License along with the GNU C Library; if not, see
  72095. + <http://www.gnu.org/licenses/>. */
  72096. #ifndef _FPU_CONTROL_H
  72097. #define _FPU_CONTROL_H
  72098. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/ioctl.c uClibc-git/libc/sysdeps/linux/powerpc/ioctl.c
  72099. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/ioctl.c 2012-05-15 09:20:09.000000000 +0200
  72100. +++ uClibc-git/libc/sysdeps/linux/powerpc/ioctl.c 2014-06-02 17:40:34.598715217 +0200
  72101. @@ -12,9 +12,8 @@
  72102. Lesser General Public License for more details.
  72103. You should have received a copy of the GNU Lesser General Public
  72104. - License along with the GNU C Library; if not, write to the Free
  72105. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72106. - 02111-1307 USA. */
  72107. + License along with the GNU C Library; if not, see
  72108. + <http://www.gnu.org/licenses/>. */
  72109. #include <stdarg.h>
  72110. #include <termios.h>
  72111. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/powerpc/jmpbuf-offsets.h
  72112. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  72113. +++ uClibc-git/libc/sysdeps/linux/powerpc/jmpbuf-offsets.h 2014-06-02 17:40:34.598715217 +0200
  72114. @@ -0,0 +1,40 @@
  72115. +/* Private macros for accessing __jmp_buf contents. PowerPC version.
  72116. + Copyright (C) 2006 Free Software Foundation, Inc.
  72117. + This file is part of the GNU C Library.
  72118. +
  72119. + The GNU C Library is free software; you can redistribute it and/or
  72120. + modify it under the terms of the GNU Lesser General Public
  72121. + License as published by the Free Software Foundation; either
  72122. + version 2.1 of the License, or (at your option) any later version.
  72123. +
  72124. + The GNU C Library is distributed in the hope that it will be useful,
  72125. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  72126. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  72127. + Lesser General Public License for more details.
  72128. +
  72129. + You should have received a copy of the GNU Lesser General Public
  72130. + License along with the GNU C Library; if not, see
  72131. + <http://www.gnu.org/licenses/>. */
  72132. +
  72133. +#include <bits/wordsize.h>
  72134. +
  72135. +#define JB_GPR1 0 /* Also known as the stack pointer */
  72136. +#define JB_GPR2 1
  72137. +#define JB_LR 2 /* The address we will return to */
  72138. +#if __WORDSIZE == 64
  72139. +# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18*2 words total. */
  72140. +# define JB_CR 21 /* Condition code registers with the VRSAVE at */
  72141. + /* offset 172 (low half of the double word. */
  72142. +# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */
  72143. +# define JB_SIZE (64 * 8) /* As per PPC64-VMX ABI. */
  72144. +# define JB_VRSAVE 21 /* VRSAVE shares a double word with the CR at offset */
  72145. + /* 168 (high half of the double word). */
  72146. +# define JB_VRS 40 /* VRs 20 through 31 are saved, 12*4 words total. */
  72147. +#else
  72148. +# define JB_GPRS 3 /* GPRs 14 through 31 are saved, 18 in total. */
  72149. +# define JB_CR 21 /* Condition code registers. */
  72150. +# define JB_FPRS 22 /* FPRs 14 through 31 are saved, 18*2 words total. */
  72151. +# define JB_SIZE ((64 + (12 * 4)) * 4)
  72152. +# define JB_VRSAVE 62
  72153. +# define JB_VRS 64
  72154. +#endif
  72155. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/powerpc/jmpbuf-unwind.h
  72156. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  72157. +++ uClibc-git/libc/sysdeps/linux/powerpc/jmpbuf-unwind.h 2014-06-02 17:40:34.598715217 +0200
  72158. @@ -0,0 +1,23 @@
  72159. +/*
  72160. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  72161. + *
  72162. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  72163. + */
  72164. +#include <setjmp.h>
  72165. +#include <jmpbuf-offsets.h>
  72166. +
  72167. +/* Test if longjmp to JMPBUF would unwind the frame
  72168. + containing a local variable at ADDRESS. */
  72169. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  72170. + ((void *) (address) < (void *) (jmpbuf)[JB_GPR1])
  72171. +
  72172. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  72173. +#include <stdint.h>
  72174. +#include <unwind.h>
  72175. +
  72176. +#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
  72177. + _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
  72178. +
  72179. +#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  72180. + ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_GPR1] - (_adj))
  72181. +#endif
  72182. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/__longjmp.S uClibc-git/libc/sysdeps/linux/powerpc/__longjmp.S
  72183. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  72184. +++ uClibc-git/libc/sysdeps/linux/powerpc/__longjmp.S 2014-06-02 17:40:34.574715084 +0200
  72185. @@ -15,15 +15,12 @@
  72186. Lesser General Public License for more details.
  72187. You should have received a copy of the GNU Lesser General Public
  72188. - License along with the GNU C Library; if not, write to the Free
  72189. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72190. - 02111-1307 USA. */
  72191. + License along with the GNU C Library; if not, see
  72192. + <http://www.gnu.org/licenses/>. */
  72193. #include <features.h>
  72194. #include "ppc_asm.h"
  72195. -#define _ASM
  72196. -#define _SETJMP_H
  72197. -#include <bits/setjmp.h>
  72198. +#include <jmpbuf-offsets.h>
  72199. #if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
  72200. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/Makefile.arch uClibc-git/libc/sysdeps/linux/powerpc/Makefile.arch
  72201. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  72202. +++ uClibc-git/libc/sysdeps/linux/powerpc/Makefile.arch 2014-06-02 17:40:34.574715084 +0200
  72203. @@ -5,18 +5,13 @@
  72204. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  72205. #
  72206. -CSRC := __syscall_error.c pread_write.c ioctl.c
  72207. +CSRC-y := __syscall_error.c ioctl.c
  72208. -ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
  72209. -CSRC += posix_fadvise.c posix_fadvise64.c
  72210. -endif
  72211. -
  72212. -SSRC := \
  72213. +SSRC-y := \
  72214. __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S brk.S \
  72215. __uClibc_syscall.S syscall.S
  72216. -ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  72217. -SSRC += clone.S vfork.S
  72218. -endif
  72219. +
  72220. +SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += clone.S vfork.S
  72221. ifeq ($(CONFIG_E500),y)
  72222. ARCH_HEADERS := fenv.h
  72223. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/posix_fadvise64.c uClibc-git/libc/sysdeps/linux/powerpc/posix_fadvise64.c
  72224. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/posix_fadvise64.c 2012-05-15 09:20:09.000000000 +0200
  72225. +++ uClibc-git/libc/sysdeps/linux/powerpc/posix_fadvise64.c 1970-01-01 01:00:00.000000000 +0100
  72226. @@ -1,69 +0,0 @@
  72227. -/* vi: set sw=4 ts=4: */
  72228. -/*
  72229. - * posix_fadvise64() for uClibc
  72230. - * http://www.opengroup.org/onlinepubs/009695399/functions/posix_fadvise.html
  72231. - *
  72232. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  72233. - *
  72234. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  72235. - */
  72236. -
  72237. -#include <features.h>
  72238. -#include <unistd.h>
  72239. -#include <errno.h>
  72240. -#include <endian.h>
  72241. -#include <stdint.h>
  72242. -#include <sys/types.h>
  72243. -#include <sys/syscall.h>
  72244. -#include <fcntl.h>
  72245. -
  72246. -#ifdef __UCLIBC_HAS_LFS__
  72247. -#ifdef __NR_fadvise64_64
  72248. -
  72249. -/* 64 bit implementation is cake ... or more like pie ... */
  72250. -#if __WORDSIZE == 64
  72251. -
  72252. -#define __NR_posix_fadvise64 __NR_fadvise64_64
  72253. -
  72254. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)
  72255. -{
  72256. - if (len != (off_t) len)
  72257. - return EOVERFLOW;
  72258. - INTERNAL_SYSCALL_DECL (err);
  72259. - int ret = INTERNAL_SYSCALL (posix_fadvise64, err, 6, fd, 0,
  72260. - __LONG_LONG_PAIR ((long) (offset >> 32), (long) offset),
  72261. - (off_t) len, advise);
  72262. - if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
  72263. - return 0;
  72264. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  72265. -}
  72266. -
  72267. -/* 32 bit implementation is kind of a pita */
  72268. -#elif __WORDSIZE == 32
  72269. -
  72270. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)
  72271. -{
  72272. - INTERNAL_SYSCALL_DECL (err);
  72273. - int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, advise,
  72274. - __LONG_LONG_PAIR((long) (offset >> 32), (long) offset ),
  72275. - __LONG_LONG_PAIR((long) (len >> 32), (long) len));
  72276. - if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
  72277. - return 0;
  72278. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  72279. -}
  72280. -
  72281. -#else
  72282. -#error your machine is neither 32 bit or 64 bit ... it must be magical
  72283. -#endif
  72284. -
  72285. -#elif !defined __NR_fadvise64
  72286. -/* This is declared as a strong alias in posix_fadvise.c if __NR_fadvise64
  72287. - * is defined.
  72288. - */
  72289. -int posix_fadvise64(int fd, __off64_t offset, __off64_t len, int advise)
  72290. -{
  72291. -#warning This is not correct as far as SUSv3 is concerned.
  72292. - return ENOSYS;
  72293. -}
  72294. -#endif /* __NR_fadvise64_64 */
  72295. -#endif /* __UCLIBC_HAS_LFS__ */
  72296. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/posix_fadvise.c uClibc-git/libc/sysdeps/linux/powerpc/posix_fadvise.c
  72297. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/posix_fadvise.c 2012-05-15 09:20:09.000000000 +0200
  72298. +++ uClibc-git/libc/sysdeps/linux/powerpc/posix_fadvise.c 1970-01-01 01:00:00.000000000 +0100
  72299. @@ -1,36 +0,0 @@
  72300. -/* vi: set sw=4 ts=4: */
  72301. -/*
  72302. - * posix_fadvise() for uClibc
  72303. - * http://www.opengroup.org/onlinepubs/009695399/functions/posix_fadvise.html
  72304. - *
  72305. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  72306. - *
  72307. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  72308. - */
  72309. -
  72310. -#include <sys/syscall.h>
  72311. -#include <fcntl.h>
  72312. -
  72313. -#ifdef __NR_fadvise64
  72314. -#define __NR_posix_fadvise __NR_fadvise64
  72315. -int posix_fadvise(int fd, off_t offset, off_t len, int advice)
  72316. -{
  72317. - INTERNAL_SYSCALL_DECL(err);
  72318. - int ret = (int) (INTERNAL_SYSCALL(posix_fadvise, err, 6, fd, 0,
  72319. - __LONG_LONG_PAIR (offset >> 31, offset), len, advice));
  72320. - if (INTERNAL_SYSCALL_ERROR_P (ret, err))
  72321. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  72322. - return 0;
  72323. -}
  72324. -
  72325. -#if defined __UCLIBC_HAS_LFS__ && (!defined __NR_fadvise64_64 || !defined _syscall6)
  72326. -strong_alias(posix_fadvise,posix_fadvise64)
  72327. -#endif
  72328. -
  72329. -#else
  72330. -int posix_fadvise(int fd attribute_unused, off_t offset attribute_unused, off_t len attribute_unused, int advice attribute_unused)
  72331. -{
  72332. -#warning This is not correct as far as SUSv3 is concerned.
  72333. - return ENOSYS;
  72334. -}
  72335. -#endif
  72336. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/powerpc32/sysdep.h uClibc-git/libc/sysdeps/linux/powerpc/powerpc32/sysdep.h
  72337. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/powerpc32/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  72338. +++ uClibc-git/libc/sysdeps/linux/powerpc/powerpc32/sysdep.h 2014-06-02 17:40:34.598715217 +0200
  72339. @@ -13,9 +13,8 @@
  72340. Lesser General Public License for more details.
  72341. You should have received a copy of the GNU Lesser General Public
  72342. - License along with the GNU C Library; if not, write to the Free
  72343. - Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
  72344. - 02110-1301 USA. */
  72345. + License along with the GNU C Library; if not, see
  72346. + <http://www.gnu.org/licenses/>. */
  72347. #ifdef __ASSEMBLER__
  72348. @@ -133,6 +132,7 @@
  72349. #define PSEUDO_RET_ERRVAL \
  72350. blr
  72351. +#undef ret_ERRVAL
  72352. #define ret_ERRVAL PSEUDO_RET_ERRVAL
  72353. #undef PSEUDO_END_ERRVAL
  72354. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/powerpc64/sysdep.h uClibc-git/libc/sysdeps/linux/powerpc/powerpc64/sysdep.h
  72355. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/powerpc64/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  72356. +++ uClibc-git/libc/sysdeps/linux/powerpc/powerpc64/sysdep.h 2014-06-02 17:40:34.598715217 +0200
  72357. @@ -13,9 +13,8 @@
  72358. Lesser General Public License for more details.
  72359. You should have received a copy of the GNU Lesser General Public
  72360. - License along with the GNU C Library; if not, write to the Free
  72361. - Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
  72362. - 02110-1301 USA. */
  72363. + License along with the GNU C Library; if not, see
  72364. + <http://www.gnu.org/licenses/>. */
  72365. #ifdef __ELF__
  72366. @@ -228,6 +227,7 @@
  72367. #define PSEUDO_RET_ERRVAL \
  72368. blr
  72369. +#undef ret_ERRVAL
  72370. #define ret_ERRVAL PSEUDO_RET_ERRVAL
  72371. #undef PSEUDO_END_ERRVAL
  72372. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/ppc_asm.h uClibc-git/libc/sysdeps/linux/powerpc/ppc_asm.h
  72373. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/ppc_asm.h 2012-05-15 09:20:09.000000000 +0200
  72374. +++ uClibc-git/libc/sysdeps/linux/powerpc/ppc_asm.h 2014-06-02 17:40:34.598715217 +0200
  72375. @@ -12,9 +12,8 @@
  72376. Lesser General Public License for more details.
  72377. You should have received a copy of the GNU Lesser General Public
  72378. - License along with the GNU C Library; if not, write to the Free
  72379. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72380. - 02111-1307 USA. */
  72381. + License along with the GNU C Library; if not, see
  72382. + <http://www.gnu.org/licenses/>. */
  72383. #ifdef __ASSEMBLER__
  72384. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/pread_write.c uClibc-git/libc/sysdeps/linux/powerpc/pread_write.c
  72385. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/pread_write.c 2012-05-15 09:20:09.000000000 +0200
  72386. +++ uClibc-git/libc/sysdeps/linux/powerpc/pread_write.c 1970-01-01 01:00:00.000000000 +0100
  72387. @@ -1,183 +0,0 @@
  72388. -/* vi: set sw=4 ts=4:
  72389. - *
  72390. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  72391. - *
  72392. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  72393. - */
  72394. -/* Based in part on the files
  72395. - * ./sysdeps/unix/sysv/linux/pwrite.c,
  72396. - * ./sysdeps/unix/sysv/linux/pread.c,
  72397. - * sysdeps/posix/pread.c
  72398. - * sysdeps/posix/pwrite.c
  72399. - * from GNU libc 2.2.5, but reworked considerably...
  72400. - */
  72401. -
  72402. -#include <sys/syscall.h>
  72403. -#include <unistd.h>
  72404. -#include <endian.h>
  72405. -
  72406. -#ifndef __UCLIBC_HAS_LFS__
  72407. -# define off64_t off_t
  72408. -#endif
  72409. -
  72410. -#ifdef __NR_pread
  72411. -extern __typeof(pread) __libc_pread;
  72412. -# define __NR___syscall_pread __NR_pread
  72413. -static __inline__ _syscall6(ssize_t, __syscall_pread, int, fd,
  72414. - void *, buf, size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
  72415. -
  72416. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  72417. -{
  72418. - return(__syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 31, offset)));
  72419. -}
  72420. -weak_alias(__libc_pread,pread)
  72421. -
  72422. -# ifdef __UCLIBC_HAS_LFS__
  72423. -extern __typeof(pread64) __libc_pread64;
  72424. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  72425. -{
  72426. - return(__syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 32, offset)));
  72427. -}
  72428. -weak_alias(__libc_pread64,pread64)
  72429. -# endif /* __UCLIBC_HAS_LFS__ */
  72430. -#endif /* __NR_pread */
  72431. -
  72432. -
  72433. -#ifdef __NR_pwrite
  72434. -extern __typeof(pwrite) __libc_pwrite;
  72435. -# define __NR___syscall_pwrite __NR_pwrite
  72436. -static __inline__ _syscall6(ssize_t, __syscall_pwrite, int, fd,
  72437. - const void *, buf, size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
  72438. -
  72439. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  72440. -{
  72441. - return(__syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 31, offset)));
  72442. -}
  72443. -weak_alias(__libc_pwrite,pwrite)
  72444. -
  72445. -# ifdef __UCLIBC_HAS_LFS__
  72446. -extern __typeof(pwrite64) __libc_pwrite64;
  72447. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  72448. -{
  72449. - return(__syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 32, offset)));
  72450. -}
  72451. -weak_alias(__libc_pwrite64,pwrite64)
  72452. -# endif /* __UCLIBC_HAS_LFS__ */
  72453. -#endif /* __NR_pwrite */
  72454. -
  72455. -
  72456. -
  72457. -#if ! defined __NR_pread || ! defined __NR_pwrite
  72458. -
  72459. -static ssize_t __fake_pread_write(int fd, void *buf,
  72460. - size_t count, off_t offset, int do_pwrite)
  72461. -{
  72462. - int save_errno;
  72463. - ssize_t result;
  72464. - off_t old_offset;
  72465. -
  72466. - /* Since we must not change the file pointer preserve the
  72467. - * value so that we can restore it later. */
  72468. - if ((old_offset=lseek(fd, 0, SEEK_CUR)) == (off_t) -1)
  72469. - return -1;
  72470. -
  72471. - /* Set to wanted position. */
  72472. - if (lseek (fd, offset, SEEK_SET) == (off_t) -1)
  72473. - return -1;
  72474. -
  72475. - if (do_pwrite == 1) {
  72476. - /* Write the data. */
  72477. - result = write(fd, buf, count);
  72478. - } else {
  72479. - /* Read the data. */
  72480. - result = read(fd, buf, count);
  72481. - }
  72482. -
  72483. - /* Now we have to restore the position. If this fails we
  72484. - * have to return this as an error. */
  72485. - save_errno = errno;
  72486. - if (lseek(fd, old_offset, SEEK_SET) == (off_t) -1)
  72487. - {
  72488. - if (result == -1)
  72489. - __set_errno(save_errno);
  72490. - return -1;
  72491. - }
  72492. - __set_errno(save_errno);
  72493. - return(result);
  72494. -}
  72495. -
  72496. -# ifdef __UCLIBC_HAS_LFS__
  72497. -
  72498. -static ssize_t __fake_pread_write64(int fd, void *buf,
  72499. - size_t count, off64_t offset, int do_pwrite)
  72500. -{
  72501. - int save_errno;
  72502. - ssize_t result;
  72503. - off64_t old_offset;
  72504. -
  72505. - /* Since we must not change the file pointer preserve the
  72506. - * value so that we can restore it later. */
  72507. - if ((old_offset=lseek64(fd, 0, SEEK_CUR)) == (off64_t) -1)
  72508. - return -1;
  72509. -
  72510. - /* Set to wanted position. */
  72511. - if (lseek64(fd, offset, SEEK_SET) == (off64_t) -1)
  72512. - return -1;
  72513. -
  72514. - if (do_pwrite == 1) {
  72515. - /* Write the data. */
  72516. - result = write(fd, buf, count);
  72517. - } else {
  72518. - /* Read the data. */
  72519. - result = read(fd, buf, count);
  72520. - }
  72521. -
  72522. - /* Now we have to restore the position. */
  72523. - save_errno = errno;
  72524. - if (lseek64 (fd, old_offset, SEEK_SET) == (off64_t) -1) {
  72525. - if (result == -1)
  72526. - __set_errno (save_errno);
  72527. - return -1;
  72528. - }
  72529. - __set_errno (save_errno);
  72530. - return result;
  72531. -}
  72532. -# endif /* __UCLIBC_HAS_LFS__ */
  72533. -#endif /* ! defined __NR_pread || ! defined __NR_pwrite */
  72534. -
  72535. -#ifndef __NR_pread
  72536. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset);
  72537. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  72538. -{
  72539. - return(__fake_pread_write(fd, buf, count, offset, 0));
  72540. -}
  72541. -weak_alias(__libc_pread,pread)
  72542. -
  72543. -# ifdef __UCLIBC_HAS_LFS__
  72544. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset);
  72545. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  72546. -{
  72547. - return(__fake_pread_write64(fd, buf, count, offset, 0));
  72548. -}
  72549. -weak_alias(__libc_pread64,pread64)
  72550. -# endif /* __UCLIBC_HAS_LFS__ */
  72551. -#endif /* ! __NR_pread */
  72552. -
  72553. -
  72554. -#ifndef __NR_pwrite
  72555. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset);
  72556. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  72557. -{
  72558. - return(__fake_pread_write(fd, (void*)buf, count, offset, 1));
  72559. -}
  72560. -weak_alias(__libc_pwrite,pwrite)
  72561. -
  72562. -# ifdef __UCLIBC_HAS_LFS__
  72563. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset);
  72564. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  72565. -{
  72566. - return(__fake_pread_write64(fd, (void*)buf, count, offset, 1));
  72567. -}
  72568. -weak_alias(__libc_pwrite64,pwrite64)
  72569. -# endif /* __UCLIBC_HAS_LFS__ */
  72570. -#endif /* ! __NR_pwrite */
  72571. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/setjmp.S uClibc-git/libc/sysdeps/linux/powerpc/setjmp.S
  72572. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  72573. +++ uClibc-git/libc/sysdeps/linux/powerpc/setjmp.S 2014-06-02 17:40:34.598715217 +0200
  72574. @@ -15,15 +15,12 @@
  72575. Lesser General Public License for more details.
  72576. You should have received a copy of the GNU Lesser General Public
  72577. - License along with the GNU C Library; if not, write to the Free
  72578. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72579. - 02111-1307 USA. */
  72580. + License along with the GNU C Library; if not, see
  72581. + <http://www.gnu.org/licenses/>. */
  72582. #include <features.h>
  72583. #include "ppc_asm.h"
  72584. -#define _ASM
  72585. -#define _SETJMP_H
  72586. -#include <bits/setjmp.h>
  72587. +#include <jmpbuf-offsets.h>
  72588. #if defined __UCLIBC_HAS_FLOATS__ && ! defined __UCLIBC_HAS_SOFT_FLOAT__
  72589. #define FP(x...) x
  72590. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/procfs.h uClibc-git/libc/sysdeps/linux/powerpc/sys/procfs.h
  72591. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  72592. +++ uClibc-git/libc/sysdeps/linux/powerpc/sys/procfs.h 2014-06-02 17:40:34.598715217 +0200
  72593. @@ -12,9 +12,8 @@
  72594. Lesser General Public License for more details.
  72595. You should have received a copy of the GNU Lesser General Public
  72596. - License along with the GNU C Library; if not, write to the Free
  72597. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72598. - 02111-1307 USA. */
  72599. + License along with the GNU C Library; if not, see
  72600. + <http://www.gnu.org/licenses/>. */
  72601. #ifndef _SYS_PROCFS_H
  72602. #define _SYS_PROCFS_H 1
  72603. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/ptrace.h uClibc-git/libc/sysdeps/linux/powerpc/sys/ptrace.h
  72604. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  72605. +++ uClibc-git/libc/sysdeps/linux/powerpc/sys/ptrace.h 2014-06-02 17:40:34.598715217 +0200
  72606. @@ -13,9 +13,8 @@
  72607. Lesser General Public License for more details.
  72608. You should have received a copy of the GNU Lesser General Public
  72609. - License along with the GNU C Library; if not, write to the Free
  72610. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72611. - 02111-1307 USA. */
  72612. + License along with the GNU C Library; if not, see
  72613. + <http://www.gnu.org/licenses/>. */
  72614. #ifndef _SYS_PTRACE_H
  72615. #define _SYS_PTRACE_H 1
  72616. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/ucontext.h uClibc-git/libc/sysdeps/linux/powerpc/sys/ucontext.h
  72617. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  72618. +++ uClibc-git/libc/sysdeps/linux/powerpc/sys/ucontext.h 2014-06-02 17:40:34.598715217 +0200
  72619. @@ -12,9 +12,8 @@
  72620. Lesser General Public License for more details.
  72621. You should have received a copy of the GNU Lesser General Public
  72622. - License along with the GNU C Library; if not, write to the Free
  72623. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72624. - 02111-1307 USA. */
  72625. + License along with the GNU C Library; if not, see
  72626. + <http://www.gnu.org/licenses/>. */
  72627. #ifndef _SYS_UCONTEXT_H
  72628. #define _SYS_UCONTEXT_H 1
  72629. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/user.h uClibc-git/libc/sysdeps/linux/powerpc/sys/user.h
  72630. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  72631. +++ uClibc-git/libc/sysdeps/linux/powerpc/sys/user.h 2014-06-02 17:40:34.598715217 +0200
  72632. @@ -12,9 +12,8 @@
  72633. Lesser General Public License for more details.
  72634. You should have received a copy of the GNU Lesser General Public
  72635. - License along with the GNU C Library; if not, write to the Free
  72636. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72637. - 02111-1307 USA. */
  72638. + License along with the GNU C Library; if not, see
  72639. + <http://www.gnu.org/licenses/>. */
  72640. #ifndef _SYS_USER_H
  72641. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/syscall.S uClibc-git/libc/sysdeps/linux/powerpc/syscall.S
  72642. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/syscall.S 2012-05-15 09:20:09.000000000 +0200
  72643. +++ uClibc-git/libc/sysdeps/linux/powerpc/syscall.S 2014-06-02 17:40:34.598715217 +0200
  72644. @@ -12,9 +12,8 @@
  72645. Lesser General Public License for more details.
  72646. You should have received a copy of the GNU Lesser General Public
  72647. - License along with the GNU C Library; if not, write to the Free
  72648. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72649. - 02111-1307 USA. */
  72650. + License along with the GNU C Library; if not, see
  72651. + <http://www.gnu.org/licenses/>. */
  72652. #include <features.h>
  72653. @@ -30,6 +29,7 @@
  72654. mr 5,6
  72655. mr 6,7
  72656. mr 7,8
  72657. + mr 8,9
  72658. sc
  72659. bnslr;
  72660. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sysdep.h uClibc-git/libc/sysdeps/linux/powerpc/sysdep.h
  72661. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  72662. +++ uClibc-git/libc/sysdeps/linux/powerpc/sysdep.h 2014-06-02 17:40:34.598715217 +0200
  72663. @@ -12,9 +12,8 @@
  72664. Lesser General Public License for more details.
  72665. You should have received a copy of the GNU Lesser General Public
  72666. - License along with the GNU C Library; if not, write to the Free
  72667. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72668. - 02111-1307 USA. */
  72669. + License along with the GNU C Library; if not, see
  72670. + <http://www.gnu.org/licenses/>. */
  72671. #include <common/sysdep.h>
  72672. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/vfork.S uClibc-git/libc/sysdeps/linux/powerpc/vfork.S
  72673. --- uClibc-0.9.33.2/libc/sysdeps/linux/powerpc/vfork.S 2012-05-15 09:20:09.000000000 +0200
  72674. +++ uClibc-git/libc/sysdeps/linux/powerpc/vfork.S 2014-06-02 17:40:34.598715217 +0200
  72675. @@ -27,4 +27,4 @@
  72676. .size __vfork,.-__vfork
  72677. weak_alias(__vfork,vfork)
  72678. -libc_hidden_weak(vfork)
  72679. +libc_hidden_def(vfork)
  72680. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/README uClibc-git/libc/sysdeps/linux/README
  72681. --- uClibc-0.9.33.2/libc/sysdeps/linux/README 2012-05-15 09:20:09.000000000 +0200
  72682. +++ uClibc-git/libc/sysdeps/linux/README 2014-06-02 17:40:34.258713336 +0200
  72683. @@ -4,4 +4,7 @@
  72684. to add that support.
  72685. All stuff that is not at all dependent on a particular Linux architecture
  72686. -goes in the 'common' directory.
  72687. +goes in the 'common' directory. However, for new architectures which are
  72688. +using the generic syscalls in the Linux Kernel, the 'common-generic'
  72689. +directory should be used instead as they all use identical interfaces for
  72690. +the system calls.
  72691. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/atomic.h uClibc-git/libc/sysdeps/linux/sh/bits/atomic.h
  72692. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  72693. +++ uClibc-git/libc/sysdeps/linux/sh/bits/atomic.h 2014-06-02 17:40:34.606715261 +0200
  72694. @@ -13,9 +13,8 @@
  72695. Lesser General Public License for more details.
  72696. You should have received a copy of the GNU Lesser General Public
  72697. - License along with the GNU C Library; if not, write to the Free
  72698. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72699. - 02111-1307 USA. */
  72700. + License along with the GNU C Library; if not, see
  72701. + <http://www.gnu.org/licenses/>. */
  72702. #include <stdint.h>
  72703. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/fcntl.h uClibc-git/libc/sysdeps/linux/sh/bits/fcntl.h
  72704. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  72705. +++ uClibc-git/libc/sysdeps/linux/sh/bits/fcntl.h 2014-06-02 17:40:34.606715261 +0200
  72706. @@ -14,9 +14,8 @@
  72707. Lesser General Public License for more details.
  72708. You should have received a copy of the GNU Lesser General Public
  72709. - License along with the GNU C Library; if not, write to the Free
  72710. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72711. - 02111-1307 USA. */
  72712. + License along with the GNU C Library; if not, see
  72713. + <http://www.gnu.org/licenses/>. */
  72714. #ifndef _FCNTL_H
  72715. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  72716. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/fenv.h uClibc-git/libc/sysdeps/linux/sh/bits/fenv.h
  72717. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  72718. +++ uClibc-git/libc/sysdeps/linux/sh/bits/fenv.h 2014-06-02 17:40:34.606715261 +0200
  72719. @@ -12,9 +12,8 @@
  72720. Lesser General Public License for more details.
  72721. You should have received a copy of the GNU Lesser General Public
  72722. - License along with the GNU C Library; if not, write to the Free
  72723. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72724. - 02111-1307 USA. */
  72725. + License along with the GNU C Library; if not, see
  72726. + <http://www.gnu.org/licenses/>. */
  72727. #ifndef _FENV_H
  72728. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  72729. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/huge_val.h uClibc-git/libc/sysdeps/linux/sh/bits/huge_val.h
  72730. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/huge_val.h 2012-05-15 09:20:09.000000000 +0200
  72731. +++ uClibc-git/libc/sysdeps/linux/sh/bits/huge_val.h 2014-06-02 17:40:34.606715261 +0200
  72732. @@ -16,9 +16,8 @@
  72733. Lesser General Public License for more details.
  72734. You should have received a copy of the GNU Lesser General Public
  72735. - License along with the GNU C Library; if not, write to the Free
  72736. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72737. - 02111-1307 USA. */
  72738. + License along with the GNU C Library; if not, see
  72739. + <http://www.gnu.org/licenses/>. */
  72740. #ifndef _MATH_H
  72741. # error "Never use <bits/huge_val.h> directly; include <math.h> instead."
  72742. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/sh/bits/kernel_types.h
  72743. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  72744. +++ uClibc-git/libc/sysdeps/linux/sh/bits/kernel_types.h 2014-06-02 17:40:34.606715261 +0200
  72745. @@ -32,6 +32,8 @@
  72746. typedef unsigned short __kernel_old_uid_t;
  72747. typedef unsigned short __kernel_old_gid_t;
  72748. typedef __kernel_dev_t __kernel_old_dev_t;
  72749. +typedef long __kernel_long_t;
  72750. +typedef unsigned long __kernel_ulong_t;
  72751. typedef long long __kernel_loff_t;
  72752. typedef struct {
  72753. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/mathdef.h uClibc-git/libc/sysdeps/linux/sh/bits/mathdef.h
  72754. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  72755. +++ uClibc-git/libc/sysdeps/linux/sh/bits/mathdef.h 2014-06-02 17:40:34.606715261 +0200
  72756. @@ -12,9 +12,8 @@
  72757. Lesser General Public License for more details.
  72758. You should have received a copy of the GNU Lesser General Public
  72759. - License along with the GNU C Library; if not, write to the Free
  72760. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72761. - 02111-1307 USA. */
  72762. + License along with the GNU C Library; if not, see
  72763. + <http://www.gnu.org/licenses/>. */
  72764. #if !defined _MATH_H && !defined _COMPLEX_H
  72765. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  72766. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/setjmp.h uClibc-git/libc/sysdeps/linux/sh/bits/setjmp.h
  72767. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  72768. +++ uClibc-git/libc/sysdeps/linux/sh/bits/setjmp.h 2014-06-02 17:40:34.606715261 +0200
  72769. @@ -1,4 +1,4 @@
  72770. -/* Copyright (C) 1999, 2000, 2003, 2005 Free Software Foundation, Inc.
  72771. +/* Copyright (C) 1999,2000,2003,2005,2006 Free Software Foundation, Inc.
  72772. This file is part of the GNU C Library.
  72773. The GNU C Library is free software; you can redistribute it and/or
  72774. @@ -12,19 +12,17 @@
  72775. Lesser General Public License for more details.
  72776. You should have received a copy of the GNU Lesser General Public
  72777. - License along with the GNU C Library; if not, write to the Free
  72778. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72779. - 02111-1307 USA. */
  72780. + License along with the GNU C Library; if not, see
  72781. + <http://www.gnu.org/licenses/>. */
  72782. /* Define the machine-dependent type `jmp_buf'. SH version. */
  72783. #ifndef _BITS_SETJMP_H
  72784. -#define _BITS_SETJMP_H 1
  72785. +#define _BITS_SETJMP_H 1
  72786. #if !defined _SETJMP_H && !defined _PTHREAD_H
  72787. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  72788. #endif
  72789. -#ifndef _ASM
  72790. typedef struct
  72791. {
  72792. /* Callee-saved registers r8 through r15. */
  72793. @@ -42,15 +40,5 @@
  72794. /* Callee-saved floating point registers fr12 through fr15. */
  72795. int __fpregs[4];
  72796. } __jmp_buf[1];
  72797. -#endif
  72798. -
  72799. -#if defined __USE_MISC || defined _ASM
  72800. -# define JB_SIZE (4 * 15)
  72801. -#endif
  72802. -
  72803. -/* Test if longjmp to JMPBUF would unwind the frame
  72804. - containing a local variable at ADDRESS. */
  72805. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  72806. - ((void *) (address) < (void *) (jmpbuf)[0].__regs[7])
  72807. -#endif /* bits/setjmp.h */
  72808. +#endif /* bits/setjmp.h */
  72809. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/shm.h uClibc-git/libc/sysdeps/linux/sh/bits/shm.h
  72810. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  72811. +++ uClibc-git/libc/sysdeps/linux/sh/bits/shm.h 2014-06-02 17:40:34.606715261 +0200
  72812. @@ -12,9 +12,8 @@
  72813. Lesser General Public License for more details.
  72814. You should have received a copy of the GNU Lesser General Public
  72815. - License along with the GNU C Library; if not, write to the Free
  72816. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72817. - 02111-1307 USA. */
  72818. + License along with the GNU C Library; if not, see
  72819. + <http://www.gnu.org/licenses/>. */
  72820. #ifndef _SYS_SHM_H
  72821. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  72822. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/sh/bits/sigcontextinfo.h
  72823. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  72824. +++ uClibc-git/libc/sysdeps/linux/sh/bits/sigcontextinfo.h 2014-06-02 17:40:34.606715261 +0200
  72825. @@ -13,9 +13,8 @@
  72826. Lesser General Public License for more details.
  72827. You should have received a copy of the GNU Lesser General Public
  72828. - License along with the GNU C Library; if not, write to the Free
  72829. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72830. - 02111-1307 USA. */
  72831. + License along with the GNU C Library; if not, see
  72832. + <http://www.gnu.org/licenses/>. */
  72833. #define SIGCONTEXT int _a2, int _a3, int _a4, struct sigcontext
  72834. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/sh/bits/stackinfo.h
  72835. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  72836. +++ uClibc-git/libc/sysdeps/linux/sh/bits/stackinfo.h 2014-06-02 17:40:34.606715261 +0200
  72837. @@ -12,9 +12,8 @@
  72838. Lesser General Public License for more details.
  72839. You should have received a copy of the GNU Lesser General Public
  72840. - License along with the GNU C Library; if not, write to the Free
  72841. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72842. - 02111-1307 USA. */
  72843. + License along with the GNU C Library; if not, see
  72844. + <http://www.gnu.org/licenses/>. */
  72845. /* This file contains a bit of information about the stack allocation
  72846. of the processor. */
  72847. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/sh/bits/uClibc_arch_features.h
  72848. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  72849. +++ uClibc-git/libc/sysdeps/linux/sh/bits/uClibc_arch_features.h 2014-06-02 17:40:34.606715261 +0200
  72850. @@ -15,8 +15,8 @@
  72851. /* can your target use syscall6() for mmap ? */
  72852. #define __UCLIBC_MMAP_HAS_6_ARGS__
  72853. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  72854. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  72855. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  72856. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  72857. /* does your target have a broken create_module() ? */
  72858. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  72859. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/wordsize.h uClibc-git/libc/sysdeps/linux/sh/bits/wordsize.h
  72860. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  72861. +++ uClibc-git/libc/sysdeps/linux/sh/bits/wordsize.h 2014-06-02 17:40:34.606715261 +0200
  72862. @@ -12,8 +12,7 @@
  72863. Lesser General Public License for more details.
  72864. You should have received a copy of the GNU Lesser General Public
  72865. - License along with the GNU C Library; if not, write to the Free
  72866. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72867. - 02111-1307 USA. */
  72868. + License along with the GNU C Library; if not, see
  72869. + <http://www.gnu.org/licenses/>. */
  72870. #define __WORDSIZE 32
  72871. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/cacheflush.c uClibc-git/libc/sysdeps/linux/sh/cacheflush.c
  72872. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/cacheflush.c 2012-05-15 09:20:09.000000000 +0200
  72873. +++ uClibc-git/libc/sysdeps/linux/sh/cacheflush.c 2014-06-02 17:40:34.606715261 +0200
  72874. @@ -6,10 +6,9 @@
  72875. *
  72876. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  72877. */
  72878. -#include <errno.h>
  72879. -#include <unistd.h>
  72880. #include <sys/syscall.h>
  72881. #ifdef __NR_cacheflush
  72882. -_syscall3(int, cacheflush, char *, addr, int, nbytes, int, op)
  72883. +int cacheflush(void *addr, const int nbytes, int op);
  72884. +_syscall3(int, cacheflush, void *, addr, const int, nbytes, const int, op)
  72885. #endif
  72886. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/clone.S uClibc-git/libc/sysdeps/linux/sh/clone.S
  72887. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/clone.S 2012-05-15 09:20:09.000000000 +0200
  72888. +++ uClibc-git/libc/sysdeps/linux/sh/clone.S 2014-06-02 17:40:34.606715261 +0200
  72889. @@ -12,9 +12,8 @@
  72890. Lesser General Public License for more details.
  72891. You should have received a copy of the GNU Lesser General Public
  72892. - License along with the GNU C Library; if not, write to the Free
  72893. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72894. - 02111-1307 USA. */
  72895. + License along with the GNU C Library; if not, see
  72896. + <http://www.gnu.org/licenses/>. */
  72897. /* clone() is even more special than fork() as it mucks with stacks
  72898. and invokes a function in the right context after its all over. */
  72899. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/crt1.S uClibc-git/libc/sysdeps/linux/sh/crt1.S
  72900. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/crt1.S 2012-05-15 09:20:09.000000000 +0200
  72901. +++ uClibc-git/libc/sysdeps/linux/sh/crt1.S 2014-06-02 17:40:34.610715283 +0200
  72902. @@ -14,8 +14,7 @@
  72903. details.
  72904. You should have received a copy of the GNU Library General Public License
  72905. - along with this program; if not, write to the Free Software Foundation, Inc.,
  72906. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  72907. + along with this program; if not, see <http://www.gnu.org/licenses/>.
  72908. */
  72909. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/___fpscr_values.S uClibc-git/libc/sysdeps/linux/sh/___fpscr_values.S
  72910. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/___fpscr_values.S 2012-05-15 09:20:09.000000000 +0200
  72911. +++ uClibc-git/libc/sysdeps/linux/sh/___fpscr_values.S 2014-06-02 17:40:34.602715239 +0200
  72912. @@ -14,8 +14,7 @@
  72913. details.
  72914. You should have received a copy of the GNU Library General Public License
  72915. - along with this program; if not, write to the Free Software Foundation, Inc.,
  72916. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  72917. + along with this program; if not, see <http://www.gnu.org/licenses/>.
  72918. */
  72919. #include <features.h>
  72920. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/fpu_control.h uClibc-git/libc/sysdeps/linux/sh/fpu_control.h
  72921. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  72922. +++ uClibc-git/libc/sysdeps/linux/sh/fpu_control.h 2014-06-02 17:40:34.610715283 +0200
  72923. @@ -13,9 +13,8 @@
  72924. Lesser General Public License for more details.
  72925. You should have received a copy of the GNU Lesser General Public
  72926. - License along with the GNU C Library; if not, write to the Free
  72927. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  72928. - 02111-1307 USA. */
  72929. + License along with the GNU C Library; if not, see
  72930. + <http://www.gnu.org/licenses/>. */
  72931. #ifndef _FPU_CONTROL_H
  72932. #define _FPU_CONTROL_H
  72933. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/sh/jmpbuf-offsets.h
  72934. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  72935. +++ uClibc-git/libc/sysdeps/linux/sh/jmpbuf-offsets.h 2014-06-02 17:40:34.610715283 +0200
  72936. @@ -0,0 +1,19 @@
  72937. +/* Private macros for accessing __jmp_buf contents. SH version.
  72938. + Copyright (C) 2006 Free Software Foundation, Inc.
  72939. + This file is part of the GNU C Library.
  72940. +
  72941. + The GNU C Library is free software; you can redistribute it and/or
  72942. + modify it under the terms of the GNU Lesser General Public
  72943. + License as published by the Free Software Foundation; either
  72944. + version 2.1 of the License, or (at your option) any later version.
  72945. +
  72946. + The GNU C Library is distributed in the hope that it will be useful,
  72947. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  72948. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  72949. + Lesser General Public License for more details.
  72950. +
  72951. + You should have received a copy of the GNU Lesser General Public
  72952. + License along with the GNU C Library; if not, see
  72953. + <http://www.gnu.org/licenses/>. */
  72954. +
  72955. +#define JB_SIZE (4 * 15)
  72956. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/sh/jmpbuf-unwind.h
  72957. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  72958. +++ uClibc-git/libc/sysdeps/linux/sh/jmpbuf-unwind.h 2014-06-02 17:40:34.610715283 +0200
  72959. @@ -0,0 +1,22 @@
  72960. +/*
  72961. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  72962. + *
  72963. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  72964. + */
  72965. +#include <setjmp.h>
  72966. +
  72967. +/* Test if longjmp to JMPBUF would unwind the frame
  72968. + containing a local variable at ADDRESS. */
  72969. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  72970. + ((void *) (address) < (void *) (jmpbuf)[0].__regs[7])
  72971. +
  72972. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  72973. +#include <stdint.h>
  72974. +#include <unwind.h>
  72975. +
  72976. +#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
  72977. + _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
  72978. +
  72979. +#define _JMPBUF_UNWINDS_ADJ(jmpbuf, address, adj) \
  72980. + ((uintptr_t) (address) - (adj) < (uintptr_t) (jmpbuf)[0].__regs[7] - (adj))
  72981. +#endif
  72982. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/__longjmp.S uClibc-git/libc/sysdeps/linux/sh/__longjmp.S
  72983. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  72984. +++ uClibc-git/libc/sysdeps/linux/sh/__longjmp.S 2014-06-02 17:40:34.602715239 +0200
  72985. @@ -14,12 +14,8 @@
  72986. You should have received a copy of the GNU Library General Public
  72987. License along with the GNU C Library; see the file COPYING.LIB. If not,
  72988. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  72989. - Boston, MA 02111-1307, USA. */
  72990. + see <http://www.gnu.org/licenses/>. */
  72991. -#define _SETJMP_H
  72992. -#define _ASM
  72993. -#include <bits/setjmp.h>
  72994. #include <features.h>
  72995. /* __longjmp(jmpbuf, val) */
  72996. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/Makefile.arch uClibc-git/libc/sysdeps/linux/sh/Makefile.arch
  72997. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  72998. +++ uClibc-git/libc/sysdeps/linux/sh/Makefile.arch 2014-06-02 17:40:34.602715239 +0200
  72999. @@ -6,7 +6,10 @@
  73000. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  73001. #
  73002. -CSRC := \
  73003. - mmap.c pipe.c __init_brk.c brk.c sbrk.c pread_write.c cacheflush.c
  73004. +CSRC-y := \
  73005. + pipe.c __init_brk.c brk.c sbrk.c pread_write.c
  73006. -SSRC := setjmp.S __longjmp.S ___fpscr_values.S vfork.S clone.S
  73007. +SSRC-y := setjmp.S __longjmp.S ___fpscr_values.S
  73008. +
  73009. +CSRC-$(UCLIBC_LINUX_SPECIFIC) += cacheflush.c
  73010. +SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += clone.S vfork.S
  73011. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/mmap.c uClibc-git/libc/sysdeps/linux/sh/mmap.c
  73012. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/mmap.c 2012-05-15 09:20:09.000000000 +0200
  73013. +++ uClibc-git/libc/sysdeps/linux/sh/mmap.c 1970-01-01 01:00:00.000000000 +0100
  73014. @@ -1,34 +0,0 @@
  73015. -/* Copyright (C) 2001 Hewlett-Packard
  73016. -
  73017. - This program is free software; you can redistribute it and/or modify it under
  73018. - the terms of the GNU Library General Public License as published by the Free
  73019. - Software Foundation; either version 2 of the License, or (at your option) any
  73020. - later version.
  73021. -
  73022. - This program is distributed in the hope that it will be useful, but WITHOUT
  73023. - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  73024. - FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more
  73025. - details.
  73026. -
  73027. - You should have received a copy of the GNU Library General Public License
  73028. - along with this program; if not, write to the Free Software Foundation, Inc.,
  73029. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  73030. -
  73031. - Derived in part from the Linux-8086 C library, the GNU C Library, and several
  73032. - other sundry sources. Files within this library are copyright by their
  73033. - respective copyright holders.
  73034. -*/
  73035. -
  73036. -#include <unistd.h>
  73037. -#include <errno.h>
  73038. -#include <sys/mman.h>
  73039. -
  73040. -
  73041. -#ifdef HIOS
  73042. -# define __SH_SYSCALL6_TRAPA 0x2E
  73043. -#endif
  73044. -
  73045. -#include <sys/syscall.h>
  73046. -
  73047. -_syscall6(__ptr_t, mmap, __ptr_t, addr, size_t, len, int, prot, int, flags, int, fd, __off_t, offset)
  73048. -libc_hidden_def(mmap)
  73049. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/pread_write.c uClibc-git/libc/sysdeps/linux/sh/pread_write.c
  73050. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/pread_write.c 2012-05-15 09:20:09.000000000 +0200
  73051. +++ uClibc-git/libc/sysdeps/linux/sh/pread_write.c 2014-06-02 17:40:34.610715283 +0200
  73052. @@ -4,122 +4,8 @@
  73053. *
  73054. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  73055. */
  73056. -/*
  73057. - * Based in part on the files
  73058. - * ./sysdeps/unix/sysv/linux/pwrite.c,
  73059. - * ./sysdeps/unix/sysv/linux/pread.c,
  73060. - * sysdeps/posix/pread.c
  73061. - * sysdeps/posix/pwrite.c
  73062. - * from GNU libc 2.2.5, but reworked considerably...
  73063. - */
  73064. -
  73065. -#include <sys/syscall.h>
  73066. -#include <unistd.h>
  73067. -#include <stdint.h>
  73068. -#include <endian.h>
  73069. -
  73070. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  73071. -#include <sysdep-cancel.h>
  73072. -#else
  73073. -#define SINGLE_THREAD_P 1
  73074. -#endif
  73075. -
  73076. -
  73077. -#ifdef __NR_pread64 /* Newer kernels renamed but it's the same. */
  73078. -# ifdef __NR_pread
  73079. -# error "__NR_pread and __NR_pread64 both defined???"
  73080. -# endif
  73081. -# define __NR_pread __NR_pread64
  73082. -#endif
  73083. -
  73084. -#ifdef __NR_pread
  73085. -extern __typeof(pread) __libc_pread;
  73086. -# define __NR___syscall_pread __NR_pread
  73087. -static __inline__ _syscall6(ssize_t, __syscall_pread, int, fd, void *, buf,
  73088. - size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
  73089. -
  73090. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  73091. -{
  73092. - if (SINGLE_THREAD_P)
  73093. - return(__syscall_pread(fd,buf,count,0,__LONG_LONG_PAIR(offset >> 31,offset)));
  73094. -
  73095. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  73096. - int oldtype = LIBC_CANCEL_ASYNC ();
  73097. - ssize_t result = __syscall_pread(fd,buf,count,0,__LONG_LONG_PAIR(offset >> 31,offset));
  73098. - LIBC_CANCEL_RESET (oldtype);
  73099. - return result;
  73100. -#endif
  73101. -}
  73102. -weak_alias(__libc_pread,pread)
  73103. -
  73104. -# ifdef __UCLIBC_HAS_LFS__
  73105. -extern __typeof(pread64) __libc_pread64;
  73106. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  73107. -{
  73108. - uint32_t low = offset & 0xffffffff;
  73109. - uint32_t high = offset >> 32;
  73110. -
  73111. - if (SINGLE_THREAD_P)
  73112. - return __syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR (high, low));
  73113. -
  73114. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  73115. - int oldtype = LIBC_CANCEL_ASYNC ();
  73116. - ssize_t result = __syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR (high, low));
  73117. - LIBC_CANCEL_RESET (oldtype);
  73118. - return result;
  73119. -#endif
  73120. -}
  73121. -weak_alias(__libc_pread64,pread64)
  73122. -# endif /* __UCLIBC_HAS_LFS__ */
  73123. -#endif /* __NR_pread */
  73124. -
  73125. -/**********************************************************************/
  73126. -
  73127. -#ifdef __NR_pwrite64 /* Newer kernels renamed but it's the same. */
  73128. -# ifdef __NR_pwrite
  73129. -# error "__NR_pwrite and __NR_pwrite64 both defined???"
  73130. -# endif
  73131. -# define __NR_pwrite __NR_pwrite64
  73132. -#endif
  73133. -
  73134. -#ifdef __NR_pwrite
  73135. -extern __typeof(pwrite) __libc_pwrite;
  73136. -# define __NR___syscall_pwrite __NR_pwrite
  73137. -static __inline__ _syscall6(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
  73138. - size_t, count, int, dummy, off_t, offset_hi, off_t, offset_lo)
  73139. -
  73140. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  73141. -{
  73142. - if (SINGLE_THREAD_P)
  73143. - return __syscall_pwrite(fd,buf,count,0,__LONG_LONG_PAIR(offset >> 31,offset));
  73144. -
  73145. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  73146. - int oldtype = LIBC_CANCEL_ASYNC ();
  73147. - ssize_t result = __syscall_pwrite(fd,buf,count,0,__LONG_LONG_PAIR(offset >> 31,offset));
  73148. - LIBC_CANCEL_RESET (oldtype);
  73149. - return result;
  73150. -#endif
  73151. -
  73152. -}
  73153. -weak_alias(__libc_pwrite,pwrite)
  73154. -
  73155. -# ifdef __UCLIBC_HAS_LFS__
  73156. -extern __typeof(pwrite64) __libc_pwrite64;
  73157. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  73158. -{
  73159. - uint32_t low = offset & 0xffffffff;
  73160. - uint32_t high = offset >> 32;
  73161. -
  73162. - if (SINGLE_THREAD_P)
  73163. - return __syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR (high, low));
  73164. -#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  73165. - int oldtype = LIBC_CANCEL_ASYNC ();
  73166. - ssize_t result = __syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR (high, low));
  73167. - LIBC_CANCEL_RESET (oldtype);
  73168. - return result;
  73169. -#endif
  73170. -}
  73171. -weak_alias(__libc_pwrite64,pwrite64)
  73172. -# endif /* __UCLIBC_HAS_LFS__ */
  73173. -#endif /* __NR_pwrite */
  73174. +/* SuperH doesn't have this alignment issue. It just decided to copy
  73175. + * the syscall interface from another arch for no good reason. */
  73176. +#define __UCLIBC_SYSCALL_ALIGN_64BIT__
  73177. +#include "../common/pread_write.c"
  73178. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/setjmp.S uClibc-git/libc/sysdeps/linux/sh/setjmp.S
  73179. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  73180. +++ uClibc-git/libc/sysdeps/linux/sh/setjmp.S 2014-06-02 17:40:34.610715283 +0200
  73181. @@ -14,13 +14,10 @@
  73182. You should have received a copy of the GNU Library General Public
  73183. License along with the GNU C Library; see the file COPYING.LIB. If not,
  73184. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  73185. - Boston, MA 02111-1307, USA. */
  73186. + see <http://www.gnu.org/licenses/>. */
  73187. #include <features.h>
  73188. -#define _SETJMP_H
  73189. -#define _ASM
  73190. -#include <bits/setjmp.h>
  73191. +#include <jmpbuf-offsets.h>
  73192. .text
  73193. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/io.h uClibc-git/libc/sysdeps/linux/sh/sys/io.h
  73194. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/io.h 2012-05-15 09:20:09.000000000 +0200
  73195. +++ uClibc-git/libc/sysdeps/linux/sh/sys/io.h 2014-06-02 17:40:34.610715283 +0200
  73196. @@ -12,9 +12,8 @@
  73197. Lesser General Public License for more details.
  73198. You should have received a copy of the GNU Lesser General Public
  73199. - License along with the GNU C Library; if not, write to the Free
  73200. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73201. - 02111-1307 USA. */
  73202. + License along with the GNU C Library; if not, see
  73203. + <http://www.gnu.org/licenses/>. */
  73204. #ifndef _SYS_IO_H
  73205. @@ -23,17 +22,18 @@
  73206. __BEGIN_DECLS
  73207. +#if defined __UCLIBC_LINUX_SPECIFIC__
  73208. /* If TURN_ON is TRUE, request for permission to do direct i/o on the
  73209. port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
  73210. permission off for that range. This call requires root privileges. */
  73211. extern int ioperm (unsigned long int __from, unsigned long int __num,
  73212. int __turn_on) __THROW;
  73213. -libc_hidden_proto(ioperm)
  73214. /* Set the I/O privilege level to LEVEL. If LEVEL is nonzero,
  73215. permission to access any I/O port is granted. This call requires
  73216. root privileges. */
  73217. extern int iopl (int __level) __THROW;
  73218. +#endif /* __UCLIBC_LINUX_SPECIFIC__ */
  73219. /* The functions that actually perform reads and writes. */
  73220. extern unsigned char inb (unsigned long int port) __THROW;
  73221. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/procfs.h uClibc-git/libc/sysdeps/linux/sh/sys/procfs.h
  73222. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  73223. +++ uClibc-git/libc/sysdeps/linux/sh/sys/procfs.h 2014-06-02 17:40:34.610715283 +0200
  73224. @@ -12,9 +12,8 @@
  73225. Lesser General Public License for more details.
  73226. You should have received a copy of the GNU Lesser General Public
  73227. - License along with the GNU C Library; if not, write to the Free
  73228. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73229. - 02111-1307 USA. */
  73230. + License along with the GNU C Library; if not, see
  73231. + <http://www.gnu.org/licenses/>. */
  73232. #ifndef _SYS_PROCFS_H
  73233. #define _SYS_PROCFS_H 1
  73234. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/ucontext.h uClibc-git/libc/sysdeps/linux/sh/sys/ucontext.h
  73235. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  73236. +++ uClibc-git/libc/sysdeps/linux/sh/sys/ucontext.h 2014-06-02 17:40:34.610715283 +0200
  73237. @@ -12,9 +12,8 @@
  73238. Lesser General Public License for more details.
  73239. You should have received a copy of the GNU Lesser General Public
  73240. - License along with the GNU C Library; if not, write to the Free
  73241. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73242. - 02111-1307 USA. */
  73243. + License along with the GNU C Library; if not, see
  73244. + <http://www.gnu.org/licenses/>. */
  73245. /* Where is System V/SH ABI? */
  73246. @@ -32,10 +31,10 @@
  73247. typedef int greg_t;
  73248. /* Number of general registers. */
  73249. -#define NFPREG 16
  73250. +#define NGREG 16
  73251. /* Container for all general registers. */
  73252. -typedef greg_t gregset_t[NFPREG];
  73253. +typedef greg_t gregset_t[NGREG];
  73254. #ifdef __USE_GNU
  73255. /* Number of each register is the `gregset_t' array. */
  73256. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/user.h uClibc-git/libc/sysdeps/linux/sh/sys/user.h
  73257. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  73258. +++ uClibc-git/libc/sysdeps/linux/sh/sys/user.h 2014-06-02 17:40:34.610715283 +0200
  73259. @@ -12,9 +12,8 @@
  73260. Lesser General Public License for more details.
  73261. You should have received a copy of the GNU Lesser General Public
  73262. - License along with the GNU C Library; if not, write to the Free
  73263. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73264. - 02111-1307 USA. */
  73265. + License along with the GNU C Library; if not, see
  73266. + <http://www.gnu.org/licenses/>. */
  73267. #ifndef _SYS_USER_H
  73268. #define _SYS_USER_H 1
  73269. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/sysdep.h uClibc-git/libc/sysdeps/linux/sh/sysdep.h
  73270. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  73271. +++ uClibc-git/libc/sysdeps/linux/sh/sysdep.h 2014-06-02 17:40:34.610715283 +0200
  73272. @@ -13,14 +13,12 @@
  73273. Lesser General Public License for more details.
  73274. You should have received a copy of the GNU Lesser General Public
  73275. - License along with the GNU C Library; if not, write to the Free
  73276. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73277. - 02111-1307 USA. */
  73278. + License along with the GNU C Library; if not, see
  73279. + <http://www.gnu.org/licenses/>. */
  73280. #include <common/sysdep.h>
  73281. #include <features.h>
  73282. -#include <libc-internal.h>
  73283. #ifdef __ASSEMBLER__
  73284. @@ -143,8 +141,6 @@
  73285. #define PSEUDO_END_ERRVAL(name) \
  73286. END (name)
  73287. -#define ret_ERRVAL ret
  73288. -
  73289. #ifndef __PIC__
  73290. # define SYSCALL_ERROR_HANDLER \
  73291. mov.l 0f,r1; \
  73292. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh/vfork.S uClibc-git/libc/sysdeps/linux/sh/vfork.S
  73293. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh/vfork.S 2012-05-15 09:20:09.000000000 +0200
  73294. +++ uClibc-git/libc/sysdeps/linux/sh/vfork.S 2014-06-02 17:40:34.610715283 +0200
  73295. @@ -12,19 +12,16 @@
  73296. details.
  73297. You should have received a copy of the GNU Library General Public License
  73298. - along with this program; if not, write to the Free Software Foundation, Inc.,
  73299. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  73300. + along with this program; if not, see <http://www.gnu.org/licenses/>.
  73301. Derived in part from the Linux-8086 C library, the GNU C Library, and several
  73302. other sundry sources. Files within this library are copyright by their
  73303. respective copyright holders.
  73304. */
  73305. -#include <features.h>
  73306. #include <sys/syscall.h>
  73307. #define _ERRNO_H
  73308. #include <bits/errno.h>
  73309. -#include <bits/sysnum.h>
  73310. /* Clone the calling process, but without copying the whole address space.
  73311. The calling process is suspended until the new process exits or is
  73312. @@ -109,6 +106,6 @@
  73313. .size __vfork, .-__vfork
  73314. weak_alias(__vfork,vfork)
  73315. -libc_hidden_weak(vfork)
  73316. +libc_hidden_def(vfork)
  73317. #include "syscall_error.S"
  73318. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/fcntl.h uClibc-git/libc/sysdeps/linux/sh64/bits/fcntl.h
  73319. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  73320. +++ uClibc-git/libc/sysdeps/linux/sh64/bits/fcntl.h 2014-06-02 17:40:34.610715283 +0200
  73321. @@ -13,9 +13,8 @@
  73322. Lesser General Public License for more details.
  73323. You should have received a copy of the GNU Lesser General Public
  73324. - License along with the GNU C Library; if not, write to the Free
  73325. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73326. - 02111-1307 USA. */
  73327. + License along with the GNU C Library; if not, see
  73328. + <http://www.gnu.org/licenses/>. */
  73329. #ifndef _FCNTL_H
  73330. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  73331. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/sh64/bits/kernel_types.h
  73332. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  73333. +++ uClibc-git/libc/sysdeps/linux/sh64/bits/kernel_types.h 2014-06-02 17:40:34.610715283 +0200
  73334. @@ -43,6 +43,8 @@
  73335. typedef unsigned short __kernel_old_uid_t;
  73336. typedef unsigned short __kernel_old_gid_t;
  73337. typedef __kernel_dev_t __kernel_old_dev_t;
  73338. +typedef long __kernel_long_t;
  73339. +typedef unsigned long __kernel_ulong_t;
  73340. typedef long long __kernel_loff_t;
  73341. typedef struct {
  73342. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/setjmp.h uClibc-git/libc/sysdeps/linux/sh64/bits/setjmp.h
  73343. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  73344. +++ uClibc-git/libc/sysdeps/linux/sh64/bits/setjmp.h 2014-06-02 17:40:34.610715283 +0200
  73345. @@ -12,9 +12,8 @@
  73346. Lesser General Public License for more details.
  73347. You should have received a copy of the GNU Lesser General Public
  73348. - License along with the GNU C Library; if not, write to the Free
  73349. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73350. - 02111-1307 USA. */
  73351. + License along with the GNU C Library; if not, see
  73352. + <http://www.gnu.org/licenses/>. */
  73353. /* Define the machine-dependent type `jmp_buf'. SH-5 version. */
  73354. #ifndef _BITS_SETJMP_H
  73355. @@ -33,8 +32,6 @@
  73356. #define __SETJMP_TRG(x) (__SETJMP_NUM_INT+__SETJMP_NUM_DBL+(x))
  73357. #define __SETJMP_LR (__SETJMP_NUM_INT+__SETJMP_NUM_DBL+__SETJMP_NUM_TRG)
  73358. -
  73359. -#ifndef _ASM
  73360. typedef struct
  73361. {
  73362. /* Callee-saved registers. */
  73363. @@ -45,6 +42,5 @@
  73364. unsigned long long __trgs[__SETJMP_NUM_TRG]; /* traget registers */
  73365. unsigned long long __lr; /* linkage register */
  73366. } __jmp_buf[1];
  73367. -#endif
  73368. #endif /* bits/setjmp.h */
  73369. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/shm.h uClibc-git/libc/sysdeps/linux/sh64/bits/shm.h
  73370. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  73371. +++ uClibc-git/libc/sysdeps/linux/sh64/bits/shm.h 2014-06-02 17:40:34.610715283 +0200
  73372. @@ -12,9 +12,8 @@
  73373. Lesser General Public License for more details.
  73374. You should have received a copy of the GNU Lesser General Public
  73375. - License along with the GNU C Library; if not, write to the Free
  73376. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73377. - 02111-1307 USA. */
  73378. + License along with the GNU C Library; if not, see
  73379. + <http://www.gnu.org/licenses/>. */
  73380. #ifndef _SYS_SHM_H
  73381. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  73382. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/sh64/bits/stackinfo.h
  73383. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  73384. +++ uClibc-git/libc/sysdeps/linux/sh64/bits/stackinfo.h 2014-06-02 17:40:34.610715283 +0200
  73385. @@ -12,9 +12,8 @@
  73386. Lesser General Public License for more details.
  73387. You should have received a copy of the GNU Lesser General Public
  73388. - License along with the GNU C Library; if not, write to the Free
  73389. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73390. - 02111-1307 USA. */
  73391. + License along with the GNU C Library; if not, see
  73392. + <http://www.gnu.org/licenses/>. */
  73393. /* This file contains a bit of information about the stack allocation
  73394. of the processor. */
  73395. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h
  73396. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  73397. +++ uClibc-git/libc/sysdeps/linux/sh64/bits/uClibc_arch_features.h 2014-06-02 17:40:34.610715283 +0200
  73398. @@ -11,8 +11,8 @@
  73399. /* can your target use syscall6() for mmap ? */
  73400. #undef __UCLIBC_MMAP_HAS_6_ARGS__
  73401. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  73402. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  73403. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  73404. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  73405. /* does your target have a broken create_module() ? */
  73406. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  73407. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/crt1.S uClibc-git/libc/sysdeps/linux/sh64/crt1.S
  73408. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/crt1.S 2012-05-15 09:20:09.000000000 +0200
  73409. +++ uClibc-git/libc/sysdeps/linux/sh64/crt1.S 2014-06-02 17:40:34.610715283 +0200
  73410. @@ -16,8 +16,7 @@
  73411. You should have received a copy of the GNU Library General Public
  73412. License along with the GNU C Library; see the file COPYING.LIB. If not,
  73413. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  73414. - Boston, MA 02111-1307, USA. */
  73415. + see <http://www.gnu.org/licenses/>. */
  73416. /* This is the canonical entry point, usually the first thing in the text
  73417. segment.
  73418. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/__longjmp.S uClibc-git/libc/sysdeps/linux/sh64/__longjmp.S
  73419. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  73420. +++ uClibc-git/libc/sysdeps/linux/sh64/__longjmp.S 2014-06-02 17:40:34.610715283 +0200
  73421. @@ -14,8 +14,7 @@
  73422. You should have received a copy of the GNU Library General Public
  73423. License along with the GNU C Library; see the file COPYING.LIB. If not,
  73424. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  73425. - Boston, MA 02111-1307, USA. */
  73426. + see <http://www.gnu.org/licenses/>. */
  73427. #define _SETJMP_H
  73428. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/Makefile.arch uClibc-git/libc/sysdeps/linux/sh64/Makefile.arch
  73429. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  73430. +++ uClibc-git/libc/sysdeps/linux/sh64/Makefile.arch 2014-06-02 17:40:34.610715283 +0200
  73431. @@ -5,6 +5,6 @@
  73432. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  73433. #
  73434. -CSRC := __init_brk.c brk.c sbrk.c syscall.c
  73435. +CSRC-y := __init_brk.c brk.c sbrk.c syscall.c
  73436. -SSRC := setjmp.S __longjmp.S
  73437. +SSRC-y := setjmp.S __longjmp.S
  73438. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/setjmp.S uClibc-git/libc/sysdeps/linux/sh64/setjmp.S
  73439. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  73440. +++ uClibc-git/libc/sysdeps/linux/sh64/setjmp.S 2014-06-02 17:40:34.610715283 +0200
  73441. @@ -14,8 +14,7 @@
  73442. You should have received a copy of the GNU Library General Public
  73443. License along with the GNU C Library; see the file COPYING.LIB. If not,
  73444. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  73445. - Boston, MA 02111-1307, USA. */
  73446. + see <http://www.gnu.org/licenses/>. */
  73447. #define _SETJMP_H
  73448. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/sys/procfs.h uClibc-git/libc/sysdeps/linux/sh64/sys/procfs.h
  73449. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  73450. +++ uClibc-git/libc/sysdeps/linux/sh64/sys/procfs.h 2014-06-02 17:40:34.610715283 +0200
  73451. @@ -12,9 +12,8 @@
  73452. Lesser General Public License for more details.
  73453. You should have received a copy of the GNU Lesser General Public
  73454. - License along with the GNU C Library; if not, write to the Free
  73455. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73456. - 02111-1307 USA. */
  73457. + License along with the GNU C Library; if not, see
  73458. + <http://www.gnu.org/licenses/>. */
  73459. #ifndef _SYS_PROCFS_H
  73460. #define _SYS_PROCFS_H 1
  73461. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sh64/sys/ucontext.h uClibc-git/libc/sysdeps/linux/sh64/sys/ucontext.h
  73462. --- uClibc-0.9.33.2/libc/sysdeps/linux/sh64/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  73463. +++ uClibc-git/libc/sysdeps/linux/sh64/sys/ucontext.h 2014-06-02 17:40:34.610715283 +0200
  73464. @@ -13,8 +13,7 @@
  73465. You should have received a copy of the GNU Library General Public
  73466. License along with the GNU C Library; see the file COPYING.LIB. If not,
  73467. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  73468. - Boston, MA 02111-1307, USA. */
  73469. + see <http://www.gnu.org/licenses/>. */
  73470. /* Where is System V/SH ABI? */
  73471. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/atomic.h uClibc-git/libc/sysdeps/linux/sparc/bits/atomic.h
  73472. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  73473. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/atomic.h 2014-06-02 17:40:34.614715306 +0200
  73474. @@ -14,9 +14,8 @@
  73475. Lesser General Public License for more details.
  73476. You should have received a copy of the GNU Lesser General Public
  73477. - License along with the GNU C Library; if not, write to the Free
  73478. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73479. - 02111-1307 USA. */
  73480. + License along with the GNU C Library; if not, see
  73481. + <http://www.gnu.org/licenses/>. */
  73482. #ifndef _BITS_ATOMIC_H
  73483. #define _BITS_ATOMIC_H 1
  73484. @@ -290,11 +289,11 @@
  73485. __typeof (*(mem)) __acev_wval = (newval); \
  73486. do \
  73487. __acev_wret = *__acev_wmemp; \
  73488. - while (__builtin_expect \
  73489. + while (unlikely \
  73490. (__v9_compare_and_exchange_val_32_acq (__acev_wmemp,\
  73491. __acev_wval, \
  73492. __acev_wret) \
  73493. - != __acev_wret, 0)); \
  73494. + != __acev_wret)); \
  73495. } \
  73496. else \
  73497. __acev_wret = __v7_exchange_acq (mem, newval); \
  73498. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/eventfd.h uClibc-git/libc/sysdeps/linux/sparc/bits/eventfd.h
  73499. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/eventfd.h 1970-01-01 01:00:00.000000000 +0100
  73500. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/eventfd.h 2014-06-02 17:40:34.614715306 +0200
  73501. @@ -0,0 +1,31 @@
  73502. +/* Copyright (C) 2007-2013 Free Software Foundation, Inc.
  73503. + This file is part of the GNU C Library.
  73504. +
  73505. + The GNU C Library is free software; you can redistribute it and/or
  73506. + modify it under the terms of the GNU Lesser General Public
  73507. + License as published by the Free Software Foundation; either
  73508. + version 2.1 of the License, or (at your option) any later version.
  73509. +
  73510. + The GNU C Library is distributed in the hope that it will be useful,
  73511. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  73512. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  73513. + Lesser General Public License for more details.
  73514. +
  73515. + You should have received a copy of the GNU Lesser General Public
  73516. + License along with the GNU C Library; if not, see
  73517. + <http://www.gnu.org/licenses/>. */
  73518. +
  73519. +#ifndef _SYS_EVENTFD_H
  73520. +# error "Never use <bits/eventfd.h> directly; include <sys/eventfd.h> instead."
  73521. +#endif
  73522. +
  73523. +/* Flags for eventfd. */
  73524. +enum
  73525. + {
  73526. + EFD_SEMAPHORE = 1,
  73527. +#define EFD_SEMAPHORE EFD_SEMAPHORE
  73528. + EFD_CLOEXEC = 0x400000,
  73529. +#define EFD_CLOEXEC EFD_CLOEXEC
  73530. + EFD_NONBLOCK = 0x004000
  73531. +#define EFD_NONBLOCK EFD_NONBLOCK
  73532. + };
  73533. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/fcntl.h uClibc-git/libc/sysdeps/linux/sparc/bits/fcntl.h
  73534. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  73535. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/fcntl.h 2014-06-02 17:40:34.614715306 +0200
  73536. @@ -14,9 +14,8 @@
  73537. Lesser General Public License for more details.
  73538. You should have received a copy of the GNU Lesser General Public
  73539. - License along with the GNU C Library; if not, write to the Free
  73540. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73541. - 02111-1307 USA. */
  73542. + License along with the GNU C Library; if not, see
  73543. + <http://www.gnu.org/licenses/>. */
  73544. #ifndef _FCNTL_H
  73545. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  73546. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/fenv.h uClibc-git/libc/sysdeps/linux/sparc/bits/fenv.h
  73547. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  73548. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/fenv.h 2014-06-02 17:40:34.614715306 +0200
  73549. @@ -12,9 +12,8 @@
  73550. Lesser General Public License for more details.
  73551. You should have received a copy of the GNU Lesser General Public
  73552. - License along with the GNU C Library; if not, write to the Free
  73553. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73554. - 02111-1307 USA. */
  73555. + License along with the GNU C Library; if not, see
  73556. + <http://www.gnu.org/licenses/>. */
  73557. #ifndef _FENV_H
  73558. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  73559. @@ -68,11 +67,11 @@
  73560. typedef unsigned long int fenv_t;
  73561. /* If the default argument is used we use this value. */
  73562. -#define FE_DFL_ENV ((__const fenv_t *) -1)
  73563. +#define FE_DFL_ENV ((const fenv_t *) -1)
  73564. #ifdef __USE_GNU
  73565. /* Floating-point environment where none of the exception is masked. */
  73566. -# define FE_NOMASK_ENV ((__const fenv_t *) -2)
  73567. +# define FE_NOMASK_ENV ((const fenv_t *) -2)
  73568. #endif
  73569. /* For internal use only: access the fp state register. */
  73570. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/huge_vall.h uClibc-git/libc/sysdeps/linux/sparc/bits/huge_vall.h
  73571. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/huge_vall.h 1970-01-01 01:00:00.000000000 +0100
  73572. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/huge_vall.h 2014-06-02 17:40:34.614715306 +0200
  73573. @@ -0,0 +1,48 @@
  73574. +/* `HUGE_VALL' constant for IEEE 754 machines (where it is infinity).
  73575. + Used by <stdlib.h> and <math.h> functions for overflow.
  73576. + Copyright (C) 1992, 1995, 1996, 1997, 1999, 2000, 2004
  73577. + Free Software Foundation, Inc.
  73578. + This file is part of the GNU C Library.
  73579. +
  73580. + The GNU C Library is free software; you can redistribute it and/or
  73581. + modify it under the terms of the GNU Lesser General Public
  73582. + License as published by the Free Software Foundation; either
  73583. + version 2.1 of the License, or (at your option) any later version.
  73584. +
  73585. + The GNU C Library is distributed in the hope that it will be useful,
  73586. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  73587. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  73588. + Lesser General Public License for more details.
  73589. +
  73590. + You should have received a copy of the GNU Lesser General Public
  73591. + License along with the GNU C Library; if not, see
  73592. + <http://www.gnu.org/licenses/>. */
  73593. +
  73594. +#ifndef _MATH_H
  73595. +# error "Never use <bits/huge_vall.h> directly; include <math.h> instead."
  73596. +#endif
  73597. +
  73598. +#if __GNUC_PREREQ(3,3)
  73599. +# define HUGE_VALL (__builtin_huge_vall())
  73600. +#else
  73601. +# include <bits/wordsize.h>
  73602. +# if __WORDSIZE == 32
  73603. +# define HUGE_VALL ((long double) HUGE_VAL)
  73604. +# elif __GNUC_PREREQ(2,96)
  73605. +# define HUGE_VALL (__extension__ 0x1.0p32767L)
  73606. +# elif defined __GNUC__
  73607. +
  73608. +# define HUGE_VALL \
  73609. + (__extension__ \
  73610. + ((union { struct { unsigned long __h, __l; } __i; long double __d; }) \
  73611. + { __i: { __h: 0x7fff000000000000UL, __l: 0 } }).__d)
  73612. +
  73613. +# else /* not GCC */
  73614. +
  73615. +typedef union { unsigned char __c[16]; long double __d; } __huge_vall_t;
  73616. +# define __HUGE_VALL_bytes { 0x7f, 0xff, 0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
  73617. +static __huge_vall_t __huge_vall = { __HUGE_VALL_bytes };
  73618. +# define HUGE_VALL (__huge_vall.__d)
  73619. +
  73620. +# endif /* GCC. */
  73621. +#endif /* GCC 3.3. */
  73622. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/ioctls.h uClibc-git/libc/sysdeps/linux/sparc/bits/ioctls.h
  73623. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/ioctls.h 2012-05-15 09:20:09.000000000 +0200
  73624. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/ioctls.h 2014-06-02 17:40:34.614715306 +0200
  73625. @@ -12,9 +12,8 @@
  73626. Lesser General Public License for more details.
  73627. You should have received a copy of the GNU Lesser General Public
  73628. - License along with the GNU C Library; if not, write to the Free
  73629. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73630. - 02111-1307 USA. */
  73631. + License along with the GNU C Library; if not, see
  73632. + <http://www.gnu.org/licenses/>. */
  73633. #ifndef _SYS_IOCTL_H
  73634. # error "Never use <bits/ioctls.h> directly; include <sys/ioctl.h> instead."
  73635. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/ipc.h uClibc-git/libc/sysdeps/linux/sparc/bits/ipc.h
  73636. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  73637. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/ipc.h 2014-06-02 17:40:34.614715306 +0200
  73638. @@ -12,9 +12,8 @@
  73639. Lesser General Public License for more details.
  73640. You should have received a copy of the GNU Lesser General Public
  73641. - License along with the GNU C Library; if not, write to the Free
  73642. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73643. - 02111-1307 USA. */
  73644. + License along with the GNU C Library; if not, see
  73645. + <http://www.gnu.org/licenses/>. */
  73646. #ifndef _SYS_IPC_H
  73647. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  73648. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/sparc/bits/kernel_types.h
  73649. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  73650. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/kernel_types.h 2014-06-02 17:40:34.614715306 +0200
  73651. @@ -32,6 +32,8 @@
  73652. typedef __kernel_uid_t __kernel_old_uid_t;
  73653. typedef __kernel_gid_t __kernel_old_gid_t;
  73654. typedef __kernel_dev_t __kernel_old_dev_t;
  73655. +typedef long __kernel_long_t;
  73656. +typedef unsigned long __kernel_ulong_t;
  73657. typedef __kernel_uid_t __kernel_uid32_t;
  73658. typedef __kernel_gid_t __kernel_gid32_t;
  73659. typedef int __kernel_suseconds_t;
  73660. @@ -62,6 +64,8 @@
  73661. typedef unsigned short __kernel_old_uid_t;
  73662. typedef unsigned short __kernel_old_gid_t;
  73663. typedef __kernel_dev_t __kernel_old_dev_t;
  73664. +typedef long __kernel_long_t;
  73665. +typedef unsigned long __kernel_ulong_t;
  73666. typedef long long __kernel_loff_t;
  73667. #endif
  73668. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/local_lim.h uClibc-git/libc/sysdeps/linux/sparc/bits/local_lim.h
  73669. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/local_lim.h 1970-01-01 01:00:00.000000000 +0100
  73670. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/local_lim.h 2014-06-02 17:40:34.614715306 +0200
  73671. @@ -0,0 +1,99 @@
  73672. +/* Minimum guaranteed maximum values for system limits. Linux/SPARC version.
  73673. + Copyright (C) 1993-1998,2000,2002-2004,2008 Free Software Foundation, Inc.
  73674. + This file is part of the GNU C Library.
  73675. +
  73676. + The GNU C Library is free software; you can redistribute it and/or
  73677. + modify it under the terms of the GNU Library General Public License as
  73678. + published by the Free Software Foundation; either version 2 of the
  73679. + License, or (at your option) any later version.
  73680. +
  73681. + The GNU C Library is distributed in the hope that it will be useful,
  73682. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  73683. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  73684. + Library General Public License for more details.
  73685. +
  73686. + You should have received a copy of the GNU Library General Public
  73687. + License along with the GNU C Library; see the file COPYING.LIB. If not,
  73688. + see <http://www.gnu.org/licenses/>. */
  73689. +
  73690. +/* The kernel header pollutes the namespace with the NR_OPEN symbol
  73691. + and defines LINK_MAX although filesystems have different maxima. A
  73692. + similar thing is true for OPEN_MAX: the limit can be changed at
  73693. + runtime and therefore the macro must not be defined. Remove this
  73694. + after including the header if necessary. */
  73695. +#ifndef NR_OPEN
  73696. +# define __undef_NR_OPEN
  73697. +#endif
  73698. +#ifndef LINK_MAX
  73699. +# define __undef_LINK_MAX
  73700. +#endif
  73701. +#ifndef OPEN_MAX
  73702. +# define __undef_OPEN_MAX
  73703. +#endif
  73704. +#ifndef ARG_MAX
  73705. +# define __undef_ARG_MAX
  73706. +#endif
  73707. +
  73708. +/* The kernel sources contain a file with all the needed information. */
  73709. +#include <linux/limits.h>
  73710. +
  73711. +/* Have to remove NR_OPEN? */
  73712. +#ifdef __undef_NR_OPEN
  73713. +# undef NR_OPEN
  73714. +# undef __undef_NR_OPEN
  73715. +#endif
  73716. +/* Have to remove LINK_MAX? */
  73717. +#ifdef __undef_LINK_MAX
  73718. +# undef LINK_MAX
  73719. +# undef __undef_LINK_MAX
  73720. +#endif
  73721. +/* Have to remove OPEN_MAX? */
  73722. +#ifdef __undef_OPEN_MAX
  73723. +# undef OPEN_MAX
  73724. +# undef __undef_OPEN_MAX
  73725. +#endif
  73726. +/* Have to remove ARG_MAX? */
  73727. +#ifdef __undef_ARG_MAX
  73728. +# undef ARG_MAX
  73729. +# undef __undef_ARG_MAX
  73730. +#endif
  73731. +
  73732. +/* The number of data keys per process. */
  73733. +#define _POSIX_THREAD_KEYS_MAX 128
  73734. +/* This is the value this implementation supports. */
  73735. +#define PTHREAD_KEYS_MAX 1024
  73736. +
  73737. +/* Controlling the iterations of destructors for thread-specific data. */
  73738. +#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
  73739. +/* Number of iterations this implementation does. */
  73740. +#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
  73741. +
  73742. +/* The number of threads per process. */
  73743. +#define _POSIX_THREAD_THREADS_MAX 64
  73744. +/* We have no predefined limit on the number of threads. */
  73745. +#undef PTHREAD_THREADS_MAX
  73746. +
  73747. +/* Maximum amount by which a process can descrease its asynchronous I/O
  73748. + priority level. */
  73749. +#define AIO_PRIO_DELTA_MAX 20
  73750. +
  73751. +/* Minimum size for a thread. We are free to choose a reasonable value. */
  73752. +#define PTHREAD_STACK_MIN 24576
  73753. +
  73754. +/* Maximum number of timer expiration overruns. */
  73755. +#define DELAYTIMER_MAX 2147483647
  73756. +
  73757. +/* Maximum tty name length. */
  73758. +#define TTY_NAME_MAX 32
  73759. +
  73760. +/* Maximum login name length. This is arbitrary. */
  73761. +#define LOGIN_NAME_MAX 256
  73762. +
  73763. +/* Maximum host name length. */
  73764. +#define HOST_NAME_MAX 64
  73765. +
  73766. +/* Maximum message queue priority level. */
  73767. +#define MQ_PRIO_MAX 32768
  73768. +
  73769. +/* Maximum value the semaphore can have. */
  73770. +#define SEM_VALUE_MAX (2147483647)
  73771. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mathdef.h uClibc-git/libc/sysdeps/linux/sparc/bits/mathdef.h
  73772. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  73773. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/mathdef.h 2014-06-02 17:40:34.614715306 +0200
  73774. @@ -13,9 +13,8 @@
  73775. Lesser General Public License for more details.
  73776. You should have received a copy of the GNU Lesser General Public
  73777. - License along with the GNU C Library; if not, write to the Free
  73778. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73779. - 02111-1307 USA. */
  73780. + License along with the GNU C Library; if not, see
  73781. + <http://www.gnu.org/licenses/>. */
  73782. #if !defined _MATH_H && !defined _COMPLEX_H
  73783. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  73784. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mathinline.h uClibc-git/libc/sysdeps/linux/sparc/bits/mathinline.h
  73785. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
  73786. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/mathinline.h 2014-06-02 17:40:34.614715306 +0200
  73787. @@ -15,9 +15,8 @@
  73788. Lesser General Public License for more details.
  73789. You should have received a copy of the GNU Lesser General Public
  73790. - License along with the GNU C Library; if not, write to the Free
  73791. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73792. - 02111-1307 USA. */
  73793. + License along with the GNU C Library; if not, see
  73794. + <http://www.gnu.org/licenses/>. */
  73795. #ifndef _MATH_H
  73796. # error "Never use <bits/mathinline.h> directly; include <math.h> instead."
  73797. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mman.h uClibc-git/libc/sysdeps/linux/sparc/bits/mman.h
  73798. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
  73799. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/mman.h 2014-06-02 17:40:34.614715306 +0200
  73800. @@ -13,9 +13,8 @@
  73801. Lesser General Public License for more details.
  73802. You should have received a copy of the GNU Lesser General Public
  73803. - License along with the GNU C Library; if not, write to the Free
  73804. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73805. - 02111-1307 USA. */
  73806. + License along with the GNU C Library; if not, see
  73807. + <http://www.gnu.org/licenses/>. */
  73808. #ifndef _SYS_MMAN_H
  73809. # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
  73810. @@ -65,7 +64,7 @@
  73811. # define _MAP_NEW 0x80000000 /* Binary compatibility with SunOS. */
  73812. # define MAP_POPULATE 0x8000 /* Populate (prefault) pagetables. */
  73813. # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */
  73814. -# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
  73815. +# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
  73816. be uninitialized. */
  73817. #endif
  73818. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/msq.h uClibc-git/libc/sysdeps/linux/sparc/bits/msq.h
  73819. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
  73820. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/msq.h 2014-06-02 17:40:34.614715306 +0200
  73821. @@ -12,9 +12,8 @@
  73822. Lesser General Public License for more details.
  73823. You should have received a copy of the GNU Lesser General Public
  73824. - License along with the GNU C Library; if not, write to the Free
  73825. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73826. - 02111-1307 USA. */
  73827. + License along with the GNU C Library; if not, see
  73828. + <http://www.gnu.org/licenses/>. */
  73829. #ifndef _SYS_MSG_H
  73830. # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  73831. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/poll.h uClibc-git/libc/sysdeps/linux/sparc/bits/poll.h
  73832. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
  73833. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/poll.h 2014-06-02 17:40:34.634715416 +0200
  73834. @@ -12,9 +12,8 @@
  73835. Lesser General Public License for more details.
  73836. You should have received a copy of the GNU Lesser General Public
  73837. - License along with the GNU C Library; if not, write to the Free
  73838. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73839. - 02111-1307 USA. */
  73840. + License along with the GNU C Library; if not, see
  73841. + <http://www.gnu.org/licenses/>. */
  73842. #ifndef _SYS_POLL_H
  73843. # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
  73844. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/resource.h uClibc-git/libc/sysdeps/linux/sparc/bits/resource.h
  73845. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/resource.h 2012-05-15 09:20:09.000000000 +0200
  73846. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/resource.h 2014-06-02 17:40:34.634715416 +0200
  73847. @@ -14,9 +14,8 @@
  73848. Lesser General Public License for more details.
  73849. You should have received a copy of the GNU Lesser General Public
  73850. - License along with the GNU C Library; if not, write to the Free
  73851. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73852. - 02111-1307 USA. */
  73853. + License along with the GNU C Library; if not, see
  73854. + <http://www.gnu.org/licenses/>. */
  73855. #ifndef _SYS_RESOURCE_H
  73856. # error "Never use <bits/resource.h> directly; include <sys/resource.h> instead."
  73857. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sem.h uClibc-git/libc/sysdeps/linux/sparc/bits/sem.h
  73858. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
  73859. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/sem.h 2014-06-02 17:40:34.634715416 +0200
  73860. @@ -12,9 +12,8 @@
  73861. Lesser General Public License for more details.
  73862. You should have received a copy of the GNU Lesser General Public
  73863. - License along with the GNU C Library; if not, write to the Free
  73864. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73865. - 02111-1307 USA. */
  73866. + License along with the GNU C Library; if not, see
  73867. + <http://www.gnu.org/licenses/>. */
  73868. #ifndef _SYS_SEM_H
  73869. # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
  73870. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/setjmp.h uClibc-git/libc/sysdeps/linux/sparc/bits/setjmp.h
  73871. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  73872. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/setjmp.h 2014-06-02 17:40:34.634715416 +0200
  73873. @@ -1,4 +1,5 @@
  73874. -/* Copyright (C) 1997,1999,2000,2003 Free Software Foundation, Inc.
  73875. +/* Copyright (C) 1997, 1999, 2000, 2003, 2005, 2006
  73876. + Free Software Foundation, Inc.
  73877. This file is part of the GNU C Library.
  73878. The GNU C Library is free software; you can redistribute it and/or
  73879. @@ -12,9 +13,8 @@
  73880. Lesser General Public License for more details.
  73881. You should have received a copy of the GNU Lesser General Public
  73882. - License along with the GNU C Library; if not, write to the Free
  73883. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73884. - 02111-1307 USA. */
  73885. + License along with the GNU C Library; if not, see
  73886. + <http://www.gnu.org/licenses/>. */
  73887. #ifndef _BITS_SETJMP_H
  73888. #define _BITS_SETJMP_H 1
  73889. @@ -27,7 +27,6 @@
  73890. #if 0 /*__WORDSIZE == 64*/
  73891. -#ifndef _ASM
  73892. typedef struct __sparc64_jmp_buf
  73893. {
  73894. struct __sparc64_jmp_buf *uc_link;
  73895. @@ -55,30 +54,8 @@
  73896. } mc_fpregs;
  73897. } uc_mcontext;
  73898. } __jmp_buf[1];
  73899. -#endif
  73900. -
  73901. -/* Test if longjmp to JMPBUF would unwind the frame
  73902. - containing a local variable at ADDRESS. */
  73903. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  73904. - ((unsigned long int) (address) < (jmpbuf)->uc_mcontext.mc_fp)
  73905. -
  73906. #else
  73907. -
  73908. -#if defined __USE_MISC || defined _ASM
  73909. -# define JB_SP 0
  73910. -# define JB_FP 1
  73911. -# define JB_PC 2
  73912. -#endif
  73913. -
  73914. -#ifndef _ASM
  73915. typedef int __jmp_buf[3];
  73916. #endif
  73917. -/* Test if longjmp to JMPBUF would unwind the frame
  73918. - containing a local variable at ADDRESS. */
  73919. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  73920. - ((int) (address) < (jmpbuf)[JB_SP])
  73921. -
  73922. -#endif
  73923. -
  73924. #endif /* bits/setjmp.h */
  73925. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/shm.h uClibc-git/libc/sysdeps/linux/sparc/bits/shm.h
  73926. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  73927. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/shm.h 2014-06-02 17:40:34.638715439 +0200
  73928. @@ -13,9 +13,8 @@
  73929. Lesser General Public License for more details.
  73930. You should have received a copy of the GNU Lesser General Public
  73931. - License along with the GNU C Library; if not, write to the Free
  73932. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73933. - 02111-1307 USA. */
  73934. + License along with the GNU C Library; if not, see
  73935. + <http://www.gnu.org/licenses/>. */
  73936. #ifndef _SYS_SHM_H
  73937. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  73938. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigaction.h uClibc-git/libc/sysdeps/linux/sparc/bits/sigaction.h
  73939. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigaction.h 2012-05-15 09:20:09.000000000 +0200
  73940. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/sigaction.h 2014-06-02 17:40:34.638715439 +0200
  73941. @@ -13,9 +13,8 @@
  73942. Lesser General Public License for more details.
  73943. You should have received a copy of the GNU Lesser General Public
  73944. - License along with the GNU C Library; if not, write to the Free
  73945. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73946. - 02111-1307 USA. */
  73947. + License along with the GNU C Library; if not, see
  73948. + <http://www.gnu.org/licenses/>. */
  73949. #ifndef _SIGNAL_H
  73950. # error "Never include <bits/sigaction.h> directly; use <signal.h> instead."
  73951. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/sparc/bits/sigcontext.h
  73952. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
  73953. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/sigcontext.h 2014-06-02 17:40:34.638715439 +0200
  73954. @@ -12,9 +12,8 @@
  73955. Lesser General Public License for more details.
  73956. You should have received a copy of the GNU Lesser General Public
  73957. - License along with the GNU C Library; if not, write to the Free
  73958. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73959. - 02111-1307 USA. */
  73960. + License along with the GNU C Library; if not, see
  73961. + <http://www.gnu.org/licenses/>. */
  73962. #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
  73963. # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
  73964. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/sparc/bits/sigcontextinfo.h
  73965. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  73966. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/sigcontextinfo.h 2014-06-02 17:40:34.638715439 +0200
  73967. @@ -13,9 +13,8 @@
  73968. Lesser General Public License for more details.
  73969. You should have received a copy of the GNU Lesser General Public
  73970. - License along with the GNU C Library; if not, write to the Free
  73971. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73972. - 02111-1307 USA. */
  73973. + License along with the GNU C Library; if not, see
  73974. + <http://www.gnu.org/licenses/>. */
  73975. #define SIGCONTEXT struct sigcontext *
  73976. #define SIGCONTEXT_EXTRA_ARGS
  73977. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/siginfo.h uClibc-git/libc/sysdeps/linux/sparc/bits/siginfo.h
  73978. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/siginfo.h 2012-05-15 09:20:09.000000000 +0200
  73979. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/siginfo.h 2014-06-02 17:40:34.638715439 +0200
  73980. @@ -13,9 +13,8 @@
  73981. Lesser General Public License for more details.
  73982. You should have received a copy of the GNU Lesser General Public
  73983. - License along with the GNU C Library; if not, write to the Free
  73984. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  73985. - 02111-1307 USA. */
  73986. + License along with the GNU C Library; if not, see
  73987. + <http://www.gnu.org/licenses/>. */
  73988. #if !defined _SIGNAL_H && !defined __need_siginfo_t \
  73989. && !defined __need_sigevent_t
  73990. @@ -289,6 +288,10 @@
  73991. {
  73992. int _pad[__SIGEV_PAD_SIZE];
  73993. + /* When SIGEV_SIGNAL and SIGEV_THREAD_ID set, LWP ID of the
  73994. + thread to receive the signal. */
  73995. + __pid_t _tid;
  73996. +
  73997. struct
  73998. {
  73999. void (*_function) (sigval_t); /* Function to start. */
  74000. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/signum.h uClibc-git/libc/sysdeps/linux/sparc/bits/signum.h
  74001. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/signum.h 2012-05-15 09:20:09.000000000 +0200
  74002. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/signum.h 2014-06-02 17:40:34.638715439 +0200
  74003. @@ -13,9 +13,8 @@
  74004. Lesser General Public License for more details.
  74005. You should have received a copy of the GNU Lesser General Public
  74006. - License along with the GNU C Library; if not, write to the Free
  74007. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74008. - 02111-1307 USA. */
  74009. + License along with the GNU C Library; if not, see
  74010. + <http://www.gnu.org/licenses/>. */
  74011. #ifdef _SIGNAL_H
  74012. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigstack.h uClibc-git/libc/sysdeps/linux/sparc/bits/sigstack.h
  74013. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/sigstack.h 2012-05-15 09:20:09.000000000 +0200
  74014. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/sigstack.h 2014-06-02 17:40:34.638715439 +0200
  74015. @@ -13,9 +13,8 @@
  74016. Lesser General Public License for more details.
  74017. You should have received a copy of the GNU Lesser General Public
  74018. - License along with the GNU C Library; if not, write to the Free
  74019. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74020. - 02111-1307 USA. */
  74021. + License along with the GNU C Library; if not, see
  74022. + <http://www.gnu.org/licenses/>. */
  74023. #ifndef _SIGNAL_H
  74024. # error "Never include this file directly. Use <signal.h> instead"
  74025. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/socket.h uClibc-git/libc/sysdeps/linux/sparc/bits/socket.h
  74026. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/socket.h 2012-05-15 09:20:09.000000000 +0200
  74027. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/socket.h 1970-01-01 01:00:00.000000000 +0100
  74028. @@ -1,376 +0,0 @@
  74029. -/* System-specific socket constants and types. Linux version.
  74030. - Copyright (C) 1991,1992,1994-2001,2004,2006 Free Software Foundation, Inc.
  74031. - This file is part of the GNU C Library.
  74032. -
  74033. - The GNU C Library is free software; you can redistribute it and/or
  74034. - modify it under the terms of the GNU Lesser General Public
  74035. - License as published by the Free Software Foundation; either
  74036. - version 2.1 of the License, or (at your option) any later version.
  74037. -
  74038. - The GNU C Library is distributed in the hope that it will be useful,
  74039. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  74040. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  74041. - Lesser General Public License for more details.
  74042. -
  74043. - You should have received a copy of the GNU Lesser General Public
  74044. - License along with the GNU C Library; if not, write to the Free
  74045. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74046. - 02111-1307 USA. */
  74047. -
  74048. -#ifndef __BITS_SOCKET_H
  74049. -#define __BITS_SOCKET_H
  74050. -
  74051. -#if !defined _SYS_SOCKET_H && !defined _NETINET_IN_H
  74052. -# error "Never include <bits/socket.h> directly; use <sys/socket.h> instead."
  74053. -#endif
  74054. -
  74055. -#define __need_size_t
  74056. -#define __need_NULL
  74057. -#include <stddef.h>
  74058. -
  74059. -#include <limits.h>
  74060. -#include <sys/types.h>
  74061. -
  74062. -/* Type for length arguments in socket calls. */
  74063. -#ifndef __socklen_t_defined
  74064. -typedef __socklen_t socklen_t;
  74065. -# define __socklen_t_defined
  74066. -#endif
  74067. -
  74068. -/* Types of sockets. */
  74069. -enum __socket_type
  74070. -{
  74071. - SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
  74072. - byte streams. */
  74073. -#define SOCK_STREAM SOCK_STREAM
  74074. - SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
  74075. - of fixed maximum length. */
  74076. -#define SOCK_DGRAM SOCK_DGRAM
  74077. - SOCK_RAW = 3, /* Raw protocol interface. */
  74078. -#define SOCK_RAW SOCK_RAW
  74079. - SOCK_RDM = 4, /* Reliably-delivered messages. */
  74080. -#define SOCK_RDM SOCK_RDM
  74081. - SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
  74082. - datagrams of fixed maximum length. */
  74083. -#define SOCK_SEQPACKET SOCK_SEQPACKET
  74084. - SOCK_PACKET = 10 /* Linux specific way of getting packets
  74085. - at the dev level. For writing rarp and
  74086. - other similar things on the user level. */
  74087. -#define SOCK_PACKET SOCK_PACKET
  74088. -};
  74089. -
  74090. -/* Protocol families. */
  74091. -#define PF_UNSPEC 0 /* Unspecified. */
  74092. -#define PF_LOCAL 1 /* Local to host (pipes and file-domain). */
  74093. -#define PF_UNIX PF_LOCAL /* Old BSD name for PF_LOCAL. */
  74094. -#define PF_FILE PF_LOCAL /* Another non-standard name for PF_LOCAL. */
  74095. -#define PF_INET 2 /* IP protocol family. */
  74096. -#define PF_AX25 3 /* Amateur Radio AX.25. */
  74097. -#define PF_IPX 4 /* Novell Internet Protocol. */
  74098. -#define PF_APPLETALK 5 /* Appletalk DDP. */
  74099. -#define PF_NETROM 6 /* Amateur radio NetROM. */
  74100. -#define PF_BRIDGE 7 /* Multiprotocol bridge. */
  74101. -#define PF_ATMPVC 8 /* ATM PVCs. */
  74102. -#define PF_X25 9 /* Reserved for X.25 project. */
  74103. -#define PF_INET6 10 /* IP version 6. */
  74104. -#define PF_ROSE 11 /* Amateur Radio X.25 PLP. */
  74105. -#define PF_DECnet 12 /* Reserved for DECnet project. */
  74106. -#define PF_NETBEUI 13 /* Reserved for 802.2LLC project. */
  74107. -#define PF_SECURITY 14 /* Security callback pseudo AF. */
  74108. -#define PF_KEY 15 /* PF_KEY key management API. */
  74109. -#define PF_NETLINK 16
  74110. -#define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD. */
  74111. -#define PF_PACKET 17 /* Packet family. */
  74112. -#define PF_ASH 18 /* Ash. */
  74113. -#define PF_ECONET 19 /* Acorn Econet. */
  74114. -#define PF_ATMSVC 20 /* ATM SVCs. */
  74115. -#define PF_SNA 22 /* Linux SNA Project */
  74116. -#define PF_IRDA 23 /* IRDA sockets. */
  74117. -#define PF_PPPOX 24 /* PPPoX sockets. */
  74118. -#define PF_WANPIPE 25 /* Wanpipe API sockets. */
  74119. -#define PF_LLC 26 /* Linux LLC. */
  74120. -#define PF_CAN 29 /* Controller Area Network. */
  74121. -#define PF_TIPC 30 /* TIPC sockets. */
  74122. -#define PF_BLUETOOTH 31 /* Bluetooth sockets. */
  74123. -#define PF_IUCV 32 /* IUCV sockets. */
  74124. -#define PF_RXRPC 33 /* RxRPC sockets. */
  74125. -#define PF_ISDN 34 /* mISDN sockets. */
  74126. -#define PF_PHONET 35 /* Phonet sockets. */
  74127. -#define PF_IEEE802154 36 /* IEEE 802.15.4 sockets. */
  74128. -#define PF_CAIF 37 /* CAIF sockets. */
  74129. -#define PF_ALG 38 /* Algorithm sockets. */
  74130. -#define PF_MAX 39 /* For now.. */
  74131. -
  74132. -/* Address families. */
  74133. -#define AF_UNSPEC PF_UNSPEC
  74134. -#define AF_LOCAL PF_LOCAL
  74135. -#define AF_UNIX PF_UNIX
  74136. -#define AF_FILE PF_FILE
  74137. -#define AF_INET PF_INET
  74138. -#define AF_AX25 PF_AX25
  74139. -#define AF_IPX PF_IPX
  74140. -#define AF_APPLETALK PF_APPLETALK
  74141. -#define AF_NETROM PF_NETROM
  74142. -#define AF_BRIDGE PF_BRIDGE
  74143. -#define AF_ATMPVC PF_ATMPVC
  74144. -#define AF_X25 PF_X25
  74145. -#define AF_INET6 PF_INET6
  74146. -#define AF_ROSE PF_ROSE
  74147. -#define AF_DECnet PF_DECnet
  74148. -#define AF_NETBEUI PF_NETBEUI
  74149. -#define AF_SECURITY PF_SECURITY
  74150. -#define AF_KEY PF_KEY
  74151. -#define AF_NETLINK PF_NETLINK
  74152. -#define AF_ROUTE PF_ROUTE
  74153. -#define AF_PACKET PF_PACKET
  74154. -#define AF_ASH PF_ASH
  74155. -#define AF_ECONET PF_ECONET
  74156. -#define AF_ATMSVC PF_ATMSVC
  74157. -#define AF_SNA PF_SNA
  74158. -#define AF_IRDA PF_IRDA
  74159. -#define AF_PPPOX PF_PPPOX
  74160. -#define AF_WANPIPE PF_WANPIPE
  74161. -#define AF_LLC PF_LLC
  74162. -#define AF_CAN PF_CAN
  74163. -#define AF_TIPC PF_TIPC
  74164. -#define AF_BLUETOOTH PF_BLUETOOTH
  74165. -#define AF_IUCV PF_IUCV
  74166. -#define AF_RXRPC PF_RXRPC
  74167. -#define AF_ISDN PF_ISDN
  74168. -#define AF_PHONET PF_PHONET
  74169. -#define AF_IEEE802154 PF_IEEE802154
  74170. -#define AF_CAIF PF_CAIF
  74171. -#define AF_ALG PF_ALG
  74172. -#define AF_MAX PF_MAX
  74173. -
  74174. -/* Socket level values. Others are defined in the appropriate headers.
  74175. -
  74176. - XXX These definitions also should go into the appropriate headers as
  74177. - far as they are available. */
  74178. -#define SOL_RAW 255
  74179. -#define SOL_DECNET 261
  74180. -#define SOL_X25 262
  74181. -#define SOL_PACKET 263
  74182. -#define SOL_ATM 264 /* ATM layer (cell level). */
  74183. -#define SOL_AAL 265 /* ATM Adaption Layer (packet level). */
  74184. -#define SOL_IRDA 266
  74185. -
  74186. -/* Maximum queue length specifiable by listen. */
  74187. -#define SOMAXCONN 128
  74188. -
  74189. -/* Get the definition of the macro to define the common sockaddr members. */
  74190. -#include <bits/sockaddr.h>
  74191. -
  74192. -/* Structure describing a generic socket address. */
  74193. -struct sockaddr
  74194. - {
  74195. - __SOCKADDR_COMMON (sa_); /* Common data: address family and length. */
  74196. - char sa_data[14]; /* Address data. */
  74197. - };
  74198. -
  74199. -
  74200. -/* Structure large enough to hold any socket address (with the historical
  74201. - exception of AF_UNIX). We reserve 128 bytes. */
  74202. -#if ULONG_MAX > 0xffffffff
  74203. -# define __ss_aligntype __uint64_t
  74204. -#else
  74205. -# define __ss_aligntype __uint32_t
  74206. -#endif
  74207. -#define _SS_SIZE 128
  74208. -#define _SS_PADSIZE (_SS_SIZE - (2 * sizeof (__ss_aligntype)))
  74209. -
  74210. -struct sockaddr_storage
  74211. - {
  74212. - __SOCKADDR_COMMON (ss_); /* Address family, etc. */
  74213. - __ss_aligntype __ss_align; /* Force desired alignment. */
  74214. - char __ss_padding[_SS_PADSIZE];
  74215. - };
  74216. -
  74217. -
  74218. -/* Bits in the FLAGS argument to `send', `recv', et al. */
  74219. -enum
  74220. - {
  74221. - MSG_OOB = 0x01, /* Process out-of-band data. */
  74222. -#define MSG_OOB MSG_OOB
  74223. - MSG_PEEK = 0x02, /* Peek at incoming messages. */
  74224. -#define MSG_PEEK MSG_PEEK
  74225. - MSG_DONTROUTE = 0x04, /* Don't use local routing. */
  74226. -#define MSG_DONTROUTE MSG_DONTROUTE
  74227. -#ifdef __USE_GNU
  74228. - /* DECnet uses a different name. */
  74229. - MSG_TRYHARD = MSG_DONTROUTE,
  74230. -# define MSG_TRYHARD MSG_DONTROUTE
  74231. -#endif
  74232. - MSG_CTRUNC = 0x08, /* Control data lost before delivery. */
  74233. -#define MSG_CTRUNC MSG_CTRUNC
  74234. - MSG_PROXY = 0x10, /* Supply or ask second address. */
  74235. -#define MSG_PROXY MSG_PROXY
  74236. - MSG_TRUNC = 0x20,
  74237. -#define MSG_TRUNC MSG_TRUNC
  74238. - MSG_DONTWAIT = 0x40, /* Nonblocking IO. */
  74239. -#define MSG_DONTWAIT MSG_DONTWAIT
  74240. - MSG_EOR = 0x80, /* End of record. */
  74241. -#define MSG_EOR MSG_EOR
  74242. - MSG_WAITALL = 0x100, /* Wait for a full request. */
  74243. -#define MSG_WAITALL MSG_WAITALL
  74244. - MSG_FIN = 0x200,
  74245. -#define MSG_FIN MSG_FIN
  74246. - MSG_SYN = 0x400,
  74247. -#define MSG_SYN MSG_SYN
  74248. - MSG_CONFIRM = 0x800, /* Confirm path validity. */
  74249. -#define MSG_CONFIRM MSG_CONFIRM
  74250. - MSG_RST = 0x1000,
  74251. -#define MSG_RST MSG_RST
  74252. - MSG_ERRQUEUE = 0x2000, /* Fetch message from error queue. */
  74253. -#define MSG_ERRQUEUE MSG_ERRQUEUE
  74254. - MSG_NOSIGNAL = 0x4000, /* Do not generate SIGPIPE. */
  74255. -#define MSG_NOSIGNAL MSG_NOSIGNAL
  74256. - MSG_MORE = 0x8000 /* Sender will send more. */
  74257. -#define MSG_MORE MSG_MORE
  74258. - };
  74259. -
  74260. -
  74261. -/* Structure describing messages sent by
  74262. - `sendmsg' and received by `recvmsg'. */
  74263. -/* Note: do not change these members to match glibc; these match the
  74264. - SuSv3 spec already (e.g. msg_iovlen/msg_controllen).
  74265. - http://www.opengroup.org/onlinepubs/009695399/basedefs/sys/socket.h.html */
  74266. -/* Note: linux kernel uses __kernel_size_t (which is 8bytes on 64bit
  74267. - platforms, and 4bytes on 32bit platforms) for msg_iovlen/msg_controllen */
  74268. -struct msghdr
  74269. - {
  74270. - void *msg_name; /* Address to send to/receive from. */
  74271. - socklen_t msg_namelen; /* Length of address data. */
  74272. -
  74273. - struct iovec *msg_iov; /* Vector of data to send/receive into. */
  74274. -#if __WORDSIZE == 32
  74275. - int msg_iovlen; /* Number of elements in the vector. */
  74276. -#else
  74277. - size_t msg_iovlen; /* Number of elements in the vector. */
  74278. -#endif
  74279. -
  74280. - void *msg_control; /* Ancillary data (eg BSD filedesc passing). */
  74281. -#if __WORDSIZE == 32
  74282. - socklen_t msg_controllen; /* Ancillary data buffer length. */
  74283. -#else
  74284. - size_t msg_controllen; /* Ancillary data buffer length. */
  74285. -#endif
  74286. -
  74287. - int msg_flags; /* Flags on received message. */
  74288. - };
  74289. -
  74290. -/* Structure used for storage of ancillary data object information. */
  74291. -struct cmsghdr
  74292. - {
  74293. - size_t cmsg_len; /* Length of data in cmsg_data plus length
  74294. - of cmsghdr structure. */
  74295. - int cmsg_level; /* Originating protocol. */
  74296. - int cmsg_type; /* Protocol specific type. */
  74297. -#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
  74298. - __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data. */
  74299. -#endif
  74300. - };
  74301. -
  74302. -/* Ancillary data object manipulation macros. */
  74303. -#if (!defined __STRICT_ANSI__ && __GNUC__ >= 2) || __STDC_VERSION__ >= 199901L
  74304. -# define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data)
  74305. -#else
  74306. -# define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1))
  74307. -#endif
  74308. -#define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg)
  74309. -#define CMSG_FIRSTHDR(mhdr) \
  74310. - ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \
  74311. - ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) NULL)
  74312. -#define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \
  74313. - & (size_t) ~(sizeof (size_t) - 1))
  74314. -#define CMSG_SPACE(len) (CMSG_ALIGN (len) \
  74315. - + CMSG_ALIGN (sizeof (struct cmsghdr)))
  74316. -#define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len))
  74317. -
  74318. -extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
  74319. - struct cmsghdr *__cmsg) __THROW;
  74320. -libc_hidden_proto(__cmsg_nxthdr)
  74321. -#ifdef __USE_EXTERN_INLINES
  74322. -# ifndef _EXTERN_INLINE
  74323. -# define _EXTERN_INLINE extern __inline
  74324. -# endif
  74325. -_EXTERN_INLINE struct cmsghdr *
  74326. -__NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg))
  74327. -{
  74328. - if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
  74329. - /* The kernel header does this so there may be a reason. */
  74330. - return 0;
  74331. -
  74332. - __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
  74333. - + CMSG_ALIGN (__cmsg->cmsg_len));
  74334. - if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
  74335. - + __mhdr->msg_controllen)
  74336. - || ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)
  74337. - > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
  74338. - /* No more entries. */
  74339. - return 0;
  74340. - return __cmsg;
  74341. -}
  74342. -#endif /* Use `extern inline'. */
  74343. -
  74344. -/* Socket level message types. This must match the definitions in
  74345. - <linux/socket.h>. */
  74346. -enum
  74347. - {
  74348. - SCM_RIGHTS = 0x01 /* Transfer file descriptors. */
  74349. -#define SCM_RIGHTS SCM_RIGHTS
  74350. -#ifdef __USE_BSD
  74351. - , SCM_CREDENTIALS = 0x02 /* Credentials passing. */
  74352. -# define SCM_CREDENTIALS SCM_CREDENTIALS
  74353. -#endif
  74354. - };
  74355. -
  74356. -/* User visible structure for SCM_CREDENTIALS message */
  74357. -
  74358. -struct ucred
  74359. -{
  74360. - pid_t pid; /* PID of sending process. */
  74361. - uid_t uid; /* UID of sending process. */
  74362. - gid_t gid; /* GID of sending process. */
  74363. -};
  74364. -
  74365. -/* Get socket manipulation related informations from kernel headers. */
  74366. -#ifndef __GLIBC__
  74367. -#define __GLIBC__ 2
  74368. -#include <asm/socket.h>
  74369. -#undef __GLIBC__
  74370. -#else
  74371. -#include <asm/socket.h>
  74372. -#endif
  74373. -
  74374. -
  74375. -/* Structure used to manipulate the SO_LINGER option. */
  74376. -struct linger
  74377. - {
  74378. - int l_onoff; /* Nonzero to linger on close. */
  74379. - int l_linger; /* Time to linger. */
  74380. - };
  74381. -
  74382. -/* Prefer socketcall over all these for sparc32,
  74383. - since it only has socketcall */
  74384. -#ifndef __arch64__
  74385. - #undef __NR_accept
  74386. - #undef __NR_bind
  74387. - #undef __NR_connect
  74388. - #undef __NR_getpeername
  74389. - #undef __NR_getsockname
  74390. - #undef __NR_getsockopt
  74391. - #undef __NR_listen
  74392. - #undef __NR_recv
  74393. - #undef __NR_recvfrom
  74394. - #undef __NR_recvmsg
  74395. - #undef __NR_send
  74396. - #undef __NR_sendmsg
  74397. - #undef __NR_sendto
  74398. - #undef __NR_setsockopt
  74399. - #undef __NR_shutdown
  74400. - #undef __NR_socket
  74401. - #undef __NR_socketpair
  74402. -#endif
  74403. -
  74404. -#endif /* bits/socket.h */
  74405. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/socket_type.h uClibc-git/libc/sysdeps/linux/sparc/bits/socket_type.h
  74406. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/socket_type.h 1970-01-01 01:00:00.000000000 +0100
  74407. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/socket_type.h 2014-06-02 17:40:34.638715439 +0200
  74408. @@ -0,0 +1,54 @@
  74409. +/* System-specific socket constants and types. Linux version.
  74410. + Copyright (C) 1991,1992,1994-2001,2004,2006 Free Software Foundation, Inc.
  74411. + This file is part of the GNU C Library.
  74412. +
  74413. + The GNU C Library is free software; you can redistribute it and/or
  74414. + modify it under the terms of the GNU Lesser General Public
  74415. + License as published by the Free Software Foundation; either
  74416. + version 2.1 of the License, or (at your option) any later version.
  74417. +
  74418. + The GNU C Library is distributed in the hope that it will be useful,
  74419. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  74420. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  74421. + Lesser General Public License for more details.
  74422. +
  74423. + You should have received a copy of the GNU Lesser General Public
  74424. + License along with the GNU C Library; if not, see
  74425. + <http://www.gnu.org/licenses/>. */
  74426. +
  74427. +#ifndef _SYS_SOCKET_H
  74428. +# error "Never include <bits/socket_type.h> directly; use <sys/socket.h> instead."
  74429. +#endif
  74430. +
  74431. +/* Types of sockets. */
  74432. +enum __socket_type
  74433. +{
  74434. + SOCK_STREAM = 1, /* Sequenced, reliable, connection-based
  74435. + byte streams. */
  74436. +#define SOCK_STREAM SOCK_STREAM
  74437. + SOCK_DGRAM = 2, /* Connectionless, unreliable datagrams
  74438. + of fixed maximum length. */
  74439. +#define SOCK_DGRAM SOCK_DGRAM
  74440. + SOCK_RAW = 3, /* Raw protocol interface. */
  74441. +#define SOCK_RAW SOCK_RAW
  74442. + SOCK_RDM = 4, /* Reliably-delivered messages. */
  74443. +#define SOCK_RDM SOCK_RDM
  74444. + SOCK_SEQPACKET = 5, /* Sequenced, reliable, connection-based,
  74445. + datagrams of fixed maximum length. */
  74446. +#define SOCK_SEQPACKET SOCK_SEQPACKET
  74447. + SOCK_DCCP = 6, /* Datagram Congestion Control Protocol. */
  74448. +#define SOCK_DCCP SOCK_DCCP
  74449. + SOCK_PACKET = 10, /* Linux specific way of getting packets
  74450. + at the dev level. For writing rarp and
  74451. + other similar things on the user level. */
  74452. +#define SOCK_PACKET SOCK_PACKET
  74453. +
  74454. + /* Flags to be ORed into the type parameter of socket and socketpair. */
  74455. +
  74456. + SOCK_CLOEXEC = 0x400000, /* Atomically set close-on-exec flag for the
  74457. + new descriptor(s). */
  74458. +#define SOCK_CLOEXEC SOCK_CLOEXEC
  74459. + SOCK_NONBLOCK = 0x004000 /* Atomically mark descriptor(s) as
  74460. + non-blocking. */
  74461. +#define SOCK_NONBLOCK SOCK_NONBLOCK
  74462. +};
  74463. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/sparc/bits/stackinfo.h
  74464. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  74465. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/stackinfo.h 2014-06-02 17:40:34.638715439 +0200
  74466. @@ -12,9 +12,8 @@
  74467. Lesser General Public License for more details.
  74468. You should have received a copy of the GNU Lesser General Public
  74469. - License along with the GNU C Library; if not, write to the Free
  74470. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74471. - 02111-1307 USA. */
  74472. + License along with the GNU C Library; if not, see
  74473. + <http://www.gnu.org/licenses/>. */
  74474. /* This file contains a bit of information about the stack allocation
  74475. of the processor. */
  74476. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/stat.h uClibc-git/libc/sysdeps/linux/sparc/bits/stat.h
  74477. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  74478. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/stat.h 2014-06-02 17:40:34.638715439 +0200
  74479. @@ -12,9 +12,8 @@
  74480. Lesser General Public License for more details.
  74481. You should have received a copy of the GNU Lesser General Public
  74482. - License along with the GNU C Library; if not, write to the Free
  74483. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74484. - 02111-1307 USA. */
  74485. + License along with the GNU C Library; if not, see
  74486. + <http://www.gnu.org/licenses/>. */
  74487. #ifndef _SYS_STAT_H
  74488. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  74489. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/termios.h uClibc-git/libc/sysdeps/linux/sparc/bits/termios.h
  74490. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/termios.h 2012-05-15 09:20:09.000000000 +0200
  74491. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/termios.h 2014-06-02 17:40:34.638715439 +0200
  74492. @@ -14,9 +14,8 @@
  74493. Lesser General Public License for more details.
  74494. You should have received a copy of the GNU Lesser General Public
  74495. - License along with the GNU C Library; if not, write to the Free
  74496. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74497. - 02111-1307 USA. */
  74498. + License along with the GNU C Library; if not, see
  74499. + <http://www.gnu.org/licenses/>. */
  74500. #ifndef _TERMIOS_H
  74501. # error "Never include <bits/termios.h> directly; use <termios.h> instead."
  74502. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/typesizes.h uClibc-git/libc/sysdeps/linux/sparc/bits/typesizes.h
  74503. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
  74504. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/typesizes.h 2014-06-02 17:40:34.638715439 +0200
  74505. @@ -13,9 +13,8 @@
  74506. Lesser General Public License for more details.
  74507. You should have received a copy of the GNU Lesser General Public
  74508. - License along with the GNU C Library; if not, write to the Free
  74509. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74510. - 02111-1307 USA. */
  74511. + License along with the GNU C Library; if not, see
  74512. + <http://www.gnu.org/licenses/>. */
  74513. #ifndef _BITS_TYPES_H
  74514. # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
  74515. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h
  74516. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  74517. +++ uClibc-git/libc/sysdeps/linux/sparc/bits/uClibc_arch_features.h 2014-06-02 17:40:34.638715439 +0200
  74518. @@ -11,8 +11,8 @@
  74519. /* can your target use syscall6() for mmap ? */
  74520. #define __UCLIBC_MMAP_HAS_6_ARGS__
  74521. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  74522. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  74523. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  74524. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  74525. /* does your target have a broken create_module() ? */
  74526. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  74527. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/brk.c uClibc-git/libc/sysdeps/linux/sparc/brk.c
  74528. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/brk.c 2012-05-15 09:20:09.000000000 +0200
  74529. +++ uClibc-git/libc/sysdeps/linux/sparc/brk.c 2014-06-02 17:40:34.638715439 +0200
  74530. @@ -13,9 +13,8 @@
  74531. Lesser General Public License for more details.
  74532. You should have received a copy of the GNU Lesser General Public
  74533. - License along with the GNU C Library; if not, write to the Free
  74534. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74535. - 02111-1307 USA. */
  74536. + License along with the GNU C Library; if not, see
  74537. + <http://www.gnu.org/licenses/>. */
  74538. #include <errno.h>
  74539. #include <unistd.h>
  74540. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/clone.S uClibc-git/libc/sysdeps/linux/sparc/clone.S
  74541. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/clone.S 2012-05-15 09:20:09.000000000 +0200
  74542. +++ uClibc-git/libc/sysdeps/linux/sparc/clone.S 2014-06-02 17:40:34.638715439 +0200
  74543. @@ -14,9 +14,8 @@
  74544. Lesser General Public License for more details.
  74545. You should have received a copy of the GNU Lesser General Public
  74546. - License along with the GNU C Library; if not, write to the Free
  74547. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74548. - 02111-1307 USA. */
  74549. + License along with the GNU C Library; if not, see
  74550. + <http://www.gnu.org/licenses/>. */
  74551. /* clone() is even more special than fork() as it mucks with stacks
  74552. and invokes a function in the right context after its all over. */
  74553. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/crt1.S uClibc-git/libc/sysdeps/linux/sparc/crt1.S
  74554. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/crt1.S 2012-05-15 09:20:09.000000000 +0200
  74555. +++ uClibc-git/libc/sysdeps/linux/sparc/crt1.S 2014-06-02 17:40:34.638715439 +0200
  74556. @@ -31,9 +31,8 @@
  74557. Lesser General Public License for more details.
  74558. You should have received a copy of the GNU Lesser General Public
  74559. - License along with the GNU C Library; if not, write to the Free
  74560. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74561. - 02111-1307 USA. */
  74562. + License along with the GNU C Library; if not, see
  74563. + <http://www.gnu.org/licenses/>. */
  74564. /* Originally based on glibc's sysdeps/sparc/sparc{32,64}/elf/start.S */
  74565. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/fork.S uClibc-git/libc/sysdeps/linux/sparc/fork.S
  74566. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/fork.S 2012-05-15 09:20:09.000000000 +0200
  74567. +++ uClibc-git/libc/sysdeps/linux/sparc/fork.S 2014-06-02 17:40:34.638715439 +0200
  74568. @@ -13,9 +13,8 @@
  74569. Lesser General Public License for more details.
  74570. You should have received a copy of the GNU Lesser General Public
  74571. - License along with the GNU C Library; if not, write to the Free
  74572. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74573. - 02111-1307 USA. */
  74574. + License along with the GNU C Library; if not, see
  74575. + <http://www.gnu.org/licenses/>. */
  74576. /* Code taken from glibc2.2.2/sysdeps/unix/sysv/linux/sparc/vfork.S */
  74577. @@ -23,11 +22,14 @@
  74578. #include <sys/syscall.h>
  74579. .text
  74580. -.global __libc_fork
  74581. -.type __libc_fork,%function
  74582. +.global fork
  74583. +#ifdef __UCLIBC_HAS_THREADS__
  74584. +.weak fork
  74585. +#endif
  74586. +.type fork,%function
  74587. .align 4
  74588. -__libc_fork:
  74589. +fork:
  74590. mov __NR_fork, %g1
  74591. ta 0x10
  74592. bcc,a 9000f
  74593. @@ -44,6 +46,8 @@
  74594. retl
  74595. and %o0, %o1, %o0
  74596. -.size __libc_fork,.-__libc_fork
  74597. -weak_alias(__libc_fork,fork)
  74598. -libc_hidden_weak(fork)
  74599. +.size fork,.-fork
  74600. +#ifdef __UCLIBC_HAS_THREADS__
  74601. +strong_alias(fork,__libc_fork)
  74602. +#endif
  74603. +libc_hidden_def(fork)
  74604. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/fpu_control.h uClibc-git/libc/sysdeps/linux/sparc/fpu_control.h
  74605. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  74606. +++ uClibc-git/libc/sysdeps/linux/sparc/fpu_control.h 2014-06-02 17:40:34.638715439 +0200
  74607. @@ -14,9 +14,8 @@
  74608. Lesser General Public License for more details.
  74609. You should have received a copy of the GNU Lesser General Public
  74610. - License along with the GNU C Library; if not, write to the Free
  74611. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74612. - 02111-1307 USA. */
  74613. + License along with the GNU C Library; if not, see
  74614. + <http://www.gnu.org/licenses/>. */
  74615. #ifndef _FPU_CONTROL_H
  74616. #define _FPU_CONTROL_H 1
  74617. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/sparc/jmpbuf-offsets.h
  74618. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  74619. +++ uClibc-git/libc/sysdeps/linux/sparc/jmpbuf-offsets.h 2014-06-02 17:40:34.638715439 +0200
  74620. @@ -0,0 +1,29 @@
  74621. +/* Private macros for accessing __jmp_buf contents. SPARC version.
  74622. + Copyright (C) 2006 Free Software Foundation, Inc.
  74623. + This file is part of the GNU C Library.
  74624. +
  74625. + The GNU C Library is free software; you can redistribute it and/or
  74626. + modify it under the terms of the GNU Lesser General Public
  74627. + License as published by the Free Software Foundation; either
  74628. + version 2.1 of the License, or (at your option) any later version.
  74629. +
  74630. + The GNU C Library is distributed in the hope that it will be useful,
  74631. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  74632. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  74633. + Lesser General Public License for more details.
  74634. +
  74635. + You should have received a copy of the GNU Lesser General Public
  74636. + License along with the GNU C Library; if not, see
  74637. + <http://www.gnu.org/licenses/>. */
  74638. +
  74639. +#include <bits/wordsize.h>
  74640. +
  74641. +#if __WORDSIZE == 64
  74642. +#define O_mask_was_saved 512
  74643. +#define O_gregs 32
  74644. +#define O_g1 (O_gregs + 4*8)
  74645. +#else
  74646. +#define JB_SP 0
  74647. +#define JB_FP 1
  74648. +#define JB_PC 2
  74649. +#endif
  74650. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/sparc/jmpbuf-unwind.h
  74651. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  74652. +++ uClibc-git/libc/sysdeps/linux/sparc/jmpbuf-unwind.h 2014-06-02 17:40:34.638715439 +0200
  74653. @@ -0,0 +1,31 @@
  74654. +/*
  74655. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  74656. + *
  74657. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  74658. + */
  74659. +#include <setjmp.h>
  74660. +#include <jmpbuf-offsets.h>
  74661. +
  74662. +#if __WORDSIZE == 64
  74663. +
  74664. +/* Test if longjmp to JMPBUF would unwind the frame
  74665. + containing a local variable at ADDRESS. */
  74666. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  74667. + ((unsigned long int) (address) < (jmpbuf)->uc_mcontext.mc_fp)
  74668. +
  74669. +#else
  74670. +
  74671. +/* Test if longjmp to JMPBUF would unwind the frame
  74672. + containing a local variable at ADDRESS. */
  74673. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  74674. + ((int) (address) < (jmpbuf)[JB_SP])
  74675. +
  74676. +#endif
  74677. +
  74678. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  74679. +#if defined(__arch64__)
  74680. +#include "sparc64/jmpbuf-unwind.h"
  74681. +#else
  74682. +#include "sparc32/jmpbuf-unwind.h"
  74683. +#endif
  74684. +#endif
  74685. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/__longjmp.S uClibc-git/libc/sysdeps/linux/sparc/__longjmp.S
  74686. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  74687. +++ uClibc-git/libc/sysdeps/linux/sparc/__longjmp.S 2014-06-02 17:40:34.610715283 +0200
  74688. @@ -12,16 +12,11 @@
  74689. Lesser General Public License for more details.
  74690. You should have received a copy of the GNU Lesser General Public
  74691. - License along with the GNU C Library; if not, write to the Free
  74692. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74693. - 02111-1307 USA. */
  74694. + License along with the GNU C Library; if not, see
  74695. + <http://www.gnu.org/licenses/>. */
  74696. -#include <features.h>
  74697. -#include <sys/syscall.h>
  74698. +#include <jmpbuf-offsets.h>
  74699. -#define _ASM 1
  74700. -#define _SETJMP_H
  74701. -#include <bits/setjmp.h>
  74702. #define ENV(base,reg) [%base + (reg * 4)]
  74703. #define ST_FLUSH_WINDOWS 3
  74704. #define RW_FP [%fp + 0x48]
  74705. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/Makefile.arch uClibc-git/libc/sysdeps/linux/sparc/Makefile.arch
  74706. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  74707. +++ uClibc-git/libc/sysdeps/linux/sparc/Makefile.arch 2014-06-02 17:40:34.610715283 +0200
  74708. @@ -5,25 +5,23 @@
  74709. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  74710. #
  74711. -CSRC := brk.c __syscall_error.c sigaction.c
  74712. +CSRC-y := brk.c __syscall_error.c sigaction.c
  74713. -SSRC := \
  74714. +SSRC-y := \
  74715. __longjmp.S setjmp.S bsd-setjmp.S bsd-_setjmp.S \
  74716. syscall.S urem.S udiv.S umul.S sdiv.S rem.S pipe.S
  74717. -ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  74718. -SSRC += fork.S vfork.S clone.S
  74719. -endif
  74720. +SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += fork.S vfork.S clone.S
  74721. # check weather __LONG_DOUBLE_128__ is defined (long double support)
  74722. UCLIBC_SPARC_HAS_LONG_DOUBLE=$(shell if [ "x`$(CC) -E -dM -xc /dev/null 2>&1 | grep __LONG_DOUBLE_128__`" != "x" ]; then echo "y"; fi)
  74723. ifeq ($(UCLIBC_SPARC_HAS_LONG_DOUBLE),y)
  74724. -CSRC += $(foreach f, \
  74725. +CSRC-y += $(addprefix soft-fp/, \
  74726. q_div.c q_fle.c q_mul.c q_qtoll.c q_stoq.c \
  74727. mp_clz_tab.c q_dtoq.c q_flt.c q_neg.c q_qtos.c q_sub.c \
  74728. q_add.c q_feq.c q_fne.c q_qtod.c q_qtou.c q_ulltoq.c \
  74729. q_cmp.c q_fge.c q_itoq.c q_qtoull.c q_util.c \
  74730. - q_cmpe.c q_fgt.c q_lltoq.c q_qtoi.c q_sqrt.c q_utoq.c, soft-fp/$(f))
  74731. + q_cmpe.c q_fgt.c q_lltoq.c q_qtoi.c q_sqrt.c q_utoq.c)
  74732. else
  74733. -CSRC += qp_ops.c
  74734. +CSRC-y += qp_ops.c
  74735. endif
  74736. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/pipe.S uClibc-git/libc/sysdeps/linux/sparc/pipe.S
  74737. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/pipe.S 2012-05-15 09:20:09.000000000 +0200
  74738. +++ uClibc-git/libc/sysdeps/linux/sparc/pipe.S 2014-06-02 17:40:34.638715439 +0200
  74739. @@ -13,10 +13,9 @@
  74740. Lesser General Public License for more details.
  74741. You should have received a copy of the GNU Lesser General Public
  74742. - License along with the GNU C Library; if not, write to the Free
  74743. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74744. - 02111-1307 USA.
  74745. -
  74746. + License along with the GNU C Library; if not, see
  74747. + <http://www.gnu.org/licenses/>.
  74748. +
  74749. Ported to uClibc by:
  74750. Austin Foxley, Ceton Corporation <austinf@cetoncorp.com>
  74751. */
  74752. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/setjmp.S uClibc-git/libc/sysdeps/linux/sparc/setjmp.S
  74753. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  74754. +++ uClibc-git/libc/sysdeps/linux/sparc/setjmp.S 2014-06-02 17:40:34.638715439 +0200
  74755. @@ -12,15 +12,11 @@
  74756. Lesser General Public License for more details.
  74757. You should have received a copy of the GNU Lesser General Public
  74758. - License along with the GNU C Library; if not, write to the Free
  74759. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74760. - 02111-1307 USA. */
  74761. + License along with the GNU C Library; if not, see
  74762. + <http://www.gnu.org/licenses/>. */
  74763. -#include <sys/syscall.h>
  74764. +#include <jmpbuf-offsets.h>
  74765. -#define _ASM 1
  74766. -#define _SETJMP_H
  74767. -#include <bits/setjmp.h>
  74768. #define ST_FLUSH_WINDOWS 3
  74769. .global _setjmp
  74770. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sigaction.c uClibc-git/libc/sysdeps/linux/sparc/sigaction.c
  74771. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  74772. +++ uClibc-git/libc/sysdeps/linux/sparc/sigaction.c 2014-06-02 17:40:34.638715439 +0200
  74773. @@ -14,9 +14,8 @@
  74774. Lesser General Public License for more details.
  74775. You should have received a copy of the GNU Lesser General Public
  74776. - License along with the GNU C Library; if not, write to the Free
  74777. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74778. - 02111-1307 USA.
  74779. + License along with the GNU C Library; if not, see
  74780. + <http://www.gnu.org/licenses/>.
  74781. Ported to uClibc from glibc: 090520:
  74782. Jan Buchholz, KIP, Uni Heidelberg <jan.buchholz@kip.uni-heidelberg.de>
  74783. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/double.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/double.h
  74784. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/double.h 2012-05-15 09:20:09.000000000 +0200
  74785. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/double.h 2014-06-02 17:40:34.638715439 +0200
  74786. @@ -27,9 +27,8 @@
  74787. Lesser General Public License for more details.
  74788. You should have received a copy of the GNU Lesser General Public
  74789. - License along with the GNU C Library; if not, write to the Free
  74790. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  74791. - MA 02110-1301, USA. */
  74792. + License along with the GNU C Library; if not, see
  74793. + <http://www.gnu.org/licenses/>. */
  74794. #if _FP_W_TYPE_SIZE < 32
  74795. #error "Here's a nickel kid. Go buy yourself a real computer."
  74796. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/extended.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/extended.h
  74797. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/extended.h 2012-05-15 09:20:09.000000000 +0200
  74798. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/extended.h 2014-06-02 17:40:34.638715439 +0200
  74799. @@ -24,9 +24,8 @@
  74800. Lesser General Public License for more details.
  74801. You should have received a copy of the GNU Lesser General Public
  74802. - License along with the GNU C Library; if not, write to the Free
  74803. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  74804. - MA 02110-1301, USA. */
  74805. + License along with the GNU C Library; if not, see
  74806. + <http://www.gnu.org/licenses/>. */
  74807. #if _FP_W_TYPE_SIZE < 32
  74808. #error "Here's a nickel, kid. Go buy yourself a real computer."
  74809. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/longlong.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/longlong.h
  74810. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/longlong.h 2012-05-15 09:20:09.000000000 +0200
  74811. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/longlong.h 2014-06-02 17:40:34.638715439 +0200
  74812. @@ -15,9 +15,8 @@
  74813. Lesser General Public License for more details.
  74814. You should have received a copy of the GNU Lesser General Public
  74815. - License along with the GNU C Library; if not, write to the Free
  74816. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74817. - 02111-1307 USA. */
  74818. + License along with the GNU C Library; if not, see
  74819. + <http://www.gnu.org/licenses/>. */
  74820. /* You have to define the following before including this file:
  74821. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/mp_clz_tab.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/mp_clz_tab.c
  74822. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/mp_clz_tab.c 2012-05-15 09:20:09.000000000 +0200
  74823. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/mp_clz_tab.c 2014-06-02 17:40:34.638715439 +0200
  74824. @@ -14,9 +14,8 @@
  74825. Lesser General Public License for more details.
  74826. You should have received a copy of the GNU Lesser General Public
  74827. - License along with the GNU C Library; if not, write to the Free
  74828. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74829. - 02111-1307 USA. */
  74830. + License along with the GNU C Library; if not, see
  74831. + <http://www.gnu.org/licenses/>. */
  74832. #if 0
  74833. #include <gmp.h>
  74834. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-1.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-1.h
  74835. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-1.h 2012-05-15 09:20:09.000000000 +0200
  74836. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-1.h 2014-06-02 17:40:34.638715439 +0200
  74837. @@ -27,9 +27,8 @@
  74838. Lesser General Public License for more details.
  74839. You should have received a copy of the GNU Lesser General Public
  74840. - License along with the GNU C Library; if not, write to the Free
  74841. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  74842. - MA 02110-1301, USA. */
  74843. + License along with the GNU C Library; if not, see
  74844. + <http://www.gnu.org/licenses/>. */
  74845. #define _FP_FRAC_DECL_1(X) _FP_W_TYPE X##_f
  74846. #define _FP_FRAC_COPY_1(D,S) (D##_f = S##_f)
  74847. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-2.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-2.h
  74848. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-2.h 2012-05-15 09:20:09.000000000 +0200
  74849. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-2.h 2014-06-02 17:40:34.638715439 +0200
  74850. @@ -27,9 +27,8 @@
  74851. Lesser General Public License for more details.
  74852. You should have received a copy of the GNU Lesser General Public
  74853. - License along with the GNU C Library; if not, write to the Free
  74854. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  74855. - MA 02110-1301, USA. */
  74856. + License along with the GNU C Library; if not, see
  74857. + <http://www.gnu.org/licenses/>. */
  74858. #define _FP_FRAC_DECL_2(X) _FP_W_TYPE X##_f0, X##_f1
  74859. #define _FP_FRAC_COPY_2(D,S) (D##_f0 = S##_f0, D##_f1 = S##_f1)
  74860. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-4.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-4.h
  74861. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-4.h 2012-05-15 09:20:09.000000000 +0200
  74862. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-4.h 2014-06-02 17:40:34.642715461 +0200
  74863. @@ -27,9 +27,8 @@
  74864. Lesser General Public License for more details.
  74865. You should have received a copy of the GNU Lesser General Public
  74866. - License along with the GNU C Library; if not, write to the Free
  74867. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  74868. - MA 02110-1301, USA. */
  74869. + License along with the GNU C Library; if not, see
  74870. + <http://www.gnu.org/licenses/>. */
  74871. #define _FP_FRAC_DECL_4(X) _FP_W_TYPE X##_f[4]
  74872. #define _FP_FRAC_COPY_4(D,S) \
  74873. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-8.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-8.h
  74874. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-8.h 2012-05-15 09:20:09.000000000 +0200
  74875. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-8.h 2014-06-02 17:40:34.642715461 +0200
  74876. @@ -26,9 +26,8 @@
  74877. Lesser General Public License for more details.
  74878. You should have received a copy of the GNU Lesser General Public
  74879. - License along with the GNU C Library; if not, write to the Free
  74880. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  74881. - MA 02110-1301, USA. */
  74882. + License along with the GNU C Library; if not, see
  74883. + <http://www.gnu.org/licenses/>. */
  74884. /* We need just a few things from here for op-4, if we ever need some
  74885. other macros, they can be added. */
  74886. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-common.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-common.h
  74887. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/op-common.h 2012-05-15 09:20:09.000000000 +0200
  74888. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/op-common.h 2014-06-02 17:40:34.642715461 +0200
  74889. @@ -26,9 +26,8 @@
  74890. Lesser General Public License for more details.
  74891. You should have received a copy of the GNU Lesser General Public
  74892. - License along with the GNU C Library; if not, write to the Free
  74893. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  74894. - MA 02110-1301, USA. */
  74895. + License along with the GNU C Library; if not, see
  74896. + <http://www.gnu.org/licenses/>. */
  74897. #define _FP_DECL(wc, X) \
  74898. _FP_I_TYPE X##_c __attribute__((unused)), X##_s, X##_e; \
  74899. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_add.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_add.c
  74900. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_add.c 2012-05-15 09:20:09.000000000 +0200
  74901. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_add.c 2014-06-02 17:40:34.642715461 +0200
  74902. @@ -16,9 +16,8 @@
  74903. Lesser General Public License for more details.
  74904. You should have received a copy of the GNU Lesser General Public
  74905. - License along with the GNU C Library; if not, write to the Free
  74906. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74907. - 02111-1307 USA. */
  74908. + License along with the GNU C Library; if not, see
  74909. + <http://www.gnu.org/licenses/>. */
  74910. #include "soft-fp.h"
  74911. #include "quad.h"
  74912. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_cmp.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_cmp.c
  74913. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_cmp.c 2012-05-15 09:20:09.000000000 +0200
  74914. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_cmp.c 2014-06-02 17:40:34.642715461 +0200
  74915. @@ -16,9 +16,8 @@
  74916. Lesser General Public License for more details.
  74917. You should have received a copy of the GNU Lesser General Public
  74918. - License along with the GNU C Library; if not, write to the Free
  74919. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74920. - 02111-1307 USA. */
  74921. + License along with the GNU C Library; if not, see
  74922. + <http://www.gnu.org/licenses/>. */
  74923. #include "soft-fp.h"
  74924. #include "quad.h"
  74925. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_cmpe.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_cmpe.c
  74926. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_cmpe.c 2012-05-15 09:20:09.000000000 +0200
  74927. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_cmpe.c 2014-06-02 17:40:34.642715461 +0200
  74928. @@ -17,9 +17,8 @@
  74929. Lesser General Public License for more details.
  74930. You should have received a copy of the GNU Lesser General Public
  74931. - License along with the GNU C Library; if not, write to the Free
  74932. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74933. - 02111-1307 USA. */
  74934. + License along with the GNU C Library; if not, see
  74935. + <http://www.gnu.org/licenses/>. */
  74936. #include "soft-fp.h"
  74937. #include "quad.h"
  74938. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_div.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_div.c
  74939. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_div.c 2012-05-15 09:20:09.000000000 +0200
  74940. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_div.c 2014-06-02 17:40:34.642715461 +0200
  74941. @@ -16,9 +16,8 @@
  74942. Lesser General Public License for more details.
  74943. You should have received a copy of the GNU Lesser General Public
  74944. - License along with the GNU C Library; if not, write to the Free
  74945. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74946. - 02111-1307 USA. */
  74947. + License along with the GNU C Library; if not, see
  74948. + <http://www.gnu.org/licenses/>. */
  74949. #include "soft-fp.h"
  74950. #include "quad.h"
  74951. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_dtoq.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_dtoq.c
  74952. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_dtoq.c 2012-05-15 09:20:09.000000000 +0200
  74953. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_dtoq.c 2014-06-02 17:40:34.642715461 +0200
  74954. @@ -16,9 +16,8 @@
  74955. Lesser General Public License for more details.
  74956. You should have received a copy of the GNU Lesser General Public
  74957. - License along with the GNU C Library; if not, write to the Free
  74958. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74959. - 02111-1307 USA. */
  74960. + License along with the GNU C Library; if not, see
  74961. + <http://www.gnu.org/licenses/>. */
  74962. #include "soft-fp.h"
  74963. #include "double.h"
  74964. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_feq.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_feq.c
  74965. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_feq.c 2012-05-15 09:20:09.000000000 +0200
  74966. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_feq.c 2014-06-02 17:40:34.642715461 +0200
  74967. @@ -16,9 +16,8 @@
  74968. Lesser General Public License for more details.
  74969. You should have received a copy of the GNU Lesser General Public
  74970. - License along with the GNU C Library; if not, write to the Free
  74971. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74972. - 02111-1307 USA. */
  74973. + License along with the GNU C Library; if not, see
  74974. + <http://www.gnu.org/licenses/>. */
  74975. #include "soft-fp.h"
  74976. #include "quad.h"
  74977. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fge.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fge.c
  74978. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fge.c 2012-05-15 09:20:09.000000000 +0200
  74979. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fge.c 2014-06-02 17:40:34.642715461 +0200
  74980. @@ -16,9 +16,8 @@
  74981. Lesser General Public License for more details.
  74982. You should have received a copy of the GNU Lesser General Public
  74983. - License along with the GNU C Library; if not, write to the Free
  74984. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74985. - 02111-1307 USA. */
  74986. + License along with the GNU C Library; if not, see
  74987. + <http://www.gnu.org/licenses/>. */
  74988. #include "soft-fp.h"
  74989. #include "quad.h"
  74990. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fgt.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fgt.c
  74991. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fgt.c 2012-05-15 09:20:09.000000000 +0200
  74992. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fgt.c 2014-06-02 17:40:34.642715461 +0200
  74993. @@ -16,9 +16,8 @@
  74994. Lesser General Public License for more details.
  74995. You should have received a copy of the GNU Lesser General Public
  74996. - License along with the GNU C Library; if not, write to the Free
  74997. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  74998. - 02111-1307 USA. */
  74999. + License along with the GNU C Library; if not, see
  75000. + <http://www.gnu.org/licenses/>. */
  75001. #include "soft-fp.h"
  75002. #include "quad.h"
  75003. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fle.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fle.c
  75004. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fle.c 2012-05-15 09:20:09.000000000 +0200
  75005. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fle.c 2014-06-02 17:40:34.642715461 +0200
  75006. @@ -16,9 +16,8 @@
  75007. Lesser General Public License for more details.
  75008. You should have received a copy of the GNU Lesser General Public
  75009. - License along with the GNU C Library; if not, write to the Free
  75010. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75011. - 02111-1307 USA. */
  75012. + License along with the GNU C Library; if not, see
  75013. + <http://www.gnu.org/licenses/>. */
  75014. #include "soft-fp.h"
  75015. #include "quad.h"
  75016. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_flt.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_flt.c
  75017. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_flt.c 2012-05-15 09:20:09.000000000 +0200
  75018. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_flt.c 2014-06-02 17:40:34.642715461 +0200
  75019. @@ -16,9 +16,8 @@
  75020. Lesser General Public License for more details.
  75021. You should have received a copy of the GNU Lesser General Public
  75022. - License along with the GNU C Library; if not, write to the Free
  75023. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75024. - 02111-1307 USA. */
  75025. + License along with the GNU C Library; if not, see
  75026. + <http://www.gnu.org/licenses/>. */
  75027. #include "soft-fp.h"
  75028. #include "quad.h"
  75029. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fne.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fne.c
  75030. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_fne.c 2012-05-15 09:20:09.000000000 +0200
  75031. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_fne.c 2014-06-02 17:40:34.642715461 +0200
  75032. @@ -16,9 +16,8 @@
  75033. Lesser General Public License for more details.
  75034. You should have received a copy of the GNU Lesser General Public
  75035. - License along with the GNU C Library; if not, write to the Free
  75036. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75037. - 02111-1307 USA. */
  75038. + License along with the GNU C Library; if not, see
  75039. + <http://www.gnu.org/licenses/>. */
  75040. #include "soft-fp.h"
  75041. #include "quad.h"
  75042. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_itoq.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_itoq.c
  75043. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_itoq.c 2012-05-15 09:20:09.000000000 +0200
  75044. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_itoq.c 2014-06-02 17:40:34.642715461 +0200
  75045. @@ -16,9 +16,8 @@
  75046. Lesser General Public License for more details.
  75047. You should have received a copy of the GNU Lesser General Public
  75048. - License along with the GNU C Library; if not, write to the Free
  75049. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75050. - 02111-1307 USA. */
  75051. + License along with the GNU C Library; if not, see
  75052. + <http://www.gnu.org/licenses/>. */
  75053. #include "soft-fp.h"
  75054. #include "quad.h"
  75055. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_lltoq.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_lltoq.c
  75056. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_lltoq.c 2012-05-15 09:20:09.000000000 +0200
  75057. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_lltoq.c 2014-06-02 17:40:34.642715461 +0200
  75058. @@ -16,9 +16,8 @@
  75059. Lesser General Public License for more details.
  75060. You should have received a copy of the GNU Lesser General Public
  75061. - License along with the GNU C Library; if not, write to the Free
  75062. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75063. - 02111-1307 USA. */
  75064. + License along with the GNU C Library; if not, see
  75065. + <http://www.gnu.org/licenses/>. */
  75066. #include "soft-fp.h"
  75067. #include "quad.h"
  75068. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_mul.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_mul.c
  75069. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_mul.c 2012-05-15 09:20:09.000000000 +0200
  75070. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_mul.c 2014-06-02 17:40:34.642715461 +0200
  75071. @@ -16,9 +16,8 @@
  75072. Lesser General Public License for more details.
  75073. You should have received a copy of the GNU Lesser General Public
  75074. - License along with the GNU C Library; if not, write to the Free
  75075. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75076. - 02111-1307 USA. */
  75077. + License along with the GNU C Library; if not, see
  75078. + <http://www.gnu.org/licenses/>. */
  75079. #include "soft-fp.h"
  75080. #include "quad.h"
  75081. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_neg.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_neg.c
  75082. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_neg.c 2012-05-15 09:20:09.000000000 +0200
  75083. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_neg.c 2014-06-02 17:40:34.642715461 +0200
  75084. @@ -16,9 +16,8 @@
  75085. Lesser General Public License for more details.
  75086. You should have received a copy of the GNU Lesser General Public
  75087. - License along with the GNU C Library; if not, write to the Free
  75088. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75089. - 02111-1307 USA. */
  75090. + License along with the GNU C Library; if not, see
  75091. + <http://www.gnu.org/licenses/>. */
  75092. #include "soft-fp.h"
  75093. #include "quad.h"
  75094. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtod.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtod.c
  75095. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtod.c 2012-05-15 09:20:09.000000000 +0200
  75096. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtod.c 2014-06-02 17:40:34.642715461 +0200
  75097. @@ -16,9 +16,8 @@
  75098. Lesser General Public License for more details.
  75099. You should have received a copy of the GNU Lesser General Public
  75100. - License along with the GNU C Library; if not, write to the Free
  75101. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75102. - 02111-1307 USA. */
  75103. + License along with the GNU C Library; if not, see
  75104. + <http://www.gnu.org/licenses/>. */
  75105. #include "soft-fp.h"
  75106. #include "double.h"
  75107. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtoi.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtoi.c
  75108. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtoi.c 2012-05-15 09:20:09.000000000 +0200
  75109. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtoi.c 2014-06-02 17:40:34.642715461 +0200
  75110. @@ -16,9 +16,8 @@
  75111. Lesser General Public License for more details.
  75112. You should have received a copy of the GNU Lesser General Public
  75113. - License along with the GNU C Library; if not, write to the Free
  75114. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75115. - 02111-1307 USA. */
  75116. + License along with the GNU C Library; if not, see
  75117. + <http://www.gnu.org/licenses/>. */
  75118. #define FP_ROUNDMODE FP_RND_ZERO
  75119. #include "soft-fp.h"
  75120. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtoll.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtoll.c
  75121. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtoll.c 2012-05-15 09:20:09.000000000 +0200
  75122. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtoll.c 2014-06-02 17:40:34.642715461 +0200
  75123. @@ -16,9 +16,8 @@
  75124. Lesser General Public License for more details.
  75125. You should have received a copy of the GNU Lesser General Public
  75126. - License along with the GNU C Library; if not, write to the Free
  75127. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75128. - 02111-1307 USA. */
  75129. + License along with the GNU C Library; if not, see
  75130. + <http://www.gnu.org/licenses/>. */
  75131. #define FP_ROUNDMODE FP_RND_ZERO
  75132. #include "soft-fp.h"
  75133. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtos.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtos.c
  75134. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtos.c 2012-05-15 09:20:09.000000000 +0200
  75135. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtos.c 2014-06-02 17:40:34.642715461 +0200
  75136. @@ -16,9 +16,8 @@
  75137. Lesser General Public License for more details.
  75138. You should have received a copy of the GNU Lesser General Public
  75139. - License along with the GNU C Library; if not, write to the Free
  75140. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75141. - 02111-1307 USA. */
  75142. + License along with the GNU C Library; if not, see
  75143. + <http://www.gnu.org/licenses/>. */
  75144. #include "soft-fp.h"
  75145. #include "single.h"
  75146. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtou.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtou.c
  75147. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtou.c 2012-05-15 09:20:09.000000000 +0200
  75148. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtou.c 2014-06-02 17:40:34.642715461 +0200
  75149. @@ -16,9 +16,8 @@
  75150. Lesser General Public License for more details.
  75151. You should have received a copy of the GNU Lesser General Public
  75152. - License along with the GNU C Library; if not, write to the Free
  75153. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75154. - 02111-1307 USA. */
  75155. + License along with the GNU C Library; if not, see
  75156. + <http://www.gnu.org/licenses/>. */
  75157. #define FP_ROUNDMODE FP_RND_ZERO
  75158. #include "soft-fp.h"
  75159. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtoull.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtoull.c
  75160. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_qtoull.c 2012-05-15 09:20:09.000000000 +0200
  75161. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_qtoull.c 2014-06-02 17:40:34.642715461 +0200
  75162. @@ -16,9 +16,8 @@
  75163. Lesser General Public License for more details.
  75164. You should have received a copy of the GNU Lesser General Public
  75165. - License along with the GNU C Library; if not, write to the Free
  75166. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75167. - 02111-1307 USA. */
  75168. + License along with the GNU C Library; if not, see
  75169. + <http://www.gnu.org/licenses/>. */
  75170. #define FP_ROUNDMODE FP_RND_ZERO
  75171. #include "soft-fp.h"
  75172. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_sqrt.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_sqrt.c
  75173. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_sqrt.c 2012-05-15 09:20:09.000000000 +0200
  75174. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_sqrt.c 2014-06-02 17:40:34.642715461 +0200
  75175. @@ -16,9 +16,8 @@
  75176. Lesser General Public License for more details.
  75177. You should have received a copy of the GNU Lesser General Public
  75178. - License along with the GNU C Library; if not, write to the Free
  75179. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75180. - 02111-1307 USA. */
  75181. + License along with the GNU C Library; if not, see
  75182. + <http://www.gnu.org/licenses/>. */
  75183. #include "soft-fp.h"
  75184. #include "quad.h"
  75185. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_stoq.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_stoq.c
  75186. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_stoq.c 2012-05-15 09:20:09.000000000 +0200
  75187. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_stoq.c 2014-06-02 17:40:34.642715461 +0200
  75188. @@ -16,9 +16,8 @@
  75189. Lesser General Public License for more details.
  75190. You should have received a copy of the GNU Lesser General Public
  75191. - License along with the GNU C Library; if not, write to the Free
  75192. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75193. - 02111-1307 USA. */
  75194. + License along with the GNU C Library; if not, see
  75195. + <http://www.gnu.org/licenses/>. */
  75196. #include "soft-fp.h"
  75197. #include "single.h"
  75198. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_sub.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_sub.c
  75199. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_sub.c 2012-05-15 09:20:09.000000000 +0200
  75200. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_sub.c 2014-06-02 17:40:34.642715461 +0200
  75201. @@ -16,9 +16,8 @@
  75202. Lesser General Public License for more details.
  75203. You should have received a copy of the GNU Lesser General Public
  75204. - License along with the GNU C Library; if not, write to the Free
  75205. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75206. - 02111-1307 USA. */
  75207. + License along with the GNU C Library; if not, see
  75208. + <http://www.gnu.org/licenses/>. */
  75209. #include "soft-fp.h"
  75210. #include "quad.h"
  75211. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/quad.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/quad.h
  75212. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/quad.h 2012-05-15 09:20:09.000000000 +0200
  75213. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/quad.h 2014-06-02 17:40:34.662715572 +0200
  75214. @@ -27,9 +27,8 @@
  75215. Lesser General Public License for more details.
  75216. You should have received a copy of the GNU Lesser General Public
  75217. - License along with the GNU C Library; if not, write to the Free
  75218. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  75219. - MA 02110-1301, USA. */
  75220. + License along with the GNU C Library; if not, see
  75221. + <http://www.gnu.org/licenses/>. */
  75222. #if _FP_W_TYPE_SIZE < 32
  75223. #error "Here's a nickel, kid. Go buy yourself a real computer."
  75224. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_ulltoq.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_ulltoq.c
  75225. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_ulltoq.c 2012-05-15 09:20:09.000000000 +0200
  75226. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_ulltoq.c 2014-06-02 17:40:34.642715461 +0200
  75227. @@ -16,9 +16,8 @@
  75228. Lesser General Public License for more details.
  75229. You should have received a copy of the GNU Lesser General Public
  75230. - License along with the GNU C Library; if not, write to the Free
  75231. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75232. - 02111-1307 USA. */
  75233. + License along with the GNU C Library; if not, see
  75234. + <http://www.gnu.org/licenses/>. */
  75235. #include "soft-fp.h"
  75236. #include "quad.h"
  75237. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_util.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_util.c
  75238. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_util.c 2012-05-15 09:20:09.000000000 +0200
  75239. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_util.c 2014-06-02 17:40:34.642715461 +0200
  75240. @@ -16,9 +16,8 @@
  75241. Lesser General Public License for more details.
  75242. You should have received a copy of the GNU Lesser General Public
  75243. - License along with the GNU C Library; if not, write to the Free
  75244. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75245. - 02111-1307 USA. */
  75246. + License along with the GNU C Library; if not, see
  75247. + <http://www.gnu.org/licenses/>. */
  75248. #include "soft-fp.h"
  75249. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_utoq.c uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_utoq.c
  75250. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/q_utoq.c 2012-05-15 09:20:09.000000000 +0200
  75251. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/q_utoq.c 2014-06-02 17:40:34.662715572 +0200
  75252. @@ -16,9 +16,8 @@
  75253. Lesser General Public License for more details.
  75254. You should have received a copy of the GNU Lesser General Public
  75255. - License along with the GNU C Library; if not, write to the Free
  75256. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75257. - 02111-1307 USA. */
  75258. + License along with the GNU C Library; if not, see
  75259. + <http://www.gnu.org/licenses/>. */
  75260. #include "soft-fp.h"
  75261. #include "quad.h"
  75262. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/sfp-machine.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/sfp-machine.h
  75263. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/sfp-machine.h 2012-05-15 09:20:09.000000000 +0200
  75264. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/sfp-machine.h 2014-06-02 17:40:34.662715572 +0200
  75265. @@ -17,9 +17,8 @@
  75266. Lesser General Public License for more details.
  75267. You should have received a copy of the GNU Lesser General Public
  75268. - License along with the GNU C Library; if not, write to the Free
  75269. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75270. - 02111-1307 USA. */
  75271. + License along with the GNU C Library; if not, see
  75272. + <http://www.gnu.org/licenses/>. */
  75273. #include <fpu_control.h>
  75274. #include <stdlib.h>
  75275. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/single.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/single.h
  75276. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/single.h 2012-05-15 09:20:09.000000000 +0200
  75277. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/single.h 2014-06-02 17:40:34.662715572 +0200
  75278. @@ -27,9 +27,8 @@
  75279. Lesser General Public License for more details.
  75280. You should have received a copy of the GNU Lesser General Public
  75281. - License along with the GNU C Library; if not, write to the Free
  75282. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  75283. - MA 02110-1301, USA. */
  75284. + License along with the GNU C Library; if not, see
  75285. + <http://www.gnu.org/licenses/>. */
  75286. #if _FP_W_TYPE_SIZE < 32
  75287. #error "Here's a nickel kid. Go buy yourself a real computer."
  75288. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/soft-fp.h uClibc-git/libc/sysdeps/linux/sparc/soft-fp/soft-fp.h
  75289. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/soft-fp/soft-fp.h 2012-05-15 09:20:09.000000000 +0200
  75290. +++ uClibc-git/libc/sysdeps/linux/sparc/soft-fp/soft-fp.h 2014-06-02 17:40:34.662715572 +0200
  75291. @@ -27,9 +27,8 @@
  75292. Lesser General Public License for more details.
  75293. You should have received a copy of the GNU Lesser General Public
  75294. - License along with the GNU C Library; if not, write to the Free
  75295. - Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
  75296. - MA 02110-1301, USA. */
  75297. + License along with the GNU C Library; if not, see
  75298. + <http://www.gnu.org/licenses/>. */
  75299. #ifndef SOFT_FP_H
  75300. #define SOFT_FP_H
  75301. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sparcv9/clone.S uClibc-git/libc/sysdeps/linux/sparc/sparcv9/clone.S
  75302. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sparcv9/clone.S 2012-05-15 09:20:09.000000000 +0200
  75303. +++ uClibc-git/libc/sysdeps/linux/sparc/sparcv9/clone.S 2014-06-02 17:40:34.662715572 +0200
  75304. @@ -13,9 +13,8 @@
  75305. Lesser General Public License for more details.
  75306. You should have received a copy of the GNU Lesser General Public
  75307. - License along with the GNU C Library; if not, write to the Free
  75308. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75309. - 02111-1307 USA. */
  75310. + License along with the GNU C Library; if not, see
  75311. + <http://www.gnu.org/licenses/>. */
  75312. /* clone() is even more special than fork() as it mucks with stacks
  75313. and invokes a function in the right context after its all over. */
  75314. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/procfs.h uClibc-git/libc/sysdeps/linux/sparc/sys/procfs.h
  75315. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  75316. +++ uClibc-git/libc/sysdeps/linux/sparc/sys/procfs.h 2014-06-02 17:40:34.662715572 +0200
  75317. @@ -12,9 +12,8 @@
  75318. Lesser General Public License for more details.
  75319. You should have received a copy of the GNU Lesser General Public
  75320. - License along with the GNU C Library; if not, write to the Free
  75321. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75322. - 02111-1307 USA. */
  75323. + License along with the GNU C Library; if not, see
  75324. + <http://www.gnu.org/licenses/>. */
  75325. #ifndef _SYS_PROCFS_H
  75326. #define _SYS_PROCFS_H 1
  75327. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/ptrace.h uClibc-git/libc/sysdeps/linux/sparc/sys/ptrace.h
  75328. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  75329. +++ uClibc-git/libc/sysdeps/linux/sparc/sys/ptrace.h 2014-06-02 17:40:34.662715572 +0200
  75330. @@ -13,9 +13,8 @@
  75331. Lesser General Public License for more details.
  75332. You should have received a copy of the GNU Lesser General Public
  75333. - License along with the GNU C Library; if not, write to the Free
  75334. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75335. - 02111-1307 USA. */
  75336. + License along with the GNU C Library; if not, see
  75337. + <http://www.gnu.org/licenses/>. */
  75338. #ifndef _SYS_PTRACE_H
  75339. #define _SYS_PTRACE_H 1
  75340. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/ucontext.h uClibc-git/libc/sysdeps/linux/sparc/sys/ucontext.h
  75341. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  75342. +++ uClibc-git/libc/sysdeps/linux/sparc/sys/ucontext.h 2014-06-02 17:40:34.662715572 +0200
  75343. @@ -12,9 +12,8 @@
  75344. Lesser General Public License for more details.
  75345. You should have received a copy of the GNU Lesser General Public
  75346. - License along with the GNU C Library; if not, write to the Free
  75347. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75348. - 02111-1307 USA. */
  75349. + License along with the GNU C Library; if not, see
  75350. + <http://www.gnu.org/licenses/>. */
  75351. #ifndef _SYS_UCONTEXT_H
  75352. #define _SYS_UCONTEXT_H 1
  75353. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/user.h uClibc-git/libc/sysdeps/linux/sparc/sys/user.h
  75354. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  75355. +++ uClibc-git/libc/sysdeps/linux/sparc/sys/user.h 2014-06-02 17:40:34.662715572 +0200
  75356. @@ -12,9 +12,8 @@
  75357. Lesser General Public License for more details.
  75358. You should have received a copy of the GNU Lesser General Public
  75359. - License along with the GNU C Library; if not, write to the Free
  75360. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75361. - 02111-1307 USA. */
  75362. + License along with the GNU C Library; if not, see
  75363. + <http://www.gnu.org/licenses/>. */
  75364. #ifndef _SYS_USER_H
  75365. #define _SYS_USER_H 1
  75366. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/syscall.S uClibc-git/libc/sysdeps/linux/sparc/syscall.S
  75367. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/syscall.S 2012-05-15 09:20:09.000000000 +0200
  75368. +++ uClibc-git/libc/sysdeps/linux/sparc/syscall.S 2014-06-02 17:40:34.666715593 +0200
  75369. @@ -12,9 +12,8 @@
  75370. Lesser General Public License for more details.
  75371. You should have received a copy of the GNU Lesser General Public
  75372. - License along with the GNU C Library; if not, write to the Free
  75373. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75374. - 02111-1307 USA. */
  75375. + License along with the GNU C Library; if not, see
  75376. + <http://www.gnu.org/licenses/>. */
  75377. #include <features.h>
  75378. #include <sys/syscall.h>
  75379. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/sparc/vfork.S uClibc-git/libc/sysdeps/linux/sparc/vfork.S
  75380. --- uClibc-0.9.33.2/libc/sysdeps/linux/sparc/vfork.S 2012-05-15 09:20:09.000000000 +0200
  75381. +++ uClibc-git/libc/sysdeps/linux/sparc/vfork.S 2014-06-02 17:40:34.666715593 +0200
  75382. @@ -13,9 +13,8 @@
  75383. Lesser General Public License for more details.
  75384. You should have received a copy of the GNU Lesser General Public
  75385. - License along with the GNU C Library; if not, write to the Free
  75386. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75387. - 02111-1307 USA. */
  75388. + License along with the GNU C Library; if not, see
  75389. + <http://www.gnu.org/licenses/>. */
  75390. /* Code taken from glibc2.2.2/sysdeps/unix/sysv/linux/sparc/vfork.S */
  75391. @@ -52,4 +51,4 @@
  75392. .size __vfork,.-__vfork
  75393. weak_alias(__vfork,vfork)
  75394. -libc_hidden_weak(vfork)
  75395. +libc_hidden_def(vfork)
  75396. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/fcntl.h uClibc-git/libc/sysdeps/linux/v850/bits/fcntl.h
  75397. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  75398. +++ uClibc-git/libc/sysdeps/linux/v850/bits/fcntl.h 2014-06-02 17:40:34.666715593 +0200
  75399. @@ -13,9 +13,8 @@
  75400. Lesser General Public License for more details.
  75401. You should have received a copy of the GNU Lesser General Public
  75402. - License along with the GNU C Library; if not, write to the Free
  75403. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75404. - 02111-1307 USA. */
  75405. + License along with the GNU C Library; if not, see
  75406. + <http://www.gnu.org/licenses/>. */
  75407. #ifndef _FCNTL_H
  75408. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  75409. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/v850/bits/kernel_types.h
  75410. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  75411. +++ uClibc-git/libc/sysdeps/linux/v850/bits/kernel_types.h 2014-06-02 17:40:34.666715593 +0200
  75412. @@ -41,6 +41,8 @@
  75413. typedef unsigned short __kernel_old_uid_t;
  75414. typedef unsigned short __kernel_old_gid_t;
  75415. typedef __kernel_dev_t __kernel_old_dev_t;
  75416. +typedef long __kernel_long_t;
  75417. +typedef unsigned long __kernel_ulong_t;
  75418. typedef struct {
  75419. #ifdef __USE_ALL
  75420. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/poll.h uClibc-git/libc/sysdeps/linux/v850/bits/poll.h
  75421. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/poll.h 2012-05-15 09:20:09.000000000 +0200
  75422. +++ uClibc-git/libc/sysdeps/linux/v850/bits/poll.h 2014-06-02 17:40:34.666715593 +0200
  75423. @@ -12,9 +12,8 @@
  75424. Lesser General Public License for more details.
  75425. You should have received a copy of the GNU Lesser General Public
  75426. - License along with the GNU C Library; if not, write to the Free
  75427. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75428. - 02111-1307 USA. */
  75429. + License along with the GNU C Library; if not, see
  75430. + <http://www.gnu.org/licenses/>. */
  75431. #ifndef _SYS_POLL_H
  75432. # error "Never use <bits/poll.h> directly; include <sys/poll.h> instead."
  75433. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/setjmp.h uClibc-git/libc/sysdeps/linux/v850/bits/setjmp.h
  75434. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  75435. +++ uClibc-git/libc/sysdeps/linux/v850/bits/setjmp.h 2014-06-02 17:40:34.666715593 +0200
  75436. @@ -18,7 +18,6 @@
  75437. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  75438. #endif
  75439. -#ifndef _ASM
  75440. typedef struct
  75441. {
  75442. /* Stack pointer. */
  75443. @@ -30,13 +29,5 @@
  75444. /* Callee-saved registers r2 and r20-r29. */
  75445. int __regs[11];
  75446. } __jmp_buf[1];
  75447. -#endif
  75448. -
  75449. -#define JB_SIZE (4 * 13)
  75450. -
  75451. -/* Test if longjmp to JMPBUF would unwind the frame
  75452. - containing a local variable at ADDRESS. */
  75453. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  75454. - ((void *) (address) < (void *) (jmpbuf)[0].__sp)
  75455. #endif /* bits/setjmp.h */
  75456. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h
  75457. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  75458. +++ uClibc-git/libc/sysdeps/linux/v850/bits/uClibc_arch_features.h 2014-06-02 17:40:34.666715593 +0200
  75459. @@ -10,10 +10,10 @@
  75460. #undef __UCLIBC_ABORT_INSTRUCTION__
  75461. /* can your target use syscall6() for mmap ? */
  75462. -#undef __UCLIBC_MMAP_HAS_6_ARGS__
  75463. +#define __UCLIBC_MMAP_HAS_6_ARGS__
  75464. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  75465. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  75466. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  75467. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  75468. /* does your target have a broken create_module() ? */
  75469. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  75470. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/wordsize.h uClibc-git/libc/sysdeps/linux/v850/bits/wordsize.h
  75471. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  75472. +++ uClibc-git/libc/sysdeps/linux/v850/bits/wordsize.h 2014-06-02 17:40:34.666715593 +0200
  75473. @@ -12,8 +12,7 @@
  75474. Lesser General Public License for more details.
  75475. You should have received a copy of the GNU Lesser General Public
  75476. - License along with the GNU C Library; if not, write to the Free
  75477. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75478. - 02111-1307 USA. */
  75479. + License along with the GNU C Library; if not, see
  75480. + <http://www.gnu.org/licenses/>. */
  75481. #define __WORDSIZE 32
  75482. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/v850/jmpbuf-offsets.h
  75483. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  75484. +++ uClibc-git/libc/sysdeps/linux/v850/jmpbuf-offsets.h 2014-06-02 17:40:34.666715593 +0200
  75485. @@ -0,0 +1,6 @@
  75486. +/*
  75487. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  75488. + *
  75489. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  75490. + */
  75491. +#define JB_SIZE (4 * 13)
  75492. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/v850/jmpbuf-unwind.h
  75493. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  75494. +++ uClibc-git/libc/sysdeps/linux/v850/jmpbuf-unwind.h 2014-06-02 17:40:34.666715593 +0200
  75495. @@ -0,0 +1,11 @@
  75496. +/*
  75497. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  75498. + *
  75499. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  75500. + */
  75501. +#include <setjmp.h>
  75502. +
  75503. +/* Test if longjmp to JMPBUF would unwind the frame
  75504. + containing a local variable at ADDRESS. */
  75505. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  75506. + ((void *) (address) < (void *) (jmpbuf)[0].__sp)
  75507. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/__longjmp.S uClibc-git/libc/sysdeps/linux/v850/__longjmp.S
  75508. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  75509. +++ uClibc-git/libc/sysdeps/linux/v850/__longjmp.S 2014-06-02 17:40:34.666715593 +0200
  75510. @@ -11,11 +11,6 @@
  75511. * Written by Miles Bader <miles@gnu.org>
  75512. */
  75513. -#include <features.h>
  75514. -#define _SETJMP_H
  75515. -#define _ASM
  75516. -#include <bits/setjmp.h>
  75517. -
  75518. #include <clinkage.h>
  75519. .text
  75520. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/Makefile uClibc-git/libc/sysdeps/linux/v850/Makefile
  75521. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/Makefile 2012-05-15 09:20:09.000000000 +0200
  75522. +++ uClibc-git/libc/sysdeps/linux/v850/Makefile 2014-06-02 17:40:34.666715593 +0200
  75523. @@ -20,7 +20,7 @@
  75524. SSRC := setjmp.S __longjmp.S vfork.S
  75525. SOBJ := $(patsubst %.S,%.o, $(SSRC))
  75526. -CSRC := mmap.c syscall.c clone.c
  75527. +CSRC := syscall.c clone.c
  75528. COBJ := $(patsubst %.c,%.o, $(CSRC))
  75529. OBJS := $(SOBJ) $(COBJ)
  75530. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/mmap.c uClibc-git/libc/sysdeps/linux/v850/mmap.c
  75531. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/mmap.c 2012-05-15 09:20:09.000000000 +0200
  75532. +++ uClibc-git/libc/sysdeps/linux/v850/mmap.c 1970-01-01 01:00:00.000000000 +0100
  75533. @@ -1,16 +0,0 @@
  75534. -/* Use new style mmap for v850 */
  75535. -/*
  75536. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  75537. - *
  75538. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  75539. - */
  75540. -
  75541. -#include <unistd.h>
  75542. -#include <errno.h>
  75543. -#include <sys/mman.h>
  75544. -#include <sys/syscall.h>
  75545. -
  75546. -
  75547. -_syscall6 (__ptr_t, mmap, __ptr_t, addr, size_t, len, int, prot,
  75548. - int, flags, int, fd, __off_t, offset)
  75549. -libc_hidden_def(mmap)
  75550. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/setjmp.S uClibc-git/libc/sysdeps/linux/v850/setjmp.S
  75551. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  75552. +++ uClibc-git/libc/sysdeps/linux/v850/setjmp.S 2014-06-02 17:40:34.666715593 +0200
  75553. @@ -11,10 +11,6 @@
  75554. * Written by Miles Bader <miles@gnu.org>
  75555. */
  75556. -#define _SETJMP_H
  75557. -#define _ASM
  75558. -#include <bits/setjmp.h>
  75559. -
  75560. #include <clinkage.h>
  75561. .text
  75562. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/procfs.h uClibc-git/libc/sysdeps/linux/v850/sys/procfs.h
  75563. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  75564. +++ uClibc-git/libc/sysdeps/linux/v850/sys/procfs.h 2014-06-02 17:40:34.666715593 +0200
  75565. @@ -12,9 +12,8 @@
  75566. Lesser General Public License for more details.
  75567. You should have received a copy of the GNU Lesser General Public
  75568. - License along with the GNU C Library; if not, write to the Free
  75569. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75570. - 02111-1307 USA. */
  75571. + License along with the GNU C Library; if not, see
  75572. + <http://www.gnu.org/licenses/>. */
  75573. #ifndef _SYS_PROCFS_H
  75574. #define _SYS_PROCFS_H 1
  75575. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/ptrace.h uClibc-git/libc/sysdeps/linux/v850/sys/ptrace.h
  75576. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  75577. +++ uClibc-git/libc/sysdeps/linux/v850/sys/ptrace.h 2014-06-02 17:40:34.666715593 +0200
  75578. @@ -13,9 +13,8 @@
  75579. Lesser General Public License for more details.
  75580. You should have received a copy of the GNU Lesser General Public
  75581. - License along with the GNU C Library; if not, write to the Free
  75582. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75583. - 02111-1307 USA. */
  75584. + License along with the GNU C Library; if not, see
  75585. + <http://www.gnu.org/licenses/>. */
  75586. #ifndef _SYS_PTRACE_H
  75587. #define _SYS_PTRACE_H 1
  75588. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/ucontext.h uClibc-git/libc/sysdeps/linux/v850/sys/ucontext.h
  75589. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  75590. +++ uClibc-git/libc/sysdeps/linux/v850/sys/ucontext.h 2014-06-02 17:40:34.666715593 +0200
  75591. @@ -12,9 +12,8 @@
  75592. Lesser General Public License for more details.
  75593. You should have received a copy of the GNU Lesser General Public
  75594. - License along with the GNU C Library; if not, write to the Free
  75595. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75596. - 02111-1307 USA. */
  75597. + License along with the GNU C Library; if not, see
  75598. + <http://www.gnu.org/licenses/>. */
  75599. #ifndef _SYS_UCONTEXT_H
  75600. #define _SYS_UCONTEXT_H 1
  75601. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/v850/vfork.S uClibc-git/libc/sysdeps/linux/v850/vfork.S
  75602. --- uClibc-0.9.33.2/libc/sysdeps/linux/v850/vfork.S 2012-05-15 09:20:09.000000000 +0200
  75603. +++ uClibc-git/libc/sysdeps/linux/v850/vfork.S 2014-06-02 17:40:34.666715593 +0200
  75604. @@ -11,12 +11,7 @@
  75605. * Written by Miles Bader <miles@gnu.org>
  75606. */
  75607. -#include <features.h>
  75608. -#define _ERRNO_H 1
  75609. -#include <bits/errno.h>
  75610. -#define _SYSCALL_H
  75611. -#include <bits/sysnum.h>
  75612. -
  75613. +#include <sys/syscall.h>
  75614. #include <clinkage.h>
  75615. /* Clone the calling process, but without copying the whole address space.
  75616. @@ -24,8 +19,7 @@
  75617. replaced by a call to `execve'. Return -1 for errors, 0 to the new process,
  75618. and the process ID of the new process to the old process. */
  75619. -.global C_SYMBOL_NAME(errno)
  75620. -
  75621. +/* this should be made hidden */
  75622. C_ENTRY (__vfork):
  75623. addi SYS_vfork, r0, r12
  75624. trap 0
  75625. @@ -39,4 +33,4 @@
  75626. jmp [lp] /* error return */
  75627. C_END(__vfork)
  75628. weak_alias(__vfork,vfork)
  75629. -libc_hidden_weak(vfork)
  75630. +libc_hidden_def(vfork)
  75631. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/fcntl.h uClibc-git/libc/sysdeps/linux/vax/bits/fcntl.h
  75632. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  75633. +++ uClibc-git/libc/sysdeps/linux/vax/bits/fcntl.h 2014-06-02 17:40:34.666715593 +0200
  75634. @@ -14,8 +14,7 @@
  75635. You should have received a copy of the GNU Library General Public
  75636. License along with the GNU C Library; see the file COPYING.LIB. If not,
  75637. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  75638. - Boston, MA 02111-1307, USA. */
  75639. + see <http://www.gnu.org/licenses/>. */
  75640. #ifndef _FCNTL_H
  75641. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  75642. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/huge_val.h uClibc-git/libc/sysdeps/linux/vax/bits/huge_val.h
  75643. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/huge_val.h 1970-01-01 01:00:00.000000000 +0100
  75644. +++ uClibc-git/libc/sysdeps/linux/vax/bits/huge_val.h 2014-06-02 17:40:34.666715593 +0200
  75645. @@ -0,0 +1,25 @@
  75646. +/* `HUGE_VAL' constant for Vaxen.
  75647. + Used by <stdlib.h> and <math.h> functions for overflow.
  75648. + Copyright (C) 1992, 1996, 1997 Free Software Foundation, Inc.
  75649. + This file is part of the GNU C Library.
  75650. +
  75651. + The GNU C Library is free software; you can redistribute it and/or
  75652. + modify it under the terms of the GNU Lesser General Public
  75653. + License as published by the Free Software Foundation; either
  75654. + version 2.1 of the License, or (at your option) any later version.
  75655. +
  75656. + The GNU C Library is distributed in the hope that it will be useful,
  75657. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  75658. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  75659. + Lesser General Public License for more details.
  75660. +
  75661. + You should have received a copy of the GNU Lesser General Public
  75662. + License along with the GNU C Library; if not, see
  75663. + <http://www.gnu.org/licenses/>. */
  75664. +
  75665. +#ifndef _MATH_H
  75666. +# error "Never use <bits/huge_val.h> directly; include <math.h> instead."
  75667. +#endif
  75668. +
  75669. +
  75670. +#define HUGE_VAL 1.70141182460469227e38
  75671. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/ipc.h uClibc-git/libc/sysdeps/linux/vax/bits/ipc.h
  75672. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  75673. +++ uClibc-git/libc/sysdeps/linux/vax/bits/ipc.h 2014-06-02 17:40:34.666715593 +0200
  75674. @@ -13,8 +13,7 @@
  75675. You should have received a copy of the GNU Library General Public
  75676. License along with the GNU C Library; see the file COPYING.LIB. If not,
  75677. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  75678. - Boston, MA 02111-1307, USA. */
  75679. + see <http://www.gnu.org/licenses/>. */
  75680. #ifndef _SYS_IPC_H
  75681. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  75682. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/machine-gmon.h uClibc-git/libc/sysdeps/linux/vax/bits/machine-gmon.h
  75683. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/machine-gmon.h 2012-05-15 09:20:09.000000000 +0200
  75684. +++ uClibc-git/libc/sysdeps/linux/vax/bits/machine-gmon.h 1970-01-01 01:00:00.000000000 +0100
  75685. @@ -1,41 +0,0 @@
  75686. -/* i386-specific implementation of profiling support.
  75687. - Copyright (C) 1997, 2002 Free Software Foundation, Inc.
  75688. - This file is part of the GNU C Library.
  75689. - Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
  75690. -
  75691. - The GNU C Library is free software; you can redistribute it and/or
  75692. - modify it under the terms of the GNU Lesser General Public
  75693. - License as published by the Free Software Foundation; either
  75694. - version 2.1 of the License, or (at your option) any later version.
  75695. -
  75696. - The GNU C Library is distributed in the hope that it will be useful,
  75697. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  75698. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  75699. - Lesser General Public License for more details.
  75700. -
  75701. - You should have received a copy of the GNU Lesser General Public
  75702. - License along with the GNU C Library; if not, write to the Free
  75703. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75704. - 02111-1307 USA. */
  75705. -
  75706. -#include <sysdep.h>
  75707. -
  75708. -/* We need a special version of the `mcount' function since for ix86 it
  75709. - must not clobber any register. This has several reasons:
  75710. - - there is a bug in gcc as of version 2.7.2.2 which prohibits the
  75711. - use of profiling together with nested functions
  75712. - - the ELF `fixup' function uses GCC's regparm feature
  75713. - - some (future) systems might want to pass parameters in registers. */
  75714. -
  75715. -/* We must not pollute the global namespace. */
  75716. -#define mcount_internal __mcount_internal
  75717. -
  75718. -extern void mcount_internal (u_long frompc, u_long selfpc);
  75719. -
  75720. -#define _MCOUNT_DECL(frompc, selfpc) \
  75721. -void __attribute__ (( regparm (2) )) mcount_internal (u_long frompc, u_long selfpc)
  75722. -
  75723. -
  75724. -/* Define MCOUNT as empty since we have the implementation in another
  75725. - file. */
  75726. -#define MCOUNT
  75727. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/sem.h uClibc-git/libc/sysdeps/linux/vax/bits/sem.h
  75728. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
  75729. +++ uClibc-git/libc/sysdeps/linux/vax/bits/sem.h 2014-06-02 17:40:34.670715615 +0200
  75730. @@ -13,8 +13,7 @@
  75731. You should have received a copy of the GNU Library General Public
  75732. License along with the GNU C Library; see the file COPYING.LIB. If not,
  75733. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  75734. - Boston, MA 02111-1307, USA. */
  75735. + see <http://www.gnu.org/licenses/>. */
  75736. #ifndef _SYS_SEM_H
  75737. # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
  75738. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/setjmp.h uClibc-git/libc/sysdeps/linux/vax/bits/setjmp.h
  75739. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  75740. +++ uClibc-git/libc/sysdeps/linux/vax/bits/setjmp.h 2014-06-02 17:40:34.670715615 +0200
  75741. @@ -6,14 +6,8 @@
  75742. /* we want to save enough that we can use this to fool RET,
  75743. * So we basically save all of the CALLS stack frame. Plus regs. */
  75744. -#ifndef _ASM
  75745. typedef int __jmp_buf[16];
  75746. -#endif
  75747. -/* Test if longjmp to JMPBUF would unwind the frame
  75748. - containing a local variable at ADDRESS. */
  75749. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  75750. - ((void *) (address) < (void *) (jmpbuf[4]))
  75751. /*
  75752. jmp_buf layout. jmp_buf[0]
  75753. void *__cond; The condition handler
  75754. @@ -34,4 +28,3 @@
  75755. void *__rA; regs, r0->r11.
  75756. void *__rB; regs, r0->r11.
  75757. */
  75758. -
  75759. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/shm.h uClibc-git/libc/sysdeps/linux/vax/bits/shm.h
  75760. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  75761. +++ uClibc-git/libc/sysdeps/linux/vax/bits/shm.h 2014-06-02 17:40:34.670715615 +0200
  75762. @@ -13,8 +13,7 @@
  75763. You should have received a copy of the GNU Library General Public
  75764. License along with the GNU C Library; see the file COPYING.LIB. If not,
  75765. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  75766. - Boston, MA 02111-1307, USA. */
  75767. + see <http://www.gnu.org/licenses/>. */
  75768. #ifndef _SYS_SHM_H
  75769. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  75770. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/vax/bits/sigcontext.h
  75771. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
  75772. +++ uClibc-git/libc/sysdeps/linux/vax/bits/sigcontext.h 2014-06-02 17:40:34.670715615 +0200
  75773. @@ -13,8 +13,7 @@
  75774. You should have received a copy of the GNU Library General Public
  75775. License along with the GNU C Library; see the file COPYING.LIB. If not,
  75776. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  75777. - Boston, MA 02111-1307, USA. */
  75778. + see <http://www.gnu.org/licenses/>. */
  75779. #if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
  75780. # error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
  75781. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/statfs.h uClibc-git/libc/sysdeps/linux/vax/bits/statfs.h
  75782. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/statfs.h 2012-05-15 09:20:09.000000000 +0200
  75783. +++ uClibc-git/libc/sysdeps/linux/vax/bits/statfs.h 1970-01-01 01:00:00.000000000 +0100
  75784. @@ -1,61 +0,0 @@
  75785. -/* Copyright (C) 1997, 1998 Free Software Foundation, Inc.
  75786. - This file is part of the GNU C Library.
  75787. -
  75788. - The GNU C Library is free software; you can redistribute it and/or
  75789. - modify it under the terms of the GNU Library General Public License as
  75790. - published by the Free Software Foundation; either version 2 of the
  75791. - License, or (at your option) any later version.
  75792. -
  75793. - The GNU C Library is distributed in the hope that it will be useful,
  75794. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  75795. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  75796. - Library General Public License for more details.
  75797. -
  75798. - You should have received a copy of the GNU Library General Public
  75799. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  75800. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  75801. - Boston, MA 02111-1307, USA. */
  75802. -
  75803. -#ifndef _SYS_STATFS_H
  75804. -# error "Never include <bits/statfs.h> directly; use <sys/statfs.h> instead."
  75805. -#endif
  75806. -
  75807. -#include <bits/types.h> /* for __fsid_t and __fsblkcnt_t*/
  75808. -
  75809. -struct statfs
  75810. - {
  75811. - int f_type;
  75812. - int f_bsize;
  75813. -#ifndef __USE_FILE_OFFSET64
  75814. - __fsblkcnt_t f_blocks;
  75815. - __fsblkcnt_t f_bfree;
  75816. - __fsblkcnt_t f_bavail;
  75817. - __fsfilcnt_t f_files;
  75818. - __fsfilcnt_t f_ffree;
  75819. -#else
  75820. - __fsblkcnt64_t f_blocks;
  75821. - __fsblkcnt64_t f_bfree;
  75822. - __fsblkcnt64_t f_bavail;
  75823. - __fsfilcnt64_t f_files;
  75824. - __fsfilcnt64_t f_ffree;
  75825. -#endif
  75826. - __fsid_t f_fsid;
  75827. - int f_namelen;
  75828. - int f_spare[6];
  75829. - };
  75830. -
  75831. -#ifdef __USE_LARGEFILE64
  75832. -struct statfs64
  75833. - {
  75834. - int f_type;
  75835. - int f_bsize;
  75836. - __fsblkcnt64_t f_blocks;
  75837. - __fsblkcnt64_t f_bfree;
  75838. - __fsblkcnt64_t f_bavail;
  75839. - __fsfilcnt64_t f_files;
  75840. - __fsfilcnt64_t f_ffree;
  75841. - __fsid_t f_fsid;
  75842. - int f_namelen;
  75843. - int f_spare[6];
  75844. - };
  75845. -#endif
  75846. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/vax/bits/uClibc_arch_features.h
  75847. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  75848. +++ uClibc-git/libc/sysdeps/linux/vax/bits/uClibc_arch_features.h 2014-06-02 17:40:34.670715615 +0200
  75849. @@ -11,8 +11,8 @@
  75850. /* can your target use syscall6() for mmap ? */
  75851. #define __UCLIBC_MMAP_HAS_6_ARGS__
  75852. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  75853. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  75854. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  75855. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  75856. /* does your target have a broken create_module() ? */
  75857. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  75858. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/wordsize.h uClibc-git/libc/sysdeps/linux/vax/bits/wordsize.h
  75859. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  75860. +++ uClibc-git/libc/sysdeps/linux/vax/bits/wordsize.h 2014-06-02 17:40:34.670715615 +0200
  75861. @@ -13,7 +13,6 @@
  75862. You should have received a copy of the GNU Library General Public
  75863. License along with the GNU C Library; see the file COPYING.LIB. If not,
  75864. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  75865. - Boston, MA 02111-1307, USA. */
  75866. + see <http://www.gnu.org/licenses/>. */
  75867. #define __WORDSIZE 32
  75868. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/brk.c uClibc-git/libc/sysdeps/linux/vax/brk.c
  75869. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/brk.c 2012-05-15 09:20:09.000000000 +0200
  75870. +++ uClibc-git/libc/sysdeps/linux/vax/brk.c 2014-06-02 17:40:34.670715615 +0200
  75871. @@ -13,9 +13,8 @@
  75872. Lesser General Public License for more details.
  75873. You should have received a copy of the GNU Lesser General Public
  75874. - License along with the GNU C Library; if not, write to the Free
  75875. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75876. - 02111-1307 USA. */
  75877. + License along with the GNU C Library; if not, see
  75878. + <http://www.gnu.org/licenses/>. */
  75879. #include <errno.h>
  75880. #include <unistd.h>
  75881. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/clone.S uClibc-git/libc/sysdeps/linux/vax/clone.S
  75882. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/clone.S 2012-05-15 09:20:09.000000000 +0200
  75883. +++ uClibc-git/libc/sysdeps/linux/vax/clone.S 2014-06-02 17:40:34.670715615 +0200
  75884. @@ -12,8 +12,7 @@
  75885. You should have received a copy of the GNU Library General Public
  75886. License along with the GNU C Library; see the file COPYING.LIB. If not,
  75887. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  75888. - Boston, MA 02111-1307, USA. */
  75889. + see <http://www.gnu.org/licenses/>. */
  75890. /* clone() is even more special than fork() as it mucks with stacks
  75891. and invokes a function in the right context after its all over. */
  75892. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/vax/jmpbuf-unwind.h
  75893. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  75894. +++ uClibc-git/libc/sysdeps/linux/vax/jmpbuf-unwind.h 2014-06-02 17:40:34.682715682 +0200
  75895. @@ -0,0 +1,11 @@
  75896. +/*
  75897. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  75898. + *
  75899. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  75900. + */
  75901. +#include <setjmp.h>
  75902. +
  75903. +/* Test if longjmp to JMPBUF would unwind the frame
  75904. + containing a local variable at ADDRESS. */
  75905. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  75906. + ((void *) (address) < (void *) (jmpbuf[4]))
  75907. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/Makefile.arch uClibc-git/libc/sysdeps/linux/vax/Makefile.arch
  75908. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  75909. +++ uClibc-git/libc/sysdeps/linux/vax/Makefile.arch 2014-06-02 17:40:34.666715593 +0200
  75910. @@ -6,5 +6,5 @@
  75911. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  75912. #
  75913. -CSRC := brk.c mmap.c
  75914. -SSRC := __longjmp.S setjmp.S _setjmp.S clone.S
  75915. +CSRC-y := brk.c
  75916. +SSRC-y := __longjmp.S setjmp.S _setjmp.S clone.S
  75917. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/mmap.c uClibc-git/libc/sysdeps/linux/vax/mmap.c
  75918. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/mmap.c 2012-05-15 09:20:09.000000000 +0200
  75919. +++ uClibc-git/libc/sysdeps/linux/vax/mmap.c 1970-01-01 01:00:00.000000000 +0100
  75920. @@ -1,10 +0,0 @@
  75921. -
  75922. -#include <unistd.h>
  75923. -#include <sys/mman.h>
  75924. -#include <errno.h>
  75925. -#include <sys/syscall.h>
  75926. -
  75927. -_syscall6 (void *, mmap, void *, start, size_t, length, int, prot, int, flags,
  75928. - int, fd, off_t, offset)
  75929. -libc_hidden_def(mmap)
  75930. -
  75931. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/sys/procfs.h uClibc-git/libc/sysdeps/linux/vax/sys/procfs.h
  75932. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  75933. +++ uClibc-git/libc/sysdeps/linux/vax/sys/procfs.h 2014-06-02 17:40:34.682715682 +0200
  75934. @@ -12,9 +12,8 @@
  75935. Lesser General Public License for more details.
  75936. You should have received a copy of the GNU Lesser General Public
  75937. - License along with the GNU C Library; if not, write to the Free
  75938. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75939. - 02111-1307 USA. */
  75940. + License along with the GNU C Library; if not, see
  75941. + <http://www.gnu.org/licenses/>. */
  75942. #ifndef _SYS_PROCFS_H
  75943. #define _SYS_PROCFS_H 1
  75944. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/vax/sys/ucontext.h uClibc-git/libc/sysdeps/linux/vax/sys/ucontext.h
  75945. --- uClibc-0.9.33.2/libc/sysdeps/linux/vax/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  75946. +++ uClibc-git/libc/sysdeps/linux/vax/sys/ucontext.h 2014-06-02 17:40:34.682715682 +0200
  75947. @@ -12,9 +12,8 @@
  75948. Lesser General Public License for more details.
  75949. You should have received a copy of the GNU Lesser General Public
  75950. - License along with the GNU C Library; if not, write to the Free
  75951. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75952. - 02111-1307 USA. */
  75953. + License along with the GNU C Library; if not, see
  75954. + <http://www.gnu.org/licenses/>. */
  75955. /* Don't rely on this, the interface is currently messed up and may need to
  75956. be broken to be fixed. */
  75957. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/atomic.h uClibc-git/libc/sysdeps/linux/x86_64/bits/atomic.h
  75958. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/atomic.h 2012-05-15 09:20:09.000000000 +0200
  75959. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/atomic.h 2014-06-02 17:40:34.682715682 +0200
  75960. @@ -13,9 +13,8 @@
  75961. Lesser General Public License for more details.
  75962. You should have received a copy of the GNU Lesser General Public
  75963. - License along with the GNU C Library; if not, write to the Free
  75964. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75965. - 02111-1307 USA. */
  75966. + License along with the GNU C Library; if not, see
  75967. + <http://www.gnu.org/licenses/>. */
  75968. #include <stdint.h>
  75969. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/byteswap.h uClibc-git/libc/sysdeps/linux/x86_64/bits/byteswap.h
  75970. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/byteswap.h 2012-05-15 09:20:09.000000000 +0200
  75971. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/byteswap.h 2014-06-02 17:40:34.682715682 +0200
  75972. @@ -13,9 +13,8 @@
  75973. Lesser General Public License for more details.
  75974. You should have received a copy of the GNU Lesser General Public
  75975. - License along with the GNU C Library; if not, write to the Free
  75976. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75977. - 02111-1307 USA. */
  75978. + License along with the GNU C Library; if not, see
  75979. + <http://www.gnu.org/licenses/>. */
  75980. #ifndef _ASM_BITS_BYTESWAP_H
  75981. #define _ASM_BITS_BYTESWAP_H 1
  75982. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/environments.h uClibc-git/libc/sysdeps/linux/x86_64/bits/environments.h
  75983. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/environments.h 2012-05-15 09:20:09.000000000 +0200
  75984. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/environments.h 2014-06-02 17:40:34.682715682 +0200
  75985. @@ -12,9 +12,8 @@
  75986. Lesser General Public License for more details.
  75987. You should have received a copy of the GNU Lesser General Public
  75988. - License along with the GNU C Library; if not, write to the Free
  75989. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  75990. - 02111-1307 USA. */
  75991. + License along with the GNU C Library; if not, see
  75992. + <http://www.gnu.org/licenses/>. */
  75993. #ifndef _UNISTD_H
  75994. # error "Never include this file directly. Use <unistd.h> instead"
  75995. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/fcntl.h uClibc-git/libc/sysdeps/linux/x86_64/bits/fcntl.h
  75996. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  75997. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/fcntl.h 2014-06-02 17:40:34.682715682 +0200
  75998. @@ -13,9 +13,8 @@
  75999. Lesser General Public License for more details.
  76000. You should have received a copy of the GNU Lesser General Public
  76001. - License along with the GNU C Library; if not, write to the Free
  76002. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76003. - 02111-1307 USA. */
  76004. + License along with the GNU C Library; if not, see
  76005. + <http://www.gnu.org/licenses/>. */
  76006. #ifndef _FCNTL_H
  76007. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  76008. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/fenv.h uClibc-git/libc/sysdeps/linux/x86_64/bits/fenv.h
  76009. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/fenv.h 2012-05-15 09:20:09.000000000 +0200
  76010. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/fenv.h 2014-06-02 17:40:34.686715704 +0200
  76011. @@ -12,9 +12,8 @@
  76012. Lesser General Public License for more details.
  76013. You should have received a copy of the GNU Lesser General Public
  76014. - License along with the GNU C Library; if not, write to the Free
  76015. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76016. - 02111-1307 USA. */
  76017. + License along with the GNU C Library; if not, see
  76018. + <http://www.gnu.org/licenses/>. */
  76019. #ifndef _FENV_H
  76020. # error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
  76021. @@ -89,9 +88,9 @@
  76022. fenv_t;
  76023. /* If the default argument is used we use this value. */
  76024. -#define FE_DFL_ENV ((__const fenv_t *) -1)
  76025. +#define FE_DFL_ENV ((const fenv_t *) -1)
  76026. #ifdef __USE_GNU
  76027. /* Floating-point environment where none of the exception is masked. */
  76028. -# define FE_NOMASK_ENV ((__const fenv_t *) -2)
  76029. +# define FE_NOMASK_ENV ((const fenv_t *) -2)
  76030. #endif
  76031. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/x86_64/bits/kernel_types.h
  76032. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  76033. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/kernel_types.h 2014-06-02 17:40:34.686715704 +0200
  76034. @@ -40,6 +40,8 @@
  76035. typedef unsigned short __kernel_old_uid_t;
  76036. typedef unsigned short __kernel_old_gid_t;
  76037. typedef __kernel_dev_t __kernel_old_dev_t;
  76038. +typedef long __kernel_long_t;
  76039. +typedef unsigned long __kernel_ulong_t;
  76040. typedef long long __kernel_loff_t;
  76041. typedef struct {
  76042. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/mathdef.h uClibc-git/libc/sysdeps/linux/x86_64/bits/mathdef.h
  76043. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  76044. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/mathdef.h 2014-06-02 17:40:34.686715704 +0200
  76045. @@ -12,9 +12,8 @@
  76046. Lesser General Public License for more details.
  76047. You should have received a copy of the GNU Lesser General Public
  76048. - License along with the GNU C Library; if not, write to the Free
  76049. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76050. - 02111-1307 USA. */
  76051. + License along with the GNU C Library; if not, see
  76052. + <http://www.gnu.org/licenses/>. */
  76053. #if !defined _MATH_H && !defined _COMPLEX_H
  76054. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  76055. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/mathinline.h uClibc-git/libc/sysdeps/linux/x86_64/bits/mathinline.h
  76056. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/mathinline.h 2012-05-15 09:20:09.000000000 +0200
  76057. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/mathinline.h 2014-06-02 17:40:34.686715704 +0200
  76058. @@ -14,9 +14,8 @@
  76059. Lesser General Public License for more details.
  76060. You should have received a copy of the GNU Lesser General Public
  76061. - License along with the GNU C Library; if not, write to the Free
  76062. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76063. - 02111-1307 USA. */
  76064. + License along with the GNU C Library; if not, see
  76065. + <http://www.gnu.org/licenses/>. */
  76066. #ifndef _MATH_H
  76067. # error "Never use <bits/mathinline.h> directly; include <math.h> instead."
  76068. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/msq.h uClibc-git/libc/sysdeps/linux/x86_64/bits/msq.h
  76069. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
  76070. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/msq.h 2014-06-02 17:40:34.686715704 +0200
  76071. @@ -12,9 +12,8 @@
  76072. Lesser General Public License for more details.
  76073. You should have received a copy of the GNU Lesser General Public
  76074. - License along with the GNU C Library; if not, write to the Free
  76075. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76076. - 02111-1307 USA. */
  76077. + License along with the GNU C Library; if not, see
  76078. + <http://www.gnu.org/licenses/>. */
  76079. #ifndef _SYS_MSG_H
  76080. # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  76081. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/sem.h uClibc-git/libc/sysdeps/linux/x86_64/bits/sem.h
  76082. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/sem.h 2012-05-15 09:20:09.000000000 +0200
  76083. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/sem.h 2014-06-02 17:40:34.686715704 +0200
  76084. @@ -12,9 +12,8 @@
  76085. Lesser General Public License for more details.
  76086. You should have received a copy of the GNU Lesser General Public
  76087. - License along with the GNU C Library; if not, write to the Free
  76088. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76089. - 02111-1307 USA. */
  76090. + License along with the GNU C Library; if not, see
  76091. + <http://www.gnu.org/licenses/>. */
  76092. #ifndef _SYS_SEM_H
  76093. # error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
  76094. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/setjmp.h uClibc-git/libc/sysdeps/linux/x86_64/bits/setjmp.h
  76095. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  76096. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/setjmp.h 2014-06-02 17:40:34.686715704 +0200
  76097. @@ -1,4 +1,4 @@
  76098. -/* Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
  76099. +/* Copyright (C) 2001,2002,2003,2005,2006 Free Software Foundation, Inc.
  76100. This file is part of the GNU C Library.
  76101. The GNU C Library is free software; you can redistribute it and/or
  76102. @@ -12,13 +12,12 @@
  76103. Lesser General Public License for more details.
  76104. You should have received a copy of the GNU Lesser General Public
  76105. - License along with the GNU C Library; if not, write to the Free
  76106. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76107. - 02111-1307 USA. */
  76108. + License along with the GNU C Library; if not, see
  76109. + <http://www.gnu.org/licenses/>. */
  76110. /* Define the machine-dependent type `jmp_buf'. x86-64 version. */
  76111. #ifndef _BITS_SETJMP_H
  76112. -#define _BITS_SETJMP_H 1
  76113. +#define _BITS_SETJMP_H 1
  76114. #if !defined _SETJMP_H && !defined _PTHREAD_H
  76115. # error "Never include <bits/setjmp.h> directly; use <setjmp.h> instead."
  76116. @@ -27,52 +26,9 @@
  76117. #include <bits/wordsize.h>
  76118. #if __WORDSIZE == 64
  76119. -
  76120. -/* We only need to save callee-saved registers plus stackpointer and
  76121. - program counter. */
  76122. -# if defined __USE_MISC || defined _ASM
  76123. -# define JB_RBX 0
  76124. -# define JB_RBP 1
  76125. -# define JB_R12 2
  76126. -# define JB_R13 3
  76127. -# define JB_R14 4
  76128. -# define JB_R15 5
  76129. -# define JB_RSP 6
  76130. -# define JB_PC 7
  76131. -# define JB_SIZE (8*8)
  76132. -# endif
  76133. -
  76134. -#else
  76135. -
  76136. -# if defined __USE_MISC || defined _ASM
  76137. -# define JB_BX 0
  76138. -# define JB_SI 1
  76139. -# define JB_DI 2
  76140. -# define JB_BP 3
  76141. -# define JB_SP 4
  76142. -# define JB_PC 5
  76143. -# define JB_SIZE 24
  76144. -# endif
  76145. -
  76146. -#endif
  76147. -
  76148. -#ifndef _ASM
  76149. -
  76150. -# if __WORDSIZE == 64
  76151. typedef long int __jmp_buf[8];
  76152. -# else
  76153. +#else
  76154. typedef int __jmp_buf[6];
  76155. -# endif
  76156. -
  76157. -/* Test if longjmp to JMPBUF would unwind the frame
  76158. - containing a local variable at ADDRESS. */
  76159. -# if __WORDSIZE == 64
  76160. -# define _JMPBUF_UNWINDS(jmpbuf, address) \
  76161. - ((void *) (address) < (void *) (jmpbuf)[JB_RSP])
  76162. -# else
  76163. -# define _JMPBUF_UNWINDS(jmpbuf, address) \
  76164. - ((void *) (address) < (void *) (jmpbuf)[JB_SP])
  76165. -# endif
  76166. #endif
  76167. -#endif /* bits/setjmp.h */
  76168. +#endif /* bits/setjmp.h */
  76169. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/shm.h uClibc-git/libc/sysdeps/linux/x86_64/bits/shm.h
  76170. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  76171. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/shm.h 2014-06-02 17:40:34.686715704 +0200
  76172. @@ -13,9 +13,8 @@
  76173. Lesser General Public License for more details.
  76174. You should have received a copy of the GNU Lesser General Public
  76175. - License along with the GNU C Library; if not, write to the Free
  76176. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76177. - 02111-1307 USA. */
  76178. + License along with the GNU C Library; if not, see
  76179. + <http://www.gnu.org/licenses/>. */
  76180. #ifndef _SYS_SHM_H
  76181. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  76182. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/x86_64/bits/sigcontext.h
  76183. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/sigcontext.h 2012-05-15 09:20:09.000000000 +0200
  76184. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/sigcontext.h 2014-06-02 17:40:34.686715704 +0200
  76185. @@ -12,9 +12,8 @@
  76186. Lesser General Public License for more details.
  76187. You should have received a copy of the GNU Lesser General Public
  76188. - License along with the GNU C Library; if not, write to the Free
  76189. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76190. - 02111-1307 USA. */
  76191. + License along with the GNU C Library; if not, see
  76192. + <http://www.gnu.org/licenses/>. */
  76193. #ifndef _BITS_SIGCONTEXT_H
  76194. #define _BITS_SIGCONTEXT_H 1
  76195. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/x86_64/bits/sigcontextinfo.h
  76196. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  76197. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/sigcontextinfo.h 2014-06-02 17:40:34.686715704 +0200
  76198. @@ -12,9 +12,8 @@
  76199. Lesser General Public License for more details.
  76200. You should have received a copy of the GNU Lesser General Public
  76201. - License along with the GNU C Library; if not, write to the Free
  76202. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76203. - 02111-1307 USA. */
  76204. + License along with the GNU C Library; if not, see
  76205. + <http://www.gnu.org/licenses/>. */
  76206. #define SIGCONTEXT siginfo_t *_si, struct ucontext *
  76207. #define SIGCONTEXT_EXTRA_ARGS _si,
  76208. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/x86_64/bits/stackinfo.h
  76209. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  76210. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/stackinfo.h 2014-06-02 17:40:34.686715704 +0200
  76211. @@ -12,9 +12,8 @@
  76212. Lesser General Public License for more details.
  76213. You should have received a copy of the GNU Lesser General Public
  76214. - License along with the GNU C Library; if not, write to the Free
  76215. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76216. - 02111-1307 USA. */
  76217. + License along with the GNU C Library; if not, see
  76218. + <http://www.gnu.org/licenses/>. */
  76219. /* This file contains a bit of information about the stack allocation
  76220. of the processor. */
  76221. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/stat.h uClibc-git/libc/sysdeps/linux/x86_64/bits/stat.h
  76222. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  76223. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/stat.h 2014-06-02 17:40:34.686715704 +0200
  76224. @@ -12,9 +12,8 @@
  76225. Lesser General Public License for more details.
  76226. You should have received a copy of the GNU Lesser General Public
  76227. - License along with the GNU C Library; if not, write to the Free
  76228. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76229. - 02111-1307 USA. */
  76230. + License along with the GNU C Library; if not, see
  76231. + <http://www.gnu.org/licenses/>. */
  76232. #ifndef _SYS_STAT_H
  76233. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  76234. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/x86_64/bits/uClibc_arch_features.h
  76235. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  76236. +++ uClibc-git/libc/sysdeps/linux/x86_64/bits/uClibc_arch_features.h 2014-06-02 17:40:34.686715704 +0200
  76237. @@ -11,8 +11,8 @@
  76238. /* can your target use syscall6() for mmap ? */
  76239. #define __UCLIBC_MMAP_HAS_6_ARGS__
  76240. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  76241. -#undef __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  76242. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  76243. +#undef __UCLIBC_SYSCALL_ALIGN_64BIT__
  76244. /* does your target have a broken create_module() ? */
  76245. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  76246. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/brk.c uClibc-git/libc/sysdeps/linux/x86_64/brk.c
  76247. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/brk.c 2012-05-15 09:20:09.000000000 +0200
  76248. +++ uClibc-git/libc/sysdeps/linux/x86_64/brk.c 2014-06-02 17:40:34.686715704 +0200
  76249. @@ -13,9 +13,8 @@
  76250. Lesser General Public License for more details.
  76251. You should have received a copy of the GNU Lesser General Public
  76252. - License along with the GNU C Library; if not, write to the Free
  76253. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76254. - 02111-1307 USA. */
  76255. + License along with the GNU C Library; if not, see
  76256. + <http://www.gnu.org/licenses/>. */
  76257. #include <errno.h>
  76258. #include <unistd.h>
  76259. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bsd-setjmp.S uClibc-git/libc/sysdeps/linux/x86_64/bsd-setjmp.S
  76260. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bsd-setjmp.S 2012-05-15 09:20:09.000000000 +0200
  76261. +++ uClibc-git/libc/sysdeps/linux/x86_64/bsd-setjmp.S 2014-06-02 17:40:34.686715704 +0200
  76262. @@ -13,14 +13,8 @@
  76263. Lesser General Public License for more details.
  76264. You should have received a copy of the GNU Lesser General Public
  76265. - License along with the GNU C Library; if not, write to the Free
  76266. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76267. - 02111-1307 USA. */
  76268. -
  76269. -#define _ASM
  76270. -#define _SETJMP_H
  76271. -#include <bits/setjmp.h>
  76272. -#include <sysdep.h>
  76273. + License along with the GNU C Library; if not, see
  76274. + <http://www.gnu.org/licenses/>. */
  76275. .global setjmp
  76276. .type setjmp,%function
  76277. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bsd-_setjmp.S uClibc-git/libc/sysdeps/linux/x86_64/bsd-_setjmp.S
  76278. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/bsd-_setjmp.S 2012-05-15 09:20:09.000000000 +0200
  76279. +++ uClibc-git/libc/sysdeps/linux/x86_64/bsd-_setjmp.S 2014-06-02 17:40:34.686715704 +0200
  76280. @@ -13,9 +13,8 @@
  76281. Lesser General Public License for more details.
  76282. You should have received a copy of the GNU Lesser General Public
  76283. - License along with the GNU C Library; if not, write to the Free
  76284. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76285. - 02111-1307 USA. */
  76286. + License along with the GNU C Library; if not, see
  76287. + <http://www.gnu.org/licenses/>. */
  76288. /* This just does a tail-call to `__sigsetjmp (ARG, 0)'.
  76289. We cannot do it in C because it must be a tail-call, so frame-unwinding
  76290. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/clone.S uClibc-git/libc/sysdeps/linux/x86_64/clone.S
  76291. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/clone.S 2012-05-15 09:20:09.000000000 +0200
  76292. +++ uClibc-git/libc/sysdeps/linux/x86_64/clone.S 2014-06-02 17:40:34.686715704 +0200
  76293. @@ -12,9 +12,8 @@
  76294. Lesser General Public License for more details.
  76295. You should have received a copy of the GNU Lesser General Public
  76296. - License along with the GNU C Library; if not, write to the Free
  76297. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76298. - 02111-1307 USA. */
  76299. + License along with the GNU C Library; if not, see
  76300. + <http://www.gnu.org/licenses/>. */
  76301. /* clone() is even more special than fork() as it mucks with stacks
  76302. and invokes a function in the right context after its all over. */
  76303. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/crt1.S uClibc-git/libc/sysdeps/linux/x86_64/crt1.S
  76304. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/crt1.S 2012-05-15 09:20:09.000000000 +0200
  76305. +++ uClibc-git/libc/sysdeps/linux/x86_64/crt1.S 2014-06-02 17:40:34.686715704 +0200
  76306. @@ -31,9 +31,8 @@
  76307. Lesser General Public License for more details.
  76308. You should have received a copy of the GNU Lesser General Public
  76309. - License along with the GNU C Library; if not, write to the Free
  76310. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76311. - 02111-1307 USA. */
  76312. + License along with the GNU C Library; if not, see
  76313. + <http://www.gnu.org/licenses/>. */
  76314. /* Originally based on glibc's sysdeps/x86_64/elf/start.S */
  76315. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/fpu_control.h uClibc-git/libc/sysdeps/linux/x86_64/fpu_control.h
  76316. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/fpu_control.h 2012-05-15 09:20:09.000000000 +0200
  76317. +++ uClibc-git/libc/sysdeps/linux/x86_64/fpu_control.h 2014-06-02 17:40:34.686715704 +0200
  76318. @@ -14,9 +14,8 @@
  76319. Lesser General Public License for more details.
  76320. You should have received a copy of the GNU Lesser General Public
  76321. - License along with the GNU C Library; if not, write to the Free
  76322. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76323. - 02111-1307 USA. */
  76324. + License along with the GNU C Library; if not, see
  76325. + <http://www.gnu.org/licenses/>. */
  76326. #ifndef _FPU_CONTROL_H
  76327. #define _FPU_CONTROL_H 1
  76328. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/getcontext.S uClibc-git/libc/sysdeps/linux/x86_64/getcontext.S
  76329. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/getcontext.S 1970-01-01 01:00:00.000000000 +0100
  76330. +++ uClibc-git/libc/sysdeps/linux/x86_64/getcontext.S 2014-06-02 17:40:34.686715704 +0200
  76331. @@ -0,0 +1,88 @@
  76332. +/* Save current context.
  76333. + Copyright (C) 2002-2012 Free Software Foundation, Inc.
  76334. + This file is part of the GNU C Library.
  76335. + Contributed by Andreas Jaeger <aj@suse.de>, 2002.
  76336. +
  76337. + The GNU C Library is free software; you can redistribute it and/or
  76338. + modify it under the terms of the GNU Lesser General Public
  76339. + License as published by the Free Software Foundation; either
  76340. + version 2.1 of the License, or (at your option) any later version.
  76341. +
  76342. + The GNU C Library is distributed in the hope that it will be useful,
  76343. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  76344. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  76345. + Lesser General Public License for more details.
  76346. +
  76347. + You should have received a copy of the GNU Lesser General Public
  76348. + License along with the GNU C Library; if not, see
  76349. + <http://www.gnu.org/licenses/>. */
  76350. +
  76351. +#include <sysdep.h>
  76352. +
  76353. +#include "ucontext_i.h"
  76354. +
  76355. +/* int __getcontext (ucontext_t *ucp)
  76356. +
  76357. + Saves the machine context in UCP such that when it is activated,
  76358. + it appears as if __getcontext() returned again.
  76359. +
  76360. + This implementation is intended to be used for *synchronous* context
  76361. + switches only. Therefore, it does not have to save anything
  76362. + other than the PRESERVED state. */
  76363. +
  76364. +
  76365. +ENTRY(__getcontext)
  76366. + /* Save the preserved registers, the registers used for passing
  76367. + args, and the return address. */
  76368. + movq %rbx, oRBX(%rdi)
  76369. + movq %rbp, oRBP(%rdi)
  76370. + movq %r12, oR12(%rdi)
  76371. + movq %r13, oR13(%rdi)
  76372. + movq %r14, oR14(%rdi)
  76373. + movq %r15, oR15(%rdi)
  76374. +
  76375. + movq %rdi, oRDI(%rdi)
  76376. + movq %rsi, oRSI(%rdi)
  76377. + movq %rdx, oRDX(%rdi)
  76378. + movq %rcx, oRCX(%rdi)
  76379. + movq %r8, oR8(%rdi)
  76380. + movq %r9, oR9(%rdi)
  76381. +
  76382. + movq (%rsp), %rcx
  76383. + movq %rcx, oRIP(%rdi)
  76384. + leaq 8(%rsp), %rcx /* Exclude the return address. */
  76385. + movq %rcx, oRSP(%rdi)
  76386. +
  76387. + /* We have separate floating-point register content memory on the
  76388. + stack. We use the __fpregs_mem block in the context. Set the
  76389. + links up correctly. */
  76390. +
  76391. + leaq oFPREGSMEM(%rdi), %rcx
  76392. + movq %rcx, oFPREGS(%rdi)
  76393. + /* Save the floating-point environment. */
  76394. + fnstenv (%rcx)
  76395. + fldenv (%rcx)
  76396. + stmxcsr oMXCSR(%rdi)
  76397. +
  76398. + /* Save the current signal mask with
  76399. + rt_sigprocmask (SIG_BLOCK, NULL, set,_NSIG/8). */
  76400. + leaq oSIGMASK(%rdi), %rdx
  76401. + xorl %esi,%esi
  76402. +#if SIG_BLOCK == 0
  76403. + xorl %edi, %edi
  76404. +#else
  76405. + movl $SIG_BLOCK, %edi
  76406. +#endif
  76407. + movl $_NSIG8,%r10d
  76408. + movl $__NR_rt_sigprocmask, %eax
  76409. + syscall
  76410. + cmpq $-4095, %rax /* Check %rax for error. */
  76411. + jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
  76412. +
  76413. + /* All done, return 0 for success. */
  76414. + xorl %eax, %eax
  76415. +L(pseudo_end):
  76416. + ret
  76417. +PSEUDO_END(__getcontext)
  76418. +
  76419. +weak_alias (__getcontext, getcontext)
  76420. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/x86_64/jmpbuf-offsets.h
  76421. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  76422. +++ uClibc-git/libc/sysdeps/linux/x86_64/jmpbuf-offsets.h 2014-06-02 17:40:34.686715704 +0200
  76423. @@ -0,0 +1,45 @@
  76424. +/* Private macros for accessing __jmp_buf contents. x86-64 version.
  76425. + Copyright (C) 2006 Free Software Foundation, Inc.
  76426. + This file is part of the GNU C Library.
  76427. +
  76428. + The GNU C Library is free software; you can redistribute it and/or
  76429. + modify it under the terms of the GNU Lesser General Public
  76430. + License as published by the Free Software Foundation; either
  76431. + version 2.1 of the License, or (at your option) any later version.
  76432. +
  76433. + The GNU C Library is distributed in the hope that it will be useful,
  76434. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  76435. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  76436. + Lesser General Public License for more details.
  76437. +
  76438. + You should have received a copy of the GNU Lesser General Public
  76439. + License along with the GNU C Library; if not, see
  76440. + <http://www.gnu.org/licenses/>. */
  76441. +
  76442. +#include <bits/wordsize.h>
  76443. +
  76444. +#if __WORDSIZE == 64
  76445. +
  76446. +/* We only need to save callee-saved registers plus stackpointer and
  76447. + program counter. */
  76448. +# define JB_RBX 0
  76449. +# define JB_RBP 1
  76450. +# define JB_R12 2
  76451. +# define JB_R13 3
  76452. +# define JB_R14 4
  76453. +# define JB_R15 5
  76454. +# define JB_RSP 6
  76455. +# define JB_PC 7
  76456. +# define JB_SIZE (8*8)
  76457. +
  76458. +#else
  76459. +
  76460. +# define JB_BX 0
  76461. +# define JB_SI 1
  76462. +# define JB_DI 2
  76463. +# define JB_BP 3
  76464. +# define JB_SP 4
  76465. +# define JB_PC 5
  76466. +# define JB_SIZE 24
  76467. +
  76468. +#endif
  76469. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/x86_64/jmpbuf-unwind.h
  76470. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  76471. +++ uClibc-git/libc/sysdeps/linux/x86_64/jmpbuf-unwind.h 2014-06-02 17:40:34.686715704 +0200
  76472. @@ -0,0 +1,28 @@
  76473. +/*
  76474. + * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  76475. + *
  76476. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  76477. + */
  76478. +#include <setjmp.h>
  76479. +#include <jmpbuf-offsets.h>
  76480. +
  76481. +/* Test if longjmp to JMPBUF would unwind the frame
  76482. + containing a local variable at ADDRESS. */
  76483. +#if __WORDSIZE == 64
  76484. +# define _JMPBUF_UNWINDS(jmpbuf, address) \
  76485. + ((void *) (address) < (void *) (jmpbuf)[JB_RSP])
  76486. +#else
  76487. +# define _JMPBUF_UNWINDS(jmpbuf, address) \
  76488. + ((void *) (address) < (void *) (jmpbuf)[JB_SP])
  76489. +#endif
  76490. +
  76491. +#ifdef __UCLIBC_HAS_THREADS_NATIVE__
  76492. +#include <stdint.h>
  76493. +#include <unwind.h>
  76494. +
  76495. +#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
  76496. + _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
  76497. +
  76498. +#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  76499. + ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_RSP] - (_adj))
  76500. +#endif
  76501. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/__longjmp.S uClibc-git/libc/sysdeps/linux/x86_64/__longjmp.S
  76502. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  76503. +++ uClibc-git/libc/sysdeps/linux/x86_64/__longjmp.S 2014-06-02 17:40:34.682715682 +0200
  76504. @@ -12,14 +12,10 @@
  76505. Lesser General Public License for more details.
  76506. You should have received a copy of the GNU Lesser General Public
  76507. - License along with the GNU C Library; if not, write to the Free
  76508. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76509. - 02111-1307 USA. */
  76510. + License along with the GNU C Library; if not, see
  76511. + <http://www.gnu.org/licenses/>. */
  76512. -#include <features.h>
  76513. -#define _ASM
  76514. -#define _SETJMP_H
  76515. -#include <bits/setjmp.h>
  76516. +#include <jmpbuf-offsets.h>
  76517. /* Jump to the position specified by ENV, causing the
  76518. setjmp call there to return VAL, or 1 if VAL is 0.
  76519. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/makecontext.c uClibc-git/libc/sysdeps/linux/x86_64/makecontext.c
  76520. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/makecontext.c 1970-01-01 01:00:00.000000000 +0100
  76521. +++ uClibc-git/libc/sysdeps/linux/x86_64/makecontext.c 2014-06-02 17:40:34.686715704 +0200
  76522. @@ -0,0 +1,121 @@
  76523. +/* Create new context.
  76524. + Copyright (C) 2002, 2004, 2005, 2008 Free Software Foundation, Inc.
  76525. + This file is part of the GNU C Library.
  76526. + Contributed by Andreas Jaeger <aj@suse.de>, 2002.
  76527. +
  76528. + The GNU C Library is free software; you can redistribute it and/or
  76529. + modify it under the terms of the GNU Lesser General Public
  76530. + License as published by the Free Software Foundation; either
  76531. + version 2.1 of the License, or (at your option) any later version.
  76532. +
  76533. + The GNU C Library is distributed in the hope that it will be useful,
  76534. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  76535. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  76536. + Lesser General Public License for more details.
  76537. +
  76538. + You should have received a copy of the GNU Lesser General Public
  76539. + License along with the GNU C Library; if not, see
  76540. + <http://www.gnu.org/licenses/>. */
  76541. +
  76542. +#include <sysdep.h>
  76543. +#include <stdarg.h>
  76544. +#include <stdint.h>
  76545. +#include <ucontext.h>
  76546. +
  76547. +#include "ucontext_i.h"
  76548. +
  76549. +/* This implementation can handle any ARGC value but only
  76550. + normal integer parameters.
  76551. + makecontext sets up a stack and the registers for the
  76552. + user context. The stack looks like this:
  76553. + +-----------------------+
  76554. + | next context |
  76555. + +-----------------------+
  76556. + | parameter 7-n |
  76557. + +-----------------------+
  76558. + | trampoline address |
  76559. + %rsp -> +-----------------------+
  76560. +
  76561. + The registers are set up like this:
  76562. + %rdi,%rsi,%rdx,%rcx,%r8,%r9: parameter 1 to 6
  76563. + %rbx : address of next context
  76564. + %rsp : stack pointer.
  76565. +*/
  76566. +
  76567. +/* XXX: This implementation currently only handles integer arguments.
  76568. + To handle long int and pointer arguments the va_arg arguments needs
  76569. + to be changed to long and also the stdlib/tst-setcontext.c file needs
  76570. + to be changed to pass long arguments to makecontext. */
  76571. +
  76572. +
  76573. +void
  76574. +__makecontext (ucontext_t *ucp, void (*func) (void), int argc, ...)
  76575. +{
  76576. + extern void __start_context (void);
  76577. + greg_t *sp;
  76578. + unsigned int idx_uc_link;
  76579. + va_list ap;
  76580. + int i;
  76581. +
  76582. + /* Generate room on stack for parameter if needed and uc_link. */
  76583. + sp = (greg_t *) ((uintptr_t) ucp->uc_stack.ss_sp
  76584. + + ucp->uc_stack.ss_size);
  76585. + sp -= (argc > 6 ? argc - 6 : 0) + 1;
  76586. + /* Align stack and make space for trampoline address. */
  76587. + sp = (greg_t *) ((((uintptr_t) sp) & -16L) - 8);
  76588. +
  76589. + idx_uc_link = (argc > 6 ? argc - 6 : 0) + 1;
  76590. +
  76591. + /* Setup context ucp. */
  76592. + /* Address to jump to. */
  76593. + ucp->uc_mcontext.gregs[REG_RIP] = (uintptr_t) func;
  76594. + /* Setup rbx.*/
  76595. + ucp->uc_mcontext.gregs[REG_RBX] = (uintptr_t) &sp[idx_uc_link];
  76596. + ucp->uc_mcontext.gregs[REG_RSP] = (uintptr_t) sp;
  76597. +
  76598. + /* Setup stack. */
  76599. + sp[0] = (uintptr_t) &__start_context;
  76600. + sp[idx_uc_link] = (uintptr_t) ucp->uc_link;
  76601. +
  76602. + va_start (ap, argc);
  76603. + /* Handle arguments.
  76604. +
  76605. + The standard says the parameters must all be int values. This is
  76606. + an historic accident and would be done differently today. For
  76607. + x86-64 all integer values are passed as 64-bit values and
  76608. + therefore extending the API to copy 64-bit values instead of
  76609. + 32-bit ints makes sense. It does not break existing
  76610. + functionality and it does not violate the standard which says
  76611. + that passing non-int values means undefined behavior. */
  76612. + for (i = 0; i < argc; ++i)
  76613. + switch (i)
  76614. + {
  76615. + case 0:
  76616. + ucp->uc_mcontext.gregs[REG_RDI] = va_arg (ap, greg_t);
  76617. + break;
  76618. + case 1:
  76619. + ucp->uc_mcontext.gregs[REG_RSI] = va_arg (ap, greg_t);
  76620. + break;
  76621. + case 2:
  76622. + ucp->uc_mcontext.gregs[REG_RDX] = va_arg (ap, greg_t);
  76623. + break;
  76624. + case 3:
  76625. + ucp->uc_mcontext.gregs[REG_RCX] = va_arg (ap, greg_t);
  76626. + break;
  76627. + case 4:
  76628. + ucp->uc_mcontext.gregs[REG_R8] = va_arg (ap, greg_t);
  76629. + break;
  76630. + case 5:
  76631. + ucp->uc_mcontext.gregs[REG_R9] = va_arg (ap, greg_t);
  76632. + break;
  76633. + default:
  76634. + /* Put value on stack. */
  76635. + sp[i - 5] = va_arg (ap, greg_t);
  76636. + break;
  76637. + }
  76638. + va_end (ap);
  76639. +
  76640. +}
  76641. +
  76642. +
  76643. +weak_alias (__makecontext, makecontext)
  76644. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/Makefile.arch uClibc-git/libc/sysdeps/linux/x86_64/Makefile.arch
  76645. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  76646. +++ uClibc-git/libc/sysdeps/linux/x86_64/Makefile.arch 2014-06-02 17:40:34.682715682 +0200
  76647. @@ -5,18 +5,15 @@
  76648. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  76649. #
  76650. -CSRC := brk.c __syscall_error.c sigaction.c mmap.c
  76651. +CSRC-y := brk.c __syscall_error.c sigaction.c
  76652. -SSRC := \
  76653. +SSRC-y := \
  76654. __longjmp.S setjmp.S syscall.S bsd-setjmp.S bsd-_setjmp.S
  76655. -ifneq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  76656. -SSRC += vfork.S clone.S
  76657. -endif
  76658. -
  76659. +SSRC-$(if $(UCLIBC_HAS_THREADS_NATIVE),,y) += vfork.S clone.S
  76660. +ARCH_OBJ_FILTEROUT-$(UCLIBC_LINUX_SPECIFIC) := sched_getcpu.c
  76661. ifeq ($(UCLIBC_LINUX_SPECIFIC),y)
  76662. -ARCH_OBJ_FILTEROUT = sched_getcpu.c
  76663. -ifeq ($(UCLIBC_HAS_TLS),y)
  76664. -SSRC += sched_getcpu.S
  76665. -endif
  76666. +SSRC-$(UCLIBC_HAS_TLS) += sched_getcpu.S
  76667. endif
  76668. +CSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += makecontext.c
  76669. +SSRC-$(UCLIBC_HAS_CONTEXT_FUNCS) += setcontext.S getcontext.S swapcontext.S __start_context.S
  76670. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/mmap.c uClibc-git/libc/sysdeps/linux/x86_64/mmap.c
  76671. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/mmap.c 2012-05-15 09:20:09.000000000 +0200
  76672. +++ uClibc-git/libc/sysdeps/linux/x86_64/mmap.c 1970-01-01 01:00:00.000000000 +0100
  76673. @@ -1,19 +0,0 @@
  76674. -/* vi: set sw=4 ts=4: */
  76675. -/*
  76676. - * mmap() for uClibc/x86_64
  76677. - *
  76678. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  76679. - * Copyright (C) 2005 by Mike Frysinger <vapier@gentoo.org>
  76680. - *
  76681. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  76682. - */
  76683. -
  76684. -#include <errno.h>
  76685. -#include <unistd.h>
  76686. -#include <sys/mman.h>
  76687. -#include <sys/syscall.h>
  76688. -
  76689. -
  76690. -_syscall6(void *, mmap, void *, start, size_t, length, int, prot,
  76691. - int, flags, int, fd, off_t, offset)
  76692. -libc_hidden_def(mmap)
  76693. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sched_getcpu.S uClibc-git/libc/sysdeps/linux/x86_64/sched_getcpu.S
  76694. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sched_getcpu.S 2012-05-15 09:20:09.000000000 +0200
  76695. +++ uClibc-git/libc/sysdeps/linux/x86_64/sched_getcpu.S 2014-06-02 17:40:34.686715704 +0200
  76696. @@ -12,9 +12,8 @@
  76697. Lesser General Public License for more details.
  76698. You should have received a copy of the GNU Lesser General Public
  76699. - License along with the GNU C Library; if not, write to the Free
  76700. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76701. - 02111-1307 USA. */
  76702. + License along with the GNU C Library; if not, see
  76703. + <http://www.gnu.org/licenses/>. */
  76704. #include <sysdep.h>
  76705. #include <tls.h>
  76706. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/setcontext.S uClibc-git/libc/sysdeps/linux/x86_64/setcontext.S
  76707. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/setcontext.S 1970-01-01 01:00:00.000000000 +0100
  76708. +++ uClibc-git/libc/sysdeps/linux/x86_64/setcontext.S 2014-06-02 17:40:34.686715704 +0200
  76709. @@ -0,0 +1,103 @@
  76710. +/* Install given context.
  76711. + Copyright (C) 2002-2012 Free Software Foundation, Inc.
  76712. + This file is part of the GNU C Library.
  76713. + Contributed by Andreas Jaeger <aj@suse.de>, 2002.
  76714. +
  76715. + The GNU C Library is free software; you can redistribute it and/or
  76716. + modify it under the terms of the GNU Lesser General Public
  76717. + License as published by the Free Software Foundation; either
  76718. + version 2.1 of the License, or (at your option) any later version.
  76719. +
  76720. + The GNU C Library is distributed in the hope that it will be useful,
  76721. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  76722. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  76723. + Lesser General Public License for more details.
  76724. +
  76725. + You should have received a copy of the GNU Lesser General Public
  76726. + License along with the GNU C Library; if not, see
  76727. + <http://www.gnu.org/licenses/>. */
  76728. +
  76729. +#include <sysdep.h>
  76730. +
  76731. +#include "ucontext_i.h"
  76732. +
  76733. +
  76734. +/* int __setcontext (const ucontext_t *ucp)
  76735. +
  76736. + Restores the machine context in UCP and thereby resumes execution
  76737. + in that context.
  76738. +
  76739. + This implementation is intended to be used for *synchronous* context
  76740. + switches only. Therefore, it does not have to restore anything
  76741. + other than the PRESERVED state. */
  76742. +
  76743. +ENTRY(__setcontext)
  76744. + /* Save argument since syscall will destroy it. */
  76745. + pushq %rdi
  76746. + cfi_adjust_cfa_offset(8)
  76747. +
  76748. + /* Set the signal mask with
  76749. + rt_sigprocmask (SIG_SETMASK, mask, NULL, _NSIG/8). */
  76750. + leaq oSIGMASK(%rdi), %rsi
  76751. + xorl %edx, %edx
  76752. + movl $SIG_SETMASK, %edi
  76753. + movl $_NSIG8,%r10d
  76754. + movl $__NR_rt_sigprocmask, %eax
  76755. + syscall
  76756. + popq %rdi /* Reload %rdi, adjust stack. */
  76757. + cfi_adjust_cfa_offset(-8)
  76758. + cmpq $-4095, %rax /* Check %rax for error. */
  76759. + jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
  76760. +
  76761. + /* Restore the floating-point context. Not the registers, only the
  76762. + rest. */
  76763. + movq oFPREGS(%rdi), %rcx
  76764. + fldenv (%rcx)
  76765. + ldmxcsr oMXCSR(%rdi)
  76766. +
  76767. +
  76768. + /* Load the new stack pointer, the preserved registers and
  76769. + registers used for passing args. */
  76770. + cfi_def_cfa(%rdi, 0)
  76771. + cfi_offset(%rbx,oRBX)
  76772. + cfi_offset(%rbp,oRBP)
  76773. + cfi_offset(%r12,oR12)
  76774. + cfi_offset(%r13,oR13)
  76775. + cfi_offset(%r14,oR14)
  76776. + cfi_offset(%r15,oR15)
  76777. + cfi_offset(%rsp,oRSP)
  76778. + cfi_offset(%rip,oRIP)
  76779. +
  76780. + movq oRSP(%rdi), %rsp
  76781. + movq oRBX(%rdi), %rbx
  76782. + movq oRBP(%rdi), %rbp
  76783. + movq oR12(%rdi), %r12
  76784. + movq oR13(%rdi), %r13
  76785. + movq oR14(%rdi), %r14
  76786. + movq oR15(%rdi), %r15
  76787. +
  76788. + /* The following ret should return to the address set with
  76789. + getcontext. Therefore push the address on the stack. */
  76790. + movq oRIP(%rdi), %rcx
  76791. + pushq %rcx
  76792. +
  76793. + movq oRSI(%rdi), %rsi
  76794. + movq oRDX(%rdi), %rdx
  76795. + movq oRCX(%rdi), %rcx
  76796. + movq oR8(%rdi), %r8
  76797. + movq oR9(%rdi), %r9
  76798. +
  76799. + /* Setup finally %rdi. */
  76800. + movq oRDI(%rdi), %rdi
  76801. +
  76802. + /* End FDE here, we fall into another context. */
  76803. + cfi_endproc
  76804. + cfi_startproc
  76805. +
  76806. + /* Clear rax to indicate success. */
  76807. + xorl %eax, %eax
  76808. +L(pseudo_end):
  76809. + ret
  76810. +PSEUDO_END(__setcontext)
  76811. +
  76812. +weak_alias (__setcontext, setcontext)
  76813. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/setjmp.S uClibc-git/libc/sysdeps/linux/x86_64/setjmp.S
  76814. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  76815. +++ uClibc-git/libc/sysdeps/linux/x86_64/setjmp.S 2014-06-02 17:40:34.686715704 +0200
  76816. @@ -13,14 +13,10 @@
  76817. Lesser General Public License for more details.
  76818. You should have received a copy of the GNU Lesser General Public
  76819. - License along with the GNU C Library; if not, write to the Free
  76820. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76821. - 02111-1307 USA. */
  76822. + License along with the GNU C Library; if not, see
  76823. + <http://www.gnu.org/licenses/>. */
  76824. -#define _ASM
  76825. -#define _SETJMP_H
  76826. -#include <bits/setjmp.h>
  76827. -#include <sysdep.h>
  76828. +#include <jmpbuf-offsets.h>
  76829. .global __sigsetjmp
  76830. .type __sigsetjmp,%function
  76831. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sigaction.c uClibc-git/libc/sysdeps/linux/x86_64/sigaction.c
  76832. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  76833. +++ uClibc-git/libc/sysdeps/linux/x86_64/sigaction.c 2014-06-02 17:40:34.686715704 +0200
  76834. @@ -13,9 +13,8 @@
  76835. Lesser General Public License for more details.
  76836. You should have received a copy of the GNU Lesser General Public
  76837. - License along with the GNU C Library; if not, write to the Free
  76838. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  76839. - 02111-1307 USA. */
  76840. + License along with the GNU C Library; if not, see
  76841. + <http://www.gnu.org/licenses/>. */
  76842. #include <errno.h>
  76843. @@ -30,9 +29,6 @@
  76844. /* We do not globally define the SA_RESTORER flag so do it here. */
  76845. #define SA_RESTORER 0x04000000
  76846. -extern __typeof(sigaction) __libc_sigaction;
  76847. -
  76848. -
  76849. #ifdef __NR_rt_sigaction
  76850. /* Using the hidden attribute here does not change the code but it
  76851. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/__start_context.S uClibc-git/libc/sysdeps/linux/x86_64/__start_context.S
  76852. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/__start_context.S 1970-01-01 01:00:00.000000000 +0100
  76853. +++ uClibc-git/libc/sysdeps/linux/x86_64/__start_context.S 2014-06-02 17:40:34.682715682 +0200
  76854. @@ -0,0 +1,49 @@
  76855. +/* Copyright (C) 2002-2012 Free Software Foundation, Inc.
  76856. + This file is part of the GNU C Library.
  76857. + Contributed by Andreas Jaeger <aj@suse.de>, 2002.
  76858. +
  76859. + The GNU C Library is free software; you can redistribute it and/or
  76860. + modify it under the terms of the GNU Lesser General Public
  76861. + License as published by the Free Software Foundation; either
  76862. + version 2.1 of the License, or (at your option) any later version.
  76863. +
  76864. + The GNU C Library is distributed in the hope that it will be useful,
  76865. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  76866. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  76867. + Lesser General Public License for more details.
  76868. +
  76869. + You should have received a copy of the GNU Lesser General Public
  76870. + License along with the GNU C Library; if not, see
  76871. + <http://www.gnu.org/licenses/>. */
  76872. +
  76873. +#include <sysdep.h>
  76874. +
  76875. +/* This is the helper code which gets called if a function which is
  76876. + registered with 'makecontext' returns. In this case we have to
  76877. + install the context listed in the uc_link element of the context
  76878. + 'makecontext' manipulated at the time of the 'makecontext' call.
  76879. + If the pointer is NULL the process must terminate. */
  76880. +
  76881. +
  76882. +ENTRY(__start_context)
  76883. + /* This removes the parameters passed to the function given to
  76884. + 'makecontext' from the stack. RBX contains the address
  76885. + on the stack pointer for the next context. */
  76886. + movq %rbx, %rsp
  76887. +
  76888. + popq %rdi /* This is the next context. */
  76889. + cfi_adjust_cfa_offset(-8)
  76890. + testq %rdi, %rdi
  76891. + je 2f /* If it is zero exit. */
  76892. +
  76893. + call JUMPTARGET(__setcontext)
  76894. + /* If this returns (which can happen if the syscall fails) we'll
  76895. + exit the program with the return error value (-1). */
  76896. + movq %rax,%rdi
  76897. +
  76898. +2:
  76899. + call HIDDEN_JUMPTARGET(exit)
  76900. + /* The 'exit' call should never return. In case it does cause
  76901. + the process to terminate. */
  76902. + hlt
  76903. +END(__start_context)
  76904. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/swapcontext.S uClibc-git/libc/sysdeps/linux/x86_64/swapcontext.S
  76905. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/swapcontext.S 1970-01-01 01:00:00.000000000 +0100
  76906. +++ uClibc-git/libc/sysdeps/linux/x86_64/swapcontext.S 2014-06-02 17:40:34.686715704 +0200
  76907. @@ -0,0 +1,121 @@
  76908. +/* Save current context and install the given one.
  76909. + Copyright (C) 2002-2012 Free Software Foundation, Inc.
  76910. + This file is part of the GNU C Library.
  76911. + Contributed by Andreas Jaeger <aj@suse.de>, 2002.
  76912. +
  76913. + The GNU C Library is free software; you can redistribute it and/or
  76914. + modify it under the terms of the GNU Lesser General Public
  76915. + License as published by the Free Software Foundation; either
  76916. + version 2.1 of the License, or (at your option) any later version.
  76917. +
  76918. + The GNU C Library is distributed in the hope that it will be useful,
  76919. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  76920. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  76921. + Lesser General Public License for more details.
  76922. +
  76923. + You should have received a copy of the GNU Lesser General Public
  76924. + License along with the GNU C Library; if not, see
  76925. + <http://www.gnu.org/licenses/>. */
  76926. +
  76927. +#include <sysdep.h>
  76928. +
  76929. +#include "ucontext_i.h"
  76930. +
  76931. +
  76932. +/* int __swapcontext (ucontext_t *oucp, const ucontext_t *ucp);
  76933. +
  76934. + Saves the machine context in oucp such that when it is activated,
  76935. + it appears as if __swapcontextt() returned again, restores the
  76936. + machine context in ucp and thereby resumes execution in that
  76937. + context.
  76938. +
  76939. + This implementation is intended to be used for *synchronous* context
  76940. + switches only. Therefore, it does not have to save anything
  76941. + other than the PRESERVED state. */
  76942. +
  76943. +ENTRY(__swapcontext)
  76944. + /* Save the preserved registers, the registers used for passing args,
  76945. + and the return address. */
  76946. + movq %rbx, oRBX(%rdi)
  76947. + movq %rbp, oRBP(%rdi)
  76948. + movq %r12, oR12(%rdi)
  76949. + movq %r13, oR13(%rdi)
  76950. + movq %r14, oR14(%rdi)
  76951. + movq %r15, oR15(%rdi)
  76952. +
  76953. + movq %rdi, oRDI(%rdi)
  76954. + movq %rsi, oRSI(%rdi)
  76955. + movq %rdx, oRDX(%rdi)
  76956. + movq %rcx, oRCX(%rdi)
  76957. + movq %r8, oR8(%rdi)
  76958. + movq %r9, oR9(%rdi)
  76959. +
  76960. + movq (%rsp), %rcx
  76961. + movq %rcx, oRIP(%rdi)
  76962. + leaq 8(%rsp), %rcx /* Exclude the return address. */
  76963. + movq %rcx, oRSP(%rdi)
  76964. +
  76965. + /* We have separate floating-point register content memory on the
  76966. + stack. We use the __fpregs_mem block in the context. Set the
  76967. + links up correctly. */
  76968. + leaq oFPREGSMEM(%rdi), %rcx
  76969. + movq %rcx, oFPREGS(%rdi)
  76970. + /* Save the floating-point environment. */
  76971. + fnstenv (%rcx)
  76972. + stmxcsr oMXCSR(%rdi)
  76973. +
  76974. +
  76975. + /* The syscall destroys some registers, save them. */
  76976. + movq %rsi, %r12
  76977. +
  76978. + /* Save the current signal mask and install the new one with
  76979. + rt_sigprocmask (SIG_BLOCK, newset, oldset,_NSIG/8). */
  76980. + leaq oSIGMASK(%rdi), %rdx
  76981. + leaq oSIGMASK(%rsi), %rsi
  76982. + movl $SIG_SETMASK, %edi
  76983. + movl $_NSIG8,%r10d
  76984. + movl $__NR_rt_sigprocmask, %eax
  76985. + syscall
  76986. + cmpq $-4095, %rax /* Check %rax for error. */
  76987. + jae SYSCALL_ERROR_LABEL /* Jump to error handler if error. */
  76988. +
  76989. + /* Restore destroyed registers. */
  76990. + movq %r12, %rsi
  76991. +
  76992. + /* Restore the floating-point context. Not the registers, only the
  76993. + rest. */
  76994. + movq oFPREGS(%rsi), %rcx
  76995. + fldenv (%rcx)
  76996. + ldmxcsr oMXCSR(%rsi)
  76997. +
  76998. + /* Load the new stack pointer and the preserved registers. */
  76999. + movq oRSP(%rsi), %rsp
  77000. + movq oRBX(%rsi), %rbx
  77001. + movq oRBP(%rsi), %rbp
  77002. + movq oR12(%rsi), %r12
  77003. + movq oR13(%rsi), %r13
  77004. + movq oR14(%rsi), %r14
  77005. + movq oR15(%rsi), %r15
  77006. +
  77007. + /* The following ret should return to the address set with
  77008. + getcontext. Therefore push the address on the stack. */
  77009. + movq oRIP(%rsi), %rcx
  77010. + pushq %rcx
  77011. +
  77012. + /* Setup registers used for passing args. */
  77013. + movq oRDI(%rsi), %rdi
  77014. + movq oRDX(%rsi), %rdx
  77015. + movq oRCX(%rsi), %rcx
  77016. + movq oR8(%rsi), %r8
  77017. + movq oR9(%rsi), %r9
  77018. +
  77019. + /* Setup finally %rsi. */
  77020. + movq oRSI(%rsi), %rsi
  77021. +
  77022. + /* Clear rax to indicate success. */
  77023. + xorl %eax, %eax
  77024. +L(pseudo_end):
  77025. + ret
  77026. +PSEUDO_END(__swapcontext)
  77027. +
  77028. +weak_alias (__swapcontext, swapcontext)
  77029. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/debugreg.h uClibc-git/libc/sysdeps/linux/x86_64/sys/debugreg.h
  77030. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/debugreg.h 2012-05-15 09:20:09.000000000 +0200
  77031. +++ uClibc-git/libc/sysdeps/linux/x86_64/sys/debugreg.h 2014-06-02 17:40:34.686715704 +0200
  77032. @@ -12,9 +12,8 @@
  77033. Lesser General Public License for more details.
  77034. You should have received a copy of the GNU Lesser General Public
  77035. - License along with the GNU C Library; if not, write to the Free
  77036. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77037. - 02111-1307 USA. */
  77038. + License along with the GNU C Library; if not, see
  77039. + <http://www.gnu.org/licenses/>. */
  77040. #ifndef _SYS_DEBUGREG_H
  77041. #define _SYS_DEBUGREG_H 1
  77042. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/io.h uClibc-git/libc/sysdeps/linux/x86_64/sys/io.h
  77043. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/io.h 2012-05-15 09:20:09.000000000 +0200
  77044. +++ uClibc-git/libc/sysdeps/linux/x86_64/sys/io.h 2014-06-02 17:40:34.686715704 +0200
  77045. @@ -12,9 +12,8 @@
  77046. Lesser General Public License for more details.
  77047. You should have received a copy of the GNU Lesser General Public
  77048. - License along with the GNU C Library; if not, write to the Free
  77049. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77050. - 02111-1307 USA. */
  77051. + License along with the GNU C Library; if not, see
  77052. + <http://www.gnu.org/licenses/>. */
  77053. #ifndef _SYS_IO_H
  77054. #define _SYS_IO_H 1
  77055. @@ -23,6 +22,7 @@
  77056. __BEGIN_DECLS
  77057. +#if defined __UCLIBC_LINUX_SPECIFIC__
  77058. /* If TURN_ON is TRUE, request for permission to do direct i/o on the
  77059. port numbers in the range [FROM,FROM+NUM-1]. Otherwise, turn I/O
  77060. permission off for that range. This call requires root privileges.
  77061. @@ -32,12 +32,12 @@
  77062. E.g., Linux/Alpha for Alpha PCs supports this. */
  77063. extern int ioperm (unsigned long int __from, unsigned long int __num,
  77064. int __turn_on) __THROW;
  77065. -libc_hidden_proto(ioperm)
  77066. /* Set the I/O privilege level to LEVEL. If LEVEL>3, permission to
  77067. access any I/O port is granted. This call requires root
  77068. privileges. */
  77069. extern int iopl (int __level) __THROW;
  77070. +#endif /* __UCLIBC_LINUX_SPECIFIC__ */
  77071. #if defined __GNUC__ && __GNUC__ >= 2
  77072. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/perm.h uClibc-git/libc/sysdeps/linux/x86_64/sys/perm.h
  77073. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/perm.h 2012-05-15 09:20:09.000000000 +0200
  77074. +++ uClibc-git/libc/sysdeps/linux/x86_64/sys/perm.h 2014-06-02 17:40:34.686715704 +0200
  77075. @@ -12,9 +12,8 @@
  77076. Lesser General Public License for more details.
  77077. You should have received a copy of the GNU Lesser General Public
  77078. - License along with the GNU C Library; if not, write to the Free
  77079. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77080. - 02111-1307 USA. */
  77081. + License along with the GNU C Library; if not, see
  77082. + <http://www.gnu.org/licenses/>. */
  77083. #ifndef _SYS_PERM_H
  77084. @@ -26,7 +25,6 @@
  77085. /* Set port input/output permissions. */
  77086. extern int ioperm (unsigned long int __from, unsigned long int __num,
  77087. int __turn_on) __THROW;
  77088. -libc_hidden_proto(ioperm)
  77089. /* Change I/O privilege level. */
  77090. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/procfs.h uClibc-git/libc/sysdeps/linux/x86_64/sys/procfs.h
  77091. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  77092. +++ uClibc-git/libc/sysdeps/linux/x86_64/sys/procfs.h 2014-06-02 17:40:34.686715704 +0200
  77093. @@ -12,9 +12,8 @@
  77094. Lesser General Public License for more details.
  77095. You should have received a copy of the GNU Lesser General Public
  77096. - License along with the GNU C Library; if not, write to the Free
  77097. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77098. - 02111-1307 USA. */
  77099. + License along with the GNU C Library; if not, see
  77100. + <http://www.gnu.org/licenses/>. */
  77101. #ifndef _SYS_PROCFS_H
  77102. #define _SYS_PROCFS_H 1
  77103. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/reg.h uClibc-git/libc/sysdeps/linux/x86_64/sys/reg.h
  77104. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/reg.h 2012-05-15 09:20:09.000000000 +0200
  77105. +++ uClibc-git/libc/sysdeps/linux/x86_64/sys/reg.h 2014-06-02 17:40:34.686715704 +0200
  77106. @@ -12,9 +12,8 @@
  77107. Lesser General Public License for more details.
  77108. You should have received a copy of the GNU Lesser General Public
  77109. - License along with the GNU C Library; if not, write to the Free
  77110. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77111. - 02111-1307 USA. */
  77112. + License along with the GNU C Library; if not, see
  77113. + <http://www.gnu.org/licenses/>. */
  77114. #ifndef _SYS_REG_H
  77115. #define _SYS_REG_H 1
  77116. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/ucontext.h uClibc-git/libc/sysdeps/linux/x86_64/sys/ucontext.h
  77117. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  77118. +++ uClibc-git/libc/sysdeps/linux/x86_64/sys/ucontext.h 2014-06-02 17:40:34.686715704 +0200
  77119. @@ -12,9 +12,8 @@
  77120. Lesser General Public License for more details.
  77121. You should have received a copy of the GNU Lesser General Public
  77122. - License along with the GNU C Library; if not, write to the Free
  77123. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77124. - 02111-1307 USA. */
  77125. + License along with the GNU C Library; if not, see
  77126. + <http://www.gnu.org/licenses/>. */
  77127. #ifndef _SYS_UCONTEXT_H
  77128. #define _SYS_UCONTEXT_H 1
  77129. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/user.h uClibc-git/libc/sysdeps/linux/x86_64/sys/user.h
  77130. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sys/user.h 2012-05-15 09:20:09.000000000 +0200
  77131. +++ uClibc-git/libc/sysdeps/linux/x86_64/sys/user.h 2014-06-02 17:40:34.686715704 +0200
  77132. @@ -12,9 +12,8 @@
  77133. Lesser General Public License for more details.
  77134. You should have received a copy of the GNU Lesser General Public
  77135. - License along with the GNU C Library; if not, write to the Free
  77136. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77137. - 02111-1307 USA. */
  77138. + License along with the GNU C Library; if not, see
  77139. + <http://www.gnu.org/licenses/>. */
  77140. #ifndef _SYS_USER_H
  77141. #define _SYS_USER_H 1
  77142. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/syscall.S uClibc-git/libc/sysdeps/linux/x86_64/syscall.S
  77143. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/syscall.S 2012-05-15 09:20:09.000000000 +0200
  77144. +++ uClibc-git/libc/sysdeps/linux/x86_64/syscall.S 2014-06-02 17:40:34.686715704 +0200
  77145. @@ -12,9 +12,8 @@
  77146. Lesser General Public License for more details.
  77147. You should have received a copy of the GNU Lesser General Public
  77148. - License along with the GNU C Library; if not, write to the Free
  77149. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77150. - 02111-1307 USA. */
  77151. + License along with the GNU C Library; if not, see
  77152. + <http://www.gnu.org/licenses/>. */
  77153. /* Please consult the file sysdeps/unix/sysv/linux/x86-64/sysdep.h for
  77154. more information about the value -4095 used below. */
  77155. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sysdep.h uClibc-git/libc/sysdeps/linux/x86_64/sysdep.h
  77156. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  77157. +++ uClibc-git/libc/sysdeps/linux/x86_64/sysdep.h 2014-06-02 17:40:34.686715704 +0200
  77158. @@ -12,9 +12,8 @@
  77159. Lesser General Public License for more details.
  77160. You should have received a copy of the GNU Lesser General Public
  77161. - License along with the GNU C Library; if not, write to the Free
  77162. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77163. - 02111-1307 USA. */
  77164. + License along with the GNU C Library; if not, see
  77165. + <http://www.gnu.org/licenses/>. */
  77166. #ifndef _LINUX_X86_64_SYSDEP_H
  77167. #define _LINUX_X86_64_SYSDEP_H 1
  77168. @@ -183,8 +182,6 @@
  77169. # define PSEUDO_END_ERRVAL(name) \
  77170. END (name)
  77171. -# define ret_ERRVAL ret
  77172. -
  77173. # ifndef __PIC__
  77174. # define SYSCALL_ERROR_HANDLER /* Nothing here; code in sysdep.S is used. */
  77175. # elif defined(RTLD_PRIVATE_ERRNO)
  77176. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/ucontext_i.sym uClibc-git/libc/sysdeps/linux/x86_64/ucontext_i.sym
  77177. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/ucontext_i.sym 1970-01-01 01:00:00.000000000 +0100
  77178. +++ uClibc-git/libc/sysdeps/linux/x86_64/ucontext_i.sym 2014-06-02 17:40:34.686715704 +0200
  77179. @@ -0,0 +1,37 @@
  77180. +#include <stddef.h>
  77181. +#include <signal.h>
  77182. +#include <sys/ucontext.h>
  77183. +
  77184. +--
  77185. +
  77186. +SIG_BLOCK
  77187. +SIG_SETMASK
  77188. +
  77189. +_NSIG8 (_NSIG / 8)
  77190. +
  77191. +#define ucontext(member) offsetof (ucontext_t, member)
  77192. +#define mcontext(member) ucontext (uc_mcontext.member)
  77193. +#define mreg(reg) mcontext (gregs[REG_##reg])
  77194. +
  77195. +oRBP mreg (RBP)
  77196. +oRSP mreg (RSP)
  77197. +oRBX mreg (RBX)
  77198. +oR8 mreg (R8)
  77199. +oR9 mreg (R9)
  77200. +oR10 mreg (R10)
  77201. +oR11 mreg (R11)
  77202. +oR12 mreg (R12)
  77203. +oR13 mreg (R13)
  77204. +oR14 mreg (R14)
  77205. +oR15 mreg (R15)
  77206. +oRDI mreg (RDI)
  77207. +oRSI mreg (RSI)
  77208. +oRDX mreg (RDX)
  77209. +oRAX mreg (RAX)
  77210. +oRCX mreg (RCX)
  77211. +oRIP mreg (RIP)
  77212. +oEFL mreg (EFL)
  77213. +oFPREGS mcontext (fpregs)
  77214. +oSIGMASK ucontext (uc_sigmask)
  77215. +oFPREGSMEM ucontext (__fpregs_mem)
  77216. +oMXCSR ucontext (__fpregs_mem.mxcsr)
  77217. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/vfork.S uClibc-git/libc/sysdeps/linux/x86_64/vfork.S
  77218. --- uClibc-0.9.33.2/libc/sysdeps/linux/x86_64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  77219. +++ uClibc-git/libc/sysdeps/linux/x86_64/vfork.S 2014-06-02 17:40:34.686715704 +0200
  77220. @@ -12,9 +12,8 @@
  77221. Lesser General Public License for more details.
  77222. You should have received a copy of the GNU Lesser General Public
  77223. - License along with the GNU C Library; if not, write to the Free
  77224. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77225. - 02111-1307 USA. */
  77226. + License along with the GNU C Library; if not, see
  77227. + <http://www.gnu.org/licenses/>. */
  77228. #include <sys/syscall.h>
  77229. @@ -63,4 +62,4 @@
  77230. .size __vfork,.-__vfork
  77231. weak_alias(__vfork,vfork)
  77232. -libc_hidden_weak(vfork)
  77233. +libc_hidden_def(vfork)
  77234. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/atomic.h uClibc-git/libc/sysdeps/linux/xtensa/bits/atomic.h
  77235. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/atomic.h 1970-01-01 01:00:00.000000000 +0100
  77236. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/atomic.h 2014-06-02 17:40:34.690715726 +0200
  77237. @@ -0,0 +1,232 @@
  77238. +/* Copyright (C) 2012 Free Software Foundation, Inc.
  77239. + This file is part of the GNU C Library.
  77240. +
  77241. + The GNU C Library is free software; you can redistribute it and/or
  77242. + modify it under the terms of the GNU Lesser General Public
  77243. + License as published by the Free Software Foundation; either
  77244. + version 2.1 of the License, or (at your option) any later version.
  77245. +
  77246. + The GNU C Library is distributed in the hope that it will be useful,
  77247. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  77248. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  77249. + Lesser General Public License for more details.
  77250. +
  77251. + You should have received a copy of the GNU Lesser General Public
  77252. + License along with the GNU C Library; if not, see
  77253. + <http://www.gnu.org/licenses/>. */
  77254. +
  77255. +#ifndef _BITS_ATOMIC_H
  77256. +#define _BITS_ATOMIC_H 1
  77257. +
  77258. +#include <inttypes.h>
  77259. +
  77260. +typedef int32_t atomic32_t;
  77261. +typedef uint32_t uatomic32_t;
  77262. +typedef int_fast32_t atomic_fast32_t;
  77263. +typedef uint_fast32_t uatomic_fast32_t;
  77264. +
  77265. +typedef int64_t atomic64_t;
  77266. +typedef uint64_t uatomic64_t;
  77267. +typedef int_fast64_t atomic_fast64_t;
  77268. +typedef uint_fast64_t uatomic_fast64_t;
  77269. +
  77270. +typedef intptr_t atomicptr_t;
  77271. +typedef uintptr_t uatomicptr_t;
  77272. +typedef intmax_t atomic_max_t;
  77273. +typedef uintmax_t uatomic_max_t;
  77274. +
  77275. +
  77276. +/* Xtensa has only a 32-bit form of a store-conditional instruction. */
  77277. +
  77278. +#define __arch_compare_and_exchange_bool_8_acq(mem, newval, oldval) \
  77279. + (abort (), 0)
  77280. +
  77281. +#define __arch_compare_and_exchange_bool_16_acq(mem, newval, oldval) \
  77282. + (abort (), 0)
  77283. +
  77284. +#define __arch_compare_and_exchange_bool_8_rel(mem, newval, oldval) \
  77285. + (abort (), 0)
  77286. +
  77287. +#define __arch_compare_and_exchange_bool_16_rel(mem, newval, oldval) \
  77288. + (abort (), 0)
  77289. +
  77290. +/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL.
  77291. + Return the old *MEM value. */
  77292. +
  77293. +#define __arch_compare_and_exchange_val_32_acq(mem, newval, oldval) \
  77294. + ({__typeof__(*(mem)) __tmp, __value; \
  77295. + __asm__ __volatile__( \
  77296. + "1: l32i %1, %2, 0 \n" \
  77297. + " bne %1, %4, 2f \n" \
  77298. + " wsr %1, SCOMPARE1 \n" \
  77299. + " mov %0, %1 \n" \
  77300. + " mov %1, %3 \n" \
  77301. + " s32c1i %1, %2, 0 \n" \
  77302. + " bne %0, %1, 1b \n" \
  77303. + "2: \n" \
  77304. + : "=&a" (__value), "=&a" (__tmp) \
  77305. + : "a" (mem), "a" (newval), "a" (oldval) \
  77306. + : "memory" ); \
  77307. + __tmp; \
  77308. + })
  77309. +
  77310. +/* Atomically store NEWVAL in *MEM if *MEM is equal to OLDVAL.
  77311. + Return zero if *MEM was changed or non-zero if no exchange happened. */
  77312. +
  77313. +#define __arch_compare_and_exchange_bool_32_acq(mem, newval, oldval) \
  77314. + ({__typeof__(*(mem)) __tmp, __value; \
  77315. + __asm__ __volatile__( \
  77316. + "1: l32i %0, %2, 0 \n" \
  77317. + " sub %1, %4, %0 \n" \
  77318. + " bnez %1, 2f \n" \
  77319. + " wsr %0, SCOMPARE1 \n" \
  77320. + " mov %1, %3 \n" \
  77321. + " s32c1i %1, %2, 0 \n" \
  77322. + " bne %0, %1, 1b \n" \
  77323. + " movi %1, 0 \n" \
  77324. + "2: \n" \
  77325. + : "=&a" (__value), "=&a" (__tmp) \
  77326. + : "a" (mem), "a" (newval), "a" (oldval) \
  77327. + : "memory" ); \
  77328. + __tmp != 0; \
  77329. + })
  77330. +
  77331. +/* Store NEWVALUE in *MEM and return the old value. */
  77332. +
  77333. +#define __arch_exchange_32_acq(mem, newval) \
  77334. + ({__typeof__(*(mem)) __tmp, __value; \
  77335. + __asm__ __volatile__( \
  77336. + "1: l32i %0, %2, 0 \n" \
  77337. + " wsr %0, SCOMPARE1 \n" \
  77338. + " mov %1, %3 \n" \
  77339. + " s32c1i %1, %2, 0 \n" \
  77340. + " bne %0, %1, 1b \n" \
  77341. + : "=&a" (__value), "=&a" (__tmp) \
  77342. + : "a" (mem), "a" (newval) \
  77343. + : "memory" ); \
  77344. + __tmp; \
  77345. + })
  77346. +
  77347. +/* Add VALUE to *MEM and return the old value of *MEM. */
  77348. +
  77349. +#define __arch_atomic_exchange_and_add_32(mem, value) \
  77350. + ({__typeof__(*(mem)) __tmp, __value; \
  77351. + __asm__ __volatile__( \
  77352. + "1: l32i %0, %2, 0 \n" \
  77353. + " wsr %0, SCOMPARE1 \n" \
  77354. + " add %1, %0, %3 \n" \
  77355. + " s32c1i %1, %2, 0 \n" \
  77356. + " bne %0, %1, 1b \n" \
  77357. + : "=&a" (__value), "=&a" (__tmp) \
  77358. + : "a" (mem), "a" (value) \
  77359. + : "memory" ); \
  77360. + __tmp; \
  77361. + })
  77362. +
  77363. +/* Subtract VALUE from *MEM and return the old value of *MEM. */
  77364. +
  77365. +#define __arch_atomic_exchange_and_sub_32(mem, value) \
  77366. + ({__typeof__(*(mem)) __tmp, __value; \
  77367. + __asm__ __volatile__( \
  77368. + "1: l32i %0, %2, 0 \n" \
  77369. + " wsr %0, SCOMPARE1 \n" \
  77370. + " sub %1, %0, %3 \n" \
  77371. + " s32c1i %1, %2, 0 \n" \
  77372. + " bne %0, %1, 1b \n" \
  77373. + : "=&a" (__value), "=&a" (__tmp) \
  77374. + : "a" (mem), "a" (value) \
  77375. + : "memory" ); \
  77376. + __tmp; \
  77377. + })
  77378. +
  77379. +/* Decrement *MEM if it is > 0, and return the old value. */
  77380. +
  77381. +#define __arch_atomic_decrement_if_positive_32(mem) \
  77382. + ({__typeof__(*(mem)) __tmp, __value; \
  77383. + __asm__ __volatile__( \
  77384. + "1: l32i %0, %2, 0 \n" \
  77385. + " blti %0, 1, 2f \n" \
  77386. + " wsr %0, SCOMPARE1 \n" \
  77387. + " addi %1, %0, -1 \n" \
  77388. + " s32c1i %1, %2, 0 \n" \
  77389. + " bne %0, %1, 1b \n" \
  77390. + "2: \n" \
  77391. + : "=&a" (__value), "=&a" (__tmp) \
  77392. + : "a" (mem) \
  77393. + : "memory" ); \
  77394. + __value; \
  77395. + })
  77396. +
  77397. +
  77398. +/* These are the preferred public interfaces: */
  77399. +
  77400. +#define atomic_compare_and_exchange_val_acq(mem, newval, oldval) \
  77401. + ({ \
  77402. + if (sizeof (*mem) != 4) \
  77403. + abort(); \
  77404. + __arch_compare_and_exchange_val_32_acq(mem, newval, oldval); \
  77405. + })
  77406. +
  77407. +#define atomic_exchange_acq(mem, newval) \
  77408. + ({ \
  77409. + if (sizeof(*(mem)) != 4) \
  77410. + abort(); \
  77411. + __arch_exchange_32_acq(mem, newval); \
  77412. + })
  77413. +
  77414. +#define atomic_exchange_and_add(mem, newval) \
  77415. + ({ \
  77416. + if (sizeof(*(mem)) != 4) \
  77417. + abort(); \
  77418. + __arch_atomic_exchange_and_add_32(mem, newval); \
  77419. + })
  77420. +
  77421. +#define atomic_exchange_and_sub(mem, newval) \
  77422. + ({ \
  77423. + if (sizeof(*(mem)) != 4) \
  77424. + abort(); \
  77425. + __arch_atomic_exchange_and_sub_32(mem, newval); \
  77426. + })
  77427. +
  77428. +#define atomic_decrement_if_positive(mem) \
  77429. + ({ \
  77430. + if (sizeof(*(mem)) != 4) \
  77431. + abort(); \
  77432. + __arch_atomic_decrement_if_positive_32(mem); \
  77433. + })
  77434. +
  77435. +
  77436. +# define __arch_compare_and_exchange_bool_64_acq(mem, newval, oldval) \
  77437. + (abort (), 0)
  77438. +
  77439. +# define __arch_compare_and_exchange_val_64_acq(mem, newval, oldval) \
  77440. + (abort (), (__typeof (*mem)) 0)
  77441. +
  77442. +# define __arch_compare_and_exchange_bool_64_rel(mem, newval, oldval) \
  77443. + (abort (), 0)
  77444. +
  77445. +# define __arch_compare_and_exchange_val_64_rel(mem, newval, oldval) \
  77446. + (abort (), (__typeof (*mem)) 0)
  77447. +
  77448. +# define __arch_atomic_exchange_64_acq(mem, value) \
  77449. + ({ abort (); (*mem) = (value); })
  77450. +
  77451. +# define __arch_atomic_exchange_64_rel(mem, value) \
  77452. + ({ abort (); (*mem) = (value); })
  77453. +
  77454. +# define __arch_atomic_exchange_and_add_64(mem, value) \
  77455. + ({ abort (); (*mem) = (value); })
  77456. +
  77457. +# define __arch_atomic_increment_val_64(mem) \
  77458. + ({ abort (); (*mem)++; })
  77459. +
  77460. +# define __arch_atomic_decrement_val_64(mem) \
  77461. + ({ abort (); (*mem)--; })
  77462. +
  77463. +# define __arch_atomic_decrement_if_positive_64(mem) \
  77464. + ({ abort (); (*mem)--; })
  77465. +
  77466. +
  77467. +
  77468. +#endif /* _BITS_ATOMIC_H */
  77469. +
  77470. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/fcntl.h uClibc-git/libc/sysdeps/linux/xtensa/bits/fcntl.h
  77471. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/fcntl.h 2012-05-15 09:20:09.000000000 +0200
  77472. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/fcntl.h 2014-06-02 17:40:34.690715726 +0200
  77473. @@ -14,9 +14,8 @@
  77474. Lesser General Public License for more details.
  77475. You should have received a copy of the GNU Lesser General Public
  77476. - License along with the GNU C Library; if not, write to the Free
  77477. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77478. - Boston, MA 02110-1301, USA. */
  77479. + License along with the GNU C Library; if not, see
  77480. + <http://www.gnu.org/licenses/>. */
  77481. #ifndef _FCNTL_H
  77482. # error "Never use <bits/fcntl.h> directly; include <fcntl.h> instead."
  77483. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/ipc.h uClibc-git/libc/sysdeps/linux/xtensa/bits/ipc.h
  77484. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/ipc.h 2012-05-15 09:20:09.000000000 +0200
  77485. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/ipc.h 2014-06-02 17:40:34.690715726 +0200
  77486. @@ -12,9 +12,8 @@
  77487. Lesser General Public License for more details.
  77488. You should have received a copy of the GNU Lesser General Public
  77489. - License along with the GNU C Library; if not, write to the Free
  77490. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77491. - Boston, MA 02110-1301, USA. */
  77492. + License along with the GNU C Library; if not, see
  77493. + <http://www.gnu.org/licenses/>. */
  77494. #ifndef _SYS_IPC_H
  77495. # error "Never use <bits/ipc.h> directly; include <sys/ipc.h> instead."
  77496. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/kernel_types.h uClibc-git/libc/sysdeps/linux/xtensa/bits/kernel_types.h
  77497. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/kernel_types.h 2012-05-15 09:20:09.000000000 +0200
  77498. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/kernel_types.h 2014-06-02 17:40:34.690715726 +0200
  77499. @@ -33,6 +33,8 @@
  77500. typedef unsigned short __kernel_old_uid_t;
  77501. typedef unsigned short __kernel_old_gid_t;
  77502. typedef unsigned short __kernel_old_dev_t;
  77503. +typedef long __kernel_long_t;
  77504. +typedef unsigned long __kernel_ulong_t;
  77505. typedef long long __kernel_loff_t;
  77506. /* Beginning in 2.6 kernels, which is the first version that includes the
  77507. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/mathdef.h uClibc-git/libc/sysdeps/linux/xtensa/bits/mathdef.h
  77508. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/mathdef.h 2012-05-15 09:20:09.000000000 +0200
  77509. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/mathdef.h 2014-06-02 17:40:34.690715726 +0200
  77510. @@ -13,9 +13,8 @@
  77511. Lesser General Public License for more details.
  77512. You should have received a copy of the GNU Lesser General Public
  77513. - License along with the GNU C Library; if not, write to the Free
  77514. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77515. - Boston, MA 02110-1301, USA. */
  77516. + License along with the GNU C Library; if not, see
  77517. + <http://www.gnu.org/licenses/>. */
  77518. #if !defined _MATH_H && !defined _COMPLEX_H
  77519. # error "Never use <bits/mathdef.h> directly; include <math.h> instead"
  77520. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/mman.h uClibc-git/libc/sysdeps/linux/xtensa/bits/mman.h
  77521. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/mman.h 2012-05-15 09:20:09.000000000 +0200
  77522. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/mman.h 2014-06-02 17:40:34.690715726 +0200
  77523. @@ -13,9 +13,8 @@
  77524. Lesser General Public License for more details.
  77525. You should have received a copy of the GNU Lesser General Public
  77526. - License along with the GNU C Library; if not, write to the Free
  77527. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77528. - Boston, MA 02110-1301, USA. */
  77529. + License along with the GNU C Library; if not, see
  77530. + <http://www.gnu.org/licenses/>. */
  77531. #ifndef _SYS_MMAN_H
  77532. # error "Never use <bits/mman.h> directly; include <sys/mman.h> instead."
  77533. @@ -64,7 +63,7 @@
  77534. # define MAP_NORESERVE 0x0400 /* Don't check for reservations. */
  77535. # define MAP_POPULATE 0x10000 /* Populate (prefault) pagetables. */
  77536. # define MAP_NONBLOCK 0x20000 /* Do not block on IO. */
  77537. -# define MAP_UNINITIALIZE 0x4000000 /* For anonymous mmap, memory could
  77538. +# define MAP_UNINITIALIZED 0x4000000 /* For anonymous mmap, memory could
  77539. be uninitialized. */
  77540. #endif
  77541. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/msq.h uClibc-git/libc/sysdeps/linux/xtensa/bits/msq.h
  77542. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/msq.h 2012-05-15 09:20:09.000000000 +0200
  77543. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/msq.h 2014-06-02 17:40:34.690715726 +0200
  77544. @@ -12,9 +12,8 @@
  77545. Lesser General Public License for more details.
  77546. You should have received a copy of the GNU Lesser General Public
  77547. - License along with the GNU C Library; if not, write to the Free
  77548. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77549. - Boston, MA 02110-1301, USA. */
  77550. + License along with the GNU C Library; if not, see
  77551. + <http://www.gnu.org/licenses/>. */
  77552. #ifndef _SYS_MSG_H
  77553. # error "Never use <bits/msq.h> directly; include <sys/msg.h> instead."
  77554. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/setjmp.h uClibc-git/libc/sysdeps/linux/xtensa/bits/setjmp.h
  77555. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/setjmp.h 2012-05-15 09:20:09.000000000 +0200
  77556. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/setjmp.h 2014-06-02 17:40:34.690715726 +0200
  77557. @@ -12,9 +12,8 @@
  77558. Lesser General Public License for more details.
  77559. You should have received a copy of the GNU Lesser General Public
  77560. - License along with the GNU C Library; if not, write to the Free
  77561. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77562. - Boston, MA 02110-1301, USA. */
  77563. + License along with the GNU C Library; if not, see
  77564. + <http://www.gnu.org/licenses/>. */
  77565. /* Define the machine-dependent type `jmp_buf'. Xtensa version. */
  77566. #ifndef _BITS_SETJMP_H
  77567. @@ -30,17 +29,6 @@
  77568. subsequent alloca in proc moves $sp), and the return address within
  77569. proc. Everything else is saved on the stack in the normal save areas. */
  77570. -#ifndef _ASM
  77571. typedef int __jmp_buf[17];
  77572. -#endif
  77573. -
  77574. -#define JB_SP 1
  77575. -#define JB_PC 16
  77576. -
  77577. -/* Test if longjmp to JMPBUF would unwind the frame containing a local
  77578. - variable at ADDRESS. */
  77579. -
  77580. -#define _JMPBUF_UNWINDS(jmpbuf, address) \
  77581. - ((void *) (address) < (void *) (jmpbuf)[JB_SP])
  77582. #endif /* bits/setjmp.h */
  77583. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/shm.h uClibc-git/libc/sysdeps/linux/xtensa/bits/shm.h
  77584. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/shm.h 2012-05-15 09:20:09.000000000 +0200
  77585. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/shm.h 2014-06-02 17:40:34.706715815 +0200
  77586. @@ -13,9 +13,8 @@
  77587. Lesser General Public License for more details.
  77588. You should have received a copy of the GNU Lesser General Public
  77589. - License along with the GNU C Library; if not, write to the Free
  77590. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77591. - Boston, MA 02110-1301, USA. */
  77592. + License along with the GNU C Library; if not, see
  77593. + <http://www.gnu.org/licenses/>. */
  77594. #ifndef _SYS_SHM_H
  77595. # error "Never include <bits/shm.h> directly; use <sys/shm.h> instead."
  77596. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/sigcontext.h uClibc-git/libc/sysdeps/linux/xtensa/bits/sigcontext.h
  77597. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/sigcontext.h 1970-01-01 01:00:00.000000000 +0100
  77598. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/sigcontext.h 2014-06-02 17:40:34.706715815 +0200
  77599. @@ -0,0 +1,40 @@
  77600. +/* Copyright (C) 2012 Free Software Foundation, Inc.
  77601. + This file is part of the GNU C Library.
  77602. +
  77603. + The GNU C Library is free software; you can redistribute it and/or
  77604. + modify it under the terms of the GNU Lesser General Public
  77605. + License as published by the Free Software Foundation; either
  77606. + version 2.1 of the License, or (at your option) any later version.
  77607. +
  77608. + The GNU C Library is distributed in the hope that it will be useful,
  77609. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  77610. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  77611. + Lesser General Public License for more details.
  77612. +
  77613. + You should have received a copy of the GNU Lesser General Public
  77614. + License along with the GNU C Library; if not, see
  77615. + <http://www.gnu.org/licenses/>. */
  77616. +
  77617. +#if !defined _SIGNAL_H && !defined _SYS_UCONTEXT_H
  77618. +# error "Never use <bits/sigcontext.h> directly; include <signal.h> instead."
  77619. +#endif
  77620. +
  77621. +#ifndef _BITS_SIGCONTEXT_H
  77622. +#define _BITS_SIGCONTEXT_H 1
  77623. +
  77624. +struct sigcontext
  77625. +{
  77626. + unsigned long sc_pc;
  77627. + unsigned long sc_ps;
  77628. + unsigned long sc_lbeg;
  77629. + unsigned long sc_lend;
  77630. + unsigned long sc_lcount;
  77631. + unsigned long sc_sar;
  77632. + unsigned long sc_acclo;
  77633. + unsigned long sc_acchi;
  77634. + unsigned long sc_a[16];
  77635. + void *sc_xtregs;
  77636. +};
  77637. +
  77638. +#endif /* _BITS_SIGCONTEXT_H */
  77639. +
  77640. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/sigcontextinfo.h uClibc-git/libc/sysdeps/linux/xtensa/bits/sigcontextinfo.h
  77641. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/sigcontextinfo.h 2012-05-15 09:20:09.000000000 +0200
  77642. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/sigcontextinfo.h 2014-06-02 17:40:34.706715815 +0200
  77643. @@ -12,9 +12,8 @@
  77644. Lesser General Public License for more details.
  77645. You should have received a copy of the GNU Lesser General Public
  77646. - License along with the GNU C Library; if not, write to the Free
  77647. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77648. - Boston, MA 02110-1301, USA. */
  77649. + License along with the GNU C Library; if not, see
  77650. + <http://www.gnu.org/licenses/>. */
  77651. /* Also see register-dump.h, where we spill live registers to the
  77652. stack so that we can trace the stack backward. */
  77653. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/stackinfo.h uClibc-git/libc/sysdeps/linux/xtensa/bits/stackinfo.h
  77654. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/stackinfo.h 2012-05-15 09:20:09.000000000 +0200
  77655. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/stackinfo.h 2014-06-02 17:40:34.706715815 +0200
  77656. @@ -12,9 +12,8 @@
  77657. Lesser General Public License for more details.
  77658. You should have received a copy of the GNU Lesser General Public
  77659. - License along with the GNU C Library; if not, write to the Free
  77660. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77661. - Boston, MA 02110-1301, USA. */
  77662. + License along with the GNU C Library; if not, see
  77663. + <http://www.gnu.org/licenses/>. */
  77664. /* This file contains a bit of information about the stack allocation
  77665. of the processor. */
  77666. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/stat.h uClibc-git/libc/sysdeps/linux/xtensa/bits/stat.h
  77667. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/stat.h 2012-05-15 09:20:09.000000000 +0200
  77668. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/stat.h 2014-06-02 17:40:34.706715815 +0200
  77669. @@ -12,9 +12,8 @@
  77670. Lesser General Public License for more details.
  77671. You should have received a copy of the GNU Lesser General Public
  77672. - License along with the GNU C Library; if not, write to the Free
  77673. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77674. - Boston, MA 02110-1301, USA. */
  77675. + License along with the GNU C Library; if not, see
  77676. + <http://www.gnu.org/licenses/>. */
  77677. #ifndef _SYS_STAT_H
  77678. # error "Never include <bits/stat.h> directly; use <sys/stat.h> instead."
  77679. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/uClibc_arch_features.h uClibc-git/libc/sysdeps/linux/xtensa/bits/uClibc_arch_features.h
  77680. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/uClibc_arch_features.h 2012-05-15 09:20:09.000000000 +0200
  77681. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/uClibc_arch_features.h 2014-06-02 17:40:34.706715815 +0200
  77682. @@ -11,8 +11,8 @@
  77683. /* can your target use syscall6() for mmap ? */
  77684. #define __UCLIBC_MMAP_HAS_6_ARGS__
  77685. -/* does your target use syscall4() for truncate64 ? (32bit arches only) */
  77686. -#define __UCLIBC_TRUNCATE64_HAS_4_ARGS__
  77687. +/* does your target align 64bit values in register pairs ? (32bit arches only) */
  77688. +#define __UCLIBC_SYSCALL_ALIGN_64BIT__
  77689. /* does your target have a broken create_module() ? */
  77690. #undef __UCLIBC_BROKEN_CREATE_MODULE__
  77691. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/uClibc_page.h uClibc-git/libc/sysdeps/linux/xtensa/bits/uClibc_page.h
  77692. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/uClibc_page.h 2012-05-15 09:20:09.000000000 +0200
  77693. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/uClibc_page.h 1970-01-01 01:00:00.000000000 +0100
  77694. @@ -1,31 +0,0 @@
  77695. -/* Copyright (C) 2004 Erik Andersen
  77696. - *
  77697. - * This library is free software; you can redistribute it and/or
  77698. - * modify it under the terms of the GNU Lesser General Public
  77699. - * License as published by the Free Software Foundation; either
  77700. - * version 2.1 of the License, or (at your option) any later version.
  77701. - *
  77702. - * The GNU C Library is distributed in the hope that it will be useful,
  77703. - * but WITHOUT ANY WARRANTY; without even the implied warranty of
  77704. - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  77705. - * Lesser General Public License for more details.
  77706. - *
  77707. - * You should have received a copy of the GNU Lesser General Public
  77708. - * License along with the GNU C Library; if not, write to the Free
  77709. - * Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77710. - * 02111-1307 USA.
  77711. - */
  77712. -
  77713. -/* Supply an architecture specific value for PAGE_SIZE and friends. */
  77714. -
  77715. -#ifndef _UCLIBC_PAGE_H
  77716. -#define _UCLIBC_PAGE_H
  77717. -
  77718. -#include <bits/xtensa-config.h>
  77719. -
  77720. -/* PAGE_SHIFT determines the page size -- in this case 4096 */
  77721. -#define PAGE_SHIFT XCHAL_MMU_MIN_PTE_PAGE_SIZE
  77722. -#define PAGE_SIZE (1UL << PAGE_SHIFT)
  77723. -#define PAGE_MASK (~(PAGE_SIZE-1))
  77724. -
  77725. -#endif /* _UCLIBC_PAGE_H */
  77726. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/wordsize.h uClibc-git/libc/sysdeps/linux/xtensa/bits/wordsize.h
  77727. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/wordsize.h 2012-05-15 09:20:09.000000000 +0200
  77728. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/wordsize.h 2014-06-02 17:40:34.706715815 +0200
  77729. @@ -12,8 +12,7 @@
  77730. Lesser General Public License for more details.
  77731. You should have received a copy of the GNU Lesser General Public
  77732. - License along with the GNU C Library; if not, write to the Free
  77733. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  77734. - 02111-1307 USA. */
  77735. + License along with the GNU C Library; if not, see
  77736. + <http://www.gnu.org/licenses/>. */
  77737. #define __WORDSIZE 32
  77738. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/xtensa-config.h uClibc-git/libc/sysdeps/linux/xtensa/bits/xtensa-config.h
  77739. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/bits/xtensa-config.h 2012-05-15 09:20:09.000000000 +0200
  77740. +++ uClibc-git/libc/sysdeps/linux/xtensa/bits/xtensa-config.h 2014-06-02 17:40:34.706715815 +0200
  77741. @@ -14,9 +14,8 @@
  77742. Lesser General Public License for more details.
  77743. You should have received a copy of the GNU Lesser General Public
  77744. - License along with the GNU C Library; if not, write to the Free
  77745. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77746. - Boston, MA 02110-1301, USA. */
  77747. + License along with the GNU C Library; if not, see
  77748. + <http://www.gnu.org/licenses/>. */
  77749. #ifndef XTENSA_CONFIG_H
  77750. #define XTENSA_CONFIG_H
  77751. @@ -44,10 +43,4 @@
  77752. #undef XCHAL_NUM_AREGS
  77753. #define XCHAL_NUM_AREGS 64
  77754. -/* Set a default page size. This is currently needed when bootstrapping
  77755. - the runtime linker. See comments in dl-machine.h where this is used. */
  77756. -
  77757. -#undef XCHAL_MMU_MIN_PTE_PAGE_SIZE
  77758. -#define XCHAL_MMU_MIN_PTE_PAGE_SIZE 12
  77759. -
  77760. #endif /* !XTENSA_CONFIG_H */
  77761. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/brk.c uClibc-git/libc/sysdeps/linux/xtensa/brk.c
  77762. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/brk.c 2012-05-15 09:20:09.000000000 +0200
  77763. +++ uClibc-git/libc/sysdeps/linux/xtensa/brk.c 2014-06-02 17:40:34.722715903 +0200
  77764. @@ -13,9 +13,8 @@
  77765. Lesser General Public License for more details.
  77766. You should have received a copy of the GNU Lesser General Public
  77767. - License along with the GNU C Library; if not, write to the Free
  77768. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77769. - Boston, MA 02110-1301, USA. */
  77770. + License along with the GNU C Library; if not, see
  77771. + <http://www.gnu.org/licenses/>. */
  77772. #include <errno.h>
  77773. #include <unistd.h>
  77774. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/clone.S uClibc-git/libc/sysdeps/linux/xtensa/clone.S
  77775. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/clone.S 2012-05-15 09:20:09.000000000 +0200
  77776. +++ uClibc-git/libc/sysdeps/linux/xtensa/clone.S 2014-06-02 17:40:34.722715903 +0200
  77777. @@ -11,9 +11,8 @@
  77778. Lesser General Public License for more details.
  77779. You should have received a copy of the GNU Lesser General Public
  77780. - License along with the GNU C Library; if not, write to the Free
  77781. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77782. - Boston, MA 02110-1301, USA. */
  77783. + License along with the GNU C Library; if not, see
  77784. + <http://www.gnu.org/licenses/>. */
  77785. /* clone is even more special than fork as it mucks with stacks
  77786. and invokes a function in the right context after it's all over. */
  77787. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/crt1.S uClibc-git/libc/sysdeps/linux/xtensa/crt1.S
  77788. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/crt1.S 2012-05-15 09:20:09.000000000 +0200
  77789. +++ uClibc-git/libc/sysdeps/linux/xtensa/crt1.S 2014-06-02 17:40:34.722715903 +0200
  77790. @@ -30,9 +30,8 @@
  77791. Lesser General Public License for more details.
  77792. You should have received a copy of the GNU Lesser General Public
  77793. - License along with the GNU C Library; if not, write to the Free
  77794. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77795. - Boston, MA 02110-1301, USA. */
  77796. + License along with the GNU C Library; if not, see
  77797. + <http://www.gnu.org/licenses/>. */
  77798. #include <features.h>
  77799. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/fork.c uClibc-git/libc/sysdeps/linux/xtensa/fork.c
  77800. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/fork.c 2012-05-15 09:20:09.000000000 +0200
  77801. +++ uClibc-git/libc/sysdeps/linux/xtensa/fork.c 2014-06-02 17:40:34.726715926 +0200
  77802. @@ -7,19 +7,19 @@
  77803. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  77804. */
  77805. -#include <unistd.h>
  77806. -#include <sys/syscall.h>
  77807. -#define _SIGNAL_H
  77808. -#include <bits/signum.h>
  77809. /* Xtensa doesn't provide a 'fork' system call, so we use 'clone'. */
  77810. +#include <sys/syscall.h>
  77811. -extern __typeof(fork) __libc_fork;
  77812. +#if defined __NR_clone && defined __ARCH_USE_MMU__
  77813. +# include <unistd.h>
  77814. +# include <signal.h>
  77815. +# include <cancel.h>
  77816. -libc_hidden_proto(fork)
  77817. -pid_t __libc_fork(void)
  77818. +pid_t fork(void)
  77819. {
  77820. return (pid_t) INLINE_SYSCALL(clone, 2, SIGCHLD, 0);
  77821. }
  77822. -weak_alias(__libc_fork, fork)
  77823. -libc_hidden_weak(fork)
  77824. +lt_strong_alias(fork)
  77825. +lt_libc_hidden(fork)
  77826. +#endif
  77827. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/jmpbuf-offsets.h uClibc-git/libc/sysdeps/linux/xtensa/jmpbuf-offsets.h
  77828. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/jmpbuf-offsets.h 1970-01-01 01:00:00.000000000 +0100
  77829. +++ uClibc-git/libc/sysdeps/linux/xtensa/jmpbuf-offsets.h 2014-06-02 17:40:34.726715926 +0200
  77830. @@ -0,0 +1,20 @@
  77831. +/* Private macros for accessing __jmp_buf contents. Xtensa version.
  77832. + Copyright (C) 2006 Free Software Foundation, Inc.
  77833. + This file is part of the GNU C Library.
  77834. +
  77835. + The GNU C Library is free software; you can redistribute it and/or
  77836. + modify it under the terms of the GNU Lesser General Public
  77837. + License as published by the Free Software Foundation; either
  77838. + version 2.1 of the License, or (at your option) any later version.
  77839. +
  77840. + The GNU C Library is distributed in the hope that it will be useful,
  77841. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  77842. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  77843. + Lesser General Public License for more details.
  77844. +
  77845. + You should have received a copy of the GNU Lesser General Public
  77846. + License along with the GNU C Library; if not, see
  77847. + <http://www.gnu.org/licenses/>. */
  77848. +
  77849. +#define JB_SP 1
  77850. +#define JB_PC 16
  77851. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/jmpbuf-unwind.h uClibc-git/libc/sysdeps/linux/xtensa/jmpbuf-unwind.h
  77852. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  77853. +++ uClibc-git/libc/sysdeps/linux/xtensa/jmpbuf-unwind.h 2014-06-02 17:40:34.726715926 +0200
  77854. @@ -0,0 +1,25 @@
  77855. +/* Copyright (C) 1997, 1998, 2007 Free Software Foundation, Inc.
  77856. + This file is part of the GNU C Library.
  77857. +
  77858. + The GNU C Library is free software; you can redistribute it and/or
  77859. + modify it under the terms of the GNU Lesser General Public
  77860. + License as published by the Free Software Foundation; either
  77861. + version 2.1 of the License, or (at your option) any later version.
  77862. +
  77863. + The GNU C Library is distributed in the hope that it will be useful,
  77864. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  77865. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  77866. + Lesser General Public License for more details.
  77867. +
  77868. + You should have received a copy of the GNU Lesser General Public
  77869. + License along with the GNU C Library; if not, see
  77870. + <http://www.gnu.org/licenses/>. */
  77871. +
  77872. +/* Test if longjmp to JMPBUF would unwind the frame containing a local
  77873. + variable at ADDRESS. */
  77874. +
  77875. +#include <setjmp.h>
  77876. +#include <jmpbuf-offsets.h>
  77877. +
  77878. +#define _JMPBUF_UNWINDS(jmpbuf, address) \
  77879. + ((void *) (address) < (void *) (jmpbuf)[JB_SP])
  77880. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/__longjmp.S uClibc-git/libc/sysdeps/linux/xtensa/__longjmp.S
  77881. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/__longjmp.S 2012-05-15 09:20:09.000000000 +0200
  77882. +++ uClibc-git/libc/sysdeps/linux/xtensa/__longjmp.S 2014-06-02 17:40:34.686715704 +0200
  77883. @@ -14,9 +14,8 @@
  77884. Lesser General Public License for more details.
  77885. You should have received a copy of the GNU Lesser General Public
  77886. - License along with the GNU C Library; if not, write to the Free
  77887. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77888. - Boston, MA 02110-1301, USA. */
  77889. + License along with the GNU C Library; if not, see
  77890. + <http://www.gnu.org/licenses/>. */
  77891. /* This implementation relies heavily on the Xtensa register window
  77892. mechanism. Setjmp flushes all the windows except its own to the
  77893. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/Makefile.arch uClibc-git/libc/sysdeps/linux/xtensa/Makefile.arch
  77894. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  77895. +++ uClibc-git/libc/sysdeps/linux/xtensa/Makefile.arch 2014-06-02 17:40:34.686715704 +0200
  77896. @@ -5,11 +5,7 @@
  77897. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  77898. #
  77899. -CSRC := brk.c fork.c pread_write.c sigaction.c __syscall_error.c
  77900. +CSRC-y := brk.c fork.c sigaction.c __syscall_error.c
  77901. -ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),y)
  77902. - CSRC += posix_fadvise.c posix_fadvise64.c
  77903. -endif
  77904. -
  77905. -SSRC := bsd-_setjmp.S bsd-setjmp.S setjmp.S clone.S \
  77906. +SSRC-y := bsd-_setjmp.S bsd-setjmp.S setjmp.S clone.S \
  77907. sigrestorer.S syscall.S mmap.S windowspill.S __longjmp.S vfork.S
  77908. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/mmap.S uClibc-git/libc/sysdeps/linux/xtensa/mmap.S
  77909. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/mmap.S 2012-05-15 09:20:09.000000000 +0200
  77910. +++ uClibc-git/libc/sysdeps/linux/xtensa/mmap.S 2014-06-02 17:40:34.726715926 +0200
  77911. @@ -12,9 +12,8 @@
  77912. Lesser General Public License for more details.
  77913. You should have received a copy of the GNU Lesser General Public
  77914. - License along with the GNU C Library; if not, write to the Free
  77915. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  77916. - Boston, MA 02110-1301, USA. */
  77917. + License along with the GNU C Library; if not, see
  77918. + <http://www.gnu.org/licenses/>. */
  77919. #include "sysdep.h"
  77920. #include <sys/syscall.h>
  77921. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/posix_fadvise64.c uClibc-git/libc/sysdeps/linux/xtensa/posix_fadvise64.c
  77922. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/posix_fadvise64.c 2012-05-15 09:20:09.000000000 +0200
  77923. +++ uClibc-git/libc/sysdeps/linux/xtensa/posix_fadvise64.c 1970-01-01 01:00:00.000000000 +0100
  77924. @@ -1,39 +0,0 @@
  77925. -/* vi: set sw=4 ts=4: */
  77926. -/*
  77927. - * posix_fadvise64() for Xtensa uClibc
  77928. - *
  77929. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  77930. - * Copyright (C) 2007 Tensilica Inc.
  77931. - *
  77932. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  77933. - */
  77934. -
  77935. -#include <features.h>
  77936. -#include <unistd.h>
  77937. -#include <errno.h>
  77938. -#include <endian.h>
  77939. -#include <stdint.h>
  77940. -#include <sys/types.h>
  77941. -#include <sys/syscall.h>
  77942. -#include <fcntl.h>
  77943. -
  77944. -#ifdef __UCLIBC_HAS_LFS__
  77945. -
  77946. -int posix_fadvise64 (int fd, __off64_t offset, __off64_t len, int advice)
  77947. -{
  77948. -#ifdef __NR_fadvise64_64
  77949. - INTERNAL_SYSCALL_DECL (err);
  77950. - int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, advice,
  77951. - __LONG_LONG_PAIR ((long) (offset >> 32),
  77952. - (long) offset),
  77953. - __LONG_LONG_PAIR ((long) (len >> 32),
  77954. - (long) len));
  77955. - if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
  77956. - return 0;
  77957. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  77958. -#else
  77959. - return ENOSYS;
  77960. -#endif
  77961. -}
  77962. -
  77963. -#endif /* __UCLIBC_HAS_LFS__ */
  77964. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/posix_fadvise.c uClibc-git/libc/sysdeps/linux/xtensa/posix_fadvise.c
  77965. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/posix_fadvise.c 2012-05-15 09:20:09.000000000 +0200
  77966. +++ uClibc-git/libc/sysdeps/linux/xtensa/posix_fadvise.c 1970-01-01 01:00:00.000000000 +0100
  77967. @@ -1,29 +0,0 @@
  77968. -/* vi: set sw=4 ts=4: */
  77969. -/*
  77970. - * posix_fadvise() for Xtensa uClibc
  77971. - *
  77972. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  77973. - * Copyright (C) 2007 Tensilica Inc.
  77974. - *
  77975. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  77976. - */
  77977. -
  77978. -#include <sys/syscall.h>
  77979. -#include <fcntl.h>
  77980. -
  77981. -int posix_fadvise (int fd, off_t offset, off_t len, int advice)
  77982. -{
  77983. -#ifdef __NR_fadvise64_64
  77984. - INTERNAL_SYSCALL_DECL (err);
  77985. - int ret = INTERNAL_SYSCALL (fadvise64_64, err, 6, fd, advice,
  77986. - __LONG_LONG_PAIR ((long) (offset >> 31),
  77987. - (long) offset),
  77988. - __LONG_LONG_PAIR ((long) (len >> 31),
  77989. - (long) len));
  77990. - if (!INTERNAL_SYSCALL_ERROR_P (ret, err))
  77991. - return 0;
  77992. - return INTERNAL_SYSCALL_ERRNO (ret, err);
  77993. -#else
  77994. - return ENOSYS;
  77995. -#endif
  77996. -}
  77997. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/pread_write.c uClibc-git/libc/sysdeps/linux/xtensa/pread_write.c
  77998. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/pread_write.c 2012-05-15 09:20:09.000000000 +0200
  77999. +++ uClibc-git/libc/sysdeps/linux/xtensa/pread_write.c 1970-01-01 01:00:00.000000000 +0100
  78000. @@ -1,189 +0,0 @@
  78001. -/* vi: set sw=4 ts=4: */
  78002. -/*
  78003. - * Copyright (C) 2000-2006 Erik Andersen <andersen@uclibc.org>
  78004. - *
  78005. - * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  78006. - */
  78007. -/*
  78008. - * Based in part on the files
  78009. - * ./sysdeps/unix/sysv/linux/pwrite.c,
  78010. - * ./sysdeps/unix/sysv/linux/pread.c,
  78011. - * sysdeps/posix/pread.c
  78012. - * sysdeps/posix/pwrite.c
  78013. - * from GNU libc 2.2.5, but reworked considerably...
  78014. - */
  78015. -
  78016. -#include <sys/syscall.h>
  78017. -#include <unistd.h>
  78018. -#include <stdint.h>
  78019. -#include <endian.h>
  78020. -
  78021. -extern __typeof(pread) __libc_pread;
  78022. -extern __typeof(pwrite) __libc_pwrite;
  78023. -#ifdef __UCLIBC_HAS_LFS__
  78024. -extern __typeof(pread64) __libc_pread64;
  78025. -extern __typeof(pwrite64) __libc_pwrite64;
  78026. -#endif
  78027. -
  78028. -#include <bits/kernel_types.h>
  78029. -
  78030. -#ifdef __NR_pread
  78031. -
  78032. -# define __NR___syscall_pread __NR_pread
  78033. -/* On Xtensa, 64-bit values are aligned in even/odd register pairs. */
  78034. -static __inline__ _syscall6(ssize_t, __syscall_pread, int, fd, void *, buf,
  78035. - size_t, count, int, pad, off_t, offset_hi, off_t, offset_lo)
  78036. -
  78037. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  78038. -{
  78039. - return __syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 31, offset));
  78040. -}
  78041. -weak_alias(__libc_pread,pread)
  78042. -
  78043. -# ifdef __UCLIBC_HAS_LFS__
  78044. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  78045. -{
  78046. - uint32_t low = offset & 0xffffffff;
  78047. - uint32_t high = offset >> 32;
  78048. - return __syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR(high, low));
  78049. -}
  78050. -weak_alias(__libc_pread64,pread64)
  78051. -# endif /* __UCLIBC_HAS_LFS__ */
  78052. -
  78053. -#endif /* __NR_pread */
  78054. -
  78055. -#ifdef __NR_pwrite
  78056. -
  78057. -# define __NR___syscall_pwrite __NR_pwrite
  78058. -/* On Xtensa, 64-bit values are aligned in even/odd register pairs. */
  78059. -static __inline__ _syscall6(ssize_t, __syscall_pwrite, int, fd, const void *, buf,
  78060. - size_t, count, int, pad, off_t, offset_hi, off_t, offset_lo)
  78061. -
  78062. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  78063. -{
  78064. - return __syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR(offset >> 31, offset));
  78065. -}
  78066. -weak_alias(__libc_pwrite,pwrite)
  78067. -
  78068. -# ifdef __UCLIBC_HAS_LFS__
  78069. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  78070. -{
  78071. - uint32_t low = offset & 0xffffffff;
  78072. - uint32_t high = offset >> 32;
  78073. - return __syscall_pwrite(fd, buf, count, 0, __LONG_LONG_PAIR(high, low));
  78074. -}
  78075. -weak_alias(__libc_pwrite64,pwrite64)
  78076. -# endif /* __UCLIBC_HAS_LFS__ */
  78077. -#endif /* __NR_pwrite */
  78078. -
  78079. -#if ! defined __NR_pread || ! defined __NR_pwrite
  78080. -
  78081. -static ssize_t __fake_pread_write(int fd, void *buf,
  78082. - size_t count, off_t offset, int do_pwrite)
  78083. -{
  78084. - int save_errno;
  78085. - ssize_t result;
  78086. - off_t old_offset;
  78087. -
  78088. - /* Since we must not change the file pointer preserve the
  78089. - * value so that we can restore it later. */
  78090. - if ((old_offset=lseek(fd, 0, SEEK_CUR)) == (off_t) -1)
  78091. - return -1;
  78092. -
  78093. - /* Set to wanted position. */
  78094. - if (lseek(fd, offset, SEEK_SET) == (off_t) -1)
  78095. - return -1;
  78096. -
  78097. - if (do_pwrite == 1) {
  78098. - /* Write the data. */
  78099. - result = write(fd, buf, count);
  78100. - } else {
  78101. - /* Read the data. */
  78102. - result = read(fd, buf, count);
  78103. - }
  78104. -
  78105. - /* Now we have to restore the position. If this fails we
  78106. - * have to return this as an error. */
  78107. - save_errno = errno;
  78108. - if (lseek(fd, old_offset, SEEK_SET) == (off_t) -1)
  78109. - {
  78110. - if (result == -1)
  78111. - __set_errno(save_errno);
  78112. - return -1;
  78113. - }
  78114. - __set_errno(save_errno);
  78115. - return(result);
  78116. -}
  78117. -
  78118. -# ifdef __UCLIBC_HAS_LFS__
  78119. -
  78120. -static ssize_t __fake_pread_write64(int fd, void *buf,
  78121. - size_t count, off64_t offset, int do_pwrite)
  78122. -{
  78123. - int save_errno;
  78124. - ssize_t result;
  78125. - off64_t old_offset;
  78126. -
  78127. - /* Since we must not change the file pointer preserve the
  78128. - * value so that we can restore it later. */
  78129. - if ((old_offset=lseek64(fd, 0, SEEK_CUR)) == (off64_t) -1)
  78130. - return -1;
  78131. -
  78132. - /* Set to wanted position. */
  78133. - if (lseek64(fd, offset, SEEK_SET) == (off64_t) -1)
  78134. - return -1;
  78135. -
  78136. - if (do_pwrite == 1) {
  78137. - /* Write the data. */
  78138. - result = write(fd, buf, count);
  78139. - } else {
  78140. - /* Read the data. */
  78141. - result = read(fd, buf, count);
  78142. - }
  78143. -
  78144. - /* Now we have to restore the position. */
  78145. - save_errno = errno;
  78146. - if (lseek64(fd, old_offset, SEEK_SET) == (off64_t) -1) {
  78147. - if (result == -1)
  78148. - __set_errno (save_errno);
  78149. - return -1;
  78150. - }
  78151. - __set_errno (save_errno);
  78152. - return result;
  78153. -}
  78154. -# endif /* __UCLIBC_HAS_LFS__ */
  78155. -#endif /* ! defined __NR_pread || ! defined __NR_pwrite */
  78156. -
  78157. -#ifndef __NR_pread
  78158. -ssize_t __libc_pread(int fd, void *buf, size_t count, off_t offset)
  78159. -{
  78160. - return __fake_pread_write(fd, buf, count, offset, 0);
  78161. -}
  78162. -weak_alias(__libc_pread,pread)
  78163. -
  78164. -# ifdef __UCLIBC_HAS_LFS__
  78165. -ssize_t __libc_pread64(int fd, void *buf, size_t count, off64_t offset)
  78166. -{
  78167. - return __fake_pread_write64(fd, buf, count, offset, 0);
  78168. -}
  78169. -weak_alias(__libc_pread64,pread64)
  78170. -# endif /* __UCLIBC_HAS_LFS__ */
  78171. -#endif /* ! __NR_pread */
  78172. -
  78173. -#ifndef __NR_pwrite
  78174. -ssize_t __libc_pwrite(int fd, const void *buf, size_t count, off_t offset)
  78175. -{
  78176. - /* we won't actually be modifying the buffer,
  78177. - *just cast it to get rid of warnings */
  78178. - return __fake_pread_write(fd, (void*)buf, count, offset, 1);
  78179. -}
  78180. -weak_alias(__libc_pwrite,pwrite)
  78181. -
  78182. -# ifdef __UCLIBC_HAS_LFS__
  78183. -ssize_t __libc_pwrite64(int fd, const void *buf, size_t count, off64_t offset)
  78184. -{
  78185. - return __fake_pread_write64(fd, (void*)buf, count, offset, 1);
  78186. -}
  78187. -weak_alias(__libc_pwrite64,pwrite64)
  78188. -# endif /* __UCLIBC_HAS_LFS__ */
  78189. -#endif /* ! __NR_pwrite */
  78190. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/setjmp.S uClibc-git/libc/sysdeps/linux/xtensa/setjmp.S
  78191. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/setjmp.S 2012-05-15 09:20:09.000000000 +0200
  78192. +++ uClibc-git/libc/sysdeps/linux/xtensa/setjmp.S 2014-06-02 17:40:34.726715926 +0200
  78193. @@ -13,9 +13,8 @@
  78194. Lesser General Public License for more details.
  78195. You should have received a copy of the GNU Lesser General Public
  78196. - License along with the GNU C Library; if not, write to the Free
  78197. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  78198. - Boston, MA 02110-1301, USA. */
  78199. + License along with the GNU C Library; if not, see
  78200. + <http://www.gnu.org/licenses/>. */
  78201. /* This implementation relies heavily on the Xtensa register window
  78202. mechanism. Setjmp flushes all the windows except its own to the
  78203. @@ -25,24 +24,52 @@
  78204. then sets things up so that it will return to the right place,
  78205. using a window underflow to automatically restore the registers.
  78206. - Note that it would probably be sufficient to only copy the
  78207. - registers from setjmp's caller into jmp_buf. However, we also copy
  78208. - the save area located at the stack pointer of setjmp's caller.
  78209. - This save area will typically remain intact until the longjmp call.
  78210. - The one exception is when there is an intervening alloca in
  78211. - setjmp's caller. This is certainly an unusual situation and is
  78212. - likely to cause problems in any case (the storage allocated on the
  78213. - stack cannot be safely accessed following the longjmp). As bad as
  78214. - it is, on most systems this situation would not necessarily lead to
  78215. - a catastrophic failure. If we did not preserve the extra save area
  78216. - on Xtensa, however, it would. When setjmp's caller returns after a
  78217. - longjmp, there will be a window underflow; an invalid return
  78218. - address or stack pointer in the save area will almost certainly
  78219. - lead to a crash. Keeping a copy of the extra save area in the
  78220. - jmp_buf avoids this with only a small additional cost. If setjmp
  78221. - and longjmp are ever time-critical, this could be removed. */
  78222. + Note that we also save the area located just below the stack pointer
  78223. + of the caller. This save area could get overwritten by alloca
  78224. + following the call to setjmp. The alloca moves the stack pointer
  78225. + to allocate memory on the stack. This newly allocated memory
  78226. + includes(!) the original save area (alloca copies the save area
  78227. + before it moves that stack pointer).
  78228. +
  78229. +
  78230. + previous caller SP -> |------------------------------| <-----+
  78231. + | caller-2 registers a0-a3 | | p
  78232. + |------------------------------| | o
  78233. + | caller registers a4-a8/a12 | | i
  78234. + |------------------------------| | n
  78235. + | caller local stack | | t
  78236. + caller SP -> |------------------------------| <-+ | s
  78237. + | caller-1 registers a0-a3 | -:---+
  78238. + callee (setjmp) SP -> |==============================| |
  78239. + | caller registers a0-a3 | --+
  78240. + |------------------------------|
  78241. +
  78242. + In case of an alloca, registers a0-a3 of the previous caller (caller-1)
  78243. + are copied (*), and the original location get likely overwritten.
  78244. +
  78245. + previous caller SP -> |------------------------------| <-----+
  78246. + | caller-2 registers a0-a3 | | p
  78247. + |------------------------------| | o
  78248. + | caller registers a4-a8/a12 | | i
  78249. + |------------------------------| | n
  78250. + | caller local stack | | t
  78251. + caller SP before alloca-> |------------------------------| | s
  78252. + | alloca area (overwrites old | |
  78253. + | copy of caller-1 registers) | |
  78254. + caller SP after alloca -> |------------------------------| <-+ |
  78255. + | caller-1 registers a0-a3 (*) | -:---+
  78256. + callee (setjmp) SP -> |==============================| |
  78257. + | caller registers a0-a3 | --+
  78258. + |------------------------------|
  78259. +
  78260. + So, when longcall returns to the original caller SP, it also needs
  78261. + to restore the save area below the SP.
  78262. +
  78263. + */
  78264. #include "sysdep.h"
  78265. +
  78266. +/* NOTE: The ENTRY macro must allocate exactly 16 bytes (entry a1, 16) */
  78267. /* int setjmp (a2 = jmp_buf env) */
  78268. @@ -57,8 +84,7 @@
  78269. j 1f
  78270. END (setjmp)
  78271. -/* int __sigsetjmp (a2 = jmp_buf env,
  78272. - a3 = int savemask) */
  78273. +/* int __sigsetjmp (a2 = jmp_buf env, a3 = int savemask) */
  78274. ENTRY (__sigsetjmp)
  78275. 1:
  78276. @@ -66,61 +92,56 @@
  78277. movi a4, __window_spill
  78278. callx4 a4
  78279. - /* Preserve the second argument (savemask) in a15. The selection
  78280. - of a15 is arbitrary, except it's otherwise unused. There is no
  78281. - risk of triggering a window overflow since we just returned
  78282. - from __window_spill(). */
  78283. - mov a15, a3
  78284. -
  78285. - /* Copy the register save area at (sp - 16). */
  78286. - addi a5, a1, -16
  78287. - l32i a3, a5, 0
  78288. - l32i a4, a5, 4
  78289. - s32i a3, a2, 0
  78290. - s32i a4, a2, 4
  78291. - l32i a3, a5, 8
  78292. - l32i a4, a5, 12
  78293. - s32i a3, a2, 8
  78294. - s32i a4, a2, 12
  78295. -
  78296. - /* Copy 0-8 words from the register overflow area. */
  78297. - extui a3, a0, 30, 2
  78298. - blti a3, 2, .Lendsj
  78299. - l32i a7, a1, 4
  78300. - slli a4, a3, 4
  78301. - sub a5, a7, a4
  78302. - addi a6, a2, 16
  78303. - addi a7, a7, -16 /* a7 = end of register overflow area */
  78304. + /* Copy the caller register a0-a3 at (sp - 16) to jmpbuf. */
  78305. + addi a7, a1, -16
  78306. + l32i a4, a7, 0
  78307. + l32i a5, a7, 4
  78308. + s32i a4, a2, 0
  78309. + s32i a5, a2, 4
  78310. + l32i a4, a7, 8
  78311. + l32i a5, a7, 12
  78312. + s32i a4, a2, 8
  78313. + s32i a5, a2, 12
  78314. +
  78315. + /* Copy the caller registers a4-a8/a12 from the overflow area. */
  78316. + /* Note that entry moved the SP by 16B, so SP of caller-1 is at 4(sp) */
  78317. + extui a7, a0, 30, 2
  78318. + blti a7, 2, .Lendsj
  78319. + l32i a8, a1, 4 /* a8: SP of 'caller-1' */
  78320. + slli a4, a7, 4
  78321. + sub a6, a8, a4
  78322. + addi a5, a2, 16
  78323. + addi a8, a8, -16 /* a8: end of register overflow area */
  78324. .Lsjloop:
  78325. - l32i a3, a5, 0
  78326. - l32i a4, a5, 4
  78327. - s32i a3, a6, 0
  78328. - s32i a4, a6, 4
  78329. - l32i a3, a5, 8
  78330. - l32i a4, a5, 12
  78331. - s32i a3, a6, 8
  78332. - s32i a4, a6, 12
  78333. - addi a5, a5, 16
  78334. + l32i a7, a6, 0
  78335. + l32i a4, a6, 4
  78336. + s32i a7, a5, 0
  78337. + s32i a4, a5, 4
  78338. + l32i a7, a6, 8
  78339. + l32i a4, a6, 12
  78340. + s32i a7, a5, 8
  78341. + s32i a4, a5, 12
  78342. + addi a5, a6, 16
  78343. addi a6, a6, 16
  78344. - blt a5, a7, .Lsjloop
  78345. + blt a6, a8, .Lsjloop
  78346. .Lendsj:
  78347. - /* Copy the register save area at sp. */
  78348. - l32i a3, a1, 0
  78349. - l32i a4, a1, 4
  78350. - s32i a3, a2, 48
  78351. - s32i a4, a2, 52
  78352. - l32i a3, a1, 8
  78353. - l32i a4, a1, 12
  78354. - s32i a3, a2, 56
  78355. - s32i a4, a2, 60
  78356. + /* Copy previous caller registers (this is assuming 'entry a1,16') */
  78357. + l32i a4, a1, 0
  78358. + l32i a5, a1, 4
  78359. + s32i a4, a2, 48
  78360. + s32i a5, a2, 52
  78361. + l32i a4, a1, 8
  78362. + l32i a5, a1, 12
  78363. + s32i a4, a2, 56
  78364. + s32i a5, a2, 60
  78365. /* Save the return address, including the window size bits. */
  78366. s32i a0, a2, 64
  78367. - /* a2 still addresses jmp_buf. a15 contains savemask. */
  78368. + /* a2 still points to jmp_buf. a3 contains savemask. */
  78369. mov a6, a2
  78370. - mov a7, a15
  78371. + mov a7, a3
  78372. movi a3, __sigjmp_save
  78373. callx4 a3
  78374. mov a2, a6
  78375. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/procfs.h uClibc-git/libc/sysdeps/linux/xtensa/sys/procfs.h
  78376. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/procfs.h 2012-05-15 09:20:09.000000000 +0200
  78377. +++ uClibc-git/libc/sysdeps/linux/xtensa/sys/procfs.h 2014-06-02 17:40:34.726715926 +0200
  78378. @@ -12,9 +12,8 @@
  78379. Lesser General Public License for more details.
  78380. You should have received a copy of the GNU Lesser General Public
  78381. - License along with the GNU C Library; if not, write to the Free
  78382. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  78383. - Boston, MA 02110-1301, USA. */
  78384. + License along with the GNU C Library; if not, see
  78385. + <http://www.gnu.org/licenses/>. */
  78386. #ifndef _SYS_PROCFS_H
  78387. #define _SYS_PROCFS_H 1
  78388. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/ptrace.h uClibc-git/libc/sysdeps/linux/xtensa/sys/ptrace.h
  78389. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/ptrace.h 2012-05-15 09:20:09.000000000 +0200
  78390. +++ uClibc-git/libc/sysdeps/linux/xtensa/sys/ptrace.h 1970-01-01 01:00:00.000000000 +0100
  78391. @@ -1,156 +0,0 @@
  78392. -/* `ptrace' debugger support interface. Linux version.
  78393. - Copyright (C) 1996, 1997, 1998, 1999, 2000, 2007
  78394. - Free Software Foundation, Inc.
  78395. - This file is part of the GNU C Library.
  78396. -
  78397. - The GNU C Library is free software; you can redistribute it and/or
  78398. - modify it under the terms of the GNU Lesser General Public
  78399. - License as published by the Free Software Foundation; either
  78400. - version 2.1 of the License, or (at your option) any later version.
  78401. -
  78402. - The GNU C Library is distributed in the hope that it will be useful,
  78403. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  78404. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  78405. - Lesser General Public License for more details.
  78406. -
  78407. - You should have received a copy of the GNU Lesser General Public
  78408. - License along with the GNU C Library; if not, write to the Free
  78409. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  78410. - Boston, MA 02110-1301, USA. */
  78411. -
  78412. -#ifndef _SYS_PTRACE_H
  78413. -#define _SYS_PTRACE_H 1
  78414. -
  78415. -#include <features.h>
  78416. -
  78417. -/* Kludge away careless namespace pollution from the kernel. */
  78418. -
  78419. -#undef PTRACE_GETREGS
  78420. -#undef PTRACE_SETREGS
  78421. -#undef PTRACE_GETFPREGS
  78422. -#undef PTRACE_SETFPREGS
  78423. -#undef PTRACE_GETFPREGSIZE
  78424. -
  78425. -
  78426. -__BEGIN_DECLS
  78427. -
  78428. -/* Type of the REQUEST argument to `ptrace.' */
  78429. -enum __ptrace_request
  78430. -{
  78431. - /* Indicate that the process making this request should be traced.
  78432. - All signals received by this process can be intercepted by its
  78433. - parent, and its parent can use the other `ptrace' requests. */
  78434. - PTRACE_TRACEME = 0,
  78435. -#define PT_TRACE_ME PTRACE_TRACEME
  78436. -
  78437. - /* Return the word in the process's text space at address ADDR. */
  78438. - PTRACE_PEEKTEXT = 1,
  78439. -#define PT_READ_I PTRACE_PEEKTEXT
  78440. -
  78441. - /* Return the word in the process's data space at address ADDR. */
  78442. - PTRACE_PEEKDATA = 2,
  78443. -#define PT_READ_D PTRACE_PEEKDATA
  78444. -
  78445. - /* Return the word in the process's user area at offset ADDR. */
  78446. - PTRACE_PEEKUSER = 3,
  78447. -#define PT_READ_U PTRACE_PEEKUSER
  78448. -
  78449. - /* Write the word DATA into the process's text space at address ADDR. */
  78450. - PTRACE_POKETEXT = 4,
  78451. -#define PT_WRITE_I PTRACE_POKETEXT
  78452. -
  78453. - /* Write the word DATA into the process's data space at address ADDR. */
  78454. - PTRACE_POKEDATA = 5,
  78455. -#define PT_WRITE_D PTRACE_POKEDATA
  78456. -
  78457. - /* Write the word DATA into the process's user area at offset ADDR. */
  78458. - PTRACE_POKEUSER = 6,
  78459. -#define PT_WRITE_U PTRACE_POKEUSER
  78460. -
  78461. - /* Continue the process. */
  78462. - PTRACE_CONT = 7,
  78463. -#define PT_CONTINUE PTRACE_CONT
  78464. -
  78465. - /* Kill the process. */
  78466. - PTRACE_KILL = 8,
  78467. -#define PT_KILL PTRACE_KILL
  78468. -
  78469. - /* Single step the process.
  78470. - This is not supported on all machines. */
  78471. - PTRACE_SINGLESTEP = 9,
  78472. -#define PT_STEP PTRACE_SINGLESTEP
  78473. -
  78474. - /* Get all general purpose registers used by a processes.
  78475. - This is not supported on all machines. */
  78476. - PTRACE_GETREGS = 12,
  78477. -#define PT_GETREGS PTRACE_GETREGS
  78478. -
  78479. - /* Set all general purpose registers used by a processes.
  78480. - This is not supported on all machines. */
  78481. - PTRACE_SETREGS = 13,
  78482. -#define PT_SETREGS PTRACE_SETREGS
  78483. -
  78484. - /* Get all floating point registers used by a processes.
  78485. - This is not supported on all machines. */
  78486. - PTRACE_GETFPREGS = 14,
  78487. -#define PT_GETFPREGS PTRACE_GETFPREGS
  78488. -
  78489. - /* Set all floating point registers used by a processes.
  78490. - This is not supported on all machines. */
  78491. - PTRACE_SETFPREGS = 15,
  78492. -#define PT_SETFPREGS PTRACE_SETFPREGS
  78493. -
  78494. - /* Attach to a process that is already running. */
  78495. - PTRACE_ATTACH = 16,
  78496. -#define PT_ATTACH PTRACE_ATTACH
  78497. -
  78498. - /* Detach from a process attached to with PTRACE_ATTACH. */
  78499. - PTRACE_DETACH = 17,
  78500. -#define PT_DETACH PTRACE_DETACH
  78501. -
  78502. - /* Get size required for the buffer holding the floating point registers.
  78503. - This is not supported on all machines. */
  78504. - PTRACE_GETFPREGSIZE = 18,
  78505. -#define PT_GETFPREGSIZE PTRACE_GETFPREGSIZE
  78506. -
  78507. - /* Continue and stop at the next (return from) syscall. */
  78508. - PTRACE_SYSCALL = 24
  78509. -#define PT_SYSCALL PTRACE_SYSCALL
  78510. -};
  78511. -
  78512. -/* Options set using PTRACE_SETOPTIONS. */
  78513. -enum __ptrace_setoptions {
  78514. - PTRACE_O_TRACESYSGOOD = 0x00000001,
  78515. - PTRACE_O_TRACEFORK = 0x00000002,
  78516. - PTRACE_O_TRACEVFORK = 0x00000004,
  78517. - PTRACE_O_TRACECLONE = 0x00000008,
  78518. - PTRACE_O_TRACEEXEC = 0x00000010,
  78519. - PTRACE_O_TRACEVFORKDONE = 0x00000020,
  78520. - PTRACE_O_TRACEEXIT = 0x00000040,
  78521. - PTRACE_O_MASK = 0x0000007f
  78522. -};
  78523. -
  78524. -/* Wait extended result codes for the above trace options. */
  78525. -enum __ptrace_eventcodes {
  78526. - PTRACE_EVENT_FORK = 1,
  78527. - PTRACE_EVENT_VFORK = 2,
  78528. - PTRACE_EVENT_CLONE = 3,
  78529. - PTRACE_EVENT_EXEC = 4,
  78530. - PTRACE_EVENT_VFORK_DONE = 5,
  78531. - PTRACE_EVENT_EXIT = 6
  78532. -};
  78533. -
  78534. -/* Perform process tracing functions. REQUEST is one of the values
  78535. - above, and determines the action to be taken.
  78536. - For all requests except PTRACE_TRACEME, PID specifies the process to be
  78537. - traced.
  78538. -
  78539. - PID and the other arguments described above for the various requests should
  78540. - appear (those that are used for the particular request) as:
  78541. - pid_t PID, void *ADDR, int DATA, void *ADDR2
  78542. - after REQUEST. */
  78543. -extern long int ptrace (enum __ptrace_request __request, ...) __THROW;
  78544. -
  78545. -__END_DECLS
  78546. -
  78547. -#endif /* _SYS_PTRACE_H */
  78548. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/ucontext.h uClibc-git/libc/sysdeps/linux/xtensa/sys/ucontext.h
  78549. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/ucontext.h 2012-05-15 09:20:09.000000000 +0200
  78550. +++ uClibc-git/libc/sysdeps/linux/xtensa/sys/ucontext.h 2014-06-02 17:40:34.726715926 +0200
  78551. @@ -12,9 +12,8 @@
  78552. Lesser General Public License for more details.
  78553. You should have received a copy of the GNU Lesser General Public
  78554. - License along with the GNU C Library; if not, write to the Free
  78555. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  78556. - Boston, MA 02110-1301, USA. */
  78557. + License along with the GNU C Library; if not, see
  78558. + <http://www.gnu.org/licenses/>. */
  78559. #ifndef _SYS_UCONTEXT_H
  78560. #define _SYS_UCONTEXT_H 1
  78561. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/user.h uClibc-git/libc/sysdeps/linux/xtensa/sys/user.h
  78562. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sys/user.h 1970-01-01 01:00:00.000000000 +0100
  78563. +++ uClibc-git/libc/sysdeps/linux/xtensa/sys/user.h 2014-06-02 17:40:34.726715926 +0200
  78564. @@ -0,0 +1,20 @@
  78565. +/*
  78566. + * include/asm-xtensa/user.h
  78567. + *
  78568. + * Xtensa Processor version.
  78569. + *
  78570. + * This file is subject to the terms and conditions of the GNU General Public
  78571. + * License. See the file "COPYING" in the main directory of this archive
  78572. + * for more details.
  78573. + *
  78574. + * Copyright (C) 2001 - 2005 Tensilica Inc.
  78575. + */
  78576. +
  78577. +#ifndef _XTENSA_USER_H
  78578. +#define _XTENSA_USER_H
  78579. +
  78580. +/* This file usually defines a 'struct user' structure. However, it it only
  78581. + * used for a.out file, which are not supported on Xtensa.
  78582. + */
  78583. +
  78584. +#endif /* _XTENSA_USER_H */
  78585. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/syscall.S uClibc-git/libc/sysdeps/linux/xtensa/syscall.S
  78586. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/syscall.S 2012-05-15 09:20:09.000000000 +0200
  78587. +++ uClibc-git/libc/sysdeps/linux/xtensa/syscall.S 2014-06-02 17:40:34.726715926 +0200
  78588. @@ -12,9 +12,8 @@
  78589. Lesser General Public License for more details.
  78590. You should have received a copy of the GNU Lesser General Public
  78591. - License along with the GNU C Library; if not, write to the Free
  78592. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  78593. - Boston, MA 02110-1301, USA. */
  78594. + License along with the GNU C Library; if not, see
  78595. + <http://www.gnu.org/licenses/>. */
  78596. #include "sysdep.h"
  78597. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sysdep.h uClibc-git/libc/sysdeps/linux/xtensa/sysdep.h
  78598. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  78599. +++ uClibc-git/libc/sysdeps/linux/xtensa/sysdep.h 2014-06-02 17:40:34.726715926 +0200
  78600. @@ -13,9 +13,10 @@
  78601. Lesser General Public License for more details.
  78602. You should have received a copy of the GNU Lesser General Public
  78603. - License along with the GNU C Library; if not, write to the Free
  78604. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  78605. - Boston, MA 02110-1301, USA. */
  78606. + License along with the GNU C Library; if not, see
  78607. + <http://www.gnu.org/licenses/>. */
  78608. +
  78609. +#include <sys/syscall.h>
  78610. #ifdef __ASSEMBLER__
  78611. @@ -38,6 +39,16 @@
  78612. entry sp, FRAMESIZE; \
  78613. CALL_MCOUNT
  78614. +#define HIDDEN_ENTRY(name) \
  78615. + ASM_GLOBAL_DIRECTIVE C_SYMBOL_NAME(name); \
  78616. + .hidden C_SYMBOL_NAME(name); \
  78617. + ASM_TYPE_DIRECTIVE (C_SYMBOL_NAME(name), @function); \
  78618. + .align ALIGNARG(2); \
  78619. + LITERAL_POSITION; \
  78620. + C_LABEL(name) \
  78621. + entry sp, FRAMESIZE; \
  78622. + CALL_MCOUNT
  78623. +
  78624. #undef END
  78625. #define END(name) ASM_SIZE_DIRECTIVE(name)
  78626. @@ -112,6 +123,7 @@
  78627. #define PSEUDO_END_ERRVAL(name) \
  78628. END (name)
  78629. +#undef ret_ERRVAL
  78630. #define ret_ERRVAL retw
  78631. #if defined RTLD_PRIVATE_ERRNO
  78632. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/vfork.S uClibc-git/libc/sysdeps/linux/xtensa/vfork.S
  78633. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/vfork.S 2012-05-15 09:20:09.000000000 +0200
  78634. +++ uClibc-git/libc/sysdeps/linux/xtensa/vfork.S 2014-06-02 17:40:34.726715926 +0200
  78635. @@ -12,9 +12,8 @@
  78636. Lesser General Public License for more details.
  78637. You should have received a copy of the GNU Lesser General Public
  78638. - License along with the GNU C Library; if not, write to the Free
  78639. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  78640. - Boston, MA 02110-1301, USA. */
  78641. + License along with the GNU C Library; if not, see
  78642. + <http://www.gnu.org/licenses/>. */
  78643. #include "sysdep.h"
  78644. #include <sys/syscall.h>
  78645. @@ -49,7 +48,7 @@
  78646. /* pid_t vfork(void);
  78647. Implemented as __clone_syscall(CLONE_VFORK | CLONE_VM | SIGCHLD, 0) */
  78648. -ENTRY (__vfork)
  78649. +HIDDEN_ENTRY (__vfork)
  78650. movi a6, .Ljumptable
  78651. extui a2, a0, 30, 2 /* call-size: call4/8/12 = 1/2/3 */
  78652. @@ -165,6 +164,5 @@
  78653. .Lpseudo_end:
  78654. retw
  78655. -libc_hidden_def (__vfork)
  78656. -
  78657. weak_alias (__vfork, vfork)
  78658. +libc_hidden_def(vfork)
  78659. diff -Nur uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/windowspill.S uClibc-git/libc/sysdeps/linux/xtensa/windowspill.S
  78660. --- uClibc-0.9.33.2/libc/sysdeps/linux/xtensa/windowspill.S 2012-05-15 09:20:09.000000000 +0200
  78661. +++ uClibc-git/libc/sysdeps/linux/xtensa/windowspill.S 2014-06-02 17:40:34.726715926 +0200
  78662. @@ -13,9 +13,8 @@
  78663. Lesser General Public License for more details.
  78664. You should have received a copy of the GNU Lesser General Public
  78665. - License along with the GNU C Library; if not, write to the Free
  78666. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  78667. - Boston, MA 02110-1301, USA. */
  78668. + License along with the GNU C Library; if not, see
  78669. + <http://www.gnu.org/licenses/>. */
  78670. #include <bits/xtensa-config.h>
  78671. diff -Nur uClibc-0.9.33.2/libc/termios/cfmakeraw.c uClibc-git/libc/termios/cfmakeraw.c
  78672. --- uClibc-0.9.33.2/libc/termios/cfmakeraw.c 2012-05-15 09:20:09.000000000 +0200
  78673. +++ uClibc-git/libc/termios/cfmakeraw.c 2014-06-02 17:40:34.726715926 +0200
  78674. @@ -12,9 +12,8 @@
  78675. Lesser General Public License for more details.
  78676. You should have received a copy of the GNU Lesser General Public
  78677. - License along with the GNU C Library; if not, write to the Free
  78678. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78679. - 02111-1307 USA. */
  78680. + License along with the GNU C Library; if not, see
  78681. + <http://www.gnu.org/licenses/>. */
  78682. #include <termios.h>
  78683. diff -Nur uClibc-0.9.33.2/libc/termios/cfsetspeed.c uClibc-git/libc/termios/cfsetspeed.c
  78684. --- uClibc-0.9.33.2/libc/termios/cfsetspeed.c 2012-05-15 09:20:09.000000000 +0200
  78685. +++ uClibc-git/libc/termios/cfsetspeed.c 2014-06-02 17:40:34.726715926 +0200
  78686. @@ -12,9 +12,8 @@
  78687. Lesser General Public License for more details.
  78688. You should have received a copy of the GNU Lesser General Public
  78689. - License along with the GNU C Library; if not, write to the Free
  78690. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78691. - 02111-1307 USA. */
  78692. + License along with the GNU C Library; if not, see
  78693. + <http://www.gnu.org/licenses/>. */
  78694. #include <termios.h>
  78695. #include <errno.h>
  78696. diff -Nur uClibc-0.9.33.2/libc/termios/isatty.c uClibc-git/libc/termios/isatty.c
  78697. --- uClibc-0.9.33.2/libc/termios/isatty.c 2012-05-15 09:20:09.000000000 +0200
  78698. +++ uClibc-git/libc/termios/isatty.c 2014-06-02 17:40:34.726715926 +0200
  78699. @@ -12,9 +12,8 @@
  78700. Lesser General Public License for more details.
  78701. You should have received a copy of the GNU Lesser General Public
  78702. - License along with the GNU C Library; if not, write to the Free
  78703. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78704. - 02111-1307 USA. */
  78705. + License along with the GNU C Library; if not, see
  78706. + <http://www.gnu.org/licenses/>. */
  78707. #include <unistd.h>
  78708. #include <termios.h>
  78709. diff -Nur uClibc-0.9.33.2/libc/termios/kernel_termios.h uClibc-git/libc/termios/kernel_termios.h
  78710. --- uClibc-0.9.33.2/libc/termios/kernel_termios.h 2012-05-15 09:20:09.000000000 +0200
  78711. +++ uClibc-git/libc/termios/kernel_termios.h 2014-06-02 17:40:34.726715926 +0200
  78712. @@ -12,9 +12,8 @@
  78713. Lesser General Public License for more details.
  78714. You should have received a copy of the GNU Lesser General Public
  78715. - License along with the GNU C Library; if not, write to the Free
  78716. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78717. - 02111-1307 USA. */
  78718. + License along with the GNU C Library; if not, see
  78719. + <http://www.gnu.org/licenses/>. */
  78720. #ifndef _KERNEL_TERMIOS_H
  78721. #define _KERNEL_TERMIOS_H 1
  78722. diff -Nur uClibc-0.9.33.2/libc/termios/speed.c uClibc-git/libc/termios/speed.c
  78723. --- uClibc-0.9.33.2/libc/termios/speed.c 2012-05-15 09:20:09.000000000 +0200
  78724. +++ uClibc-git/libc/termios/speed.c 2014-06-02 17:40:34.726715926 +0200
  78725. @@ -14,9 +14,8 @@
  78726. Lesser General Public License for more details.
  78727. You should have received a copy of the GNU Lesser General Public
  78728. - License along with the GNU C Library; if not, write to the Free
  78729. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78730. - 02111-1307 USA. */
  78731. + License along with the GNU C Library; if not, see
  78732. + <http://www.gnu.org/licenses/>. */
  78733. #include <stddef.h>
  78734. #include <errno.h>
  78735. diff -Nur uClibc-0.9.33.2/libc/termios/tcdrain.c uClibc-git/libc/termios/tcdrain.c
  78736. --- uClibc-0.9.33.2/libc/termios/tcdrain.c 2012-05-15 09:20:09.000000000 +0200
  78737. +++ uClibc-git/libc/termios/tcdrain.c 2014-06-02 17:40:34.726715926 +0200
  78738. @@ -12,9 +12,8 @@
  78739. Lesser General Public License for more details.
  78740. You should have received a copy of the GNU Lesser General Public
  78741. - License along with the GNU C Library; if not, write to the Free
  78742. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78743. - 02111-1307 USA. */
  78744. + License along with the GNU C Library; if not, see
  78745. + <http://www.gnu.org/licenses/>. */
  78746. #include <errno.h>
  78747. #include <termios.h>
  78748. diff -Nur uClibc-0.9.33.2/libc/termios/tcflow.c uClibc-git/libc/termios/tcflow.c
  78749. --- uClibc-0.9.33.2/libc/termios/tcflow.c 2012-05-15 09:20:09.000000000 +0200
  78750. +++ uClibc-git/libc/termios/tcflow.c 2014-06-02 17:40:34.726715926 +0200
  78751. @@ -13,9 +13,8 @@
  78752. Lesser General Public License for more details.
  78753. You should have received a copy of the GNU Lesser General Public
  78754. - License along with the GNU C Library; if not, write to the Free
  78755. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78756. - 02111-1307 USA. */
  78757. + License along with the GNU C Library; if not, see
  78758. + <http://www.gnu.org/licenses/>. */
  78759. #include <errno.h>
  78760. #include <termios.h>
  78761. diff -Nur uClibc-0.9.33.2/libc/termios/tcflush.c uClibc-git/libc/termios/tcflush.c
  78762. --- uClibc-0.9.33.2/libc/termios/tcflush.c 2012-05-15 09:20:09.000000000 +0200
  78763. +++ uClibc-git/libc/termios/tcflush.c 2014-06-02 17:40:34.726715926 +0200
  78764. @@ -13,9 +13,8 @@
  78765. Lesser General Public License for more details.
  78766. You should have received a copy of the GNU Lesser General Public
  78767. - License along with the GNU C Library; if not, write to the Free
  78768. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78769. - 02111-1307 USA. */
  78770. + License along with the GNU C Library; if not, see
  78771. + <http://www.gnu.org/licenses/>. */
  78772. #include <errno.h>
  78773. #include <termios.h>
  78774. diff -Nur uClibc-0.9.33.2/libc/termios/tcgetattr.c uClibc-git/libc/termios/tcgetattr.c
  78775. --- uClibc-0.9.33.2/libc/termios/tcgetattr.c 2012-05-15 09:20:09.000000000 +0200
  78776. +++ uClibc-git/libc/termios/tcgetattr.c 2014-06-02 17:40:34.726715926 +0200
  78777. @@ -12,9 +12,8 @@
  78778. Lesser General Public License for more details.
  78779. You should have received a copy of the GNU Lesser General Public
  78780. - License along with the GNU C Library; if not, write to the Free
  78781. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78782. - 02111-1307 USA. */
  78783. + License along with the GNU C Library; if not, see
  78784. + <http://www.gnu.org/licenses/>. */
  78785. #include <features.h>
  78786. #include <string.h>
  78787. diff -Nur uClibc-0.9.33.2/libc/termios/tcgetpgrp.c uClibc-git/libc/termios/tcgetpgrp.c
  78788. --- uClibc-0.9.33.2/libc/termios/tcgetpgrp.c 2012-05-15 09:20:09.000000000 +0200
  78789. +++ uClibc-git/libc/termios/tcgetpgrp.c 2014-06-02 17:40:34.726715926 +0200
  78790. @@ -12,9 +12,8 @@
  78791. Lesser General Public License for more details.
  78792. You should have received a copy of the GNU Lesser General Public
  78793. - License along with the GNU C Library; if not, write to the Free
  78794. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78795. - 02111-1307 USA. */
  78796. + License along with the GNU C Library; if not, see
  78797. + <http://www.gnu.org/licenses/>. */
  78798. #include <sys/ioctl.h>
  78799. #include <errno.h>
  78800. diff -Nur uClibc-0.9.33.2/libc/termios/tcgetsid.c uClibc-git/libc/termios/tcgetsid.c
  78801. --- uClibc-0.9.33.2/libc/termios/tcgetsid.c 2012-05-15 09:20:09.000000000 +0200
  78802. +++ uClibc-git/libc/termios/tcgetsid.c 2014-06-02 17:40:34.726715926 +0200
  78803. @@ -12,9 +12,8 @@
  78804. Lesser General Public License for more details.
  78805. You should have received a copy of the GNU Lesser General Public
  78806. - License along with the GNU C Library; if not, write to the Free
  78807. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78808. - 02111-1307 USA. */
  78809. + License along with the GNU C Library; if not, see
  78810. + <http://www.gnu.org/licenses/>. */
  78811. #include <errno.h>
  78812. #include <termios.h>
  78813. diff -Nur uClibc-0.9.33.2/libc/termios/tcsendbrk.c uClibc-git/libc/termios/tcsendbrk.c
  78814. --- uClibc-0.9.33.2/libc/termios/tcsendbrk.c 2012-05-15 09:20:09.000000000 +0200
  78815. +++ uClibc-git/libc/termios/tcsendbrk.c 2014-06-02 17:40:34.726715926 +0200
  78816. @@ -13,9 +13,8 @@
  78817. Lesser General Public License for more details.
  78818. You should have received a copy of the GNU Lesser General Public
  78819. - License along with the GNU C Library; if not, write to the Free
  78820. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78821. - 02111-1307 USA. */
  78822. + License along with the GNU C Library; if not, see
  78823. + <http://www.gnu.org/licenses/>. */
  78824. #include <errno.h>
  78825. #include <stddef.h>
  78826. diff -Nur uClibc-0.9.33.2/libc/termios/tcsetattr.c uClibc-git/libc/termios/tcsetattr.c
  78827. --- uClibc-0.9.33.2/libc/termios/tcsetattr.c 2012-05-15 09:20:09.000000000 +0200
  78828. +++ uClibc-git/libc/termios/tcsetattr.c 2014-06-02 17:40:34.726715926 +0200
  78829. @@ -12,9 +12,8 @@
  78830. Lesser General Public License for more details.
  78831. You should have received a copy of the GNU Lesser General Public
  78832. - License along with the GNU C Library; if not, write to the Free
  78833. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78834. - 02111-1307 USA. */
  78835. + License along with the GNU C Library; if not, see
  78836. + <http://www.gnu.org/licenses/>. */
  78837. #include <errno.h>
  78838. #include <string.h>
  78839. diff -Nur uClibc-0.9.33.2/libc/termios/tcsetpgrp.c uClibc-git/libc/termios/tcsetpgrp.c
  78840. --- uClibc-0.9.33.2/libc/termios/tcsetpgrp.c 2012-05-15 09:20:09.000000000 +0200
  78841. +++ uClibc-git/libc/termios/tcsetpgrp.c 2014-06-02 17:40:34.726715926 +0200
  78842. @@ -12,9 +12,8 @@
  78843. Lesser General Public License for more details.
  78844. You should have received a copy of the GNU Lesser General Public
  78845. - License along with the GNU C Library; if not, write to the Free
  78846. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78847. - 02111-1307 USA. */
  78848. + License along with the GNU C Library; if not, see
  78849. + <http://www.gnu.org/licenses/>. */
  78850. #include <sys/types.h>
  78851. #include <sys/ioctl.h>
  78852. diff -Nur uClibc-0.9.33.2/libc/unistd/confstr.c uClibc-git/libc/unistd/confstr.c
  78853. --- uClibc-0.9.33.2/libc/unistd/confstr.c 2012-05-15 09:20:09.000000000 +0200
  78854. +++ uClibc-git/libc/unistd/confstr.c 2014-06-02 17:40:34.726715926 +0200
  78855. @@ -13,9 +13,8 @@
  78856. Lesser General Public License for more details.
  78857. You should have received a copy of the GNU Lesser General Public
  78858. - License along with the GNU C Library; if not, write to the Free
  78859. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  78860. - 02111-1307 USA. */
  78861. + License along with the GNU C Library; if not, see
  78862. + <http://www.gnu.org/licenses/>. */
  78863. #include <stddef.h>
  78864. #include <errno.h>
  78865. diff -Nur uClibc-0.9.33.2/libc/unistd/daemon.c uClibc-git/libc/unistd/daemon.c
  78866. --- uClibc-0.9.33.2/libc/unistd/daemon.c 2012-05-15 09:20:09.000000000 +0200
  78867. +++ uClibc-git/libc/unistd/daemon.c 2014-06-02 17:40:34.726715926 +0200
  78868. @@ -118,7 +118,7 @@
  78869. {
  78870. struct STAT st;
  78871. - if ((fd = open_not_cancel(_PATH_DEVNULL, O_RDWR, 0)) != -1
  78872. + if ((fd = open_not_cancel_2(_PATH_DEVNULL, O_RDWR)) != -1
  78873. && (__builtin_expect (FSTAT (fd, &st), 0) == 0))
  78874. {
  78875. if (__builtin_expect (S_ISCHR (st.st_mode), 1) != 0) {
  78876. diff -Nur uClibc-0.9.33.2/libc/unistd/exec.c uClibc-git/libc/unistd/exec.c
  78877. --- uClibc-0.9.33.2/libc/unistd/exec.c 2012-05-15 09:20:09.000000000 +0200
  78878. +++ uClibc-git/libc/unistd/exec.c 2014-06-02 17:40:34.726715926 +0200
  78879. @@ -32,6 +32,8 @@
  78880. /**********************************************************************/
  78881. #define EXEC_FUNC_COMMON 0
  78882. #define EXEC_FUNC_EXECVP 1
  78883. +#define EXEC_FUNC_EXECVPE 2
  78884. +
  78885. #if defined(__ARCH_USE_MMU__)
  78886. /* We have an MMU, so use alloca() to grab space for buffers and arg lists. */
  78887. @@ -58,6 +60,7 @@
  78888. * execle(a) -> execve(-)
  78889. * execv(-) -> execve(-)
  78890. * execvp(a) -> execve(-)
  78891. + * execvpe(a) -> execve(-)
  78892. */
  78893. # define EXEC_ALLOC_SIZE(VAR) /* nothing to do */
  78894. @@ -68,7 +71,7 @@
  78895. # ifdef L___exec_alloc
  78896. -void attribute_hidden *__exec_alloc(size_t size, int func)
  78897. +void *__exec_alloc(size_t size, int func)
  78898. {
  78899. static void *common_cache, *execvp_cache;
  78900. static size_t common_size, execvp_size;
  78901. @@ -135,7 +138,7 @@
  78902. /**********************************************************************/
  78903. #ifdef L_execv
  78904. -int execv(__const char *path, char *__const argv[])
  78905. +int execv(const char *path, char *const argv[])
  78906. {
  78907. return execve(path, argv, __environ);
  78908. }
  78909. @@ -219,15 +222,18 @@
  78910. #endif
  78911. /**********************************************************************/
  78912. -#ifdef L_execvp
  78913. +#if defined (L_execvp) || defined(L_execvpe)
  78914. /* Use a default path that matches glibc behavior, since SUSv3 says
  78915. * this is implementation-defined. The default is current working dir,
  78916. * /bin, and then /usr/bin. */
  78917. static const char default_path[] = ":/bin:/usr/bin";
  78918. -
  78919. +#if defined (L_execvp)
  78920. int execvp(const char *path, char *const argv[])
  78921. +#elif defined (L_execvpe)
  78922. +int execvpe(const char *path, char *const argv[], char *const envp[])
  78923. +#endif
  78924. {
  78925. char *buf = NULL;
  78926. char *p;
  78927. @@ -245,7 +251,11 @@
  78928. }
  78929. if (strchr(path, '/')) {
  78930. +#if defined (L_execvp)
  78931. execve(path, argv, __environ);
  78932. +#elif defined (L_execvpe)
  78933. + execve(path, argv, envp);
  78934. +#endif
  78935. if (errno == ENOEXEC) {
  78936. char **nargv;
  78937. EXEC_ALLOC_SIZE(size2) /* Do NOT add a semicolon! */
  78938. @@ -254,11 +264,19 @@
  78939. /* Need the dimension - 1. We omit counting the trailing
  78940. * NULL but we actually omit the first entry. */
  78941. for (n=0 ; argv[n] ; n++) {}
  78942. +#if defined (L_execvp)
  78943. nargv = (char **) EXEC_ALLOC((n+2) * sizeof(char *), size2, EXEC_FUNC_EXECVP);
  78944. +#elif defined (L_execvpe)
  78945. + nargv = (char **) EXEC_ALLOC((n+2) * sizeof(char *), size2, EXEC_FUNC_EXECVPE);
  78946. +#endif
  78947. nargv[0] = argv[0];
  78948. nargv[1] = (char *)path;
  78949. memcpy(nargv+2, argv+1, n*sizeof(char *));
  78950. +#if defined (L_execvp)
  78951. execve("/bin/sh", nargv, __environ);
  78952. +#elif defined (L_execvpe)
  78953. + execve("/bin/sh", nargv, envp);
  78954. +#endif
  78955. EXEC_FREE(nargv, size2);
  78956. }
  78957. } else {
  78958. @@ -277,8 +295,11 @@
  78959. return -1;
  78960. }
  78961. len = (FILENAME_MAX - 1) - plen;
  78962. -
  78963. +#if defined (L_execvp)
  78964. buf = EXEC_ALLOC(FILENAME_MAX, size, EXEC_FUNC_EXECVP);
  78965. +#elif defined (L_execvpe)
  78966. + buf = EXEC_ALLOC(FILENAME_MAX, size, EXEC_FUNC_EXECVPE);
  78967. +#endif
  78968. {
  78969. int seen_small = 0;
  78970. s0 = buf + len;
  78971. @@ -300,8 +321,11 @@
  78972. s[plen-1] = '/';
  78973. }
  78974. +#if defined (L_execvp)
  78975. execve(s, argv, __environ);
  78976. -
  78977. +#elif defined (L_execvpe)
  78978. + execve(s, argv, envp);
  78979. +#endif
  78980. seen_small = 1;
  78981. if (errno == ENOEXEC) {
  78982. @@ -325,7 +349,11 @@
  78983. return -1;
  78984. }
  78985. +#if defined (L_execvp)
  78986. libc_hidden_def(execvp)
  78987. -
  78988. +#elif defined (L_execvpe)
  78989. +libc_hidden_def(execvpe)
  78990. #endif
  78991. +
  78992. +#endif /* #if defined (L_execvp) || defined(L_execvpe) */
  78993. /**********************************************************************/
  78994. diff -Nur uClibc-0.9.33.2/libc/unistd/execvpe.c uClibc-git/libc/unistd/execvpe.c
  78995. --- uClibc-0.9.33.2/libc/unistd/execvpe.c 1970-01-01 01:00:00.000000000 +0100
  78996. +++ uClibc-git/libc/unistd/execvpe.c 2014-06-02 17:40:34.730715948 +0200
  78997. @@ -0,0 +1,7 @@
  78998. +/* Copyright (C) 2011-2013 Hennning Heinold <heinold@inf.fu-berlin.de>
  78999. + *
  79000. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  79001. + */
  79002. +
  79003. +#define L_execvpe
  79004. +#include "exec.c"
  79005. diff -Nur uClibc-0.9.33.2/libc/unistd/fpathconf.c uClibc-git/libc/unistd/fpathconf.c
  79006. --- uClibc-0.9.33.2/libc/unistd/fpathconf.c 2012-05-15 09:20:09.000000000 +0200
  79007. +++ uClibc-git/libc/unistd/fpathconf.c 2014-06-02 17:40:34.730715948 +0200
  79008. @@ -13,9 +13,8 @@
  79009. Lesser General Public License for more details.
  79010. You should have received a copy of the GNU Lesser General Public
  79011. - License along with the GNU C Library; if not, write to the Free
  79012. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79013. - 02111-1307 USA. */
  79014. + License along with the GNU C Library; if not, see
  79015. + <http://www.gnu.org/licenses/>. */
  79016. #include <errno.h>
  79017. #include <unistd.h>
  79018. diff -Nur uClibc-0.9.33.2/libc/unistd/getopt.c uClibc-git/libc/unistd/getopt.c
  79019. --- uClibc-0.9.33.2/libc/unistd/getopt.c 2012-05-15 09:20:09.000000000 +0200
  79020. +++ uClibc-git/libc/unistd/getopt.c 2014-06-02 17:40:34.730715948 +0200
  79021. @@ -17,9 +17,8 @@
  79022. Lesser General Public License for more details.
  79023. You should have received a copy of the GNU Lesser General Public
  79024. - License along with the GNU C Library; if not, write to the Free
  79025. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79026. - 02111-1307 USA. */
  79027. + License along with the GNU C Library; if not, see
  79028. + <http://www.gnu.org/licenses/>. */
  79029. /*
  79030. * Modified for uClibc by Manuel Novoa III on 1/5/01.
  79031. @@ -36,9 +35,6 @@
  79032. # include <config.h>
  79033. #endif
  79034. -#define __FORCE_GLIBC
  79035. -#include <features.h>
  79036. -
  79037. #include <stdio.h>
  79038. /* Comment out all this code if we are using the GNU C Library, and are not
  79039. @@ -62,7 +58,7 @@
  79040. /* This needs to come after some library #include
  79041. to get __GNU_LIBRARY__ defined. */
  79042. -#ifdef __GNU_LIBRARY__
  79043. +#if defined __GNU_LIBRARY__ || defined __UCLIBC__
  79044. /* Don't include stdlib.h for non-GNU C libraries because some of them
  79045. contain conflicting prototypes for getopt. */
  79046. # include <stdlib.h>
  79047. @@ -75,22 +71,12 @@
  79048. # include <unixlib.h>
  79049. #endif
  79050. -#if !defined __UCLIBC__ && !defined __UCLIBC_HAS_GETTEXT_AWARENESS__
  79051. #ifdef _LIBC
  79052. # include <libintl.h>
  79053. #else
  79054. # include "gettext.h"
  79055. # define _(msgid) gettext (msgid)
  79056. #endif
  79057. -#else
  79058. -#ifdef __UCLIBC_MJN3_ONLY__
  79059. -#warning TODO: Enable gettext awareness.
  79060. -#endif /* __UCLIBC_MJN3_ONLY__ */
  79061. -
  79062. -#undef _
  79063. -#define _(X) X
  79064. -
  79065. -#endif
  79066. /* Treat '-W foo' the same as the long option '--foo',
  79067. * disabled for the moment since it costs about 2k... */
  79068. @@ -161,7 +147,7 @@
  79069. static struct _getopt_data getopt_data;
  79070. -#ifndef __GNU_LIBRARY__
  79071. +#if !defined __GNU_LIBRARY__ && !defined __UCLIBC__
  79072. /* Avoid depending on library functions or files
  79073. whose names are inconsistent. */
  79074. @@ -235,7 +221,7 @@
  79075. d->__nonoption_flags_len = d->__nonoption_flags_max_len = 0;
  79076. else
  79077. {
  79078. - memset (__mempcpy (new_str, __getopt_nonoption_flags,
  79079. + memset (mempcpy (new_str, __getopt_nonoption_flags,
  79080. d->__nonoption_flags_max_len),
  79081. '\0', top + 1 - d->__nonoption_flags_max_len);
  79082. d->__nonoption_flags_max_len = top + 1;
  79083. @@ -341,7 +327,7 @@
  79084. if (__getopt_nonoption_flags == NULL)
  79085. d->__nonoption_flags_max_len = -1;
  79086. else
  79087. - memset (__mempcpy (__getopt_nonoption_flags, orig_str, len),
  79088. + memset (mempcpy (__getopt_nonoption_flags, orig_str, len),
  79089. '\0', d->__nonoption_flags_max_len - len);
  79090. }
  79091. }
  79092. diff -Nur uClibc-0.9.33.2/libc/unistd/getopt_int.h uClibc-git/libc/unistd/getopt_int.h
  79093. --- uClibc-0.9.33.2/libc/unistd/getopt_int.h 2012-05-15 09:20:09.000000000 +0200
  79094. +++ uClibc-git/libc/unistd/getopt_int.h 2014-06-02 17:40:34.730715948 +0200
  79095. @@ -14,9 +14,8 @@
  79096. Lesser General Public License for more details.
  79097. You should have received a copy of the GNU Lesser General Public
  79098. - License along with the GNU C Library; if not, write to the Free
  79099. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79100. - 02111-1307 USA. */
  79101. + License along with the GNU C Library; if not, see
  79102. + <http://www.gnu.org/licenses/>. */
  79103. #ifndef _GETOPT_INT_H
  79104. #define _GETOPT_INT_H 1
  79105. diff -Nur uClibc-0.9.33.2/libc/unistd/getopt-susv3.c uClibc-git/libc/unistd/getopt-susv3.c
  79106. --- uClibc-0.9.33.2/libc/unistd/getopt-susv3.c 2012-05-15 09:20:09.000000000 +0200
  79107. +++ uClibc-git/libc/unistd/getopt-susv3.c 2014-06-02 17:40:34.730715948 +0200
  79108. @@ -22,14 +22,7 @@
  79109. #include <string.h>
  79110. #include <stdio.h>
  79111. #include <getopt.h>
  79112. -
  79113. -
  79114. -#ifdef __UCLIBC_MJN3_ONLY__
  79115. -#warning TODO: Enable gettext awareness.
  79116. -#endif /* __UCLIBC_MJN3_ONLY__ */
  79117. -
  79118. -#undef _
  79119. -#define _(X) X
  79120. +#include <libintl.h>
  79121. #ifdef __BCC__
  79122. static const char missing[] = "option requires an argument";
  79123. diff -Nur uClibc-0.9.33.2/libc/unistd/getpass.c uClibc-git/libc/unistd/getpass.c
  79124. --- uClibc-0.9.33.2/libc/unistd/getpass.c 2012-05-15 09:20:09.000000000 +0200
  79125. +++ uClibc-git/libc/unistd/getpass.c 2014-06-02 17:40:34.730715948 +0200
  79126. @@ -12,9 +12,8 @@
  79127. Lesser General Public License for more details.
  79128. You should have received a copy of the GNU Lesser General Public
  79129. - License along with the GNU C Library; if not, write to the Free
  79130. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79131. - 02111-1307 USA. */
  79132. + License along with the GNU C Library; if not, see
  79133. + <http://www.gnu.org/licenses/>. */
  79134. #include <stdio.h>
  79135. #include <string.h>
  79136. diff -Nur uClibc-0.9.33.2/libc/unistd/getsubopt.c uClibc-git/libc/unistd/getsubopt.c
  79137. --- uClibc-0.9.33.2/libc/unistd/getsubopt.c 2012-05-15 09:20:09.000000000 +0200
  79138. +++ uClibc-git/libc/unistd/getsubopt.c 2014-06-02 17:40:34.730715948 +0200
  79139. @@ -14,9 +14,8 @@
  79140. Lesser General Public License for more details.
  79141. You should have received a copy of the GNU Lesser General Public
  79142. - License along with the GNU C Library; if not, write to the Free
  79143. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79144. - 02111-1307 USA. */
  79145. + License along with the GNU C Library; if not, see
  79146. + <http://www.gnu.org/licenses/>. */
  79147. #include <stdlib.h>
  79148. #include <string.h>
  79149. diff -Nur uClibc-0.9.33.2/libc/unistd/Makefile.in uClibc-git/libc/unistd/Makefile.in
  79150. --- uClibc-0.9.33.2/libc/unistd/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  79151. +++ uClibc-git/libc/unistd/Makefile.in 2014-06-02 17:40:34.726715926 +0200
  79152. @@ -10,39 +10,21 @@
  79153. UNISTD_DIR := $(top_srcdir)libc/unistd
  79154. UNISTD_OUT := $(top_builddir)libc/unistd
  79155. -CSRC := $(notdir $(wildcard $(UNISTD_DIR)/*.c))
  79156. -# multi source
  79157. -CSRC := $(filter-out exec.c,$(CSRC))
  79158. -
  79159. -ifeq ($(ARCH_USE_MMU),y)
  79160. -CSRC := $(filter-out __exec_alloc.c,$(CSRC))
  79161. -endif
  79162. -
  79163. -ifeq ($(UCLIBC_HAS_GNU_GETOPT),y)
  79164. -CSRC := $(filter-out getopt-susv3.c getopt_long-simple.c,$(CSRC))
  79165. -else
  79166. -CSRC := $(filter-out getopt.c,$(CSRC))
  79167. -ifneq ($(UCLIBC_HAS_GETOPT_LONG),y)
  79168. -CSRC := $(filter-out getopt_long-simple.c,$(CSRC))
  79169. -endif
  79170. -endif
  79171. -
  79172. -ifeq ($(UCLIBC_HAS_GNU_GETSUBOPT),y)
  79173. -CSRC := $(filter-out getsubopt-susv3.c,$(CSRC))
  79174. -else
  79175. -CSRC := $(filter-out getsubopt.c,$(CSRC))
  79176. -endif
  79177. -
  79178. -ifneq ($(UCLIBC_SUSV3_LEGACY),y)
  79179. -CSRC := $(filter-out ualarm.c usleep.c,$(CSRC))
  79180. -endif
  79181. -
  79182. -ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  79183. -CSRC := $(filter-out sleep.c,$(CSRC))
  79184. -endif
  79185. +CSRC-y := $(notdir $(wildcard $(UNISTD_DIR)/*.c))
  79186. +OMIT-y := exec.c # multi source
  79187. +OMIT-$(ARCH_USE_MMU) += __exec_alloc.c
  79188. +OMIT-$(if $(UCLIBC_SUSV3_LEGACY),,y) += ualarm.c usleep.c
  79189. +#OMIT-$(UCLIBC_HAS_THREADS_NATIVE) += sleep.c
  79190. +
  79191. +# XXX: GNU_GETOPT comes with getopt_long unconditionally, which is wrong
  79192. +GO_LONG := $(if $(UCLIBC_HAS_GNU_GETOPT),getopt_long-simple.c)
  79193. +OMIT-y += $(if $(UCLIBC_HAS_GNU_GETOPT),getopt-susv3.c $(GO_LONG),getopt.c)
  79194. +OMIT-y += $(if $(UCLIBC_HAS_GNU_GETSUBOPT),getsubopt-susv3.c,getsubopt.c)
  79195. -UNISTD_SRC := $(patsubst %.c,$(UNISTD_DIR)/%.c,$(CSRC))
  79196. -UNISTD_OBJ := $(patsubst %.c,$(UNISTD_OUT)/%.o,$(CSRC))
  79197. +CSRC-y := $(filter-out $(OMIT-y),$(CSRC-y))
  79198. +
  79199. +UNISTD_SRC := $(patsubst %.c,$(UNISTD_DIR)/%.c,$(CSRC-y))
  79200. +UNISTD_OBJ := $(patsubst %.c,$(UNISTD_OUT)/%.o,$(CSRC-y))
  79201. libc-y += $(UNISTD_OBJ)
  79202. diff -Nur uClibc-0.9.33.2/libc/unistd/pathconf.c uClibc-git/libc/unistd/pathconf.c
  79203. --- uClibc-0.9.33.2/libc/unistd/pathconf.c 2012-05-15 09:20:09.000000000 +0200
  79204. +++ uClibc-git/libc/unistd/pathconf.c 2014-06-02 17:40:34.730715948 +0200
  79205. @@ -13,9 +13,8 @@
  79206. Lesser General Public License for more details.
  79207. You should have received a copy of the GNU Lesser General Public
  79208. - License along with the GNU C Library; if not, write to the Free
  79209. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79210. - 02111-1307 USA. */
  79211. + License along with the GNU C Library; if not, see
  79212. + <http://www.gnu.org/licenses/>. */
  79213. /* pathconf -- adjusted for busybox */
  79214. diff -Nur uClibc-0.9.33.2/libc/unistd/sleep.c uClibc-git/libc/unistd/sleep.c
  79215. --- uClibc-0.9.33.2/libc/unistd/sleep.c 2012-05-15 09:20:09.000000000 +0200
  79216. +++ uClibc-git/libc/unistd/sleep.c 2014-06-02 17:40:34.730715948 +0200
  79217. @@ -15,8 +15,7 @@
  79218. You should have received a copy of the GNU Library General Public
  79219. License along with the GNU C Library; see the file COPYING.LIB. If not,
  79220. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  79221. - Boston, MA 02111-1307, USA. */
  79222. + see <http://www.gnu.org/licenses/>. */
  79223. #include <errno.h>
  79224. #include <time.h>
  79225. @@ -99,6 +98,7 @@
  79226. /* This is not necessary but some buggy programs depend on this. */
  79227. if (seconds == 0) {
  79228. # ifdef CANCELLATION_P
  79229. + int cancelhandling;
  79230. CANCELLATION_P (THREAD_SELF);
  79231. # endif
  79232. return 0;
  79233. diff -Nur uClibc-0.9.33.2/libc/unistd/sysconf.c uClibc-git/libc/unistd/sysconf.c
  79234. --- uClibc-0.9.33.2/libc/unistd/sysconf.c 2012-05-15 09:20:09.000000000 +0200
  79235. +++ uClibc-git/libc/unistd/sysconf.c 2014-06-02 17:40:34.730715948 +0200
  79236. @@ -14,11 +14,11 @@
  79237. You should have received a copy of the GNU Library General Public
  79238. License along with the GNU C Library; see the file COPYING.LIB. If not,
  79239. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  79240. - Boston, MA 02111-1307, USA. */
  79241. + see <http://www.gnu.org/licenses/>. */
  79242. #define _XOPEN_SOURCE 500
  79243. #include <features.h>
  79244. +#include <ctype.h>
  79245. #include <errno.h>
  79246. #include <limits.h>
  79247. #include <grp.h>
  79248. @@ -981,20 +981,9 @@
  79249. #endif
  79250. case _SC_MONOTONIC_CLOCK:
  79251. -#ifdef __NR_clock_getres
  79252. - /* Check using the clock_getres system call. */
  79253. -# ifdef __UCLIBC_HAS_THREADS_NATIVE__
  79254. - {
  79255. - struct timespec ts;
  79256. - INTERNAL_SYSCALL_DECL (err);
  79257. - int r;
  79258. - r = INTERNAL_SYSCALL (clock_getres, err, 2, CLOCK_MONOTONIC, &ts);
  79259. - return INTERNAL_SYSCALL_ERROR_P (r, err) ? -1 : _POSIX_VERSION;
  79260. - }
  79261. -# elif defined __UCLIBC_HAS_REALTIME__
  79262. +#if defined __UCLIBC_HAS_REALTIME__ && defined __NR_clock_getres
  79263. if (clock_getres(CLOCK_MONOTONIC, NULL) >= 0)
  79264. return _POSIX_VERSION;
  79265. -# endif
  79266. #endif
  79267. RETURN_NEG_1;
  79268. diff -Nur uClibc-0.9.33.2/libcrypt/crypt.c uClibc-git/libcrypt/crypt.c
  79269. --- uClibc-0.9.33.2/libcrypt/crypt.c 2012-05-15 09:20:09.000000000 +0200
  79270. +++ uClibc-git/libcrypt/crypt.c 2014-06-02 17:40:34.742716014 +0200
  79271. @@ -5,7 +5,6 @@
  79272. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  79273. */
  79274. -#define __FORCE_GLIBC
  79275. #include <unistd.h>
  79276. #include <crypt.h>
  79277. #include "libcrypt.h"
  79278. diff -Nur uClibc-0.9.33.2/libcrypt/crypt_stub.c uClibc-git/libcrypt/crypt_stub.c
  79279. --- uClibc-0.9.33.2/libcrypt/crypt_stub.c 2012-05-15 09:20:09.000000000 +0200
  79280. +++ uClibc-git/libcrypt/crypt_stub.c 2014-06-02 17:40:34.742716014 +0200
  79281. @@ -5,7 +5,6 @@
  79282. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  79283. */
  79284. -#define __FORCE_GLIBC
  79285. #include <crypt.h>
  79286. #include <unistd.h>
  79287. #include "libcrypt.h"
  79288. diff -Nur uClibc-0.9.33.2/libcrypt/des.c uClibc-git/libcrypt/des.c
  79289. --- uClibc-0.9.33.2/libcrypt/des.c 2012-05-15 09:20:09.000000000 +0200
  79290. +++ uClibc-git/libcrypt/des.c 2014-06-02 17:40:34.742716014 +0200
  79291. @@ -56,7 +56,6 @@
  79292. * alignment).
  79293. */
  79294. -#define __FORCE_GLIBC
  79295. #include <sys/cdefs.h>
  79296. #include <sys/types.h>
  79297. #include <sys/param.h>
  79298. diff -Nur uClibc-0.9.33.2/libcrypt/sha256.c uClibc-git/libcrypt/sha256.c
  79299. --- uClibc-0.9.33.2/libcrypt/sha256.c 2012-05-15 09:20:09.000000000 +0200
  79300. +++ uClibc-git/libcrypt/sha256.c 2014-06-02 17:40:34.742716014 +0200
  79301. @@ -14,9 +14,8 @@
  79302. Lesser General Public License for more details.
  79303. You should have received a copy of the GNU Lesser General Public
  79304. - License along with the GNU C Library; if not, write to the Free
  79305. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79306. - 02111-1307 USA. */
  79307. + License along with the GNU C Library; if not, see
  79308. + <http://www.gnu.org/licenses/>. */
  79309. /* Written by Ulrich Drepper <drepper@redhat.com>, 2007. */
  79310. diff -Nur uClibc-0.9.33.2/libcrypt/sha256-crypt.c uClibc-git/libcrypt/sha256-crypt.c
  79311. --- uClibc-0.9.33.2/libcrypt/sha256-crypt.c 2012-05-15 09:20:09.000000000 +0200
  79312. +++ uClibc-git/libcrypt/sha256-crypt.c 2014-06-02 17:40:34.742716014 +0200
  79313. @@ -14,9 +14,8 @@
  79314. Lesser General Public License for more details.
  79315. You should have received a copy of the GNU Lesser General Public
  79316. - License along with the GNU C Library; if not, write to the Free
  79317. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79318. - 02111-1307 USA. */
  79319. + License along with the GNU C Library; if not, see
  79320. + <http://www.gnu.org/licenses/>. */
  79321. #include <assert.h>
  79322. #include <errno.h>
  79323. diff -Nur uClibc-0.9.33.2/libcrypt/sha256.h uClibc-git/libcrypt/sha256.h
  79324. --- uClibc-0.9.33.2/libcrypt/sha256.h 2012-05-15 09:20:09.000000000 +0200
  79325. +++ uClibc-git/libcrypt/sha256.h 2014-06-02 17:40:34.742716014 +0200
  79326. @@ -14,9 +14,8 @@
  79327. Lesser General Public License for more details.
  79328. You should have received a copy of the GNU Lesser General Public
  79329. - License along with the GNU C Library; if not, write to the Free
  79330. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79331. - 02111-1307 USA. */
  79332. + License along with the GNU C Library; if not, see
  79333. + <http://www.gnu.org/licenses/>. */
  79334. #ifndef _SHA256_H
  79335. #define _SHA256_H 1
  79336. diff -Nur uClibc-0.9.33.2/libcrypt/sha512.c uClibc-git/libcrypt/sha512.c
  79337. --- uClibc-0.9.33.2/libcrypt/sha512.c 2012-05-15 09:20:09.000000000 +0200
  79338. +++ uClibc-git/libcrypt/sha512.c 2014-06-02 17:40:34.742716014 +0200
  79339. @@ -14,9 +14,8 @@
  79340. Lesser General Public License for more details.
  79341. You should have received a copy of the GNU Lesser General Public
  79342. - License along with the GNU C Library; if not, write to the Free
  79343. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79344. - 02111-1307 USA. */
  79345. + License along with the GNU C Library; if not, see
  79346. + <http://www.gnu.org/licenses/>. */
  79347. /* Written by Ulrich Drepper <drepper@redhat.com>, 2007. */
  79348. diff -Nur uClibc-0.9.33.2/libcrypt/sha512-crypt.c uClibc-git/libcrypt/sha512-crypt.c
  79349. --- uClibc-0.9.33.2/libcrypt/sha512-crypt.c 2012-05-15 09:20:09.000000000 +0200
  79350. +++ uClibc-git/libcrypt/sha512-crypt.c 2014-06-02 17:40:34.742716014 +0200
  79351. @@ -14,9 +14,8 @@
  79352. Lesser General Public License for more details.
  79353. You should have received a copy of the GNU Lesser General Public
  79354. - License along with the GNU C Library; if not, write to the Free
  79355. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79356. - 02111-1307 USA. */
  79357. + License along with the GNU C Library; if not, see
  79358. + <http://www.gnu.org/licenses/>. */
  79359. #include <assert.h>
  79360. #include <errno.h>
  79361. diff -Nur uClibc-0.9.33.2/libcrypt/sha512.h uClibc-git/libcrypt/sha512.h
  79362. --- uClibc-0.9.33.2/libcrypt/sha512.h 2012-05-15 09:20:09.000000000 +0200
  79363. +++ uClibc-git/libcrypt/sha512.h 2014-06-02 17:40:34.742716014 +0200
  79364. @@ -14,9 +14,8 @@
  79365. Lesser General Public License for more details.
  79366. You should have received a copy of the GNU Lesser General Public
  79367. - License along with the GNU C Library; if not, write to the Free
  79368. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79369. - 02111-1307 USA. */
  79370. + License along with the GNU C Library; if not, see
  79371. + <http://www.gnu.org/licenses/>. */
  79372. #ifndef _SHA512_H
  79373. #define _SHA512_H 1
  79374. diff -Nur uClibc-0.9.33.2/libm/carg.c uClibc-git/libm/carg.c
  79375. --- uClibc-0.9.33.2/libm/carg.c 2012-05-15 09:20:09.000000000 +0200
  79376. +++ uClibc-git/libm/carg.c 2014-06-02 17:40:34.742716014 +0200
  79377. @@ -14,9 +14,8 @@
  79378. Lesser General Public License for more details.
  79379. You should have received a copy of the GNU Lesser General Public
  79380. - License along with the GNU C Library; if not, write to the Free
  79381. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79382. - 02111-1307 USA. */
  79383. + License along with the GNU C Library; if not, see
  79384. + <http://www.gnu.org/licenses/>. */
  79385. #include <complex.h>
  79386. #include <math.h>
  79387. diff -Nur uClibc-0.9.33.2/libm/e_acos.c uClibc-git/libm/e_acos.c
  79388. --- uClibc-0.9.33.2/libm/e_acos.c 2012-05-15 09:20:09.000000000 +0200
  79389. +++ uClibc-git/libm/e_acos.c 2014-06-02 17:40:34.742716014 +0200
  79390. @@ -52,7 +52,7 @@
  79391. qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */
  79392. qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
  79393. -double attribute_hidden __ieee754_acos(double x)
  79394. +double __ieee754_acos(double x)
  79395. {
  79396. double z,p,q,r,w,s,c,df;
  79397. int32_t hx,ix;
  79398. diff -Nur uClibc-0.9.33.2/libm/e_acosh.c uClibc-git/libm/e_acosh.c
  79399. --- uClibc-0.9.33.2/libm/e_acosh.c 2012-05-15 09:20:09.000000000 +0200
  79400. +++ uClibc-git/libm/e_acosh.c 2014-06-02 17:40:34.742716014 +0200
  79401. @@ -30,7 +30,7 @@
  79402. one = 1.0,
  79403. ln2 = 6.93147180559945286227e-01; /* 0x3FE62E42, 0xFEFA39EF */
  79404. -double attribute_hidden __ieee754_acosh(double x)
  79405. +double __ieee754_acosh(double x)
  79406. {
  79407. double t;
  79408. int32_t hx;
  79409. diff -Nur uClibc-0.9.33.2/libm/e_asin.c uClibc-git/libm/e_asin.c
  79410. --- uClibc-0.9.33.2/libm/e_asin.c 2012-05-15 09:20:09.000000000 +0200
  79411. +++ uClibc-git/libm/e_asin.c 2014-06-02 17:40:34.742716014 +0200
  79412. @@ -60,7 +60,7 @@
  79413. qS3 = -6.88283971605453293030e-01, /* 0xBFE6066C, 0x1B8D0159 */
  79414. qS4 = 7.70381505559019352791e-02; /* 0x3FB3B8C5, 0xB12E9282 */
  79415. -double attribute_hidden __ieee754_asin(double x)
  79416. +double __ieee754_asin(double x)
  79417. {
  79418. double t=0.0,w,p,q,c,r,s;
  79419. int32_t hx,ix;
  79420. diff -Nur uClibc-0.9.33.2/libm/e_atan2.c uClibc-git/libm/e_atan2.c
  79421. --- uClibc-0.9.33.2/libm/e_atan2.c 2012-05-15 09:20:09.000000000 +0200
  79422. +++ uClibc-git/libm/e_atan2.c 2014-06-02 17:40:34.742716014 +0200
  79423. @@ -47,7 +47,7 @@
  79424. pi = 3.1415926535897931160E+00, /* 0x400921FB, 0x54442D18 */
  79425. pi_lo = 1.2246467991473531772E-16; /* 0x3CA1A626, 0x33145C07 */
  79426. -double attribute_hidden __ieee754_atan2(double y, double x)
  79427. +double __ieee754_atan2(double y, double x)
  79428. {
  79429. double z;
  79430. int32_t k,m,hx,hy,ix,iy;
  79431. diff -Nur uClibc-0.9.33.2/libm/e_atanh.c uClibc-git/libm/e_atanh.c
  79432. --- uClibc-0.9.33.2/libm/e_atanh.c 2012-05-15 09:20:09.000000000 +0200
  79433. +++ uClibc-git/libm/e_atanh.c 2014-06-02 17:40:34.742716014 +0200
  79434. @@ -34,7 +34,7 @@
  79435. static const double zero = 0.0;
  79436. -double attribute_hidden __ieee754_atanh(double x)
  79437. +double __ieee754_atanh(double x)
  79438. {
  79439. double t;
  79440. int32_t hx,ix;
  79441. diff -Nur uClibc-0.9.33.2/libm/e_cosh.c uClibc-git/libm/e_cosh.c
  79442. --- uClibc-0.9.33.2/libm/e_cosh.c 2012-05-15 09:20:09.000000000 +0200
  79443. +++ uClibc-git/libm/e_cosh.c 2014-06-02 17:40:34.742716014 +0200
  79444. @@ -35,7 +35,7 @@
  79445. static const double one = 1.0, half=0.5, huge = 1.0e300;
  79446. -double attribute_hidden __ieee754_cosh(double x)
  79447. +double __ieee754_cosh(double x)
  79448. {
  79449. double t,w;
  79450. int32_t ix;
  79451. diff -Nur uClibc-0.9.33.2/libm/e_exp.c uClibc-git/libm/e_exp.c
  79452. --- uClibc-0.9.33.2/libm/e_exp.c 2012-05-15 09:20:09.000000000 +0200
  79453. +++ uClibc-git/libm/e_exp.c 2014-06-02 17:40:34.742716014 +0200
  79454. @@ -93,7 +93,7 @@
  79455. P4 = -1.65339022054652515390e-06, /* 0xBEBBBD41, 0xC5D26BF1 */
  79456. P5 = 4.13813679705723846039e-08; /* 0x3E663769, 0x72BEA4D0 */
  79457. -double attribute_hidden __ieee754_exp(double x) /* default IEEE double exp */
  79458. +double __ieee754_exp(double x) /* default IEEE double exp */
  79459. {
  79460. double y;
  79461. double hi = 0.0;
  79462. diff -Nur uClibc-0.9.33.2/libm/e_fmod.c uClibc-git/libm/e_fmod.c
  79463. --- uClibc-0.9.33.2/libm/e_fmod.c 2012-05-15 09:20:09.000000000 +0200
  79464. +++ uClibc-git/libm/e_fmod.c 2014-06-02 17:40:34.742716014 +0200
  79465. @@ -20,7 +20,7 @@
  79466. static const double one = 1.0, Zero[] = {0.0, -0.0,};
  79467. -double attribute_hidden __ieee754_fmod(double x, double y)
  79468. +double __ieee754_fmod(double x, double y)
  79469. {
  79470. int32_t n,hx,hy,hz,ix,iy,sx,i;
  79471. u_int32_t lx,ly,lz;
  79472. diff -Nur uClibc-0.9.33.2/libm/e_hypot.c uClibc-git/libm/e_hypot.c
  79473. --- uClibc-0.9.33.2/libm/e_hypot.c 2012-05-15 09:20:09.000000000 +0200
  79474. +++ uClibc-git/libm/e_hypot.c 2014-06-02 17:40:34.742716014 +0200
  79475. @@ -44,9 +44,9 @@
  79476. #include "math.h"
  79477. #include "math_private.h"
  79478. -double attribute_hidden __ieee754_hypot(double x, double y)
  79479. +double __ieee754_hypot(double x, double y)
  79480. {
  79481. - double a=x,b=y,t1,t2,y1,y2,w;
  79482. + double a=x,b=y,t1,t2,_y1,y2,w;
  79483. int32_t j,k,ha,hb;
  79484. GET_HIGH_WORD(ha,x);
  79485. @@ -100,13 +100,13 @@
  79486. w = __ieee754_sqrt(t1*t1-(b*(-b)-t2*(a+t1)));
  79487. } else {
  79488. a = a+a;
  79489. - y1 = 0;
  79490. - SET_HIGH_WORD(y1,hb);
  79491. - y2 = b - y1;
  79492. + _y1 = 0;
  79493. + SET_HIGH_WORD(_y1,hb);
  79494. + y2 = b - _y1;
  79495. t1 = 0;
  79496. SET_HIGH_WORD(t1,ha+0x00100000);
  79497. t2 = a - t1;
  79498. - w = __ieee754_sqrt(t1*y1-(w*(-w)-(t1*y2+t2*b)));
  79499. + w = __ieee754_sqrt(t1*_y1-(w*(-w)-(t1*y2+t2*b)));
  79500. }
  79501. if(k!=0) {
  79502. u_int32_t high;
  79503. diff -Nur uClibc-0.9.33.2/libm/e_j0.c uClibc-git/libm/e_j0.c
  79504. --- uClibc-0.9.33.2/libm/e_j0.c 2012-05-15 09:20:09.000000000 +0200
  79505. +++ uClibc-git/libm/e_j0.c 2014-06-02 17:40:34.742716014 +0200
  79506. @@ -76,7 +76,7 @@
  79507. static const double zero = 0.0;
  79508. -double attribute_hidden __ieee754_j0(double x)
  79509. +double __ieee754_j0(double x)
  79510. {
  79511. double z, s,c,ss,cc,r,u,v;
  79512. int32_t hx,ix;
  79513. @@ -153,7 +153,7 @@
  79514. v03 = 2.59150851840457805467e-07, /* 0x3E91642D, 0x7FF202FD */
  79515. v04 = 4.41110311332675467403e-10; /* 0x3DFE5018, 0x3BD6D9EF */
  79516. -double attribute_hidden __ieee754_y0(double x)
  79517. +double __ieee754_y0(double x)
  79518. {
  79519. double z, s,c,ss,cc,u,v;
  79520. int32_t hx,ix,lx;
  79521. diff -Nur uClibc-0.9.33.2/libm/e_j1.c uClibc-git/libm/e_j1.c
  79522. --- uClibc-0.9.33.2/libm/e_j1.c 2012-05-15 09:20:09.000000000 +0200
  79523. +++ uClibc-git/libm/e_j1.c 2014-06-02 17:40:34.746716036 +0200
  79524. @@ -77,7 +77,7 @@
  79525. static const double zero = 0.0;
  79526. -double attribute_hidden __ieee754_j1(double x)
  79527. +double __ieee754_j1(double x)
  79528. {
  79529. double z, s,c,ss,cc,r,u,v,y;
  79530. int32_t hx,ix;
  79531. @@ -150,7 +150,7 @@
  79532. 1.66559246207992079114e-11, /* 0x3DB25039, 0xDACA772A */
  79533. };
  79534. -double attribute_hidden __ieee754_y1(double x)
  79535. +double __ieee754_y1(double x)
  79536. {
  79537. double z, s,c,ss,cc,u,v;
  79538. int32_t hx,ix,lx;
  79539. diff -Nur uClibc-0.9.33.2/libm/e_jn.c uClibc-git/libm/e_jn.c
  79540. --- uClibc-0.9.33.2/libm/e_jn.c 2012-05-15 09:20:09.000000000 +0200
  79541. +++ uClibc-git/libm/e_jn.c 2014-06-02 17:40:34.746716036 +0200
  79542. @@ -45,7 +45,7 @@
  79543. static const double zero = 0.00000000000000000000e+00;
  79544. -double attribute_hidden __ieee754_jn(int n, double x)
  79545. +double __ieee754_jn(int n, double x)
  79546. {
  79547. int32_t i,hx,ix,lx, sgn;
  79548. double a, b, temp=0, di;
  79549. @@ -217,7 +217,7 @@
  79550. strong_alias(__ieee754_jn, jn)
  79551. #endif
  79552. -double attribute_hidden __ieee754_yn(int n, double x)
  79553. +double __ieee754_yn(int n, double x)
  79554. {
  79555. int32_t i,hx,ix,lx;
  79556. int32_t sign;
  79557. diff -Nur uClibc-0.9.33.2/libm/e_lgamma_r.c uClibc-git/libm/e_lgamma_r.c
  79558. --- uClibc-0.9.33.2/libm/e_lgamma_r.c 2012-05-15 09:20:09.000000000 +0200
  79559. +++ uClibc-git/libm/e_lgamma_r.c 2014-06-02 17:40:34.746716036 +0200
  79560. @@ -197,7 +197,7 @@
  79561. return -y;
  79562. }
  79563. -double attribute_hidden __ieee754_lgamma_r(double x, int *signgamp)
  79564. +double __ieee754_lgamma_r(double x, int *signgamp)
  79565. {
  79566. double t,y,z,nadj=0,p,p1,p2,p3,q,r,w;
  79567. int i,hx,lx,ix;
  79568. @@ -314,11 +314,12 @@
  79569. #else
  79570. strong_alias(__ieee754_lgamma_r, lgamma_r)
  79571. #endif
  79572. +libm_hidden_def(lgamma_r)
  79573. /* __ieee754_lgamma(x)
  79574. * Return the logarithm of the Gamma function of x.
  79575. */
  79576. -double attribute_hidden __ieee754_lgamma(double x)
  79577. +double __ieee754_lgamma(double x)
  79578. {
  79579. return __ieee754_lgamma_r(x, &signgam);
  79580. }
  79581. @@ -358,6 +359,7 @@
  79582. strong_alias(__ieee754_lgamma_r, gamma_r)
  79583. strong_alias(__ieee754_lgamma, gamma)
  79584. #endif
  79585. +libm_hidden_def(gamma)
  79586. /* double tgamma(double x)
  79587. diff -Nur uClibc-0.9.33.2/libm/e_log10.c uClibc-git/libm/e_log10.c
  79588. --- uClibc-0.9.33.2/libm/e_log10.c 2012-05-15 09:20:09.000000000 +0200
  79589. +++ uClibc-git/libm/e_log10.c 2014-06-02 17:40:34.746716036 +0200
  79590. @@ -53,7 +53,7 @@
  79591. static const double zero = 0.0;
  79592. -double attribute_hidden __ieee754_log10(double x)
  79593. +double __ieee754_log10(double x)
  79594. {
  79595. double y,z;
  79596. int32_t i,k,hx;
  79597. diff -Nur uClibc-0.9.33.2/libm/e_log2.c uClibc-git/libm/e_log2.c
  79598. --- uClibc-0.9.33.2/libm/e_log2.c 2012-05-15 09:20:09.000000000 +0200
  79599. +++ uClibc-git/libm/e_log2.c 2014-06-02 17:40:34.746716036 +0200
  79600. @@ -116,3 +116,4 @@
  79601. }
  79602. }
  79603. strong_alias(__ieee754_log2,log2)
  79604. +libm_hidden_def(log2)
  79605. diff -Nur uClibc-0.9.33.2/libm/e_log.c uClibc-git/libm/e_log.c
  79606. --- uClibc-0.9.33.2/libm/e_log.c 2012-05-15 09:20:09.000000000 +0200
  79607. +++ uClibc-git/libm/e_log.c 2014-06-02 17:40:34.746716036 +0200
  79608. @@ -77,7 +77,7 @@
  79609. static const double zero = 0.0;
  79610. -double attribute_hidden __ieee754_log(double x)
  79611. +double __ieee754_log(double x)
  79612. {
  79613. double hfsq,f,s,z,R,w,t1,t2,dk;
  79614. int32_t k,hx,i,j;
  79615. diff -Nur uClibc-0.9.33.2/libm/e_pow.c uClibc-git/libm/e_pow.c
  79616. --- uClibc-0.9.33.2/libm/e_pow.c 2012-05-15 09:20:09.000000000 +0200
  79617. +++ uClibc-git/libm/e_pow.c 2014-06-02 17:40:34.746716036 +0200
  79618. @@ -91,10 +91,10 @@
  79619. ivln2_h = 1.44269502162933349609e+00, /* 0x3FF71547, 0x60000000 =24b 1/ln2*/
  79620. ivln2_l = 1.92596299112661746887e-08; /* 0x3E54AE0B, 0xF85DDF44 =1/ln2 tail*/
  79621. -double attribute_hidden __ieee754_pow(double x, double y)
  79622. +double __ieee754_pow(double x, double y)
  79623. {
  79624. double z,ax,z_h,z_l,p_h,p_l;
  79625. - double y1,t1,t2,r,s,t,u,v,w;
  79626. + double _y1,t1,t2,r,s,t,u,v,w;
  79627. int32_t i,j,k,yisint,n;
  79628. int32_t hx,hy,ix,iy;
  79629. u_int32_t lx,ly;
  79630. @@ -249,10 +249,10 @@
  79631. s = -one;/* (-ve)**(odd int) */
  79632. /* split up y into y1+y2 and compute (y1+y2)*(t1+t2) */
  79633. - y1 = y;
  79634. - SET_LOW_WORD(y1,0);
  79635. - p_l = (y-y1)*t1+y*t2;
  79636. - p_h = y1*t1;
  79637. + _y1 = y;
  79638. + SET_LOW_WORD(_y1,0);
  79639. + p_l = (y-_y1)*t1+y*t2;
  79640. + p_h = _y1*t1;
  79641. z = p_l+p_h;
  79642. EXTRACT_WORDS(j,i,z);
  79643. if (j>=0x40900000) { /* z >= 1024 */
  79644. diff -Nur uClibc-0.9.33.2/libm/e_remainder.c uClibc-git/libm/e_remainder.c
  79645. --- uClibc-0.9.33.2/libm/e_remainder.c 2012-05-15 09:20:09.000000000 +0200
  79646. +++ uClibc-git/libm/e_remainder.c 2014-06-02 17:40:34.746716036 +0200
  79647. @@ -23,7 +23,7 @@
  79648. static const double zero = 0.0;
  79649. -double attribute_hidden __ieee754_remainder(double x, double p)
  79650. +double __ieee754_remainder(double x, double p)
  79651. {
  79652. int32_t hx,hp;
  79653. u_int32_t sx,lx,lp;
  79654. diff -Nur uClibc-0.9.33.2/libm/e_rem_pio2.c uClibc-git/libm/e_rem_pio2.c
  79655. --- uClibc-0.9.33.2/libm/e_rem_pio2.c 2012-05-15 09:20:09.000000000 +0200
  79656. +++ uClibc-git/libm/e_rem_pio2.c 2014-06-02 17:40:34.746716036 +0200
  79657. @@ -66,7 +66,7 @@
  79658. pio2_3 = 2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */
  79659. pio2_3t = 8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */
  79660. -int32_t attribute_hidden __ieee754_rem_pio2(double x, double *y)
  79661. +int32_t __ieee754_rem_pio2(double x, double *y)
  79662. {
  79663. double z=0.0,w,t,r,fn;
  79664. double tx[3];
  79665. diff -Nur uClibc-0.9.33.2/libm/e_scalb.c uClibc-git/libm/e_scalb.c
  79666. --- uClibc-0.9.33.2/libm/e_scalb.c 2012-05-15 09:20:09.000000000 +0200
  79667. +++ uClibc-git/libm/e_scalb.c 2014-06-02 17:40:34.746716036 +0200
  79668. @@ -19,7 +19,7 @@
  79669. #include "math_private.h"
  79670. #include <errno.h>
  79671. -double attribute_hidden __ieee754_scalb(double x, double fn)
  79672. +double __ieee754_scalb(double x, double fn)
  79673. {
  79674. if (isnan(x)||isnan(fn)) return x*fn;
  79675. if (!isfinite(fn)) {
  79676. @@ -55,5 +55,6 @@
  79677. #else
  79678. strong_alias(__ieee754_scalb, scalb)
  79679. #endif
  79680. +libm_hidden_def(scalb)
  79681. #endif /* UCLIBC_SUSV3_LEGACY */
  79682. diff -Nur uClibc-0.9.33.2/libm/e_sinh.c uClibc-git/libm/e_sinh.c
  79683. --- uClibc-0.9.33.2/libm/e_sinh.c 2012-05-15 09:20:09.000000000 +0200
  79684. +++ uClibc-git/libm/e_sinh.c 2014-06-02 17:40:34.746716036 +0200
  79685. @@ -32,7 +32,7 @@
  79686. static const double one = 1.0, shuge = 1.0e307;
  79687. -double attribute_hidden __ieee754_sinh(double x)
  79688. +double __ieee754_sinh(double x)
  79689. {
  79690. double t,w,h;
  79691. int32_t ix,jx;
  79692. diff -Nur uClibc-0.9.33.2/libm/e_sqrt.c uClibc-git/libm/e_sqrt.c
  79693. --- uClibc-0.9.33.2/libm/e_sqrt.c 2012-05-15 09:20:09.000000000 +0200
  79694. +++ uClibc-git/libm/e_sqrt.c 2014-06-02 17:40:34.746716036 +0200
  79695. @@ -84,7 +84,7 @@
  79696. static const double one = 1.0, tiny = 1.0e-300;
  79697. -double attribute_hidden __ieee754_sqrt(double x)
  79698. +double __ieee754_sqrt(double x)
  79699. {
  79700. double z;
  79701. int32_t sign = (int)0x80000000;
  79702. diff -Nur uClibc-0.9.33.2/libm/i386/fclrexcpt.c uClibc-git/libm/i386/fclrexcpt.c
  79703. --- uClibc-0.9.33.2/libm/i386/fclrexcpt.c 2012-05-15 09:20:09.000000000 +0200
  79704. +++ uClibc-git/libm/i386/fclrexcpt.c 2014-06-02 17:40:34.746716036 +0200
  79705. @@ -14,9 +14,8 @@
  79706. Lesser General Public License for more details.
  79707. You should have received a copy of the GNU Lesser General Public
  79708. - License along with the GNU C Library; if not, write to the Free
  79709. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79710. - 02111-1307 USA. */
  79711. + License along with the GNU C Library; if not, see
  79712. + <http://www.gnu.org/licenses/>. */
  79713. #include <fenv.h>
  79714. #include <unistd.h>
  79715. diff -Nur uClibc-0.9.33.2/libm/i386/fedisblxcpt.c uClibc-git/libm/i386/fedisblxcpt.c
  79716. --- uClibc-0.9.33.2/libm/i386/fedisblxcpt.c 2012-05-15 09:20:09.000000000 +0200
  79717. +++ uClibc-git/libm/i386/fedisblxcpt.c 2014-06-02 17:40:34.746716036 +0200
  79718. @@ -14,9 +14,8 @@
  79719. Lesser General Public License for more details.
  79720. You should have received a copy of the GNU Lesser General Public
  79721. - License along with the GNU C Library; if not, write to the Free
  79722. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79723. - 02111-1307 USA. */
  79724. + License along with the GNU C Library; if not, see
  79725. + <http://www.gnu.org/licenses/>. */
  79726. #include <fenv.h>
  79727. #include <unistd.h>
  79728. diff -Nur uClibc-0.9.33.2/libm/i386/feenablxcpt.c uClibc-git/libm/i386/feenablxcpt.c
  79729. --- uClibc-0.9.33.2/libm/i386/feenablxcpt.c 2012-05-15 09:20:09.000000000 +0200
  79730. +++ uClibc-git/libm/i386/feenablxcpt.c 2014-06-02 17:40:34.746716036 +0200
  79731. @@ -14,9 +14,8 @@
  79732. Lesser General Public License for more details.
  79733. You should have received a copy of the GNU Lesser General Public
  79734. - License along with the GNU C Library; if not, write to the Free
  79735. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79736. - 02111-1307 USA. */
  79737. + License along with the GNU C Library; if not, see
  79738. + <http://www.gnu.org/licenses/>. */
  79739. #include <fenv.h>
  79740. #include <unistd.h>
  79741. diff -Nur uClibc-0.9.33.2/libm/i386/fegetenv.c uClibc-git/libm/i386/fegetenv.c
  79742. --- uClibc-0.9.33.2/libm/i386/fegetenv.c 2012-05-15 09:20:09.000000000 +0200
  79743. +++ uClibc-git/libm/i386/fegetenv.c 2014-06-02 17:40:34.746716036 +0200
  79744. @@ -14,9 +14,8 @@
  79745. Lesser General Public License for more details.
  79746. You should have received a copy of the GNU Lesser General Public
  79747. - License along with the GNU C Library; if not, write to the Free
  79748. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79749. - 02111-1307 USA. */
  79750. + License along with the GNU C Library; if not, see
  79751. + <http://www.gnu.org/licenses/>. */
  79752. #include <fenv.h>
  79753. diff -Nur uClibc-0.9.33.2/libm/i386/fegetexcept.c uClibc-git/libm/i386/fegetexcept.c
  79754. --- uClibc-0.9.33.2/libm/i386/fegetexcept.c 2012-05-15 09:20:09.000000000 +0200
  79755. +++ uClibc-git/libm/i386/fegetexcept.c 2014-06-02 17:40:34.754716080 +0200
  79756. @@ -14,9 +14,8 @@
  79757. Lesser General Public License for more details.
  79758. You should have received a copy of the GNU Lesser General Public
  79759. - License along with the GNU C Library; if not, write to the Free
  79760. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79761. - 02111-1307 USA. */
  79762. + License along with the GNU C Library; if not, see
  79763. + <http://www.gnu.org/licenses/>. */
  79764. #include <fenv.h>
  79765. diff -Nur uClibc-0.9.33.2/libm/i386/fegetround.c uClibc-git/libm/i386/fegetround.c
  79766. --- uClibc-0.9.33.2/libm/i386/fegetround.c 2012-05-15 09:20:09.000000000 +0200
  79767. +++ uClibc-git/libm/i386/fegetround.c 2014-06-02 17:40:34.758716102 +0200
  79768. @@ -14,9 +14,8 @@
  79769. Lesser General Public License for more details.
  79770. You should have received a copy of the GNU Lesser General Public
  79771. - License along with the GNU C Library; if not, write to the Free
  79772. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79773. - 02111-1307 USA. */
  79774. + License along with the GNU C Library; if not, see
  79775. + <http://www.gnu.org/licenses/>. */
  79776. #include <fenv.h>
  79777. diff -Nur uClibc-0.9.33.2/libm/i386/feholdexcpt.c uClibc-git/libm/i386/feholdexcpt.c
  79778. --- uClibc-0.9.33.2/libm/i386/feholdexcpt.c 2012-05-15 09:20:09.000000000 +0200
  79779. +++ uClibc-git/libm/i386/feholdexcpt.c 2014-06-02 17:40:34.762716125 +0200
  79780. @@ -15,9 +15,8 @@
  79781. Lesser General Public License for more details.
  79782. You should have received a copy of the GNU Lesser General Public
  79783. - License along with the GNU C Library; if not, write to the Free
  79784. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79785. - 02111-1307 USA. */
  79786. + License along with the GNU C Library; if not, see
  79787. + <http://www.gnu.org/licenses/>. */
  79788. #include <fenv.h>
  79789. #include <unistd.h>
  79790. diff -Nur uClibc-0.9.33.2/libm/i386/fesetenv.c uClibc-git/libm/i386/fesetenv.c
  79791. --- uClibc-0.9.33.2/libm/i386/fesetenv.c 2012-05-15 09:20:09.000000000 +0200
  79792. +++ uClibc-git/libm/i386/fesetenv.c 2014-06-02 17:40:34.762716125 +0200
  79793. @@ -14,9 +14,8 @@
  79794. Lesser General Public License for more details.
  79795. You should have received a copy of the GNU Lesser General Public
  79796. - License along with the GNU C Library; if not, write to the Free
  79797. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79798. - 02111-1307 USA. */
  79799. + License along with the GNU C Library; if not, see
  79800. + <http://www.gnu.org/licenses/>. */
  79801. #include <fenv.h>
  79802. #include <assert.h>
  79803. diff -Nur uClibc-0.9.33.2/libm/i386/fesetround.c uClibc-git/libm/i386/fesetround.c
  79804. --- uClibc-0.9.33.2/libm/i386/fesetround.c 2012-05-15 09:20:09.000000000 +0200
  79805. +++ uClibc-git/libm/i386/fesetround.c 2014-06-02 17:40:34.766716147 +0200
  79806. @@ -14,9 +14,8 @@
  79807. Lesser General Public License for more details.
  79808. You should have received a copy of the GNU Lesser General Public
  79809. - License along with the GNU C Library; if not, write to the Free
  79810. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79811. - 02111-1307 USA. */
  79812. + License along with the GNU C Library; if not, see
  79813. + <http://www.gnu.org/licenses/>. */
  79814. #include <fenv.h>
  79815. #include <unistd.h>
  79816. diff -Nur uClibc-0.9.33.2/libm/i386/feupdateenv.c uClibc-git/libm/i386/feupdateenv.c
  79817. --- uClibc-0.9.33.2/libm/i386/feupdateenv.c 2012-05-15 09:20:09.000000000 +0200
  79818. +++ uClibc-git/libm/i386/feupdateenv.c 2014-06-02 17:40:34.766716147 +0200
  79819. @@ -14,9 +14,8 @@
  79820. Lesser General Public License for more details.
  79821. You should have received a copy of the GNU Lesser General Public
  79822. - License along with the GNU C Library; if not, write to the Free
  79823. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79824. - 02111-1307 USA. */
  79825. + License along with the GNU C Library; if not, see
  79826. + <http://www.gnu.org/licenses/>. */
  79827. #include <fenv.h>
  79828. #include <unistd.h>
  79829. diff -Nur uClibc-0.9.33.2/libm/i386/fgetexcptflg.c uClibc-git/libm/i386/fgetexcptflg.c
  79830. --- uClibc-0.9.33.2/libm/i386/fgetexcptflg.c 2012-05-15 09:20:09.000000000 +0200
  79831. +++ uClibc-git/libm/i386/fgetexcptflg.c 2014-06-02 17:40:34.766716147 +0200
  79832. @@ -14,9 +14,8 @@
  79833. Lesser General Public License for more details.
  79834. You should have received a copy of the GNU Lesser General Public
  79835. - License along with the GNU C Library; if not, write to the Free
  79836. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79837. - 02111-1307 USA. */
  79838. + License along with the GNU C Library; if not, see
  79839. + <http://www.gnu.org/licenses/>. */
  79840. #include <fenv.h>
  79841. diff -Nur uClibc-0.9.33.2/libm/i386/fraiseexcpt.c uClibc-git/libm/i386/fraiseexcpt.c
  79842. --- uClibc-0.9.33.2/libm/i386/fraiseexcpt.c 2012-05-15 09:20:09.000000000 +0200
  79843. +++ uClibc-git/libm/i386/fraiseexcpt.c 2014-06-02 17:40:34.770716169 +0200
  79844. @@ -14,9 +14,8 @@
  79845. Lesser General Public License for more details.
  79846. You should have received a copy of the GNU Lesser General Public
  79847. - License along with the GNU C Library; if not, write to the Free
  79848. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79849. - 02111-1307 USA. */
  79850. + License along with the GNU C Library; if not, see
  79851. + <http://www.gnu.org/licenses/>. */
  79852. #include <fenv.h>
  79853. #include <math.h>
  79854. diff -Nur uClibc-0.9.33.2/libm/i386/fsetexcptflg.c uClibc-git/libm/i386/fsetexcptflg.c
  79855. --- uClibc-0.9.33.2/libm/i386/fsetexcptflg.c 2012-05-15 09:20:09.000000000 +0200
  79856. +++ uClibc-git/libm/i386/fsetexcptflg.c 2014-06-02 17:40:34.770716169 +0200
  79857. @@ -14,9 +14,8 @@
  79858. Lesser General Public License for more details.
  79859. You should have received a copy of the GNU Lesser General Public
  79860. - License along with the GNU C Library; if not, write to the Free
  79861. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79862. - 02111-1307 USA. */
  79863. + License along with the GNU C Library; if not, see
  79864. + <http://www.gnu.org/licenses/>. */
  79865. #include <fenv.h>
  79866. #include <math.h>
  79867. diff -Nur uClibc-0.9.33.2/libm/i386/ftestexcept.c uClibc-git/libm/i386/ftestexcept.c
  79868. --- uClibc-0.9.33.2/libm/i386/ftestexcept.c 2012-05-15 09:20:09.000000000 +0200
  79869. +++ uClibc-git/libm/i386/ftestexcept.c 2014-06-02 17:40:34.770716169 +0200
  79870. @@ -14,9 +14,8 @@
  79871. Lesser General Public License for more details.
  79872. You should have received a copy of the GNU Lesser General Public
  79873. - License along with the GNU C Library; if not, write to the Free
  79874. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79875. - 02111-1307 USA. */
  79876. + License along with the GNU C Library; if not, see
  79877. + <http://www.gnu.org/licenses/>. */
  79878. #include <fenv.h>
  79879. #include <unistd.h>
  79880. diff -Nur uClibc-0.9.33.2/libm/k_cos.c uClibc-git/libm/k_cos.c
  79881. --- uClibc-0.9.33.2/libm/k_cos.c 2012-05-15 09:20:09.000000000 +0200
  79882. +++ uClibc-git/libm/k_cos.c 2014-06-02 17:40:34.770716169 +0200
  79883. @@ -56,7 +56,7 @@
  79884. C5 = 2.08757232129817482790e-09, /* 0x3E21EE9E, 0xBDB4B1C4 */
  79885. C6 = -1.13596475577881948265e-11; /* 0xBDA8FAE9, 0xBE8838D4 */
  79886. -double attribute_hidden __kernel_cos(double x, double y)
  79887. +double __kernel_cos(double x, double y)
  79888. {
  79889. double a,hz,z,r,qx;
  79890. int32_t ix;
  79891. diff -Nur uClibc-0.9.33.2/libm/k_rem_pio2.c uClibc-git/libm/k_rem_pio2.c
  79892. --- uClibc-0.9.33.2/libm/k_rem_pio2.c 2012-05-15 09:20:09.000000000 +0200
  79893. +++ uClibc-git/libm/k_rem_pio2.c 2014-06-02 17:40:34.770716169 +0200
  79894. @@ -147,7 +147,7 @@
  79895. two24 = 1.67772160000000000000e+07, /* 0x41700000, 0x00000000 */
  79896. twon24 = 5.96046447753906250000e-08; /* 0x3E700000, 0x00000000 */
  79897. -int attribute_hidden __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, const int32_t *ipio2)
  79898. +int __kernel_rem_pio2(double *x, double *y, int e0, int nx, int prec, const int32_t *ipio2)
  79899. {
  79900. int32_t jz,jx,jv,jp,jk,carry,n,iq[20],i,j,k,m,q0,ih;
  79901. double z,fw,f[20],fq[20],q[20];
  79902. diff -Nur uClibc-0.9.33.2/libm/k_sin.c uClibc-git/libm/k_sin.c
  79903. --- uClibc-0.9.33.2/libm/k_sin.c 2012-05-15 09:20:09.000000000 +0200
  79904. +++ uClibc-git/libm/k_sin.c 2014-06-02 17:40:34.770716169 +0200
  79905. @@ -49,7 +49,7 @@
  79906. S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */
  79907. S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */
  79908. -double attribute_hidden __kernel_sin(double x, double y, int iy)
  79909. +double __kernel_sin(double x, double y, int iy)
  79910. {
  79911. double z,r,v;
  79912. int32_t ix;
  79913. diff -Nur uClibc-0.9.33.2/libm/k_standard.c uClibc-git/libm/k_standard.c
  79914. --- uClibc-0.9.33.2/libm/k_standard.c 2012-05-15 09:20:09.000000000 +0200
  79915. +++ uClibc-git/libm/k_standard.c 2014-06-02 17:40:34.770716169 +0200
  79916. @@ -598,6 +598,7 @@
  79917. errno = EDOM;
  79918. }
  79919. break;
  79920. +# ifdef __UCLIBC_SUSV3_LEGACY__
  79921. case 32:
  79922. case 132:
  79923. /* scalb overflow; SVID also returns +-HUGE_VAL */
  79924. @@ -622,6 +623,7 @@
  79925. errno = ERANGE;
  79926. }
  79927. break;
  79928. +# endif
  79929. case 34:
  79930. case 134:
  79931. /* j0(|x|>X_TLOSS) */
  79932. diff -Nur uClibc-0.9.33.2/libm/k_tan.c uClibc-git/libm/k_tan.c
  79933. --- uClibc-0.9.33.2/libm/k_tan.c 2012-05-15 09:20:09.000000000 +0200
  79934. +++ uClibc-git/libm/k_tan.c 2014-06-02 17:40:34.770716169 +0200
  79935. @@ -66,7 +66,7 @@
  79936. 2.59073051863633712884e-05, /* 0x3EFB2A70, 0x74BF7AD4 */
  79937. };
  79938. -double attribute_hidden __kernel_tan(double x, double y, int iy)
  79939. +double __kernel_tan(double x, double y, int iy)
  79940. {
  79941. double z,r,v,w,s;
  79942. int32_t ix,hx;
  79943. diff -Nur uClibc-0.9.33.2/libm/metag/fclrexcpt.c uClibc-git/libm/metag/fclrexcpt.c
  79944. --- uClibc-0.9.33.2/libm/metag/fclrexcpt.c 1970-01-01 01:00:00.000000000 +0100
  79945. +++ uClibc-git/libm/metag/fclrexcpt.c 2014-06-02 17:40:34.770716169 +0200
  79946. @@ -0,0 +1,44 @@
  79947. +/* Clear given exceptions in current floating-point environment.
  79948. + Copyright (C) 2013 Imagination Technologies Ltd.
  79949. + This file is part of the GNU C Library.
  79950. +
  79951. + The GNU C Library is free software; you can redistribute it and/or
  79952. + modify it under the terms of the GNU Lesser General Public
  79953. + License as published by the Free Software Foundation; either
  79954. + version 2.1 of the License, or (at your option) any later version.
  79955. +
  79956. + The GNU C Library is distributed in the hope that it will be useful,
  79957. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  79958. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  79959. + Lesser General Public License for more details.
  79960. +
  79961. + You should have received a copy of the GNU Lesser General Public
  79962. + License along with the GNU C Library; if not, write to the Free
  79963. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  79964. + 02111-1307 USA. */
  79965. +
  79966. +#include <fenv.h>
  79967. +#include <unistd.h>
  79968. +
  79969. +#include "internal.h"
  79970. +
  79971. +int
  79972. +feclearexcept (int excepts)
  79973. +{
  79974. + unsigned int temp;
  79975. +
  79976. + /* Get the current exceptions. */
  79977. + __asm__ ("MOV %0,TXDEFR" : "=r" (temp));
  79978. +
  79979. + /* Mask out unsupported bits/exceptions. */
  79980. + excepts &= FE_ALL_EXCEPT;
  79981. +
  79982. + excepts <<= 16;
  79983. +
  79984. + temp &= ~excepts;
  79985. +
  79986. + metag_set_fpu_flags(temp);
  79987. +
  79988. + /* Success. */
  79989. + return 0;
  79990. +}
  79991. diff -Nur uClibc-0.9.33.2/libm/metag/fedisblxcpt.c uClibc-git/libm/metag/fedisblxcpt.c
  79992. --- uClibc-0.9.33.2/libm/metag/fedisblxcpt.c 1970-01-01 01:00:00.000000000 +0100
  79993. +++ uClibc-git/libm/metag/fedisblxcpt.c 2014-06-02 17:40:34.770716169 +0200
  79994. @@ -0,0 +1,40 @@
  79995. +/* Disable floating-point exceptions.
  79996. + Copyright (C) 2013 Imagination Technologies Ltd.
  79997. + This file is part of the GNU C Library.
  79998. +
  79999. + The GNU C Library is free software; you can redistribute it and/or
  80000. + modify it under the terms of the GNU Lesser General Public
  80001. + License as published by the Free Software Foundation; either
  80002. + version 2.1 of the License, or (at your option) any later version.
  80003. +
  80004. + The GNU C Library is distributed in the hope that it will be useful,
  80005. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80006. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80007. + Lesser General Public License for more details.
  80008. +
  80009. + You should have received a copy of the GNU Lesser General Public
  80010. + License along with the GNU C Library; if not, write to the Free
  80011. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80012. + 02111-1307 USA. */
  80013. +
  80014. +#include <fenv.h>
  80015. +#include <unistd.h>
  80016. +
  80017. +#include "internal.h"
  80018. +
  80019. +int
  80020. +fedisableexcept (int excepts)
  80021. +{
  80022. + unsigned int old_exc;
  80023. +
  80024. + /* Get the current control word. */
  80025. + __asm__ ("MOV %0,TXDEFR" : "=r" (old_exc));
  80026. +
  80027. + old_exc &= FE_ALL_EXCEPT;
  80028. +
  80029. + excepts = old_exc & ~excepts;
  80030. +
  80031. + metag_set_fpu_flags(excepts);
  80032. +
  80033. + return old_exc;
  80034. +}
  80035. diff -Nur uClibc-0.9.33.2/libm/metag/feenablxcpt.c uClibc-git/libm/metag/feenablxcpt.c
  80036. --- uClibc-0.9.33.2/libm/metag/feenablxcpt.c 1970-01-01 01:00:00.000000000 +0100
  80037. +++ uClibc-git/libm/metag/feenablxcpt.c 2014-06-02 17:40:34.770716169 +0200
  80038. @@ -0,0 +1,40 @@
  80039. +/* Enable floating-point exceptions.
  80040. + Copyright (C) 2013 Imagination Technologies Ltd.
  80041. + This file is part of the GNU C Library.
  80042. +
  80043. + The GNU C Library is free software; you can redistribute it and/or
  80044. + modify it under the terms of the GNU Lesser General Public
  80045. + License as published by the Free Software Foundation; either
  80046. + version 2.1 of the License, or (at your option) any later version.
  80047. +
  80048. + The GNU C Library is distributed in the hope that it will be useful,
  80049. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80050. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80051. + Lesser General Public License for more details.
  80052. +
  80053. + You should have received a copy of the GNU Lesser General Public
  80054. + License along with the GNU C Library; if not, write to the Free
  80055. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80056. + 02111-1307 USA. */
  80057. +
  80058. +#include <fenv.h>
  80059. +#include <unistd.h>
  80060. +
  80061. +#include "internal.h"
  80062. +
  80063. +int
  80064. +feenableexcept (int excepts)
  80065. +{
  80066. + unsigned int old_exc;
  80067. +
  80068. + /* Get the current control word. */
  80069. + __asm__ ("MOV %0,TXDEFR" : "=r" (old_exc));
  80070. +
  80071. + old_exc &= FE_ALL_EXCEPT;
  80072. +
  80073. + excepts |= old_exc;
  80074. +
  80075. + metag_set_fpu_flags(excepts);
  80076. +
  80077. + return old_exc;
  80078. +}
  80079. diff -Nur uClibc-0.9.33.2/libm/metag/fegetenv.c uClibc-git/libm/metag/fegetenv.c
  80080. --- uClibc-0.9.33.2/libm/metag/fegetenv.c 1970-01-01 01:00:00.000000000 +0100
  80081. +++ uClibc-git/libm/metag/fegetenv.c 2014-06-02 17:40:34.770716169 +0200
  80082. @@ -0,0 +1,36 @@
  80083. +/* Store current floating-point environment.
  80084. + Copyright (C) 2013 Imagination Technologies Ltd.
  80085. + This file is part of the GNU C Library.
  80086. +
  80087. + The GNU C Library is free software; you can redistribute it and/or
  80088. + modify it under the terms of the GNU Lesser General Public
  80089. + License as published by the Free Software Foundation; either
  80090. + version 2.1 of the License, or (at your option) any later version.
  80091. +
  80092. + The GNU C Library is distributed in the hope that it will be useful,
  80093. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80094. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80095. + Lesser General Public License for more details.
  80096. +
  80097. + You should have received a copy of the GNU Lesser General Public
  80098. + License along with the GNU C Library; if not, write to the Free
  80099. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80100. + 02111-1307 USA. */
  80101. +
  80102. +#include <fenv.h>
  80103. +
  80104. +int
  80105. +fegetenv (fenv_t *envp)
  80106. +{
  80107. + unsigned int txdefr;
  80108. + unsigned int txmode;
  80109. +
  80110. + __asm__ ("MOV %0,TXDEFR" : "=r" (txdefr));
  80111. + __asm__ ("MOV %0,TXMODE" : "=r" (txmode));
  80112. +
  80113. + envp->txdefr = txdefr;
  80114. + envp->txmode = txmode;
  80115. +
  80116. + /* Success. */
  80117. + return 0;
  80118. +}
  80119. diff -Nur uClibc-0.9.33.2/libm/metag/fegetexcept.c uClibc-git/libm/metag/fegetexcept.c
  80120. --- uClibc-0.9.33.2/libm/metag/fegetexcept.c 1970-01-01 01:00:00.000000000 +0100
  80121. +++ uClibc-git/libm/metag/fegetexcept.c 2014-06-02 17:40:34.770716169 +0200
  80122. @@ -0,0 +1,31 @@
  80123. +/* Get enabled floating-point exceptions.
  80124. + Copyright (C) 2013 Imagination Technologies Ltd.
  80125. + This file is part of the GNU C Library.
  80126. +
  80127. + The GNU C Library is free software; you can redistribute it and/or
  80128. + modify it under the terms of the GNU Lesser General Public
  80129. + License as published by the Free Software Foundation; either
  80130. + version 2.1 of the License, or (at your option) any later version.
  80131. +
  80132. + The GNU C Library is distributed in the hope that it will be useful,
  80133. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80134. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80135. + Lesser General Public License for more details.
  80136. +
  80137. + You should have received a copy of the GNU Lesser General Public
  80138. + License along with the GNU C Library; if not, write to the Free
  80139. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80140. + 02111-1307 USA. */
  80141. +
  80142. +#include <fenv.h>
  80143. +
  80144. +int
  80145. +fegetexcept (void)
  80146. +{
  80147. + unsigned int exc;
  80148. +
  80149. + /* Get the current control word. */
  80150. + __asm__ ("MOV %0,TXDEFR" : "=r" (exc));
  80151. +
  80152. + return exc & FE_ALL_EXCEPT;
  80153. +}
  80154. diff -Nur uClibc-0.9.33.2/libm/metag/fegetround.c uClibc-git/libm/metag/fegetround.c
  80155. --- uClibc-0.9.33.2/libm/metag/fegetround.c 1970-01-01 01:00:00.000000000 +0100
  80156. +++ uClibc-git/libm/metag/fegetround.c 2014-06-02 17:40:34.770716169 +0200
  80157. @@ -0,0 +1,30 @@
  80158. +/* Return current rounding direction.
  80159. + Copyright (C) 2013 Imagination Technologies Ltd.
  80160. + This file is part of the GNU C Library.
  80161. +
  80162. + The GNU C Library is free software; you can redistribute it and/or
  80163. + modify it under the terms of the GNU Lesser General Public
  80164. + License as published by the Free Software Foundation; either
  80165. + version 2.1 of the License, or (at your option) any later version.
  80166. +
  80167. + The GNU C Library is distributed in the hope that it will be useful,
  80168. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80169. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80170. + Lesser General Public License for more details.
  80171. +
  80172. + You should have received a copy of the GNU Lesser General Public
  80173. + License along with the GNU C Library; if not, write to the Free
  80174. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80175. + 02111-1307 USA. */
  80176. +
  80177. +#include <fenv.h>
  80178. +
  80179. +int
  80180. +fegetround (void)
  80181. +{
  80182. + unsigned int txmode;
  80183. +
  80184. + __asm__ ("MOV %0,TXMODE" : "=r" (txmode));
  80185. +
  80186. + return (txmode >> 16) & 0x3;
  80187. +}
  80188. diff -Nur uClibc-0.9.33.2/libm/metag/feholdexcpt.c uClibc-git/libm/metag/feholdexcpt.c
  80189. --- uClibc-0.9.33.2/libm/metag/feholdexcpt.c 1970-01-01 01:00:00.000000000 +0100
  80190. +++ uClibc-git/libm/metag/feholdexcpt.c 2014-06-02 17:40:34.770716169 +0200
  80191. @@ -0,0 +1,41 @@
  80192. +/* Store current floating-point environment and clear exceptions.
  80193. + Copyright (C) 2013 Imagination Technologies Ltd.
  80194. + Free Software Foundation, Inc.
  80195. + This file is part of the GNU C Library.
  80196. +
  80197. + The GNU C Library is free software; you can redistribute it and/or
  80198. + modify it under the terms of the GNU Lesser General Public
  80199. + License as published by the Free Software Foundation; either
  80200. + version 2.1 of the License, or (at your option) any later version.
  80201. +
  80202. + The GNU C Library is distributed in the hope that it will be useful,
  80203. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80204. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80205. + Lesser General Public License for more details.
  80206. +
  80207. + You should have received a copy of the GNU Lesser General Public
  80208. + License along with the GNU C Library; if not, write to the Free
  80209. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80210. + 02111-1307 USA. */
  80211. +
  80212. +#include <fenv.h>
  80213. +#include <unistd.h>
  80214. +
  80215. +#include "internal.h"
  80216. +
  80217. +int
  80218. +feholdexcept (fenv_t *envp)
  80219. +{
  80220. + unsigned int txdefr;
  80221. + unsigned int txmode;
  80222. +
  80223. + __asm__ ("MOV %0,TXDEFR" : "=r" (txdefr));
  80224. + __asm__ ("MOV %0,TXMODE" : "=r" (txmode));
  80225. +
  80226. + envp->txdefr = txdefr;
  80227. + envp->txmode = txmode;
  80228. +
  80229. + metag_set_fpu_flags(0);
  80230. +
  80231. + return 0;
  80232. +}
  80233. diff -Nur uClibc-0.9.33.2/libm/metag/fesetenv.c uClibc-git/libm/metag/fesetenv.c
  80234. --- uClibc-0.9.33.2/libm/metag/fesetenv.c 1970-01-01 01:00:00.000000000 +0100
  80235. +++ uClibc-git/libm/metag/fesetenv.c 2014-06-02 17:40:34.770716169 +0200
  80236. @@ -0,0 +1,60 @@
  80237. +/* Install given floating-point environment.
  80238. + Copyright (C) 2013 Imagination Technologies Ltd.
  80239. + This file is part of the GNU C Library.
  80240. +
  80241. + The GNU C Library is free software; you can redistribute it and/or
  80242. + modify it under the terms of the GNU Lesser General Public
  80243. + License as published by the Free Software Foundation; either
  80244. + version 2.1 of the License, or (at your option) any later version.
  80245. +
  80246. + The GNU C Library is distributed in the hope that it will be useful,
  80247. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80248. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80249. + Lesser General Public License for more details.
  80250. +
  80251. + You should have received a copy of the GNU Lesser General Public
  80252. + License along with the GNU C Library; if not, write to the Free
  80253. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80254. + 02111-1307 USA. */
  80255. +
  80256. +#include <fenv.h>
  80257. +#include <assert.h>
  80258. +
  80259. +#include "internal.h"
  80260. +
  80261. +libm_hidden_proto(fesetenv)
  80262. +
  80263. +int
  80264. +fesetenv (const fenv_t *envp)
  80265. +{
  80266. + unsigned int exc;
  80267. + unsigned int txmode;
  80268. +
  80269. + __asm__ ("MOV %0,TXMODE" : "=r" (txmode));
  80270. +
  80271. + /* Clear rounding mode bits (round to nearest). */
  80272. + txmode &= ~(0x3 << 16);
  80273. +
  80274. + if (envp == FE_DFL_ENV)
  80275. + {
  80276. + exc = 0;
  80277. + }
  80278. + else if (envp == FE_NOMASK_ENV)
  80279. + {
  80280. + exc = 0x1f;
  80281. + }
  80282. + else
  80283. + {
  80284. + exc = envp->txdefr & (FE_ALL_EXCEPT | (FE_ALL_EXCEPT << 16));
  80285. + /* Write rounding mode and guard bit. */
  80286. + txmode |= (0x1 << 18 ) | (envp->txmode & (0x3 << 16));
  80287. + }
  80288. +
  80289. + __asm__ ("MOV TXMODE,%0" : : "r" (txmode));
  80290. +
  80291. + metag_set_fpu_flags(exc);
  80292. +
  80293. + /* Success. */
  80294. + return 0;
  80295. +}
  80296. +libm_hidden_def(fesetenv)
  80297. diff -Nur uClibc-0.9.33.2/libm/metag/fesetround.c uClibc-git/libm/metag/fesetround.c
  80298. --- uClibc-0.9.33.2/libm/metag/fesetround.c 1970-01-01 01:00:00.000000000 +0100
  80299. +++ uClibc-git/libm/metag/fesetround.c 2014-06-02 17:40:34.770716169 +0200
  80300. @@ -0,0 +1,41 @@
  80301. +/* Set current rounding direction.
  80302. + Copyright (C) 2013 Imagination Technologies Ltd.
  80303. + This file is part of the GNU C Library.
  80304. +
  80305. + The GNU C Library is free software; you can redistribute it and/or
  80306. + modify it under the terms of the GNU Lesser General Public
  80307. + License as published by the Free Software Foundation; either
  80308. + version 2.1 of the License, or (at your option) any later version.
  80309. +
  80310. + The GNU C Library is distributed in the hope that it will be useful,
  80311. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80312. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80313. + Lesser General Public License for more details.
  80314. +
  80315. + You should have received a copy of the GNU Lesser General Public
  80316. + License along with the GNU C Library; if not, write to the Free
  80317. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80318. + 02111-1307 USA. */
  80319. +
  80320. +#include <fenv.h>
  80321. +#include <unistd.h>
  80322. +
  80323. +int
  80324. +fesetround (int round)
  80325. +{
  80326. + unsigned int txmode;
  80327. +
  80328. + if ((round & ~0x3) != 0)
  80329. + /* ROUND is no valid rounding mode. */
  80330. + return 1;
  80331. +
  80332. + __asm__ ("MOV %0,TXMODE" : "=r" (txmode));
  80333. +
  80334. + txmode &= ~(0x3 << 16);
  80335. + /* Write rounding mode and guard bit. */
  80336. + txmode |= (0x1 << 18 ) | (round << 16);
  80337. +
  80338. + __asm__ ("MOV TXMODE,%0" : : "r" (txmode));
  80339. +
  80340. + return 0;
  80341. +}
  80342. diff -Nur uClibc-0.9.33.2/libm/metag/feupdateenv.c uClibc-git/libm/metag/feupdateenv.c
  80343. --- uClibc-0.9.33.2/libm/metag/feupdateenv.c 1970-01-01 01:00:00.000000000 +0100
  80344. +++ uClibc-git/libm/metag/feupdateenv.c 2014-06-02 17:40:34.774716191 +0200
  80345. @@ -0,0 +1,45 @@
  80346. +/* Install given floating-point environment and raise exceptions.
  80347. + Copyright (C) 2013 Imagination Technologies Ltd.
  80348. + This file is part of the GNU C Library.
  80349. +
  80350. + The GNU C Library is free software; you can redistribute it and/or
  80351. + modify it under the terms of the GNU Lesser General Public
  80352. + License as published by the Free Software Foundation; either
  80353. + version 2.1 of the License, or (at your option) any later version.
  80354. +
  80355. + The GNU C Library is distributed in the hope that it will be useful,
  80356. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80357. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80358. + Lesser General Public License for more details.
  80359. +
  80360. + You should have received a copy of the GNU Lesser General Public
  80361. + License along with the GNU C Library; if not, write to the Free
  80362. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80363. + 02111-1307 USA. */
  80364. +
  80365. +#include <fenv.h>
  80366. +#include <unistd.h>
  80367. +
  80368. +libm_hidden_proto(fesetenv)
  80369. +libm_hidden_proto(feraiseexcept)
  80370. +
  80371. +int
  80372. +feupdateenv (const fenv_t *envp)
  80373. +{
  80374. + unsigned int temp;
  80375. +
  80376. + /* Save current exceptions. */
  80377. + __asm__ ("MOV %0,TXDEFR" : "=r" (temp));
  80378. +
  80379. + temp >>= 16;
  80380. + temp &= FE_ALL_EXCEPT;
  80381. +
  80382. + /* Install new environment. */
  80383. + fesetenv (envp);
  80384. +
  80385. + /* Raise the saved exception. */
  80386. + feraiseexcept ((int) temp);
  80387. +
  80388. + /* Success. */
  80389. + return 0;
  80390. +}
  80391. diff -Nur uClibc-0.9.33.2/libm/metag/fgetexcptflg.c uClibc-git/libm/metag/fgetexcptflg.c
  80392. --- uClibc-0.9.33.2/libm/metag/fgetexcptflg.c 1970-01-01 01:00:00.000000000 +0100
  80393. +++ uClibc-git/libm/metag/fgetexcptflg.c 2014-06-02 17:40:34.774716191 +0200
  80394. @@ -0,0 +1,34 @@
  80395. +/* Store current representation for exceptions.
  80396. + Copyright (C) 2013 Imagination Technologies Ltd.
  80397. + This file is part of the GNU C Library.
  80398. +
  80399. + The GNU C Library is free software; you can redistribute it and/or
  80400. + modify it under the terms of the GNU Lesser General Public
  80401. + License as published by the Free Software Foundation; either
  80402. + version 2.1 of the License, or (at your option) any later version.
  80403. +
  80404. + The GNU C Library is distributed in the hope that it will be useful,
  80405. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80406. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80407. + Lesser General Public License for more details.
  80408. +
  80409. + You should have received a copy of the GNU Lesser General Public
  80410. + License along with the GNU C Library; if not, write to the Free
  80411. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80412. + 02111-1307 USA. */
  80413. +
  80414. +#include <fenv.h>
  80415. +
  80416. +int
  80417. +fegetexceptflag (fexcept_t *flagp, int excepts)
  80418. +{
  80419. + unsigned int temp;
  80420. +
  80421. + /* Get the current exceptions. */
  80422. + __asm__ ("MOV %0,TXDEFR" : "=r" (temp));
  80423. +
  80424. + *flagp = temp & excepts & FE_ALL_EXCEPT;
  80425. +
  80426. + /* Success. */
  80427. + return 0;
  80428. +}
  80429. diff -Nur uClibc-0.9.33.2/libm/metag/fraiseexcpt.c uClibc-git/libm/metag/fraiseexcpt.c
  80430. --- uClibc-0.9.33.2/libm/metag/fraiseexcpt.c 1970-01-01 01:00:00.000000000 +0100
  80431. +++ uClibc-git/libm/metag/fraiseexcpt.c 2014-06-02 17:40:34.774716191 +0200
  80432. @@ -0,0 +1,92 @@
  80433. +/* Raise given exceptions.
  80434. + Copyright (C) 2013 Imagination Technologies Ltd.
  80435. + This file is part of the GNU C Library.
  80436. +
  80437. + The GNU C Library is free software; you can redistribute it and/or
  80438. + modify it under the terms of the GNU Lesser General Public
  80439. + License as published by the Free Software Foundation; either
  80440. + version 2.1 of the License, or (at your option) any later version.
  80441. +
  80442. + The GNU C Library is distributed in the hope that it will be useful,
  80443. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80444. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80445. + Lesser General Public License for more details.
  80446. +
  80447. + You should have received a copy of the GNU Lesser General Public
  80448. + License along with the GNU C Library; if not, write to the Free
  80449. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80450. + 02111-1307 USA. */
  80451. +
  80452. +#include <fenv.h>
  80453. +#include <math.h>
  80454. +
  80455. +libm_hidden_proto(feraiseexcept)
  80456. +
  80457. +int
  80458. +feraiseexcept (int excepts)
  80459. +{
  80460. + /* Raise exceptions represented by EXPECTS. But we must raise only
  80461. + one signal at a time. It is important that if the overflow/underflow
  80462. + exception and the inexact exception are given at the same time,
  80463. + the overflow/underflow exception follows the inexact exception. */
  80464. +
  80465. + /* First: invalid exception. */
  80466. + if ((FE_INVALID & excepts) != 0)
  80467. + {
  80468. + /* Reciprocal square root of a negative number is invalid. */
  80469. + __asm__ volatile(
  80470. + "F MOV FX.0,#0xc000 ! -2\n"
  80471. + "F RSQ FX.1,FX.0\n"
  80472. + );
  80473. + }
  80474. +
  80475. + /* Next: division by zero. */
  80476. + if ((FE_DIVBYZERO & excepts) != 0)
  80477. + {
  80478. + __asm__ volatile(
  80479. + "F MOV FX.0,#0\n"
  80480. + "F RCP FX.1,FX.0\n"
  80481. + );
  80482. + }
  80483. +
  80484. + /* Next: overflow. */
  80485. + if ((FE_OVERFLOW & excepts) != 0)
  80486. + {
  80487. + /* Adding a large number in single precision can cause overflow. */
  80488. + __asm__ volatile(
  80489. + " MOVT D0.0,#0x7f7f\n"
  80490. + " ADD D0.0,D0.0,#0xffff\n"
  80491. + "F MOV FX.0,D0.0\n"
  80492. + "F ADD FX.1,FX.0,FX.0\n"
  80493. + );
  80494. + }
  80495. +
  80496. + /* Next: underflow. */
  80497. + if ((FE_UNDERFLOW & excepts) != 0)
  80498. + {
  80499. + /* Multiplying a small value by 0.5 will cause an underflow. */
  80500. + __asm__ volatile(
  80501. + " MOV D0.0,#1\n"
  80502. + "F MOV FX.0,D0.0\n"
  80503. + " MOVT D0.0,#0x3f00\n"
  80504. + "F MOV FX.1,D0.0\n"
  80505. + "F MUL FX.2,FX.1,FX.0\n"
  80506. + );
  80507. + }
  80508. +
  80509. + /* Last: inexact. */
  80510. + if ((FE_INEXACT & excepts) != 0)
  80511. + {
  80512. + /* Converting a small single precision value to half precision
  80513. + can cause an inexact exception. */
  80514. + __asm__ volatile(
  80515. + " MOV D0.0,#0x0001\n"
  80516. + "F MOV FX.0,D0.0\n"
  80517. + "F FTOH FX.1,FX.0\n"
  80518. + );
  80519. + }
  80520. +
  80521. + /* Success. */
  80522. + return 0;
  80523. +}
  80524. +libm_hidden_def(feraiseexcept)
  80525. diff -Nur uClibc-0.9.33.2/libm/metag/fsetexcptflg.c uClibc-git/libm/metag/fsetexcptflg.c
  80526. --- uClibc-0.9.33.2/libm/metag/fsetexcptflg.c 1970-01-01 01:00:00.000000000 +0100
  80527. +++ uClibc-git/libm/metag/fsetexcptflg.c 2014-06-02 17:40:34.774716191 +0200
  80528. @@ -0,0 +1,44 @@
  80529. +/* Set floating-point environment exception handling.
  80530. + Copyright (C) 2013 Imagination Technologies Ltd.
  80531. + This file is part of the GNU C Library.
  80532. +
  80533. + The GNU C Library is free software; you can redistribute it and/or
  80534. + modify it under the terms of the GNU Lesser General Public
  80535. + License as published by the Free Software Foundation; either
  80536. + version 2.1 of the License, or (at your option) any later version.
  80537. +
  80538. + The GNU C Library is distributed in the hope that it will be useful,
  80539. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80540. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80541. + Lesser General Public License for more details.
  80542. +
  80543. + You should have received a copy of the GNU Lesser General Public
  80544. + License along with the GNU C Library; if not, write to the Free
  80545. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80546. + 02111-1307 USA. */
  80547. +
  80548. +#include <fenv.h>
  80549. +#include <math.h>
  80550. +#include <unistd.h>
  80551. +
  80552. +#include "internal.h"
  80553. +
  80554. +int
  80555. +fesetexceptflag (const fexcept_t *flagp, int excepts)
  80556. +{
  80557. + unsigned int temp;
  80558. +
  80559. + /* Get the current exceptions. */
  80560. + __asm__ ("MOV %0,TXDEFR" : "=r" (temp));
  80561. +
  80562. + excepts &= FE_ALL_EXCEPT;
  80563. + excepts <<= 16;
  80564. +
  80565. + temp &= ~excepts;
  80566. + temp |= *flagp & excepts;
  80567. +
  80568. + metag_set_fpu_flags(temp);
  80569. +
  80570. + /* Success. */
  80571. + return 0;
  80572. +}
  80573. diff -Nur uClibc-0.9.33.2/libm/metag/ftestexcept.c uClibc-git/libm/metag/ftestexcept.c
  80574. --- uClibc-0.9.33.2/libm/metag/ftestexcept.c 1970-01-01 01:00:00.000000000 +0100
  80575. +++ uClibc-git/libm/metag/ftestexcept.c 2014-06-02 17:40:34.774716191 +0200
  80576. @@ -0,0 +1,32 @@
  80577. +/* Test exception in current environment.
  80578. + Copyright (C) 2013 Imagination Technologies Ltd.
  80579. + This file is part of the GNU C Library.
  80580. +
  80581. + The GNU C Library is free software; you can redistribute it and/or
  80582. + modify it under the terms of the GNU Lesser General Public
  80583. + License as published by the Free Software Foundation; either
  80584. + version 2.1 of the License, or (at your option) any later version.
  80585. +
  80586. + The GNU C Library is distributed in the hope that it will be useful,
  80587. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  80588. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  80589. + Lesser General Public License for more details.
  80590. +
  80591. + You should have received a copy of the GNU Lesser General Public
  80592. + License along with the GNU C Library; if not, write to the Free
  80593. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80594. + 02111-1307 USA. */
  80595. +
  80596. +#include <fenv.h>
  80597. +#include <unistd.h>
  80598. +
  80599. +int
  80600. +fetestexcept (int excepts)
  80601. +{
  80602. + unsigned int temp;
  80603. +
  80604. + /* Get the current exceptions. */
  80605. + __asm__ ("MOV %0,TXDEFR" : "=r" (temp));
  80606. +
  80607. + return (temp >> 16) & excepts & FE_ALL_EXCEPT;
  80608. +}
  80609. diff -Nur uClibc-0.9.33.2/libm/metag/internal.h uClibc-git/libm/metag/internal.h
  80610. --- uClibc-0.9.33.2/libm/metag/internal.h 1970-01-01 01:00:00.000000000 +0100
  80611. +++ uClibc-git/libm/metag/internal.h 2014-06-02 17:40:34.774716191 +0200
  80612. @@ -0,0 +1,7 @@
  80613. +/*
  80614. + * Copyright (C) 2013 Imagination Technologies Ltd.
  80615. + *
  80616. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  80617. + */
  80618. +
  80619. +void metag_set_fpu_flags(unsigned int flags);
  80620. diff -Nur uClibc-0.9.33.2/libm/metag/Makefile.arch uClibc-git/libm/metag/Makefile.arch
  80621. --- uClibc-0.9.33.2/libm/metag/Makefile.arch 1970-01-01 01:00:00.000000000 +0100
  80622. +++ uClibc-git/libm/metag/Makefile.arch 2014-06-02 17:40:34.770716169 +0200
  80623. @@ -0,0 +1,23 @@
  80624. +# Makefile for uClibc
  80625. +#
  80626. +# Copyright (c) 2013 Imagination Technologies Ltd.
  80627. +#
  80628. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  80629. +#
  80630. +
  80631. +ifeq ($(UCLIBC_HAS_FENV),y)
  80632. +ifeq ($(CONFIG_META_2_1),y)
  80633. +libm_ARCH_SRC:=$(wildcard $(libm_ARCH_DIR)/*.c)
  80634. +libm_ARCH_OBJ:=$(patsubst $(libm_ARCH_DIR)/%.c,$(libm_ARCH_OUT)/%.o,$(libm_ARCH_SRC))
  80635. +CFLAGS-libm += -Wa,-mfpu=metac21
  80636. +endif
  80637. +endif
  80638. +
  80639. +libm_ARCH_OBJS:=$(libm_ARCH_OBJ)
  80640. +
  80641. +ifeq ($(DOPIC),y)
  80642. +libm-a-y+=$(libm_ARCH_OBJS:.o=.os)
  80643. +else
  80644. +libm-a-y+=$(libm_ARCH_OBJS)
  80645. +endif
  80646. +libm-so-y+=$(libm_ARCH_OBJS:.o=.os)
  80647. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fclrexcpt.c uClibc-git/libm/powerpc/e500/fpu/fclrexcpt.c
  80648. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fclrexcpt.c 2012-05-15 09:20:09.000000000 +0200
  80649. +++ uClibc-git/libm/powerpc/e500/fpu/fclrexcpt.c 2014-06-02 17:40:34.794716302 +0200
  80650. @@ -13,9 +13,8 @@
  80651. Lesser General Public License for more details.
  80652. You should have received a copy of the GNU Lesser General Public
  80653. - License along with the GNU C Library; if not, write to the Free
  80654. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80655. - 02111-1307 USA. */
  80656. + License along with the GNU C Library; if not, see
  80657. + <http://www.gnu.org/licenses/>. */
  80658. #include "fenv_libc.h"
  80659. #undef feclearexcept
  80660. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fedisblxcpt.c uClibc-git/libm/powerpc/e500/fpu/fedisblxcpt.c
  80661. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fedisblxcpt.c 2012-05-15 09:20:09.000000000 +0200
  80662. +++ uClibc-git/libm/powerpc/e500/fpu/fedisblxcpt.c 2014-06-02 17:40:34.794716302 +0200
  80663. @@ -14,9 +14,8 @@
  80664. Lesser General Public License for more details.
  80665. You should have received a copy of the GNU Lesser General Public
  80666. - License along with the GNU C Library; if not, write to the Free
  80667. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80668. - 02111-1307 USA. */
  80669. + License along with the GNU C Library; if not, see
  80670. + <http://www.gnu.org/licenses/>. */
  80671. #include "fenv_libc.h"
  80672. #include <syscall.h>
  80673. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/feenablxcpt.c uClibc-git/libm/powerpc/e500/fpu/feenablxcpt.c
  80674. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/feenablxcpt.c 2012-05-15 09:20:09.000000000 +0200
  80675. +++ uClibc-git/libm/powerpc/e500/fpu/feenablxcpt.c 2014-06-02 17:40:34.794716302 +0200
  80676. @@ -14,9 +14,8 @@
  80677. Lesser General Public License for more details.
  80678. You should have received a copy of the GNU Lesser General Public
  80679. - License along with the GNU C Library; if not, write to the Free
  80680. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80681. - 02111-1307 USA. */
  80682. + License along with the GNU C Library; if not, see
  80683. + <http://www.gnu.org/licenses/>. */
  80684. #include "fenv_libc.h"
  80685. #include <syscall.h>
  80686. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetenv.c uClibc-git/libm/powerpc/e500/fpu/fegetenv.c
  80687. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetenv.c 2012-05-15 09:20:09.000000000 +0200
  80688. +++ uClibc-git/libm/powerpc/e500/fpu/fegetenv.c 2014-06-02 17:40:34.794716302 +0200
  80689. @@ -14,9 +14,8 @@
  80690. Lesser General Public License for more details.
  80691. You should have received a copy of the GNU Lesser General Public
  80692. - License along with the GNU C Library; if not, write to the Free
  80693. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80694. - 02111-1307 USA. */
  80695. + License along with the GNU C Library; if not, see
  80696. + <http://www.gnu.org/licenses/>. */
  80697. #include "fenv_libc.h"
  80698. #include <syscall.h>
  80699. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetexcept.c uClibc-git/libm/powerpc/e500/fpu/fegetexcept.c
  80700. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetexcept.c 2012-05-15 09:20:09.000000000 +0200
  80701. +++ uClibc-git/libm/powerpc/e500/fpu/fegetexcept.c 2014-06-02 17:40:34.794716302 +0200
  80702. @@ -14,9 +14,8 @@
  80703. Lesser General Public License for more details.
  80704. You should have received a copy of the GNU Lesser General Public
  80705. - License along with the GNU C Library; if not, write to the Free
  80706. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80707. - 02111-1307 USA. */
  80708. + License along with the GNU C Library; if not, see
  80709. + <http://www.gnu.org/licenses/>. */
  80710. #include "fenv_libc.h"
  80711. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetround.c uClibc-git/libm/powerpc/e500/fpu/fegetround.c
  80712. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fegetround.c 2012-05-15 09:20:09.000000000 +0200
  80713. +++ uClibc-git/libm/powerpc/e500/fpu/fegetround.c 2014-06-02 17:40:34.794716302 +0200
  80714. @@ -14,9 +14,8 @@
  80715. Lesser General Public License for more details.
  80716. You should have received a copy of the GNU Lesser General Public
  80717. - License along with the GNU C Library; if not, write to the Free
  80718. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80719. - 02111-1307 USA. */
  80720. + License along with the GNU C Library; if not, see
  80721. + <http://www.gnu.org/licenses/>. */
  80722. #include "fenv_libc.h"
  80723. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/feholdexcpt.c uClibc-git/libm/powerpc/e500/fpu/feholdexcpt.c
  80724. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/feholdexcpt.c 2012-05-15 09:20:09.000000000 +0200
  80725. +++ uClibc-git/libm/powerpc/e500/fpu/feholdexcpt.c 2014-06-02 17:40:34.794716302 +0200
  80726. @@ -14,9 +14,8 @@
  80727. Lesser General Public License for more details.
  80728. You should have received a copy of the GNU Lesser General Public
  80729. - License along with the GNU C Library; if not, write to the Free
  80730. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80731. - 02111-1307 USA. */
  80732. + License along with the GNU C Library; if not, see
  80733. + <http://www.gnu.org/licenses/>. */
  80734. #include "fenv_libc.h"
  80735. #include <syscall.h>
  80736. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fe_nomask.c uClibc-git/libm/powerpc/e500/fpu/fe_nomask.c
  80737. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fe_nomask.c 2012-05-15 09:20:09.000000000 +0200
  80738. +++ uClibc-git/libm/powerpc/e500/fpu/fe_nomask.c 2014-06-02 17:40:34.794716302 +0200
  80739. @@ -13,9 +13,8 @@
  80740. Lesser General Public License for more details.
  80741. You should have received a copy of the GNU Lesser General Public
  80742. - License along with the GNU C Library; if not, write to the Free
  80743. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80744. - 02111-1307 USA. */
  80745. + License along with the GNU C Library; if not, see
  80746. + <http://www.gnu.org/licenses/>. */
  80747. #include <fenv.h>
  80748. #include <errno.h>
  80749. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fenv_const.c uClibc-git/libm/powerpc/e500/fpu/fenv_const.c
  80750. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fenv_const.c 2012-05-15 09:20:09.000000000 +0200
  80751. +++ uClibc-git/libm/powerpc/e500/fpu/fenv_const.c 2014-06-02 17:40:34.794716302 +0200
  80752. @@ -14,9 +14,8 @@
  80753. Lesser General Public License for more details.
  80754. You should have received a copy of the GNU Lesser General Public
  80755. - License along with the GNU C Library; if not, write to the Free
  80756. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80757. - 02111-1307 USA. */
  80758. + License along with the GNU C Library; if not, see
  80759. + <http://www.gnu.org/licenses/>. */
  80760. /* If the default argument is used we use this value. */
  80761. const unsigned long long __fe_dfl_env __attribute__ ((aligned (8))) =
  80762. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fenv_libc.h uClibc-git/libm/powerpc/e500/fpu/fenv_libc.h
  80763. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fenv_libc.h 2012-05-15 09:20:09.000000000 +0200
  80764. +++ uClibc-git/libm/powerpc/e500/fpu/fenv_libc.h 2014-06-02 17:40:34.794716302 +0200
  80765. @@ -14,9 +14,8 @@
  80766. Lesser General Public License for more details.
  80767. You should have received a copy of the GNU Lesser General Public
  80768. - License along with the GNU C Library; if not, write to the Free
  80769. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80770. - 02111-1307 USA. */
  80771. + License along with the GNU C Library; if not, see
  80772. + <http://www.gnu.org/licenses/>. */
  80773. #ifndef _FENV_LIBC_H
  80774. #define _FENV_LIBC_H 1
  80775. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fesetenv.c uClibc-git/libm/powerpc/e500/fpu/fesetenv.c
  80776. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fesetenv.c 2012-05-15 09:20:09.000000000 +0200
  80777. +++ uClibc-git/libm/powerpc/e500/fpu/fesetenv.c 2014-06-02 17:40:34.794716302 +0200
  80778. @@ -13,9 +13,8 @@
  80779. Lesser General Public License for more details.
  80780. You should have received a copy of the GNU Lesser General Public
  80781. - License along with the GNU C Library; if not, write to the Free
  80782. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80783. - 02111-1307 USA. */
  80784. + License along with the GNU C Library; if not, see
  80785. + <http://www.gnu.org/licenses/>. */
  80786. #include "fenv_libc.h"
  80787. #include <syscall.h>
  80788. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fesetround.c uClibc-git/libm/powerpc/e500/fpu/fesetround.c
  80789. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fesetround.c 2012-05-15 09:20:09.000000000 +0200
  80790. +++ uClibc-git/libm/powerpc/e500/fpu/fesetround.c 2014-06-02 17:40:34.794716302 +0200
  80791. @@ -14,9 +14,8 @@
  80792. Lesser General Public License for more details.
  80793. You should have received a copy of the GNU Lesser General Public
  80794. - License along with the GNU C Library; if not, write to the Free
  80795. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80796. - 02111-1307 USA. */
  80797. + License along with the GNU C Library; if not, see
  80798. + <http://www.gnu.org/licenses/>. */
  80799. #include "fenv_libc.h"
  80800. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/feupdateenv.c uClibc-git/libm/powerpc/e500/fpu/feupdateenv.c
  80801. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/feupdateenv.c 2012-05-15 09:20:09.000000000 +0200
  80802. +++ uClibc-git/libm/powerpc/e500/fpu/feupdateenv.c 2014-06-02 17:40:34.794716302 +0200
  80803. @@ -14,9 +14,8 @@
  80804. Lesser General Public License for more details.
  80805. You should have received a copy of the GNU Lesser General Public
  80806. - License along with the GNU C Library; if not, write to the Free
  80807. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80808. - 02111-1307 USA. */
  80809. + License along with the GNU C Library; if not, see
  80810. + <http://www.gnu.org/licenses/>. */
  80811. #include "fenv_libc.h"
  80812. #include <syscall.h>
  80813. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fgetexcptflg.c uClibc-git/libm/powerpc/e500/fpu/fgetexcptflg.c
  80814. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fgetexcptflg.c 2012-05-15 09:20:09.000000000 +0200
  80815. +++ uClibc-git/libm/powerpc/e500/fpu/fgetexcptflg.c 2014-06-02 17:40:34.794716302 +0200
  80816. @@ -14,9 +14,8 @@
  80817. Lesser General Public License for more details.
  80818. You should have received a copy of the GNU Lesser General Public
  80819. - License along with the GNU C Library; if not, write to the Free
  80820. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80821. - 02111-1307 USA. */
  80822. + License along with the GNU C Library; if not, see
  80823. + <http://www.gnu.org/licenses/>. */
  80824. #include "fenv_libc.h"
  80825. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fraiseexcpt.c uClibc-git/libm/powerpc/e500/fpu/fraiseexcpt.c
  80826. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fraiseexcpt.c 2012-05-15 09:20:09.000000000 +0200
  80827. +++ uClibc-git/libm/powerpc/e500/fpu/fraiseexcpt.c 2014-06-02 17:40:34.794716302 +0200
  80828. @@ -14,9 +14,8 @@
  80829. Lesser General Public License for more details.
  80830. You should have received a copy of the GNU Lesser General Public
  80831. - License along with the GNU C Library; if not, write to the Free
  80832. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80833. - 02111-1307 USA. */
  80834. + License along with the GNU C Library; if not, see
  80835. + <http://www.gnu.org/licenses/>. */
  80836. #include "fenv_libc.h"
  80837. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/fsetexcptflg.c uClibc-git/libm/powerpc/e500/fpu/fsetexcptflg.c
  80838. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/fsetexcptflg.c 2012-05-15 09:20:09.000000000 +0200
  80839. +++ uClibc-git/libm/powerpc/e500/fpu/fsetexcptflg.c 2014-06-02 17:40:34.794716302 +0200
  80840. @@ -13,9 +13,8 @@
  80841. Lesser General Public License for more details.
  80842. You should have received a copy of the GNU Lesser General Public
  80843. - License along with the GNU C Library; if not, write to the Free
  80844. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80845. - 02111-1307 USA. */
  80846. + License along with the GNU C Library; if not, see
  80847. + <http://www.gnu.org/licenses/>. */
  80848. #include "fenv_libc.h"
  80849. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/fpu/ftestexcept.c uClibc-git/libm/powerpc/e500/fpu/ftestexcept.c
  80850. --- uClibc-0.9.33.2/libm/powerpc/e500/fpu/ftestexcept.c 2012-05-15 09:20:09.000000000 +0200
  80851. +++ uClibc-git/libm/powerpc/e500/fpu/ftestexcept.c 2014-06-02 17:40:34.794716302 +0200
  80852. @@ -14,9 +14,8 @@
  80853. Lesser General Public License for more details.
  80854. You should have received a copy of the GNU Lesser General Public
  80855. - License along with the GNU C Library; if not, write to the Free
  80856. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80857. - 02111-1307 USA. */
  80858. + License along with the GNU C Library; if not, see
  80859. + <http://www.gnu.org/licenses/>. */
  80860. #include "fenv_libc.h"
  80861. diff -Nur uClibc-0.9.33.2/libm/powerpc/e500/spe-raise.c uClibc-git/libm/powerpc/e500/spe-raise.c
  80862. --- uClibc-0.9.33.2/libm/powerpc/e500/spe-raise.c 2012-05-15 09:20:09.000000000 +0200
  80863. +++ uClibc-git/libm/powerpc/e500/spe-raise.c 2014-06-02 17:40:34.794716302 +0200
  80864. @@ -13,9 +13,8 @@
  80865. Lesser General Public License for more details.
  80866. You should have received a copy of the GNU Lesser General Public
  80867. - License along with the GNU C Library; if not, write to the Free
  80868. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80869. - 02111-1307 USA. */
  80870. + License along with the GNU C Library; if not, see
  80871. + <http://www.gnu.org/licenses/>. */
  80872. #include "fpu/fenv_libc.h"
  80873. diff -Nur uClibc-0.9.33.2/libm/s_ceil.c uClibc-git/libm/s_ceil.c
  80874. --- uClibc-0.9.33.2/libm/s_ceil.c 2012-05-15 09:20:09.000000000 +0200
  80875. +++ uClibc-git/libm/s_ceil.c 2014-06-02 17:40:34.794716302 +0200
  80876. @@ -28,35 +28,35 @@
  80877. double ceil(double x)
  80878. {
  80879. - int32_t i0,i1,j0;
  80880. + int32_t i0,i1,_j0;
  80881. u_int32_t i,j;
  80882. EXTRACT_WORDS(i0,i1,x);
  80883. - j0 = ((i0>>20)&0x7ff)-0x3ff;
  80884. - if(j0<20) {
  80885. - if(j0<0) { /* raise inexact if x != 0 */
  80886. + _j0 = ((i0>>20)&0x7ff)-0x3ff;
  80887. + if(_j0<20) {
  80888. + if(_j0<0) { /* raise inexact if x != 0 */
  80889. if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */
  80890. if(i0<0) {i0=0x80000000;i1=0;}
  80891. else if((i0|i1)!=0) { i0=0x3ff00000;i1=0;}
  80892. }
  80893. } else {
  80894. - i = (0x000fffff)>>j0;
  80895. + i = (0x000fffff)>>_j0;
  80896. if(((i0&i)|i1)==0) return x; /* x is integral */
  80897. if(huge+x>0.0) { /* raise inexact flag */
  80898. - if(i0>0) i0 += (0x00100000)>>j0;
  80899. + if(i0>0) i0 += (0x00100000)>>_j0;
  80900. i0 &= (~i); i1=0;
  80901. }
  80902. }
  80903. - } else if (j0>51) {
  80904. - if(j0==0x400) return x+x; /* inf or NaN */
  80905. + } else if (_j0>51) {
  80906. + if(_j0==0x400) return x+x; /* inf or NaN */
  80907. else return x; /* x is integral */
  80908. } else {
  80909. - i = ((u_int32_t)(0xffffffff))>>(j0-20);
  80910. + i = ((u_int32_t)(0xffffffff))>>(_j0-20);
  80911. if((i1&i)==0) return x; /* x is integral */
  80912. if(huge+x>0.0) { /* raise inexact flag */
  80913. if(i0>0) {
  80914. - if(j0==20) i0+=1;
  80915. + if(_j0==20) i0+=1;
  80916. else {
  80917. - j = i1 + (1<<(52-j0));
  80918. + j = i1 + (1<<(52-_j0));
  80919. if(j<i1) i0+=1; /* got a carry */
  80920. i1 = j;
  80921. }
  80922. diff -Nur uClibc-0.9.33.2/libm/s_floor.c uClibc-git/libm/s_floor.c
  80923. --- uClibc-0.9.33.2/libm/s_floor.c 2012-05-15 09:20:09.000000000 +0200
  80924. +++ uClibc-git/libm/s_floor.c 2014-06-02 17:40:34.818716434 +0200
  80925. @@ -28,36 +28,36 @@
  80926. double floor(double x)
  80927. {
  80928. - int32_t i0,i1,j0;
  80929. + int32_t i0,i1,_j0;
  80930. u_int32_t i,j;
  80931. EXTRACT_WORDS(i0,i1,x);
  80932. - j0 = ((i0>>20)&0x7ff)-0x3ff;
  80933. - if(j0<20) {
  80934. - if(j0<0) { /* raise inexact if x != 0 */
  80935. + _j0 = ((i0>>20)&0x7ff)-0x3ff;
  80936. + if(_j0<20) {
  80937. + if(_j0<0) { /* raise inexact if x != 0 */
  80938. if(huge+x>0.0) {/* return 0*sign(x) if |x|<1 */
  80939. if(i0>=0) {i0=i1=0;}
  80940. else if(((i0&0x7fffffff)|i1)!=0)
  80941. { i0=0xbff00000;i1=0;}
  80942. }
  80943. } else {
  80944. - i = (0x000fffff)>>j0;
  80945. + i = (0x000fffff)>>_j0;
  80946. if(((i0&i)|i1)==0) return x; /* x is integral */
  80947. if(huge+x>0.0) { /* raise inexact flag */
  80948. - if(i0<0) i0 += (0x00100000)>>j0;
  80949. + if(i0<0) i0 += (0x00100000)>>_j0;
  80950. i0 &= (~i); i1=0;
  80951. }
  80952. }
  80953. - } else if (j0>51) {
  80954. - if(j0==0x400) return x+x; /* inf or NaN */
  80955. + } else if (_j0>51) {
  80956. + if(_j0==0x400) return x+x; /* inf or NaN */
  80957. else return x; /* x is integral */
  80958. } else {
  80959. - i = ((u_int32_t)(0xffffffff))>>(j0-20);
  80960. + i = ((u_int32_t)(0xffffffff))>>(_j0-20);
  80961. if((i1&i)==0) return x; /* x is integral */
  80962. if(huge+x>0.0) { /* raise inexact flag */
  80963. if(i0<0) {
  80964. - if(j0==20) i0+=1;
  80965. + if(_j0==20) i0+=1;
  80966. else {
  80967. - j = i1+(1<<(52-j0));
  80968. + j = i1+(1<<(52-_j0));
  80969. if(j<i1) i0 +=1 ; /* got a carry */
  80970. i1=j;
  80971. }
  80972. diff -Nur uClibc-0.9.33.2/libm/s_fma.c uClibc-git/libm/s_fma.c
  80973. --- uClibc-0.9.33.2/libm/s_fma.c 2012-05-15 09:20:09.000000000 +0200
  80974. +++ uClibc-git/libm/s_fma.c 2014-06-02 17:40:34.818716434 +0200
  80975. @@ -14,9 +14,8 @@
  80976. Lesser General Public License for more details.
  80977. You should have received a copy of the GNU Lesser General Public
  80978. - License along with the GNU C Library; if not, write to the Free
  80979. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80980. - 02111-1307 USA. */
  80981. + License along with the GNU C Library; if not, see
  80982. + <http://www.gnu.org/licenses/>. */
  80983. #include <math.h>
  80984. diff -Nur uClibc-0.9.33.2/libm/s_fpclassify.c uClibc-git/libm/s_fpclassify.c
  80985. --- uClibc-0.9.33.2/libm/s_fpclassify.c 2012-05-15 09:20:09.000000000 +0200
  80986. +++ uClibc-git/libm/s_fpclassify.c 2014-06-02 17:40:34.818716434 +0200
  80987. @@ -14,9 +14,8 @@
  80988. Lesser General Public License for more details.
  80989. You should have received a copy of the GNU Lesser General Public
  80990. - License along with the GNU C Library; if not, write to the Free
  80991. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  80992. - 02111-1307 USA. */
  80993. + License along with the GNU C Library; if not, see
  80994. + <http://www.gnu.org/licenses/>. */
  80995. #include <math.h>
  80996. diff -Nur uClibc-0.9.33.2/libm/s_fpclassifyf.c uClibc-git/libm/s_fpclassifyf.c
  80997. --- uClibc-0.9.33.2/libm/s_fpclassifyf.c 2012-05-15 09:20:09.000000000 +0200
  80998. +++ uClibc-git/libm/s_fpclassifyf.c 2014-06-02 17:40:34.818716434 +0200
  80999. @@ -14,9 +14,8 @@
  81000. Lesser General Public License for more details.
  81001. You should have received a copy of the GNU Lesser General Public
  81002. - License along with the GNU C Library; if not, write to the Free
  81003. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81004. - 02111-1307 USA. */
  81005. + License along with the GNU C Library; if not, see
  81006. + <http://www.gnu.org/licenses/>. */
  81007. #include <math.h>
  81008. #include "math_private.h"
  81009. diff -Nur uClibc-0.9.33.2/libm/s_llrint.c uClibc-git/libm/s_llrint.c
  81010. --- uClibc-0.9.33.2/libm/s_llrint.c 2012-05-15 09:20:09.000000000 +0200
  81011. +++ uClibc-git/libm/s_llrint.c 2014-06-02 17:40:34.822716457 +0200
  81012. @@ -15,9 +15,8 @@
  81013. Lesser General Public License for more details.
  81014. You should have received a copy of the GNU Lesser General Public
  81015. - License along with the GNU C Library; if not, write to the Free
  81016. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81017. - 02111-1307 USA. */
  81018. + License along with the GNU C Library; if not, see
  81019. + <http://www.gnu.org/licenses/>. */
  81020. #include <features.h>
  81021. /* Prevent math.h from defining a colliding inline */
  81022. @@ -34,7 +33,7 @@
  81023. long long int
  81024. llrint (double x)
  81025. {
  81026. - int32_t j0;
  81027. + int32_t _j0;
  81028. u_int32_t i1, i0;
  81029. long long int result;
  81030. volatile double w;
  81031. @@ -42,39 +41,39 @@
  81032. int sx;
  81033. EXTRACT_WORDS (i0, i1, x);
  81034. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81035. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81036. sx = i0 >> 31;
  81037. i0 &= 0xfffff;
  81038. i0 |= 0x100000;
  81039. - if (j0 < 20)
  81040. + if (_j0 < 20)
  81041. {
  81042. w = two52[sx] + x;
  81043. t = w - two52[sx];
  81044. EXTRACT_WORDS (i0, i1, t);
  81045. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81046. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81047. i0 &= 0xfffff;
  81048. i0 |= 0x100000;
  81049. - result = (j0 < 0 ? 0 : i0 >> (20 - j0));
  81050. + result = (_j0 < 0 ? 0 : i0 >> (20 - _j0));
  81051. }
  81052. - else if (j0 < (int32_t) (8 * sizeof (long long int)) - 1)
  81053. + else if (_j0 < (int32_t) (8 * sizeof (long long int)) - 1)
  81054. {
  81055. - if (j0 >= 52)
  81056. - result = (((long long int) i0 << 32) | i1) << (j0 - 52);
  81057. + if (_j0 >= 52)
  81058. + result = (((long long int) i0 << 32) | i1) << (_j0 - 52);
  81059. else
  81060. {
  81061. w = two52[sx] + x;
  81062. t = w - two52[sx];
  81063. EXTRACT_WORDS (i0, i1, t);
  81064. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81065. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81066. i0 &= 0xfffff;
  81067. i0 |= 0x100000;
  81068. - if (j0 == 20)
  81069. + if (_j0 == 20)
  81070. result = (long long int) i0;
  81071. else
  81072. - result = ((long long int) i0 << (j0 - 20)) | (i1 >> (52 - j0));
  81073. + result = ((long long int) i0 << (_j0 - 20)) | (i1 >> (52 - _j0));
  81074. }
  81075. }
  81076. else
  81077. diff -Nur uClibc-0.9.33.2/libm/s_llround.c uClibc-git/libm/s_llround.c
  81078. --- uClibc-0.9.33.2/libm/s_llround.c 2012-05-15 09:20:09.000000000 +0200
  81079. +++ uClibc-git/libm/s_llround.c 2014-06-02 17:40:34.822716457 +0200
  81080. @@ -14,9 +14,8 @@
  81081. Lesser General Public License for more details.
  81082. You should have received a copy of the GNU Lesser General Public
  81083. - License along with the GNU C Library; if not, write to the Free
  81084. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81085. - 02111-1307 USA. */
  81086. + License along with the GNU C Library; if not, see
  81087. + <http://www.gnu.org/licenses/>. */
  81088. #include <math.h>
  81089. #include "math_private.h"
  81090. @@ -24,42 +23,42 @@
  81091. long long int
  81092. llround (double x)
  81093. {
  81094. - int32_t j0;
  81095. + int32_t _j0;
  81096. u_int32_t i1, i0;
  81097. long long int result;
  81098. int sign;
  81099. EXTRACT_WORDS (i0, i1, x);
  81100. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81101. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81102. sign = (i0 & 0x80000000) != 0 ? -1 : 1;
  81103. i0 &= 0xfffff;
  81104. i0 |= 0x100000;
  81105. - if (j0 < 20)
  81106. + if (_j0 < 20)
  81107. {
  81108. - if (j0 < 0)
  81109. - return j0 < -1 ? 0 : sign;
  81110. + if (_j0 < 0)
  81111. + return _j0 < -1 ? 0 : sign;
  81112. else
  81113. {
  81114. - i0 += 0x80000 >> j0;
  81115. + i0 += 0x80000 >> _j0;
  81116. - result = i0 >> (20 - j0);
  81117. + result = i0 >> (20 - _j0);
  81118. }
  81119. }
  81120. - else if (j0 < (int32_t) (8 * sizeof (long long int)) - 1)
  81121. + else if (_j0 < (int32_t) (8 * sizeof (long long int)) - 1)
  81122. {
  81123. - if (j0 >= 52)
  81124. - result = (((long long int) i0 << 32) | i1) << (j0 - 52);
  81125. + if (_j0 >= 52)
  81126. + result = (((long long int) i0 << 32) | i1) << (_j0 - 52);
  81127. else
  81128. {
  81129. - u_int32_t j = i1 + (0x80000000 >> (j0 - 20));
  81130. + u_int32_t j = i1 + (0x80000000 >> (_j0 - 20));
  81131. if (j < i1)
  81132. ++i0;
  81133. - if (j0 == 20)
  81134. + if (_j0 == 20)
  81135. result = (long long int) i0;
  81136. else
  81137. - result = ((long long int) i0 << (j0 - 20)) | (j >> (52 - j0));
  81138. + result = ((long long int) i0 << (_j0 - 20)) | (j >> (52 - _j0));
  81139. }
  81140. }
  81141. else
  81142. diff -Nur uClibc-0.9.33.2/libm/s_lrint.c uClibc-git/libm/s_lrint.c
  81143. --- uClibc-0.9.33.2/libm/s_lrint.c 2012-05-15 09:20:09.000000000 +0200
  81144. +++ uClibc-git/libm/s_lrint.c 2014-06-02 17:40:34.822716457 +0200
  81145. @@ -15,9 +15,8 @@
  81146. Lesser General Public License for more details.
  81147. You should have received a copy of the GNU Lesser General Public
  81148. - License along with the GNU C Library; if not, write to the Free
  81149. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81150. - 02111-1307 USA. */
  81151. + License along with the GNU C Library; if not, see
  81152. + <http://www.gnu.org/licenses/>. */
  81153. #include <features.h>
  81154. /* Prevent math.h from defining a colliding inline */
  81155. @@ -35,7 +34,7 @@
  81156. long int
  81157. lrint (double x)
  81158. {
  81159. - int32_t j0;
  81160. + int32_t _j0;
  81161. u_int32_t i0,i1;
  81162. volatile double w;
  81163. double t;
  81164. @@ -43,44 +42,44 @@
  81165. int sx;
  81166. EXTRACT_WORDS (i0, i1, x);
  81167. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81168. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81169. sx = i0 >> 31;
  81170. i0 &= 0xfffff;
  81171. i0 |= 0x100000;
  81172. - if (j0 < 20)
  81173. + if (_j0 < 20)
  81174. {
  81175. - if (j0 < -1)
  81176. + if (_j0 < -1)
  81177. return 0;
  81178. else
  81179. {
  81180. w = two52[sx] + x;
  81181. t = w - two52[sx];
  81182. EXTRACT_WORDS (i0, i1, t);
  81183. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81184. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81185. i0 &= 0xfffff;
  81186. i0 |= 0x100000;
  81187. - result = i0 >> (20 - j0);
  81188. + result = i0 >> (20 - _j0);
  81189. }
  81190. }
  81191. - else if (j0 < (int32_t) (8 * sizeof (long int)) - 1)
  81192. + else if (_j0 < (int32_t) (8 * sizeof (long int)) - 1)
  81193. {
  81194. - if (j0 >= 52)
  81195. - result = ((long int) i0 << (j0 - 20)) | (i1 << (j0 - 52));
  81196. + if (_j0 >= 52)
  81197. + result = ((long int) i0 << (_j0 - 20)) | (i1 << (_j0 - 52));
  81198. else
  81199. {
  81200. w = two52[sx] + x;
  81201. t = w - two52[sx];
  81202. EXTRACT_WORDS (i0, i1, t);
  81203. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81204. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81205. i0 &= 0xfffff;
  81206. i0 |= 0x100000;
  81207. - if (j0 == 20)
  81208. + if (_j0 == 20)
  81209. result = (long int) i0;
  81210. else
  81211. - result = ((long int) i0 << (j0 - 20)) | (i1 >> (52 - j0));
  81212. + result = ((long int) i0 << (_j0 - 20)) | (i1 >> (52 - _j0));
  81213. }
  81214. }
  81215. else
  81216. diff -Nur uClibc-0.9.33.2/libm/s_lround.c uClibc-git/libm/s_lround.c
  81217. --- uClibc-0.9.33.2/libm/s_lround.c 2012-05-15 09:20:09.000000000 +0200
  81218. +++ uClibc-git/libm/s_lround.c 2014-06-02 17:40:34.822716457 +0200
  81219. @@ -14,9 +14,8 @@
  81220. Lesser General Public License for more details.
  81221. You should have received a copy of the GNU Lesser General Public
  81222. - License along with the GNU C Library; if not, write to the Free
  81223. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81224. - 02111-1307 USA. */
  81225. + License along with the GNU C Library; if not, see
  81226. + <http://www.gnu.org/licenses/>. */
  81227. #include <math.h>
  81228. #include "math_private.h"
  81229. @@ -24,42 +23,42 @@
  81230. long int
  81231. lround (double x)
  81232. {
  81233. - int32_t j0;
  81234. + int32_t _j0;
  81235. u_int32_t i1, i0;
  81236. long int result;
  81237. int sign;
  81238. EXTRACT_WORDS (i0, i1, x);
  81239. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81240. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81241. sign = (i0 & 0x80000000) != 0 ? -1 : 1;
  81242. i0 &= 0xfffff;
  81243. i0 |= 0x100000;
  81244. - if (j0 < 20)
  81245. + if (_j0 < 20)
  81246. {
  81247. - if (j0 < 0)
  81248. - return j0 < -1 ? 0 : sign;
  81249. + if (_j0 < 0)
  81250. + return _j0 < -1 ? 0 : sign;
  81251. else
  81252. {
  81253. - i0 += 0x80000 >> j0;
  81254. + i0 += 0x80000 >> _j0;
  81255. - result = i0 >> (20 - j0);
  81256. + result = i0 >> (20 - _j0);
  81257. }
  81258. }
  81259. - else if (j0 < (int32_t) (8 * sizeof (long int)) - 1)
  81260. + else if (_j0 < (int32_t) (8 * sizeof (long int)) - 1)
  81261. {
  81262. - if (j0 >= 52)
  81263. - result = ((long int) i0 << (j0 - 20)) | (i1 << (j0 - 52));
  81264. + if (_j0 >= 52)
  81265. + result = ((long int) i0 << (_j0 - 20)) | (i1 << (_j0 - 52));
  81266. else
  81267. {
  81268. - u_int32_t j = i1 + (0x80000000 >> (j0 - 20));
  81269. + u_int32_t j = i1 + (0x80000000 >> (_j0 - 20));
  81270. if (j < i1)
  81271. ++i0;
  81272. - if (j0 == 20)
  81273. + if (_j0 == 20)
  81274. result = (long int) i0;
  81275. else
  81276. - result = ((long int) i0 << (j0 - 20)) | (j >> (52 - j0));
  81277. + result = ((long int) i0 << (_j0 - 20)) | (j >> (52 - _j0));
  81278. }
  81279. }
  81280. else
  81281. diff -Nur uClibc-0.9.33.2/libm/s_modf.c uClibc-git/libm/s_modf.c
  81282. --- uClibc-0.9.33.2/libm/s_modf.c 2012-05-15 09:20:09.000000000 +0200
  81283. +++ uClibc-git/libm/s_modf.c 2014-06-02 17:40:34.822716457 +0200
  81284. @@ -26,16 +26,16 @@
  81285. double modf(double x, double *iptr)
  81286. {
  81287. - int32_t i0,i1,j0;
  81288. + int32_t i0,i1,_j0;
  81289. u_int32_t i;
  81290. EXTRACT_WORDS(i0,i1,x);
  81291. - j0 = ((i0>>20)&0x7ff)-0x3ff; /* exponent of x */
  81292. - if(j0<20) { /* integer part in high x */
  81293. - if(j0<0) { /* |x|<1 */
  81294. + _j0 = ((i0>>20)&0x7ff)-0x3ff; /* exponent of x */
  81295. + if(_j0<20) { /* integer part in high x */
  81296. + if(_j0<0) { /* |x|<1 */
  81297. INSERT_WORDS(*iptr,i0&0x80000000,0); /* *iptr = +-0 */
  81298. return x;
  81299. } else {
  81300. - i = (0x000fffff)>>j0;
  81301. + i = (0x000fffff)>>_j0;
  81302. if(((i0&i)|i1)==0) { /* x is integral */
  81303. *iptr = x;
  81304. INSERT_WORDS(x,i0&0x80000000,0); /* return +-0 */
  81305. @@ -45,15 +45,15 @@
  81306. return x - *iptr;
  81307. }
  81308. }
  81309. - } else if (j0>51) { /* no fraction part */
  81310. + } else if (_j0>51) { /* no fraction part */
  81311. *iptr = x*one;
  81312. /* We must handle NaNs separately. */
  81313. - if (j0 == 0x400 && ((i0 & 0xfffff) | i1))
  81314. + if (_j0 == 0x400 && ((i0 & 0xfffff) | i1))
  81315. return x*one;
  81316. INSERT_WORDS(x,i0&0x80000000,0); /* return +-0 */
  81317. return x;
  81318. } else { /* fraction part in low x */
  81319. - i = ((u_int32_t)(0xffffffff))>>(j0-20);
  81320. + i = ((u_int32_t)(0xffffffff))>>(_j0-20);
  81321. if((i1&i)==0) { /* x is integral */
  81322. *iptr = x;
  81323. INSERT_WORDS(x,i0&0x80000000,0); /* return +-0 */
  81324. diff -Nur uClibc-0.9.33.2/libm/s_rint.c uClibc-git/libm/s_rint.c
  81325. --- uClibc-0.9.33.2/libm/s_rint.c 2012-05-15 09:20:09.000000000 +0200
  81326. +++ uClibc-git/libm/s_rint.c 2014-06-02 17:40:34.842716567 +0200
  81327. @@ -30,7 +30,7 @@
  81328. double rint(double x)
  81329. {
  81330. - int32_t i0, j0, sx;
  81331. + int32_t i0, _j0, sx;
  81332. u_int32_t i,i1;
  81333. double t;
  81334. /* We use w = x + 2^52; t = w - 2^52; trick to round x to integer.
  81335. @@ -43,11 +43,11 @@
  81336. EXTRACT_WORDS(i0,i1,x);
  81337. /* Unbiased exponent */
  81338. - j0 = ((((u_int32_t)i0) >> 20)&0x7ff)-0x3ff;
  81339. + _j0 = ((((u_int32_t)i0) >> 20)&0x7ff)-0x3ff;
  81340. - if (j0 > 51) {
  81341. + if (_j0 > 51) {
  81342. //Why bother? Just returning x works too
  81343. - //if (j0 == 0x400) /* inf or NaN */
  81344. + //if (_j0 == 0x400) /* inf or NaN */
  81345. // return x+x;
  81346. return x; /* x is integral */
  81347. }
  81348. @@ -55,8 +55,8 @@
  81349. /* Sign */
  81350. sx = ((u_int32_t)i0) >> 31;
  81351. - if (j0<20) {
  81352. - if (j0<0) { /* |x| < 1 */
  81353. + if (_j0<20) {
  81354. + if (_j0<0) { /* |x| < 1 */
  81355. if (((i0&0x7fffffff)|i1)==0) return x;
  81356. i1 |= (i0&0x0fffff);
  81357. i0 &= 0xfffe0000;
  81358. @@ -68,19 +68,19 @@
  81359. SET_HIGH_WORD(t,(i0&0x7fffffff)|(sx<<31));
  81360. return t;
  81361. } else {
  81362. - i = (0x000fffff)>>j0;
  81363. + i = (0x000fffff)>>_j0;
  81364. if (((i0&i)|i1)==0) return x; /* x is integral */
  81365. i>>=1;
  81366. if (((i0&i)|i1)!=0) {
  81367. - if (j0==19) i1 = 0x40000000;
  81368. - else i0 = (i0&(~i))|((0x20000)>>j0);
  81369. + if (_j0==19) i1 = 0x40000000;
  81370. + else i0 = (i0&(~i))|((0x20000)>>_j0);
  81371. }
  81372. }
  81373. } else {
  81374. - i = ((u_int32_t)(0xffffffff))>>(j0-20);
  81375. + i = ((u_int32_t)(0xffffffff))>>(_j0-20);
  81376. if ((i1&i)==0) return x; /* x is integral */
  81377. i>>=1;
  81378. - if ((i1&i)!=0) i1 = (i1&(~i))|((0x40000000)>>(j0-20));
  81379. + if ((i1&i)!=0) i1 = (i1&(~i))|((0x40000000)>>(_j0-20));
  81380. }
  81381. INSERT_WORDS(x,i0,i1);
  81382. w = TWO52[sx]+x;
  81383. diff -Nur uClibc-0.9.33.2/libm/s_round.c uClibc-git/libm/s_round.c
  81384. --- uClibc-0.9.33.2/libm/s_round.c 2012-05-15 09:20:09.000000000 +0200
  81385. +++ uClibc-git/libm/s_round.c 2014-06-02 17:40:34.846716590 +0200
  81386. @@ -14,9 +14,8 @@
  81387. Lesser General Public License for more details.
  81388. You should have received a copy of the GNU Lesser General Public
  81389. - License along with the GNU C Library; if not, write to the Free
  81390. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81391. - 02111-1307 USA. */
  81392. + License along with the GNU C Library; if not, see
  81393. + <http://www.gnu.org/licenses/>. */
  81394. #include <math.h>
  81395. #include "math_private.h"
  81396. @@ -26,41 +25,41 @@
  81397. double
  81398. round (double x)
  81399. {
  81400. - int32_t i0, j0;
  81401. + int32_t i0, _j0;
  81402. u_int32_t i1;
  81403. EXTRACT_WORDS (i0, i1, x);
  81404. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81405. - if (j0 < 20)
  81406. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81407. + if (_j0 < 20)
  81408. {
  81409. - if (j0 < 0)
  81410. + if (_j0 < 0)
  81411. {
  81412. if (huge + x > 0.0)
  81413. {
  81414. i0 &= 0x80000000;
  81415. - if (j0 == -1)
  81416. + if (_j0 == -1)
  81417. i0 |= 0x3ff00000;
  81418. i1 = 0;
  81419. }
  81420. }
  81421. else
  81422. {
  81423. - u_int32_t i = 0x000fffff >> j0;
  81424. + u_int32_t i = 0x000fffff >> _j0;
  81425. if (((i0 & i) | i1) == 0)
  81426. /* X is integral. */
  81427. return x;
  81428. if (huge + x > 0.0)
  81429. {
  81430. /* Raise inexact if x != 0. */
  81431. - i0 += 0x00080000 >> j0;
  81432. + i0 += 0x00080000 >> _j0;
  81433. i0 &= ~i;
  81434. i1 = 0;
  81435. }
  81436. }
  81437. }
  81438. - else if (j0 > 51)
  81439. + else if (_j0 > 51)
  81440. {
  81441. - if (j0 == 0x400)
  81442. + if (_j0 == 0x400)
  81443. /* Inf or NaN. */
  81444. return x + x;
  81445. else
  81446. @@ -68,7 +67,7 @@
  81447. }
  81448. else
  81449. {
  81450. - u_int32_t i = 0xffffffff >> (j0 - 20);
  81451. + u_int32_t i = 0xffffffff >> (_j0 - 20);
  81452. if ((i1 & i) == 0)
  81453. /* X is integral. */
  81454. return x;
  81455. @@ -76,7 +75,7 @@
  81456. if (huge + x > 0.0)
  81457. {
  81458. /* Raise inexact if x != 0. */
  81459. - u_int32_t j = i1 + (1 << (51 - j0));
  81460. + u_int32_t j = i1 + (1 << (51 - _j0));
  81461. if (j < i1)
  81462. i0 += 1;
  81463. i1 = j;
  81464. diff -Nur uClibc-0.9.33.2/libm/s_scalbn.c uClibc-git/libm/s_scalbn.c
  81465. --- uClibc-0.9.33.2/libm/s_scalbn.c 2012-05-15 09:20:09.000000000 +0200
  81466. +++ uClibc-git/libm/s_scalbn.c 2014-06-02 17:40:34.846716590 +0200
  81467. @@ -62,12 +62,7 @@
  81468. libm_hidden_def(scalbln)
  81469. #if LONG_MAX == INT_MAX
  81470. -/* strong_alias(scalbln, scalbn) - "error: conflicting types for 'scalbn'"
  81471. - * because it tries to declare "typeof(scalbln) scalbn;"
  81472. - * which tries to give "long" parameter to scalbn.
  81473. - * Doing it by hand:
  81474. - */
  81475. -__typeof(scalbn) scalbn __attribute__((alias("scalbln")));
  81476. +strong_alias_untyped(scalbln,scalbn)
  81477. #else
  81478. double scalbn(double x, int n)
  81479. {
  81480. diff -Nur uClibc-0.9.33.2/libm/s_signbit.c uClibc-git/libm/s_signbit.c
  81481. --- uClibc-0.9.33.2/libm/s_signbit.c 2012-05-15 09:20:09.000000000 +0200
  81482. +++ uClibc-git/libm/s_signbit.c 2014-06-02 17:40:34.846716590 +0200
  81483. @@ -14,9 +14,8 @@
  81484. Lesser General Public License for more details.
  81485. You should have received a copy of the GNU Lesser General Public
  81486. - License along with the GNU C Library; if not, write to the Free
  81487. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81488. - 02111-1307 USA. */
  81489. + License along with the GNU C Library; if not, see
  81490. + <http://www.gnu.org/licenses/>. */
  81491. #include <features.h>
  81492. /* Prevent math.h from defining a colliding inline */
  81493. diff -Nur uClibc-0.9.33.2/libm/s_signbitf.c uClibc-git/libm/s_signbitf.c
  81494. --- uClibc-0.9.33.2/libm/s_signbitf.c 2012-05-15 09:20:09.000000000 +0200
  81495. +++ uClibc-git/libm/s_signbitf.c 2014-06-02 17:40:34.846716590 +0200
  81496. @@ -14,9 +14,8 @@
  81497. Lesser General Public License for more details.
  81498. You should have received a copy of the GNU Lesser General Public
  81499. - License along with the GNU C Library; if not, write to the Free
  81500. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81501. - 02111-1307 USA. */
  81502. + License along with the GNU C Library; if not, see
  81503. + <http://www.gnu.org/licenses/>. */
  81504. #include <features.h>
  81505. /* Prevent math.h from defining a colliding inline */
  81506. diff -Nur uClibc-0.9.33.2/libm/s_significand.c uClibc-git/libm/s_significand.c
  81507. --- uClibc-0.9.33.2/libm/s_significand.c 2012-05-15 09:20:09.000000000 +0200
  81508. +++ uClibc-git/libm/s_significand.c 2014-06-02 17:40:34.846716590 +0200
  81509. @@ -22,3 +22,4 @@
  81510. {
  81511. return __ieee754_scalb(x,(double) -ilogb(x));
  81512. }
  81513. +libm_hidden_def(significand)
  81514. diff -Nur uClibc-0.9.33.2/libm/s_trunc.c uClibc-git/libm/s_trunc.c
  81515. --- uClibc-0.9.33.2/libm/s_trunc.c 2012-05-15 09:20:09.000000000 +0200
  81516. +++ uClibc-git/libm/s_trunc.c 2014-06-02 17:40:34.846716590 +0200
  81517. @@ -14,9 +14,8 @@
  81518. Lesser General Public License for more details.
  81519. You should have received a copy of the GNU Lesser General Public
  81520. - License along with the GNU C Library; if not, write to the Free
  81521. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81522. - 02111-1307 USA. */
  81523. + License along with the GNU C Library; if not, see
  81524. + <http://www.gnu.org/licenses/>. */
  81525. #include <math.h>
  81526. #include "math_private.h"
  81527. @@ -24,30 +23,30 @@
  81528. double
  81529. trunc (double x)
  81530. {
  81531. - int32_t i0, j0;
  81532. + int32_t i0, _j0;
  81533. u_int32_t i1;
  81534. int sx;
  81535. EXTRACT_WORDS (i0, i1, x);
  81536. sx = i0 & 0x80000000;
  81537. - j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81538. - if (j0 < 20)
  81539. + _j0 = ((i0 >> 20) & 0x7ff) - 0x3ff;
  81540. + if (_j0 < 20)
  81541. {
  81542. - if (j0 < 0)
  81543. + if (_j0 < 0)
  81544. /* The magnitude of the number is < 1 so the result is +-0. */
  81545. INSERT_WORDS (x, sx, 0);
  81546. else
  81547. - INSERT_WORDS (x, sx | (i0 & ~(0x000fffff >> j0)), 0);
  81548. + INSERT_WORDS (x, sx | (i0 & ~(0x000fffff >> _j0)), 0);
  81549. }
  81550. - else if (j0 > 51)
  81551. + else if (_j0 > 51)
  81552. {
  81553. - if (j0 == 0x400)
  81554. + if (_j0 == 0x400)
  81555. /* x is inf or NaN. */
  81556. return x + x;
  81557. }
  81558. else
  81559. {
  81560. - INSERT_WORDS (x, i0, i1 & ~(0xffffffffu >> (j0 - 20)));
  81561. + INSERT_WORDS (x, i0, i1 & ~(0xffffffffu >> (_j0 - 20)));
  81562. }
  81563. return x;
  81564. diff -Nur uClibc-0.9.33.2/libnsl/nsl.c uClibc-git/libnsl/nsl.c
  81565. --- uClibc-0.9.33.2/libnsl/nsl.c 2012-05-15 09:20:09.000000000 +0200
  81566. +++ uClibc-git/libnsl/nsl.c 2014-06-02 17:40:34.846716590 +0200
  81567. @@ -7,8 +7,6 @@
  81568. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  81569. */
  81570. -#include <features.h>
  81571. -
  81572. void __stub2(void);
  81573. void __stub2(void)
  81574. {
  81575. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/alloca_cutoff.c uClibc-git/libpthread/linuxthreads/alloca_cutoff.c
  81576. --- uClibc-0.9.33.2/libpthread/linuxthreads/alloca_cutoff.c 2012-05-15 09:20:09.000000000 +0200
  81577. +++ uClibc-git/libpthread/linuxthreads/alloca_cutoff.c 2014-06-02 17:40:34.970717276 +0200
  81578. @@ -13,9 +13,8 @@
  81579. Lesser General Public License for more details.
  81580. You should have received a copy of the GNU Lesser General Public
  81581. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  81582. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  81583. - Boston, MA 02111-1307, USA. */
  81584. + License along with the GNU C Library; see the file COPYING.LIB. If
  81585. + not, see <http://www.gnu.org/licenses/>. */
  81586. #include <alloca.h>
  81587. #include <stdlib.h>
  81588. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/attr.c uClibc-git/libpthread/linuxthreads/attr.c
  81589. --- uClibc-0.9.33.2/libpthread/linuxthreads/attr.c 2012-05-15 09:20:09.000000000 +0200
  81590. +++ uClibc-git/libpthread/linuxthreads/attr.c 2014-06-02 17:40:34.970717276 +0200
  81591. @@ -361,7 +361,7 @@
  81592. attr->__scope = PTHREAD_SCOPE_SYSTEM;
  81593. #ifdef _STACK_GROWS_DOWN
  81594. -# ifdef USE_TLS
  81595. +# ifdef __UCLIBC_HAS_TLS__
  81596. attr->__stacksize = descr->p_stackaddr - (char *)descr->p_guardaddr
  81597. - descr->p_guardsize;
  81598. # else
  81599. @@ -369,7 +369,7 @@
  81600. - descr->p_guardsize;
  81601. # endif
  81602. #else
  81603. -# ifdef USE_TLS
  81604. +# ifdef __UCLIBC_HAS_TLS__
  81605. attr->__stacksize = (char *)descr->p_guardaddr - descr->p_stackaddr;
  81606. # else
  81607. attr->__stacksize = (char *)descr->p_guardaddr - (char *)descr;
  81608. @@ -385,7 +385,7 @@
  81609. otherwise the range of the stack area cannot be computed. */
  81610. attr->__stacksize += attr->__guardsize;
  81611. #endif
  81612. -#ifdef USE_TLS
  81613. +#ifdef __UCLIBC_HAS_TLS__
  81614. attr->__stackaddr = descr->p_stackaddr;
  81615. #else
  81616. # ifndef _STACK_GROWS_UP
  81617. @@ -395,7 +395,7 @@
  81618. # endif
  81619. #endif
  81620. -#ifdef USE_TLS
  81621. +#ifdef __UCLIBC_HAS_TLS__
  81622. if (attr->__stackaddr == NULL)
  81623. #else
  81624. if (descr == &__pthread_initial_thread)
  81625. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/barrier.c uClibc-git/libpthread/linuxthreads/barrier.c
  81626. --- uClibc-0.9.33.2/libpthread/linuxthreads/barrier.c 2012-05-15 09:20:09.000000000 +0200
  81627. +++ uClibc-git/libpthread/linuxthreads/barrier.c 2014-06-02 17:40:34.970717276 +0200
  81628. @@ -14,9 +14,8 @@
  81629. Lesser General Public License for more details.
  81630. You should have received a copy of the GNU Lesser General Public
  81631. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  81632. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  81633. - Boston, MA 02111-1307, USA. */
  81634. + License along with the GNU C Library; see the file COPYING.LIB. If
  81635. + not, see <http://www.gnu.org/licenses/>. */
  81636. #include <errno.h>
  81637. #include "pthread.h"
  81638. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/cancel.c uClibc-git/libpthread/linuxthreads/cancel.c
  81639. --- uClibc-0.9.33.2/libpthread/linuxthreads/cancel.c 2012-05-15 09:20:09.000000000 +0200
  81640. +++ uClibc-git/libpthread/linuxthreads/cancel.c 2014-06-02 17:40:34.970717276 +0200
  81641. @@ -15,7 +15,6 @@
  81642. /* Thread cancellation */
  81643. #include <errno.h>
  81644. -#include <libc-internal.h>
  81645. #include "pthread.h"
  81646. #include "internals.h"
  81647. #include "spinlock.h"
  81648. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/.cvsignore uClibc-git/libpthread/linuxthreads/.cvsignore
  81649. --- uClibc-0.9.33.2/libpthread/linuxthreads/.cvsignore 2012-05-15 09:20:09.000000000 +0200
  81650. +++ uClibc-git/libpthread/linuxthreads/.cvsignore 1970-01-01 01:00:00.000000000 +0100
  81651. @@ -1,3 +0,0 @@
  81652. -.cvsignore
  81653. -*.os
  81654. -Makefile.in
  81655. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/descr.h uClibc-git/libpthread/linuxthreads/descr.h
  81656. --- uClibc-0.9.33.2/libpthread/linuxthreads/descr.h 2012-05-15 09:20:09.000000000 +0200
  81657. +++ uClibc-git/libpthread/linuxthreads/descr.h 2014-06-02 17:40:34.970717276 +0200
  81658. @@ -23,7 +23,7 @@
  81659. #include <stdint.h>
  81660. #include <sys/types.h>
  81661. #include <hp-timing.h>
  81662. -#ifdef USE_TLS
  81663. +#ifdef __UCLIBC_HAS_TLS__
  81664. #include <tls.h>
  81665. #endif
  81666. #include "uClibc-glue.h"
  81667. @@ -112,7 +112,7 @@
  81668. struct _pthread_descr_struct
  81669. {
  81670. -#if !defined USE_TLS || !TLS_DTV_AT_TP || INCLUDE_TLS_PADDING
  81671. +#if !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP || INCLUDE_TLS_PADDING
  81672. /* This overlaps tcbhead_t (see tls.h), as used for TLS without threads. */
  81673. union
  81674. {
  81675. @@ -157,7 +157,7 @@
  81676. char p_sigwaiting; /* true if a sigwait() is in progress */
  81677. struct pthread_start_args p_start_args; /* arguments for thread creation */
  81678. void ** p_specific[PTHREAD_KEY_1STLEVEL_SIZE]; /* thread-specific data */
  81679. -#if !(USE_TLS && HAVE___THREAD)
  81680. +#ifndef __UCLIBC_HAS_TLS__
  81681. void * p_libc_specific[_LIBC_TSD_KEY_N]; /* thread-specific data for libc */
  81682. int * p_errnop; /* pointer to used errno variable */
  81683. int p_errno; /* error returned by last system call */
  81684. @@ -185,7 +185,7 @@
  81685. #if HP_TIMING_AVAIL
  81686. hp_timing_t p_cpuclock_offset; /* Initial CPU clock for thread. */
  81687. #endif
  81688. -#ifdef USE_TLS
  81689. +#ifdef __UCLIBC_HAS_TLS__
  81690. char *p_stackaddr; /* Stack address. */
  81691. #endif
  81692. size_t p_alloca_cutoff; /* Maximum size which should be allocated
  81693. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/errno.c uClibc-git/libpthread/linuxthreads/errno.c
  81694. --- uClibc-0.9.33.2/libpthread/linuxthreads/errno.c 2012-05-15 09:20:09.000000000 +0200
  81695. +++ uClibc-git/libpthread/linuxthreads/errno.c 2014-06-02 17:40:34.970717276 +0200
  81696. @@ -20,7 +20,7 @@
  81697. #include "pthread.h"
  81698. #include "internals.h"
  81699. -#if !USE_TLS || !HAVE___THREAD
  81700. +#ifndef __UCLIBC_HAS_TLS__
  81701. /* The definition in libc is sufficient if we use TLS. */
  81702. int *
  81703. __errno_location (void)
  81704. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/events.c uClibc-git/libpthread/linuxthreads/events.c
  81705. --- uClibc-0.9.33.2/libpthread/linuxthreads/events.c 2012-05-15 09:20:09.000000000 +0200
  81706. +++ uClibc-git/libpthread/linuxthreads/events.c 2014-06-02 17:40:34.982717343 +0200
  81707. @@ -13,9 +13,8 @@
  81708. Lesser General Public License for more details.
  81709. You should have received a copy of the GNU Lesser General Public
  81710. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  81711. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  81712. - Boston, MA 02111-1307, USA. */
  81713. + License along with the GNU C Library; see the file COPYING.LIB. If
  81714. + not, see <http://www.gnu.org/licenses/>. */
  81715. /* The functions contained here do nothing, they just return. */
  81716. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/forward.c uClibc-git/libpthread/linuxthreads/forward.c
  81717. --- uClibc-0.9.33.2/libpthread/linuxthreads/forward.c 2012-05-15 09:20:09.000000000 +0200
  81718. +++ uClibc-git/libpthread/linuxthreads/forward.c 2014-06-02 17:40:34.982717343 +0200
  81719. @@ -13,9 +13,8 @@
  81720. Lesser General Public License for more details.
  81721. You should have received a copy of the GNU Lesser General Public
  81722. - License along with the GNU C Library; if not, write to the Free
  81723. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81724. - 02111-1307 USA. */
  81725. + License along with the GNU C Library; if not, see
  81726. + <http://www.gnu.org/licenses/>. */
  81727. #include <features.h>
  81728. #include <stdlib.h>
  81729. @@ -26,7 +25,7 @@
  81730. #include "internals.h"
  81731. /* Pointers to the libc functions. */
  81732. -struct pthread_functions __libc_pthread_functions attribute_hidden;
  81733. +struct pthread_functions __libc_pthread_functions;
  81734. # define FORWARD2(name, rettype, decl, params, defaction) \
  81735. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/internals.h uClibc-git/libpthread/linuxthreads/internals.h
  81736. --- uClibc-0.9.33.2/libpthread/linuxthreads/internals.h 2012-05-15 09:20:09.000000000 +0200
  81737. +++ uClibc-git/libpthread/linuxthreads/internals.h 2014-06-02 17:40:34.982717343 +0200
  81738. @@ -30,7 +30,7 @@
  81739. #include <bits/sigcontextinfo.h>
  81740. #include <bits/pthreadtypes.h>
  81741. -#ifdef USE_TLS
  81742. +#ifdef __UCLIBC_HAS_TLS__
  81743. #include <tls.h>
  81744. #endif
  81745. #include "descr.h"
  81746. @@ -200,19 +200,17 @@
  81747. /* The page size we can get from the system. This should likely not be
  81748. changed by the machine file but, you never know. */
  81749. -#ifndef PAGE_SIZE
  81750. -#define PAGE_SIZE (sysconf (_SC_PAGE_SIZE))
  81751. -#endif
  81752. +#define __PAGE_SIZE (sysconf (_SC_PAGESIZE))
  81753. -/* The initial size of the thread stack. Must be a multiple of PAGE_SIZE. */
  81754. +/* The initial size of the thread stack. Must be a multiple of __PAGE_SIZE. */
  81755. #ifndef INITIAL_STACK_SIZE
  81756. -#define INITIAL_STACK_SIZE (4 * PAGE_SIZE)
  81757. +#define INITIAL_STACK_SIZE (4 * __PAGE_SIZE)
  81758. #endif
  81759. /* Size of the thread manager stack. The "- 32" avoids wasting space
  81760. with some malloc() implementations. */
  81761. #ifndef THREAD_MANAGER_STACK_SIZE
  81762. -#define THREAD_MANAGER_STACK_SIZE (2 * PAGE_SIZE - 32)
  81763. +#define THREAD_MANAGER_STACK_SIZE (2 * __PAGE_SIZE - 32)
  81764. #endif
  81765. /* The base of the "array" of thread stacks. The array will grow down from
  81766. @@ -285,7 +283,7 @@
  81767. extern void __pthread_perform_cleanup (char *currentframe);
  81768. extern void __pthread_init_max_stacksize (void);
  81769. extern int __pthread_initialize_manager (void);
  81770. -extern void __pthread_message (const char * fmt, ...);
  81771. +extern void __pthread_message (const char * fmt, ...) attribute_hidden;
  81772. extern int __pthread_manager (void *reqfd);
  81773. extern int __pthread_manager_event (void *reqfd);
  81774. extern void __pthread_manager_sighandler (int sig);
  81775. @@ -347,7 +345,7 @@
  81776. int *__kind);
  81777. extern void __pthread_kill_other_threads_np (void);
  81778. extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
  81779. - __const pthread_mutexattr_t *__mutex_attr);
  81780. + const pthread_mutexattr_t *__mutex_attr);
  81781. extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
  81782. extern int __pthread_mutex_lock (pthread_mutex_t *__mutex);
  81783. extern int __pthread_mutex_trylock (pthread_mutex_t *__mutex);
  81784. @@ -393,14 +391,14 @@
  81785. extern void __pthread_sigsuspend (const sigset_t *mask) attribute_hidden;
  81786. extern int __pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
  81787. - __const struct timespec *__restrict
  81788. + const struct timespec *__restrict
  81789. __abstime);
  81790. extern int __pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
  81791. - __const struct timespec *__restrict
  81792. + const struct timespec *__restrict
  81793. __abstime);
  81794. extern int __pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr);
  81795. -extern int __pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
  81796. +extern int __pthread_barrierattr_getpshared (const pthread_barrierattr_t *
  81797. __restrict __attr,
  81798. int *__restrict __pshared);
  81799. @@ -440,10 +438,12 @@
  81800. extern void __pthread_initialize (void);
  81801. /* TSD. */
  81802. +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
  81803. extern int __pthread_internal_tsd_set (int key, const void * pointer);
  81804. extern void * __pthread_internal_tsd_get (int key);
  81805. extern void ** __attribute__ ((__const__))
  81806. __pthread_internal_tsd_address (int key);
  81807. +#endif
  81808. /* Sighandler wrappers. */
  81809. extern void __pthread_sighandler(int signo, SIGCONTEXT ctx);
  81810. @@ -508,8 +508,6 @@
  81811. # define LIBC_CANCEL_HANDLED() /* Nothing. */
  81812. #endif
  81813. -extern int * __libc_pthread_init (const struct pthread_functions *functions);
  81814. -
  81815. #if !defined NOT_IN_libc && !defined FLOATING_STACKS
  81816. # ifdef SHARED
  81817. # define thread_self() \
  81818. @@ -520,7 +518,7 @@
  81819. # endif
  81820. #endif
  81821. -#ifndef USE_TLS
  81822. +#ifndef __UCLIBC_HAS_TLS__
  81823. # define __manager_thread (&__pthread_manager_thread)
  81824. #else
  81825. # define __manager_thread __pthread_manager_threadp
  81826. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/libc-cancellation.c uClibc-git/libpthread/linuxthreads/libc-cancellation.c
  81827. --- uClibc-0.9.33.2/libpthread/linuxthreads/libc-cancellation.c 2012-05-15 09:20:09.000000000 +0200
  81828. +++ uClibc-git/libpthread/linuxthreads/libc-cancellation.c 2014-06-02 17:40:34.982717343 +0200
  81829. @@ -13,9 +13,8 @@
  81830. Lesser General Public License for more details.
  81831. You should have received a copy of the GNU Lesser General Public
  81832. - License along with the GNU C Library; if not, write to the Free
  81833. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81834. - 02111-1307 USA. */
  81835. + License along with the GNU C Library; if not, see
  81836. + <http://www.gnu.org/licenses/>. */
  81837. #include <errno.h>
  81838. #include <rpc/rpc.h>
  81839. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/libc_pthread_init.c uClibc-git/libpthread/linuxthreads/libc_pthread_init.c
  81840. --- uClibc-0.9.33.2/libpthread/linuxthreads/libc_pthread_init.c 2012-05-15 09:20:09.000000000 +0200
  81841. +++ uClibc-git/libpthread/linuxthreads/libc_pthread_init.c 2014-06-02 17:40:34.982717343 +0200
  81842. @@ -13,14 +13,13 @@
  81843. Lesser General Public License for more details.
  81844. You should have received a copy of the GNU Lesser General Public
  81845. - License along with the GNU C Library; if not, write to the Free
  81846. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  81847. - 02111-1307 USA. */
  81848. + License along with the GNU C Library; if not, see
  81849. + <http://www.gnu.org/licenses/>. */
  81850. #include <locale.h>
  81851. #include <stdlib.h>
  81852. #include <string.h>
  81853. -#ifdef USE_TLS
  81854. +#ifdef __UCLIBC_HAS_TLS__
  81855. #include <tls.h>
  81856. #endif
  81857. #include "internals.h"
  81858. @@ -31,8 +30,7 @@
  81859. int *
  81860. -__libc_pthread_init (functions)
  81861. - const struct pthread_functions *functions;
  81862. +__libc_pthread_init(const struct pthread_functions *functions)
  81863. {
  81864. #ifdef SHARED
  81865. /* We copy the content of the variable pointed to by the FUNCTIONS
  81866. @@ -42,7 +40,7 @@
  81867. sizeof (__libc_pthread_functions));
  81868. #endif
  81869. -#if !(USE_TLS && HAVE___THREAD)
  81870. +#ifndef __UCLIBC_HAS_TLS__
  81871. /* Initialize thread-locale current locale to point to the global one.
  81872. With __thread support, the variable's initializer takes care of this. */
  81873. __uselocale (LC_GLOBAL_LOCALE);
  81874. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/lockfile.c uClibc-git/libpthread/linuxthreads/lockfile.c
  81875. --- uClibc-0.9.33.2/libpthread/linuxthreads/lockfile.c 2012-05-15 09:20:09.000000000 +0200
  81876. +++ uClibc-git/libpthread/linuxthreads/lockfile.c 2014-06-02 17:40:34.982717343 +0200
  81877. @@ -13,9 +13,8 @@
  81878. Lesser General Public License for more details.
  81879. You should have received a copy of the GNU Lesser General Public
  81880. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  81881. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  81882. - Boston, MA 02111-1307, USA. */
  81883. + License along with the GNU C Library; see the file COPYING.LIB. If
  81884. + not, see <http://www.gnu.org/licenses/>. */
  81885. #include <bits/libc-lock.h>
  81886. #include <stdio.h>
  81887. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/manager.c uClibc-git/libpthread/linuxthreads/manager.c
  81888. --- uClibc-0.9.33.2/libpthread/linuxthreads/manager.c 2012-05-15 09:20:09.000000000 +0200
  81889. +++ uClibc-git/libpthread/linuxthreads/manager.c 2014-06-02 17:40:34.982717343 +0200
  81890. @@ -126,7 +126,7 @@
  81891. #ifdef INIT_THREAD_SELF
  81892. INIT_THREAD_SELF(self, 1);
  81893. #endif
  81894. -#if !(USE_TLS && HAVE___THREAD)
  81895. +#ifndef __UCLIBC_HAS_TLS__
  81896. /* Set the error variable. */
  81897. self->p_errnop = &self->p_errno;
  81898. self->p_h_errnop = &self->p_h_errno;
  81899. @@ -289,7 +289,7 @@
  81900. __sched_setscheduler(THREAD_GETMEM(self, p_pid),
  81901. SCHED_OTHER, &default_params);
  81902. }
  81903. -#if !(USE_TLS && HAVE___THREAD)
  81904. +#ifndef __UCLIBC_HAS_TLS__
  81905. /* Initialize thread-locale current locale to point to the global one.
  81906. With __thread support, the variable's initializer takes care of this. */
  81907. __uselocale (LC_GLOBAL_LOCALE);
  81908. @@ -333,7 +333,7 @@
  81909. pthread_start_thread (arg);
  81910. }
  81911. -#if defined USE_TLS && !FLOATING_STACKS
  81912. +#if defined __UCLIBC_HAS_TLS__ && !FLOATING_STACKS
  81913. # error "TLS can only work with floating stacks"
  81914. #endif
  81915. @@ -351,7 +351,7 @@
  81916. char * guardaddr;
  81917. size_t stacksize, guardsize;
  81918. -#ifdef USE_TLS
  81919. +#ifdef __UCLIBC_HAS_TLS__
  81920. /* TLS cannot work with fixed thread descriptor addresses. */
  81921. assert (default_new_thread == NULL);
  81922. #endif
  81923. @@ -360,7 +360,7 @@
  81924. {
  81925. #ifdef _STACK_GROWS_UP
  81926. /* The user provided a stack. */
  81927. -# ifdef USE_TLS
  81928. +# ifdef __UCLIBC_HAS_TLS__
  81929. /* This value is not needed. */
  81930. new_thread = (pthread_descr) attr->__stackaddr;
  81931. new_thread_bottom = (char *) new_thread;
  81932. @@ -381,7 +381,7 @@
  81933. addresses, stackaddr would be the lowest address in the stack
  81934. segment, so that it is consistently close to the initial sp
  81935. value. */
  81936. -# ifdef USE_TLS
  81937. +# ifdef __UCLIBC_HAS_TLS__
  81938. new_thread = (pthread_descr) attr->__stackaddr;
  81939. # else
  81940. new_thread =
  81941. @@ -394,7 +394,7 @@
  81942. #ifndef THREAD_SELF
  81943. __pthread_nonstandard_stacks = 1;
  81944. #endif
  81945. -#ifndef USE_TLS
  81946. +#ifndef __UCLIBC_HAS_TLS__
  81947. /* Clear the thread data structure. */
  81948. memset (new_thread, '\0', sizeof (*new_thread));
  81949. #endif
  81950. @@ -438,7 +438,7 @@
  81951. mprotect (guardaddr, guardsize, PROT_NONE);
  81952. new_thread_bottom = (char *) map_addr;
  81953. -# ifdef USE_TLS
  81954. +# ifdef __UCLIBC_HAS_TLS__
  81955. new_thread = ((pthread_descr) (new_thread_bottom + stacksize
  81956. + guardsize));
  81957. # else
  81958. @@ -451,7 +451,7 @@
  81959. mprotect (guardaddr, guardsize, PROT_NONE);
  81960. new_thread_bottom = (char *) map_addr + guardsize;
  81961. -# ifdef USE_TLS
  81962. +# ifdef __UCLIBC_HAS_TLS__
  81963. new_thread = ((pthread_descr) (new_thread_bottom + stacksize));
  81964. # else
  81965. new_thread = ((pthread_descr) (new_thread_bottom + stacksize)) - 1;
  81966. @@ -462,7 +462,7 @@
  81967. mprotect (guardaddr, guardsize, PROT_NONE);
  81968. new_thread = (pthread_descr) map_addr;
  81969. -# ifdef USE_TLS
  81970. +# ifdef __UCLIBC_HAS_TLS__
  81971. new_thread_bottom = (char *) new_thread;
  81972. # else
  81973. new_thread_bottom = (char *) (new_thread + 1);
  81974. @@ -597,7 +597,7 @@
  81975. int pagesize = __getpagesize();
  81976. int saved_errno = 0;
  81977. -#ifdef USE_TLS
  81978. +#ifdef __UCLIBC_HAS_TLS__
  81979. new_thread = _dl_allocate_tls (NULL);
  81980. if (new_thread == NULL)
  81981. return EAGAIN;
  81982. @@ -621,7 +621,7 @@
  81983. {
  81984. if (sseg >= PTHREAD_THREADS_MAX)
  81985. {
  81986. -#ifdef USE_TLS
  81987. +#ifdef __UCLIBC_HAS_TLS__
  81988. # if defined(TLS_DTV_AT_TP)
  81989. new_thread = (pthread_descr) ((char *) new_thread + TLS_PRE_TCB_SIZE);
  81990. # endif
  81991. @@ -635,7 +635,7 @@
  81992. pagesize, &stack_addr, &new_thread_bottom,
  81993. &guardaddr, &guardsize, &stksize) == 0)
  81994. {
  81995. -#ifdef USE_TLS
  81996. +#ifdef __UCLIBC_HAS_TLS__
  81997. new_thread->p_stackaddr = stack_addr;
  81998. #else
  81999. new_thread = (pthread_descr) stack_addr;
  82000. @@ -657,18 +657,18 @@
  82001. new_thread_id = sseg + pthread_threads_counter;
  82002. /* Initialize the thread descriptor. Elements which have to be
  82003. initialized to zero already have this value. */
  82004. -#if !defined USE_TLS || !TLS_DTV_AT_TP
  82005. +#if !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP
  82006. new_thread->p_header.data.tcb = new_thread;
  82007. new_thread->p_header.data.self = new_thread;
  82008. #endif
  82009. -#if TLS_MULTIPLE_THREADS_IN_TCB || !defined USE_TLS || !TLS_DTV_AT_TP
  82010. +#if TLS_MULTIPLE_THREADS_IN_TCB || !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP
  82011. new_thread->p_multiple_threads = 1;
  82012. #endif
  82013. new_thread->p_tid = new_thread_id;
  82014. new_thread->p_lock = &(__pthread_handles[sseg].h_lock);
  82015. new_thread->p_cancelstate = PTHREAD_CANCEL_ENABLE;
  82016. new_thread->p_canceltype = PTHREAD_CANCEL_DEFERRED;
  82017. -#if !(USE_TLS && HAVE___THREAD)
  82018. +#ifndef __UCLIBC_HAS_TLS__
  82019. new_thread->p_errnop = &new_thread->p_errno;
  82020. new_thread->p_h_errnop = &new_thread->p_h_errno;
  82021. new_thread->p_resp = &new_thread->p_res;
  82022. @@ -807,7 +807,7 @@
  82023. munmap((caddr_t)new_thread_bottom,
  82024. 2 * stacksize + new_thread->p_guardsize);
  82025. #elif defined _STACK_GROWS_UP
  82026. -# ifdef USE_TLS
  82027. +# ifdef __UCLIBC_HAS_TLS__
  82028. size_t stacksize = guardaddr - stack_addr;
  82029. munmap(stack_addr, stacksize + guardsize);
  82030. # else
  82031. @@ -815,7 +815,7 @@
  82032. munmap(new_thread, stacksize + guardsize);
  82033. # endif
  82034. #else
  82035. -# ifdef USE_TLS
  82036. +# ifdef __UCLIBC_HAS_TLS__
  82037. size_t stacksize = stack_addr - new_thread_bottom;
  82038. # else
  82039. size_t stacksize = (char *)(new_thread+1) - new_thread_bottom;
  82040. @@ -823,7 +823,7 @@
  82041. munmap(new_thread_bottom - guardsize, guardsize + stacksize);
  82042. #endif
  82043. }
  82044. -#ifdef USE_TLS
  82045. +#ifdef __UCLIBC_HAS_TLS__
  82046. # if defined(TLS_DTV_AT_TP)
  82047. new_thread = (pthread_descr) ((char *) new_thread + TLS_PRE_TCB_SIZE);
  82048. # endif
  82049. @@ -890,7 +890,7 @@
  82050. /* Free the stack and thread descriptor area */
  82051. char *guardaddr = th->p_guardaddr;
  82052. #ifdef _STACK_GROWS_UP
  82053. -# ifdef USE_TLS
  82054. +# ifdef __UCLIBC_HAS_TLS__
  82055. size_t stacksize = guardaddr - th->p_stackaddr;
  82056. guardaddr = th->p_stackaddr;
  82057. # else
  82058. @@ -900,7 +900,7 @@
  82059. #else
  82060. /* Guardaddr is always set, even if guardsize is 0. This allows
  82061. us to compute everything else. */
  82062. -# ifdef USE_TLS
  82063. +# ifdef __UCLIBC_HAS_TLS__
  82064. size_t stacksize = th->p_stackaddr - guardaddr - guardsize;
  82065. # else
  82066. size_t stacksize = (char *)(th+1) - guardaddr - guardsize;
  82067. @@ -916,7 +916,7 @@
  82068. }
  82069. -#ifdef USE_TLS
  82070. +#ifdef __UCLIBC_HAS_TLS__
  82071. # if defined(TLS_DTV_AT_TP)
  82072. th = (pthread_descr) ((char *) th + TLS_PRE_TCB_SIZE);
  82073. # endif
  82074. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/ptcleanup.c uClibc-git/libpthread/linuxthreads/ptcleanup.c
  82075. --- uClibc-0.9.33.2/libpthread/linuxthreads/ptcleanup.c 2012-05-15 09:20:09.000000000 +0200
  82076. +++ uClibc-git/libpthread/linuxthreads/ptcleanup.c 2014-06-02 17:40:34.982717343 +0200
  82077. @@ -20,8 +20,8 @@
  82078. #include <setjmp.h>
  82079. #include "pthread.h"
  82080. #include "internals.h"
  82081. -#ifndef NO_PTR_DEMANGLE
  82082. #include <jmpbuf-unwind.h>
  82083. +#ifndef NO_PTR_DEMANGLE
  82084. #define __JMPBUF_UNWINDS(a,b,c) _JMPBUF_UNWINDS(a,b,c)
  82085. #else
  82086. #define __JMPBUF_UNWINDS(a,b,c) _JMPBUF_UNWINDS(a,b)
  82087. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/ptclock_gettime.c uClibc-git/libpthread/linuxthreads/ptclock_gettime.c
  82088. --- uClibc-0.9.33.2/libpthread/linuxthreads/ptclock_gettime.c 2012-05-15 09:20:09.000000000 +0200
  82089. +++ uClibc-git/libpthread/linuxthreads/ptclock_gettime.c 2014-06-02 17:40:34.982717343 +0200
  82090. @@ -12,13 +12,11 @@
  82091. Lesser General Public License for more details.
  82092. You should have received a copy of the GNU Lesser General Public
  82093. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82094. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82095. - Boston, MA 02111-1307, USA. */
  82096. + License along with the GNU C Library; see the file COPYING.LIB. If
  82097. + not, see <http://www.gnu.org/licenses/>. */
  82098. #include <errno.h>
  82099. #include <time.h>
  82100. -#include <libc-internal.h>
  82101. #include "internals.h"
  82102. #include "spinlock.h"
  82103. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/ptclock_settime.c uClibc-git/libpthread/linuxthreads/ptclock_settime.c
  82104. --- uClibc-0.9.33.2/libpthread/linuxthreads/ptclock_settime.c 2012-05-15 09:20:09.000000000 +0200
  82105. +++ uClibc-git/libpthread/linuxthreads/ptclock_settime.c 2014-06-02 17:40:34.982717343 +0200
  82106. @@ -12,13 +12,11 @@
  82107. Lesser General Public License for more details.
  82108. You should have received a copy of the GNU Lesser General Public
  82109. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82110. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82111. - Boston, MA 02111-1307, USA. */
  82112. + License along with the GNU C Library; see the file COPYING.LIB. If
  82113. + not, see <http://www.gnu.org/licenses/>. */
  82114. #include <errno.h>
  82115. #include <time.h>
  82116. -#include <libc-internal.h>
  82117. #include "internals.h"
  82118. #include "spinlock.h"
  82119. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/ptfork.c uClibc-git/libpthread/linuxthreads/ptfork.c
  82120. --- uClibc-0.9.33.2/libpthread/linuxthreads/ptfork.c 2012-05-15 09:20:09.000000000 +0200
  82121. +++ uClibc-git/libpthread/linuxthreads/ptfork.c 2014-06-02 17:40:34.986717365 +0200
  82122. @@ -23,8 +23,6 @@
  82123. #include <bits/libc-lock.h>
  82124. #include "fork.h"
  82125. -extern int __libc_fork (void);
  82126. -
  82127. pid_t __pthread_fork (struct fork_block *b)
  82128. {
  82129. pid_t pid;
  82130. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_atfork.c uClibc-git/libpthread/linuxthreads/pthread_atfork.c
  82131. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_atfork.c 2012-05-15 09:20:09.000000000 +0200
  82132. +++ uClibc-git/libpthread/linuxthreads/pthread_atfork.c 2014-06-02 17:40:34.986717365 +0200
  82133. @@ -30,9 +30,8 @@
  82134. Lesser General Public License for more details.
  82135. You should have received a copy of the GNU Lesser General Public
  82136. - License along with the GNU C Library; if not, write to the Free
  82137. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82138. - 02111-1307 USA. */
  82139. + License along with the GNU C Library; if not, see
  82140. + <http://www.gnu.org/licenses/>. */
  82141. #include "internals.h"
  82142. #include <fork.h>
  82143. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread.c uClibc-git/libpthread/linuxthreads/pthread.c
  82144. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread.c 2012-05-15 09:20:09.000000000 +0200
  82145. +++ uClibc-git/libpthread/linuxthreads/pthread.c 2014-06-02 17:40:34.986717365 +0200
  82146. @@ -37,10 +37,7 @@
  82147. # error "This must not happen"
  82148. #endif
  82149. -/* mods for uClibc: __libc_sigaction is not in any standard headers */
  82150. -extern __typeof(sigaction) __libc_sigaction;
  82151. -
  82152. -#if !(USE_TLS && HAVE___THREAD)
  82153. +#ifndef __UCLIBC_HAS_TLS__
  82154. /* These variables are used by the setup code. */
  82155. extern int _errno;
  82156. extern int _h_errno;
  82157. @@ -53,7 +50,7 @@
  82158. # endif
  82159. #endif
  82160. -#ifdef USE_TLS
  82161. +#ifdef __UCLIBC_HAS_TLS__
  82162. /* We need only a few variables. */
  82163. #define manager_thread __pthread_manager_threadp
  82164. @@ -70,7 +67,7 @@
  82165. .p_tid = PTHREAD_THREADS_MAX,
  82166. .p_lock = &__pthread_handles[0].h_lock,
  82167. .p_start_args = PTHREAD_START_ARGS_INITIALIZER(NULL),
  82168. -#if !(USE_TLS && HAVE___THREAD)
  82169. +#ifndef __UCLIBC_HAS_TLS__
  82170. .p_errnop = &_errno,
  82171. .p_h_errnop = &_h_errno,
  82172. #endif
  82173. @@ -89,7 +86,7 @@
  82174. .p_header.data.multiple_threads = 1,
  82175. .p_lock = &__pthread_handles[1].h_lock,
  82176. .p_start_args = PTHREAD_START_ARGS_INITIALIZER(__pthread_manager),
  82177. -#if !(USE_TLS && HAVE___THREAD)
  82178. +#ifndef __UCLIBC_HAS_TLS__
  82179. .p_errnop = &__pthread_manager_thread.p_errno,
  82180. #endif
  82181. .p_nr = 1,
  82182. @@ -101,7 +98,7 @@
  82183. /* Pointer to the main thread (the father of the thread manager thread) */
  82184. /* Originally, this is the initial thread, but this changes after fork() */
  82185. -#ifdef USE_TLS
  82186. +#ifdef __UCLIBC_HAS_TLS__
  82187. pthread_descr __pthread_main_thread;
  82188. #else
  82189. pthread_descr __pthread_main_thread = &__pthread_initial_thread;
  82190. @@ -227,13 +224,13 @@
  82191. #endif
  82192. -#if defined USE_TLS && !defined SHARED
  82193. +#if defined __UCLIBC_HAS_TLS__ && !defined SHARED
  82194. extern void __libc_setup_tls (size_t tcbsize, size_t tcbalign);
  82195. #endif
  82196. struct pthread_functions __pthread_functions =
  82197. {
  82198. -#if !(USE_TLS && HAVE___THREAD)
  82199. +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
  82200. .ptr_pthread_internal_tsd_set = __pthread_internal_tsd_set,
  82201. .ptr_pthread_internal_tsd_get = __pthread_internal_tsd_get,
  82202. .ptr_pthread_internal_tsd_address = __pthread_internal_tsd_address,
  82203. @@ -295,7 +292,7 @@
  82204. void
  82205. __pthread_initialize_minimal(void)
  82206. {
  82207. -#ifdef USE_TLS
  82208. +#ifdef __UCLIBC_HAS_TLS__
  82209. pthread_descr self;
  82210. /* First of all init __pthread_handles[0] and [1] if needed. */
  82211. @@ -307,7 +304,7 @@
  82212. /* Unlike in the dynamically linked case the dynamic linker has not
  82213. taken care of initializing the TLS data structures. */
  82214. __libc_setup_tls (TLS_TCB_SIZE, TLS_TCB_ALIGN);
  82215. -# elif !USE___THREAD
  82216. +# elif !defined __UCLIBC_HAS_TLS__
  82217. if (__builtin_expect (GL(dl_tls_dtv_slotinfo_list) == NULL, 0))
  82218. {
  82219. tcbhead_t *tcbp;
  82220. @@ -363,7 +360,7 @@
  82221. self->p_nextlive = self->p_prevlive = self;
  82222. self->p_tid = PTHREAD_THREADS_MAX;
  82223. self->p_lock = &__pthread_handles[0].h_lock;
  82224. -# ifndef HAVE___THREAD
  82225. +# ifndef __UCLIBC_HAS_TLS__
  82226. self->p_errnop = &_errno;
  82227. self->p_h_errnop = &_h_errno;
  82228. # endif
  82229. @@ -380,7 +377,7 @@
  82230. /* And fill in the pointer the the thread __pthread_handles array. */
  82231. __pthread_handles[0].h_descr = self;
  82232. -#else /* USE_TLS */
  82233. +#else /* __UCLIBC_HAS_TLS__ */
  82234. /* First of all init __pthread_handles[0] and [1]. */
  82235. # if __LT_SPINLOCK_INIT != 0
  82236. @@ -398,7 +395,7 @@
  82237. #endif
  82238. #if HP_TIMING_AVAIL
  82239. -# ifdef USE_TLS
  82240. +# ifdef __UCLIBC_HAS_TLS__
  82241. self->p_cpuclock_offset = GL(dl_cpuclock_offset);
  82242. # else
  82243. __pthread_initial_thread.p_cpuclock_offset = GL(dl_cpuclock_offset);
  82244. @@ -442,7 +439,7 @@
  82245. __pthread_max_stacksize = max_stack;
  82246. if (max_stack / 4 < __MAX_ALLOCA_CUTOFF)
  82247. {
  82248. -#ifdef USE_TLS
  82249. +#ifdef __UCLIBC_HAS_TLS__
  82250. pthread_descr self = THREAD_SELF;
  82251. self->p_alloca_cutoff = max_stack / 4;
  82252. #else
  82253. @@ -451,10 +448,8 @@
  82254. }
  82255. }
  82256. -/* psm: we do not have any ld.so support yet
  82257. - * remove the USE_TLS guard if nptl is added */
  82258. -#if defined SHARED && defined USE_TLS
  82259. -# if USE___THREAD
  82260. +#if defined SHARED && defined __UCLIBC_HAS_TLS__
  82261. +# ifdef __UCLIBC_HAS_TLS__
  82262. /* When using __thread for this, we do it in libc so as not
  82263. to give libpthread its own TLS segment just for this. */
  82264. extern void **__libc_dl_error_tsd (void) __attribute__ ((const));
  82265. @@ -467,7 +462,7 @@
  82266. # endif
  82267. #endif
  82268. -#ifdef USE_TLS
  82269. +#ifdef __UCLIBC_HAS_TLS__
  82270. static __inline__ void __attribute__((always_inline))
  82271. init_one_static_tls (pthread_descr descr, struct link_map *map)
  82272. {
  82273. @@ -486,7 +481,7 @@
  82274. dtv[map->l_tls_modid].pointer.is_static = true;
  82275. /* Initialize the memory. */
  82276. - memset (__mempcpy (dest, map->l_tls_initimage, map->l_tls_initimage_size),
  82277. + memset (mempcpy (dest, map->l_tls_initimage, map->l_tls_initimage_size),
  82278. '\0', map->l_tls_blocksize - map->l_tls_initimage_size);
  82279. }
  82280. @@ -536,10 +531,10 @@
  82281. (char *)(((long)CURRENT_STACK_FRAME - 2 * STACK_SIZE) & ~(STACK_SIZE - 1));
  82282. # endif
  82283. #endif
  82284. -#ifdef USE_TLS
  82285. +#ifdef __UCLIBC_HAS_TLS__
  82286. /* Update the descriptor for the initial thread. */
  82287. THREAD_SETMEM (((pthread_descr) NULL), p_pid, __getpid());
  82288. -# if !defined HAVE___THREAD && defined __UCLIBC_HAS_RESOLVER_SUPPORT__
  82289. +# if defined __UCLIBC_HAS_RESOLVER_SUPPORT__
  82290. /* Likewise for the resolver state _res. */
  82291. THREAD_SETMEM (((pthread_descr) NULL), p_resp, __resp);
  82292. # endif
  82293. @@ -590,9 +585,7 @@
  82294. /* How many processors. */
  82295. __pthread_smp_kernel = is_smp_system ();
  82296. -/* psm: we do not have any ld.so support yet
  82297. - * remove the USE_TLS guard if nptl is added */
  82298. -#if defined SHARED && defined USE_TLS
  82299. +#if defined SHARED && defined __UCLIBC_HAS_TLS__
  82300. /* Transfer the old value from the dynamic linker's internal location. */
  82301. *__libc_dl_error_tsd () = *(*GL(dl_error_catch_tsd)) ();
  82302. GL(dl_error_catch_tsd) = &__libc_dl_error_tsd;
  82303. @@ -607,7 +600,7 @@
  82304. __pthread_mutex_lock (&GL(dl_load_lock).mutex);
  82305. #endif
  82306. -#ifdef USE_TLS
  82307. +#ifdef __UCLIBC_HAS_TLS__
  82308. GL(dl_init_static_tls) = &__pthread_init_static_tls;
  82309. #endif
  82310. @@ -635,12 +628,12 @@
  82311. struct pthread_request request;
  82312. int report_events;
  82313. pthread_descr mgr;
  82314. -#ifdef USE_TLS
  82315. +#ifdef __UCLIBC_HAS_TLS__
  82316. tcbhead_t *tcbp;
  82317. #endif
  82318. __pthread_multiple_threads = 1;
  82319. -#if TLS_MULTIPLE_THREADS_IN_TCB || !defined USE_TLS || !TLS_DTV_AT_TP
  82320. +#if TLS_MULTIPLE_THREADS_IN_TCB || !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP
  82321. __pthread_main_thread->p_multiple_threads = 1;
  82322. #endif
  82323. *__libc_multiple_threads_ptr = 1;
  82324. @@ -667,7 +660,7 @@
  82325. return -1;
  82326. }
  82327. -#ifdef USE_TLS
  82328. +#ifdef __UCLIBC_HAS_TLS__
  82329. /* Allocate memory for the thread descriptor and the dtv. */
  82330. tcbp = _dl_allocate_tls (NULL);
  82331. if (tcbp == NULL) {
  82332. @@ -687,7 +680,7 @@
  82333. __pthread_handles[1].h_descr = manager_thread = mgr;
  82334. /* Initialize the descriptor. */
  82335. -#if !defined USE_TLS || !TLS_DTV_AT_TP
  82336. +#if !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP
  82337. mgr->p_header.data.tcb = tcbp;
  82338. mgr->p_header.data.self = mgr;
  82339. mgr->p_header.data.multiple_threads = 1;
  82340. @@ -695,7 +688,7 @@
  82341. mgr->p_multiple_threads = 1;
  82342. #endif
  82343. mgr->p_lock = &__pthread_handles[1].h_lock;
  82344. -# ifndef HAVE___THREAD
  82345. +# ifndef __UCLIBC_HAS_TLS__
  82346. mgr->p_errnop = &mgr->p_errno;
  82347. # endif
  82348. mgr->p_start_args = (struct pthread_start_args) PTHREAD_START_ARGS_INITIALIZER(__pthread_manager);
  82349. @@ -713,7 +706,7 @@
  82350. /* Start the thread manager */
  82351. pid = 0;
  82352. -#ifdef USE_TLS
  82353. +#ifdef __UCLIBC_HAS_TLS__
  82354. if (__linuxthreads_initial_report_events != 0)
  82355. THREAD_SETMEM (((pthread_descr) NULL), p_report_events,
  82356. __linuxthreads_initial_report_events);
  82357. @@ -732,7 +725,7 @@
  82358. uint32_t mask = __td_eventmask (TD_CREATE);
  82359. uint32_t event_bits;
  82360. -#ifdef USE_TLS
  82361. +#ifdef __UCLIBC_HAS_TLS__
  82362. event_bits = THREAD_GETMEM_NC (((pthread_descr) NULL),
  82363. p_eventbuf.eventmask.event_bits[idx]);
  82364. #else
  82365. @@ -798,7 +791,7 @@
  82366. #endif
  82367. }
  82368. if (__builtin_expect (pid, 0) == -1) {
  82369. -#ifdef USE_TLS
  82370. +#ifdef __UCLIBC_HAS_TLS__
  82371. _dl_deallocate_tls (tcbp, true);
  82372. #endif
  82373. free(__pthread_manager_thread_bos);
  82374. @@ -900,7 +893,7 @@
  82375. if (sp >= __pthread_manager_thread_bos && sp < __pthread_manager_thread_tos)
  82376. return manager_thread;
  82377. h = __pthread_handles + 2;
  82378. -# ifdef USE_TLS
  82379. +# ifdef __UCLIBC_HAS_TLS__
  82380. # ifdef _STACK_GROWS_UP
  82381. while (h->h_descr == NULL
  82382. || ! (sp >= h->h_descr->p_stackaddr && sp < h->h_descr->p_guardaddr))
  82383. @@ -994,7 +987,7 @@
  82384. children, so that timings for main thread account for all threads. */
  82385. if (self == __pthread_main_thread)
  82386. {
  82387. -#ifdef USE_TLS
  82388. +#ifdef __UCLIBC_HAS_TLS__
  82389. waitpid(manager_thread->p_pid, NULL, __WCLONE);
  82390. #else
  82391. waitpid(__pthread_manager_thread.p_pid, NULL, __WCLONE);
  82392. @@ -1002,7 +995,7 @@
  82393. /* Since all threads have been asynchronously terminated
  82394. (possibly holding locks), free cannot be used any more.
  82395. For mtrace, we'd like to print something though. */
  82396. - /* #ifdef USE_TLS
  82397. + /* #ifdef __UCLIBC_HAS_TLS__
  82398. tcbhead_t *tcbp = (tcbhead_t *) manager_thread;
  82399. # if defined(TLS_DTV_AT_TP)
  82400. tcbp = (tcbhead_t) ((char *) tcbp + TLS_PRE_TCB_SIZE);
  82401. @@ -1060,7 +1053,7 @@
  82402. /* Main thread should accumulate times for thread manager and its
  82403. children, so that timings for main thread account for all threads. */
  82404. if (self == __pthread_main_thread) {
  82405. -#ifdef USE_TLS
  82406. +#ifdef __UCLIBC_HAS_TLS__
  82407. waitpid(manager_thread->p_pid, NULL, __WCLONE);
  82408. #else
  82409. waitpid(__pthread_manager_thread.p_pid, NULL, __WCLONE);
  82410. @@ -1121,7 +1114,7 @@
  82411. __pthread_main_thread = self;
  82412. THREAD_SETMEM(self, p_nextlive, self);
  82413. THREAD_SETMEM(self, p_prevlive, self);
  82414. -#if !(USE_TLS && HAVE___THREAD)
  82415. +#ifndef __UCLIBC_HAS_TLS__
  82416. /* Now this thread modifies the global variables. */
  82417. THREAD_SETMEM(self, p_errnop, &_errno);
  82418. THREAD_SETMEM(self, p_h_errnop, &_h_errno);
  82419. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setegid.c uClibc-git/libpthread/linuxthreads/pthread_setegid.c
  82420. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setegid.c 2012-05-15 09:20:09.000000000 +0200
  82421. +++ uClibc-git/libpthread/linuxthreads/pthread_setegid.c 2014-06-02 17:40:34.990717386 +0200
  82422. @@ -12,9 +12,8 @@
  82423. Lesser General Public License for more details.
  82424. You should have received a copy of the GNU Lesser General Public
  82425. - License along with the GNU C Library; if not, write to the Free
  82426. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82427. - 02111-1307 USA. */
  82428. + License along with the GNU C Library; if not, see
  82429. + <http://www.gnu.org/licenses/>. */
  82430. #include <pthread.h>
  82431. #include <unistd.h>
  82432. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_seteuid.c uClibc-git/libpthread/linuxthreads/pthread_seteuid.c
  82433. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_seteuid.c 2012-05-15 09:20:09.000000000 +0200
  82434. +++ uClibc-git/libpthread/linuxthreads/pthread_seteuid.c 2014-06-02 17:40:34.990717386 +0200
  82435. @@ -12,9 +12,8 @@
  82436. Lesser General Public License for more details.
  82437. You should have received a copy of the GNU Lesser General Public
  82438. - License along with the GNU C Library; if not, write to the Free
  82439. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82440. - 02111-1307 USA. */
  82441. + License along with the GNU C Library; if not, see
  82442. + <http://www.gnu.org/licenses/>. */
  82443. #include <pthread.h>
  82444. #include <unistd.h>
  82445. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setgid.c uClibc-git/libpthread/linuxthreads/pthread_setgid.c
  82446. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setgid.c 2012-05-15 09:20:09.000000000 +0200
  82447. +++ uClibc-git/libpthread/linuxthreads/pthread_setgid.c 2014-06-02 17:40:34.990717386 +0200
  82448. @@ -12,9 +12,8 @@
  82449. Lesser General Public License for more details.
  82450. You should have received a copy of the GNU Lesser General Public
  82451. - License along with the GNU C Library; if not, write to the Free
  82452. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82453. - 02111-1307 USA. */
  82454. + License along with the GNU C Library; if not, see
  82455. + <http://www.gnu.org/licenses/>. */
  82456. #include <pthread.h>
  82457. #include <unistd.h>
  82458. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setregid.c uClibc-git/libpthread/linuxthreads/pthread_setregid.c
  82459. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setregid.c 2012-05-15 09:20:09.000000000 +0200
  82460. +++ uClibc-git/libpthread/linuxthreads/pthread_setregid.c 2014-06-02 17:40:34.994717409 +0200
  82461. @@ -12,9 +12,8 @@
  82462. Lesser General Public License for more details.
  82463. You should have received a copy of the GNU Lesser General Public
  82464. - License along with the GNU C Library; if not, write to the Free
  82465. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82466. - 02111-1307 USA. */
  82467. + License along with the GNU C Library; if not, see
  82468. + <http://www.gnu.org/licenses/>. */
  82469. #include <pthread.h>
  82470. #include <unistd.h>
  82471. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setresgid.c uClibc-git/libpthread/linuxthreads/pthread_setresgid.c
  82472. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setresgid.c 2012-05-15 09:20:09.000000000 +0200
  82473. +++ uClibc-git/libpthread/linuxthreads/pthread_setresgid.c 2014-06-02 17:40:34.994717409 +0200
  82474. @@ -12,9 +12,8 @@
  82475. Lesser General Public License for more details.
  82476. You should have received a copy of the GNU Lesser General Public
  82477. - License along with the GNU C Library; if not, write to the Free
  82478. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82479. - 02111-1307 USA. */
  82480. + License along with the GNU C Library; if not, see
  82481. + <http://www.gnu.org/licenses/>. */
  82482. #include <pthread.h>
  82483. #include <unistd.h>
  82484. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setresuid.c uClibc-git/libpthread/linuxthreads/pthread_setresuid.c
  82485. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setresuid.c 2012-05-15 09:20:09.000000000 +0200
  82486. +++ uClibc-git/libpthread/linuxthreads/pthread_setresuid.c 2014-06-02 17:40:34.994717409 +0200
  82487. @@ -12,9 +12,8 @@
  82488. Lesser General Public License for more details.
  82489. You should have received a copy of the GNU Lesser General Public
  82490. - License along with the GNU C Library; if not, write to the Free
  82491. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82492. - 02111-1307 USA. */
  82493. + License along with the GNU C Library; if not, see
  82494. + <http://www.gnu.org/licenses/>. */
  82495. #include <pthread.h>
  82496. #include <unistd.h>
  82497. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setreuid.c uClibc-git/libpthread/linuxthreads/pthread_setreuid.c
  82498. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setreuid.c 2012-05-15 09:20:09.000000000 +0200
  82499. +++ uClibc-git/libpthread/linuxthreads/pthread_setreuid.c 2014-06-02 17:40:34.998717431 +0200
  82500. @@ -12,9 +12,8 @@
  82501. Lesser General Public License for more details.
  82502. You should have received a copy of the GNU Lesser General Public
  82503. - License along with the GNU C Library; if not, write to the Free
  82504. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82505. - 02111-1307 USA. */
  82506. + License along with the GNU C Library; if not, see
  82507. + <http://www.gnu.org/licenses/>. */
  82508. #include <pthread.h>
  82509. #include <unistd.h>
  82510. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setuid.c uClibc-git/libpthread/linuxthreads/pthread_setuid.c
  82511. --- uClibc-0.9.33.2/libpthread/linuxthreads/pthread_setuid.c 2012-05-15 09:20:09.000000000 +0200
  82512. +++ uClibc-git/libpthread/linuxthreads/pthread_setuid.c 2014-06-02 17:40:34.998717431 +0200
  82513. @@ -12,9 +12,8 @@
  82514. Lesser General Public License for more details.
  82515. You should have received a copy of the GNU Lesser General Public
  82516. - License along with the GNU C Library; if not, write to the Free
  82517. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82518. - 02111-1307 USA. */
  82519. + License along with the GNU C Library; if not, see
  82520. + <http://www.gnu.org/licenses/>. */
  82521. #include <pthread.h>
  82522. #include <unistd.h>
  82523. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/pt-machine.c uClibc-git/libpthread/linuxthreads/pt-machine.c
  82524. --- uClibc-0.9.33.2/libpthread/linuxthreads/pt-machine.c 2012-05-15 09:20:09.000000000 +0200
  82525. +++ uClibc-git/libpthread/linuxthreads/pt-machine.c 2014-06-02 17:40:34.982717343 +0200
  82526. @@ -13,9 +13,8 @@
  82527. Lesser General Public License for more details.
  82528. You should have received a copy of the GNU Lesser General Public
  82529. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82530. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82531. - Boston, MA 02111-1307, USA. */
  82532. + License along with the GNU C Library; see the file COPYING.LIB. If
  82533. + not, see <http://www.gnu.org/licenses/>. */
  82534. #define PT_EI
  82535. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/rwlock.c uClibc-git/libpthread/linuxthreads/rwlock.c
  82536. --- uClibc-0.9.33.2/libpthread/linuxthreads/rwlock.c 2012-05-15 09:20:09.000000000 +0200
  82537. +++ uClibc-git/libpthread/linuxthreads/rwlock.c 2014-06-02 17:40:34.998717431 +0200
  82538. @@ -15,9 +15,8 @@
  82539. Lesser General Public License for more details.
  82540. You should have received a copy of the GNU Lesser General Public
  82541. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82542. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82543. - Boston, MA 02111-1307, USA. */
  82544. + License along with the GNU C Library; see the file COPYING.LIB. If
  82545. + not, see <http://www.gnu.org/licenses/>. */
  82546. #include <bits/libc-lock.h>
  82547. #include <errno.h>
  82548. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/semaphore.c uClibc-git/libpthread/linuxthreads/semaphore.c
  82549. --- uClibc-0.9.33.2/libpthread/linuxthreads/semaphore.c 2012-05-15 09:20:09.000000000 +0200
  82550. +++ uClibc-git/libpthread/linuxthreads/semaphore.c 2014-06-02 17:40:34.998717431 +0200
  82551. @@ -15,6 +15,7 @@
  82552. /* Semaphores a la POSIX 1003.1b */
  82553. #include <errno.h>
  82554. +#include <limits.h>
  82555. #include "pthread.h"
  82556. #include "semaphore.h"
  82557. #include "internals.h"
  82558. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/semaphore.h uClibc-git/libpthread/linuxthreads/semaphore.h
  82559. --- uClibc-0.9.33.2/libpthread/linuxthreads/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  82560. +++ uClibc-git/libpthread/linuxthreads/semaphore.h 2014-06-02 17:40:34.998717431 +0200
  82561. @@ -17,6 +17,7 @@
  82562. #include <features.h>
  82563. #include <sys/types.h>
  82564. +#include <limits.h>
  82565. #ifdef __USE_XOPEN2K
  82566. # define __need_timespec
  82567. # include <time.h>
  82568. @@ -42,7 +43,9 @@
  82569. #define SEM_FAILED ((sem_t *) 0)
  82570. /* Maximum value the semaphore can have. */
  82571. +#ifndef SEM_VALUE_MAX
  82572. #define SEM_VALUE_MAX (2147483647)
  82573. +#endif
  82574. __BEGIN_DECLS
  82575. @@ -55,13 +58,13 @@
  82576. extern int sem_destroy (sem_t *__sem) __THROW;
  82577. /* Open a named semaphore NAME with open flags OFLAG. */
  82578. -extern sem_t *sem_open (__const char *__name, int __oflag, ...) __THROW;
  82579. +extern sem_t *sem_open (const char *__name, int __oflag, ...) __THROW;
  82580. /* Close descriptor for named semaphore SEM. */
  82581. extern int sem_close (sem_t *__sem) __THROW;
  82582. /* Remove named semaphore NAME. */
  82583. -extern int sem_unlink (__const char *__name) __THROW;
  82584. +extern int sem_unlink (const char *__name) __THROW;
  82585. /* Wait for SEM being posted.
  82586. @@ -75,7 +78,7 @@
  82587. This function is a cancellation point and therefore not marked with
  82588. __THROW. */
  82589. extern int sem_timedwait (sem_t *__restrict __sem,
  82590. - __const struct timespec *__restrict __abstime);
  82591. + const struct timespec *__restrict __abstime);
  82592. #endif
  82593. /* Test whether SEM is posted. */
  82594. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/signals.c uClibc-git/libpthread/linuxthreads/signals.c
  82595. --- uClibc-0.9.33.2/libpthread/linuxthreads/signals.c 2012-05-15 09:20:09.000000000 +0200
  82596. +++ uClibc-git/libpthread/linuxthreads/signals.c 2014-06-02 17:40:34.998717431 +0200
  82597. @@ -20,9 +20,6 @@
  82598. #include "internals.h"
  82599. #include "spinlock.h"
  82600. -/* mods for uClibc: __libc_sigaction is not in any standard headers */
  82601. -extern __typeof(sigaction) __libc_sigaction;
  82602. -
  82603. int pthread_sigmask(int how, const sigset_t * newmask, sigset_t * oldmask)
  82604. {
  82605. sigset_t mask;
  82606. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/specific.c uClibc-git/libpthread/linuxthreads/specific.c
  82607. --- uClibc-0.9.33.2/libpthread/linuxthreads/specific.c 2012-05-15 09:20:09.000000000 +0200
  82608. +++ uClibc-git/libpthread/linuxthreads/specific.c 2014-06-02 17:40:35.002717453 +0200
  82609. @@ -212,7 +212,7 @@
  82610. __pthread_unlock(THREAD_GETMEM(self, p_lock));
  82611. }
  82612. -#if !(USE_TLS && HAVE___THREAD)
  82613. +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
  82614. /* Thread-specific data for libc. */
  82615. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/elf/pt-initfini.c uClibc-git/libpthread/linuxthreads/sysdeps/alpha/elf/pt-initfini.c
  82616. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/elf/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  82617. +++ uClibc-git/libpthread/linuxthreads/sysdeps/alpha/elf/pt-initfini.c 2014-06-02 17:40:35.002717453 +0200
  82618. @@ -13,9 +13,8 @@
  82619. Lesser General Public License for more details.
  82620. You should have received a copy of the GNU Lesser General Public
  82621. - License along with the GNU C Library; if not, write to the Free
  82622. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82623. - 02111-1307 USA. */
  82624. + License along with the GNU C Library; if not, see
  82625. + <http://www.gnu.org/licenses/>. */
  82626. /* This file is compiled into assembly code which is then munged by a sed
  82627. script into two files: crti.s and crtn.s.
  82628. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/alpha/pspinlock.c
  82629. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  82630. +++ uClibc-git/libpthread/linuxthreads/sysdeps/alpha/pspinlock.c 2014-06-02 17:40:35.002717453 +0200
  82631. @@ -13,9 +13,8 @@
  82632. Lesser General Public License for more details.
  82633. You should have received a copy of the GNU Lesser General Public
  82634. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82635. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82636. - Boston, MA 02111-1307, USA. */
  82637. + License along with the GNU C Library; see the file COPYING.LIB. If
  82638. + not, see <http://www.gnu.org/licenses/>. */
  82639. #include <errno.h>
  82640. #include <pthread.h>
  82641. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/alpha/pt-machine.h
  82642. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  82643. +++ uClibc-git/libpthread/linuxthreads/sysdeps/alpha/pt-machine.h 2014-06-02 17:40:35.002717453 +0200
  82644. @@ -17,8 +17,7 @@
  82645. You should have received a copy of the GNU Lesser General Public
  82646. License along with the GNU C Library; see the file COPYING.LIB. If not,
  82647. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82648. - Boston, MA 02111-1307, USA. */
  82649. + see <http://www.gnu.org/licenses/>. */
  82650. #ifndef _PT_MACHINE_H
  82651. #define _PT_MACHINE_H 1
  82652. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/alpha/tls.h
  82653. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/alpha/tls.h 2012-05-15 09:20:09.000000000 +0200
  82654. +++ uClibc-git/libpthread/linuxthreads/sysdeps/alpha/tls.h 2014-06-02 17:40:35.002717453 +0200
  82655. @@ -13,9 +13,8 @@
  82656. Lesser General Public License for more details.
  82657. You should have received a copy of the GNU Lesser General Public
  82658. - License along with the GNU C Library; if not, write to the Free
  82659. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82660. - 02111-1307 USA. */
  82661. + License along with the GNU C Library; if not, see
  82662. + <http://www.gnu.org/licenses/>. */
  82663. #ifndef _TLS_H
  82664. #define _TLS_H
  82665. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/arm/pspinlock.c
  82666. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  82667. +++ uClibc-git/libpthread/linuxthreads/sysdeps/arm/pspinlock.c 2014-06-02 17:40:35.002717453 +0200
  82668. @@ -13,9 +13,8 @@
  82669. Lesser General Public License for more details.
  82670. You should have received a copy of the GNU Lesser General Public
  82671. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82672. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82673. - Boston, MA 02111-1307, USA. */
  82674. + License along with the GNU C Library; see the file COPYING.LIB. If
  82675. + not, see <http://www.gnu.org/licenses/>. */
  82676. #include <errno.h>
  82677. #include <pthread.h>
  82678. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/arm/pt-machine.h
  82679. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  82680. +++ uClibc-git/libpthread/linuxthreads/sysdeps/arm/pt-machine.h 2014-06-02 17:40:35.002717453 +0200
  82681. @@ -15,9 +15,8 @@
  82682. Lesser General Public License for more details.
  82683. You should have received a copy of the GNU Lesser General Public
  82684. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82685. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82686. - Boston, MA 02111-1307, USA. */
  82687. + License along with the GNU C Library; see the file COPYING.LIB. If
  82688. + not, see <http://www.gnu.org/licenses/>. */
  82689. #ifndef _PT_MACHINE_H
  82690. #define _PT_MACHINE_H 1
  82691. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/sysdep.h uClibc-git/libpthread/linuxthreads/sysdeps/arm/sysdep.h
  82692. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/sysdep.h 2012-05-15 09:20:09.000000000 +0200
  82693. +++ uClibc-git/libpthread/linuxthreads/sysdeps/arm/sysdep.h 1970-01-01 01:00:00.000000000 +0100
  82694. @@ -1,137 +0,0 @@
  82695. -/* Generic asm macros used on many machines.
  82696. - Copyright (C) 1991,92,93,96,98,2002,2003 Free Software Foundation, Inc.
  82697. - This file is part of the GNU C Library.
  82698. -
  82699. - The GNU C Library is free software; you can redistribute it and/or
  82700. - modify it under the terms of the GNU Lesser General Public
  82701. - License as published by the Free Software Foundation; either
  82702. - version 2.1 of the License, or (at your option) any later version.
  82703. -
  82704. - The GNU C Library is distributed in the hope that it will be useful,
  82705. - but WITHOUT ANY WARRANTY; without even the implied warranty of
  82706. - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  82707. - Lesser General Public License for more details.
  82708. -
  82709. - You should have received a copy of the GNU Lesser General Public
  82710. - License along with the GNU C Library; if not, write to the Free
  82711. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82712. - 02111-1307 USA. */
  82713. -
  82714. -#ifndef C_LABEL
  82715. -
  82716. -/* Define a macro we can use to construct the asm name for a C symbol. */
  82717. -#ifdef NO_UNDERSCORES
  82718. -#ifdef __STDC__
  82719. -#define C_LABEL(name) name##:
  82720. -#else
  82721. -#define C_LABEL(name) name/**/:
  82722. -#endif
  82723. -#else
  82724. -#ifdef __STDC__
  82725. -#define C_LABEL(name) _##name##:
  82726. -#else
  82727. -#define C_LABEL(name) _/**/name/**/:
  82728. -#endif
  82729. -#endif
  82730. -
  82731. -#endif
  82732. -
  82733. -#ifdef __ASSEMBLER__
  82734. -/* Mark the end of function named SYM. This is used on some platforms
  82735. - to generate correct debugging information. */
  82736. -#ifndef END
  82737. -#define END(sym)
  82738. -#endif
  82739. -
  82740. -#ifndef JUMPTARGET
  82741. -#define JUMPTARGET(sym) sym
  82742. -#endif
  82743. -
  82744. -/* Makros to generate eh_frame unwind information. */
  82745. -# ifdef HAVE_ASM_CFI_DIRECTIVES
  82746. -# define cfi_startproc .cfi_startproc
  82747. -# define cfi_endproc .cfi_endproc
  82748. -# define cfi_def_cfa(reg, off) .cfi_def_cfa reg, off
  82749. -# define cfi_def_cfa_register(reg) .cfi_def_cfa_register reg
  82750. -# define cfi_def_cfa_offset(off) .cfi_def_cfa_offset off
  82751. -# define cfi_adjust_cfa_offset(off) .cfi_adjust_cfa_offset off
  82752. -# define cfi_offset(reg, off) .cfi_offset reg, off
  82753. -# define cfi_rel_offset(reg, off) .cfi_rel_offset reg, off
  82754. -# define cfi_register(r1, r2) .cfi_register r1, r2
  82755. -# define cfi_return_column(reg) .cfi_return_column reg
  82756. -# define cfi_restore(reg) .cfi_restore reg
  82757. -# define cfi_same_value(reg) .cfi_same_value reg
  82758. -# define cfi_undefined(reg) .cfi_undefined reg
  82759. -# define cfi_remember_state .cfi_remember_state
  82760. -# define cfi_restore_state .cfi_restore_state
  82761. -# define cfi_window_save .cfi_window_save
  82762. -# else
  82763. -# define cfi_startproc
  82764. -# define cfi_endproc
  82765. -# define cfi_def_cfa(reg, off)
  82766. -# define cfi_def_cfa_register(reg)
  82767. -# define cfi_def_cfa_offset(off)
  82768. -# define cfi_adjust_cfa_offset(off)
  82769. -# define cfi_offset(reg, off)
  82770. -# define cfi_rel_offset(reg, off)
  82771. -# define cfi_register(r1, r2)
  82772. -# define cfi_return_column(reg)
  82773. -# define cfi_restore(reg)
  82774. -# define cfi_same_value(reg)
  82775. -# define cfi_undefined(reg)
  82776. -# define cfi_remember_state
  82777. -# define cfi_restore_state
  82778. -# define cfi_window_save
  82779. -# endif
  82780. -
  82781. -#else /* ! ASSEMBLER */
  82782. -# ifdef HAVE_ASM_CFI_DIRECTIVES
  82783. -# define CFI_STRINGIFY(Name) CFI_STRINGIFY2 (Name)
  82784. -# define CFI_STRINGIFY2(Name) #Name
  82785. -# define CFI_STARTPROC ".cfi_startproc"
  82786. -# define CFI_ENDPROC ".cfi_endproc"
  82787. -# define CFI_DEF_CFA(reg, off) \
  82788. - ".cfi_def_cfa " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
  82789. -# define CFI_DEF_CFA_REGISTER(reg) \
  82790. - ".cfi_def_cfa_register " CFI_STRINGIFY(reg)
  82791. -# define CFI_DEF_CFA_OFFSET(off) \
  82792. - ".cfi_def_cfa_offset " CFI_STRINGIFY(off)
  82793. -# define CFI_ADJUST_CFA_OFFSET(off) \
  82794. - ".cfi_adjust_cfa_offset " CFI_STRINGIFY(off)
  82795. -# define CFI_OFFSET(reg, off) \
  82796. - ".cfi_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
  82797. -# define CFI_REL_OFFSET(reg, off) \
  82798. - ".cfi_rel_offset " CFI_STRINGIFY(reg) "," CFI_STRINGIFY(off)
  82799. -# define CFI_REGISTER(r1, r2) \
  82800. - ".cfi_register " CFI_STRINGIFY(r1) "," CFI_STRINGIFY(r2)
  82801. -# define CFI_RETURN_COLUMN(reg) \
  82802. - ".cfi_return_column " CFI_STRINGIFY(reg)
  82803. -# define CFI_RESTORE(reg) \
  82804. - ".cfi_restore " CFI_STRINGIFY(reg)
  82805. -# define CFI_UNDEFINED(reg) \
  82806. - ".cfi_undefined " CFI_STRINGIFY(reg)
  82807. -# define CFI_REMEMBER_STATE \
  82808. - ".cfi_remember_state"
  82809. -# define CFI_RESTORE_STATE \
  82810. - ".cfi_restore_state"
  82811. -# define CFI_WINDOW_SAVE \
  82812. - ".cfi_window_save"
  82813. -# else
  82814. -# define CFI_STARTPROC
  82815. -# define CFI_ENDPROC
  82816. -# define CFI_DEF_CFA(reg, off)
  82817. -# define CFI_DEF_CFA_REGISTER(reg)
  82818. -# define CFI_DEF_CFA_OFFSET(off)
  82819. -# define CFI_ADJUST_CFA_OFFSET(off)
  82820. -# define CFI_OFFSET(reg, off)
  82821. -# define CFI_REL_OFFSET(reg, off)
  82822. -# define CFI_REGISTER(r1, r2)
  82823. -# define CFI_RETURN_COLUMN(reg)
  82824. -# define CFI_RESTORE(reg)
  82825. -# define CFI_UNDEFINED(reg)
  82826. -# define CFI_REMEMBER_STATE
  82827. -# define CFI_RESTORE_STATE
  82828. -# define CFI_WINDOW_SAVE
  82829. -# endif
  82830. -
  82831. -#endif /* __ASSEMBLER__ */
  82832. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/arm/tls.h
  82833. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/arm/tls.h 2012-05-15 09:20:09.000000000 +0200
  82834. +++ uClibc-git/libpthread/linuxthreads/sysdeps/arm/tls.h 2014-06-02 17:40:35.002717453 +0200
  82835. @@ -13,9 +13,8 @@
  82836. Lesser General Public License for more details.
  82837. You should have received a copy of the GNU Lesser General Public
  82838. - License along with the GNU C Library; if not, write to the Free
  82839. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82840. - 02111-1307 USA. */
  82841. + License along with the GNU C Library; if not, see
  82842. + <http://www.gnu.org/licenses/>. */
  82843. #ifndef _TLS_H
  82844. #define _TLS_H
  82845. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/cris/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/cris/pspinlock.c
  82846. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/cris/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  82847. +++ uClibc-git/libpthread/linuxthreads/sysdeps/cris/pspinlock.c 2014-06-02 17:40:35.002717453 +0200
  82848. @@ -13,9 +13,8 @@
  82849. Lesser General Public License for more details.
  82850. You should have received a copy of the GNU Lesser General Public
  82851. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82852. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82853. - Boston, MA 02111-1307, USA. */
  82854. + License along with the GNU C Library; see the file COPYING.LIB. If
  82855. + not, see <http://www.gnu.org/licenses/>. */
  82856. #include <errno.h>
  82857. #include <pthread.h>
  82858. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/cris/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/cris/pt-machine.h
  82859. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/cris/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  82860. +++ uClibc-git/libpthread/linuxthreads/sysdeps/cris/pt-machine.h 2014-06-02 17:40:35.002717453 +0200
  82861. @@ -14,9 +14,8 @@
  82862. Lesser General Public License for more details.
  82863. You should have received a copy of the GNU Lesser General Public
  82864. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82865. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82866. - Boston, MA 02111-1307, USA. */
  82867. + License along with the GNU C Library; see the file COPYING.LIB. If
  82868. + not, see <http://www.gnu.org/licenses/>. */
  82869. #ifndef _PT_MACHINE_H
  82870. #define _PT_MACHINE_H 1
  82871. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/hppa/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/hppa/pspinlock.c
  82872. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/hppa/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  82873. +++ uClibc-git/libpthread/linuxthreads/sysdeps/hppa/pspinlock.c 2014-06-02 17:40:35.002717453 +0200
  82874. @@ -13,9 +13,8 @@
  82875. Lesser General Public License for more details.
  82876. You should have received a copy of the GNU Lesser General Public
  82877. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82878. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82879. - Boston, MA 02111-1307, USA. */
  82880. + License along with the GNU C Library; see the file COPYING.LIB. If
  82881. + not, see <http://www.gnu.org/licenses/>. */
  82882. #include <errno.h>
  82883. #include <pthread.h>
  82884. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/hppa/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/hppa/pt-machine.h
  82885. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/hppa/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  82886. +++ uClibc-git/libpthread/linuxthreads/sysdeps/hppa/pt-machine.h 2014-06-02 17:40:35.002717453 +0200
  82887. @@ -15,9 +15,8 @@
  82888. Lesser General Public License for more details.
  82889. You should have received a copy of the GNU Lesser General Public
  82890. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82891. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82892. - Boston, MA 02111-1307, USA. */
  82893. + License along with the GNU C Library; see the file COPYING.LIB. If
  82894. + not, see <http://www.gnu.org/licenses/>. */
  82895. #ifndef _PT_MACHINE_H
  82896. #define _PT_MACHINE_H 1
  82897. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/i686/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/i386/i686/pt-machine.h
  82898. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/i686/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  82899. +++ uClibc-git/libpthread/linuxthreads/sysdeps/i386/i686/pt-machine.h 2014-06-02 17:40:35.002717453 +0200
  82900. @@ -15,9 +15,8 @@
  82901. Lesser General Public License for more details.
  82902. You should have received a copy of the GNU Lesser General Public
  82903. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82904. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82905. - Boston, MA 02111-1307, USA. */
  82906. + License along with the GNU C Library; see the file COPYING.LIB. If
  82907. + not, see <http://www.gnu.org/licenses/>. */
  82908. #ifndef _PT_MACHINE_H
  82909. #define _PT_MACHINE_H 1
  82910. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/i386/pspinlock.c
  82911. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  82912. +++ uClibc-git/libpthread/linuxthreads/sysdeps/i386/pspinlock.c 2014-06-02 17:40:35.002717453 +0200
  82913. @@ -13,9 +13,8 @@
  82914. Lesser General Public License for more details.
  82915. You should have received a copy of the GNU Lesser General Public
  82916. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82917. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82918. - Boston, MA 02111-1307, USA. */
  82919. + License along with the GNU C Library; see the file COPYING.LIB. If
  82920. + not, see <http://www.gnu.org/licenses/>. */
  82921. #include <errno.h>
  82922. #include <pthread.h>
  82923. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/i386/pt-machine.h
  82924. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  82925. +++ uClibc-git/libpthread/linuxthreads/sysdeps/i386/pt-machine.h 2014-06-02 17:40:35.006717475 +0200
  82926. @@ -15,9 +15,8 @@
  82927. Lesser General Public License for more details.
  82928. You should have received a copy of the GNU Lesser General Public
  82929. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82930. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82931. - Boston, MA 02111-1307, USA. */
  82932. + License along with the GNU C Library; see the file COPYING.LIB. If
  82933. + not, see <http://www.gnu.org/licenses/>. */
  82934. #if defined __pentiumpro__ || defined __pentium4__ || defined __athlon__ || \
  82935. defined __k8__
  82936. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/i386/tls.h
  82937. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/tls.h 2012-05-15 09:20:09.000000000 +0200
  82938. +++ uClibc-git/libpthread/linuxthreads/sysdeps/i386/tls.h 2014-06-02 17:40:35.006717475 +0200
  82939. @@ -13,9 +13,8 @@
  82940. Lesser General Public License for more details.
  82941. You should have received a copy of the GNU Lesser General Public
  82942. - License along with the GNU C Library; if not, write to the Free
  82943. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  82944. - 02111-1307 USA. */
  82945. + License along with the GNU C Library; if not, see
  82946. + <http://www.gnu.org/licenses/>. */
  82947. #ifndef _TLS_H
  82948. #define _TLS_H
  82949. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/useldt.h uClibc-git/libpthread/linuxthreads/sysdeps/i386/useldt.h
  82950. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/i386/useldt.h 2012-05-15 09:20:09.000000000 +0200
  82951. +++ uClibc-git/libpthread/linuxthreads/sysdeps/i386/useldt.h 2014-06-02 17:40:35.006717475 +0200
  82952. @@ -16,8 +16,7 @@
  82953. You should have received a copy of the GNU Lesser General Public
  82954. License along with the GNU C Library; see the file COPYING.LIB. If not,
  82955. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82956. - Boston, MA 02111-1307, USA. */
  82957. + see <http://www.gnu.org/licenses/>. */
  82958. #ifndef __ASSEMBLER__
  82959. #include <stddef.h> /* For offsetof. */
  82960. @@ -87,7 +86,7 @@
  82961. because we inherited the value set up in the main thread by TLS setup.
  82962. We need to extract that value and set up the same segment in this
  82963. thread. */
  82964. -#if defined (USE_TLS) && USE_TLS
  82965. +#ifdef __UCLIBC_HAS_TLS__
  82966. # define DO_SET_THREAD_AREA_REUSE(nr) 1
  82967. #else
  82968. /* Without TLS, we do the initialization of the main thread, where NR == 0. */
  82969. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/ia64/pspinlock.c
  82970. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  82971. +++ uClibc-git/libpthread/linuxthreads/sysdeps/ia64/pspinlock.c 2014-06-02 17:40:35.006717475 +0200
  82972. @@ -14,9 +14,8 @@
  82973. Lesser General Public License for more details.
  82974. You should have received a copy of the GNU Lesser General Public
  82975. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82976. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82977. - Boston, MA 02111-1307, USA. */
  82978. + License along with the GNU C Library; see the file COPYING.LIB. If
  82979. + not, see <http://www.gnu.org/licenses/>. */
  82980. #include <errno.h>
  82981. #include <pthread.h>
  82982. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/ia64/pt-machine.h
  82983. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  82984. +++ uClibc-git/libpthread/linuxthreads/sysdeps/ia64/pt-machine.h 2014-06-02 17:40:35.006717475 +0200
  82985. @@ -14,9 +14,8 @@
  82986. Lesser General Public License for more details.
  82987. You should have received a copy of the GNU Lesser General Public
  82988. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  82989. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  82990. - Boston, MA 02111-1307, USA. */
  82991. + License along with the GNU C Library; see the file COPYING.LIB. If
  82992. + not, see <http://www.gnu.org/licenses/>. */
  82993. #ifndef _PT_MACHINE_H
  82994. #define _PT_MACHINE_H 1
  82995. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/tcb-offsets.sym uClibc-git/libpthread/linuxthreads/sysdeps/ia64/tcb-offsets.sym
  82996. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/tcb-offsets.sym 2012-05-15 09:20:09.000000000 +0200
  82997. +++ uClibc-git/libpthread/linuxthreads/sysdeps/ia64/tcb-offsets.sym 2014-06-02 17:40:35.006717475 +0200
  82998. @@ -2,7 +2,7 @@
  82999. #include <tls.h>
  83000. --
  83001. -#ifdef USE_TLS
  83002. +#ifdef __UCLIBC_HAS_TLS__
  83003. MULTIPLE_THREADS_OFFSET offsetof (struct _pthread_descr_struct, p_multiple_threads) - sizeof (struct _pthread_descr_struct)
  83004. #else
  83005. MULTIPLE_THREADS_OFFSET offsetof (tcbhead_t, multiple_threads)
  83006. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/ia64/tls.h
  83007. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/ia64/tls.h 2012-05-15 09:20:09.000000000 +0200
  83008. +++ uClibc-git/libpthread/linuxthreads/sysdeps/ia64/tls.h 2014-06-02 17:40:35.006717475 +0200
  83009. @@ -13,9 +13,8 @@
  83010. Lesser General Public License for more details.
  83011. You should have received a copy of the GNU Lesser General Public
  83012. - License along with the GNU C Library; if not, write to the Free
  83013. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83014. - 02111-1307 USA. */
  83015. + License along with the GNU C Library; if not, see
  83016. + <http://www.gnu.org/licenses/>. */
  83017. #ifndef _TLS_H
  83018. #define _TLS_H
  83019. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c
  83020. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  83021. +++ uClibc-git/libpthread/linuxthreads/sysdeps/m68k/pspinlock.c 2014-06-02 17:40:35.006717475 +0200
  83022. @@ -13,9 +13,8 @@
  83023. Lesser General Public License for more details.
  83024. You should have received a copy of the GNU Lesser General Public
  83025. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83026. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83027. - Boston, MA 02111-1307, USA. */
  83028. + License along with the GNU C Library; see the file COPYING.LIB. If
  83029. + not, see <http://www.gnu.org/licenses/>. */
  83030. #include <errno.h>
  83031. #include <pthread.h>
  83032. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h
  83033. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83034. +++ uClibc-git/libpthread/linuxthreads/sysdeps/m68k/pt-machine.h 2014-06-02 17:40:35.006717475 +0200
  83035. @@ -16,8 +16,7 @@
  83036. You should have received a copy of the GNU Lesser General Public
  83037. License along with the GNU C Library; see the file COPYING.LIB. If
  83038. - not, write to the Free Software Foundation, Inc.,
  83039. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  83040. + not, see <http://www.gnu.org/licenses/>. */
  83041. #ifndef _PT_MACHINE_H
  83042. #define _PT_MACHINE_H 1
  83043. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/mips/pspinlock.c
  83044. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  83045. +++ uClibc-git/libpthread/linuxthreads/sysdeps/mips/pspinlock.c 2014-06-02 17:40:35.006717475 +0200
  83046. @@ -13,9 +13,8 @@
  83047. Lesser General Public License for more details.
  83048. You should have received a copy of the GNU Lesser General Public
  83049. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83050. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83051. - Boston, MA 02111-1307, USA. */
  83052. + License along with the GNU C Library; see the file COPYING.LIB. If
  83053. + not, see <http://www.gnu.org/licenses/>. */
  83054. #include <errno.h>
  83055. #include <pthread.h>
  83056. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/mips/pt-machine.h
  83057. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83058. +++ uClibc-git/libpthread/linuxthreads/sysdeps/mips/pt-machine.h 2014-06-02 17:40:35.006717475 +0200
  83059. @@ -18,8 +18,7 @@
  83060. You should have received a copy of the GNU Lesser General Public
  83061. License along with the GNU C Library; see the file COPYING.LIB. If
  83062. - not, write to the Free Software Foundation, Inc.,
  83063. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  83064. + not, see <http://www.gnu.org/licenses/>. */
  83065. #ifndef _PT_MACHINE_H
  83066. #define _PT_MACHINE_H 1
  83067. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/mips/tls.h
  83068. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/mips/tls.h 2012-05-15 09:20:09.000000000 +0200
  83069. +++ uClibc-git/libpthread/linuxthreads/sysdeps/mips/tls.h 2014-06-02 17:40:35.006717475 +0200
  83070. @@ -13,9 +13,8 @@
  83071. Lesser General Public License for more details.
  83072. You should have received a copy of the GNU Lesser General Public
  83073. - License along with the GNU C Library; if not, write to the Free
  83074. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83075. - 02111-1307 USA. */
  83076. + License along with the GNU C Library; if not, see
  83077. + <http://www.gnu.org/licenses/>. */
  83078. #ifndef _TLS_H
  83079. #define _TLS_H
  83080. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pspinlock.c
  83081. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  83082. +++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pspinlock.c 2014-06-02 17:40:35.006717475 +0200
  83083. @@ -13,9 +13,8 @@
  83084. Lesser General Public License for more details.
  83085. You should have received a copy of the GNU Lesser General Public
  83086. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83087. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83088. - Boston, MA 02111-1307, USA. */
  83089. + License along with the GNU C Library; see the file COPYING.LIB. If
  83090. + not, see <http://www.gnu.org/licenses/>. */
  83091. #include <errno.h>
  83092. #include <pthread.h>
  83093. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h
  83094. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83095. +++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc32/pt-machine.h 2014-06-02 17:40:35.006717475 +0200
  83096. @@ -16,8 +16,7 @@
  83097. You should have received a copy of the GNU Lesser General Public
  83098. License along with the GNU C Library; see the file COPYING.LIB. If
  83099. - not, write to the Free Software Foundation, Inc.,
  83100. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  83101. + not, see <http://www.gnu.org/licenses/>. */
  83102. /* These routines are from Appendix G of the 'PowerPC 601 RISC Microprocessor
  83103. User's Manual', by IBM and Motorola. */
  83104. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pspinlock.c
  83105. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  83106. +++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pspinlock.c 2014-06-02 17:40:35.006717475 +0200
  83107. @@ -13,9 +13,8 @@
  83108. Lesser General Public License for more details.
  83109. You should have received a copy of the GNU Lesser General Public
  83110. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83111. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83112. - Boston, MA 02111-1307, USA. */
  83113. + License along with the GNU C Library; see the file COPYING.LIB. If
  83114. + not, see <http://www.gnu.org/licenses/>. */
  83115. #include <errno.h>
  83116. #include <pthread.h>
  83117. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pt-machine.h
  83118. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83119. +++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/powerpc64/pt-machine.h 2014-06-02 17:40:35.006717475 +0200
  83120. @@ -15,8 +15,7 @@
  83121. You should have received a copy of the GNU Library General Public
  83122. License along with the GNU C Library; see the file COPYING.LIB. If
  83123. - not, write to the Free Software Foundation, Inc.,
  83124. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  83125. + not, see <http://www.gnu.org/licenses/>. */
  83126. /* These routines are from Appendix G of the 'PowerPC 601 RISC Microprocessor
  83127. User's Manual', by IBM and Motorola. */
  83128. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/tcb-offsets.sym uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/tcb-offsets.sym
  83129. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/tcb-offsets.sym 2012-05-15 09:20:09.000000000 +0200
  83130. +++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/tcb-offsets.sym 2014-06-02 17:40:35.006717475 +0200
  83131. @@ -3,7 +3,7 @@
  83132. -- This line separates the #include lines from conditionals.
  83133. -# ifdef USE_TLS
  83134. +# ifdef __UCLIBC_HAS_TLS__
  83135. -- Abuse tls.h macros to derive offsets relative to the thread register.
  83136. # undef __thread_register
  83137. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/tls.h
  83138. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/powerpc/tls.h 2012-05-15 09:20:09.000000000 +0200
  83139. +++ uClibc-git/libpthread/linuxthreads/sysdeps/powerpc/tls.h 2014-06-02 17:40:35.006717475 +0200
  83140. @@ -13,9 +13,8 @@
  83141. Lesser General Public License for more details.
  83142. You should have received a copy of the GNU Lesser General Public
  83143. - License along with the GNU C Library; if not, write to the Free
  83144. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83145. - 02111-1307 USA. */
  83146. + License along with the GNU C Library; if not, see
  83147. + <http://www.gnu.org/licenses/>. */
  83148. #ifndef _TLS_H
  83149. #define _TLS_H
  83150. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/initspin.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/initspin.h
  83151. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/initspin.h 2012-05-15 09:20:09.000000000 +0200
  83152. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/initspin.h 2014-06-02 17:40:35.010717497 +0200
  83153. @@ -13,9 +13,8 @@
  83154. Lesser General Public License for more details.
  83155. You should have received a copy of the GNU Lesser General Public
  83156. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83157. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83158. - Boston, MA 02111-1307, USA. */
  83159. + License along with the GNU C Library; see the file COPYING.LIB. If
  83160. + not, see <http://www.gnu.org/licenses/>. */
  83161. /* Initial value of a spinlock. Most platforms should use zero,
  83162. unless they only implement a "test and clear" operation instead of
  83163. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/libc-lock.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/libc-lock.h
  83164. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/libc-lock.h 2012-05-15 09:20:09.000000000 +0200
  83165. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/libc-lock.h 2014-06-02 17:40:35.010717497 +0200
  83166. @@ -14,9 +14,8 @@
  83167. Lesser General Public License for more details.
  83168. You should have received a copy of the GNU Lesser General Public
  83169. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83170. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83171. - Boston, MA 02111-1307, USA. */
  83172. + License along with the GNU C Library; see the file COPYING.LIB. If
  83173. + not, see <http://www.gnu.org/licenses/>. */
  83174. #ifndef _BITS_LIBC_LOCK_H
  83175. #define _BITS_LIBC_LOCK_H 1
  83176. @@ -293,7 +292,7 @@
  83177. library. */
  83178. extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
  83179. - __const pthread_mutexattr_t *__mutex_attr);
  83180. + const pthread_mutexattr_t *__mutex_attr);
  83181. extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
  83182. @@ -312,7 +311,7 @@
  83183. #ifdef __USE_UNIX98
  83184. extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
  83185. - __const pthread_rwlockattr_t *__attr);
  83186. + const pthread_rwlockattr_t *__attr);
  83187. extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
  83188. @@ -331,7 +330,7 @@
  83189. void (*__destr_function) (void *));
  83190. extern int __pthread_setspecific (pthread_key_t __key,
  83191. - __const void *__pointer);
  83192. + const void *__pointer);
  83193. extern void *__pthread_getspecific (pthread_key_t __key);
  83194. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/libc-tsd.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/libc-tsd.h
  83195. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/libc-tsd.h 2012-05-15 09:20:09.000000000 +0200
  83196. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/libc-tsd.h 2014-06-02 17:40:35.010717497 +0200
  83197. @@ -13,18 +13,16 @@
  83198. Lesser General Public License for more details.
  83199. You should have received a copy of the GNU Lesser General Public
  83200. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83201. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83202. - Boston, MA 02111-1307, USA. */
  83203. + License along with the GNU C Library; see the file COPYING.LIB. If
  83204. + not, see <http://www.gnu.org/licenses/>. */
  83205. #ifndef _BITS_LIBC_TSD_H
  83206. #define _BITS_LIBC_TSD_H 1
  83207. #include <linuxthreads/descr.h>
  83208. +#ifdef __UCLIBC_HAS_TLS__
  83209. #include <tls.h>
  83210. -#if USE_TLS && HAVE___THREAD
  83211. -
  83212. /* When __thread works, the generic definition is what we want. */
  83213. # include <sysdeps/generic/bits/libc-tsd.h>
  83214. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h
  83215. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  83216. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/pthreadtypes.h 2014-06-02 17:40:35.010717497 +0200
  83217. @@ -19,6 +19,9 @@
  83218. #ifndef _BITS_PTHREADTYPES_H
  83219. #define _BITS_PTHREADTYPES_H 1
  83220. +#define __need_size_t
  83221. +#include <stddef.h>
  83222. +
  83223. #define __need_schedparam
  83224. #include <bits/sched.h>
  83225. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/typesizes.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/typesizes.h
  83226. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
  83227. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/bits/typesizes.h 2014-06-02 17:40:35.010717497 +0200
  83228. @@ -13,9 +13,8 @@
  83229. Lesser General Public License for more details.
  83230. You should have received a copy of the GNU Lesser General Public
  83231. - License along with the GNU C Library; if not, write to the Free
  83232. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83233. - 02111-1307 USA. */
  83234. + License along with the GNU C Library; if not, see
  83235. + <http://www.gnu.org/licenses/>. */
  83236. #ifndef _BITS_TYPES_H
  83237. # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
  83238. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/.cvsignore uClibc-git/libpthread/linuxthreads/sysdeps/pthread/.cvsignore
  83239. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/.cvsignore 2012-05-15 09:20:09.000000000 +0200
  83240. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/.cvsignore 1970-01-01 01:00:00.000000000 +0100
  83241. @@ -1,2 +0,0 @@
  83242. -.cvsignore
  83243. -*.os
  83244. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/errno-loc.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/errno-loc.c
  83245. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/errno-loc.c 2012-05-15 09:20:09.000000000 +0200
  83246. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/errno-loc.c 2014-06-02 17:40:35.010717497 +0200
  83247. @@ -14,26 +14,25 @@
  83248. Lesser General Public License for more details.
  83249. You should have received a copy of the GNU Lesser General Public
  83250. - License along with the GNU C Library; if not, write to the Free
  83251. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83252. - 02111-1307 USA. */
  83253. + License along with the GNU C Library; if not, see
  83254. + <http://www.gnu.org/licenses/>. */
  83255. #include <errno.h>
  83256. #include <linuxthreads/internals.h>
  83257. #include <sysdep-cancel.h>
  83258. -#if ! USE___THREAD && !RTLD_PRIVATE_ERRNO
  83259. +#if !defined __UCLIBC_HAS_TLS__ && !RTLD_PRIVATE_ERRNO
  83260. #undef errno
  83261. extern int errno;
  83262. #endif
  83263. int *
  83264. -#if ! USE___THREAD
  83265. +#ifndef __UCLIBC_HAS_TLS__
  83266. weak_const_function
  83267. #endif
  83268. __errno_location (void)
  83269. {
  83270. -#if ! USE___THREAD && !defined NOT_IN_libc
  83271. +#if !defined __UCLIBC_HAS_TLS__ && !defined NOT_IN_libc
  83272. if (! SINGLE_THREAD_P)
  83273. {
  83274. pthread_descr self = thread_self();
  83275. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/flockfile.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/flockfile.c
  83276. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/flockfile.c 2012-05-15 09:20:09.000000000 +0200
  83277. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/flockfile.c 2014-06-02 17:40:35.010717497 +0200
  83278. @@ -13,9 +13,8 @@
  83279. Lesser General Public License for more details.
  83280. You should have received a copy of the GNU Lesser General Public
  83281. - License along with the GNU C Library; if not, write to the Free
  83282. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83283. - 02111-1307 USA. */
  83284. + License along with the GNU C Library; if not, see
  83285. + <http://www.gnu.org/licenses/>. */
  83286. #include <pthread.h>
  83287. #include <stdio.h>
  83288. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/ftrylockfile.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/ftrylockfile.c
  83289. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/ftrylockfile.c 2012-05-15 09:20:09.000000000 +0200
  83290. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/ftrylockfile.c 2014-06-02 17:40:35.010717497 +0200
  83291. @@ -13,9 +13,8 @@
  83292. Lesser General Public License for more details.
  83293. You should have received a copy of the GNU Lesser General Public
  83294. - License along with the GNU C Library; if not, write to the Free
  83295. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83296. - 02111-1307 USA. */
  83297. + License along with the GNU C Library; if not, see
  83298. + <http://www.gnu.org/licenses/>. */
  83299. #include <errno.h>
  83300. #include <pthread.h>
  83301. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/funlockfile.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/funlockfile.c
  83302. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/funlockfile.c 2012-05-15 09:20:09.000000000 +0200
  83303. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/funlockfile.c 2014-06-02 17:40:35.010717497 +0200
  83304. @@ -13,9 +13,8 @@
  83305. Lesser General Public License for more details.
  83306. You should have received a copy of the GNU Lesser General Public
  83307. - License along with the GNU C Library; if not, write to the Free
  83308. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83309. - 02111-1307 USA. */
  83310. + License along with the GNU C Library; if not, see
  83311. + <http://www.gnu.org/licenses/>. */
  83312. #include <pthread.h>
  83313. #include <stdio.h>
  83314. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/getcpuclockid.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/getcpuclockid.c
  83315. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/getcpuclockid.c 2012-05-15 09:20:09.000000000 +0200
  83316. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/getcpuclockid.c 2014-06-02 17:40:35.010717497 +0200
  83317. @@ -13,9 +13,8 @@
  83318. Lesser General Public License for more details.
  83319. You should have received a copy of the GNU Lesser General Public
  83320. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83321. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83322. - Boston, MA 02111-1307, USA. */
  83323. + License along with the GNU C Library; see the file COPYING.LIB. If
  83324. + not, see <http://www.gnu.org/licenses/>. */
  83325. #include <errno.h>
  83326. #include <pthread.h>
  83327. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c
  83328. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c 2012-05-15 09:20:09.000000000 +0200
  83329. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/herrno-loc.c 2014-06-02 17:40:35.010717497 +0200
  83330. @@ -12,16 +12,15 @@
  83331. Lesser General Public License for more details.
  83332. You should have received a copy of the GNU Lesser General Public
  83333. - License along with the GNU C Library; if not, write to the Free
  83334. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83335. - 02111-1307 USA. */
  83336. + License along with the GNU C Library; if not, see
  83337. + <http://www.gnu.org/licenses/>. */
  83338. #include <netdb.h>
  83339. #include <tls.h>
  83340. #include <linuxthreads/internals.h>
  83341. #include <sysdep-cancel.h>
  83342. -#if ! USE___THREAD
  83343. +#ifndef __UCLIBC_HAS_TLS__
  83344. # undef h_errno
  83345. extern int h_errno;
  83346. #endif
  83347. @@ -31,7 +30,7 @@
  83348. weak_const_function
  83349. __h_errno_location (void)
  83350. {
  83351. -#if ! USE___THREAD
  83352. +#ifndef __UCLIBC_HAS_TLS__
  83353. if (! SINGLE_THREAD_P)
  83354. {
  83355. pthread_descr self = thread_self();
  83356. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/list.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/list.h
  83357. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/list.h 2012-05-15 09:20:09.000000000 +0200
  83358. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/list.h 2014-06-02 17:40:35.010717497 +0200
  83359. @@ -13,9 +13,8 @@
  83360. Lesser General Public License for more details.
  83361. You should have received a copy of the GNU Lesser General Public
  83362. - License along with the GNU C Library; if not, write to the Free
  83363. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83364. - 02111-1307 USA. */
  83365. + License along with the GNU C Library; if not, see
  83366. + <http://www.gnu.org/licenses/>. */
  83367. #ifndef _LIST_H
  83368. #define _LIST_H 1
  83369. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/malloc-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/malloc-machine.h
  83370. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/malloc-machine.h 2012-05-15 09:20:09.000000000 +0200
  83371. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/malloc-machine.h 2014-06-02 17:40:35.010717497 +0200
  83372. @@ -14,9 +14,8 @@
  83373. Lesser General Public License for more details.
  83374. You should have received a copy of the GNU Lesser General Public
  83375. - License along with the GNU C Library; if not, write to the Free
  83376. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83377. - 02111-1307 USA. */
  83378. + License along with the GNU C Library; if not, see
  83379. + <http://www.gnu.org/licenses/>. */
  83380. #ifndef _MALLOC_MACHINE_H
  83381. #define _MALLOC_MACHINE_H
  83382. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/not-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/not-cancel.h
  83383. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/not-cancel.h 2012-05-15 09:20:09.000000000 +0200
  83384. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/not-cancel.h 2014-06-02 17:40:35.010717497 +0200
  83385. @@ -14,18 +14,26 @@
  83386. Lesser General Public License for more details.
  83387. You should have received a copy of the GNU Lesser General Public
  83388. - License along with the GNU C Library; if not, write to the Free
  83389. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83390. - 02111-1307 USA. */
  83391. + License along with the GNU C Library; if not, see
  83392. + <http://www.gnu.org/licenses/>. */
  83393. #include <sys/types.h>
  83394. #include <sysdep.h>
  83395. /* Uncancelable open. */
  83396. +#if defined __NR_openat && !defined __NR_open
  83397. +#define open_not_cancel(name, flags, mode) \
  83398. + INLINE_SYSCALL (openat, 4, (int) (AT_FDCWD), (const char *) (name), \
  83399. + (flags), (mode))
  83400. +#define open_not_cancel_2(name, flags) \
  83401. + INLINE_SYSCALL (openat, 3, (int) (AT_FDCWD), (const char *) (name), \
  83402. + (flags))
  83403. +#else
  83404. #define open_not_cancel(name, flags, mode) \
  83405. INLINE_SYSCALL (open, 3, (const char *) (name), (flags), (mode))
  83406. #define open_not_cancel_2(name, flags) \
  83407. INLINE_SYSCALL (open, 2, (const char *) (name), (flags))
  83408. +#endif
  83409. /* Uncancelable openat. */
  83410. #if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
  83411. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/posix-timer.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/posix-timer.h
  83412. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/posix-timer.h 2012-05-15 09:20:09.000000000 +0200
  83413. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/posix-timer.h 2014-06-02 17:40:35.010717497 +0200
  83414. @@ -14,9 +14,8 @@
  83415. Lesser General Public License for more details.
  83416. You should have received a copy of the GNU Lesser General Public
  83417. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83418. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83419. - Boston, MA 02111-1307, USA. */
  83420. + License along with the GNU C Library; see the file COPYING.LIB. If
  83421. + not, see <http://www.gnu.org/licenses/>. */
  83422. #include <limits.h>
  83423. #include <signal.h>
  83424. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h
  83425. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h 2012-05-15 09:20:09.000000000 +0200
  83426. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pthread-functions.h 2014-06-02 17:40:35.010717497 +0200
  83427. @@ -13,9 +13,8 @@
  83428. Lesser General Public License for more details.
  83429. You should have received a copy of the GNU Lesser General Public
  83430. - License along with the GNU C Library; if not, write to the Free
  83431. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83432. - 02111-1307 USA. */
  83433. + License along with the GNU C Library; if not, see
  83434. + <http://www.gnu.org/licenses/>. */
  83435. #ifndef _PTHREAD_FUNCTIONS_H
  83436. #define _PTHREAD_FUNCTIONS_H 1
  83437. @@ -72,10 +71,12 @@
  83438. void (*ptr_pthread_cleanup_upto) (__jmp_buf target,
  83439. char *targetframe);
  83440. pthread_descr (*ptr_pthread_thread_self) (void);
  83441. +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
  83442. int (*ptr_pthread_internal_tsd_set) (int key, const void *pointer);
  83443. void * (*ptr_pthread_internal_tsd_get) (int key);
  83444. void ** __attribute__ ((__const__))
  83445. (*ptr_pthread_internal_tsd_address) (int key);
  83446. +#endif
  83447. int (*ptr_pthread_sigaction) (int sig, const struct sigaction * act,
  83448. struct sigaction *oact);
  83449. int (*ptr_pthread_sigwait) (const sigset_t *set, int *sig);
  83450. @@ -95,4 +96,6 @@
  83451. /* Variable in libc.so. */
  83452. extern struct pthread_functions __libc_pthread_functions attribute_hidden;
  83453. +extern int * __libc_pthread_init (const struct pthread_functions *functions);
  83454. +
  83455. #endif /* pthread-functions.h */
  83456. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pthread.h uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pthread.h
  83457. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pthread.h 2012-05-15 09:20:09.000000000 +0200
  83458. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pthread.h 2014-06-02 17:40:35.010717497 +0200
  83459. @@ -161,7 +161,7 @@
  83460. if ATTR is NULL), and call function START_ROUTINE with given
  83461. arguments ARG. */
  83462. extern int pthread_create (pthread_t *__restrict __threadp,
  83463. - __const pthread_attr_t *__restrict __attr,
  83464. + const pthread_attr_t *__restrict __attr,
  83465. void *(*__start_routine) (void *),
  83466. void *__restrict __arg) __THROW;
  83467. @@ -201,16 +201,16 @@
  83468. int __detachstate) __THROW;
  83469. /* Return in *DETACHSTATE the `detachstate' attribute in *ATTR. */
  83470. -extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
  83471. +extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
  83472. int *__detachstate) __THROW;
  83473. /* Set scheduling parameters (priority, etc) in *ATTR according to PARAM. */
  83474. extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
  83475. - __const struct sched_param *__restrict
  83476. + const struct sched_param *__restrict
  83477. __param) __THROW;
  83478. /* Return in *PARAM the scheduling parameters of *ATTR. */
  83479. -extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
  83480. +extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict
  83481. __attr,
  83482. struct sched_param *__restrict __param)
  83483. __THROW;
  83484. @@ -220,7 +220,7 @@
  83485. __THROW;
  83486. /* Return in *POLICY the scheduling policy of *ATTR. */
  83487. -extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
  83488. +extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
  83489. __attr, int *__restrict __policy)
  83490. __THROW;
  83491. @@ -229,7 +229,7 @@
  83492. int __inherit) __THROW;
  83493. /* Return in *INHERIT the scheduling inheritance mode of *ATTR. */
  83494. -extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
  83495. +extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
  83496. __attr, int *__restrict __inherit)
  83497. __THROW;
  83498. @@ -238,7 +238,7 @@
  83499. __THROW;
  83500. /* Return in *SCOPE the scheduling contention scope of *ATTR. */
  83501. -extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
  83502. +extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
  83503. int *__restrict __scope) __THROW;
  83504. #ifdef __USE_UNIX98
  83505. @@ -247,7 +247,7 @@
  83506. size_t __guardsize) __THROW;
  83507. /* Get the size of the guard area at the bottom of the thread. */
  83508. -extern int pthread_attr_getguardsize (__const pthread_attr_t *__restrict
  83509. +extern int pthread_attr_getguardsize (const pthread_attr_t *__restrict
  83510. __attr, size_t *__restrict __guardsize)
  83511. __THROW;
  83512. #endif
  83513. @@ -261,7 +261,7 @@
  83514. void *__stackaddr) __THROW;
  83515. /* Return the previously set address for the stack. */
  83516. -extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
  83517. +extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
  83518. __attr, void **__restrict __stackaddr)
  83519. __THROW;
  83520. #endif
  83521. @@ -274,7 +274,7 @@
  83522. size_t __stacksize) __THROW;
  83523. /* Return the previously set address for the stack. */
  83524. -extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
  83525. +extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
  83526. void **__restrict __stackaddr,
  83527. size_t *__restrict __stacksize) __THROW;
  83528. #endif
  83529. @@ -286,7 +286,7 @@
  83530. size_t __stacksize) __THROW;
  83531. /* Return the currently used minimal stack size. */
  83532. -extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
  83533. +extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
  83534. __attr, size_t *__restrict __stacksize)
  83535. __THROW;
  83536. @@ -302,7 +302,7 @@
  83537. /* Set the scheduling parameters for TARGET_THREAD according to POLICY
  83538. and *PARAM. */
  83539. extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
  83540. - __const struct sched_param *__param)
  83541. + const struct sched_param *__param)
  83542. __THROW;
  83543. /* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
  83544. @@ -324,7 +324,7 @@
  83545. /* Initialize MUTEX using attributes in *MUTEX_ATTR, or use the
  83546. default values if later is NULL. */
  83547. extern int pthread_mutex_init (pthread_mutex_t *__restrict __mutex,
  83548. - __const pthread_mutexattr_t *__restrict
  83549. + const pthread_mutexattr_t *__restrict
  83550. __mutex_attr) __THROW;
  83551. /* Destroy MUTEX. */
  83552. @@ -339,7 +339,7 @@
  83553. #ifdef __USE_XOPEN2K
  83554. /* Wait until lock becomes available, or specified time passes. */
  83555. extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
  83556. - __const struct timespec *__restrict
  83557. + const struct timespec *__restrict
  83558. __abstime) __THROW;
  83559. #endif
  83560. @@ -357,7 +357,7 @@
  83561. extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) __THROW;
  83562. /* Get the process-shared flag of the mutex attribute ATTR. */
  83563. -extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
  83564. +extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
  83565. __restrict __attr,
  83566. int *__restrict __pshared) __THROW;
  83567. @@ -373,7 +373,7 @@
  83568. __THROW;
  83569. /* Return in *KIND the mutex kind attribute in *ATTR. */
  83570. -extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
  83571. +extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
  83572. __attr, int *__restrict __kind) __THROW;
  83573. #endif
  83574. @@ -383,7 +383,7 @@
  83575. /* Initialize condition variable COND using attributes ATTR, or use
  83576. the default values if later is NULL. */
  83577. extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
  83578. - __const pthread_condattr_t *__restrict
  83579. + const pthread_condattr_t *__restrict
  83580. __cond_attr) __THROW;
  83581. /* Destroy condition variable COND. */
  83582. @@ -406,7 +406,7 @@
  83583. (00:00:00 GMT, January 1, 1970). */
  83584. extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
  83585. pthread_mutex_t *__restrict __mutex,
  83586. - __const struct timespec *__restrict
  83587. + const struct timespec *__restrict
  83588. __abstime);
  83589. /* Functions for handling condition variable attributes. */
  83590. @@ -418,7 +418,7 @@
  83591. extern int pthread_condattr_destroy (pthread_condattr_t *__attr) __THROW;
  83592. /* Get the process-shared flag of the condition variable attribute ATTR. */
  83593. -extern int pthread_condattr_getpshared (__const pthread_condattr_t *
  83594. +extern int pthread_condattr_getpshared (const pthread_condattr_t *
  83595. __restrict __attr,
  83596. int *__restrict __pshared) __THROW;
  83597. @@ -433,7 +433,7 @@
  83598. /* Initialize read-write lock RWLOCK using attributes ATTR, or use
  83599. the default values if later is NULL. */
  83600. extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
  83601. - __const pthread_rwlockattr_t *__restrict
  83602. + const pthread_rwlockattr_t *__restrict
  83603. __attr) __THROW;
  83604. /* Destroy read-write lock RWLOCK. */
  83605. @@ -448,7 +448,7 @@
  83606. # ifdef __USE_XOPEN2K
  83607. /* Try to acquire read lock for RWLOCK or return after specfied time. */
  83608. extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
  83609. - __const struct timespec *__restrict
  83610. + const struct timespec *__restrict
  83611. __abstime) __THROW;
  83612. # endif
  83613. @@ -461,7 +461,7 @@
  83614. # ifdef __USE_XOPEN2K
  83615. /* Try to acquire write lock for RWLOCK or return after specfied time. */
  83616. extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
  83617. - __const struct timespec *__restrict
  83618. + const struct timespec *__restrict
  83619. __abstime) __THROW;
  83620. # endif
  83621. @@ -478,7 +478,7 @@
  83622. extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) __THROW;
  83623. /* Return current setting of process-shared attribute of ATTR in PSHARED. */
  83624. -extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
  83625. +extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
  83626. __restrict __attr,
  83627. int *__restrict __pshared) __THROW;
  83628. @@ -487,7 +487,7 @@
  83629. int __pshared) __THROW;
  83630. /* Return current setting of reader/writer preference. */
  83631. -extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *__attr,
  83632. +extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *__attr,
  83633. int *__pref) __THROW;
  83634. /* Set reader/write preference. */
  83635. @@ -520,7 +520,7 @@
  83636. /* Barriers are a also a new feature in 1003.1j-2000. */
  83637. extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
  83638. - __const pthread_barrierattr_t *__restrict
  83639. + const pthread_barrierattr_t *__restrict
  83640. __attr, unsigned int __count) __THROW;
  83641. extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) __THROW;
  83642. @@ -529,7 +529,7 @@
  83643. extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) __THROW;
  83644. -extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
  83645. +extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
  83646. __restrict __attr,
  83647. int *__restrict __pshared) __THROW;
  83648. @@ -556,7 +556,7 @@
  83649. /* Store POINTER in the thread-specific data slot identified by KEY. */
  83650. extern int pthread_setspecific (pthread_key_t __key,
  83651. - __const void *__pointer) __THROW;
  83652. + const void *__pointer) __THROW;
  83653. /* Return current value of the thread-specific data slot identified by KEY. */
  83654. extern void *pthread_getspecific (pthread_key_t __key) __THROW;
  83655. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pt-initfini.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pt-initfini.c
  83656. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  83657. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/pt-initfini.c 2014-06-02 17:40:35.010717497 +0200
  83658. @@ -23,8 +23,7 @@
  83659. You should have received a copy of the GNU Lesser General Public
  83660. License along with the GNU C Library; see the file COPYING.LIB. If not,
  83661. - write to the Free Software Foundation, 59 Temple Place - Suite 330,
  83662. - Boston, MA 02111-1307, USA. */
  83663. + see <http://www.gnu.org/licenses/>. */
  83664. /* This file is compiled into assembly code which is then munged by a sed
  83665. script into two files: crti.s and crtn.s.
  83666. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/ptlongjmp.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/ptlongjmp.c
  83667. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/ptlongjmp.c 2012-05-15 09:20:09.000000000 +0200
  83668. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/ptlongjmp.c 2014-06-02 17:40:35.010717497 +0200
  83669. @@ -19,13 +19,6 @@
  83670. #include "pthread.h"
  83671. #include "internals.h"
  83672. -/* These functions are not declared anywhere since they shouldn't be
  83673. - used at another place but here. */
  83674. -extern void __libc_siglongjmp (sigjmp_buf env, int val)
  83675. - __attribute__ ((noreturn));
  83676. -extern void __libc_longjmp (sigjmp_buf env, int val)
  83677. - __attribute__ ((noreturn));
  83678. -
  83679. #ifdef SHARED
  83680. void siglongjmp (sigjmp_buf env, int val)
  83681. {
  83682. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/res-state.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/res-state.c
  83683. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/res-state.c 2012-05-15 09:20:09.000000000 +0200
  83684. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/res-state.c 2014-06-02 17:40:35.010717497 +0200
  83685. @@ -12,28 +12,27 @@
  83686. Lesser General Public License for more details.
  83687. You should have received a copy of the GNU Lesser General Public
  83688. - License along with the GNU C Library; if not, write to the Free
  83689. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83690. - 02111-1307 USA. */
  83691. + License along with the GNU C Library; if not, see
  83692. + <http://www.gnu.org/licenses/>. */
  83693. #include <resolv.h>
  83694. #include <tls.h>
  83695. #include <linuxthreads/internals.h>
  83696. #include <sysdep-cancel.h>
  83697. -#if ! USE___THREAD
  83698. +#ifndef __UCLIBC_HAS_TLS__
  83699. # undef _res
  83700. extern struct __res_state _res;
  83701. #endif
  83702. /* When threaded, _res may be a per-thread variable. */
  83703. struct __res_state *
  83704. -#if ! USE___THREAD
  83705. +#ifndef __UCLIBC_HAS_TLS__
  83706. weak_const_function
  83707. #endif
  83708. __res_state (void)
  83709. {
  83710. -#if ! USE___THREAD
  83711. +#ifndef __UCLIBC_HAS_TLS__
  83712. if (! SINGLE_THREAD_P)
  83713. {
  83714. pthread_descr self = thread_self();
  83715. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/sigaction.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/sigaction.c
  83716. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/sigaction.c 2012-05-15 09:20:09.000000000 +0200
  83717. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/sigaction.c 2014-06-02 17:40:35.010717497 +0200
  83718. @@ -13,9 +13,8 @@
  83719. Lesser General Public License for more details.
  83720. You should have received a copy of the GNU Lesser General Public
  83721. - License along with the GNU C Library; if not, write to the Free
  83722. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83723. - 02111-1307 USA. */
  83724. + License along with the GNU C Library; if not, see
  83725. + <http://www.gnu.org/licenses/>. */
  83726. /* Somebody please explain what's going on here. --vda */
  83727. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_create.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_create.c
  83728. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_create.c 2012-05-15 09:20:09.000000000 +0200
  83729. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_create.c 2014-06-02 17:40:35.010717497 +0200
  83730. @@ -13,9 +13,8 @@
  83731. Lesser General Public License for more details.
  83732. You should have received a copy of the GNU Lesser General Public
  83733. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83734. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83735. - Boston, MA 02111-1307, USA. */
  83736. + License along with the GNU C Library; see the file COPYING.LIB. If
  83737. + not, see <http://www.gnu.org/licenses/>. */
  83738. #include <errno.h>
  83739. #include <signal.h>
  83740. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_delete.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_delete.c
  83741. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_delete.c 2012-05-15 09:20:09.000000000 +0200
  83742. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_delete.c 2014-06-02 17:40:35.010717497 +0200
  83743. @@ -13,9 +13,8 @@
  83744. Lesser General Public License for more details.
  83745. You should have received a copy of the GNU Lesser General Public
  83746. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83747. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83748. - Boston, MA 02111-1307, USA. */
  83749. + License along with the GNU C Library; see the file COPYING.LIB. If
  83750. + not, see <http://www.gnu.org/licenses/>. */
  83751. #include <assert.h>
  83752. #include <errno.h>
  83753. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_getoverr.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_getoverr.c
  83754. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_getoverr.c 2012-05-15 09:20:09.000000000 +0200
  83755. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_getoverr.c 2014-06-02 17:40:35.010717497 +0200
  83756. @@ -13,9 +13,8 @@
  83757. Lesser General Public License for more details.
  83758. You should have received a copy of the GNU Lesser General Public
  83759. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83760. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83761. - Boston, MA 02111-1307, USA. */
  83762. + License along with the GNU C Library; see the file COPYING.LIB. If
  83763. + not, see <http://www.gnu.org/licenses/>. */
  83764. #include <errno.h>
  83765. #include <pthread.h>
  83766. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_gettime.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_gettime.c
  83767. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_gettime.c 2012-05-15 09:20:09.000000000 +0200
  83768. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_gettime.c 2014-06-02 17:40:35.010717497 +0200
  83769. @@ -13,9 +13,8 @@
  83770. Lesser General Public License for more details.
  83771. You should have received a copy of the GNU Lesser General Public
  83772. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83773. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83774. - Boston, MA 02111-1307, USA. */
  83775. + License along with the GNU C Library; see the file COPYING.LIB. If
  83776. + not, see <http://www.gnu.org/licenses/>. */
  83777. #include <errno.h>
  83778. #include <pthread.h>
  83779. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_routines.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_routines.c
  83780. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_routines.c 2012-05-15 09:20:09.000000000 +0200
  83781. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_routines.c 2014-06-02 17:40:35.010717497 +0200
  83782. @@ -14,9 +14,8 @@
  83783. Lesser General Public License for more details.
  83784. You should have received a copy of the GNU Lesser General Public
  83785. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83786. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83787. - Boston, MA 02111-1307, USA. */
  83788. + License along with the GNU C Library; see the file COPYING.LIB. If
  83789. + not, see <http://www.gnu.org/licenses/>. */
  83790. #include <assert.h>
  83791. #include <errno.h>
  83792. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_settime.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_settime.c
  83793. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/timer_settime.c 2012-05-15 09:20:09.000000000 +0200
  83794. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/timer_settime.c 2014-06-02 17:40:35.010717497 +0200
  83795. @@ -13,9 +13,8 @@
  83796. Lesser General Public License for more details.
  83797. You should have received a copy of the GNU Lesser General Public
  83798. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83799. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83800. - Boston, MA 02111-1307, USA. */
  83801. + License along with the GNU C Library; see the file COPYING.LIB. If
  83802. + not, see <http://www.gnu.org/licenses/>. */
  83803. #include <errno.h>
  83804. #include <pthread.h>
  83805. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/tst-timer.c uClibc-git/libpthread/linuxthreads/sysdeps/pthread/tst-timer.c
  83806. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/pthread/tst-timer.c 2012-05-15 09:20:09.000000000 +0200
  83807. +++ uClibc-git/libpthread/linuxthreads/sysdeps/pthread/tst-timer.c 2014-06-02 17:40:35.010717497 +0200
  83808. @@ -14,9 +14,8 @@
  83809. Lesser General Public License for more details.
  83810. You should have received a copy of the GNU Lesser General Public
  83811. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83812. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83813. - Boston, MA 02111-1307, USA. */
  83814. + License along with the GNU C Library; see the file COPYING.LIB. If
  83815. + not, see <http://www.gnu.org/licenses/>. */
  83816. #include <errno.h>
  83817. #include <signal.h>
  83818. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/s390/pspinlock.c
  83819. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  83820. +++ uClibc-git/libpthread/linuxthreads/sysdeps/s390/pspinlock.c 2014-06-02 17:40:35.010717497 +0200
  83821. @@ -14,9 +14,8 @@
  83822. Lesser General Public License for more details.
  83823. You should have received a copy of the GNU Lesser General Public
  83824. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83825. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83826. - Boston, MA 02111-1307, USA. */
  83827. + License along with the GNU C Library; see the file COPYING.LIB. If
  83828. + not, see <http://www.gnu.org/licenses/>. */
  83829. #include <errno.h>
  83830. #include <pthread.h>
  83831. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h
  83832. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83833. +++ uClibc-git/libpthread/linuxthreads/sysdeps/s390/s390-32/pt-machine.h 2014-06-02 17:40:35.010717497 +0200
  83834. @@ -15,9 +15,8 @@
  83835. Lesser General Public License for more details.
  83836. You should have received a copy of the GNU Lesser General Public
  83837. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83838. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83839. - Boston, MA 02111-1307, USA. */
  83840. + License along with the GNU C Library; see the file COPYING.LIB. If
  83841. + not, see <http://www.gnu.org/licenses/>. */
  83842. #ifndef _PT_MACHINE_H
  83843. #define _PT_MACHINE_H 1
  83844. @@ -58,7 +57,7 @@
  83845. #define CURRENT_STACK_FRAME stack_pointer
  83846. register char * stack_pointer __asm__ ("15");
  83847. -#ifdef USE_TLS
  83848. +#ifdef __UCLIBC_HAS_TLS__
  83849. /* Return the thread descriptor for the current thread. */
  83850. # define THREAD_SELF ((pthread_descr) __builtin_thread_pointer ())
  83851. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h
  83852. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83853. +++ uClibc-git/libpthread/linuxthreads/sysdeps/s390/s390-64/pt-machine.h 2014-06-02 17:40:35.010717497 +0200
  83854. @@ -15,9 +15,8 @@
  83855. Lesser General Public License for more details.
  83856. You should have received a copy of the GNU Lesser General Public
  83857. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83858. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83859. - Boston, MA 02111-1307, USA. */
  83860. + License along with the GNU C Library; see the file COPYING.LIB. If
  83861. + not, see <http://www.gnu.org/licenses/>. */
  83862. #ifndef _PT_MACHINE_H
  83863. #define _PT_MACHINE_H 1
  83864. @@ -58,7 +57,7 @@
  83865. #define CURRENT_STACK_FRAME stack_pointer
  83866. register char * stack_pointer __asm__ ("15");
  83867. -#ifdef USE_TLS
  83868. +#ifdef __UCLIBC_HAS_TLS__
  83869. /* Return the thread descriptor for the current thread. */
  83870. # define THREAD_SELF ((pthread_descr) __builtin_thread_pointer ())
  83871. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/s390/tls.h
  83872. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/s390/tls.h 2012-05-15 09:20:09.000000000 +0200
  83873. +++ uClibc-git/libpthread/linuxthreads/sysdeps/s390/tls.h 2014-06-02 17:40:35.010717497 +0200
  83874. @@ -13,9 +13,8 @@
  83875. Lesser General Public License for more details.
  83876. You should have received a copy of the GNU Lesser General Public
  83877. - License along with the GNU C Library; if not, write to the Free
  83878. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83879. - 02111-1307 USA. */
  83880. + License along with the GNU C Library; if not, see
  83881. + <http://www.gnu.org/licenses/>. */
  83882. #ifndef _TLS_H
  83883. #define _TLS_H
  83884. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/sh/pspinlock.c
  83885. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  83886. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sh/pspinlock.c 2014-06-02 17:40:35.014717519 +0200
  83887. @@ -13,9 +13,8 @@
  83888. Lesser General Public License for more details.
  83889. You should have received a copy of the GNU Lesser General Public
  83890. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83891. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83892. - Boston, MA 02111-1307, USA. */
  83893. + License along with the GNU C Library; see the file COPYING.LIB. If
  83894. + not, see <http://www.gnu.org/licenses/>. */
  83895. #include <errno.h>
  83896. #include <pthread.h>
  83897. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/sh/pt-machine.h
  83898. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83899. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sh/pt-machine.h 2014-06-02 17:40:35.014717519 +0200
  83900. @@ -15,9 +15,8 @@
  83901. Lesser General Public License for more details.
  83902. You should have received a copy of the GNU Lesser General Public
  83903. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83904. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83905. - Boston, MA 02111-1307, USA. */
  83906. + License along with the GNU C Library; see the file COPYING.LIB. If
  83907. + not, see <http://www.gnu.org/licenses/>. */
  83908. #ifndef _PT_MACHINE_H
  83909. #define _PT_MACHINE_H 1
  83910. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/tcb-offsets.sym uClibc-git/libpthread/linuxthreads/sysdeps/sh/tcb-offsets.sym
  83911. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/tcb-offsets.sym 2012-05-15 09:20:09.000000000 +0200
  83912. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sh/tcb-offsets.sym 2014-06-02 17:40:35.014717519 +0200
  83913. @@ -2,7 +2,7 @@
  83914. #include <tls.h>
  83915. --
  83916. -#ifdef USE_TLS
  83917. +#ifdef __UCLIBC_HAS_TLS__
  83918. MULTIPLE_THREADS_OFFSET offsetof (struct _pthread_descr_struct, p_multiple_threads)
  83919. TLS_PRE_TCB_SIZE sizeof (struct _pthread_descr_struct)
  83920. #else
  83921. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/sh/tls.h
  83922. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sh/tls.h 2012-05-15 09:20:09.000000000 +0200
  83923. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sh/tls.h 2014-06-02 17:40:35.014717519 +0200
  83924. @@ -13,9 +13,8 @@
  83925. Lesser General Public License for more details.
  83926. You should have received a copy of the GNU Lesser General Public
  83927. - License along with the GNU C Library; if not, write to the Free
  83928. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  83929. - 02111-1307 USA. */
  83930. + License along with the GNU C Library; if not, see
  83931. + <http://www.gnu.org/licenses/>. */
  83932. #ifndef _TLS_H
  83933. #define _TLS_H
  83934. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc32/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc32/pspinlock.c
  83935. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc32/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  83936. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc32/pspinlock.c 2014-06-02 17:40:35.014717519 +0200
  83937. @@ -13,9 +13,8 @@
  83938. Lesser General Public License for more details.
  83939. You should have received a copy of the GNU Lesser General Public
  83940. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83941. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83942. - Boston, MA 02111-1307, USA. */
  83943. + License along with the GNU C Library; see the file COPYING.LIB. If
  83944. + not, see <http://www.gnu.org/licenses/>. */
  83945. #include <errno.h>
  83946. #include <pthread.h>
  83947. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h
  83948. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83949. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc32/pt-machine.h 2014-06-02 17:40:35.014717519 +0200
  83950. @@ -15,9 +15,8 @@
  83951. Lesser General Public License for more details.
  83952. You should have received a copy of the GNU Lesser General Public
  83953. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83954. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83955. - Boston, MA 02111-1307, USA. */
  83956. + License along with the GNU C Library; see the file COPYING.LIB. If
  83957. + not, see <http://www.gnu.org/licenses/>. */
  83958. #ifndef _PT_MACHINE_H
  83959. #define _PT_MACHINE_H 1
  83960. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc32/sparcv9/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc32/sparcv9/pspinlock.c
  83961. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc32/sparcv9/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  83962. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc32/sparcv9/pspinlock.c 2014-06-02 17:40:35.014717519 +0200
  83963. @@ -13,9 +13,8 @@
  83964. Lesser General Public License for more details.
  83965. You should have received a copy of the GNU Lesser General Public
  83966. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83967. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83968. - Boston, MA 02111-1307, USA. */
  83969. + License along with the GNU C Library; see the file COPYING.LIB. If
  83970. + not, see <http://www.gnu.org/licenses/>. */
  83971. #include <errno.h>
  83972. #include <pthread.h>
  83973. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc64/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc64/pspinlock.c
  83974. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc64/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  83975. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc64/pspinlock.c 2014-06-02 17:40:35.014717519 +0200
  83976. @@ -13,9 +13,8 @@
  83977. Lesser General Public License for more details.
  83978. You should have received a copy of the GNU Lesser General Public
  83979. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  83980. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  83981. - Boston, MA 02111-1307, USA. */
  83982. + License along with the GNU C Library; see the file COPYING.LIB. If
  83983. + not, see <http://www.gnu.org/licenses/>. */
  83984. #include <errno.h>
  83985. #include <pthread.h>
  83986. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h
  83987. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  83988. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/sparc64/pt-machine.h 2014-06-02 17:40:35.014717519 +0200
  83989. @@ -16,8 +16,7 @@
  83990. You should have received a copy of the GNU Lesser General Public
  83991. License along with the GNU C Library; see the file COPYING.LIB. If
  83992. - not, write to the Free Software Foundation, Inc.,
  83993. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  83994. + not, see <http://www.gnu.org/licenses/>. */
  83995. #ifndef _PT_MACHINE_H
  83996. #define _PT_MACHINE_H 1
  83997. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/sparc/tls.h
  83998. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/sparc/tls.h 2012-05-15 09:20:09.000000000 +0200
  83999. +++ uClibc-git/libpthread/linuxthreads/sysdeps/sparc/tls.h 2014-06-02 17:40:35.014717519 +0200
  84000. @@ -13,9 +13,8 @@
  84001. Lesser General Public License for more details.
  84002. You should have received a copy of the GNU Lesser General Public
  84003. - License along with the GNU C Library; if not, write to the Free
  84004. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84005. - 02111-1307 USA. */
  84006. + License along with the GNU C Library; if not, see
  84007. + <http://www.gnu.org/licenses/>. */
  84008. #ifndef _TLS_H
  84009. #define _TLS_H
  84010. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocalim.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocalim.h
  84011. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocalim.h 2012-05-15 09:20:09.000000000 +0200
  84012. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocalim.h 2014-06-02 17:40:35.014717519 +0200
  84013. @@ -14,8 +14,7 @@
  84014. You should have received a copy of the GNU Library General Public
  84015. License along with the GNU C Library; see the file COPYING.LIB. If not,
  84016. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84017. - Boston, MA 02111-1307, USA. */
  84018. + see <http://www.gnu.org/licenses/>. */
  84019. #include <limits.h>
  84020. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocrtsig.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocrtsig.c
  84021. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocrtsig.c 2012-05-15 09:20:09.000000000 +0200
  84022. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/allocrtsig.c 2014-06-02 17:40:35.014717519 +0200
  84023. @@ -14,9 +14,8 @@
  84024. Lesser General Public License for more details.
  84025. You should have received a copy of the GNU Lesser General Public
  84026. - License along with the GNU C Library; if not, write to the Free
  84027. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84028. - 02111-1307 USA. */
  84029. + License along with the GNU C Library; if not, see
  84030. + <http://www.gnu.org/licenses/>. */
  84031. #include <signal.h>
  84032. @@ -70,6 +69,7 @@
  84033. strong_alias (__libc_current_sigrtmax, __libc_current_sigrtmax_private)
  84034. libc_hidden_def (__libc_current_sigrtmax)
  84035. +#if 0
  84036. /* Allocate real-time signal with highest/lowest available
  84037. priority. Please note that we don't use a lock since we assume
  84038. this function to be called at program start. */
  84039. @@ -85,3 +85,4 @@
  84040. return high ? current_rtmin++ : current_rtmax--;
  84041. }
  84042. strong_alias (__libc_allocate_rtsig, __libc_allocate_rtsig_private)
  84043. +#endif
  84044. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h
  84045. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
  84046. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h 2014-06-02 17:40:35.014717519 +0200
  84047. @@ -13,9 +13,8 @@
  84048. Lesser General Public License for more details.
  84049. You should have received a copy of the GNU Lesser General Public
  84050. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  84051. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84052. - Boston, MA 02111-1307, USA. */
  84053. + License along with the GNU C Library; see the file COPYING.LIB. If
  84054. + not, see <http://www.gnu.org/licenses/>. */
  84055. /* The kernel header pollutes the namespace with the NR_OPEN symbol
  84056. and defines LINK_MAX although filesystems have different maxima. A
  84057. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
  84058. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
  84059. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h 2014-06-02 17:40:35.014717519 +0200
  84060. @@ -13,9 +13,8 @@
  84061. Lesser General Public License for more details.
  84062. You should have received a copy of the GNU Lesser General Public
  84063. - License along with the GNU C Library; if not, write to the Free
  84064. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84065. - 02111-1307 USA. */
  84066. + License along with the GNU C Library; if not, see
  84067. + <http://www.gnu.org/licenses/>. */
  84068. #ifndef _BITS_TYPES_H
  84069. # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
  84070. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/pt-sigsuspend.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/pt-sigsuspend.S
  84071. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/pt-sigsuspend.S 2012-05-15 09:20:09.000000000 +0200
  84072. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/pt-sigsuspend.S 2014-06-02 17:40:35.014717519 +0200
  84073. @@ -13,9 +13,8 @@
  84074. Lesser General Public License for more details.
  84075. You should have received a copy of the GNU Lesser General Public
  84076. - License along with the GNU C Library; if not, write to the Free
  84077. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84078. - 02111-1307 USA. */
  84079. + License along with the GNU C Library; if not, see
  84080. + <http://www.gnu.org/licenses/>. */
  84081. #include <sysdep.h>
  84082. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h
  84083. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84084. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2014-06-02 17:40:35.014717519 +0200
  84085. @@ -12,9 +12,8 @@
  84086. Lesser General Public License for more details.
  84087. You should have received a copy of the GNU Lesser General Public
  84088. - License along with the GNU C Library; if not, write to the Free
  84089. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84090. - 02111-1307 USA. */
  84091. + License along with the GNU C Library; if not, see
  84092. + <http://www.gnu.org/licenses/>. */
  84093. #include <sysdep.h>
  84094. #ifndef __ASSEMBLER__
  84095. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S
  84096. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84097. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/alpha/vfork.S 2014-06-02 17:40:35.014717519 +0200
  84098. @@ -12,9 +12,8 @@
  84099. Lesser General Public License for more details.
  84100. You should have received a copy of the GNU Lesser General Public
  84101. - License along with the GNU C Library; if not, write to the Free
  84102. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84103. - 02111-1307 USA. */
  84104. + License along with the GNU C Library; if not, see
  84105. + <http://www.gnu.org/licenses/>. */
  84106. #include <sysdep-cancel.h>
  84107. @@ -30,7 +29,7 @@
  84108. #ifdef SHARED
  84109. ldq t0, __libc_pthread_functions(gp) !gprel
  84110. - bne t0, HIDDEN_JUMPTARGET (__fork) !samegp
  84111. + bne t0, HIDDEN_JUMPTARGET (fork) !samegp
  84112. #else
  84113. .weak pthread_create
  84114. ldq t0, pthread_create(gp) !literal
  84115. @@ -50,7 +49,7 @@
  84116. cfi_adjust_cfa_offset(16)
  84117. stq ra, 0(sp)
  84118. cfi_offset(ra, -16)
  84119. - jsr ra, HIDDEN_JUMPTARGET (__fork)
  84120. + jsr ra, HIDDEN_JUMPTARGET (fork)
  84121. ldgp gp, 0(ra)
  84122. ldq ra, 0(sp)
  84123. addq sp, 16, sp
  84124. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
  84125. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84126. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h 2014-06-02 17:40:35.018717542 +0200
  84127. @@ -13,9 +13,8 @@
  84128. Lesser General Public License for more details.
  84129. You should have received a copy of the GNU Lesser General Public
  84130. - License along with the GNU C Library; if not, write to the Free
  84131. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84132. - 02111-1307 USA. */
  84133. + License along with the GNU C Library; if not, see
  84134. + <http://www.gnu.org/licenses/>. */
  84135. #include <tls.h>
  84136. #include <pt-machine.h>
  84137. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S
  84138. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84139. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/arm/vfork.S 2014-06-02 17:40:35.018717542 +0200
  84140. @@ -13,9 +13,8 @@
  84141. Lesser General Public License for more details.
  84142. You should have received a copy of the GNU Lesser General Public
  84143. - License along with the GNU C Library; if not, write to the Free
  84144. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84145. - 02111-1307 USA. */
  84146. + License along with the GNU C Library; if not, see
  84147. + <http://www.gnu.org/licenses/>. */
  84148. #include <sysdep-cancel.h>
  84149. #define _ERRNO_H 1
  84150. @@ -40,7 +39,7 @@
  84151. ldr r0, 1f
  84152. #endif
  84153. movs r0, r0
  84154. - bne HIDDEN_JUMPTARGET (__fork)
  84155. + bne HIDDEN_JUMPTARGET (fork)
  84156. DO_CALL (vfork, 0)
  84157. cmn a1, #4096
  84158. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/.cvsignore uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/.cvsignore
  84159. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/.cvsignore 2012-05-15 09:20:09.000000000 +0200
  84160. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/.cvsignore 1970-01-01 01:00:00.000000000 +0100
  84161. @@ -1,2 +0,0 @@
  84162. -.cvsignore
  84163. -*.os
  84164. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/execve.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/execve.c
  84165. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/execve.c 2012-05-15 09:20:09.000000000 +0200
  84166. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/execve.c 2014-06-02 17:40:35.018717542 +0200
  84167. @@ -12,9 +12,8 @@
  84168. Lesser General Public License for more details.
  84169. You should have received a copy of the GNU Lesser General Public
  84170. - License along with the GNU C Library; if not, write to the Free
  84171. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84172. - 02111-1307 USA. */
  84173. + License along with the GNU C Library; if not, see
  84174. + <http://www.gnu.org/licenses/>. */
  84175. #include <errno.h>
  84176. #include <unistd.h>
  84177. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c
  84178. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c 2012-05-15 09:20:09.000000000 +0200
  84179. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.c 2014-06-02 17:40:35.018717542 +0200
  84180. @@ -13,9 +13,8 @@
  84181. Lesser General Public License for more details.
  84182. You should have received a copy of the GNU Lesser General Public
  84183. - License along with the GNU C Library; if not, write to the Free
  84184. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84185. - 02111-1307 USA. */
  84186. + License along with the GNU C Library; if not, see
  84187. + <http://www.gnu.org/licenses/>. */
  84188. #include <errno.h>
  84189. #include <fork.h>
  84190. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h
  84191. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h 2012-05-15 09:20:09.000000000 +0200
  84192. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/fork.h 2014-06-02 17:40:35.018717542 +0200
  84193. @@ -13,9 +13,8 @@
  84194. Lesser General Public License for more details.
  84195. You should have received a copy of the GNU Lesser General Public
  84196. - License along with the GNU C Library; if not, write to the Free
  84197. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84198. - 02111-1307 USA. */
  84199. + License along with the GNU C Library; if not, see
  84200. + <http://www.gnu.org/licenses/>. */
  84201. #include <list.h>
  84202. #include <bits/libc-lock.h>
  84203. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h
  84204. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h 2012-05-15 09:20:09.000000000 +0200
  84205. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/bits/initspin.h 2014-06-02 17:40:35.018717542 +0200
  84206. @@ -13,9 +13,8 @@
  84207. Lesser General Public License for more details.
  84208. You should have received a copy of the GNU Lesser General Public
  84209. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  84210. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84211. - Boston, MA 02111-1307, USA. */
  84212. + License along with the GNU C Library; see the file COPYING.LIB. If
  84213. + not, see <http://www.gnu.org/licenses/>. */
  84214. /* Initial value of a spinlock. PA-RISC only implements atomic load
  84215. and clear so this must be non-zero. */
  84216. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/malloc-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/malloc-machine.h
  84217. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/malloc-machine.h 2012-05-15 09:20:09.000000000 +0200
  84218. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/malloc-machine.h 2014-06-02 17:40:35.018717542 +0200
  84219. @@ -15,9 +15,8 @@
  84220. Lesser General Public License for more details.
  84221. You should have received a copy of the GNU Lesser General Public
  84222. - License along with the GNU C Library; if not, write to the Free
  84223. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84224. - 02111-1307 USA. */
  84225. + License along with the GNU C Library; if not, see
  84226. + <http://www.gnu.org/licenses/>. */
  84227. #ifndef _MALLOC_MACHINE_H
  84228. #define _MALLOC_MACHINE_H
  84229. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/pt-initfini.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/pt-initfini.c
  84230. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  84231. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/pt-initfini.c 2014-06-02 17:40:35.018717542 +0200
  84232. @@ -23,8 +23,7 @@
  84233. You should have received a copy of the GNU Lesser General Public
  84234. License along with the GNU C Library; see the file COPYING.LIB. If not,
  84235. - write to the Free Software Foundation, 59 Temple Place - Suite 330,
  84236. - Boston, MA 02111-1307, USA. */
  84237. + see <http://www.gnu.org/licenses/>. */
  84238. /* This file is compiled into assembly code which is then munged by a sed
  84239. script into two files: crti.s and crtn.s.
  84240. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h
  84241. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84242. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/hppa/sysdep-cancel.h 2014-06-02 17:40:35.018717542 +0200
  84243. @@ -14,9 +14,8 @@
  84244. Lesser General Public License for more details.
  84245. You should have received a copy of the GNU Lesser General Public
  84246. - License along with the GNU C Library; if not, write to the Free
  84247. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84248. - 02111-1307 USA. */
  84249. + License along with the GNU C Library; if not, see
  84250. + <http://www.gnu.org/licenses/>. */
  84251. #include <sysdep.h>
  84252. #ifndef __ASSEMBLER__
  84253. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
  84254. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84255. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h 2014-06-02 17:40:35.018717542 +0200
  84256. @@ -13,9 +13,8 @@
  84257. Lesser General Public License for more details.
  84258. You should have received a copy of the GNU Lesser General Public
  84259. - License along with the GNU C Library; if not, write to the Free
  84260. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84261. - 02111-1307 USA. */
  84262. + License along with the GNU C Library; if not, see
  84263. + <http://www.gnu.org/licenses/>. */
  84264. #include <tls.h>
  84265. #include <pt-machine.h>
  84266. @@ -139,7 +138,7 @@
  84267. #endif
  84268. # ifndef __ASSEMBLER__
  84269. -# if defined FLOATING_STACKS && USE___THREAD && defined __PIC__
  84270. +# if defined FLOATING_STACKS && defined __UCLIBC_HAS_TLS__ && defined __PIC__
  84271. # define SINGLE_THREAD_P \
  84272. __builtin_expect (THREAD_GETMEM (THREAD_SELF, \
  84273. p_header.data.multiple_threads) == 0, 1)
  84274. @@ -155,7 +154,7 @@
  84275. # else
  84276. # if !defined __PIC__
  84277. # define SINGLE_THREAD_P cmpl $0, __local_multiple_threads
  84278. -# elif defined FLOATING_STACKS && USE___THREAD
  84279. +# elif defined FLOATING_STACKS && defined __UCLIBC_HAS_TLS__
  84280. # define SINGLE_THREAD_P cmpl $0, %gs:MULTIPLE_THREADS_OFFSET
  84281. # else
  84282. # if !defined NOT_IN_libc || defined IS_IN_libpthread
  84283. @@ -165,7 +164,7 @@
  84284. movl __local_multiple_threads@GOT(%ecx), %ecx;\
  84285. cmpl $0, (%ecx)
  84286. # endif
  84287. -# if !defined HAVE_HIDDEN || !USE___THREAD
  84288. +# if !defined HAVE_HIDDEN || !defined __UCLIBC_HAS_TLS__
  84289. # define SINGLE_THREAD_P \
  84290. SETUP_PIC_REG (cx); \
  84291. addl $_GLOBAL_OFFSET_TABLE_, %ecx; \
  84292. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S
  84293. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84294. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/i386/vfork.S 2014-06-02 17:40:35.018717542 +0200
  84295. @@ -13,9 +13,8 @@
  84296. Lesser General Public License for more details.
  84297. You should have received a copy of the GNU Lesser General Public
  84298. - License along with the GNU C Library; if not, write to the Free
  84299. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84300. - 02111-1307 USA. */
  84301. + License along with the GNU C Library; if not, see
  84302. + <http://www.gnu.org/licenses/>. */
  84303. #include <sysdep-cancel.h>
  84304. #define _ERRNO_H 1
  84305. @@ -32,7 +31,7 @@
  84306. #ifdef __NR_vfork
  84307. # ifdef SHARED
  84308. -# if !defined HAVE_HIDDEN || !USE___THREAD
  84309. +# if !defined HAVE_HIDDEN || !defined __UCLIBC_HAS_TLS__
  84310. SETUP_PIC_REG (cx)
  84311. # else
  84312. call __i686.get_pc_thunk.cx
  84313. @@ -44,7 +43,7 @@
  84314. movl $pthread_create, %eax
  84315. testl %eax, %eax
  84316. # endif
  84317. - jne HIDDEN_JUMPTARGET (__fork)
  84318. + jne HIDDEN_JUMPTARGET (fork)
  84319. /* Pop the return PC value into ECX. */
  84320. popl %ecx
  84321. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h
  84322. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
  84323. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/bits/local_lim.h 2014-06-02 17:40:35.018717542 +0200
  84324. @@ -13,9 +13,8 @@
  84325. Lesser General Public License for more details.
  84326. You should have received a copy of the GNU Lesser General Public
  84327. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  84328. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84329. - Boston, MA 02111-1307, USA. */
  84330. + License along with the GNU C Library; see the file COPYING.LIB. If
  84331. + not, see <http://www.gnu.org/licenses/>. */
  84332. /* The kernel header pollutes the namespace with the NR_OPEN symbol
  84333. and defines LINK_MAX although filesystems have different maxima. A
  84334. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/fork.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/fork.h
  84335. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/fork.h 2012-05-15 09:20:09.000000000 +0200
  84336. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/fork.h 2014-06-02 17:40:35.018717542 +0200
  84337. @@ -13,9 +13,8 @@
  84338. Lesser General Public License for more details.
  84339. You should have received a copy of the GNU Lesser General Public
  84340. - License along with the GNU C Library; if not, write to the Free
  84341. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84342. - 02111-1307 USA. */
  84343. + License along with the GNU C Library; if not, see
  84344. + <http://www.gnu.org/licenses/>. */
  84345. #include <signal.h>
  84346. #include <sysdep.h>
  84347. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c
  84348. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  84349. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-initfini.c 2014-06-02 17:40:35.018717542 +0200
  84350. @@ -23,8 +23,7 @@
  84351. You should have received a copy of the GNU Lesser General Public
  84352. License along with the GNU C Library; see the file COPYING.LIB. If not,
  84353. - write to the Free Software Foundation, 59 Temple Place - Suite 330,
  84354. - Boston, MA 02111-1307, USA. */
  84355. + see <http://www.gnu.org/licenses/>. */
  84356. /* This file is compiled into assembly code which is then munged by a sed
  84357. script into two files: crti.s and crtn.s.
  84358. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-sigsuspend.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-sigsuspend.c
  84359. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-sigsuspend.c 2012-05-15 09:20:09.000000000 +0200
  84360. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/pt-sigsuspend.c 2014-06-02 17:40:35.018717542 +0200
  84361. @@ -13,9 +13,8 @@
  84362. Lesser General Public License for more details.
  84363. You should have received a copy of the GNU Lesser General Public
  84364. - License along with the GNU C Library; if not, write to the Free
  84365. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84366. - 02111-1307 USA. */
  84367. + License along with the GNU C Library; if not, see
  84368. + <http://www.gnu.org/licenses/>. */
  84369. #include <errno.h>
  84370. #include <signal.h>
  84371. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h
  84372. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84373. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/sysdep-cancel.h 2014-06-02 17:40:35.018717542 +0200
  84374. @@ -13,9 +13,8 @@
  84375. Lesser General Public License for more details.
  84376. You should have received a copy of the GNU Lesser General Public
  84377. - License along with the GNU C Library; if not, write to the Free
  84378. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84379. - 02111-1307 USA. */
  84380. + License along with the GNU C Library; if not, see
  84381. + <http://www.gnu.org/licenses/>. */
  84382. #include <sysdep.h>
  84383. #include <tls.h>
  84384. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/vfork.S
  84385. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84386. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/ia64/vfork.S 2014-06-02 17:40:35.018717542 +0200
  84387. @@ -12,9 +12,8 @@
  84388. Lesser General Public License for more details.
  84389. You should have received a copy of the GNU Lesser General Public
  84390. - License along with the GNU C Library; if not, write to the Free
  84391. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84392. - 02111-1307 USA. */
  84393. + License along with the GNU C Library; if not, see
  84394. + <http://www.gnu.org/licenses/>. */
  84395. #include <sysdep-cancel.h>
  84396. @@ -38,7 +37,7 @@
  84397. #endif
  84398. ld8 r14 = [r14];;
  84399. cmp.ne p6, p7 = 0, r14
  84400. -(p6) br.cond.spnt.few HIDDEN_JUMPTARGET (__fork);;
  84401. +(p6) br.cond.spnt.few HIDDEN_JUMPTARGET (fork);;
  84402. alloc r2=ar.pfs,0,0,2,0
  84403. mov out0=CLONE_VM+CLONE_VFORK+SIGCHLD
  84404. mov out1=0 /* Standard sp value. */
  84405. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/jmp-unwind.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/jmp-unwind.c
  84406. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/jmp-unwind.c 2012-05-15 09:20:09.000000000 +0200
  84407. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/jmp-unwind.c 2014-06-02 17:40:35.018717542 +0200
  84408. @@ -13,9 +13,8 @@
  84409. Lesser General Public License for more details.
  84410. You should have received a copy of the GNU Lesser General Public
  84411. - License along with the GNU C Library; if not, write to the Free
  84412. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84413. - 02111-1307 USA. */
  84414. + License along with the GNU C Library; if not, see
  84415. + <http://www.gnu.org/licenses/>. */
  84416. #include <setjmp.h>
  84417. #include <stddef.h>
  84418. @@ -32,3 +31,4 @@
  84419. (env->__jmpbuf, __builtin_frame_address (0)),
  84420. (void) 0);
  84421. }
  84422. +libc_hidden_def(_longjmp_unwind)
  84423. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h
  84424. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84425. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/sysdep-cancel.h 2014-06-02 17:40:35.018717542 +0200
  84426. @@ -13,9 +13,8 @@
  84427. Lesser General Public License for more details.
  84428. You should have received a copy of the GNU Lesser General Public
  84429. - License along with the GNU C Library; if not, write to the Free
  84430. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84431. - 02111-1307 USA. */
  84432. + License along with the GNU C Library; if not, see
  84433. + <http://www.gnu.org/licenses/>. */
  84434. #include <sysdep.h>
  84435. #ifndef __ASSEMBLER__
  84436. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/vfork.S
  84437. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84438. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/m68k/vfork.S 2014-06-02 17:40:35.018717542 +0200
  84439. @@ -13,9 +13,8 @@
  84440. Lesser General Public License for more details.
  84441. You should have received a copy of the GNU Lesser General Public
  84442. - License along with the GNU C Library; if not, write to the Free
  84443. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84444. - 02111-1307 USA. */
  84445. + License along with the GNU C Library; if not, see
  84446. + <http://www.gnu.org/licenses/>. */
  84447. #include <sysdep-cancel.h>
  84448. #define _ERRNO_H 1
  84449. @@ -35,7 +34,7 @@
  84450. .weak pthread_create
  84451. movel #pthread_create, %d0
  84452. #endif
  84453. - jbne HIDDEN_JUMPTARGET (__fork)
  84454. + jbne HIDDEN_JUMPTARGET (fork)
  84455. #ifdef __NR_vfork
  84456. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h
  84457. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84458. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/mips64/sysdep-cancel.h 2014-06-02 17:40:35.018717542 +0200
  84459. @@ -15,9 +15,8 @@
  84460. Lesser General Public License for more details.
  84461. You should have received a copy of the GNU Lesser General Public
  84462. - License along with the GNU C Library; if not, write to the Free
  84463. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84464. - 02111-1307 USA. */
  84465. + License along with the GNU C Library; if not, see
  84466. + <http://www.gnu.org/licenses/>. */
  84467. #include <sysdep.h>
  84468. #ifndef __ASSEMBLER__
  84469. @@ -31,7 +30,7 @@
  84470. # undef PSEUDO
  84471. # define PSEUDO(name, syscall_name, args) \
  84472. .align 2; \
  84473. - 99: \
  84474. + 99: move a0, v0; \
  84475. PTR_LA t9,__syscall_error; \
  84476. /* manual cpreturn. */ \
  84477. REG_L gp, STKOFF_GP(sp); \
  84478. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h
  84479. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84480. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h 2014-06-02 17:40:35.018717542 +0200
  84481. @@ -13,9 +13,8 @@
  84482. Lesser General Public License for more details.
  84483. You should have received a copy of the GNU Lesser General Public
  84484. - License along with the GNU C Library; if not, write to the Free
  84485. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84486. - 02111-1307 USA. */
  84487. + License along with the GNU C Library; if not, see
  84488. + <http://www.gnu.org/licenses/>. */
  84489. #include <sysdep.h>
  84490. #ifndef __ASSEMBLER__
  84491. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/vfork.S
  84492. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84493. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mips/vfork.S 2014-06-02 17:40:35.018717542 +0200
  84494. @@ -12,9 +12,8 @@
  84495. Lesser General Public License for more details.
  84496. You should have received a copy of the GNU Lesser General Public
  84497. - License along with the GNU C Library; if not, write to the Free
  84498. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84499. - 02111-1307 USA. */
  84500. + License along with the GNU C Library; if not, see
  84501. + <http://www.gnu.org/licenses/>. */
  84502. /* vfork() is just a special case of clone(). */
  84503. @@ -80,6 +79,7 @@
  84504. /* Something bad happened -- no child created. */
  84505. L(error):
  84506. + move a0, v0
  84507. #ifdef __PIC__
  84508. PTR_LA t9, __syscall_error
  84509. RESTORE_GP64
  84510. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mq_notify.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mq_notify.c
  84511. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mq_notify.c 2012-05-15 09:20:09.000000000 +0200
  84512. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/mq_notify.c 2014-06-02 17:40:35.022717564 +0200
  84513. @@ -13,9 +13,8 @@
  84514. Lesser General Public License for more details.
  84515. You should have received a copy of the GNU Lesser General Public
  84516. - License along with the GNU C Library; if not, write to the Free
  84517. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84518. - 02111-1307 USA. */
  84519. + License along with the GNU C Library; if not, see
  84520. + <http://www.gnu.org/licenses/>. */
  84521. #include <assert.h>
  84522. #include <errno.h>
  84523. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
  84524. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84525. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h 2014-06-02 17:40:35.022717564 +0200
  84526. @@ -13,9 +13,8 @@
  84527. Lesser General Public License for more details.
  84528. You should have received a copy of the GNU Lesser General Public
  84529. - License along with the GNU C Library; if not, write to the Free
  84530. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84531. - 02111-1307 USA. */
  84532. + License along with the GNU C Library; if not, see
  84533. + <http://www.gnu.org/licenses/>. */
  84534. #include <sysdep.h>
  84535. #include <tls.h>
  84536. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
  84537. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84538. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S 2014-06-02 17:40:35.022717564 +0200
  84539. @@ -12,9 +12,8 @@
  84540. Lesser General Public License for more details.
  84541. You should have received a copy of the GNU Lesser General Public
  84542. - License along with the GNU C Library; if not, write to the Free
  84543. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84544. - 02111-1307 USA. */
  84545. + License along with the GNU C Library; if not, see
  84546. + <http://www.gnu.org/licenses/>. */
  84547. #include <sysdep-cancel.h>
  84548. #define _ERRNO_H 1
  84549. @@ -66,7 +65,7 @@
  84550. # endif
  84551. .Lhidden_fork:
  84552. - b HIDDEN_JUMPTARGET(__fork)
  84553. + b HIDDEN_JUMPTARGET(fork)
  84554. #endif
  84555. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
  84556. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84557. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h 2014-06-02 17:40:35.022717564 +0200
  84558. @@ -13,9 +13,8 @@
  84559. Lesser General Public License for more details.
  84560. You should have received a copy of the GNU Lesser General Public
  84561. - License along with the GNU C Library; if not, write to the Free
  84562. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84563. - 02111-1307 USA. */
  84564. + License along with the GNU C Library; if not, see
  84565. + <http://www.gnu.org/licenses/>. */
  84566. #include <sysdep.h>
  84567. #include <tls.h>
  84568. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
  84569. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84570. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S 2014-06-02 17:40:35.022717564 +0200
  84571. @@ -12,9 +12,8 @@
  84572. Lesser General Public License for more details.
  84573. You should have received a copy of the GNU Lesser General Public
  84574. - License along with the GNU C Library; if not, write to the Free
  84575. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84576. - 02111-1307 USA. */
  84577. + License along with the GNU C Library; if not, see
  84578. + <http://www.gnu.org/licenses/>. */
  84579. #include <sysdep-cancel.h>
  84580. #define _ERRNO_H 1
  84581. @@ -42,7 +41,7 @@
  84582. ld 10,.LC0@toc(2)
  84583. ld 10,0(10)
  84584. cmpwi 10,0
  84585. - bne- HIDDEN_JUMPTARGET(__fork)
  84586. + bne- HIDDEN_JUMPTARGET(fork)
  84587. # else
  84588. .weak pthread_create
  84589. lis 10,pthread_create@highest
  84590. @@ -80,7 +79,7 @@
  84591. # ifndef SHARED
  84592. .Lhidden_fork:
  84593. - b HIDDEN_JUMPTARGET(__fork)
  84594. + b HIDDEN_JUMPTARGET(fork)
  84595. .Lsyscall_error:
  84596. b JUMPTARGET(__syscall_error)
  84597. # endif
  84598. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c
  84599. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c 2012-05-15 09:20:09.000000000 +0200
  84600. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c 2014-06-02 17:40:35.022717564 +0200
  84601. @@ -13,9 +13,8 @@
  84602. Lesser General Public License for more details.
  84603. You should have received a copy of the GNU Lesser General Public
  84604. - License along with the GNU C Library; if not, write to the Free
  84605. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84606. - 02111-1307 USA. */
  84607. + License along with the GNU C Library; if not, see
  84608. + <http://www.gnu.org/licenses/>. */
  84609. #include <errno.h>
  84610. #include <signal.h>
  84611. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/raise.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/raise.c
  84612. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/raise.c 2012-05-15 09:20:09.000000000 +0200
  84613. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/raise.c 2014-06-02 17:40:35.022717564 +0200
  84614. @@ -12,9 +12,8 @@
  84615. Lesser General Public License for more details.
  84616. You should have received a copy of the GNU Lesser General Public
  84617. - License along with the GNU C Library; if not, write to the Free
  84618. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84619. - 02111-1307 USA. */
  84620. + License along with the GNU C Library; if not, see
  84621. + <http://www.gnu.org/licenses/>. */
  84622. #include <signal.h>
  84623. #include <unistd.h>
  84624. @@ -40,4 +39,3 @@
  84625. #endif
  84626. }
  84627. libc_hidden_def (raise)
  84628. -weak_alias (raise, gsignal)
  84629. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/register-atfork.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/register-atfork.c
  84630. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/register-atfork.c 2012-05-15 09:20:09.000000000 +0200
  84631. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/register-atfork.c 2014-06-02 17:40:35.022717564 +0200
  84632. @@ -13,9 +13,8 @@
  84633. Lesser General Public License for more details.
  84634. You should have received a copy of the GNU Lesser General Public
  84635. - License along with the GNU C Library; if not, write to the Free
  84636. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84637. - 02111-1307 USA. */
  84638. + License along with the GNU C Library; if not, see
  84639. + <http://www.gnu.org/licenses/>. */
  84640. #include <errno.h>
  84641. #include <stdlib.h>
  84642. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
  84643. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
  84644. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/bits/typesizes.h 2014-06-02 17:40:35.022717564 +0200
  84645. @@ -13,9 +13,8 @@
  84646. Lesser General Public License for more details.
  84647. You should have received a copy of the GNU Lesser General Public
  84648. - License along with the GNU C Library; if not, write to the Free
  84649. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84650. - 02111-1307 USA. */
  84651. + License along with the GNU C Library; if not, see
  84652. + <http://www.gnu.org/licenses/>. */
  84653. #ifndef _BITS_TYPES_H
  84654. # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
  84655. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c
  84656. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  84657. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/pt-initfini.c 2014-06-02 17:40:35.022717564 +0200
  84658. @@ -23,8 +23,7 @@
  84659. You should have received a copy of the GNU Lesser General Public
  84660. License along with the GNU C Library; see the file COPYING.LIB. If not,
  84661. - write to the Free Software Foundation, 59 Temple Place - Suite 330,
  84662. - Boston, MA 02111-1307, USA. */
  84663. + see <http://www.gnu.org/licenses/>. */
  84664. /* This file is compiled into assembly code which is then munged by a sed
  84665. script into two files: crti.s and crtn.s.
  84666. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h
  84667. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84668. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/sysdep-cancel.h 2014-06-02 17:40:35.022717564 +0200
  84669. @@ -13,9 +13,8 @@
  84670. Lesser General Public License for more details.
  84671. You should have received a copy of the GNU Lesser General Public
  84672. - License along with the GNU C Library; if not, write to the Free
  84673. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84674. - 02111-1307 USA. */
  84675. + License along with the GNU C Library; if not, see
  84676. + <http://www.gnu.org/licenses/>. */
  84677. #include <sysdep.h>
  84678. #include <tls.h>
  84679. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S
  84680. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84681. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S 2014-06-02 17:40:35.022717564 +0200
  84682. @@ -13,9 +13,8 @@
  84683. Lesser General Public License for more details.
  84684. You should have received a copy of the GNU Lesser General Public
  84685. - License along with the GNU C Library; if not, write to the Free
  84686. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84687. - 02111-1307 USA. */
  84688. + License along with the GNU C Library; if not, see
  84689. + <http://www.gnu.org/licenses/>. */
  84690. #include <sysdep-cancel.h>
  84691. #define _ERRNO_H 1
  84692. @@ -54,7 +53,7 @@
  84693. al %r1,3f-2b(%r1)
  84694. br %r1
  84695. 3:
  84696. - .long HIDDEN_JUMPTARGET(__fork)-2b
  84697. + .long HIDDEN_JUMPTARGET(fork)-2b
  84698. 4:
  84699. #ifdef SHARED
  84700. .long __libc_pthread_functions-0b
  84701. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c
  84702. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  84703. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/pt-initfini.c 2014-06-02 17:40:35.022717564 +0200
  84704. @@ -24,8 +24,7 @@
  84705. You should have received a copy of the GNU Lesser General Public
  84706. License along with the GNU C Library; see the file COPYING.LIB. If not,
  84707. - write to the Free Software Foundation, 59 Temple Place - Suite 330,
  84708. - Boston, MA 02111-1307, USA. */
  84709. + see <http://www.gnu.org/licenses/>. */
  84710. /* This file is compiled into assembly code which is then munged by a sed
  84711. script into two files: crti.s and crtn.s.
  84712. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h
  84713. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84714. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/sysdep-cancel.h 2014-06-02 17:40:35.022717564 +0200
  84715. @@ -13,9 +13,8 @@
  84716. Lesser General Public License for more details.
  84717. You should have received a copy of the GNU Lesser General Public
  84718. - License along with the GNU C Library; if not, write to the Free
  84719. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84720. - 02111-1307 USA. */
  84721. + License along with the GNU C Library; if not, see
  84722. + <http://www.gnu.org/licenses/>. */
  84723. #include <sysdep.h>
  84724. #include <tls.h>
  84725. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S
  84726. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84727. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S 2014-06-02 17:40:35.022717564 +0200
  84728. @@ -13,9 +13,8 @@
  84729. Lesser General Public License for more details.
  84730. You should have received a copy of the GNU Lesser General Public
  84731. - License along with the GNU C Library; if not, write to the Free
  84732. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84733. - 02111-1307 USA. */
  84734. + License along with the GNU C Library; if not, see
  84735. + <http://www.gnu.org/licenses/>. */
  84736. #include <sysdep-cancel.h>
  84737. #define _ERRNO_H 1
  84738. @@ -35,7 +34,7 @@
  84739. larl %r1,pthread_create
  84740. #endif
  84741. ltgr %r1,%r1
  84742. - jgne HIDDEN_JUMPTARGET(__fork)
  84743. + jgne HIDDEN_JUMPTARGET(fork)
  84744. /* Do vfork system call. */
  84745. svc SYS_ify (vfork)
  84746. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/pt-initfini.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/pt-initfini.c
  84747. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  84748. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/pt-initfini.c 2014-06-02 17:40:35.026717586 +0200
  84749. @@ -23,8 +23,7 @@
  84750. You should have received a copy of the GNU Lesser General Public
  84751. License along with the GNU C Library; see the file COPYING.LIB. If not,
  84752. - write to the Free Software Foundation, 59 Temple Place - Suite 330,
  84753. - Boston, MA 02111-1307, USA. */
  84754. + see <http://www.gnu.org/licenses/>. */
  84755. /* This file is compiled into assembly code which is then munged by a sed
  84756. script into two files: crti.s and crtn.s.
  84757. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/smp.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/smp.h
  84758. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/smp.h 2012-05-15 09:20:09.000000000 +0200
  84759. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/smp.h 2014-06-02 17:40:35.026717586 +0200
  84760. @@ -14,8 +14,7 @@
  84761. You should have received a copy of the GNU Library General Public
  84762. License along with the GNU C Library; see the file COPYING.LIB. If not,
  84763. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84764. - Boston, MA 02111-1307, USA. */
  84765. + see <http://www.gnu.org/licenses/>. */
  84766. static __inline__ int
  84767. is_smp_system (void)
  84768. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
  84769. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84770. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h 2014-06-02 17:40:35.026717586 +0200
  84771. @@ -12,9 +12,8 @@
  84772. Lesser General Public License for more details.
  84773. You should have received a copy of the GNU Lesser General Public
  84774. - License along with the GNU C Library; if not, write to the Free
  84775. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84776. - 02111-1307 USA. */
  84777. + License along with the GNU C Library; if not, see
  84778. + <http://www.gnu.org/licenses/>. */
  84779. #include <sysdep.h>
  84780. #include <tls.h>
  84781. @@ -155,7 +154,7 @@
  84782. # endif
  84783. # ifndef __ASSEMBLER__
  84784. -# if defined FLOATING_STACKS && USE___THREAD && defined __PIC__
  84785. +# if defined FLOATING_STACKS && defined __UCLIBC_HAS_TLS__ && defined __PIC__
  84786. # define SINGLE_THREAD_P \
  84787. __builtin_expect (THREAD_GETMEM (THREAD_SELF, p_multiple_threads) == 0, 1)
  84788. # else
  84789. @@ -172,7 +171,7 @@
  84790. .align 2; \
  84791. 1: .long __local_multiple_threads; \
  84792. 2:
  84793. -# elif defined FLOATING_STACKS && USE___THREAD
  84794. +# elif defined FLOATING_STACKS && defined __UCLIBC_HAS_TLS__
  84795. # define SINGLE_THREAD_P \
  84796. stc gbr,r0; \
  84797. mov.w 0f,r1; \
  84798. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/vfork.S
  84799. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84800. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sh/vfork.S 2014-06-02 17:40:35.026717586 +0200
  84801. @@ -12,9 +12,8 @@
  84802. Lesser General Public License for more details.
  84803. You should have received a copy of the GNU Lesser General Public
  84804. - License along with the GNU C Library; if not, write to the Free
  84805. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84806. - 02111-1307 USA. */
  84807. + License along with the GNU C Library; if not, see
  84808. + <http://www.gnu.org/licenses/>. */
  84809. #include <sysdep-cancel.h>
  84810. #define _ERRNO_H 1
  84811. @@ -70,7 +69,7 @@
  84812. nop
  84813. 1:
  84814. .align 2
  84815. -.L2: .long HIDDEN_JUMPTARGET(__fork)-1b
  84816. +.L2: .long HIDDEN_JUMPTARGET(fork)-1b
  84817. PSEUDO_END (__vfork)
  84818. libc_hidden_def (__vfork)
  84819. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sigwait.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sigwait.c
  84820. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sigwait.c 2012-05-15 09:20:09.000000000 +0200
  84821. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sigwait.c 2014-06-02 17:40:35.026717586 +0200
  84822. @@ -12,9 +12,8 @@
  84823. Lesser General Public License for more details.
  84824. You should have received a copy of the GNU Lesser General Public
  84825. - License along with the GNU C Library; if not, write to the Free
  84826. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84827. - 02111-1307 USA. */
  84828. + License along with the GNU C Library; if not, see
  84829. + <http://www.gnu.org/licenses/>. */
  84830. #include <errno.h>
  84831. #include <signal.h>
  84832. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/smp.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/smp.h
  84833. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/smp.h 2012-05-15 09:20:09.000000000 +0200
  84834. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/smp.h 2014-06-02 17:40:35.026717586 +0200
  84835. @@ -14,8 +14,7 @@
  84836. You should have received a copy of the GNU Library General Public
  84837. License along with the GNU C Library; see the file COPYING.LIB. If not,
  84838. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84839. - Boston, MA 02111-1307, USA. */
  84840. + see <http://www.gnu.org/licenses/>. */
  84841. #include <sys/sysctl.h>
  84842. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h
  84843. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
  84844. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h 2014-06-02 17:40:35.026717586 +0200
  84845. @@ -13,9 +13,8 @@
  84846. Lesser General Public License for more details.
  84847. You should have received a copy of the GNU Lesser General Public
  84848. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  84849. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  84850. - Boston, MA 02111-1307, USA. */
  84851. + License along with the GNU C Library; see the file COPYING.LIB. If
  84852. + not, see <http://www.gnu.org/licenses/>. */
  84853. /* The kernel header pollutes the namespace with the NR_OPEN symbol
  84854. and defines LINK_MAX although filesystems have different maxima. A
  84855. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
  84856. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h 2012-05-15 09:20:09.000000000 +0200
  84857. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h 2014-06-02 17:40:35.026717586 +0200
  84858. @@ -13,9 +13,8 @@
  84859. Lesser General Public License for more details.
  84860. You should have received a copy of the GNU Lesser General Public
  84861. - License along with the GNU C Library; if not, write to the Free
  84862. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84863. - 02111-1307 USA. */
  84864. + License along with the GNU C Library; if not, see
  84865. + <http://www.gnu.org/licenses/>. */
  84866. #ifndef _BITS_TYPES_H
  84867. # error "Never include <bits/typesizes.h> directly; use <sys/types.h> instead."
  84868. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/fork.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/fork.h
  84869. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/fork.h 2012-05-15 09:20:09.000000000 +0200
  84870. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/fork.h 2014-06-02 17:40:35.026717586 +0200
  84871. @@ -13,9 +13,8 @@
  84872. Lesser General Public License for more details.
  84873. You should have received a copy of the GNU Lesser General Public
  84874. - License along with the GNU C Library; if not, write to the Free
  84875. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84876. - 02111-1307 USA. */
  84877. + License along with the GNU C Library; if not, see
  84878. + <http://www.gnu.org/licenses/>. */
  84879. #include_next <fork.h>
  84880. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
  84881. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84882. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h 2014-06-02 17:40:35.026717586 +0200
  84883. @@ -13,9 +13,8 @@
  84884. Lesser General Public License for more details.
  84885. You should have received a copy of the GNU Lesser General Public
  84886. - License along with the GNU C Library; if not, write to the Free
  84887. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84888. - 02111-1307 USA. */
  84889. + License along with the GNU C Library; if not, see
  84890. + <http://www.gnu.org/licenses/>. */
  84891. #include <tls.h>
  84892. #ifndef __ASSEMBLER__
  84893. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
  84894. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84895. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S 2014-06-02 17:40:35.026717586 +0200
  84896. @@ -13,9 +13,8 @@
  84897. Lesser General Public License for more details.
  84898. You should have received a copy of the GNU Lesser General Public
  84899. - License along with the GNU C Library; if not, write to the Free
  84900. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84901. - 02111-1307 USA. */
  84902. + License along with the GNU C Library; if not, see
  84903. + <http://www.gnu.org/licenses/>. */
  84904. #include <sysdep-cancel.h>
  84905. @@ -43,7 +42,7 @@
  84906. orcc %o0, %lo(pthread_create), %o0
  84907. #endif
  84908. #if defined SHARED && !defined BROKEN_SPARC_WDISP22
  84909. - bne HIDDEN_JUMPTARGET(__fork)
  84910. + bne HIDDEN_JUMPTARGET(fork)
  84911. #else
  84912. bne 1f
  84913. #endif
  84914. @@ -56,7 +55,7 @@
  84915. and %o0, %o1, %o0
  84916. #if !defined SHARED || defined BROKEN_SPARC_WDISP22
  84917. 1: mov %o7, %g1
  84918. - call HIDDEN_JUMPTARGET(__fork)
  84919. + call HIDDEN_JUMPTARGET(fork)
  84920. mov %g1, %o7
  84921. #endif
  84922. SYSCALL_ERROR_HANDLER
  84923. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
  84924. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84925. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h 2014-06-02 17:40:35.026717586 +0200
  84926. @@ -13,9 +13,8 @@
  84927. Lesser General Public License for more details.
  84928. You should have received a copy of the GNU Lesser General Public
  84929. - License along with the GNU C Library; if not, write to the Free
  84930. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84931. - 02111-1307 USA. */
  84932. + License along with the GNU C Library; if not, see
  84933. + <http://www.gnu.org/licenses/>. */
  84934. #include <tls.h>
  84935. #ifndef __ASSEMBLER__
  84936. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
  84937. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84938. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S 2014-06-02 17:40:35.026717586 +0200
  84939. @@ -13,9 +13,8 @@
  84940. Lesser General Public License for more details.
  84941. You should have received a copy of the GNU Lesser General Public
  84942. - License along with the GNU C Library; if not, write to the Free
  84943. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84944. - 02111-1307 USA. */
  84945. + License along with the GNU C Library; if not, see
  84946. + <http://www.gnu.org/licenses/>. */
  84947. #include <sysdep-cancel.h>
  84948. @@ -42,7 +41,7 @@
  84949. #endif
  84950. #if defined SHARED && !defined BROKEN_SPARC_WDISP22
  84951. cmp %o0, 0
  84952. - bne HIDDEN_JUMPTARGET(__fork)
  84953. + bne HIDDEN_JUMPTARGET(fork)
  84954. #else
  84955. brnz,pn %o0, 1f
  84956. #endif
  84957. @@ -55,7 +54,7 @@
  84958. and %o0, %o1, %o0
  84959. #if !defined SHARED || defined BROKEN_SPARC_WDISP22
  84960. 1: mov %o7, %g1
  84961. - call HIDDEN_JUMPTARGET(__fork)
  84962. + call HIDDEN_JUMPTARGET(fork)
  84963. mov %g1, %o7
  84964. #endif
  84965. SYSCALL_ERROR_HANDLER
  84966. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/unregister-atfork.c uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/unregister-atfork.c
  84967. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/unregister-atfork.c 2012-05-15 09:20:09.000000000 +0200
  84968. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/unregister-atfork.c 2014-06-02 17:40:35.026717586 +0200
  84969. @@ -13,9 +13,8 @@
  84970. Lesser General Public License for more details.
  84971. You should have received a copy of the GNU Lesser General Public
  84972. - License along with the GNU C Library; if not, write to the Free
  84973. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84974. - 02111-1307 USA. */
  84975. + License along with the GNU C Library; if not, see
  84976. + <http://www.gnu.org/licenses/>. */
  84977. #include <errno.h>
  84978. #include <stdlib.h>
  84979. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h
  84980. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  84981. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h 2014-06-02 17:40:35.026717586 +0200
  84982. @@ -13,9 +13,8 @@
  84983. Lesser General Public License for more details.
  84984. You should have received a copy of the GNU Lesser General Public
  84985. - License along with the GNU C Library; if not, write to the Free
  84986. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  84987. - 02111-1307 USA. */
  84988. + License along with the GNU C Library; if not, see
  84989. + <http://www.gnu.org/licenses/>. */
  84990. #include <sysdep.h>
  84991. #include <tls.h>
  84992. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/vfork.S uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/vfork.S
  84993. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  84994. +++ uClibc-git/libpthread/linuxthreads/sysdeps/unix/sysv/linux/x86_64/vfork.S 2014-06-02 17:40:35.026717586 +0200
  84995. @@ -12,9 +12,8 @@
  84996. Lesser General Public License for more details.
  84997. You should have received a copy of the GNU Lesser General Public
  84998. - License along with the GNU C Library; if not, write to the Free
  84999. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85000. - 02111-1307 USA. */
  85001. + License along with the GNU C Library; if not, see
  85002. + <http://www.gnu.org/licenses/>. */
  85003. #include <sysdep-cancel.h>
  85004. #define _ERRNO_H 1
  85005. @@ -34,7 +33,7 @@
  85006. movq $pthread_create, %rax
  85007. testq %rax, %rax
  85008. #endif
  85009. - jne HIDDEN_JUMPTARGET (__fork)
  85010. + jne HIDDEN_JUMPTARGET (fork)
  85011. /* Pop the return PC value into RDI. We need a register that
  85012. is preserved by the syscall and that we're allowed to destroy. */
  85013. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/x86_64/pspinlock.c uClibc-git/libpthread/linuxthreads/sysdeps/x86_64/pspinlock.c
  85014. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/x86_64/pspinlock.c 2012-05-15 09:20:09.000000000 +0200
  85015. +++ uClibc-git/libpthread/linuxthreads/sysdeps/x86_64/pspinlock.c 2014-06-02 17:40:35.026717586 +0200
  85016. @@ -13,9 +13,8 @@
  85017. Lesser General Public License for more details.
  85018. You should have received a copy of the GNU Lesser General Public
  85019. - License along with the GNU C Library; if not, write to the Free
  85020. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85021. - 02111-1307 USA. */
  85022. + License along with the GNU C Library; if not, see
  85023. + <http://www.gnu.org/licenses/>. */
  85024. #include <errno.h>
  85025. #include <pthread.h>
  85026. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/x86_64/pt-machine.h uClibc-git/libpthread/linuxthreads/sysdeps/x86_64/pt-machine.h
  85027. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/x86_64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  85028. +++ uClibc-git/libpthread/linuxthreads/sysdeps/x86_64/pt-machine.h 2014-06-02 17:40:35.026717586 +0200
  85029. @@ -14,9 +14,8 @@
  85030. Lesser General Public License for more details.
  85031. You should have received a copy of the GNU Lesser General Public
  85032. - License along with the GNU C Library; if not, write to the Free
  85033. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85034. - 02111-1307 USA. */
  85035. + License along with the GNU C Library; if not, see
  85036. + <http://www.gnu.org/licenses/>. */
  85037. #ifndef _PT_MACHINE_H
  85038. #define _PT_MACHINE_H 1
  85039. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/x86_64/tls.h uClibc-git/libpthread/linuxthreads/sysdeps/x86_64/tls.h
  85040. --- uClibc-0.9.33.2/libpthread/linuxthreads/sysdeps/x86_64/tls.h 2012-05-15 09:20:09.000000000 +0200
  85041. +++ uClibc-git/libpthread/linuxthreads/sysdeps/x86_64/tls.h 2014-06-02 17:40:35.026717586 +0200
  85042. @@ -13,9 +13,8 @@
  85043. Lesser General Public License for more details.
  85044. You should have received a copy of the GNU Lesser General Public
  85045. - License along with the GNU C Library; if not, write to the Free
  85046. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85047. - 02111-1307 USA. */
  85048. + License along with the GNU C Library; if not, see
  85049. + <http://www.gnu.org/licenses/>. */
  85050. #ifndef _TLS_H
  85051. #define _TLS_H
  85052. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/.cvsignore uClibc-git/libpthread/linuxthreads_db/.cvsignore
  85053. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/.cvsignore 2012-05-15 09:20:09.000000000 +0200
  85054. +++ uClibc-git/libpthread/linuxthreads_db/.cvsignore 1970-01-01 01:00:00.000000000 +0100
  85055. @@ -1,5 +0,0 @@
  85056. -.cvsignore
  85057. -.svn
  85058. -*.os
  85059. -Makefile
  85060. -Makefile.in
  85061. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/Makefile.old uClibc-git/libpthread/linuxthreads_db/Makefile.old
  85062. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/Makefile.old 2012-05-15 09:20:09.000000000 +0200
  85063. +++ uClibc-git/libpthread/linuxthreads_db/Makefile.old 2014-06-02 17:40:35.026717586 +0200
  85064. @@ -12,9 +12,8 @@
  85065. # Lesser General Public License for more details.
  85066. # You should have received a copy of the GNU Lesser General Public
  85067. -# License along with the GNU C Library; if not, write to the Free
  85068. -# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85069. -# 02111-1307 USA.
  85070. +# License along with the GNU C Library; see the file COPYING.LIB. If
  85071. +# not, see <http://www.gnu.org/licenses/>.
  85072. # Makefile for linuxthreads debug library subdirectory of GNU C Library.
  85073. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/proc_service.h uClibc-git/libpthread/linuxthreads_db/proc_service.h
  85074. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/proc_service.h 2012-05-15 09:20:09.000000000 +0200
  85075. +++ uClibc-git/libpthread/linuxthreads_db/proc_service.h 2014-06-02 17:40:35.026717586 +0200
  85076. @@ -12,9 +12,8 @@
  85077. Lesser General Public License for more details.
  85078. You should have received a copy of the GNU Lesser General Public
  85079. - License along with the GNU C Library; if not, write to the Free
  85080. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85081. - 02111-1307 USA. */
  85082. + License along with the GNU C Library; if not, see
  85083. + <http://www.gnu.org/licenses/>. */
  85084. /* The definitions in this file must correspond to those in the debugger. */
  85085. #include <sys/procfs.h>
  85086. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_init.c uClibc-git/libpthread/linuxthreads_db/td_init.c
  85087. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_init.c 2012-05-15 09:20:09.000000000 +0200
  85088. +++ uClibc-git/libpthread/linuxthreads_db/td_init.c 2014-06-02 17:40:35.026717586 +0200
  85089. @@ -14,9 +14,8 @@
  85090. Lesser General Public License for more details.
  85091. You should have received a copy of the GNU Lesser General Public
  85092. - License along with the GNU C Library; if not, write to the Free
  85093. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85094. - 02111-1307 USA. */
  85095. + License along with the GNU C Library; if not, see
  85096. + <http://www.gnu.org/licenses/>. */
  85097. #include "thread_dbP.h"
  85098. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_log.c uClibc-git/libpthread/linuxthreads_db/td_log.c
  85099. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_log.c 2012-05-15 09:20:09.000000000 +0200
  85100. +++ uClibc-git/libpthread/linuxthreads_db/td_log.c 2014-06-02 17:40:35.026717586 +0200
  85101. @@ -14,9 +14,8 @@
  85102. Lesser General Public License for more details.
  85103. You should have received a copy of the GNU Lesser General Public
  85104. - License along with the GNU C Library; if not, write to the Free
  85105. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85106. - 02111-1307 USA. */
  85107. + License along with the GNU C Library; if not, see
  85108. + <http://www.gnu.org/licenses/>. */
  85109. #include "thread_dbP.h"
  85110. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_symbol_list.c uClibc-git/libpthread/linuxthreads_db/td_symbol_list.c
  85111. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_symbol_list.c 2012-05-15 09:20:09.000000000 +0200
  85112. +++ uClibc-git/libpthread/linuxthreads_db/td_symbol_list.c 2014-06-02 17:40:35.026717586 +0200
  85113. @@ -14,9 +14,8 @@
  85114. Lesser General Public License for more details.
  85115. You should have received a copy of the GNU Lesser General Public
  85116. - License along with the GNU C Library; if not, write to the Free
  85117. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85118. - 02111-1307 USA. */
  85119. + License along with the GNU C Library; if not, see
  85120. + <http://www.gnu.org/licenses/>. */
  85121. #include <assert.h>
  85122. #include "thread_dbP.h"
  85123. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_clear_event.c uClibc-git/libpthread/linuxthreads_db/td_ta_clear_event.c
  85124. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_clear_event.c 2012-05-15 09:20:09.000000000 +0200
  85125. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_clear_event.c 2014-06-02 17:40:35.026717586 +0200
  85126. @@ -14,17 +14,14 @@
  85127. Lesser General Public License for more details.
  85128. You should have received a copy of the GNU Lesser General Public
  85129. - License along with the GNU C Library; if not, write to the Free
  85130. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85131. - 02111-1307 USA. */
  85132. + License along with the GNU C Library; if not, see
  85133. + <http://www.gnu.org/licenses/>. */
  85134. #include "thread_dbP.h"
  85135. td_err_e
  85136. -td_ta_clear_event (ta, event)
  85137. - const td_thragent_t *ta;
  85138. - td_thr_events_t *event;
  85139. +td_ta_clear_event(const td_thragent_t *ta, td_thr_events_t *event)
  85140. {
  85141. td_thr_events_t old_event;
  85142. int i;
  85143. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_delete.c uClibc-git/libpthread/linuxthreads_db/td_ta_delete.c
  85144. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_delete.c 2012-05-15 09:20:09.000000000 +0200
  85145. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_delete.c 2014-06-02 17:40:35.026717586 +0200
  85146. @@ -14,9 +14,8 @@
  85147. Lesser General Public License for more details.
  85148. You should have received a copy of the GNU Lesser General Public
  85149. - License along with the GNU C Library; if not, write to the Free
  85150. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85151. - 02111-1307 USA. */
  85152. + License along with the GNU C Library; if not, see
  85153. + <http://www.gnu.org/licenses/>. */
  85154. #include <stdlib.h>
  85155. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_enable_stats.c uClibc-git/libpthread/linuxthreads_db/td_ta_enable_stats.c
  85156. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_enable_stats.c 2012-05-15 09:20:09.000000000 +0200
  85157. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_enable_stats.c 2014-06-02 17:40:35.026717586 +0200
  85158. @@ -14,9 +14,8 @@
  85159. Lesser General Public License for more details.
  85160. You should have received a copy of the GNU Lesser General Public
  85161. - License along with the GNU C Library; if not, write to the Free
  85162. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85163. - 02111-1307 USA. */
  85164. + License along with the GNU C Library; if not, see
  85165. + <http://www.gnu.org/licenses/>. */
  85166. #include "thread_dbP.h"
  85167. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_event_addr.c uClibc-git/libpthread/linuxthreads_db/td_ta_event_addr.c
  85168. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_event_addr.c 2012-05-15 09:20:09.000000000 +0200
  85169. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_event_addr.c 2014-06-02 17:40:35.026717586 +0200
  85170. @@ -14,9 +14,8 @@
  85171. Lesser General Public License for more details.
  85172. You should have received a copy of the GNU Lesser General Public
  85173. - License along with the GNU C Library; if not, write to the Free
  85174. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85175. - 02111-1307 USA. */
  85176. + License along with the GNU C Library; if not, see
  85177. + <http://www.gnu.org/licenses/>. */
  85178. #include "thread_dbP.h"
  85179. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_event_getmsg.c uClibc-git/libpthread/linuxthreads_db/td_ta_event_getmsg.c
  85180. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
  85181. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_event_getmsg.c 2014-06-02 17:40:35.026717586 +0200
  85182. @@ -14,9 +14,8 @@
  85183. Lesser General Public License for more details.
  85184. You should have received a copy of the GNU Lesser General Public
  85185. - License along with the GNU C Library; if not, write to the Free
  85186. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85187. - 02111-1307 USA. */
  85188. + License along with the GNU C Library; if not, see
  85189. + <http://www.gnu.org/licenses/>. */
  85190. #include <stddef.h>
  85191. #include <string.h>
  85192. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_get_nthreads.c uClibc-git/libpthread/linuxthreads_db/td_ta_get_nthreads.c
  85193. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_get_nthreads.c 2012-05-15 09:20:09.000000000 +0200
  85194. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_get_nthreads.c 2014-06-02 17:40:35.026717586 +0200
  85195. @@ -14,9 +14,8 @@
  85196. Lesser General Public License for more details.
  85197. You should have received a copy of the GNU Lesser General Public
  85198. - License along with the GNU C Library; if not, write to the Free
  85199. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85200. - 02111-1307 USA. */
  85201. + License along with the GNU C Library; if not, see
  85202. + <http://www.gnu.org/licenses/>. */
  85203. #include "thread_dbP.h"
  85204. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_get_ph.c uClibc-git/libpthread/linuxthreads_db/td_ta_get_ph.c
  85205. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_get_ph.c 2012-05-15 09:20:09.000000000 +0200
  85206. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_get_ph.c 2014-06-02 17:40:35.026717586 +0200
  85207. @@ -14,9 +14,8 @@
  85208. Lesser General Public License for more details.
  85209. You should have received a copy of the GNU Lesser General Public
  85210. - License along with the GNU C Library; if not, write to the Free
  85211. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85212. - 02111-1307 USA. */
  85213. + License along with the GNU C Library; if not, see
  85214. + <http://www.gnu.org/licenses/>. */
  85215. #include "thread_dbP.h"
  85216. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_get_stats.c uClibc-git/libpthread/linuxthreads_db/td_ta_get_stats.c
  85217. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_get_stats.c 2012-05-15 09:20:09.000000000 +0200
  85218. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_get_stats.c 2014-06-02 17:40:35.026717586 +0200
  85219. @@ -14,9 +14,8 @@
  85220. Lesser General Public License for more details.
  85221. You should have received a copy of the GNU Lesser General Public
  85222. - License along with the GNU C Library; if not, write to the Free
  85223. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85224. - 02111-1307 USA. */
  85225. + License along with the GNU C Library; if not, see
  85226. + <http://www.gnu.org/licenses/>. */
  85227. #include "thread_dbP.h"
  85228. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_map_id2thr.c uClibc-git/libpthread/linuxthreads_db/td_ta_map_id2thr.c
  85229. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_map_id2thr.c 2012-05-15 09:20:09.000000000 +0200
  85230. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_map_id2thr.c 2014-06-02 17:40:35.026717586 +0200
  85231. @@ -14,9 +14,8 @@
  85232. Lesser General Public License for more details.
  85233. You should have received a copy of the GNU Lesser General Public
  85234. - License along with the GNU C Library; if not, write to the Free
  85235. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85236. - 02111-1307 USA. */
  85237. + License along with the GNU C Library; if not, see
  85238. + <http://www.gnu.org/licenses/>. */
  85239. #include "thread_dbP.h"
  85240. #include <linuxthreads/internals.h>
  85241. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_map_lwp2thr.c uClibc-git/libpthread/linuxthreads_db/td_ta_map_lwp2thr.c
  85242. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_map_lwp2thr.c 2012-05-15 09:20:09.000000000 +0200
  85243. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_map_lwp2thr.c 2014-06-02 17:40:35.026717586 +0200
  85244. @@ -14,9 +14,8 @@
  85245. Lesser General Public License for more details.
  85246. You should have received a copy of the GNU Lesser General Public
  85247. - License along with the GNU C Library; if not, write to the Free
  85248. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85249. - 02111-1307 USA. */
  85250. + License along with the GNU C Library; if not, see
  85251. + <http://www.gnu.org/licenses/>. */
  85252. #include "thread_dbP.h"
  85253. #include <linuxthreads/internals.h>
  85254. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_new.c uClibc-git/libpthread/linuxthreads_db/td_ta_new.c
  85255. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_new.c 2012-05-15 09:20:09.000000000 +0200
  85256. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_new.c 2014-06-02 17:40:35.026717586 +0200
  85257. @@ -14,9 +14,8 @@
  85258. Lesser General Public License for more details.
  85259. You should have received a copy of the GNU Lesser General Public
  85260. - License along with the GNU C Library; if not, write to the Free
  85261. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85262. - 02111-1307 USA. */
  85263. + License along with the GNU C Library; if not, see
  85264. + <http://www.gnu.org/licenses/>. */
  85265. #include <stddef.h>
  85266. #include <stdlib.h>
  85267. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_reset_stats.c uClibc-git/libpthread/linuxthreads_db/td_ta_reset_stats.c
  85268. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_reset_stats.c 2012-05-15 09:20:09.000000000 +0200
  85269. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_reset_stats.c 2014-06-02 17:40:35.030717608 +0200
  85270. @@ -14,9 +14,8 @@
  85271. Lesser General Public License for more details.
  85272. You should have received a copy of the GNU Lesser General Public
  85273. - License along with the GNU C Library; if not, write to the Free
  85274. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85275. - 02111-1307 USA. */
  85276. + License along with the GNU C Library; if not, see
  85277. + <http://www.gnu.org/licenses/>. */
  85278. #include "thread_dbP.h"
  85279. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_setconcurrency.c uClibc-git/libpthread/linuxthreads_db/td_ta_setconcurrency.c
  85280. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_setconcurrency.c 2012-05-15 09:20:09.000000000 +0200
  85281. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_setconcurrency.c 2014-06-02 17:40:35.030717608 +0200
  85282. @@ -14,9 +14,8 @@
  85283. Lesser General Public License for more details.
  85284. You should have received a copy of the GNU Lesser General Public
  85285. - License along with the GNU C Library; if not, write to the Free
  85286. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85287. - 02111-1307 USA. */
  85288. + License along with the GNU C Library; if not, see
  85289. + <http://www.gnu.org/licenses/>. */
  85290. #include "thread_dbP.h"
  85291. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_set_event.c uClibc-git/libpthread/linuxthreads_db/td_ta_set_event.c
  85292. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_set_event.c 2012-05-15 09:20:09.000000000 +0200
  85293. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_set_event.c 2014-06-02 17:40:35.030717608 +0200
  85294. @@ -14,17 +14,14 @@
  85295. Lesser General Public License for more details.
  85296. You should have received a copy of the GNU Lesser General Public
  85297. - License along with the GNU C Library; if not, write to the Free
  85298. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85299. - 02111-1307 USA. */
  85300. + License along with the GNU C Library; if not, see
  85301. + <http://www.gnu.org/licenses/>. */
  85302. #include "thread_dbP.h"
  85303. td_err_e
  85304. -td_ta_set_event (ta, event)
  85305. - const td_thragent_t *ta;
  85306. - td_thr_events_t *event;
  85307. +td_ta_set_event(const td_thragent_t *ta, td_thr_events_t *event)
  85308. {
  85309. td_thr_events_t old_event;
  85310. int i;
  85311. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_thr_iter.c uClibc-git/libpthread/linuxthreads_db/td_ta_thr_iter.c
  85312. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_thr_iter.c 2012-05-15 09:20:09.000000000 +0200
  85313. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_thr_iter.c 2014-06-02 17:40:35.030717608 +0200
  85314. @@ -14,9 +14,8 @@
  85315. Lesser General Public License for more details.
  85316. You should have received a copy of the GNU Lesser General Public
  85317. - License along with the GNU C Library; if not, write to the Free
  85318. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85319. - 02111-1307 USA. */
  85320. + License along with the GNU C Library; if not, see
  85321. + <http://www.gnu.org/licenses/>. */
  85322. #include "thread_dbP.h"
  85323. #include <linuxthreads/internals.h>
  85324. @@ -40,7 +39,7 @@
  85325. memset (&pds, '\0', sizeof (pds));
  85326. /* Empty thread descriptor the thread library would create. */
  85327. -#if !defined USE_TLS || !TLS_DTV_AT_TP
  85328. +#if !defined __UCLIBC_HAS_TLS__ || !TLS_DTV_AT_TP
  85329. pds.p_header.data.self = &pds;
  85330. #endif
  85331. pds.p_nextlive = pds.p_prevlive = &pds;
  85332. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_tsd_iter.c uClibc-git/libpthread/linuxthreads_db/td_ta_tsd_iter.c
  85333. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_ta_tsd_iter.c 2012-05-15 09:20:09.000000000 +0200
  85334. +++ uClibc-git/libpthread/linuxthreads_db/td_ta_tsd_iter.c 2014-06-02 17:40:35.030717608 +0200
  85335. @@ -14,9 +14,8 @@
  85336. Lesser General Public License for more details.
  85337. You should have received a copy of the GNU Lesser General Public
  85338. - License along with the GNU C Library; if not, write to the Free
  85339. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85340. - 02111-1307 USA. */
  85341. + License along with the GNU C Library; if not, see
  85342. + <http://www.gnu.org/licenses/>. */
  85343. #include "thread_dbP.h"
  85344. #include <linuxthreads/internals.h>
  85345. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_clear_event.c uClibc-git/libpthread/linuxthreads_db/td_thr_clear_event.c
  85346. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_clear_event.c 2012-05-15 09:20:09.000000000 +0200
  85347. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_clear_event.c 2014-06-02 17:40:35.030717608 +0200
  85348. @@ -14,9 +14,8 @@
  85349. Lesser General Public License for more details.
  85350. You should have received a copy of the GNU Lesser General Public
  85351. - License along with the GNU C Library; if not, write to the Free
  85352. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85353. - 02111-1307 USA. */
  85354. + License along with the GNU C Library; if not, see
  85355. + <http://www.gnu.org/licenses/>. */
  85356. #include <stddef.h>
  85357. @@ -24,9 +23,7 @@
  85358. td_err_e
  85359. -td_thr_clear_event (th, event)
  85360. - const td_thrhandle_t *th;
  85361. - td_thr_events_t *event;
  85362. +td_thr_clear_event(const td_thrhandle_t *th, td_thr_events_t *event)
  85363. {
  85364. td_thr_events_t old_event;
  85365. int i;
  85366. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_dbresume.c uClibc-git/libpthread/linuxthreads_db/td_thr_dbresume.c
  85367. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_dbresume.c 2012-05-15 09:20:09.000000000 +0200
  85368. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_dbresume.c 2014-06-02 17:40:35.030717608 +0200
  85369. @@ -14,9 +14,8 @@
  85370. Lesser General Public License for more details.
  85371. You should have received a copy of the GNU Lesser General Public
  85372. - License along with the GNU C Library; if not, write to the Free
  85373. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85374. - 02111-1307 USA. */
  85375. + License along with the GNU C Library; if not, see
  85376. + <http://www.gnu.org/licenses/>. */
  85377. #include "thread_dbP.h"
  85378. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_dbsuspend.c uClibc-git/libpthread/linuxthreads_db/td_thr_dbsuspend.c
  85379. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_dbsuspend.c 2012-05-15 09:20:09.000000000 +0200
  85380. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_dbsuspend.c 2014-06-02 17:40:35.030717608 +0200
  85381. @@ -14,9 +14,8 @@
  85382. Lesser General Public License for more details.
  85383. You should have received a copy of the GNU Lesser General Public
  85384. - License along with the GNU C Library; if not, write to the Free
  85385. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85386. - 02111-1307 USA. */
  85387. + License along with the GNU C Library; if not, see
  85388. + <http://www.gnu.org/licenses/>. */
  85389. #include "thread_dbP.h"
  85390. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_event_enable.c uClibc-git/libpthread/linuxthreads_db/td_thr_event_enable.c
  85391. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_event_enable.c 2012-05-15 09:20:09.000000000 +0200
  85392. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_event_enable.c 2014-06-02 17:40:35.030717608 +0200
  85393. @@ -14,9 +14,8 @@
  85394. Lesser General Public License for more details.
  85395. You should have received a copy of the GNU Lesser General Public
  85396. - License along with the GNU C Library; if not, write to the Free
  85397. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85398. - 02111-1307 USA. */
  85399. + License along with the GNU C Library; if not, see
  85400. + <http://www.gnu.org/licenses/>. */
  85401. #include <stddef.h>
  85402. @@ -24,9 +23,7 @@
  85403. td_err_e
  85404. -td_thr_event_enable (th, onoff)
  85405. - const td_thrhandle_t *th;
  85406. - int onoff;
  85407. +td_thr_event_enable(const td_thrhandle_t *th, int onoff)
  85408. {
  85409. LOG ("td_thr_event_enable");
  85410. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_event_getmsg.c uClibc-git/libpthread/linuxthreads_db/td_thr_event_getmsg.c
  85411. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
  85412. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_event_getmsg.c 2014-06-02 17:40:35.030717608 +0200
  85413. @@ -14,9 +14,8 @@
  85414. Lesser General Public License for more details.
  85415. You should have received a copy of the GNU Lesser General Public
  85416. - License along with the GNU C Library; if not, write to the Free
  85417. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85418. - 02111-1307 USA. */
  85419. + License along with the GNU C Library; if not, see
  85420. + <http://www.gnu.org/licenses/>. */
  85421. #include <stddef.h>
  85422. #include <string.h>
  85423. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getfpregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_getfpregs.c
  85424. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getfpregs.c 2012-05-15 09:20:09.000000000 +0200
  85425. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_getfpregs.c 2014-06-02 17:40:35.030717608 +0200
  85426. @@ -14,9 +14,8 @@
  85427. Lesser General Public License for more details.
  85428. You should have received a copy of the GNU Lesser General Public
  85429. - License along with the GNU C Library; if not, write to the Free
  85430. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85431. - 02111-1307 USA. */
  85432. + License along with the GNU C Library; if not, see
  85433. + <http://www.gnu.org/licenses/>. */
  85434. #include "thread_dbP.h"
  85435. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getgregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_getgregs.c
  85436. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getgregs.c 2012-05-15 09:20:09.000000000 +0200
  85437. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_getgregs.c 2014-06-02 17:40:35.030717608 +0200
  85438. @@ -14,9 +14,8 @@
  85439. Lesser General Public License for more details.
  85440. You should have received a copy of the GNU Lesser General Public
  85441. - License along with the GNU C Library; if not, write to the Free
  85442. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85443. - 02111-1307 USA. */
  85444. + License along with the GNU C Library; if not, see
  85445. + <http://www.gnu.org/licenses/>. */
  85446. #include "thread_dbP.h"
  85447. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_get_info.c uClibc-git/libpthread/linuxthreads_db/td_thr_get_info.c
  85448. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_get_info.c 2012-05-15 09:20:09.000000000 +0200
  85449. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_get_info.c 2014-06-02 17:40:35.030717608 +0200
  85450. @@ -14,9 +14,8 @@
  85451. Lesser General Public License for more details.
  85452. You should have received a copy of the GNU Lesser General Public
  85453. - License along with the GNU C Library; if not, write to the Free
  85454. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85455. - 02111-1307 USA. */
  85456. + License along with the GNU C Library; if not, see
  85457. + <http://www.gnu.org/licenses/>. */
  85458. #include <stddef.h>
  85459. #include <string.h>
  85460. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getxregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_getxregs.c
  85461. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getxregs.c 2012-05-15 09:20:09.000000000 +0200
  85462. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_getxregs.c 2014-06-02 17:40:35.030717608 +0200
  85463. @@ -14,9 +14,8 @@
  85464. Lesser General Public License for more details.
  85465. You should have received a copy of the GNU Lesser General Public
  85466. - License along with the GNU C Library; if not, write to the Free
  85467. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85468. - 02111-1307 USA. */
  85469. + License along with the GNU C Library; if not, see
  85470. + <http://www.gnu.org/licenses/>. */
  85471. #include "thread_dbP.h"
  85472. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getxregsize.c uClibc-git/libpthread/linuxthreads_db/td_thr_getxregsize.c
  85473. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_getxregsize.c 2012-05-15 09:20:09.000000000 +0200
  85474. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_getxregsize.c 2014-06-02 17:40:35.030717608 +0200
  85475. @@ -14,9 +14,8 @@
  85476. Lesser General Public License for more details.
  85477. You should have received a copy of the GNU Lesser General Public
  85478. - License along with the GNU C Library; if not, write to the Free
  85479. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85480. - 02111-1307 USA. */
  85481. + License along with the GNU C Library; if not, see
  85482. + <http://www.gnu.org/licenses/>. */
  85483. #include "thread_dbP.h"
  85484. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_set_event.c uClibc-git/libpthread/linuxthreads_db/td_thr_set_event.c
  85485. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_set_event.c 2012-05-15 09:20:09.000000000 +0200
  85486. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_set_event.c 2014-06-02 17:40:35.030717608 +0200
  85487. @@ -14,9 +14,8 @@
  85488. Lesser General Public License for more details.
  85489. You should have received a copy of the GNU Lesser General Public
  85490. - License along with the GNU C Library; if not, write to the Free
  85491. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85492. - 02111-1307 USA. */
  85493. + License along with the GNU C Library; if not, see
  85494. + <http://www.gnu.org/licenses/>. */
  85495. #include <stddef.h>
  85496. @@ -24,9 +23,7 @@
  85497. td_err_e
  85498. -td_thr_set_event (th, event)
  85499. - const td_thrhandle_t *th;
  85500. - td_thr_events_t *event;
  85501. +td_thr_set_event(const td_thrhandle_t *th, td_thr_events_t *event)
  85502. {
  85503. td_thr_events_t old_event;
  85504. int i;
  85505. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setfpregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_setfpregs.c
  85506. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setfpregs.c 2012-05-15 09:20:09.000000000 +0200
  85507. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_setfpregs.c 2014-06-02 17:40:35.030717608 +0200
  85508. @@ -14,9 +14,8 @@
  85509. Lesser General Public License for more details.
  85510. You should have received a copy of the GNU Lesser General Public
  85511. - License along with the GNU C Library; if not, write to the Free
  85512. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85513. - 02111-1307 USA. */
  85514. + License along with the GNU C Library; if not, see
  85515. + <http://www.gnu.org/licenses/>. */
  85516. #include "thread_dbP.h"
  85517. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setgregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_setgregs.c
  85518. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setgregs.c 2012-05-15 09:20:09.000000000 +0200
  85519. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_setgregs.c 2014-06-02 17:40:35.030717608 +0200
  85520. @@ -14,9 +14,8 @@
  85521. Lesser General Public License for more details.
  85522. You should have received a copy of the GNU Lesser General Public
  85523. - License along with the GNU C Library; if not, write to the Free
  85524. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85525. - 02111-1307 USA. */
  85526. + License along with the GNU C Library; if not, see
  85527. + <http://www.gnu.org/licenses/>. */
  85528. #include "thread_dbP.h"
  85529. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setprio.c uClibc-git/libpthread/linuxthreads_db/td_thr_setprio.c
  85530. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setprio.c 2012-05-15 09:20:09.000000000 +0200
  85531. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_setprio.c 2014-06-02 17:40:35.030717608 +0200
  85532. @@ -14,9 +14,8 @@
  85533. Lesser General Public License for more details.
  85534. You should have received a copy of the GNU Lesser General Public
  85535. - License along with the GNU C Library; if not, write to the Free
  85536. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85537. - 02111-1307 USA. */
  85538. + License along with the GNU C Library; if not, see
  85539. + <http://www.gnu.org/licenses/>. */
  85540. #include "thread_dbP.h"
  85541. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setsigpending.c uClibc-git/libpthread/linuxthreads_db/td_thr_setsigpending.c
  85542. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setsigpending.c 2012-05-15 09:20:09.000000000 +0200
  85543. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_setsigpending.c 2014-06-02 17:40:35.030717608 +0200
  85544. @@ -14,9 +14,8 @@
  85545. Lesser General Public License for more details.
  85546. You should have received a copy of the GNU Lesser General Public
  85547. - License along with the GNU C Library; if not, write to the Free
  85548. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85549. - 02111-1307 USA. */
  85550. + License along with the GNU C Library; if not, see
  85551. + <http://www.gnu.org/licenses/>. */
  85552. #include "thread_dbP.h"
  85553. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setxregs.c uClibc-git/libpthread/linuxthreads_db/td_thr_setxregs.c
  85554. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_setxregs.c 2012-05-15 09:20:09.000000000 +0200
  85555. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_setxregs.c 2014-06-02 17:40:35.030717608 +0200
  85556. @@ -14,9 +14,8 @@
  85557. Lesser General Public License for more details.
  85558. You should have received a copy of the GNU Lesser General Public
  85559. - License along with the GNU C Library; if not, write to the Free
  85560. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85561. - 02111-1307 USA. */
  85562. + License along with the GNU C Library; if not, see
  85563. + <http://www.gnu.org/licenses/>. */
  85564. #include "thread_dbP.h"
  85565. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_sigsetmask.c uClibc-git/libpthread/linuxthreads_db/td_thr_sigsetmask.c
  85566. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_sigsetmask.c 2012-05-15 09:20:09.000000000 +0200
  85567. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_sigsetmask.c 2014-06-02 17:40:35.030717608 +0200
  85568. @@ -14,9 +14,8 @@
  85569. Lesser General Public License for more details.
  85570. You should have received a copy of the GNU Lesser General Public
  85571. - License along with the GNU C Library; if not, write to the Free
  85572. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85573. - 02111-1307 USA. */
  85574. + License along with the GNU C Library; if not, see
  85575. + <http://www.gnu.org/licenses/>. */
  85576. #include "thread_dbP.h"
  85577. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_tlsbase.c uClibc-git/libpthread/linuxthreads_db/td_thr_tlsbase.c
  85578. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_tlsbase.c 2012-05-15 09:20:09.000000000 +0200
  85579. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_tlsbase.c 2014-06-02 17:40:35.030717608 +0200
  85580. @@ -13,9 +13,8 @@
  85581. Lesser General Public License for more details.
  85582. You should have received a copy of the GNU Lesser General Public
  85583. - License along with the GNU C Library; if not, write to the Free
  85584. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85585. - 02111-1307 USA. */
  85586. + License along with the GNU C Library; if not, see
  85587. + <http://www.gnu.org/licenses/>. */
  85588. #include "thread_dbP.h"
  85589. @@ -30,7 +29,7 @@
  85590. if (modid < 1)
  85591. return TD_NOTLS;
  85592. -#if USE_TLS
  85593. +#ifdef __UCLIBC_HAS_TLS__
  85594. union dtv pdtv, *dtvp;
  85595. LOG ("td_thr_tlsbase");
  85596. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_tls_get_addr.c uClibc-git/libpthread/linuxthreads_db/td_thr_tls_get_addr.c
  85597. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_tls_get_addr.c 2012-05-15 09:20:09.000000000 +0200
  85598. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_tls_get_addr.c 2014-06-02 17:40:35.030717608 +0200
  85599. @@ -14,9 +14,8 @@
  85600. Lesser General Public License for more details.
  85601. You should have received a copy of the GNU Lesser General Public
  85602. - License along with the GNU C Library; if not, write to the Free
  85603. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85604. - 02111-1307 USA. */
  85605. + License along with the GNU C Library; if not, see
  85606. + <http://www.gnu.org/licenses/>. */
  85607. #include <link.h>
  85608. #include "thread_dbP.h"
  85609. @@ -27,7 +26,7 @@
  85610. size_t offset __attribute__ ((unused)),
  85611. void **address __attribute__ ((unused)))
  85612. {
  85613. -#if USE_TLS
  85614. +#ifdef __UCLIBC_HAS_TLS__
  85615. /* Read the module ID from the link_map. */
  85616. size_t modid;
  85617. if (ps_pdread (th->th_ta_p->ph,
  85618. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_tsd.c uClibc-git/libpthread/linuxthreads_db/td_thr_tsd.c
  85619. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_tsd.c 2012-05-15 09:20:09.000000000 +0200
  85620. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_tsd.c 2014-06-02 17:40:35.030717608 +0200
  85621. @@ -14,9 +14,8 @@
  85622. Lesser General Public License for more details.
  85623. You should have received a copy of the GNU Lesser General Public
  85624. - License along with the GNU C Library; if not, write to the Free
  85625. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85626. - 02111-1307 USA. */
  85627. + License along with the GNU C Library; if not, see
  85628. + <http://www.gnu.org/licenses/>. */
  85629. #include "thread_dbP.h"
  85630. #include <linuxthreads/internals.h>
  85631. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_validate.c uClibc-git/libpthread/linuxthreads_db/td_thr_validate.c
  85632. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/td_thr_validate.c 2012-05-15 09:20:09.000000000 +0200
  85633. +++ uClibc-git/libpthread/linuxthreads_db/td_thr_validate.c 2014-06-02 17:40:35.030717608 +0200
  85634. @@ -14,9 +14,8 @@
  85635. Lesser General Public License for more details.
  85636. You should have received a copy of the GNU Lesser General Public
  85637. - License along with the GNU C Library; if not, write to the Free
  85638. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85639. - 02111-1307 USA. */
  85640. + License along with the GNU C Library; if not, see
  85641. + <http://www.gnu.org/licenses/>. */
  85642. #include "thread_dbP.h"
  85643. #include <linuxthreads/internals.h>
  85644. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads_db/thread_db.h uClibc-git/libpthread/linuxthreads_db/thread_db.h
  85645. --- uClibc-0.9.33.2/libpthread/linuxthreads_db/thread_db.h 2012-05-15 09:20:09.000000000 +0200
  85646. +++ uClibc-git/libpthread/linuxthreads_db/thread_db.h 2014-06-02 17:40:35.030717608 +0200
  85647. @@ -13,9 +13,8 @@
  85648. Lesser General Public License for more details.
  85649. You should have received a copy of the GNU Lesser General Public
  85650. - License along with the GNU C Library; if not, write to the Free
  85651. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85652. - 02111-1307 USA. */
  85653. + License along with the GNU C Library; if not, see
  85654. + <http://www.gnu.org/licenses/>. */
  85655. #ifndef _THREAD_DB_H
  85656. #define _THREAD_DB_H 1
  85657. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/cancel.c uClibc-git/libpthread/linuxthreads.old/cancel.c
  85658. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/cancel.c 2012-05-15 09:20:09.000000000 +0200
  85659. +++ uClibc-git/libpthread/linuxthreads.old/cancel.c 2014-06-02 17:40:34.850716612 +0200
  85660. @@ -14,8 +14,6 @@
  85661. /* Thread cancellation */
  85662. -#define __FORCE_GLIBC
  85663. -#include <features.h>
  85664. #include <errno.h>
  85665. #include "pthread.h"
  85666. #include "internals.h"
  85667. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/condvar.c uClibc-git/libpthread/linuxthreads.old/condvar.c
  85668. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/condvar.c 2012-05-15 09:20:09.000000000 +0200
  85669. +++ uClibc-git/libpthread/linuxthreads.old/condvar.c 2014-06-02 17:40:34.850716612 +0200
  85670. @@ -25,16 +25,6 @@
  85671. #include "queue.h"
  85672. #include "restart.h"
  85673. -libpthread_hidden_proto(pthread_cond_broadcast)
  85674. -libpthread_hidden_proto(pthread_cond_destroy)
  85675. -libpthread_hidden_proto(pthread_cond_init)
  85676. -libpthread_hidden_proto(pthread_cond_signal)
  85677. -libpthread_hidden_proto(pthread_cond_wait)
  85678. -libpthread_hidden_proto(pthread_cond_timedwait)
  85679. -
  85680. -libpthread_hidden_proto(pthread_condattr_destroy)
  85681. -libpthread_hidden_proto(pthread_condattr_init)
  85682. -
  85683. int pthread_cond_init(pthread_cond_t *cond,
  85684. const pthread_condattr_t *cond_attr attribute_unused)
  85685. {
  85686. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/errno.c uClibc-git/libpthread/linuxthreads.old/errno.c
  85687. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/errno.c 2012-05-15 09:20:09.000000000 +0200
  85688. +++ uClibc-git/libpthread/linuxthreads.old/errno.c 2014-06-02 17:40:34.850716612 +0200
  85689. @@ -14,8 +14,6 @@
  85690. /* Define the location of errno for the remainder of the C library */
  85691. -#define __FORCE_GLIBC
  85692. -#include <features.h>
  85693. #include <errno.h>
  85694. #include <netdb.h>
  85695. #include "pthread.h"
  85696. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/events.c uClibc-git/libpthread/linuxthreads.old/events.c
  85697. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/events.c 2012-05-15 09:20:09.000000000 +0200
  85698. +++ uClibc-git/libpthread/linuxthreads.old/events.c 2014-06-02 17:40:34.850716612 +0200
  85699. @@ -14,8 +14,7 @@
  85700. You should have received a copy of the GNU Library General Public
  85701. License along with the GNU C Library; see the file COPYING.LIB. If not,
  85702. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  85703. - Boston, MA 02111-1307, USA. */
  85704. + see <http://www.gnu.org/licenses/>. */
  85705. /* The functions contained here do nothing, they just return. */
  85706. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/forward.c uClibc-git/libpthread/linuxthreads.old/forward.c
  85707. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/forward.c 2012-05-15 09:20:09.000000000 +0200
  85708. +++ uClibc-git/libpthread/linuxthreads.old/forward.c 2014-06-02 17:40:34.850716612 +0200
  85709. @@ -13,9 +13,8 @@
  85710. Lesser General Public License for more details.
  85711. You should have received a copy of the GNU Lesser General Public
  85712. - License along with the GNU C Library; if not, write to the Free
  85713. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85714. - 02111-1307 USA. */
  85715. + License along with the GNU C Library; if not, see
  85716. + <http://www.gnu.org/licenses/>. */
  85717. #include <features.h>
  85718. #include <stdlib.h>
  85719. @@ -163,8 +162,12 @@
  85720. FORWARD (pthread_setcanceltype, (int type, int *oldtype), (type, oldtype), 0)
  85721. +#if 0
  85722. FORWARD2 (_pthread_cleanup_push, void, (struct _pthread_cleanup_buffer * buffer, void (*routine)(void *), void * arg), (buffer, routine, arg), return)
  85723. +#endif
  85724. FORWARD2 (_pthread_cleanup_push_defer, void, (struct _pthread_cleanup_buffer * buffer, void (*routine)(void *), void * arg), (buffer, routine, arg), return)
  85725. +#if 0
  85726. FORWARD2 (_pthread_cleanup_pop, void, (struct _pthread_cleanup_buffer * buffer, int execute), (buffer, execute), return)
  85727. +#endif
  85728. FORWARD2 (_pthread_cleanup_pop_restore, void, (struct _pthread_cleanup_buffer * buffer, int execute), (buffer, execute), return)
  85729. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/internals.h uClibc-git/libpthread/linuxthreads.old/internals.h
  85730. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/internals.h 2012-05-15 09:20:09.000000000 +0200
  85731. +++ uClibc-git/libpthread/linuxthreads.old/internals.h 2014-06-02 17:40:34.850716612 +0200
  85732. @@ -327,32 +327,28 @@
  85733. /* The page size we can get from the system. This should likely not be
  85734. changed by the machine file but, you never know. */
  85735. -extern size_t __pagesize;
  85736. -#include <bits/uClibc_page.h>
  85737. -#ifndef PAGE_SIZE
  85738. -#define PAGE_SIZE (sysconf (_SC_PAGESIZE))
  85739. -#endif
  85740. +#define __PAGE_SIZE (sysconf (_SC_PAGESIZE))
  85741. /* The max size of the thread stack segments. If the default
  85742. THREAD_SELF implementation is used, this must be a power of two and
  85743. - a multiple of PAGE_SIZE. */
  85744. + a multiple of __PAGE_SIZE. */
  85745. #ifndef STACK_SIZE
  85746. #ifdef __ARCH_USE_MMU__
  85747. #define STACK_SIZE (2 * 1024 * 1024)
  85748. #else
  85749. -#define STACK_SIZE (4 * __pagesize)
  85750. +#define STACK_SIZE (4 * __PAGE_SIZE)
  85751. #endif
  85752. #endif
  85753. -/* The initial size of the thread stack. Must be a multiple of PAGE_SIZE. */
  85754. +/* The initial size of the thread stack. Must be a multiple of __PAGE_SIZE. */
  85755. #ifndef INITIAL_STACK_SIZE
  85756. -#define INITIAL_STACK_SIZE (4 * __pagesize)
  85757. +#define INITIAL_STACK_SIZE (4 * __PAGE_SIZE)
  85758. #endif
  85759. /* Size of the thread manager stack. The "- 32" avoids wasting space
  85760. with some malloc() implementations. */
  85761. #ifndef THREAD_MANAGER_STACK_SIZE
  85762. -#define THREAD_MANAGER_STACK_SIZE (2 * __pagesize - 32)
  85763. +#define THREAD_MANAGER_STACK_SIZE (2 * __PAGE_SIZE - 32)
  85764. #endif
  85765. /* The base of the "array" of thread stacks. The array will grow down from
  85766. @@ -385,7 +381,7 @@
  85767. /* Recover thread descriptor for the current thread */
  85768. -extern pthread_descr __pthread_find_self (void) __attribute__ ((const));
  85769. +extern pthread_descr __pthread_find_self (void) __attribute__ ((const)) attribute_hidden;
  85770. static __inline__ pthread_descr thread_self (void) __attribute__ ((const));
  85771. static __inline__ pthread_descr thread_self (void)
  85772. @@ -455,18 +451,18 @@
  85773. /* Internal global functions */
  85774. void __pthread_do_exit (void *retval, char *currentframe)
  85775. - __attribute__ ((__noreturn__));
  85776. -void __pthread_destroy_specifics(void);
  85777. -void __pthread_perform_cleanup(char *currentframe);
  85778. -int __pthread_initialize_manager(void);
  85779. + __attribute__ ((__noreturn__)) attribute_hidden;
  85780. +void __pthread_destroy_specifics(void) attribute_hidden;
  85781. +void __pthread_perform_cleanup(char *currentframe) attribute_hidden;
  85782. +int __pthread_initialize_manager(void) attribute_hidden;
  85783. void __pthread_message(char * fmt, ...)
  85784. - __attribute__ ((__format__ (printf, 1, 2)));
  85785. -int __pthread_manager(void *reqfd);
  85786. -int __pthread_manager_event(void *reqfd);
  85787. -void __pthread_manager_sighandler(int sig);
  85788. -void __pthread_reset_main_thread(void);
  85789. -void __fresetlockfiles(void);
  85790. -void __pthread_manager_adjust_prio(int thread_prio);
  85791. + __attribute__ ((__format__ (printf, 1, 2))) attribute_hidden;
  85792. +int __pthread_manager(void *reqfd) attribute_hidden;
  85793. +int __pthread_manager_event(void *reqfd) attribute_hidden;
  85794. +void __pthread_manager_sighandler(int sig) attribute_hidden;
  85795. +void __pthread_reset_main_thread(void) attribute_hidden;
  85796. +void __fresetlockfiles(void) attribute_hidden;
  85797. +void __pthread_manager_adjust_prio(int thread_prio) attribute_hidden;
  85798. void __pthread_initialize_minimal (void);
  85799. extern void __pthread_exit (void *retval)
  85800. @@ -475,36 +471,36 @@
  85801. #endif
  85802. ;
  85803. -extern int __pthread_attr_setguardsize __P ((pthread_attr_t *__attr,
  85804. - size_t __guardsize));
  85805. -extern int __pthread_attr_getguardsize __P ((__const pthread_attr_t *__attr,
  85806. - size_t *__guardsize));
  85807. -extern int __pthread_attr_setstackaddr __P ((pthread_attr_t *__attr,
  85808. - void *__stackaddr));
  85809. -extern int __pthread_attr_getstackaddr __P ((__const pthread_attr_t *__attr,
  85810. - void **__stackaddr));
  85811. -extern int __pthread_attr_setstacksize __P ((pthread_attr_t *__attr,
  85812. - size_t __stacksize));
  85813. -extern int __pthread_attr_getstacksize __P ((__const pthread_attr_t *__attr,
  85814. - size_t *__stacksize));
  85815. -extern int __pthread_getconcurrency __P ((void));
  85816. -extern int __pthread_setconcurrency __P ((int __level));
  85817. -extern void __pthread_kill_other_threads_np __P ((void));
  85818. -
  85819. -extern void __pthread_restart_old(pthread_descr th);
  85820. -extern void __pthread_suspend_old(pthread_descr self);
  85821. -extern int __pthread_timedsuspend_old(pthread_descr self, const struct timespec *abstime);
  85822. -
  85823. -extern void __pthread_restart_new(pthread_descr th);
  85824. -extern void __pthread_suspend_new(pthread_descr self);
  85825. -extern int __pthread_timedsuspend_new(pthread_descr self, const struct timespec *abstime);
  85826. +extern int __pthread_attr_setguardsize(pthread_attr_t *__attr,
  85827. + size_t __guardsize) attribute_hidden;
  85828. +extern int __pthread_attr_getguardsize(const pthread_attr_t *__attr,
  85829. + size_t *__guardsize) attribute_hidden;
  85830. +extern int __pthread_attr_setstackaddr(pthread_attr_t *__attr,
  85831. + void *__stackaddr) attribute_hidden;
  85832. +extern int __pthread_attr_getstackaddr(const pthread_attr_t *__attr,
  85833. + void **__stackaddr) attribute_hidden;
  85834. +extern int __pthread_attr_setstacksize(pthread_attr_t *__attr,
  85835. + size_t __stacksize) attribute_hidden;
  85836. +extern int __pthread_attr_getstacksize(const pthread_attr_t *__attr,
  85837. + size_t *__stacksize) attribute_hidden;
  85838. +extern int __pthread_getconcurrency(void) attribute_hidden;
  85839. +extern int __pthread_setconcurrency(int __level) attribute_hidden;
  85840. +extern void __pthread_kill_other_threads_np(void) attribute_hidden;
  85841. +
  85842. +extern void __pthread_restart_old(pthread_descr th) attribute_hidden;
  85843. +extern void __pthread_suspend_old(pthread_descr self) attribute_hidden;
  85844. +extern int __pthread_timedsuspend_old(pthread_descr self, const struct timespec *abstime) attribute_hidden;
  85845. +
  85846. +extern void __pthread_restart_new(pthread_descr th) attribute_hidden;
  85847. +extern void __pthread_suspend_new(pthread_descr self) attribute_hidden;
  85848. +extern int __pthread_timedsuspend_new(pthread_descr self, const struct timespec *abstime) attribute_hidden;
  85849. -extern void __pthread_wait_for_restart_signal(pthread_descr self);
  85850. +extern void __pthread_wait_for_restart_signal(pthread_descr self) attribute_hidden;
  85851. /* Global pointers to old or new suspend functions */
  85852. -extern void (*__pthread_restart)(pthread_descr);
  85853. -extern void (*__pthread_suspend)(pthread_descr);
  85854. +extern void (*__pthread_restart)(pthread_descr) attribute_hidden;
  85855. +extern void (*__pthread_suspend)(pthread_descr) attribute_hidden;
  85856. #if defined NOT_IN_libc && defined IS_IN_libpthread
  85857. extern __typeof(pthread_mutex_init) __pthread_mutex_init attribute_hidden;
  85858. @@ -515,7 +511,7 @@
  85859. #endif
  85860. /* Prototypes for some of the new semaphore functions. */
  85861. -extern int __new_sem_post (sem_t * sem);
  85862. +/*extern int __new_sem_post (sem_t * sem);*/
  85863. /* TSD. */
  85864. extern int __pthread_internal_tsd_set (int key, const void * pointer);
  85865. @@ -524,12 +520,10 @@
  85866. __pthread_internal_tsd_address (int key);
  85867. /* The functions called the signal events. */
  85868. -extern void __linuxthreads_create_event (void);
  85869. -extern void __linuxthreads_death_event (void);
  85870. -extern void __linuxthreads_reap_event (void);
  85871. +extern void __linuxthreads_create_event (void) attribute_hidden;
  85872. +extern void __linuxthreads_death_event (void) attribute_hidden;
  85873. +extern void __linuxthreads_reap_event (void) attribute_hidden;
  85874. #include <pthread-functions.h>
  85875. -extern int * __libc_pthread_init (const struct pthread_functions *functions);
  85876. -
  85877. #endif /* internals.h */
  85878. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/libc_pthread_init.c uClibc-git/libpthread/linuxthreads.old/libc_pthread_init.c
  85879. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/libc_pthread_init.c 2012-05-15 09:20:09.000000000 +0200
  85880. +++ uClibc-git/libpthread/linuxthreads.old/libc_pthread_init.c 2014-06-02 17:40:34.850716612 +0200
  85881. @@ -13,27 +13,12 @@
  85882. Lesser General Public License for more details.
  85883. You should have received a copy of the GNU Lesser General Public
  85884. - License along with the GNU C Library; if not, write to the Free
  85885. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  85886. - 02111-1307 USA. */
  85887. + License along with the GNU C Library; if not, see
  85888. + <http://www.gnu.org/licenses/>. */
  85889. -#include <features.h>
  85890. #include <locale.h>
  85891. -#include <stdlib.h>
  85892. #include <string.h>
  85893. -
  85894. -/* see comment in forward.c */
  85895. -#define GCC_RENAME_BUG 1
  85896. -#ifdef GCC_RENAME_BUG
  85897. -# include <ctype.h>
  85898. -# include <signal.h>
  85899. -# include <unistd.h>
  85900. -# include <sys/time.h>
  85901. -# include <sys/wait.h>
  85902. -#endif
  85903. -
  85904. -#include "internals.h"
  85905. -#include "sysdeps/pthread/pthread-functions.h"
  85906. +#include <linuxthreads.old/sysdeps/pthread/pthread-functions.h>
  85907. int __libc_multiple_threads attribute_hidden __attribute__((nocommon));
  85908. @@ -48,7 +33,7 @@
  85909. sizeof (__libc_pthread_functions));
  85910. #endif
  85911. -#if ! defined USE___THREAD && defined __UCLIBC_HAS_XLOCALE__
  85912. +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_XLOCALE__
  85913. /* Initialize thread-locale current locale to point to the global one.
  85914. With __thread support, the variable's initializer takes care of this. */
  85915. uselocale (LC_GLOBAL_LOCALE);
  85916. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/locale.c uClibc-git/libpthread/linuxthreads.old/locale.c
  85917. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/locale.c 2012-05-15 09:20:09.000000000 +0200
  85918. +++ uClibc-git/libpthread/linuxthreads.old/locale.c 2014-06-02 17:40:34.850716612 +0200
  85919. @@ -11,8 +11,8 @@
  85920. * Library General Public License for more details.
  85921. *
  85922. * You should have received a copy of the GNU Library General Public
  85923. - * License along with this library; if not, write to the Free
  85924. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  85925. + * License along with this library; if not, see
  85926. + * <http://www.gnu.org/licenses/>.
  85927. */
  85928. #include <features.h>
  85929. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/lockfile.c uClibc-git/libpthread/linuxthreads.old/lockfile.c
  85930. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/lockfile.c 2012-05-15 09:20:09.000000000 +0200
  85931. +++ uClibc-git/libpthread/linuxthreads.old/lockfile.c 2014-06-02 17:40:34.850716612 +0200
  85932. @@ -13,9 +13,8 @@
  85933. Lesser General Public License for more details.
  85934. You should have received a copy of the GNU Lesser General Public
  85935. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  85936. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  85937. - Boston, MA 02111-1307, USA. */
  85938. + License along with the GNU C Library; see the file COPYING.LIB. If
  85939. + not, see <http://www.gnu.org/licenses/>. */
  85940. #include <stdio.h>
  85941. #include <pthread.h>
  85942. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/Makefile.in uClibc-git/libpthread/linuxthreads.old/Makefile.in
  85943. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  85944. +++ uClibc-git/libpthread/linuxthreads.old/Makefile.in 2014-06-02 17:40:34.850716612 +0200
  85945. @@ -34,15 +34,12 @@
  85946. libpthread_SRC := \
  85947. attr.c cancel.c condvar.c errno.c events.c join.c lockfile.c manager.c \
  85948. - mutex.c oldsemaphore.c pt-machine.c ptfork.c ptlongjmp.c \
  85949. + mutex.c pt-machine.c ptfork.c pthread.c ptlongjmp.c \
  85950. rwlock.c semaphore.c signals.c specific.c spinlock.c wrapsyscall.c
  85951. ifeq ($(UCLIBC_HAS_XLOCALE),y)
  85952. libpthread_SRC += locale.c
  85953. endif
  85954. -libpthread_SPEC_SRC := pthread.c
  85955. -libpthread_SPEC_SRC := $(patsubst %.c,$(libpthread_DIR)/%.c,$(libpthread_SPEC_SRC))
  85956. -
  85957. # remove generic sources, if arch specific version is present
  85958. ifneq ($(strip $(libpthread_ARCH_SRC)),)
  85959. libpthread_SRC := $(filter-out $(patsubst %.c,$(libpthread_DIR)/%.c,$(notdir $(libpthread_ARCH_SRC))),$(libpthread_SRC))
  85960. @@ -62,15 +59,12 @@
  85961. libc-static-y += $(libpthread_OUT)/libc_pthread_init.o
  85962. libc-shared-y += $(libpthread_libc_OBJ:.o=.oS)
  85963. -libpthread-static-y += $(patsubst $(libpthread_DIR)/%.c,$(libpthread_OUT)/%.o,$(libpthread_SPEC_SRC))
  85964. -libpthread-shared-y += $(patsubst $(libpthread_DIR)/%.c,$(libpthread_OUT)/%.oS,$(libpthread_SPEC_SRC))
  85965. -
  85966. ifeq ($(DOPIC),y)
  85967. -libpthread-a-y += $(libpthread_OBJ:.o=.os) $(libpthread-static-y:.o=.os)
  85968. +libpthread-a-y += $(libpthread_OBJ:.o=.os)
  85969. else
  85970. -libpthread-a-y += $(libpthread_OBJ) $(libpthread-static-y)
  85971. +libpthread-a-y += $(libpthread_OBJ)
  85972. endif
  85973. -libpthread-so-y += $(libpthread_OBJ:.o=.os) $(libpthread-shared-y)
  85974. +libpthread-so-y += $(libpthread_OBJ:.o=.oS)
  85975. lib-a-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.a
  85976. lib-so-$(UCLIBC_HAS_THREADS) += $(top_builddir)lib/libpthread.so
  85977. @@ -93,7 +87,7 @@
  85978. ifeq ($(PTHREADS_DEBUG_SUPPORT),y)
  85979. $(libpthread_OUT)/libpthread.oS: STRIP_FLAGS:=$(STRIP_FLAGS:-x=-X --strip-debug)
  85980. endif
  85981. -$(libpthread_OUT)/libpthread.oS: $(libpthread_SRC) $(libpthread_SPEC_SRC)
  85982. +$(libpthread_OUT)/libpthread.oS: $(libpthread_SRC)
  85983. $(Q)$(RM) $@
  85984. $(compile-m)
  85985. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/manager.c uClibc-git/libpthread/linuxthreads.old/manager.c
  85986. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/manager.c 2012-05-15 09:20:09.000000000 +0200
  85987. +++ uClibc-git/libpthread/linuxthreads.old/manager.c 2014-06-02 17:40:34.850716612 +0200
  85988. @@ -232,7 +232,7 @@
  85989. break;
  85990. case REQ_POST:
  85991. PDEBUG("got REQ_POST\n");
  85992. - __new_sem_post(request.req_args.post);
  85993. + sem_post(request.req_args.post);
  85994. break;
  85995. case REQ_DEBUG:
  85996. PDEBUG("got REQ_DEBUG\n");
  85997. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/oldsemaphore.c uClibc-git/libpthread/linuxthreads.old/oldsemaphore.c
  85998. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/oldsemaphore.c 2012-05-15 09:20:09.000000000 +0200
  85999. +++ uClibc-git/libpthread/linuxthreads.old/oldsemaphore.c 1970-01-01 01:00:00.000000000 +0100
  86000. @@ -1,241 +0,0 @@
  86001. -/*
  86002. - * This file contains the old semaphore code that we need to
  86003. - * preserve for glibc-2.0 backwards compatibility. Port to glibc 2.1
  86004. - * done by Cristian Gafton.
  86005. - */
  86006. -
  86007. -/* Linuxthreads - a simple clone()-based implementation of Posix */
  86008. -/* threads for Linux. */
  86009. -/* Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr) */
  86010. -/* */
  86011. -/* This program is free software; you can redistribute it and/or */
  86012. -/* modify it under the terms of the GNU Library General Public License */
  86013. -/* as published by the Free Software Foundation; either version 2 */
  86014. -/* of the License, or (at your option) any later version. */
  86015. -/* */
  86016. -/* This program is distributed in the hope that it will be useful, */
  86017. -/* but WITHOUT ANY WARRANTY; without even the implied warranty of */
  86018. -/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
  86019. -/* GNU Library General Public License for more details. */
  86020. -
  86021. -/* Semaphores a la POSIX 1003.1b */
  86022. -
  86023. -#include <errno.h>
  86024. -#include "pthread.h"
  86025. -#include "internals.h"
  86026. -#include "spinlock.h"
  86027. -#include "restart.h"
  86028. -#include "queue.h"
  86029. -
  86030. -typedef struct {
  86031. - long int sem_status;
  86032. - int sem_spinlock;
  86033. -} old_sem_t;
  86034. -
  86035. -/* Maximum value the semaphore can have. */
  86036. -#define SEM_VALUE_MAX ((int) ((~0u) >> 1))
  86037. -
  86038. -static __inline__ int sem_compare_and_swap(old_sem_t *sem, long oldval, long newval)
  86039. -{
  86040. - return compare_and_swap(&sem->sem_status, oldval, newval, &sem->sem_spinlock);
  86041. -}
  86042. -
  86043. -/* The state of a semaphore is represented by a long int encoding
  86044. - either the semaphore count if >= 0 and no thread is waiting on it,
  86045. - or the head of the list of threads waiting for the semaphore.
  86046. - To distinguish the two cases, we encode the semaphore count N
  86047. - as 2N+1, so that it has the lowest bit set.
  86048. -
  86049. - A sequence of sem_wait operations on a semaphore initialized to N
  86050. - result in the following successive states:
  86051. - 2N+1, 2N-1, ..., 3, 1, &first_waiting_thread, &second_waiting_thread, ...
  86052. -*/
  86053. -
  86054. -static void sem_restart_list(pthread_descr waiting);
  86055. -
  86056. -int __old_sem_init(old_sem_t *sem, int pshared, unsigned int value);
  86057. -int __old_sem_init(old_sem_t *sem, int pshared, unsigned int value)
  86058. -{
  86059. - if (value > SEM_VALUE_MAX) {
  86060. - errno = EINVAL;
  86061. - return -1;
  86062. - }
  86063. - if (pshared) {
  86064. - errno = ENOSYS;
  86065. - return -1;
  86066. - }
  86067. - sem->sem_spinlock = 0;
  86068. - sem->sem_status = ((long)value << 1) + 1;
  86069. - return 0;
  86070. -}
  86071. -
  86072. -/* Function called by pthread_cancel to remove the thread from
  86073. - waiting inside __old_sem_wait. Here we simply unconditionally
  86074. - indicate that the thread is to be woken, by returning 1. */
  86075. -
  86076. -static int old_sem_extricate_func(void *obj attribute_unused, pthread_descr th attribute_unused)
  86077. -{
  86078. - return 1;
  86079. -}
  86080. -
  86081. -int __old_sem_wait(old_sem_t * sem);
  86082. -int __old_sem_wait(old_sem_t * sem)
  86083. -{
  86084. - long oldstatus, newstatus;
  86085. - volatile pthread_descr self = thread_self();
  86086. - pthread_descr * th;
  86087. - pthread_extricate_if extr;
  86088. -
  86089. - /* Set up extrication interface */
  86090. - extr.pu_object = 0;
  86091. - extr.pu_extricate_func = old_sem_extricate_func;
  86092. -
  86093. - while (1) {
  86094. - /* Register extrication interface */
  86095. - __pthread_set_own_extricate_if(self, &extr);
  86096. - do {
  86097. - oldstatus = sem->sem_status;
  86098. - if ((oldstatus & 1) && (oldstatus != 1))
  86099. - newstatus = oldstatus - 2;
  86100. - else {
  86101. - newstatus = (long) self;
  86102. - self->p_nextwaiting = (pthread_descr) oldstatus;
  86103. - }
  86104. - }
  86105. - while (! sem_compare_and_swap(sem, oldstatus, newstatus));
  86106. - if (newstatus & 1) {
  86107. - /* We got the semaphore. */
  86108. - __pthread_set_own_extricate_if(self, 0);
  86109. - return 0;
  86110. - }
  86111. - /* Wait for sem_post or cancellation */
  86112. - suspend(self);
  86113. - __pthread_set_own_extricate_if(self, 0);
  86114. -
  86115. - /* This is a cancellation point */
  86116. - if (self->p_canceled && self->p_cancelstate == PTHREAD_CANCEL_ENABLE) {
  86117. - /* Remove ourselves from the waiting list if we're still on it */
  86118. - /* First check if we're at the head of the list. */
  86119. - do {
  86120. - oldstatus = sem->sem_status;
  86121. - if (oldstatus != (long) self) break;
  86122. - newstatus = (long) self->p_nextwaiting;
  86123. - }
  86124. - while (! sem_compare_and_swap(sem, oldstatus, newstatus));
  86125. - /* Now, check if we're somewhere in the list.
  86126. - There's a race condition with sem_post here, but it does not matter:
  86127. - the net result is that at the time pthread_exit is called,
  86128. - self is no longer reachable from sem->sem_status. */
  86129. - if (oldstatus != (long) self && (oldstatus & 1) == 0) {
  86130. - for (th = &(((pthread_descr) oldstatus)->p_nextwaiting);
  86131. - *th != NULL && *th != (pthread_descr) 1;
  86132. - th = &((*th)->p_nextwaiting)) {
  86133. - if (*th == self) {
  86134. - *th = self->p_nextwaiting;
  86135. - break;
  86136. - }
  86137. - }
  86138. - }
  86139. - __pthread_do_exit(PTHREAD_CANCELED, CURRENT_STACK_FRAME);
  86140. - }
  86141. - }
  86142. -}
  86143. -
  86144. -int __old_sem_trywait(old_sem_t * sem);
  86145. -int __old_sem_trywait(old_sem_t * sem)
  86146. -{
  86147. - long oldstatus, newstatus;
  86148. -
  86149. - do {
  86150. - oldstatus = sem->sem_status;
  86151. - if ((oldstatus & 1) == 0 || (oldstatus == 1)) {
  86152. - errno = EAGAIN;
  86153. - return -1;
  86154. - }
  86155. - newstatus = oldstatus - 2;
  86156. - }
  86157. - while (! sem_compare_and_swap(sem, oldstatus, newstatus));
  86158. - return 0;
  86159. -}
  86160. -
  86161. -int __old_sem_post(old_sem_t * sem);
  86162. -int __old_sem_post(old_sem_t * sem)
  86163. -{
  86164. - long oldstatus, newstatus;
  86165. -
  86166. - do {
  86167. - oldstatus = sem->sem_status;
  86168. - if ((oldstatus & 1) == 0)
  86169. - newstatus = 3;
  86170. - else {
  86171. - if (oldstatus >= SEM_VALUE_MAX) {
  86172. - /* Overflow */
  86173. - errno = ERANGE;
  86174. - return -1;
  86175. - }
  86176. - newstatus = oldstatus + 2;
  86177. - }
  86178. - }
  86179. - while (! sem_compare_and_swap(sem, oldstatus, newstatus));
  86180. - if ((oldstatus & 1) == 0)
  86181. - sem_restart_list((pthread_descr) oldstatus);
  86182. - return 0;
  86183. -}
  86184. -
  86185. -int __old_sem_getvalue(old_sem_t * sem, int * sval);
  86186. -int __old_sem_getvalue(old_sem_t * sem, int * sval)
  86187. -{
  86188. - long status = sem->sem_status;
  86189. - if (status & 1)
  86190. - *sval = (int)((unsigned long) status >> 1);
  86191. - else
  86192. - *sval = 0;
  86193. - return 0;
  86194. -}
  86195. -
  86196. -int __old_sem_destroy(old_sem_t * sem);
  86197. -int __old_sem_destroy(old_sem_t * sem)
  86198. -{
  86199. - if ((sem->sem_status & 1) == 0) {
  86200. - errno = EBUSY;
  86201. - return -1;
  86202. - }
  86203. - return 0;
  86204. -}
  86205. -
  86206. -/* Auxiliary function for restarting all threads on a waiting list,
  86207. - in priority order. */
  86208. -
  86209. -static void sem_restart_list(pthread_descr waiting)
  86210. -{
  86211. - pthread_descr th, towake, *p;
  86212. -
  86213. - /* Sort list of waiting threads by decreasing priority (insertion sort) */
  86214. - towake = NULL;
  86215. - while (waiting != (pthread_descr) 1) {
  86216. - th = waiting;
  86217. - waiting = waiting->p_nextwaiting;
  86218. - p = &towake;
  86219. - while (*p != NULL && th->p_priority < (*p)->p_priority)
  86220. - p = &((*p)->p_nextwaiting);
  86221. - th->p_nextwaiting = *p;
  86222. - *p = th;
  86223. - }
  86224. - /* Wake up threads in priority order */
  86225. - while (towake != NULL) {
  86226. - th = towake;
  86227. - towake = towake->p_nextwaiting;
  86228. - th->p_nextwaiting = NULL;
  86229. - restart(th);
  86230. - }
  86231. -}
  86232. -
  86233. -#if defined __PIC__ && defined DO_VERSIONING
  86234. -symbol_version (__old_sem_init, sem_init, GLIBC_2.0);
  86235. -symbol_version (__old_sem_wait, sem_wait, GLIBC_2.0);
  86236. -symbol_version (__old_sem_trywait, sem_trywait, GLIBC_2.0);
  86237. -symbol_version (__old_sem_post, sem_post, GLIBC_2.0);
  86238. -symbol_version (__old_sem_getvalue, sem_getvalue, GLIBC_2.0);
  86239. -symbol_version (__old_sem_destroy, sem_destroy, GLIBC_2.0);
  86240. -#endif
  86241. -
  86242. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/ptfork.c uClibc-git/libpthread/linuxthreads.old/ptfork.c
  86243. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/ptfork.c 2012-05-15 09:20:09.000000000 +0200
  86244. +++ uClibc-git/libpthread/linuxthreads.old/ptfork.c 2014-06-02 17:40:34.850716612 +0200
  86245. @@ -93,10 +93,7 @@
  86246. void __pthread_once_fork_child(void);
  86247. void __pthread_once_fork_parent(void);
  86248. -extern __typeof(fork) __libc_fork;
  86249. -
  86250. -pid_t __fork(void) attribute_hidden;
  86251. -pid_t __fork(void)
  86252. +static pid_t __fork(void)
  86253. {
  86254. pid_t pid;
  86255. struct handler_list * prepare, * child, * parent;
  86256. @@ -151,11 +148,7 @@
  86257. return pid;
  86258. }
  86259. strong_alias(__fork,fork)
  86260. -
  86261. -pid_t vfork(void)
  86262. -{
  86263. - return __fork();
  86264. -}
  86265. +strong_alias(__fork,vfork)
  86266. #else
  86267. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/pthread.c uClibc-git/libpthread/linuxthreads.old/pthread.c
  86268. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/pthread.c 2012-05-15 09:20:09.000000000 +0200
  86269. +++ uClibc-git/libpthread/linuxthreads.old/pthread.c 2014-06-02 17:40:34.850716612 +0200
  86270. @@ -14,8 +14,6 @@
  86271. /* Thread creation, initialization, and basic low-level routines */
  86272. -#define __FORCE_GLIBC
  86273. -#include <features.h>
  86274. #include <errno.h>
  86275. #include <netdb.h> /* for h_errno */
  86276. #include <stddef.h>
  86277. @@ -38,8 +36,6 @@
  86278. #include <sys/types.h>
  86279. #include <sys/syscall.h>
  86280. -/* mods for uClibc: __libc_sigaction is not in any standard headers */
  86281. -extern __typeof(sigaction) __libc_sigaction;
  86282. libpthread_hidden_proto(waitpid)
  86283. libpthread_hidden_proto(raise)
  86284. @@ -260,6 +256,7 @@
  86285. return current_rtmax;
  86286. }
  86287. +#if 0
  86288. /* Allocate real-time signal with highest/lowest available
  86289. priority. Please note that we don't use a lock since we assume
  86290. this function to be called at program start. */
  86291. @@ -272,6 +269,7 @@
  86292. return high ? current_rtmin++ : current_rtmax--;
  86293. }
  86294. #endif
  86295. +#endif
  86296. /* Initialize the pthread library.
  86297. Initialization is split in two functions:
  86298. @@ -319,7 +317,7 @@
  86299. struct pthread_functions __pthread_functions =
  86300. {
  86301. -#ifndef USE___THREAD
  86302. +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
  86303. .ptr_pthread_internal_tsd_set = __pthread_internal_tsd_set,
  86304. .ptr_pthread_internal_tsd_get = __pthread_internal_tsd_get,
  86305. .ptr_pthread_internal_tsd_address = __pthread_internal_tsd_address,
  86306. @@ -367,10 +365,10 @@
  86307. .ptr_pthread_sigwait = pthread_sigwait,
  86308. .ptr_pthread_raise = pthread_raise,
  86309. .ptr__pthread_cleanup_push = _pthread_cleanup_push,
  86310. - .ptr__pthread_cleanup_pop = _pthread_cleanup_pop
  86311. + .ptr__pthread_cleanup_pop = _pthread_cleanup_pop,
  86312. */
  86313. .ptr__pthread_cleanup_push_defer = __pthread_cleanup_push_defer,
  86314. - .ptr__pthread_cleanup_pop_restore = __pthread_cleanup_pop_restore,
  86315. + .ptr__pthread_cleanup_pop_restore = __pthread_cleanup_pop_restore
  86316. };
  86317. #ifdef SHARED
  86318. # define ptr_pthread_functions &__pthread_functions
  86319. @@ -528,7 +526,7 @@
  86320. /* On non-MMU systems we make sure that the initial thread bounds don't overlap
  86321. * with the manager stack frame */
  86322. NOMMU_INITIAL_THREAD_BOUNDS(__pthread_manager_thread_tos,__pthread_manager_thread_bos);
  86323. - PDEBUG("manager stack: size=%d, bos=%p, tos=%p\n", THREAD_MANAGER_STACK_SIZE,
  86324. + PDEBUG("manager stack: size=%ld, bos=%p, tos=%p\n", THREAD_MANAGER_STACK_SIZE,
  86325. __pthread_manager_thread_bos, __pthread_manager_thread_tos);
  86326. #if 0
  86327. PDEBUG("initial stack: estimate bos=%p, tos=%p\n",
  86328. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/ptlongjmp.c uClibc-git/libpthread/linuxthreads.old/ptlongjmp.c
  86329. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/ptlongjmp.c 2012-05-15 09:20:09.000000000 +0200
  86330. +++ uClibc-git/libpthread/linuxthreads.old/ptlongjmp.c 2014-06-02 17:40:34.850716612 +0200
  86331. @@ -19,11 +19,7 @@
  86332. #include "pthread.h"
  86333. #include "internals.h"
  86334. #include <bits/stackinfo.h>
  86335. -
  86336. -/* These functions are not declared anywhere since they shouldn't be
  86337. - used at another place but here. */
  86338. -extern __typeof(siglongjmp) __libc_siglongjmp attribute_noreturn;
  86339. -extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
  86340. +#include <jmpbuf-unwind.h>
  86341. static void pthread_cleanup_upto(__jmp_buf target)
  86342. {
  86343. @@ -58,13 +54,13 @@
  86344. THREAD_SETMEM(self, p_in_sighandler, NULL);
  86345. }
  86346. -void attribute_noreturn siglongjmp(sigjmp_buf env, int val)
  86347. +void siglongjmp(sigjmp_buf env, int val)
  86348. {
  86349. pthread_cleanup_upto(env->__jmpbuf);
  86350. __libc_siglongjmp(env, val);
  86351. }
  86352. -void attribute_noreturn longjmp(jmp_buf env, int val)
  86353. +void longjmp(jmp_buf env, int val)
  86354. {
  86355. pthread_cleanup_upto(env->__jmpbuf);
  86356. __libc_longjmp(env, val);
  86357. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/pt-machine.c uClibc-git/libpthread/linuxthreads.old/pt-machine.c
  86358. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/pt-machine.c 2012-05-15 09:20:09.000000000 +0200
  86359. +++ uClibc-git/libpthread/linuxthreads.old/pt-machine.c 2014-06-02 17:40:34.850716612 +0200
  86360. @@ -14,8 +14,7 @@
  86361. You should have received a copy of the GNU Library General Public
  86362. License along with the GNU C Library; see the file COPYING.LIB. If not,
  86363. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86364. - Boston, MA 02111-1307, USA. */
  86365. + see <http://www.gnu.org/licenses/>. */
  86366. #define PT_EI
  86367. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/rwlock.c uClibc-git/libpthread/linuxthreads.old/rwlock.c
  86368. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/rwlock.c 2012-05-15 09:20:09.000000000 +0200
  86369. +++ uClibc-git/libpthread/linuxthreads.old/rwlock.c 2014-06-02 17:40:34.850716612 +0200
  86370. @@ -16,8 +16,7 @@
  86371. You should have received a copy of the GNU Library General Public
  86372. License along with the GNU C Library; see the file COPYING.LIB. If not,
  86373. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86374. - Boston, MA 02111-1307, USA. */
  86375. + see <http://www.gnu.org/licenses/>. */
  86376. #include <errno.h>
  86377. #include <pthread.h>
  86378. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/semaphore.c uClibc-git/libpthread/linuxthreads.old/semaphore.c
  86379. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/semaphore.c 2012-05-15 09:20:09.000000000 +0200
  86380. +++ uClibc-git/libpthread/linuxthreads.old/semaphore.c 2014-06-02 17:40:34.850716612 +0200
  86381. @@ -15,6 +15,7 @@
  86382. /* Semaphores a la POSIX 1003.1b */
  86383. #include <features.h>
  86384. +#include <limits.h>
  86385. #include <errno.h>
  86386. #include "pthread.h"
  86387. #include "semaphore.h"
  86388. @@ -23,8 +24,7 @@
  86389. #include "restart.h"
  86390. #include "queue.h"
  86391. -int __new_sem_init(sem_t *sem, int pshared, unsigned int value);
  86392. -int __new_sem_init(sem_t *sem, int pshared, unsigned int value)
  86393. +int sem_init(sem_t *sem, int pshared, unsigned int value)
  86394. {
  86395. if (value > SEM_VALUE_MAX) {
  86396. errno = EINVAL;
  86397. @@ -41,7 +41,7 @@
  86398. }
  86399. /* Function called by pthread_cancel to remove the thread from
  86400. - waiting inside __new_sem_wait. */
  86401. + waiting inside sem_wait. */
  86402. static int new_sem_extricate_func(void *obj, pthread_descr th)
  86403. {
  86404. @@ -56,8 +56,7 @@
  86405. return did_remove;
  86406. }
  86407. -int __new_sem_wait(sem_t * sem);
  86408. -int __new_sem_wait(sem_t * sem)
  86409. +int sem_wait(sem_t * sem)
  86410. {
  86411. volatile pthread_descr self = thread_self();
  86412. pthread_extricate_if extr;
  86413. @@ -119,8 +118,7 @@
  86414. return 0;
  86415. }
  86416. -int __new_sem_trywait(sem_t * sem);
  86417. -int __new_sem_trywait(sem_t * sem)
  86418. +int sem_trywait(sem_t * sem)
  86419. {
  86420. int retval;
  86421. @@ -136,8 +134,7 @@
  86422. return retval;
  86423. }
  86424. -int __new_sem_post(sem_t * sem);
  86425. -int __new_sem_post(sem_t * sem)
  86426. +int sem_post(sem_t * sem)
  86427. {
  86428. pthread_descr self = thread_self();
  86429. pthread_descr th;
  86430. @@ -178,15 +175,13 @@
  86431. return 0;
  86432. }
  86433. -int __new_sem_getvalue(sem_t * sem, int * sval);
  86434. -int __new_sem_getvalue(sem_t * sem, int * sval)
  86435. +int sem_getvalue(sem_t * sem, int * sval)
  86436. {
  86437. *sval = sem->__sem_value;
  86438. return 0;
  86439. }
  86440. -int __new_sem_destroy(sem_t * sem);
  86441. -int __new_sem_destroy(sem_t * sem)
  86442. +int sem_destroy(sem_t * sem)
  86443. {
  86444. if (sem->__sem_waiting != NULL) {
  86445. __set_errno (EBUSY);
  86446. @@ -302,12 +297,3 @@
  86447. /* We got the semaphore */
  86448. return 0;
  86449. }
  86450. -
  86451. -
  86452. -weak_alias (__new_sem_init, sem_init)
  86453. -weak_alias (__new_sem_wait, sem_wait)
  86454. -weak_alias (__new_sem_trywait, sem_trywait)
  86455. -weak_alias (__new_sem_post, sem_post)
  86456. -weak_alias (__new_sem_getvalue, sem_getvalue)
  86457. -weak_alias (__new_sem_destroy, sem_destroy)
  86458. -
  86459. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/semaphore.h uClibc-git/libpthread/linuxthreads.old/semaphore.h
  86460. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  86461. +++ uClibc-git/libpthread/linuxthreads.old/semaphore.h 2014-06-02 17:40:34.874716745 +0200
  86462. @@ -17,6 +17,7 @@
  86463. #include <features.h>
  86464. #include <sys/types.h>
  86465. +#include <limits.h>
  86466. #ifdef __USE_XOPEN2K
  86467. # define __need_timespec
  86468. # include <time.h>
  86469. @@ -42,7 +43,9 @@
  86470. #define SEM_FAILED ((sem_t *) 0)
  86471. /* Maximum value the semaphore can have. */
  86472. +#ifndef SEM_VALUE_MAX
  86473. #define SEM_VALUE_MAX ((int) ((~0u) >> 1))
  86474. +#endif
  86475. __BEGIN_DECLS
  86476. @@ -55,13 +58,13 @@
  86477. extern int sem_destroy (sem_t *__sem) __THROW;
  86478. /* Open a named semaphore NAME with open flags OFLAG. */
  86479. -extern sem_t *sem_open (__const char *__name, int __oflag, ...) __THROW;
  86480. +extern sem_t *sem_open (const char *__name, int __oflag, ...) __THROW;
  86481. /* Close descriptor for named semaphore SEM. */
  86482. extern int sem_close (sem_t *__sem) __THROW;
  86483. /* Remove named semaphore NAME. */
  86484. -extern int sem_unlink (__const char *__name) __THROW;
  86485. +extern int sem_unlink (const char *__name) __THROW;
  86486. /* Wait for SEM being posted.
  86487. @@ -75,7 +78,7 @@
  86488. This function is a cancellation point and therefore not marked with
  86489. __THROW. */
  86490. extern int sem_timedwait (sem_t *__restrict __sem,
  86491. - __const struct timespec *__restrict __abstime);
  86492. + const struct timespec *__restrict __abstime);
  86493. #endif
  86494. /* Test whether SEM is posted. */
  86495. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/signals.c uClibc-git/libpthread/linuxthreads.old/signals.c
  86496. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/signals.c 2012-05-15 09:20:09.000000000 +0200
  86497. +++ uClibc-git/libpthread/linuxthreads.old/signals.c 2014-06-02 17:40:34.874716745 +0200
  86498. @@ -22,9 +22,6 @@
  86499. #include "spinlock.h"
  86500. #include <bits/sigcontextinfo.h>
  86501. -/* mods for uClibc: __libc_sigaction is not in any standard headers */
  86502. -extern __typeof(sigaction) __libc_sigaction;
  86503. -
  86504. int pthread_sigmask(int how, const sigset_t * newmask, sigset_t * oldmask)
  86505. {
  86506. sigset_t mask;
  86507. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/specific.c uClibc-git/libpthread/linuxthreads.old/specific.c
  86508. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/specific.c 2012-05-15 09:20:09.000000000 +0200
  86509. +++ uClibc-git/libpthread/linuxthreads.old/specific.c 2014-06-02 17:40:34.874716745 +0200
  86510. @@ -167,7 +167,7 @@
  86511. __pthread_unlock(THREAD_GETMEM(self, p_lock));
  86512. }
  86513. -#ifndef USE___THREAD
  86514. +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
  86515. /* Thread-specific data for libc. */
  86516. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/spinlock.c uClibc-git/libpthread/linuxthreads.old/spinlock.c
  86517. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/spinlock.c 2012-05-15 09:20:09.000000000 +0200
  86518. +++ uClibc-git/libpthread/linuxthreads.old/spinlock.c 2014-06-02 17:40:34.874716745 +0200
  86519. @@ -14,8 +14,6 @@
  86520. /* Internal locks */
  86521. -#define __FORCE_GLIBC
  86522. -#include <features.h>
  86523. #include <errno.h>
  86524. #include <sched.h>
  86525. #include <time.h>
  86526. @@ -67,7 +65,6 @@
  86527. #if defined HAS_COMPARE_AND_SWAP
  86528. long oldstatus, newstatus;
  86529. int successful_seizure, spurious_wakeup_count;
  86530. - int spin_count;
  86531. #endif
  86532. #if defined TEST_FOR_COMPARE_AND_SWAP
  86533. @@ -87,11 +84,11 @@
  86534. return;
  86535. spurious_wakeup_count = 0;
  86536. - spin_count = 0;
  86537. /* On SMP, try spinning to get the lock. */
  86538. #if 0
  86539. if (__pthread_smp_kernel) {
  86540. + int spin_count;
  86541. int max_count = lock->__spinlock * 2 + 10;
  86542. if (max_count > MAX_ADAPTIVE_SPIN_COUNT)
  86543. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/alpha/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/alpha/pt-machine.h
  86544. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/alpha/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86545. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/alpha/pt-machine.h 2014-06-02 17:40:34.878716767 +0200
  86546. @@ -17,8 +17,7 @@
  86547. You should have received a copy of the GNU Lesser General Public
  86548. License along with the GNU C Library; see the file COPYING.LIB. If not,
  86549. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86550. - Boston, MA 02111-1307, USA. */
  86551. + see <http://www.gnu.org/licenses/>. */
  86552. #ifndef _PT_MACHINE_H
  86553. #define _PT_MACHINE_H 1
  86554. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/arc/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/arc/pt-machine.h
  86555. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/arc/pt-machine.h 1970-01-01 01:00:00.000000000 +0100
  86556. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/arc/pt-machine.h 2014-06-02 17:40:34.878716767 +0200
  86557. @@ -0,0 +1,42 @@
  86558. +/*
  86559. + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com)
  86560. + *
  86561. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  86562. + */
  86563. +
  86564. +#ifndef _PT_MACHINE_H
  86565. +#define _PT_MACHINE_H 1
  86566. +#include <features.h>
  86567. +
  86568. +#ifndef PT_EI
  86569. +# define PT_EI __extern_always_inline
  86570. +#endif
  86571. +
  86572. +extern long int testandset (int *spinlock);
  86573. +extern int __compare_and_swap (long int *p, long int oldval, long int newval);
  86574. +
  86575. +PT_EI long int
  86576. +testandset (int *spinlock)
  86577. +{
  86578. + unsigned int old = 1;
  86579. +
  86580. + /* Atomically exchange @spinlock with 1 */
  86581. + __asm__ __volatile__(
  86582. + "ex %0, [%1]"
  86583. + : "+r" (old)
  86584. + : "r" (spinlock)
  86585. + : "memory");
  86586. +
  86587. + return old;
  86588. +
  86589. +}
  86590. +
  86591. +/* Get some notion of the current stack. Need not be exactly the top
  86592. + of the stack, just something somewhere in the current frame.
  86593. + I don't trust register variables, so let's do this the safe way. */
  86594. +#define CURRENT_STACK_FRAME \
  86595. +__extension__ ({ char *__sp; __asm__ ("mov %0,sp" : "=r" (__sp)); __sp; })
  86596. +
  86597. +#else
  86598. +#error PT_MACHINE already defined
  86599. +#endif /* pt-machine.h */
  86600. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h
  86601. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86602. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/arm/pt-machine.h 2014-06-02 17:40:34.878716767 +0200
  86603. @@ -15,9 +15,8 @@
  86604. Lesser General Public License for more details.
  86605. You should have received a copy of the GNU Lesser General Public
  86606. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  86607. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86608. - Boston, MA 02111-1307, USA. */
  86609. + License along with the GNU C Library; see the file COPYING.LIB. If
  86610. + not, see <http://www.gnu.org/licenses/>. */
  86611. #ifndef _PT_MACHINE_H
  86612. #define _PT_MACHINE_H 1
  86613. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/bfin/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/bfin/pt-machine.h
  86614. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/bfin/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86615. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/bfin/pt-machine.h 2014-06-02 17:40:34.894716855 +0200
  86616. @@ -15,8 +15,7 @@
  86617. You should have received a copy of the GNU Lesser General Public
  86618. License along with the GNU C Library; see the file COPYING.LIB. If
  86619. - not, write to the Free Software Foundation, Inc.,
  86620. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  86621. + not, see <http://www.gnu.org/licenses/>. */
  86622. #ifndef _PT_MACHINE_H
  86623. #define _PT_MACHINE_H 1
  86624. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/c6x/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/c6x/pt-machine.h
  86625. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/c6x/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86626. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/c6x/pt-machine.h 2014-06-02 17:40:34.910716944 +0200
  86627. @@ -15,9 +15,8 @@
  86628. Lesser General Public License for more details.
  86629. You should have received a copy of the GNU Lesser General Public
  86630. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  86631. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86632. - Boston, MA 02111-1307, USA. */
  86633. + License along with the GNU C Library; see the file COPYING.LIB. If
  86634. + not, see <http://www.gnu.org/licenses/>. */
  86635. #ifndef _PT_MACHINE_H
  86636. #define _PT_MACHINE_H 1
  86637. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/cris/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/cris/pt-machine.h
  86638. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/cris/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86639. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/cris/pt-machine.h 2014-06-02 17:40:34.910716944 +0200
  86640. @@ -15,8 +15,7 @@
  86641. You should have received a copy of the GNU Lesser General Public
  86642. License along with the GNU C Library; see the file COPYING.LIB. If not,
  86643. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86644. - Boston, MA 02111-1307, USA. */
  86645. + see <http://www.gnu.org/licenses/>. */
  86646. #ifndef _PT_MACHINE_H
  86647. #define _PT_MACHINE_H 1
  86648. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/frv/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/frv/pt-machine.h
  86649. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/frv/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86650. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/frv/pt-machine.h 2014-06-02 17:40:34.910716944 +0200
  86651. @@ -16,8 +16,7 @@
  86652. You should have received a copy of the GNU Lesser General Public
  86653. License along with the GNU C Library; see the file COPYING.LIB. If
  86654. - not, write to the Free Software Foundation, Inc.,
  86655. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  86656. + not, see <http://www.gnu.org/licenses/>. */
  86657. #ifndef _PT_MACHINE_H
  86658. #define _PT_MACHINE_H 1
  86659. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/h8300/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/h8300/pt-machine.h
  86660. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/h8300/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86661. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/h8300/pt-machine.h 2014-06-02 17:40:34.910716944 +0200
  86662. @@ -16,8 +16,7 @@
  86663. You should have received a copy of the GNU Lesser General Public
  86664. License along with the GNU C Library; see the file COPYING.LIB. If
  86665. - not, write to the Free Software Foundation, Inc.,
  86666. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  86667. + not, see <http://www.gnu.org/licenses/>. */
  86668. #ifndef _PT_MACHINE_H
  86669. #define _PT_MACHINE_H 1
  86670. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/i386/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/i386/pt-machine.h
  86671. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/i386/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86672. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/i386/pt-machine.h 2014-06-02 17:40:34.910716944 +0200
  86673. @@ -15,9 +15,8 @@
  86674. Lesser General Public License for more details.
  86675. You should have received a copy of the GNU Lesser General Public
  86676. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  86677. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86678. - Boston, MA 02111-1307, USA. */
  86679. + License along with the GNU C Library; see the file COPYING.LIB. If
  86680. + not, see <http://www.gnu.org/licenses/>. */
  86681. #ifndef _PT_MACHINE_H
  86682. #define _PT_MACHINE_H 1
  86683. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/i386/tls.h uClibc-git/libpthread/linuxthreads.old/sysdeps/i386/tls.h
  86684. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/i386/tls.h 2012-05-15 09:20:09.000000000 +0200
  86685. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/i386/tls.h 2014-06-02 17:40:34.910716944 +0200
  86686. @@ -13,9 +13,8 @@
  86687. Lesser General Public License for more details.
  86688. You should have received a copy of the GNU Lesser General Public
  86689. - License along with the GNU C Library; if not, write to the Free
  86690. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  86691. - 02111-1307 USA. */
  86692. + License along with the GNU C Library; if not, see
  86693. + <http://www.gnu.org/licenses/>. */
  86694. #ifndef _TLS_H
  86695. #define _TLS_H
  86696. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/i386/useldt.h uClibc-git/libpthread/linuxthreads.old/sysdeps/i386/useldt.h
  86697. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/i386/useldt.h 2012-05-15 09:20:09.000000000 +0200
  86698. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/i386/useldt.h 2014-06-02 17:40:34.910716944 +0200
  86699. @@ -16,8 +16,7 @@
  86700. You should have received a copy of the GNU Lesser General Public
  86701. License along with the GNU C Library; see the file COPYING.LIB. If not,
  86702. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86703. - Boston, MA 02111-1307, USA. */
  86704. + see <http://www.gnu.org/licenses/>. */
  86705. #ifndef __ASSEMBLER__
  86706. #include <stddef.h> /* For offsetof. */
  86707. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/ia64/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/ia64/pt-machine.h
  86708. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/ia64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86709. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/ia64/pt-machine.h 2014-06-02 17:40:34.910716944 +0200
  86710. @@ -14,9 +14,8 @@
  86711. Lesser General Public License for more details.
  86712. You should have received a copy of the GNU Lesser General Public
  86713. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  86714. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86715. - Boston, MA 02111-1307, USA. */
  86716. + License along with the GNU C Library; see the file COPYING.LIB. If
  86717. + not, see <http://www.gnu.org/licenses/>. */
  86718. #ifndef _PT_MACHINE_H
  86719. #define _PT_MACHINE_H 1
  86720. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/ia64/tls.h uClibc-git/libpthread/linuxthreads.old/sysdeps/ia64/tls.h
  86721. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/ia64/tls.h 2012-05-15 09:20:09.000000000 +0200
  86722. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/ia64/tls.h 2014-06-02 17:40:34.910716944 +0200
  86723. @@ -13,9 +13,8 @@
  86724. Lesser General Public License for more details.
  86725. You should have received a copy of the GNU Lesser General Public
  86726. - License along with the GNU C Library; if not, write to the Free
  86727. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  86728. - 02111-1307 USA. */
  86729. + License along with the GNU C Library; if not, see
  86730. + <http://www.gnu.org/licenses/>. */
  86731. #ifndef _TLS_H
  86732. #define _TLS_H
  86733. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/m68k/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/m68k/pt-machine.h
  86734. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/m68k/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86735. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/m68k/pt-machine.h 2014-06-02 17:40:34.930717054 +0200
  86736. @@ -16,8 +16,7 @@
  86737. You should have received a copy of the GNU Lesser General Public
  86738. License along with the GNU C Library; see the file COPYING.LIB. If
  86739. - not, write to the Free Software Foundation, Inc.,
  86740. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  86741. + not, see <http://www.gnu.org/licenses/>. */
  86742. #ifndef _PT_MACHINE_H
  86743. #define _PT_MACHINE_H 1
  86744. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h
  86745. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86746. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/mips/pt-machine.h 2014-06-02 17:40:34.950717165 +0200
  86747. @@ -18,8 +18,7 @@
  86748. You should have received a copy of the GNU Lesser General Public
  86749. License along with the GNU C Library; see the file COPYING.LIB. If
  86750. - not, write to the Free Software Foundation, Inc.,
  86751. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  86752. + not, see <http://www.gnu.org/licenses/>. */
  86753. #ifndef _PT_MACHINE_H
  86754. #define _PT_MACHINE_H 1
  86755. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h
  86756. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86757. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/nios/pt-machine.h 2014-06-02 17:40:34.950717165 +0200
  86758. @@ -16,8 +16,7 @@
  86759. You should have received a copy of the GNU Library General Public
  86760. License along with the GNU C Library; see the file COPYING.LIB. If not,
  86761. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86762. - Boston, MA 02111-1307, USA. */
  86763. + see <http://www.gnu.org/licenses/>. */
  86764. #ifndef _PT_MACHINE_H
  86765. #define _PT_MACHINE_H 1
  86766. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/nios2/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/nios2/pt-machine.h
  86767. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/nios2/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86768. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/nios2/pt-machine.h 2014-06-02 17:40:34.950717165 +0200
  86769. @@ -15,8 +15,7 @@
  86770. You should have received a copy of the GNU Lesser General Public
  86771. License along with the GNU C Library; see the file COPYING.LIB. If
  86772. - not, write to the Free Software Foundation, Inc.,
  86773. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  86774. + not, see <http://www.gnu.org/licenses/>. */
  86775. #ifndef _PT_MACHINE_H
  86776. #define _PT_MACHINE_H 1
  86777. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/powerpc/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/powerpc/pt-machine.h
  86778. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/powerpc/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  86779. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/powerpc/pt-machine.h 2014-06-02 17:40:34.950717165 +0200
  86780. @@ -15,8 +15,7 @@
  86781. You should have received a copy of the GNU Lesser General Public
  86782. License along with the GNU C Library; see the file COPYING.LIB. If
  86783. - not, write to the Free Software Foundation, Inc.,
  86784. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  86785. + not, see <http://www.gnu.org/licenses/>. */
  86786. /* These routines are from Appendix G of the 'PowerPC 601 RISC Microprocessor
  86787. User's Manual', by IBM and Motorola. */
  86788. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-lock.h uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-lock.h
  86789. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-lock.h 2012-05-15 09:20:09.000000000 +0200
  86790. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-lock.h 2014-06-02 17:40:34.950717165 +0200
  86791. @@ -14,9 +14,8 @@
  86792. Lesser General Public License for more details.
  86793. You should have received a copy of the GNU Lesser General Public
  86794. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  86795. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86796. - Boston, MA 02111-1307, USA. */
  86797. + License along with the GNU C Library; see the file COPYING.LIB. If
  86798. + not, see <http://www.gnu.org/licenses/>. */
  86799. #ifndef _BITS_LIBC_LOCK_H
  86800. #define _BITS_LIBC_LOCK_H 1
  86801. @@ -271,6 +270,7 @@
  86802. _pthread_cleanup_pop_restore (&_buffer, (DOIT)); \
  86803. }
  86804. +#if 0
  86805. #define __libc_cleanup_push(fct, arg) \
  86806. { struct _pthread_cleanup_buffer _buffer; \
  86807. __libc_maybe_call (_pthread_cleanup_push, (&_buffer, (fct), (arg)), 0)
  86808. @@ -278,6 +278,7 @@
  86809. #define __libc_cleanup_pop(execute) \
  86810. __libc_maybe_call (_pthread_cleanup_pop, (&_buffer, execute), 0); \
  86811. }
  86812. +#endif
  86813. /* Create thread-specific key. */
  86814. #define __libc_key_create(KEY, DESTRUCTOR) \
  86815. @@ -300,7 +301,7 @@
  86816. library. */
  86817. extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
  86818. - __const pthread_mutexattr_t *__mutex_attr);
  86819. + const pthread_mutexattr_t *__mutex_attr);
  86820. extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
  86821. @@ -319,7 +320,7 @@
  86822. #ifdef __USE_UNIX98
  86823. extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
  86824. - __const pthread_rwlockattr_t *__attr);
  86825. + const pthread_rwlockattr_t *__attr);
  86826. extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
  86827. @@ -338,7 +339,7 @@
  86828. void (*__destr_function) (void *));
  86829. extern int __pthread_setspecific (pthread_key_t __key,
  86830. - __const void *__pointer);
  86831. + const void *__pointer);
  86832. extern void *__pthread_getspecific (pthread_key_t __key);
  86833. @@ -375,7 +376,6 @@
  86834. weak_extern (BP_SYM (__pthread_setspecific))
  86835. weak_extern (BP_SYM (__pthread_getspecific))
  86836. weak_extern (BP_SYM (__pthread_once))
  86837. -weak_extern (__pthread_initialize)
  86838. weak_extern (__pthread_atfork)
  86839. weak_extern (BP_SYM (_pthread_cleanup_push))
  86840. weak_extern (BP_SYM (_pthread_cleanup_pop))
  86841. @@ -400,7 +400,6 @@
  86842. # pragma weak __pthread_setspecific
  86843. # pragma weak __pthread_getspecific
  86844. # pragma weak __pthread_once
  86845. -# pragma weak __pthread_initialize
  86846. # pragma weak __pthread_atfork
  86847. # pragma weak _pthread_cleanup_push_defer
  86848. # pragma weak _pthread_cleanup_pop_restore
  86849. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h
  86850. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h 2012-05-15 09:20:09.000000000 +0200
  86851. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/bits/libc-tsd.h 2014-06-02 17:40:34.950717165 +0200
  86852. @@ -13,15 +13,12 @@
  86853. Lesser General Public License for more details.
  86854. You should have received a copy of the GNU Lesser General Public
  86855. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  86856. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  86857. - Boston, MA 02111-1307, USA. */
  86858. + License along with the GNU C Library; see the file COPYING.LIB. If
  86859. + not, see <http://www.gnu.org/licenses/>. */
  86860. #ifndef _BITS_LIBC_TSD_H
  86861. #define _BITS_LIBC_TSD_H 1
  86862. -#include <libc-internal.h>
  86863. -
  86864. /* Fast thread-specific data internal to libc. */
  86865. enum __libc_tsd_key_t { _LIBC_TSD_KEY_MALLOC = 0,
  86866. _LIBC_TSD_KEY_DL_ERROR,
  86867. @@ -32,12 +29,11 @@
  86868. _LIBC_TSD_KEY_CTYPE_TOUPPER,
  86869. _LIBC_TSD_KEY_N };
  86870. -#include <sys/cdefs.h>
  86871. -#include <tls.h>
  86872. -
  86873. +#include <features.h>
  86874. #include <linuxthreads.old/internals.h>
  86875. -#if defined(USE_TLS) && USE_TLS && HAVE___THREAD
  86876. +#ifdef __UCLIBC_HAS_TLS__
  86877. +#include <tls.h>
  86878. /* When __thread works, the generic definition is what we want. */
  86879. # include <sysdeps/generic/bits/libc-tsd.h>
  86880. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/bits/pthreadtypes.h uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/bits/pthreadtypes.h
  86881. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  86882. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/bits/pthreadtypes.h 2014-06-02 17:40:34.950717165 +0200
  86883. @@ -19,6 +19,9 @@
  86884. #ifndef _BITS_PTHREADTYPES_H
  86885. #define _BITS_PTHREADTYPES_H 1
  86886. +#define __need_size_t
  86887. +#include <stddef.h>
  86888. +
  86889. #define __need_schedparam
  86890. #include <bits/sched.h>
  86891. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/not-cancel.h uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/not-cancel.h
  86892. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/not-cancel.h 2012-05-15 09:20:09.000000000 +0200
  86893. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/not-cancel.h 2014-06-02 17:40:34.950717165 +0200
  86894. @@ -14,18 +14,26 @@
  86895. Lesser General Public License for more details.
  86896. You should have received a copy of the GNU Lesser General Public
  86897. - License along with the GNU C Library; if not, write to the Free
  86898. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  86899. - 02111-1307 USA. */
  86900. + License along with the GNU C Library; if not, see
  86901. + <http://www.gnu.org/licenses/>. */
  86902. #include <sys/types.h>
  86903. #include <sysdep.h>
  86904. /* Uncancelable open. */
  86905. +#if defined __NR_openat && !defined __NR_open
  86906. +#define open_not_cancel(name, flags, mode) \
  86907. + INLINE_SYSCALL (openat, 4, AT_FDCWD, (const char *) (name), \
  86908. + (flags), (mode))
  86909. +#define open_not_cancel_2(name, flags) \
  86910. + INLINE_SYSCALL (openat, 3, AT_FDCWD, (const char *) (name), \
  86911. + (flags))
  86912. +#else
  86913. #define open_not_cancel(name, flags, mode) \
  86914. INLINE_SYSCALL (open, 3, (const char *) (name), (flags), (mode))
  86915. #define open_not_cancel_2(name, flags) \
  86916. INLINE_SYSCALL (open, 2, (const char *) (name), (flags))
  86917. +#endif
  86918. /* Uncancelable openat. */
  86919. #if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
  86920. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/pthread-functions.h uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/pthread-functions.h
  86921. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/pthread-functions.h 2012-05-15 09:20:09.000000000 +0200
  86922. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/pthread-functions.h 2014-06-02 17:40:34.950717165 +0200
  86923. @@ -13,25 +13,28 @@
  86924. Lesser General Public License for more details.
  86925. You should have received a copy of the GNU Lesser General Public
  86926. - License along with the GNU C Library; if not, write to the Free
  86927. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  86928. - 02111-1307 USA. */
  86929. + License along with the GNU C Library; if not, see
  86930. + <http://www.gnu.org/licenses/>. */
  86931. #ifndef _PTHREAD_FUNCTIONS_H
  86932. #define _PTHREAD_FUNCTIONS_H 1
  86933. #include <pthread.h>
  86934. +#if 0
  86935. #include <setjmp.h>
  86936. #include <linuxthreads.old/internals.h>
  86937. struct fork_block;
  86938. +#endif
  86939. /* Data type shared with libc. The libc uses it to pass on calls to
  86940. the thread functions. Wine pokes directly into this structure,
  86941. so if possible avoid breaking it and append new hooks to the end. */
  86942. struct pthread_functions
  86943. {
  86944. +#if 0
  86945. pid_t (*ptr_pthread_fork) (struct fork_block *);
  86946. +#endif
  86947. int (*ptr_pthread_attr_destroy) (pthread_attr_t *);
  86948. int (*ptr_pthread_attr_init) (pthread_attr_t *);
  86949. int (*ptr_pthread_attr_getdetachstate) (const pthread_attr_t *, int *);
  86950. @@ -68,26 +71,36 @@
  86951. pthread_t (*ptr_pthread_self) (void);
  86952. int (*ptr_pthread_setcancelstate) (int, int *);
  86953. int (*ptr_pthread_setcanceltype) (int, int *);
  86954. +#if 0
  86955. void (*ptr_pthread_do_exit) (void *retval, char *currentframe);
  86956. void (*ptr_pthread_cleanup_upto) (__jmp_buf target,
  86957. char *targetframe);
  86958. pthread_descr (*ptr_pthread_thread_self) (void);
  86959. +#endif
  86960. +#if !defined __UCLIBC_HAS_TLS__ && defined __UCLIBC_HAS_RPC__
  86961. int (*ptr_pthread_internal_tsd_set) (int key, const void *pointer);
  86962. void * (*ptr_pthread_internal_tsd_get) (int key);
  86963. void ** __attribute__ ((__const__))
  86964. (*ptr_pthread_internal_tsd_address) (int key);
  86965. +#endif
  86966. +#if 0
  86967. int (*ptr_pthread_sigaction) (int sig, const struct sigaction * act,
  86968. struct sigaction *oact);
  86969. int (*ptr_pthread_sigwait) (const sigset_t *set, int *sig);
  86970. int (*ptr_pthread_raise) (int sig);
  86971. +#endif
  86972. int (*ptr_pthread_cond_timedwait) (pthread_cond_t *, pthread_mutex_t *,
  86973. const struct timespec *);
  86974. +#if 0
  86975. void (*ptr__pthread_cleanup_push) (struct _pthread_cleanup_buffer * buffer,
  86976. void (*routine)(void *), void * arg);
  86977. +#endif
  86978. void (*ptr__pthread_cleanup_push_defer) (struct _pthread_cleanup_buffer * buffer,
  86979. void (*routine)(void *), void * arg);
  86980. +#if 0
  86981. void (*ptr__pthread_cleanup_pop) (struct _pthread_cleanup_buffer * buffer,
  86982. int execute);
  86983. +#endif
  86984. void (*ptr__pthread_cleanup_pop_restore) (struct _pthread_cleanup_buffer * buffer,
  86985. int execute);
  86986. };
  86987. @@ -95,4 +108,6 @@
  86988. /* Variable in libc.so. */
  86989. extern struct pthread_functions __libc_pthread_functions attribute_hidden;
  86990. +extern int * __libc_pthread_init (const struct pthread_functions *functions);
  86991. +
  86992. #endif /* pthread-functions.h */
  86993. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h
  86994. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h 2012-05-15 09:20:09.000000000 +0200
  86995. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/pthread.h 2014-06-02 17:40:34.950717165 +0200
  86996. @@ -161,7 +161,7 @@
  86997. if ATTR is NULL), and call function START_ROUTINE with given
  86998. arguments ARG. */
  86999. extern int pthread_create (pthread_t *__restrict __threadp,
  87000. - __const pthread_attr_t *__restrict __attr,
  87001. + const pthread_attr_t *__restrict __attr,
  87002. void *(*__start_routine) (void *),
  87003. void *__restrict __arg) __THROW;
  87004. @@ -201,16 +201,16 @@
  87005. int __detachstate) __THROW;
  87006. /* Return in *DETACHSTATE the `detachstate' attribute in *ATTR. */
  87007. -extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
  87008. +extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
  87009. int *__detachstate) __THROW;
  87010. /* Set scheduling parameters (priority, etc) in *ATTR according to PARAM. */
  87011. extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
  87012. - __const struct sched_param *__restrict
  87013. + const struct sched_param *__restrict
  87014. __param) __THROW;
  87015. /* Return in *PARAM the scheduling parameters of *ATTR. */
  87016. -extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
  87017. +extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict
  87018. __attr,
  87019. struct sched_param *__restrict __param)
  87020. __THROW;
  87021. @@ -220,7 +220,7 @@
  87022. __THROW;
  87023. /* Return in *POLICY the scheduling policy of *ATTR. */
  87024. -extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
  87025. +extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
  87026. __attr, int *__restrict __policy)
  87027. __THROW;
  87028. @@ -229,7 +229,7 @@
  87029. int __inherit) __THROW;
  87030. /* Return in *INHERIT the scheduling inheritance mode of *ATTR. */
  87031. -extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
  87032. +extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
  87033. __attr, int *__restrict __inherit)
  87034. __THROW;
  87035. @@ -238,7 +238,7 @@
  87036. __THROW;
  87037. /* Return in *SCOPE the scheduling contention scope of *ATTR. */
  87038. -extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
  87039. +extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
  87040. int *__restrict __scope) __THROW;
  87041. #ifdef __USE_UNIX98
  87042. @@ -247,7 +247,7 @@
  87043. size_t __guardsize) __THROW;
  87044. /* Get the size of the guard area at the bottom of the thread. */
  87045. -extern int pthread_attr_getguardsize (__const pthread_attr_t *__restrict
  87046. +extern int pthread_attr_getguardsize (const pthread_attr_t *__restrict
  87047. __attr, size_t *__restrict __guardsize)
  87048. __THROW;
  87049. #endif
  87050. @@ -261,7 +261,7 @@
  87051. void *__stackaddr) __THROW;
  87052. /* Return the previously set address for the stack. */
  87053. -extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
  87054. +extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
  87055. __attr, void **__restrict __stackaddr)
  87056. __THROW;
  87057. #endif
  87058. @@ -274,7 +274,7 @@
  87059. size_t __stacksize) __THROW;
  87060. /* Return the previously set address for the stack. */
  87061. -extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
  87062. +extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
  87063. void **__restrict __stackaddr,
  87064. size_t *__restrict __stacksize) __THROW;
  87065. #endif
  87066. @@ -286,7 +286,7 @@
  87067. size_t __stacksize) __THROW;
  87068. /* Return the currently used minimal stack size. */
  87069. -extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
  87070. +extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
  87071. __attr, size_t *__restrict __stacksize)
  87072. __THROW;
  87073. @@ -306,7 +306,7 @@
  87074. /* Set the scheduling parameters for TARGET_THREAD according to POLICY
  87075. and *PARAM. */
  87076. extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
  87077. - __const struct sched_param *__param)
  87078. + const struct sched_param *__param)
  87079. __THROW;
  87080. /* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
  87081. @@ -333,7 +333,7 @@
  87082. /* Initialize MUTEX using attributes in *MUTEX_ATTR, or use the
  87083. default values if later is NULL. */
  87084. extern int pthread_mutex_init (pthread_mutex_t *__restrict __mutex,
  87085. - __const pthread_mutexattr_t *__restrict
  87086. + const pthread_mutexattr_t *__restrict
  87087. __mutex_attr) __THROW;
  87088. /* Destroy MUTEX. */
  87089. @@ -348,7 +348,7 @@
  87090. #ifdef __USE_XOPEN2K
  87091. /* Wait until lock becomes available, or specified time passes. */
  87092. extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
  87093. - __const struct timespec *__restrict
  87094. + const struct timespec *__restrict
  87095. __abstime) __THROW;
  87096. #endif
  87097. @@ -366,7 +366,7 @@
  87098. extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) __THROW;
  87099. /* Get the process-shared flag of the mutex attribute ATTR. */
  87100. -extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
  87101. +extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
  87102. __restrict __attr,
  87103. int *__restrict __pshared) __THROW;
  87104. @@ -382,7 +382,7 @@
  87105. __THROW;
  87106. /* Return in *KIND the mutex kind attribute in *ATTR. */
  87107. -extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
  87108. +extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
  87109. __attr, int *__restrict __kind) __THROW;
  87110. #endif
  87111. @@ -392,22 +392,27 @@
  87112. /* Initialize condition variable COND using attributes ATTR, or use
  87113. the default values if later is NULL. */
  87114. extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
  87115. - __const pthread_condattr_t *__restrict
  87116. + const pthread_condattr_t *__restrict
  87117. __cond_attr) __THROW;
  87118. +libpthread_hidden_proto(pthread_cond_init)
  87119. /* Destroy condition variable COND. */
  87120. extern int pthread_cond_destroy (pthread_cond_t *__cond) __THROW;
  87121. +libpthread_hidden_proto(pthread_cond_destroy)
  87122. /* Wake up one thread waiting for condition variable COND. */
  87123. extern int pthread_cond_signal (pthread_cond_t *__cond) __THROW;
  87124. +libpthread_hidden_proto(pthread_cond_signal)
  87125. /* Wake up all threads waiting for condition variables COND. */
  87126. extern int pthread_cond_broadcast (pthread_cond_t *__cond) __THROW;
  87127. +libpthread_hidden_proto(pthread_cond_broadcast)
  87128. /* Wait for condition variable COND to be signaled or broadcast.
  87129. MUTEX is assumed to be locked before. */
  87130. extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
  87131. pthread_mutex_t *__restrict __mutex);
  87132. +libpthread_hidden_proto(pthread_cond_wait)
  87133. /* Wait for condition variable COND to be signaled or broadcast until
  87134. ABSTIME. MUTEX is assumed to be locked before. ABSTIME is an
  87135. @@ -415,19 +420,22 @@
  87136. (00:00:00 GMT, January 1, 1970). */
  87137. extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
  87138. pthread_mutex_t *__restrict __mutex,
  87139. - __const struct timespec *__restrict
  87140. + const struct timespec *__restrict
  87141. __abstime);
  87142. +libpthread_hidden_proto(pthread_cond_timedwait)
  87143. /* Functions for handling condition variable attributes. */
  87144. /* Initialize condition variable attribute ATTR. */
  87145. extern int pthread_condattr_init (pthread_condattr_t *__attr) __THROW;
  87146. +libpthread_hidden_proto(pthread_condattr_init)
  87147. /* Destroy condition variable attribute ATTR. */
  87148. extern int pthread_condattr_destroy (pthread_condattr_t *__attr) __THROW;
  87149. +libpthread_hidden_proto(pthread_condattr_destroy)
  87150. /* Get the process-shared flag of the condition variable attribute ATTR. */
  87151. -extern int pthread_condattr_getpshared (__const pthread_condattr_t *
  87152. +extern int pthread_condattr_getpshared (const pthread_condattr_t *
  87153. __restrict __attr,
  87154. int *__restrict __pshared) __THROW;
  87155. @@ -442,7 +450,7 @@
  87156. /* Initialize read-write lock RWLOCK using attributes ATTR, or use
  87157. the default values if later is NULL. */
  87158. extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
  87159. - __const pthread_rwlockattr_t *__restrict
  87160. + const pthread_rwlockattr_t *__restrict
  87161. __attr) __THROW;
  87162. /* Destroy read-write lock RWLOCK. */
  87163. @@ -457,7 +465,7 @@
  87164. # ifdef __USE_XOPEN2K
  87165. /* Try to acquire read lock for RWLOCK or return after specfied time. */
  87166. extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
  87167. - __const struct timespec *__restrict
  87168. + const struct timespec *__restrict
  87169. __abstime) __THROW;
  87170. # endif
  87171. @@ -470,7 +478,7 @@
  87172. # ifdef __USE_XOPEN2K
  87173. /* Try to acquire write lock for RWLOCK or return after specfied time. */
  87174. extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
  87175. - __const struct timespec *__restrict
  87176. + const struct timespec *__restrict
  87177. __abstime) __THROW;
  87178. # endif
  87179. @@ -487,7 +495,7 @@
  87180. extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) __THROW;
  87181. /* Return current setting of process-shared attribute of ATTR in PSHARED. */
  87182. -extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
  87183. +extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
  87184. __restrict __attr,
  87185. int *__restrict __pshared) __THROW;
  87186. @@ -496,7 +504,7 @@
  87187. int __pshared) __THROW;
  87188. /* Return current setting of reader/writer preference. */
  87189. -extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *__attr,
  87190. +extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *__attr,
  87191. int *__pref) __THROW;
  87192. /* Set reader/write preference. */
  87193. @@ -532,7 +540,7 @@
  87194. /* Barriers are a also a new feature in 1003.1j-2000. */
  87195. extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
  87196. - __const pthread_barrierattr_t *__restrict
  87197. + const pthread_barrierattr_t *__restrict
  87198. __attr, unsigned int __count) __THROW;
  87199. extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) __THROW;
  87200. @@ -541,7 +549,7 @@
  87201. extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) __THROW;
  87202. -extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
  87203. +extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
  87204. __restrict __attr,
  87205. int *__restrict __pshared) __THROW;
  87206. @@ -569,7 +577,7 @@
  87207. /* Store POINTER in the thread-specific data slot identified by KEY. */
  87208. extern int pthread_setspecific (pthread_key_t __key,
  87209. - __const void *__pointer) __THROW;
  87210. + const void *__pointer) __THROW;
  87211. /* Return current value of the thread-specific data slot identified by KEY. */
  87212. extern void *pthread_getspecific (pthread_key_t __key) __THROW;
  87213. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/tls.h uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/tls.h
  87214. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/pthread/tls.h 2012-05-15 09:20:09.000000000 +0200
  87215. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/pthread/tls.h 2014-06-02 17:40:34.950717165 +0200
  87216. @@ -13,9 +13,8 @@
  87217. Lesser General Public License for more details.
  87218. You should have received a copy of the GNU Lesser General Public
  87219. - License along with the GNU C Library; if not, write to the Free
  87220. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87221. - 02111-1307 USA. */
  87222. + License along with the GNU C Library; if not, see
  87223. + <http://www.gnu.org/licenses/>. */
  87224. /* By default no TLS support is available. This is signaled by the
  87225. absence of the symbol USE_TLS. */
  87226. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h
  87227. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  87228. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sh/pt-machine.h 2014-06-02 17:40:34.950717165 +0200
  87229. @@ -15,9 +15,8 @@
  87230. Lesser General Public License for more details.
  87231. You should have received a copy of the GNU Lesser General Public
  87232. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  87233. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  87234. - Boston, MA 02111-1307, USA. */
  87235. + License along with the GNU C Library; see the file COPYING.LIB. If
  87236. + not, see <http://www.gnu.org/licenses/>. */
  87237. #ifndef _PT_MACHINE_H
  87238. #define _PT_MACHINE_H 1
  87239. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh/tls.h uClibc-git/libpthread/linuxthreads.old/sysdeps/sh/tls.h
  87240. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh/tls.h 2012-05-15 09:20:09.000000000 +0200
  87241. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sh/tls.h 2014-06-02 17:40:34.950717165 +0200
  87242. @@ -13,9 +13,8 @@
  87243. Lesser General Public License for more details.
  87244. You should have received a copy of the GNU Lesser General Public
  87245. - License along with the GNU C Library; if not, write to the Free
  87246. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87247. - 02111-1307 USA. */
  87248. + License along with the GNU C Library; if not, see
  87249. + <http://www.gnu.org/licenses/>. */
  87250. #ifndef _TLS_H
  87251. #define _TLS_H
  87252. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.c uClibc-git/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.c
  87253. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.c 2012-05-15 09:20:09.000000000 +0200
  87254. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.c 2014-06-02 17:40:34.950717165 +0200
  87255. @@ -19,8 +19,7 @@
  87256. You should have received a copy of the GNU Library General Public
  87257. License along with the GNU C Library; see the file COPYING.LIB. If not,
  87258. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  87259. - Boston, MA 02111-1307, USA. */
  87260. + see <http://www.gnu.org/licenses/>. */
  87261. #include "pt-machine.h"
  87262. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h
  87263. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  87264. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sh64/pt-machine.h 2014-06-02 17:40:34.950717165 +0200
  87265. @@ -19,8 +19,7 @@
  87266. You should have received a copy of the GNU Library General Public
  87267. License along with the GNU C Library; see the file COPYING.LIB. If not,
  87268. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  87269. - Boston, MA 02111-1307, USA. */
  87270. + see <http://www.gnu.org/licenses/>. */
  87271. #ifndef _PT_MACHINE_H
  87272. #define _PT_MACHINE_H 1
  87273. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sparc/sparc32/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/sparc/sparc32/pt-machine.h
  87274. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sparc/sparc32/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  87275. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sparc/sparc32/pt-machine.h 2014-06-02 17:40:34.954717187 +0200
  87276. @@ -15,9 +15,8 @@
  87277. Lesser General Public License for more details.
  87278. You should have received a copy of the GNU Lesser General Public
  87279. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  87280. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  87281. - Boston, MA 02111-1307, USA. */
  87282. + License along with the GNU C Library; see the file COPYING.LIB. If
  87283. + not, see <http://www.gnu.org/licenses/>. */
  87284. #ifndef _PT_MACHINE_H
  87285. #define _PT_MACHINE_H 1
  87286. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sparc/sparc64/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/sparc/sparc64/pt-machine.h
  87287. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/sparc/sparc64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  87288. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/sparc/sparc64/pt-machine.h 2014-06-02 17:40:34.954717187 +0200
  87289. @@ -16,8 +16,7 @@
  87290. You should have received a copy of the GNU Lesser General Public
  87291. License along with the GNU C Library; see the file COPYING.LIB. If
  87292. - not, write to the Free Software Foundation, Inc.,
  87293. - 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  87294. + not, see <http://www.gnu.org/licenses/>. */
  87295. #ifndef _PT_MACHINE_H
  87296. #define _PT_MACHINE_H 1
  87297. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/x86_64/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/x86_64/pt-machine.h
  87298. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/x86_64/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  87299. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/x86_64/pt-machine.h 2014-06-02 17:40:34.962717232 +0200
  87300. @@ -14,9 +14,8 @@
  87301. Lesser General Public License for more details.
  87302. You should have received a copy of the GNU Lesser General Public
  87303. - License along with the GNU C Library; if not, write to the Free
  87304. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87305. - 02111-1307 USA. */
  87306. + License along with the GNU C Library; if not, see
  87307. + <http://www.gnu.org/licenses/>. */
  87308. #ifndef _PT_MACHINE_H
  87309. #define _PT_MACHINE_H 1
  87310. @@ -33,6 +32,9 @@
  87311. # define PT_EI __extern_always_inline
  87312. # endif
  87313. +extern long int testandset (int *);
  87314. +extern int __compare_and_swap (long int *, long int, long int);
  87315. +
  87316. /* Get some notion of the current stack. Need not be exactly the top
  87317. of the stack, just something somewhere in the current frame. */
  87318. # define CURRENT_STACK_FRAME stack_pointer
  87319. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/x86_64/tls.h uClibc-git/libpthread/linuxthreads.old/sysdeps/x86_64/tls.h
  87320. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/x86_64/tls.h 2012-05-15 09:20:09.000000000 +0200
  87321. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/x86_64/tls.h 2014-06-02 17:40:34.962717232 +0200
  87322. @@ -13,9 +13,8 @@
  87323. Lesser General Public License for more details.
  87324. You should have received a copy of the GNU Lesser General Public
  87325. - License along with the GNU C Library; if not, write to the Free
  87326. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87327. - 02111-1307 USA. */
  87328. + License along with the GNU C Library; if not, see
  87329. + <http://www.gnu.org/licenses/>. */
  87330. #ifndef _TLS_H
  87331. #define _TLS_H
  87332. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/xtensa/pt-machine.h uClibc-git/libpthread/linuxthreads.old/sysdeps/xtensa/pt-machine.h
  87333. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/sysdeps/xtensa/pt-machine.h 2012-05-15 09:20:09.000000000 +0200
  87334. +++ uClibc-git/libpthread/linuxthreads.old/sysdeps/xtensa/pt-machine.h 2014-06-02 17:40:34.966717253 +0200
  87335. @@ -15,9 +15,8 @@
  87336. Lesser General Public License for more details.
  87337. You should have received a copy of the GNU Lesser General Public
  87338. - License along with the GNU C Library; if not, write to the Free
  87339. - Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  87340. - Boston, MA 02110-1301, USA. */
  87341. + License along with the GNU C Library; if not, see
  87342. + <http://www.gnu.org/licenses/>. */
  87343. #ifndef _PT_MACHINE_H
  87344. #define _PT_MACHINE_H 1
  87345. @@ -26,19 +25,51 @@
  87346. #include <asm/unistd.h>
  87347. #ifndef PT_EI
  87348. -# define PT_EI __extern_always_inline
  87349. +# define PT_EI extern inline __attribute__ ((gnu_inline))
  87350. #endif
  87351. -/* Memory barrier. */
  87352. #define MEMORY_BARRIER() __asm__ ("memw" : : : "memory")
  87353. +#define HAS_COMPARE_AND_SWAP
  87354. +
  87355. +extern long int testandset (int *spinlock);
  87356. +extern int __compare_and_swap (long int *p, long int oldval, long int newval);
  87357. /* Spinlock implementation; required. */
  87358. PT_EI long int
  87359. testandset (int *spinlock)
  87360. {
  87361. - int unused = 0;
  87362. - return INTERNAL_SYSCALL (xtensa, , 4, SYS_XTENSA_ATOMIC_SET,
  87363. - spinlock, 1, unused);
  87364. + unsigned long tmp;
  87365. + __asm__ volatile (
  87366. +" movi %0, 0 \n"
  87367. +" wsr %0, SCOMPARE1 \n"
  87368. +" movi %0, 1 \n"
  87369. +" s32c1i %0, %1, 0 \n"
  87370. + : "=&a" (tmp)
  87371. + : "a" (spinlock)
  87372. + : "memory"
  87373. + );
  87374. + return tmp;
  87375. +}
  87376. +
  87377. +PT_EI int
  87378. +__compare_and_swap (long int *p, long int oldval, long int newval)
  87379. +{
  87380. + unsigned long tmp;
  87381. + unsigned long value;
  87382. + __asm__ volatile (
  87383. +"1: l32i %0, %2, 0 \n"
  87384. +" bne %0, %4, 2f \n"
  87385. +" wsr %0, SCOMPARE1 \n"
  87386. +" mov %1, %0 \n"
  87387. +" mov %0, %3 \n"
  87388. +" s32c1i %0, %2, 0 \n"
  87389. +" bne %1, %0, 1b \n"
  87390. +"2: \n"
  87391. + : "=&a" (tmp), "=&a" (value)
  87392. + : "a" (p), "a" (newval), "a" (oldval)
  87393. + : "memory" );
  87394. +
  87395. + return tmp == oldval;
  87396. }
  87397. /* Get some notion of the current stack. Need not be exactly the top
  87398. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old/wrapsyscall.c uClibc-git/libpthread/linuxthreads.old/wrapsyscall.c
  87399. --- uClibc-0.9.33.2/libpthread/linuxthreads.old/wrapsyscall.c 2012-05-15 09:20:09.000000000 +0200
  87400. +++ uClibc-git/libpthread/linuxthreads.old/wrapsyscall.c 2014-06-02 17:40:34.966717253 +0200
  87401. @@ -1,4 +1,4 @@
  87402. -/* Wrapper arpund system calls to provide cancellation points.
  87403. +/* Wrapper around system calls to provide cancellation points.
  87404. Copyright (C) 1996,1997,1998,1999,2000,2001 Free Software Foundation, Inc.
  87405. This file is part of the GNU C Library.
  87406. Contributed by Ulrich Drepper <drepper@cygnus.com>, 1996.
  87407. @@ -15,11 +15,8 @@
  87408. You should have received a copy of the GNU Library General Public
  87409. License along with the GNU C Library; see the file COPYING.LIB. If not,
  87410. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  87411. - Boston, MA 02111-1307, USA. */
  87412. + see <http://www.gnu.org/licenses/>. */
  87413. -#define __FORCE_GLIBC
  87414. -#include <features.h>
  87415. #include <fcntl.h>
  87416. #include <sys/mman.h>
  87417. #include <pthread.h>
  87418. @@ -83,6 +80,12 @@
  87419. CANCELABLE_SYSCALL_VA (int, fcntl, (int fd, int cmd, ...),
  87420. (fd, cmd, va_arg (ap, long int)), cmd)
  87421. +#if defined __UCLIBC_HAS_LFS__ && __WORDSIZE == 32
  87422. +/* fcntl64(2). */
  87423. +CANCELABLE_SYSCALL_VA (int, fcntl64, (int fd, int cmd, ...),
  87424. + (fd, cmd, va_arg (ap, long int)), cmd)
  87425. +#endif
  87426. +
  87427. /* fsync(2). */
  87428. CANCELABLE_SYSCALL (int, fsync, (int fd), (fd))
  87429. @@ -230,12 +233,12 @@
  87430. #endif /* __UCLIBC_HAS_SOCKET__ */
  87431. #ifdef __UCLIBC_HAS_EPOLL__
  87432. +# include <sys/epoll.h>
  87433. # ifdef __NR_epoll_wait
  87434. CANCELABLE_SYSCALL (int, epoll_wait, (int epfd, struct epoll_event *events, int maxevents, int timeout),
  87435. (epfd, events, maxevents, timeout))
  87436. # endif
  87437. # ifdef __NR_epoll_pwait
  87438. -# include <signal.h>
  87439. CANCELABLE_SYSCALL (int, epoll_pwait, (int epfd, struct epoll_event *events, int maxevents, int timeout,
  87440. const sigset_t *set),
  87441. (epfd, events, maxevents, timeout, set))
  87442. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/proc_service.h uClibc-git/libpthread/linuxthreads.old_db/proc_service.h
  87443. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/proc_service.h 2012-05-15 09:20:09.000000000 +0200
  87444. +++ uClibc-git/libpthread/linuxthreads.old_db/proc_service.h 2014-06-02 17:40:34.966717253 +0200
  87445. @@ -12,9 +12,8 @@
  87446. Lesser General Public License for more details.
  87447. You should have received a copy of the GNU Lesser General Public
  87448. - License along with the GNU C Library; if not, write to the Free
  87449. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87450. - 02111-1307 USA. */
  87451. + License along with the GNU C Library; if not, see
  87452. + <http://www.gnu.org/licenses/>. */
  87453. /* The definitions in this file must correspond to those in the debugger. */
  87454. #include <sys/procfs.h>
  87455. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_init.c uClibc-git/libpthread/linuxthreads.old_db/td_init.c
  87456. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_init.c 2012-05-15 09:20:09.000000000 +0200
  87457. +++ uClibc-git/libpthread/linuxthreads.old_db/td_init.c 2014-06-02 17:40:34.966717253 +0200
  87458. @@ -14,9 +14,8 @@
  87459. Lesser General Public License for more details.
  87460. You should have received a copy of the GNU Lesser General Public
  87461. - License along with the GNU C Library; if not, write to the Free
  87462. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87463. - 02111-1307 USA. */
  87464. + License along with the GNU C Library; if not, see
  87465. + <http://www.gnu.org/licenses/>. */
  87466. #include "thread_dbP.h"
  87467. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_log.c uClibc-git/libpthread/linuxthreads.old_db/td_log.c
  87468. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_log.c 2012-05-15 09:20:09.000000000 +0200
  87469. +++ uClibc-git/libpthread/linuxthreads.old_db/td_log.c 2014-06-02 17:40:34.966717253 +0200
  87470. @@ -14,9 +14,8 @@
  87471. Lesser General Public License for more details.
  87472. You should have received a copy of the GNU Lesser General Public
  87473. - License along with the GNU C Library; if not, write to the Free
  87474. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87475. - 02111-1307 USA. */
  87476. + License along with the GNU C Library; if not, see
  87477. + <http://www.gnu.org/licenses/>. */
  87478. #include "thread_dbP.h"
  87479. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_symbol_list.c uClibc-git/libpthread/linuxthreads.old_db/td_symbol_list.c
  87480. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_symbol_list.c 2012-05-15 09:20:09.000000000 +0200
  87481. +++ uClibc-git/libpthread/linuxthreads.old_db/td_symbol_list.c 2014-06-02 17:40:34.966717253 +0200
  87482. @@ -14,9 +14,8 @@
  87483. Lesser General Public License for more details.
  87484. You should have received a copy of the GNU Lesser General Public
  87485. - License along with the GNU C Library; if not, write to the Free
  87486. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87487. - 02111-1307 USA. */
  87488. + License along with the GNU C Library; if not, see
  87489. + <http://www.gnu.org/licenses/>. */
  87490. #include <assert.h>
  87491. #include "thread_dbP.h"
  87492. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_clear_event.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_clear_event.c
  87493. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_clear_event.c 2012-05-15 09:20:09.000000000 +0200
  87494. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_clear_event.c 2014-06-02 17:40:34.966717253 +0200
  87495. @@ -14,17 +14,14 @@
  87496. Lesser General Public License for more details.
  87497. You should have received a copy of the GNU Lesser General Public
  87498. - License along with the GNU C Library; if not, write to the Free
  87499. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87500. - 02111-1307 USA. */
  87501. + License along with the GNU C Library; if not, see
  87502. + <http://www.gnu.org/licenses/>. */
  87503. #include "thread_dbP.h"
  87504. td_err_e
  87505. -td_ta_clear_event (ta, event)
  87506. - const td_thragent_t *ta;
  87507. - td_thr_events_t *event;
  87508. +td_ta_clear_event(const td_thragent_t *ta,td_thr_events_t *event)
  87509. {
  87510. td_thr_events_t old_event;
  87511. int i;
  87512. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_delete.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_delete.c
  87513. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_delete.c 2012-05-15 09:20:09.000000000 +0200
  87514. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_delete.c 2014-06-02 17:40:34.966717253 +0200
  87515. @@ -14,9 +14,8 @@
  87516. Lesser General Public License for more details.
  87517. You should have received a copy of the GNU Lesser General Public
  87518. - License along with the GNU C Library; if not, write to the Free
  87519. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87520. - 02111-1307 USA. */
  87521. + License along with the GNU C Library; if not, see
  87522. + <http://www.gnu.org/licenses/>. */
  87523. #include <stdlib.h>
  87524. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_enable_stats.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_enable_stats.c
  87525. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_enable_stats.c 2012-05-15 09:20:09.000000000 +0200
  87526. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_enable_stats.c 2014-06-02 17:40:34.966717253 +0200
  87527. @@ -14,9 +14,8 @@
  87528. Lesser General Public License for more details.
  87529. You should have received a copy of the GNU Lesser General Public
  87530. - License along with the GNU C Library; if not, write to the Free
  87531. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87532. - 02111-1307 USA. */
  87533. + License along with the GNU C Library; if not, see
  87534. + <http://www.gnu.org/licenses/>. */
  87535. #include "thread_dbP.h"
  87536. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_event_addr.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_event_addr.c
  87537. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_event_addr.c 2012-05-15 09:20:09.000000000 +0200
  87538. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_event_addr.c 2014-06-02 17:40:34.966717253 +0200
  87539. @@ -14,9 +14,8 @@
  87540. Lesser General Public License for more details.
  87541. You should have received a copy of the GNU Lesser General Public
  87542. - License along with the GNU C Library; if not, write to the Free
  87543. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87544. - 02111-1307 USA. */
  87545. + License along with the GNU C Library; if not, see
  87546. + <http://www.gnu.org/licenses/>. */
  87547. #include "thread_dbP.h"
  87548. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_event_getmsg.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_event_getmsg.c
  87549. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
  87550. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_event_getmsg.c 2014-06-02 17:40:34.966717253 +0200
  87551. @@ -14,9 +14,8 @@
  87552. Lesser General Public License for more details.
  87553. You should have received a copy of the GNU Lesser General Public
  87554. - License along with the GNU C Library; if not, write to the Free
  87555. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87556. - 02111-1307 USA. */
  87557. + License along with the GNU C Library; if not, see
  87558. + <http://www.gnu.org/licenses/>. */
  87559. #include <stddef.h>
  87560. #include <string.h>
  87561. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_get_nthreads.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_get_nthreads.c
  87562. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_get_nthreads.c 2012-05-15 09:20:09.000000000 +0200
  87563. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_get_nthreads.c 2014-06-02 17:40:34.966717253 +0200
  87564. @@ -14,9 +14,8 @@
  87565. Lesser General Public License for more details.
  87566. You should have received a copy of the GNU Lesser General Public
  87567. - License along with the GNU C Library; if not, write to the Free
  87568. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87569. - 02111-1307 USA. */
  87570. + License along with the GNU C Library; if not, see
  87571. + <http://www.gnu.org/licenses/>. */
  87572. #include "thread_dbP.h"
  87573. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_get_ph.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_get_ph.c
  87574. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_get_ph.c 2012-05-15 09:20:09.000000000 +0200
  87575. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_get_ph.c 2014-06-02 17:40:34.966717253 +0200
  87576. @@ -14,9 +14,8 @@
  87577. Lesser General Public License for more details.
  87578. You should have received a copy of the GNU Lesser General Public
  87579. - License along with the GNU C Library; if not, write to the Free
  87580. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87581. - 02111-1307 USA. */
  87582. + License along with the GNU C Library; if not, see
  87583. + <http://www.gnu.org/licenses/>. */
  87584. #include "thread_dbP.h"
  87585. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_get_stats.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_get_stats.c
  87586. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_get_stats.c 2012-05-15 09:20:09.000000000 +0200
  87587. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_get_stats.c 2014-06-02 17:40:34.966717253 +0200
  87588. @@ -14,9 +14,8 @@
  87589. Lesser General Public License for more details.
  87590. You should have received a copy of the GNU Lesser General Public
  87591. - License along with the GNU C Library; if not, write to the Free
  87592. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87593. - 02111-1307 USA. */
  87594. + License along with the GNU C Library; if not, see
  87595. + <http://www.gnu.org/licenses/>. */
  87596. #include "thread_dbP.h"
  87597. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_map_id2thr.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_map_id2thr.c
  87598. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_map_id2thr.c 2012-05-15 09:20:09.000000000 +0200
  87599. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_map_id2thr.c 2014-06-02 17:40:34.966717253 +0200
  87600. @@ -14,9 +14,8 @@
  87601. Lesser General Public License for more details.
  87602. You should have received a copy of the GNU Lesser General Public
  87603. - License along with the GNU C Library; if not, write to the Free
  87604. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87605. - 02111-1307 USA. */
  87606. + License along with the GNU C Library; if not, see
  87607. + <http://www.gnu.org/licenses/>. */
  87608. #include "thread_dbP.h"
  87609. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_map_lwp2thr.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_map_lwp2thr.c
  87610. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_map_lwp2thr.c 2012-05-15 09:20:09.000000000 +0200
  87611. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_map_lwp2thr.c 2014-06-02 17:40:34.966717253 +0200
  87612. @@ -14,9 +14,8 @@
  87613. Lesser General Public License for more details.
  87614. You should have received a copy of the GNU Lesser General Public
  87615. - License along with the GNU C Library; if not, write to the Free
  87616. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87617. - 02111-1307 USA. */
  87618. + License along with the GNU C Library; if not, see
  87619. + <http://www.gnu.org/licenses/>. */
  87620. #include "thread_dbP.h"
  87621. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_new.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_new.c
  87622. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_new.c 2012-05-15 09:20:09.000000000 +0200
  87623. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_new.c 2014-06-02 17:40:34.966717253 +0200
  87624. @@ -14,9 +14,8 @@
  87625. Lesser General Public License for more details.
  87626. You should have received a copy of the GNU Lesser General Public
  87627. - License along with the GNU C Library; if not, write to the Free
  87628. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87629. - 02111-1307 USA. */
  87630. + License along with the GNU C Library; if not, see
  87631. + <http://www.gnu.org/licenses/>. */
  87632. #include <stddef.h>
  87633. #include <stdlib.h>
  87634. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_reset_stats.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_reset_stats.c
  87635. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_reset_stats.c 2012-05-15 09:20:09.000000000 +0200
  87636. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_reset_stats.c 2014-06-02 17:40:34.966717253 +0200
  87637. @@ -14,9 +14,8 @@
  87638. Lesser General Public License for more details.
  87639. You should have received a copy of the GNU Lesser General Public
  87640. - License along with the GNU C Library; if not, write to the Free
  87641. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87642. - 02111-1307 USA. */
  87643. + License along with the GNU C Library; if not, see
  87644. + <http://www.gnu.org/licenses/>. */
  87645. #include "thread_dbP.h"
  87646. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_setconcurrency.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_setconcurrency.c
  87647. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_setconcurrency.c 2012-05-15 09:20:09.000000000 +0200
  87648. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_setconcurrency.c 2014-06-02 17:40:34.966717253 +0200
  87649. @@ -14,9 +14,8 @@
  87650. Lesser General Public License for more details.
  87651. You should have received a copy of the GNU Lesser General Public
  87652. - License along with the GNU C Library; if not, write to the Free
  87653. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87654. - 02111-1307 USA. */
  87655. + License along with the GNU C Library; if not, see
  87656. + <http://www.gnu.org/licenses/>. */
  87657. #include "thread_dbP.h"
  87658. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_set_event.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_set_event.c
  87659. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_set_event.c 2012-05-15 09:20:09.000000000 +0200
  87660. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_set_event.c 2014-06-02 17:40:34.966717253 +0200
  87661. @@ -14,17 +14,14 @@
  87662. Lesser General Public License for more details.
  87663. You should have received a copy of the GNU Lesser General Public
  87664. - License along with the GNU C Library; if not, write to the Free
  87665. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87666. - 02111-1307 USA. */
  87667. + License along with the GNU C Library; if not, see
  87668. + <http://www.gnu.org/licenses/>. */
  87669. #include "thread_dbP.h"
  87670. td_err_e
  87671. -td_ta_set_event (ta, event)
  87672. - const td_thragent_t *ta;
  87673. - td_thr_events_t *event;
  87674. +td_ta_set_event(const td_thragent_t *ta,td_thr_events_t *event)
  87675. {
  87676. td_thr_events_t old_event;
  87677. int i;
  87678. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_thr_iter.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_thr_iter.c
  87679. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_thr_iter.c 2012-05-15 09:20:09.000000000 +0200
  87680. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_thr_iter.c 2014-06-02 17:40:34.966717253 +0200
  87681. @@ -14,9 +14,8 @@
  87682. Lesser General Public License for more details.
  87683. You should have received a copy of the GNU Lesser General Public
  87684. - License along with the GNU C Library; if not, write to the Free
  87685. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87686. - 02111-1307 USA. */
  87687. + License along with the GNU C Library; if not, see
  87688. + <http://www.gnu.org/licenses/>. */
  87689. #include "thread_dbP.h"
  87690. #include <alloca.h>
  87691. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_tsd_iter.c uClibc-git/libpthread/linuxthreads.old_db/td_ta_tsd_iter.c
  87692. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_ta_tsd_iter.c 2012-05-15 09:20:09.000000000 +0200
  87693. +++ uClibc-git/libpthread/linuxthreads.old_db/td_ta_tsd_iter.c 2014-06-02 17:40:34.966717253 +0200
  87694. @@ -14,9 +14,8 @@
  87695. Lesser General Public License for more details.
  87696. You should have received a copy of the GNU Lesser General Public
  87697. - License along with the GNU C Library; if not, write to the Free
  87698. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87699. - 02111-1307 USA. */
  87700. + License along with the GNU C Library; if not, see
  87701. + <http://www.gnu.org/licenses/>. */
  87702. #include "thread_dbP.h"
  87703. #include <alloca.h>
  87704. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_clear_event.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_clear_event.c
  87705. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_clear_event.c 2012-05-15 09:20:09.000000000 +0200
  87706. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_clear_event.c 2014-06-02 17:40:34.966717253 +0200
  87707. @@ -14,9 +14,8 @@
  87708. Lesser General Public License for more details.
  87709. You should have received a copy of the GNU Lesser General Public
  87710. - License along with the GNU C Library; if not, write to the Free
  87711. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87712. - 02111-1307 USA. */
  87713. + License along with the GNU C Library; if not, see
  87714. + <http://www.gnu.org/licenses/>. */
  87715. #include <stddef.h>
  87716. @@ -24,9 +23,7 @@
  87717. td_err_e
  87718. -td_thr_clear_event (th, event)
  87719. - const td_thrhandle_t *th;
  87720. - td_thr_events_t *event;
  87721. +td_thr_clear_event(const td_thrhandle_t *th,td_thr_events_t *event)
  87722. {
  87723. td_thr_events_t old_event;
  87724. int i;
  87725. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_dbresume.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_dbresume.c
  87726. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_dbresume.c 2012-05-15 09:20:09.000000000 +0200
  87727. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_dbresume.c 2014-06-02 17:40:34.966717253 +0200
  87728. @@ -14,9 +14,8 @@
  87729. Lesser General Public License for more details.
  87730. You should have received a copy of the GNU Lesser General Public
  87731. - License along with the GNU C Library; if not, write to the Free
  87732. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87733. - 02111-1307 USA. */
  87734. + License along with the GNU C Library; if not, see
  87735. + <http://www.gnu.org/licenses/>. */
  87736. #include "thread_dbP.h"
  87737. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_dbsuspend.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_dbsuspend.c
  87738. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_dbsuspend.c 2012-05-15 09:20:09.000000000 +0200
  87739. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_dbsuspend.c 2014-06-02 17:40:34.966717253 +0200
  87740. @@ -14,9 +14,8 @@
  87741. Lesser General Public License for more details.
  87742. You should have received a copy of the GNU Lesser General Public
  87743. - License along with the GNU C Library; if not, write to the Free
  87744. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87745. - 02111-1307 USA. */
  87746. + License along with the GNU C Library; if not, see
  87747. + <http://www.gnu.org/licenses/>. */
  87748. #include "thread_dbP.h"
  87749. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_event_enable.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_event_enable.c
  87750. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_event_enable.c 2012-05-15 09:20:09.000000000 +0200
  87751. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_event_enable.c 2014-06-02 17:40:34.966717253 +0200
  87752. @@ -14,9 +14,8 @@
  87753. Lesser General Public License for more details.
  87754. You should have received a copy of the GNU Lesser General Public
  87755. - License along with the GNU C Library; if not, write to the Free
  87756. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87757. - 02111-1307 USA. */
  87758. + License along with the GNU C Library; if not, see
  87759. + <http://www.gnu.org/licenses/>. */
  87760. #include <stddef.h>
  87761. @@ -24,9 +23,7 @@
  87762. td_err_e
  87763. -td_thr_event_enable (th, onoff)
  87764. - const td_thrhandle_t *th;
  87765. - int onoff;
  87766. +td_thr_event_enable(const td_thrhandle_t *th, int onoff)
  87767. {
  87768. LOG ("td_thr_event_enable");
  87769. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_event_getmsg.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_event_getmsg.c
  87770. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
  87771. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_event_getmsg.c 2014-06-02 17:40:34.966717253 +0200
  87772. @@ -14,9 +14,8 @@
  87773. Lesser General Public License for more details.
  87774. You should have received a copy of the GNU Lesser General Public
  87775. - License along with the GNU C Library; if not, write to the Free
  87776. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87777. - 02111-1307 USA. */
  87778. + License along with the GNU C Library; if not, see
  87779. + <http://www.gnu.org/licenses/>. */
  87780. #include <stddef.h>
  87781. #include <string.h>
  87782. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getfpregs.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_getfpregs.c
  87783. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getfpregs.c 2012-05-15 09:20:09.000000000 +0200
  87784. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_getfpregs.c 2014-06-02 17:40:34.966717253 +0200
  87785. @@ -14,9 +14,8 @@
  87786. Lesser General Public License for more details.
  87787. You should have received a copy of the GNU Lesser General Public
  87788. - License along with the GNU C Library; if not, write to the Free
  87789. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87790. - 02111-1307 USA. */
  87791. + License along with the GNU C Library; if not, see
  87792. + <http://www.gnu.org/licenses/>. */
  87793. #include "thread_dbP.h"
  87794. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getgregs.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_getgregs.c
  87795. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getgregs.c 2012-05-15 09:20:09.000000000 +0200
  87796. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_getgregs.c 2014-06-02 17:40:34.966717253 +0200
  87797. @@ -14,9 +14,8 @@
  87798. Lesser General Public License for more details.
  87799. You should have received a copy of the GNU Lesser General Public
  87800. - License along with the GNU C Library; if not, write to the Free
  87801. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87802. - 02111-1307 USA. */
  87803. + License along with the GNU C Library; if not, see
  87804. + <http://www.gnu.org/licenses/>. */
  87805. #include "thread_dbP.h"
  87806. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_get_info.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_get_info.c
  87807. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_get_info.c 2012-05-15 09:20:09.000000000 +0200
  87808. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_get_info.c 2014-06-02 17:40:34.966717253 +0200
  87809. @@ -14,9 +14,8 @@
  87810. Lesser General Public License for more details.
  87811. You should have received a copy of the GNU Lesser General Public
  87812. - License along with the GNU C Library; if not, write to the Free
  87813. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87814. - 02111-1307 USA. */
  87815. + License along with the GNU C Library; if not, see
  87816. + <http://www.gnu.org/licenses/>. */
  87817. #include <stddef.h>
  87818. #include <string.h>
  87819. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getxregs.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_getxregs.c
  87820. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getxregs.c 2012-05-15 09:20:09.000000000 +0200
  87821. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_getxregs.c 2014-06-02 17:40:34.966717253 +0200
  87822. @@ -14,9 +14,8 @@
  87823. Lesser General Public License for more details.
  87824. You should have received a copy of the GNU Lesser General Public
  87825. - License along with the GNU C Library; if not, write to the Free
  87826. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87827. - 02111-1307 USA. */
  87828. + License along with the GNU C Library; if not, see
  87829. + <http://www.gnu.org/licenses/>. */
  87830. #include "thread_dbP.h"
  87831. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getxregsize.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_getxregsize.c
  87832. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_getxregsize.c 2012-05-15 09:20:09.000000000 +0200
  87833. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_getxregsize.c 2014-06-02 17:40:34.966717253 +0200
  87834. @@ -14,9 +14,8 @@
  87835. Lesser General Public License for more details.
  87836. You should have received a copy of the GNU Lesser General Public
  87837. - License along with the GNU C Library; if not, write to the Free
  87838. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87839. - 02111-1307 USA. */
  87840. + License along with the GNU C Library; if not, see
  87841. + <http://www.gnu.org/licenses/>. */
  87842. #include "thread_dbP.h"
  87843. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_set_event.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_set_event.c
  87844. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_set_event.c 2012-05-15 09:20:09.000000000 +0200
  87845. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_set_event.c 2014-06-02 17:40:34.966717253 +0200
  87846. @@ -14,9 +14,8 @@
  87847. Lesser General Public License for more details.
  87848. You should have received a copy of the GNU Lesser General Public
  87849. - License along with the GNU C Library; if not, write to the Free
  87850. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87851. - 02111-1307 USA. */
  87852. + License along with the GNU C Library; if not, see
  87853. + <http://www.gnu.org/licenses/>. */
  87854. #include <stddef.h>
  87855. @@ -24,9 +23,7 @@
  87856. td_err_e
  87857. -td_thr_set_event (th, event)
  87858. - const td_thrhandle_t *th;
  87859. - td_thr_events_t *event;
  87860. +td_thr_set_event(const td_thrhandle_t *th, td_thr_events_t *event)
  87861. {
  87862. td_thr_events_t old_event;
  87863. int i;
  87864. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setfpregs.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_setfpregs.c
  87865. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setfpregs.c 2012-05-15 09:20:09.000000000 +0200
  87866. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_setfpregs.c 2014-06-02 17:40:34.966717253 +0200
  87867. @@ -14,9 +14,8 @@
  87868. Lesser General Public License for more details.
  87869. You should have received a copy of the GNU Lesser General Public
  87870. - License along with the GNU C Library; if not, write to the Free
  87871. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87872. - 02111-1307 USA. */
  87873. + License along with the GNU C Library; if not, see
  87874. + <http://www.gnu.org/licenses/>. */
  87875. #include "thread_dbP.h"
  87876. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setgregs.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_setgregs.c
  87877. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setgregs.c 2012-05-15 09:20:09.000000000 +0200
  87878. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_setgregs.c 2014-06-02 17:40:34.966717253 +0200
  87879. @@ -14,9 +14,8 @@
  87880. Lesser General Public License for more details.
  87881. You should have received a copy of the GNU Lesser General Public
  87882. - License along with the GNU C Library; if not, write to the Free
  87883. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87884. - 02111-1307 USA. */
  87885. + License along with the GNU C Library; if not, see
  87886. + <http://www.gnu.org/licenses/>. */
  87887. #include "thread_dbP.h"
  87888. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setprio.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_setprio.c
  87889. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setprio.c 2012-05-15 09:20:09.000000000 +0200
  87890. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_setprio.c 2014-06-02 17:40:34.966717253 +0200
  87891. @@ -14,9 +14,8 @@
  87892. Lesser General Public License for more details.
  87893. You should have received a copy of the GNU Lesser General Public
  87894. - License along with the GNU C Library; if not, write to the Free
  87895. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87896. - 02111-1307 USA. */
  87897. + License along with the GNU C Library; if not, see
  87898. + <http://www.gnu.org/licenses/>. */
  87899. #include "thread_dbP.h"
  87900. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setsigpending.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_setsigpending.c
  87901. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setsigpending.c 2012-05-15 09:20:09.000000000 +0200
  87902. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_setsigpending.c 2014-06-02 17:40:34.966717253 +0200
  87903. @@ -14,9 +14,8 @@
  87904. Lesser General Public License for more details.
  87905. You should have received a copy of the GNU Lesser General Public
  87906. - License along with the GNU C Library; if not, write to the Free
  87907. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87908. - 02111-1307 USA. */
  87909. + License along with the GNU C Library; if not, see
  87910. + <http://www.gnu.org/licenses/>. */
  87911. #include "thread_dbP.h"
  87912. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setxregs.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_setxregs.c
  87913. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_setxregs.c 2012-05-15 09:20:09.000000000 +0200
  87914. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_setxregs.c 2014-06-02 17:40:34.966717253 +0200
  87915. @@ -14,9 +14,8 @@
  87916. Lesser General Public License for more details.
  87917. You should have received a copy of the GNU Lesser General Public
  87918. - License along with the GNU C Library; if not, write to the Free
  87919. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87920. - 02111-1307 USA. */
  87921. + License along with the GNU C Library; if not, see
  87922. + <http://www.gnu.org/licenses/>. */
  87923. #include "thread_dbP.h"
  87924. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_sigsetmask.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_sigsetmask.c
  87925. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_sigsetmask.c 2012-05-15 09:20:09.000000000 +0200
  87926. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_sigsetmask.c 2014-06-02 17:40:34.966717253 +0200
  87927. @@ -14,9 +14,8 @@
  87928. Lesser General Public License for more details.
  87929. You should have received a copy of the GNU Lesser General Public
  87930. - License along with the GNU C Library; if not, write to the Free
  87931. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87932. - 02111-1307 USA. */
  87933. + License along with the GNU C Library; if not, see
  87934. + <http://www.gnu.org/licenses/>. */
  87935. #include "thread_dbP.h"
  87936. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_tls_get_addr.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_tls_get_addr.c
  87937. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_tls_get_addr.c 2012-05-15 09:20:09.000000000 +0200
  87938. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_tls_get_addr.c 2014-06-02 17:40:34.966717253 +0200
  87939. @@ -14,9 +14,8 @@
  87940. Lesser General Public License for more details.
  87941. You should have received a copy of the GNU Lesser General Public
  87942. - License along with the GNU C Library; if not, write to the Free
  87943. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87944. - 02111-1307 USA. */
  87945. + License along with the GNU C Library; if not, see
  87946. + <http://www.gnu.org/licenses/>. */
  87947. #include <link.h>
  87948. #include "thread_dbP.h"
  87949. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_tsd.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_tsd.c
  87950. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_tsd.c 2012-05-15 09:20:09.000000000 +0200
  87951. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_tsd.c 2014-06-02 17:40:34.966717253 +0200
  87952. @@ -14,9 +14,8 @@
  87953. Lesser General Public License for more details.
  87954. You should have received a copy of the GNU Lesser General Public
  87955. - License along with the GNU C Library; if not, write to the Free
  87956. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87957. - 02111-1307 USA. */
  87958. + License along with the GNU C Library; if not, see
  87959. + <http://www.gnu.org/licenses/>. */
  87960. #include "thread_dbP.h"
  87961. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_validate.c uClibc-git/libpthread/linuxthreads.old_db/td_thr_validate.c
  87962. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/td_thr_validate.c 2012-05-15 09:20:09.000000000 +0200
  87963. +++ uClibc-git/libpthread/linuxthreads.old_db/td_thr_validate.c 2014-06-02 17:40:34.966717253 +0200
  87964. @@ -14,9 +14,8 @@
  87965. Lesser General Public License for more details.
  87966. You should have received a copy of the GNU Lesser General Public
  87967. - License along with the GNU C Library; if not, write to the Free
  87968. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87969. - 02111-1307 USA. */
  87970. + License along with the GNU C Library; if not, see
  87971. + <http://www.gnu.org/licenses/>. */
  87972. #include "thread_dbP.h"
  87973. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/thread_db.h uClibc-git/libpthread/linuxthreads.old_db/thread_db.h
  87974. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/thread_db.h 2012-05-15 09:20:09.000000000 +0200
  87975. +++ uClibc-git/libpthread/linuxthreads.old_db/thread_db.h 2014-06-02 17:40:34.966717253 +0200
  87976. @@ -13,9 +13,8 @@
  87977. Lesser General Public License for more details.
  87978. You should have received a copy of the GNU Lesser General Public
  87979. - License along with the GNU C Library; if not, write to the Free
  87980. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  87981. - 02111-1307 USA. */
  87982. + License along with the GNU C Library; if not, see
  87983. + <http://www.gnu.org/licenses/>. */
  87984. #ifndef _THREAD_DB_H
  87985. #define _THREAD_DB_H 1
  87986. diff -Nur uClibc-0.9.33.2/libpthread/linuxthreads.old_db/thread_dbP.h uClibc-git/libpthread/linuxthreads.old_db/thread_dbP.h
  87987. --- uClibc-0.9.33.2/libpthread/linuxthreads.old_db/thread_dbP.h 2012-05-15 09:20:09.000000000 +0200
  87988. +++ uClibc-git/libpthread/linuxthreads.old_db/thread_dbP.h 2014-06-02 17:40:34.966717253 +0200
  87989. @@ -2,8 +2,6 @@
  87990. #ifndef _THREAD_DBP_H
  87991. #define _THREAD_DBP_H 1
  87992. -#define __FORCE_GLIBC
  87993. -#include <features.h>
  87994. #include <string.h>
  87995. #include <unistd.h>
  87996. #include "proc_service.h"
  87997. diff -Nur uClibc-0.9.33.2/libpthread/nptl/alloca_cutoff.c uClibc-git/libpthread/nptl/alloca_cutoff.c
  87998. --- uClibc-0.9.33.2/libpthread/nptl/alloca_cutoff.c 2012-05-15 09:20:09.000000000 +0200
  87999. +++ uClibc-git/libpthread/nptl/alloca_cutoff.c 2014-06-02 17:40:35.034717630 +0200
  88000. @@ -13,9 +13,8 @@
  88001. Lesser General Public License for more details.
  88002. You should have received a copy of the GNU Lesser General Public
  88003. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  88004. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  88005. - Boston, MA 02111-1307, USA. */
  88006. + License along with the GNU C Library; see the file COPYING.LIB. If
  88007. + not, see <http://www.gnu.org/licenses/>. */
  88008. #include <alloca.h>
  88009. #include <stdlib.h>
  88010. diff -Nur uClibc-0.9.33.2/libpthread/nptl/allocatestack.c uClibc-git/libpthread/nptl/allocatestack.c
  88011. --- uClibc-0.9.33.2/libpthread/nptl/allocatestack.c 2012-05-15 09:20:09.000000000 +0200
  88012. +++ uClibc-git/libpthread/nptl/allocatestack.c 2014-06-02 17:40:35.034717630 +0200
  88013. @@ -13,9 +13,8 @@
  88014. Lesser General Public License for more details.
  88015. You should have received a copy of the GNU Lesser General Public
  88016. - License along with the GNU C Library; if not, write to the Free
  88017. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88018. - 02111-1307 USA. */
  88019. + License along with the GNU C Library; if not, see
  88020. + <http://www.gnu.org/licenses/>. */
  88021. #include <assert.h>
  88022. #include <errno.h>
  88023. @@ -646,7 +645,7 @@
  88024. prot) != 0)
  88025. goto mprot_error;
  88026. #elif defined _STACK_GROWS_UP
  88027. - if (mprotect ((char *) pd - pd->guardsize,
  88028. + if (mprotect ((char *) (((uintptr_t) pd - pd->guardsize) & ~pagesize_m1),
  88029. pd->guardsize - guardsize, prot) != 0)
  88030. goto mprot_error;
  88031. #endif
  88032. diff -Nur uClibc-0.9.33.2/libpthread/nptl/cancellation.c uClibc-git/libpthread/nptl/cancellation.c
  88033. --- uClibc-0.9.33.2/libpthread/nptl/cancellation.c 2012-05-15 09:20:09.000000000 +0200
  88034. +++ uClibc-git/libpthread/nptl/cancellation.c 2014-06-02 17:40:35.034717630 +0200
  88035. @@ -13,9 +13,8 @@
  88036. Lesser General Public License for more details.
  88037. You should have received a copy of the GNU Lesser General Public
  88038. - License along with the GNU C Library; if not, write to the Free
  88039. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88040. - 02111-1307 USA. */
  88041. + License along with the GNU C Library; if not, see
  88042. + <http://www.gnu.org/licenses/>. */
  88043. #include <setjmp.h>
  88044. #include <stdlib.h>
  88045. diff -Nur uClibc-0.9.33.2/libpthread/nptl/cleanup.c uClibc-git/libpthread/nptl/cleanup.c
  88046. --- uClibc-0.9.33.2/libpthread/nptl/cleanup.c 2012-05-15 09:20:09.000000000 +0200
  88047. +++ uClibc-git/libpthread/nptl/cleanup.c 2014-06-02 17:40:35.034717630 +0200
  88048. @@ -13,9 +13,8 @@
  88049. Lesser General Public License for more details.
  88050. You should have received a copy of the GNU Lesser General Public
  88051. - License along with the GNU C Library; if not, write to the Free
  88052. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88053. - 02111-1307 USA. */
  88054. + License along with the GNU C Library; if not, see
  88055. + <http://www.gnu.org/licenses/>. */
  88056. #include <stdlib.h>
  88057. #include "pthreadP.h"
  88058. diff -Nur uClibc-0.9.33.2/libpthread/nptl/cleanup_compat.c uClibc-git/libpthread/nptl/cleanup_compat.c
  88059. --- uClibc-0.9.33.2/libpthread/nptl/cleanup_compat.c 2012-05-15 09:20:09.000000000 +0200
  88060. +++ uClibc-git/libpthread/nptl/cleanup_compat.c 2014-06-02 17:40:35.034717630 +0200
  88061. @@ -13,9 +13,8 @@
  88062. Lesser General Public License for more details.
  88063. You should have received a copy of the GNU Lesser General Public
  88064. - License along with the GNU C Library; if not, write to the Free
  88065. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88066. - 02111-1307 USA. */
  88067. + License along with the GNU C Library; if not, see
  88068. + <http://www.gnu.org/licenses/>. */
  88069. #include <stdlib.h>
  88070. #include "pthreadP.h"
  88071. diff -Nur uClibc-0.9.33.2/libpthread/nptl/cleanup_defer.c uClibc-git/libpthread/nptl/cleanup_defer.c
  88072. --- uClibc-0.9.33.2/libpthread/nptl/cleanup_defer.c 2012-05-15 09:20:09.000000000 +0200
  88073. +++ uClibc-git/libpthread/nptl/cleanup_defer.c 2014-06-02 17:40:35.034717630 +0200
  88074. @@ -13,9 +13,8 @@
  88075. Lesser General Public License for more details.
  88076. You should have received a copy of the GNU Lesser General Public
  88077. - License along with the GNU C Library; if not, write to the Free
  88078. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88079. - 02111-1307 USA. */
  88080. + License along with the GNU C Library; if not, see
  88081. + <http://www.gnu.org/licenses/>. */
  88082. #include <stdlib.h>
  88083. #include "pthreadP.h"
  88084. diff -Nur uClibc-0.9.33.2/libpthread/nptl/cleanup_defer_compat.c uClibc-git/libpthread/nptl/cleanup_defer_compat.c
  88085. --- uClibc-0.9.33.2/libpthread/nptl/cleanup_defer_compat.c 2012-05-15 09:20:09.000000000 +0200
  88086. +++ uClibc-git/libpthread/nptl/cleanup_defer_compat.c 2014-06-02 17:40:35.034717630 +0200
  88087. @@ -13,9 +13,8 @@
  88088. Lesser General Public License for more details.
  88089. You should have received a copy of the GNU Lesser General Public
  88090. - License along with the GNU C Library; if not, write to the Free
  88091. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88092. - 02111-1307 USA. */
  88093. + License along with the GNU C Library; if not, see
  88094. + <http://www.gnu.org/licenses/>. */
  88095. #include "pthreadP.h"
  88096. diff -Nur uClibc-0.9.33.2/libpthread/nptl/cleanup_routine.c uClibc-git/libpthread/nptl/cleanup_routine.c
  88097. --- uClibc-0.9.33.2/libpthread/nptl/cleanup_routine.c 2012-05-15 09:20:09.000000000 +0200
  88098. +++ uClibc-git/libpthread/nptl/cleanup_routine.c 2014-06-02 17:40:35.034717630 +0200
  88099. @@ -13,13 +13,12 @@
  88100. Lesser General Public License for more details.
  88101. You should have received a copy of the GNU Lesser General Public
  88102. - License along with the GNU C Library; if not, write to the Free
  88103. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88104. - 02111-1307 USA. */
  88105. + License along with the GNU C Library; if not, see
  88106. + <http://www.gnu.org/licenses/>. */
  88107. #include <pthread.h>
  88108. -
  88109. +void __pthread_cleanup_routine (struct __pthread_cleanup_frame *f);
  88110. void
  88111. __pthread_cleanup_routine (struct __pthread_cleanup_frame *f)
  88112. {
  88113. diff -Nur uClibc-0.9.33.2/libpthread/nptl/descr.h uClibc-git/libpthread/nptl/descr.h
  88114. --- uClibc-0.9.33.2/libpthread/nptl/descr.h 2012-05-15 09:20:09.000000000 +0200
  88115. +++ uClibc-git/libpthread/nptl/descr.h 2014-06-02 17:40:35.034717630 +0200
  88116. @@ -13,9 +13,8 @@
  88117. Lesser General Public License for more details.
  88118. You should have received a copy of the GNU Lesser General Public
  88119. - License along with the GNU C Library; if not, write to the Free
  88120. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88121. - 02111-1307 USA. */
  88122. + License along with the GNU C Library; if not, see
  88123. + <http://www.gnu.org/licenses/>. */
  88124. #ifndef _DESCR_H
  88125. #define _DESCR_H 1
  88126. diff -Nur uClibc-0.9.33.2/libpthread/nptl/events.c uClibc-git/libpthread/nptl/events.c
  88127. --- uClibc-0.9.33.2/libpthread/nptl/events.c 2012-05-15 09:20:09.000000000 +0200
  88128. +++ uClibc-git/libpthread/nptl/events.c 2014-06-02 17:40:35.034717630 +0200
  88129. @@ -13,9 +13,8 @@
  88130. Lesser General Public License for more details.
  88131. You should have received a copy of the GNU Lesser General Public
  88132. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  88133. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  88134. - Boston, MA 02111-1307, USA. */
  88135. + License along with the GNU C Library; see the file COPYING.LIB. If
  88136. + not, see <http://www.gnu.org/licenses/>. */
  88137. /* The functions contained here do nothing, they just return. */
  88138. diff -Nur uClibc-0.9.33.2/libpthread/nptl/forward.c uClibc-git/libpthread/nptl/forward.c
  88139. --- uClibc-0.9.33.2/libpthread/nptl/forward.c 2012-05-15 09:20:09.000000000 +0200
  88140. +++ uClibc-git/libpthread/nptl/forward.c 2014-06-02 17:40:35.034717630 +0200
  88141. @@ -13,9 +13,8 @@
  88142. Lesser General Public License for more details.
  88143. You should have received a copy of the GNU Lesser General Public
  88144. - License along with the GNU C Library; if not, write to the Free
  88145. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88146. - 02111-1307 USA. */
  88147. + License along with the GNU C Library; if not, see
  88148. + <http://www.gnu.org/licenses/>. */
  88149. #include <dlfcn.h>
  88150. #include <pthreadP.h>
  88151. diff -Nur uClibc-0.9.33.2/libpthread/nptl/.gitignore uClibc-git/libpthread/nptl/.gitignore
  88152. --- uClibc-0.9.33.2/libpthread/nptl/.gitignore 2012-05-15 09:20:09.000000000 +0200
  88153. +++ uClibc-git/libpthread/nptl/.gitignore 2014-06-02 17:40:35.030717608 +0200
  88154. @@ -26,3 +26,5 @@
  88155. #
  88156. # symlinks
  88157. #
  88158. +sysdeps/pthread/pt-sigfillset.c
  88159. +sysdeps/pthread/pt-sigprocmask.c
  88160. diff -Nur uClibc-0.9.33.2/libpthread/nptl/herrno.c uClibc-git/libpthread/nptl/herrno.c
  88161. --- uClibc-0.9.33.2/libpthread/nptl/herrno.c 2012-05-15 09:20:09.000000000 +0200
  88162. +++ uClibc-git/libpthread/nptl/herrno.c 2014-06-02 17:40:35.034717630 +0200
  88163. @@ -12,9 +12,8 @@
  88164. Lesser General Public License for more details.
  88165. You should have received a copy of the GNU Lesser General Public
  88166. - License along with the GNU C Library; if not, write to the Free
  88167. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88168. - 02111-1307 USA. */
  88169. + License along with the GNU C Library; if not, see
  88170. + <http://www.gnu.org/licenses/>. */
  88171. #include <features.h>
  88172. #include <netdb.h>
  88173. diff -Nur uClibc-0.9.33.2/libpthread/nptl/init.c uClibc-git/libpthread/nptl/init.c
  88174. --- uClibc-0.9.33.2/libpthread/nptl/init.c 2012-05-15 09:20:09.000000000 +0200
  88175. +++ uClibc-git/libpthread/nptl/init.c 2014-06-02 17:40:35.034717630 +0200
  88176. @@ -13,9 +13,8 @@
  88177. Lesser General Public License for more details.
  88178. You should have received a copy of the GNU Lesser General Public
  88179. - License along with the GNU C Library; if not, write to the Free
  88180. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88181. - 02111-1307 USA. */
  88182. + License along with the GNU C Library; if not, see
  88183. + <http://www.gnu.org/licenses/>. */
  88184. #include <assert.h>
  88185. #include <errno.h>
  88186. @@ -35,7 +34,6 @@
  88187. #include <lowlevellock.h>
  88188. #include <bits/kernel-features.h>
  88189. #include <stdio.h>
  88190. -extern __typeof(sigaction) __libc_sigaction;
  88191. /* Size and alignment of static TLS block. */
  88192. size_t __static_tls_size;
  88193. diff -Nur uClibc-0.9.33.2/libpthread/nptl/libc-cancellation.c uClibc-git/libpthread/nptl/libc-cancellation.c
  88194. --- uClibc-0.9.33.2/libpthread/nptl/libc-cancellation.c 2012-05-15 09:20:09.000000000 +0200
  88195. +++ uClibc-git/libpthread/nptl/libc-cancellation.c 2014-06-02 17:40:35.034717630 +0200
  88196. @@ -13,9 +13,8 @@
  88197. Lesser General Public License for more details.
  88198. You should have received a copy of the GNU Lesser General Public
  88199. - License along with the GNU C Library; if not, write to the Free
  88200. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88201. - 02111-1307 USA. */
  88202. + License along with the GNU C Library; if not, see
  88203. + <http://www.gnu.org/licenses/>. */
  88204. #include "pthreadP.h"
  88205. diff -Nur uClibc-0.9.33.2/libpthread/nptl/linux_fsinfo.h uClibc-git/libpthread/nptl/linux_fsinfo.h
  88206. --- uClibc-0.9.33.2/libpthread/nptl/linux_fsinfo.h 2012-05-15 09:20:09.000000000 +0200
  88207. +++ uClibc-git/libpthread/nptl/linux_fsinfo.h 2014-06-02 17:40:35.034717630 +0200
  88208. @@ -13,9 +13,8 @@
  88209. Lesser General Public License for more details.
  88210. You should have received a copy of the GNU Lesser General Public
  88211. - License along with the GNU C Library; if not, write to the Free
  88212. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88213. - 02111-1307 USA. */
  88214. + License along with the GNU C Library; if not, see
  88215. + <http://www.gnu.org/licenses/>. */
  88216. #ifndef _LINUX_FSINFO_H
  88217. #define _LINUX_FSINFO_H 1
  88218. diff -Nur uClibc-0.9.33.2/libpthread/nptl/Makefile.in uClibc-git/libpthread/nptl/Makefile.in
  88219. --- uClibc-0.9.33.2/libpthread/nptl/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  88220. +++ uClibc-git/libpthread/nptl/Makefile.in 2014-06-02 17:40:35.034717630 +0200
  88221. @@ -145,7 +145,7 @@
  88222. endif
  88223. LDFLAGS-libpthread.so += $(top_builddir)lib/$(UCLIBC_LDSO_NAME)-$(VERSION).so $(top_builddir)lib/libdl-$(VERSION).so \
  88224. - -Wl,-z,nodelete,-z,initfirst,-init=__pthread_initialize_minimal_internal
  88225. + -Wl,-z,nodelete,-z,initfirst,-init=$(SYMBOL_PREFIX)__pthread_initialize_minimal_internal
  88226. LIBS-libpthread.so := $(LIBS)
  88227. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pt-cleanup.c uClibc-git/libpthread/nptl/pt-cleanup.c
  88228. --- uClibc-0.9.33.2/libpthread/nptl/pt-cleanup.c 2012-05-15 09:20:09.000000000 +0200
  88229. +++ uClibc-git/libpthread/nptl/pt-cleanup.c 2014-06-02 17:40:35.034717630 +0200
  88230. @@ -13,9 +13,8 @@
  88231. Lesser General Public License for more details.
  88232. You should have received a copy of the GNU Lesser General Public
  88233. - License along with the GNU C Library; if not, write to the Free
  88234. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88235. - 02111-1307 USA. */
  88236. + License along with the GNU C Library; if not, see
  88237. + <http://www.gnu.org/licenses/>. */
  88238. #include <setjmp.h>
  88239. #include <stdlib.h>
  88240. @@ -23,7 +22,7 @@
  88241. #include <jmpbuf-unwind.h>
  88242. void
  88243. -attribute_protected
  88244. +/*does not apply due to hidden_proto(): attribute_protected*/
  88245. __pthread_cleanup_upto (__jmp_buf target, char *targetframe)
  88246. {
  88247. struct pthread *self = THREAD_SELF;
  88248. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_atfork.c uClibc-git/libpthread/nptl/pthread_atfork.c
  88249. --- uClibc-0.9.33.2/libpthread/nptl/pthread_atfork.c 2012-05-15 09:20:09.000000000 +0200
  88250. +++ uClibc-git/libpthread/nptl/pthread_atfork.c 2014-06-02 17:40:35.034717630 +0200
  88251. @@ -30,9 +30,8 @@
  88252. Lesser General Public License for more details.
  88253. You should have received a copy of the GNU Lesser General Public
  88254. - License along with the GNU C Library; if not, write to the Free
  88255. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88256. - 02111-1307 USA. */
  88257. + License along with the GNU C Library; if not, see
  88258. + <http://www.gnu.org/licenses/>. */
  88259. #include "pthreadP.h"
  88260. #include <fork.h>
  88261. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_destroy.c uClibc-git/libpthread/nptl/pthread_attr_destroy.c
  88262. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_destroy.c 2012-05-15 09:20:09.000000000 +0200
  88263. +++ uClibc-git/libpthread/nptl/pthread_attr_destroy.c 2014-06-02 17:40:35.034717630 +0200
  88264. @@ -13,9 +13,8 @@
  88265. Lesser General Public License for more details.
  88266. You should have received a copy of the GNU Lesser General Public
  88267. - License along with the GNU C Library; if not, write to the Free
  88268. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88269. - 02111-1307 USA. */
  88270. + License along with the GNU C Library; if not, see
  88271. + <http://www.gnu.org/licenses/>. */
  88272. #include <assert.h>
  88273. #include <errno.h>
  88274. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getdetachstate.c uClibc-git/libpthread/nptl/pthread_attr_getdetachstate.c
  88275. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getdetachstate.c 2012-05-15 09:20:09.000000000 +0200
  88276. +++ uClibc-git/libpthread/nptl/pthread_attr_getdetachstate.c 2014-06-02 17:40:35.034717630 +0200
  88277. @@ -13,9 +13,8 @@
  88278. Lesser General Public License for more details.
  88279. You should have received a copy of the GNU Lesser General Public
  88280. - License along with the GNU C Library; if not, write to the Free
  88281. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88282. - 02111-1307 USA. */
  88283. + License along with the GNU C Library; if not, see
  88284. + <http://www.gnu.org/licenses/>. */
  88285. #include <assert.h>
  88286. #include "pthreadP.h"
  88287. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getguardsize.c uClibc-git/libpthread/nptl/pthread_attr_getguardsize.c
  88288. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getguardsize.c 2012-05-15 09:20:09.000000000 +0200
  88289. +++ uClibc-git/libpthread/nptl/pthread_attr_getguardsize.c 2014-06-02 17:40:35.034717630 +0200
  88290. @@ -13,9 +13,8 @@
  88291. Lesser General Public License for more details.
  88292. You should have received a copy of the GNU Lesser General Public
  88293. - License along with the GNU C Library; if not, write to the Free
  88294. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88295. - 02111-1307 USA. */
  88296. + License along with the GNU C Library; if not, see
  88297. + <http://www.gnu.org/licenses/>. */
  88298. #include <assert.h>
  88299. #include "pthreadP.h"
  88300. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getinheritsched.c uClibc-git/libpthread/nptl/pthread_attr_getinheritsched.c
  88301. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getinheritsched.c 2012-05-15 09:20:09.000000000 +0200
  88302. +++ uClibc-git/libpthread/nptl/pthread_attr_getinheritsched.c 2014-06-02 17:40:35.034717630 +0200
  88303. @@ -13,9 +13,8 @@
  88304. Lesser General Public License for more details.
  88305. You should have received a copy of the GNU Lesser General Public
  88306. - License along with the GNU C Library; if not, write to the Free
  88307. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88308. - 02111-1307 USA. */
  88309. + License along with the GNU C Library; if not, see
  88310. + <http://www.gnu.org/licenses/>. */
  88311. #include <assert.h>
  88312. #include "pthreadP.h"
  88313. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getschedparam.c uClibc-git/libpthread/nptl/pthread_attr_getschedparam.c
  88314. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getschedparam.c 2012-05-15 09:20:09.000000000 +0200
  88315. +++ uClibc-git/libpthread/nptl/pthread_attr_getschedparam.c 2014-06-02 17:40:35.034717630 +0200
  88316. @@ -13,9 +13,8 @@
  88317. Lesser General Public License for more details.
  88318. You should have received a copy of the GNU Lesser General Public
  88319. - License along with the GNU C Library; if not, write to the Free
  88320. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88321. - 02111-1307 USA. */
  88322. + License along with the GNU C Library; if not, see
  88323. + <http://www.gnu.org/licenses/>. */
  88324. #include <assert.h>
  88325. #include <string.h>
  88326. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getschedpolicy.c uClibc-git/libpthread/nptl/pthread_attr_getschedpolicy.c
  88327. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getschedpolicy.c 2012-05-15 09:20:09.000000000 +0200
  88328. +++ uClibc-git/libpthread/nptl/pthread_attr_getschedpolicy.c 2014-06-02 17:40:35.034717630 +0200
  88329. @@ -13,9 +13,8 @@
  88330. Lesser General Public License for more details.
  88331. You should have received a copy of the GNU Lesser General Public
  88332. - License along with the GNU C Library; if not, write to the Free
  88333. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88334. - 02111-1307 USA. */
  88335. + License along with the GNU C Library; if not, see
  88336. + <http://www.gnu.org/licenses/>. */
  88337. #include <assert.h>
  88338. #include "pthreadP.h"
  88339. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getscope.c uClibc-git/libpthread/nptl/pthread_attr_getscope.c
  88340. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getscope.c 2012-05-15 09:20:09.000000000 +0200
  88341. +++ uClibc-git/libpthread/nptl/pthread_attr_getscope.c 2014-06-02 17:40:35.034717630 +0200
  88342. @@ -13,9 +13,8 @@
  88343. Lesser General Public License for more details.
  88344. You should have received a copy of the GNU Lesser General Public
  88345. - License along with the GNU C Library; if not, write to the Free
  88346. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88347. - 02111-1307 USA. */
  88348. + License along with the GNU C Library; if not, see
  88349. + <http://www.gnu.org/licenses/>. */
  88350. #include <assert.h>
  88351. #include "pthreadP.h"
  88352. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstackaddr.c uClibc-git/libpthread/nptl/pthread_attr_getstackaddr.c
  88353. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstackaddr.c 2012-05-15 09:20:09.000000000 +0200
  88354. +++ uClibc-git/libpthread/nptl/pthread_attr_getstackaddr.c 2014-06-02 17:40:35.034717630 +0200
  88355. @@ -13,9 +13,8 @@
  88356. Lesser General Public License for more details.
  88357. You should have received a copy of the GNU Lesser General Public
  88358. - License along with the GNU C Library; if not, write to the Free
  88359. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88360. - 02111-1307 USA. */
  88361. + License along with the GNU C Library; if not, see
  88362. + <http://www.gnu.org/licenses/>. */
  88363. #include <assert.h>
  88364. #include <errno.h>
  88365. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstack.c uClibc-git/libpthread/nptl/pthread_attr_getstack.c
  88366. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstack.c 2012-05-15 09:20:09.000000000 +0200
  88367. +++ uClibc-git/libpthread/nptl/pthread_attr_getstack.c 2014-06-02 17:40:35.034717630 +0200
  88368. @@ -13,9 +13,8 @@
  88369. Lesser General Public License for more details.
  88370. You should have received a copy of the GNU Lesser General Public
  88371. - License along with the GNU C Library; if not, write to the Free
  88372. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88373. - 02111-1307 USA. */
  88374. + License along with the GNU C Library; if not, see
  88375. + <http://www.gnu.org/licenses/>. */
  88376. #include <assert.h>
  88377. #include "pthreadP.h"
  88378. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstacksize.c uClibc-git/libpthread/nptl/pthread_attr_getstacksize.c
  88379. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_getstacksize.c 2012-05-15 09:20:09.000000000 +0200
  88380. +++ uClibc-git/libpthread/nptl/pthread_attr_getstacksize.c 2014-06-02 17:40:35.034717630 +0200
  88381. @@ -13,9 +13,8 @@
  88382. Lesser General Public License for more details.
  88383. You should have received a copy of the GNU Lesser General Public
  88384. - License along with the GNU C Library; if not, write to the Free
  88385. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88386. - 02111-1307 USA. */
  88387. + License along with the GNU C Library; if not, see
  88388. + <http://www.gnu.org/licenses/>. */
  88389. #include <assert.h>
  88390. #include "pthreadP.h"
  88391. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_init.c uClibc-git/libpthread/nptl/pthread_attr_init.c
  88392. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_init.c 2012-05-15 09:20:09.000000000 +0200
  88393. +++ uClibc-git/libpthread/nptl/pthread_attr_init.c 2014-06-02 17:40:35.034717630 +0200
  88394. @@ -13,9 +13,8 @@
  88395. Lesser General Public License for more details.
  88396. You should have received a copy of the GNU Lesser General Public
  88397. - License along with the GNU C Library; if not, write to the Free
  88398. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88399. - 02111-1307 USA. */
  88400. + License along with the GNU C Library; if not, see
  88401. + <http://www.gnu.org/licenses/>. */
  88402. #include <assert.h>
  88403. #include <errno.h>
  88404. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setdetachstate.c uClibc-git/libpthread/nptl/pthread_attr_setdetachstate.c
  88405. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setdetachstate.c 2012-05-15 09:20:09.000000000 +0200
  88406. +++ uClibc-git/libpthread/nptl/pthread_attr_setdetachstate.c 2014-06-02 17:40:35.034717630 +0200
  88407. @@ -13,9 +13,8 @@
  88408. Lesser General Public License for more details.
  88409. You should have received a copy of the GNU Lesser General Public
  88410. - License along with the GNU C Library; if not, write to the Free
  88411. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88412. - 02111-1307 USA. */
  88413. + License along with the GNU C Library; if not, see
  88414. + <http://www.gnu.org/licenses/>. */
  88415. #include <assert.h>
  88416. #include <errno.h>
  88417. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setguardsize.c uClibc-git/libpthread/nptl/pthread_attr_setguardsize.c
  88418. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setguardsize.c 2012-05-15 09:20:09.000000000 +0200
  88419. +++ uClibc-git/libpthread/nptl/pthread_attr_setguardsize.c 2014-06-02 17:40:35.034717630 +0200
  88420. @@ -13,9 +13,8 @@
  88421. Lesser General Public License for more details.
  88422. You should have received a copy of the GNU Lesser General Public
  88423. - License along with the GNU C Library; if not, write to the Free
  88424. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88425. - 02111-1307 USA. */
  88426. + License along with the GNU C Library; if not, see
  88427. + <http://www.gnu.org/licenses/>. */
  88428. #include <assert.h>
  88429. #include "pthreadP.h"
  88430. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setinheritsched.c uClibc-git/libpthread/nptl/pthread_attr_setinheritsched.c
  88431. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setinheritsched.c 2012-05-15 09:20:09.000000000 +0200
  88432. +++ uClibc-git/libpthread/nptl/pthread_attr_setinheritsched.c 2014-06-02 17:40:35.034717630 +0200
  88433. @@ -13,9 +13,8 @@
  88434. Lesser General Public License for more details.
  88435. You should have received a copy of the GNU Lesser General Public
  88436. - License along with the GNU C Library; if not, write to the Free
  88437. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88438. - 02111-1307 USA. */
  88439. + License along with the GNU C Library; if not, see
  88440. + <http://www.gnu.org/licenses/>. */
  88441. #include <assert.h>
  88442. #include <errno.h>
  88443. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setschedparam.c uClibc-git/libpthread/nptl/pthread_attr_setschedparam.c
  88444. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setschedparam.c 2012-05-15 09:20:09.000000000 +0200
  88445. +++ uClibc-git/libpthread/nptl/pthread_attr_setschedparam.c 2014-06-02 17:40:35.034717630 +0200
  88446. @@ -13,9 +13,8 @@
  88447. Lesser General Public License for more details.
  88448. You should have received a copy of the GNU Lesser General Public
  88449. - License along with the GNU C Library; if not, write to the Free
  88450. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88451. - 02111-1307 USA. */
  88452. + License along with the GNU C Library; if not, see
  88453. + <http://www.gnu.org/licenses/>. */
  88454. #include <assert.h>
  88455. #include <errno.h>
  88456. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setschedpolicy.c uClibc-git/libpthread/nptl/pthread_attr_setschedpolicy.c
  88457. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setschedpolicy.c 2012-05-15 09:20:09.000000000 +0200
  88458. +++ uClibc-git/libpthread/nptl/pthread_attr_setschedpolicy.c 2014-06-02 17:40:35.034717630 +0200
  88459. @@ -13,9 +13,8 @@
  88460. Lesser General Public License for more details.
  88461. You should have received a copy of the GNU Lesser General Public
  88462. - License along with the GNU C Library; if not, write to the Free
  88463. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88464. - 02111-1307 USA. */
  88465. + License along with the GNU C Library; if not, see
  88466. + <http://www.gnu.org/licenses/>. */
  88467. #include <assert.h>
  88468. #include <errno.h>
  88469. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setscope.c uClibc-git/libpthread/nptl/pthread_attr_setscope.c
  88470. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setscope.c 2012-05-15 09:20:09.000000000 +0200
  88471. +++ uClibc-git/libpthread/nptl/pthread_attr_setscope.c 2014-06-02 17:40:35.034717630 +0200
  88472. @@ -13,9 +13,8 @@
  88473. Lesser General Public License for more details.
  88474. You should have received a copy of the GNU Lesser General Public
  88475. - License along with the GNU C Library; if not, write to the Free
  88476. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88477. - 02111-1307 USA. */
  88478. + License along with the GNU C Library; if not, see
  88479. + <http://www.gnu.org/licenses/>. */
  88480. #include <assert.h>
  88481. #include <errno.h>
  88482. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstackaddr.c uClibc-git/libpthread/nptl/pthread_attr_setstackaddr.c
  88483. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstackaddr.c 2012-05-15 09:20:09.000000000 +0200
  88484. +++ uClibc-git/libpthread/nptl/pthread_attr_setstackaddr.c 2014-06-02 17:40:35.034717630 +0200
  88485. @@ -13,9 +13,8 @@
  88486. Lesser General Public License for more details.
  88487. You should have received a copy of the GNU Lesser General Public
  88488. - License along with the GNU C Library; if not, write to the Free
  88489. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88490. - 02111-1307 USA. */
  88491. + License along with the GNU C Library; if not, see
  88492. + <http://www.gnu.org/licenses/>. */
  88493. #include <assert.h>
  88494. #include <errno.h>
  88495. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstack.c uClibc-git/libpthread/nptl/pthread_attr_setstack.c
  88496. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstack.c 2012-05-15 09:20:09.000000000 +0200
  88497. +++ uClibc-git/libpthread/nptl/pthread_attr_setstack.c 2014-06-02 17:40:35.034717630 +0200
  88498. @@ -13,9 +13,8 @@
  88499. Lesser General Public License for more details.
  88500. You should have received a copy of the GNU Lesser General Public
  88501. - License along with the GNU C Library; if not, write to the Free
  88502. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88503. - 02111-1307 USA. */
  88504. + License along with the GNU C Library; if not, see
  88505. + <http://www.gnu.org/licenses/>. */
  88506. #include <assert.h>
  88507. #include <errno.h>
  88508. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstacksize.c uClibc-git/libpthread/nptl/pthread_attr_setstacksize.c
  88509. --- uClibc-0.9.33.2/libpthread/nptl/pthread_attr_setstacksize.c 2012-05-15 09:20:09.000000000 +0200
  88510. +++ uClibc-git/libpthread/nptl/pthread_attr_setstacksize.c 2014-06-02 17:40:35.034717630 +0200
  88511. @@ -13,9 +13,8 @@
  88512. Lesser General Public License for more details.
  88513. You should have received a copy of the GNU Lesser General Public
  88514. - License along with the GNU C Library; if not, write to the Free
  88515. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88516. - 02111-1307 USA. */
  88517. + License along with the GNU C Library; if not, see
  88518. + <http://www.gnu.org/licenses/>. */
  88519. #include <assert.h>
  88520. #include <errno.h>
  88521. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_destroy.c uClibc-git/libpthread/nptl/pthread_barrierattr_destroy.c
  88522. --- uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_destroy.c 2012-05-15 09:20:09.000000000 +0200
  88523. +++ uClibc-git/libpthread/nptl/pthread_barrierattr_destroy.c 2014-06-02 17:40:35.034717630 +0200
  88524. @@ -13,9 +13,8 @@
  88525. Lesser General Public License for more details.
  88526. You should have received a copy of the GNU Lesser General Public
  88527. - License along with the GNU C Library; if not, write to the Free
  88528. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88529. - 02111-1307 USA. */
  88530. + License along with the GNU C Library; if not, see
  88531. + <http://www.gnu.org/licenses/>. */
  88532. #include "pthreadP.h"
  88533. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_getpshared.c uClibc-git/libpthread/nptl/pthread_barrierattr_getpshared.c
  88534. --- uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_getpshared.c 2012-05-15 09:20:09.000000000 +0200
  88535. +++ uClibc-git/libpthread/nptl/pthread_barrierattr_getpshared.c 2014-06-02 17:40:35.034717630 +0200
  88536. @@ -13,9 +13,8 @@
  88537. Lesser General Public License for more details.
  88538. You should have received a copy of the GNU Lesser General Public
  88539. - License along with the GNU C Library; if not, write to the Free
  88540. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88541. - 02111-1307 USA. */
  88542. + License along with the GNU C Library; if not, see
  88543. + <http://www.gnu.org/licenses/>. */
  88544. #include "pthreadP.h"
  88545. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_init.c uClibc-git/libpthread/nptl/pthread_barrierattr_init.c
  88546. --- uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_init.c 2012-05-15 09:20:09.000000000 +0200
  88547. +++ uClibc-git/libpthread/nptl/pthread_barrierattr_init.c 2014-06-02 17:40:35.034717630 +0200
  88548. @@ -13,9 +13,8 @@
  88549. Lesser General Public License for more details.
  88550. You should have received a copy of the GNU Lesser General Public
  88551. - License along with the GNU C Library; if not, write to the Free
  88552. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88553. - 02111-1307 USA. */
  88554. + License along with the GNU C Library; if not, see
  88555. + <http://www.gnu.org/licenses/>. */
  88556. #include "pthreadP.h"
  88557. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_setpshared.c uClibc-git/libpthread/nptl/pthread_barrierattr_setpshared.c
  88558. --- uClibc-0.9.33.2/libpthread/nptl/pthread_barrierattr_setpshared.c 2012-05-15 09:20:09.000000000 +0200
  88559. +++ uClibc-git/libpthread/nptl/pthread_barrierattr_setpshared.c 2014-06-02 17:40:35.038717652 +0200
  88560. @@ -13,9 +13,8 @@
  88561. Lesser General Public License for more details.
  88562. You should have received a copy of the GNU Lesser General Public
  88563. - License along with the GNU C Library; if not, write to the Free
  88564. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88565. - 02111-1307 USA. */
  88566. + License along with the GNU C Library; if not, see
  88567. + <http://www.gnu.org/licenses/>. */
  88568. #include <errno.h>
  88569. #include "pthreadP.h"
  88570. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_cancel.c uClibc-git/libpthread/nptl/pthread_cancel.c
  88571. --- uClibc-0.9.33.2/libpthread/nptl/pthread_cancel.c 2012-05-15 09:20:09.000000000 +0200
  88572. +++ uClibc-git/libpthread/nptl/pthread_cancel.c 2014-06-02 17:40:35.038717652 +0200
  88573. @@ -13,9 +13,8 @@
  88574. Lesser General Public License for more details.
  88575. You should have received a copy of the GNU Lesser General Public
  88576. - License along with the GNU C Library; if not, write to the Free
  88577. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88578. - 02111-1307 USA. */
  88579. + License along with the GNU C Library; if not, see
  88580. + <http://www.gnu.org/licenses/>. */
  88581. #include <errno.h>
  88582. #include <signal.h>
  88583. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_clock_gettime.c uClibc-git/libpthread/nptl/pthread_clock_gettime.c
  88584. --- uClibc-0.9.33.2/libpthread/nptl/pthread_clock_gettime.c 2012-05-15 09:20:09.000000000 +0200
  88585. +++ uClibc-git/libpthread/nptl/pthread_clock_gettime.c 2014-06-02 17:40:35.038717652 +0200
  88586. @@ -12,14 +12,12 @@
  88587. Lesser General Public License for more details.
  88588. You should have received a copy of the GNU Lesser General Public
  88589. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  88590. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  88591. - Boston, MA 02111-1307, USA. */
  88592. + License along with the GNU C Library; see the file COPYING.LIB. If
  88593. + not, see <http://www.gnu.org/licenses/>. */
  88594. #include <errno.h>
  88595. #include <stdlib.h>
  88596. #include <time.h>
  88597. -#include <libc-internal.h>
  88598. #include "pthreadP.h"
  88599. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_clock_settime.c uClibc-git/libpthread/nptl/pthread_clock_settime.c
  88600. --- uClibc-0.9.33.2/libpthread/nptl/pthread_clock_settime.c 2012-05-15 09:20:09.000000000 +0200
  88601. +++ uClibc-git/libpthread/nptl/pthread_clock_settime.c 2014-06-02 17:40:35.038717652 +0200
  88602. @@ -12,14 +12,12 @@
  88603. Lesser General Public License for more details.
  88604. You should have received a copy of the GNU Lesser General Public
  88605. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  88606. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  88607. - Boston, MA 02111-1307, USA. */
  88608. + License along with the GNU C Library; see the file COPYING.LIB. If
  88609. + not, see <http://www.gnu.org/licenses/>. */
  88610. #include <errno.h>
  88611. #include <stdlib.h>
  88612. #include <time.h>
  88613. -#include <libc-internal.h>
  88614. #include "pthreadP.h"
  88615. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_destroy.c uClibc-git/libpthread/nptl/pthread_condattr_destroy.c
  88616. --- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_destroy.c 2012-05-15 09:20:09.000000000 +0200
  88617. +++ uClibc-git/libpthread/nptl/pthread_condattr_destroy.c 2014-06-02 17:40:35.038717652 +0200
  88618. @@ -13,9 +13,8 @@
  88619. Lesser General Public License for more details.
  88620. You should have received a copy of the GNU Lesser General Public
  88621. - License along with the GNU C Library; if not, write to the Free
  88622. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88623. - 02111-1307 USA. */
  88624. + License along with the GNU C Library; if not, see
  88625. + <http://www.gnu.org/licenses/>. */
  88626. #include "pthreadP.h"
  88627. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_getclock.c uClibc-git/libpthread/nptl/pthread_condattr_getclock.c
  88628. --- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_getclock.c 2012-05-15 09:20:09.000000000 +0200
  88629. +++ uClibc-git/libpthread/nptl/pthread_condattr_getclock.c 2014-06-02 17:40:35.038717652 +0200
  88630. @@ -13,9 +13,8 @@
  88631. Lesser General Public License for more details.
  88632. You should have received a copy of the GNU Lesser General Public
  88633. - License along with the GNU C Library; if not, write to the Free
  88634. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88635. - 02111-1307 USA. */
  88636. + License along with the GNU C Library; if not, see
  88637. + <http://www.gnu.org/licenses/>. */
  88638. #include "pthreadP.h"
  88639. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_getpshared.c uClibc-git/libpthread/nptl/pthread_condattr_getpshared.c
  88640. --- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_getpshared.c 2012-05-15 09:20:09.000000000 +0200
  88641. +++ uClibc-git/libpthread/nptl/pthread_condattr_getpshared.c 2014-06-02 17:40:35.038717652 +0200
  88642. @@ -13,9 +13,8 @@
  88643. Lesser General Public License for more details.
  88644. You should have received a copy of the GNU Lesser General Public
  88645. - License along with the GNU C Library; if not, write to the Free
  88646. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88647. - 02111-1307 USA. */
  88648. + License along with the GNU C Library; if not, see
  88649. + <http://www.gnu.org/licenses/>. */
  88650. #include "pthreadP.h"
  88651. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_init.c uClibc-git/libpthread/nptl/pthread_condattr_init.c
  88652. --- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_init.c 2012-05-15 09:20:09.000000000 +0200
  88653. +++ uClibc-git/libpthread/nptl/pthread_condattr_init.c 2014-06-02 17:40:35.038717652 +0200
  88654. @@ -13,9 +13,8 @@
  88655. Lesser General Public License for more details.
  88656. You should have received a copy of the GNU Lesser General Public
  88657. - License along with the GNU C Library; if not, write to the Free
  88658. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88659. - 02111-1307 USA. */
  88660. + License along with the GNU C Library; if not, see
  88661. + <http://www.gnu.org/licenses/>. */
  88662. #include <string.h>
  88663. #include "pthreadP.h"
  88664. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_setclock.c uClibc-git/libpthread/nptl/pthread_condattr_setclock.c
  88665. --- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_setclock.c 2012-05-15 09:20:09.000000000 +0200
  88666. +++ uClibc-git/libpthread/nptl/pthread_condattr_setclock.c 2014-06-02 17:40:35.038717652 +0200
  88667. @@ -13,9 +13,8 @@
  88668. Lesser General Public License for more details.
  88669. You should have received a copy of the GNU Lesser General Public
  88670. - License along with the GNU C Library; if not, write to the Free
  88671. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88672. - 02111-1307 USA. */
  88673. + License along with the GNU C Library; if not, see
  88674. + <http://www.gnu.org/licenses/>. */
  88675. #include <assert.h>
  88676. #include <errno.h>
  88677. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_setpshared.c uClibc-git/libpthread/nptl/pthread_condattr_setpshared.c
  88678. --- uClibc-0.9.33.2/libpthread/nptl/pthread_condattr_setpshared.c 2012-05-15 09:20:09.000000000 +0200
  88679. +++ uClibc-git/libpthread/nptl/pthread_condattr_setpshared.c 2014-06-02 17:40:35.038717652 +0200
  88680. @@ -13,9 +13,8 @@
  88681. Lesser General Public License for more details.
  88682. You should have received a copy of the GNU Lesser General Public
  88683. - License along with the GNU C Library; if not, write to the Free
  88684. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88685. - 02111-1307 USA. */
  88686. + License along with the GNU C Library; if not, see
  88687. + <http://www.gnu.org/licenses/>. */
  88688. #include <errno.h>
  88689. #include <pthreadP.h>
  88690. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_cond_destroy.c uClibc-git/libpthread/nptl/pthread_cond_destroy.c
  88691. --- uClibc-0.9.33.2/libpthread/nptl/pthread_cond_destroy.c 2012-05-15 09:20:09.000000000 +0200
  88692. +++ uClibc-git/libpthread/nptl/pthread_cond_destroy.c 2014-06-02 17:40:35.038717652 +0200
  88693. @@ -13,9 +13,8 @@
  88694. Lesser General Public License for more details.
  88695. You should have received a copy of the GNU Lesser General Public
  88696. - License along with the GNU C Library; if not, write to the Free
  88697. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88698. - 02111-1307 USA. */
  88699. + License along with the GNU C Library; if not, see
  88700. + <http://www.gnu.org/licenses/>. */
  88701. #include <errno.h>
  88702. #include "pthreadP.h"
  88703. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_cond_init.c uClibc-git/libpthread/nptl/pthread_cond_init.c
  88704. --- uClibc-0.9.33.2/libpthread/nptl/pthread_cond_init.c 2012-05-15 09:20:09.000000000 +0200
  88705. +++ uClibc-git/libpthread/nptl/pthread_cond_init.c 2014-06-02 17:40:35.038717652 +0200
  88706. @@ -14,9 +14,8 @@
  88707. Lesser General Public License for more details.
  88708. You should have received a copy of the GNU Lesser General Public
  88709. - License along with the GNU C Library; if not, write to the Free
  88710. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88711. - 02111-1307 USA. */
  88712. + License along with the GNU C Library; if not, see
  88713. + <http://www.gnu.org/licenses/>. */
  88714. #include "pthreadP.h"
  88715. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_create.c uClibc-git/libpthread/nptl/pthread_create.c
  88716. --- uClibc-0.9.33.2/libpthread/nptl/pthread_create.c 2012-05-15 09:20:09.000000000 +0200
  88717. +++ uClibc-git/libpthread/nptl/pthread_create.c 2014-06-02 17:40:35.038717652 +0200
  88718. @@ -13,9 +13,8 @@
  88719. Lesser General Public License for more details.
  88720. You should have received a copy of the GNU Lesser General Public
  88721. - License along with the GNU C Library; if not, write to the Free
  88722. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88723. - 02111-1307 USA. */
  88724. + License along with the GNU C Library; if not, see
  88725. + <http://www.gnu.org/licenses/>. */
  88726. #include <errno.h>
  88727. #include <stdbool.h>
  88728. @@ -25,7 +24,6 @@
  88729. #include <hp-timing.h>
  88730. #include <ldsodefs.h>
  88731. #include <atomic.h>
  88732. -#include <libc-internal.h>
  88733. #include <resolv.h>
  88734. #include <bits/kernel-features.h>
  88735. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_detach.c uClibc-git/libpthread/nptl/pthread_detach.c
  88736. --- uClibc-0.9.33.2/libpthread/nptl/pthread_detach.c 2012-05-15 09:20:09.000000000 +0200
  88737. +++ uClibc-git/libpthread/nptl/pthread_detach.c 2014-06-02 17:40:35.038717652 +0200
  88738. @@ -13,9 +13,8 @@
  88739. Lesser General Public License for more details.
  88740. You should have received a copy of the GNU Lesser General Public
  88741. - License along with the GNU C Library; if not, write to the Free
  88742. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88743. - 02111-1307 USA. */
  88744. + License along with the GNU C Library; if not, see
  88745. + <http://www.gnu.org/licenses/>. */
  88746. #include <errno.h>
  88747. #include "pthreadP.h"
  88748. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_equal.c uClibc-git/libpthread/nptl/pthread_equal.c
  88749. --- uClibc-0.9.33.2/libpthread/nptl/pthread_equal.c 2012-05-15 09:20:09.000000000 +0200
  88750. +++ uClibc-git/libpthread/nptl/pthread_equal.c 2014-06-02 17:40:35.038717652 +0200
  88751. @@ -13,9 +13,8 @@
  88752. Lesser General Public License for more details.
  88753. You should have received a copy of the GNU Lesser General Public
  88754. - License along with the GNU C Library; if not, write to the Free
  88755. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88756. - 02111-1307 USA. */
  88757. + License along with the GNU C Library; if not, see
  88758. + <http://www.gnu.org/licenses/>. */
  88759. #include "pthreadP.h"
  88760. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_exit.c uClibc-git/libpthread/nptl/pthread_exit.c
  88761. --- uClibc-0.9.33.2/libpthread/nptl/pthread_exit.c 2012-05-15 09:20:09.000000000 +0200
  88762. +++ uClibc-git/libpthread/nptl/pthread_exit.c 2014-06-02 17:40:35.038717652 +0200
  88763. @@ -13,16 +13,15 @@
  88764. Lesser General Public License for more details.
  88765. You should have received a copy of the GNU Lesser General Public
  88766. - License along with the GNU C Library; if not, write to the Free
  88767. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88768. - 02111-1307 USA. */
  88769. + License along with the GNU C Library; if not, see
  88770. + <http://www.gnu.org/licenses/>. */
  88771. #include <stdlib.h>
  88772. #include "pthreadP.h"
  88773. void
  88774. -attribute_protected
  88775. +attribute_protected attribute_noreturn
  88776. __pthread_exit (void* value)
  88777. {
  88778. THREAD_SETMEM (THREAD_SELF, result, value);
  88779. @@ -30,3 +29,9 @@
  88780. __do_cancel ();
  88781. }
  88782. strong_alias (__pthread_exit, pthread_exit)
  88783. +
  88784. +/*
  88785. + * After a thread terminates, __uClibc_main decrements __nptl_nthreads
  88786. + * defined in pthread_create.c.
  88787. + */
  88788. +PTHREAD_STATIC_FN_REQUIRE (pthread_create)
  88789. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_getattr_np.c uClibc-git/libpthread/nptl/pthread_getattr_np.c
  88790. --- uClibc-0.9.33.2/libpthread/nptl/pthread_getattr_np.c 2012-05-15 09:20:09.000000000 +0200
  88791. +++ uClibc-git/libpthread/nptl/pthread_getattr_np.c 2014-06-02 17:40:35.038717652 +0200
  88792. @@ -13,9 +13,8 @@
  88793. Lesser General Public License for more details.
  88794. You should have received a copy of the GNU Lesser General Public
  88795. - License along with the GNU C Library; if not, write to the Free
  88796. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88797. - 02111-1307 USA. */
  88798. + License along with the GNU C Library; if not, see
  88799. + <http://www.gnu.org/licenses/>. */
  88800. #include <assert.h>
  88801. #include <errno.h>
  88802. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_getconcurrency.c uClibc-git/libpthread/nptl/pthread_getconcurrency.c
  88803. --- uClibc-0.9.33.2/libpthread/nptl/pthread_getconcurrency.c 2012-05-15 09:20:09.000000000 +0200
  88804. +++ uClibc-git/libpthread/nptl/pthread_getconcurrency.c 2014-06-02 17:40:35.038717652 +0200
  88805. @@ -13,9 +13,8 @@
  88806. Lesser General Public License for more details.
  88807. You should have received a copy of the GNU Lesser General Public
  88808. - License along with the GNU C Library; if not, write to the Free
  88809. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88810. - 02111-1307 USA. */
  88811. + License along with the GNU C Library; if not, see
  88812. + <http://www.gnu.org/licenses/>. */
  88813. #include "pthreadP.h"
  88814. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_getschedparam.c uClibc-git/libpthread/nptl/pthread_getschedparam.c
  88815. --- uClibc-0.9.33.2/libpthread/nptl/pthread_getschedparam.c 2012-05-15 09:20:09.000000000 +0200
  88816. +++ uClibc-git/libpthread/nptl/pthread_getschedparam.c 2014-06-02 17:40:35.038717652 +0200
  88817. @@ -13,9 +13,8 @@
  88818. Lesser General Public License for more details.
  88819. You should have received a copy of the GNU Lesser General Public
  88820. - License along with the GNU C Library; if not, write to the Free
  88821. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88822. - 02111-1307 USA. */
  88823. + License along with the GNU C Library; if not, see
  88824. + <http://www.gnu.org/licenses/>. */
  88825. #include <errno.h>
  88826. #include <string.h>
  88827. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_getspecific.c uClibc-git/libpthread/nptl/pthread_getspecific.c
  88828. --- uClibc-0.9.33.2/libpthread/nptl/pthread_getspecific.c 2012-05-15 09:20:09.000000000 +0200
  88829. +++ uClibc-git/libpthread/nptl/pthread_getspecific.c 2014-06-02 17:40:35.038717652 +0200
  88830. @@ -13,16 +13,15 @@
  88831. Lesser General Public License for more details.
  88832. You should have received a copy of the GNU Lesser General Public
  88833. - License along with the GNU C Library; if not, write to the Free
  88834. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88835. - 02111-1307 USA. */
  88836. + License along with the GNU C Library; if not, see
  88837. + <http://www.gnu.org/licenses/>. */
  88838. #include <stdlib.h>
  88839. #include "pthreadP.h"
  88840. -void *
  88841. attribute_protected
  88842. +void *
  88843. __pthread_getspecific (pthread_key_t key)
  88844. {
  88845. struct pthread_key_data *data;
  88846. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_join.c uClibc-git/libpthread/nptl/pthread_join.c
  88847. --- uClibc-0.9.33.2/libpthread/nptl/pthread_join.c 2012-05-15 09:20:09.000000000 +0200
  88848. +++ uClibc-git/libpthread/nptl/pthread_join.c 2014-06-02 17:40:35.038717652 +0200
  88849. @@ -13,9 +13,8 @@
  88850. Lesser General Public License for more details.
  88851. You should have received a copy of the GNU Lesser General Public
  88852. - License along with the GNU C Library; if not, write to the Free
  88853. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88854. - 02111-1307 USA. */
  88855. + License along with the GNU C Library; if not, see
  88856. + <http://www.gnu.org/licenses/>. */
  88857. #include <errno.h>
  88858. #include <stdlib.h>
  88859. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_key_create.c uClibc-git/libpthread/nptl/pthread_key_create.c
  88860. --- uClibc-0.9.33.2/libpthread/nptl/pthread_key_create.c 2012-05-15 09:20:09.000000000 +0200
  88861. +++ uClibc-git/libpthread/nptl/pthread_key_create.c 2014-06-02 17:40:35.038717652 +0200
  88862. @@ -13,9 +13,8 @@
  88863. Lesser General Public License for more details.
  88864. You should have received a copy of the GNU Lesser General Public
  88865. - License along with the GNU C Library; if not, write to the Free
  88866. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88867. - 02111-1307 USA. */
  88868. + License along with the GNU C Library; if not, see
  88869. + <http://www.gnu.org/licenses/>. */
  88870. #include <errno.h>
  88871. #include "pthreadP.h"
  88872. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_key_delete.c uClibc-git/libpthread/nptl/pthread_key_delete.c
  88873. --- uClibc-0.9.33.2/libpthread/nptl/pthread_key_delete.c 2012-05-15 09:20:09.000000000 +0200
  88874. +++ uClibc-git/libpthread/nptl/pthread_key_delete.c 2014-06-02 17:40:35.038717652 +0200
  88875. @@ -13,9 +13,8 @@
  88876. Lesser General Public License for more details.
  88877. You should have received a copy of the GNU Lesser General Public
  88878. - License along with the GNU C Library; if not, write to the Free
  88879. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88880. - 02111-1307 USA. */
  88881. + License along with the GNU C Library; if not, see
  88882. + <http://www.gnu.org/licenses/>. */
  88883. #include <errno.h>
  88884. #include "pthreadP.h"
  88885. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_kill_other_threads.c uClibc-git/libpthread/nptl/pthread_kill_other_threads.c
  88886. --- uClibc-0.9.33.2/libpthread/nptl/pthread_kill_other_threads.c 2012-05-15 09:20:09.000000000 +0200
  88887. +++ uClibc-git/libpthread/nptl/pthread_kill_other_threads.c 2014-06-02 17:40:35.038717652 +0200
  88888. @@ -13,11 +13,10 @@
  88889. Lesser General Public License for more details.
  88890. You should have received a copy of the GNU Lesser General Public
  88891. - License along with the GNU C Library; if not, write to the Free
  88892. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88893. - 02111-1307 USA. */
  88894. + License along with the GNU C Library; if not, see
  88895. + <http://www.gnu.org/licenses/>. */
  88896. -#ifdef SHARED
  88897. +#if 0 /*def SHARED*/
  88898. /* This function does not serve a useful purpose in the thread library
  88899. implementation anymore. It used to be necessary when then kernel
  88900. could not shut down "processes" but this is not the case anymore.
  88901. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_destroy.c uClibc-git/libpthread/nptl/pthread_mutexattr_destroy.c
  88902. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_destroy.c 2012-05-15 09:20:09.000000000 +0200
  88903. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_destroy.c 2014-06-02 17:40:35.038717652 +0200
  88904. @@ -13,9 +13,8 @@
  88905. Lesser General Public License for more details.
  88906. You should have received a copy of the GNU Lesser General Public
  88907. - License along with the GNU C Library; if not, write to the Free
  88908. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88909. - 02111-1307 USA. */
  88910. + License along with the GNU C Library; if not, see
  88911. + <http://www.gnu.org/licenses/>. */
  88912. #include <pthreadP.h>
  88913. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getprioceiling.c uClibc-git/libpthread/nptl/pthread_mutexattr_getprioceiling.c
  88914. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getprioceiling.c 2012-05-15 09:20:09.000000000 +0200
  88915. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_getprioceiling.c 2014-06-02 17:40:35.038717652 +0200
  88916. @@ -14,9 +14,8 @@
  88917. Lesser General Public License for more details.
  88918. You should have received a copy of the GNU Lesser General Public
  88919. - License along with the GNU C Library; if not, write to the Free
  88920. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88921. - 02111-1307 USA. */
  88922. + License along with the GNU C Library; if not, see
  88923. + <http://www.gnu.org/licenses/>. */
  88924. #include <pthreadP.h>
  88925. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getprotocol.c uClibc-git/libpthread/nptl/pthread_mutexattr_getprotocol.c
  88926. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getprotocol.c 2012-05-15 09:20:09.000000000 +0200
  88927. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_getprotocol.c 2014-06-02 17:40:35.038717652 +0200
  88928. @@ -14,9 +14,8 @@
  88929. Lesser General Public License for more details.
  88930. You should have received a copy of the GNU Lesser General Public
  88931. - License along with the GNU C Library; if not, write to the Free
  88932. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88933. - 02111-1307 USA. */
  88934. + License along with the GNU C Library; if not, see
  88935. + <http://www.gnu.org/licenses/>. */
  88936. #include <pthreadP.h>
  88937. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getpshared.c uClibc-git/libpthread/nptl/pthread_mutexattr_getpshared.c
  88938. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getpshared.c 2012-05-15 09:20:09.000000000 +0200
  88939. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_getpshared.c 2014-06-02 17:40:35.038717652 +0200
  88940. @@ -13,9 +13,8 @@
  88941. Lesser General Public License for more details.
  88942. You should have received a copy of the GNU Lesser General Public
  88943. - License along with the GNU C Library; if not, write to the Free
  88944. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88945. - 02111-1307 USA. */
  88946. + License along with the GNU C Library; if not, see
  88947. + <http://www.gnu.org/licenses/>. */
  88948. #include <pthreadP.h>
  88949. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getrobust.c uClibc-git/libpthread/nptl/pthread_mutexattr_getrobust.c
  88950. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_getrobust.c 2012-05-15 09:20:09.000000000 +0200
  88951. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_getrobust.c 2014-06-02 17:40:35.038717652 +0200
  88952. @@ -13,9 +13,8 @@
  88953. Lesser General Public License for more details.
  88954. You should have received a copy of the GNU Lesser General Public
  88955. - License along with the GNU C Library; if not, write to the Free
  88956. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88957. - 02111-1307 USA. */
  88958. + License along with the GNU C Library; if not, see
  88959. + <http://www.gnu.org/licenses/>. */
  88960. #include <pthreadP.h>
  88961. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_gettype.c uClibc-git/libpthread/nptl/pthread_mutexattr_gettype.c
  88962. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_gettype.c 2012-05-15 09:20:09.000000000 +0200
  88963. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_gettype.c 2014-06-02 17:40:35.038717652 +0200
  88964. @@ -13,9 +13,8 @@
  88965. Lesser General Public License for more details.
  88966. You should have received a copy of the GNU Lesser General Public
  88967. - License along with the GNU C Library; if not, write to the Free
  88968. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88969. - 02111-1307 USA. */
  88970. + License along with the GNU C Library; if not, see
  88971. + <http://www.gnu.org/licenses/>. */
  88972. #include <pthreadP.h>
  88973. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_init.c uClibc-git/libpthread/nptl/pthread_mutexattr_init.c
  88974. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_init.c 2012-05-15 09:20:09.000000000 +0200
  88975. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_init.c 2014-06-02 17:40:35.038717652 +0200
  88976. @@ -13,9 +13,8 @@
  88977. Lesser General Public License for more details.
  88978. You should have received a copy of the GNU Lesser General Public
  88979. - License along with the GNU C Library; if not, write to the Free
  88980. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88981. - 02111-1307 USA. */
  88982. + License along with the GNU C Library; if not, see
  88983. + <http://www.gnu.org/licenses/>. */
  88984. #include <string.h>
  88985. #include <pthreadP.h>
  88986. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setprioceiling.c uClibc-git/libpthread/nptl/pthread_mutexattr_setprioceiling.c
  88987. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setprioceiling.c 2012-05-15 09:20:09.000000000 +0200
  88988. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_setprioceiling.c 2014-06-02 17:40:35.038717652 +0200
  88989. @@ -14,9 +14,8 @@
  88990. Lesser General Public License for more details.
  88991. You should have received a copy of the GNU Lesser General Public
  88992. - License along with the GNU C Library; if not, write to the Free
  88993. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  88994. - 02111-1307 USA. */
  88995. + License along with the GNU C Library; if not, see
  88996. + <http://www.gnu.org/licenses/>. */
  88997. #include <errno.h>
  88998. #include <pthreadP.h>
  88999. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setprotocol.c uClibc-git/libpthread/nptl/pthread_mutexattr_setprotocol.c
  89000. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setprotocol.c 2012-05-15 09:20:09.000000000 +0200
  89001. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_setprotocol.c 2014-06-02 17:40:35.038717652 +0200
  89002. @@ -14,9 +14,8 @@
  89003. Lesser General Public License for more details.
  89004. You should have received a copy of the GNU Lesser General Public
  89005. - License along with the GNU C Library; if not, write to the Free
  89006. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89007. - 02111-1307 USA. */
  89008. + License along with the GNU C Library; if not, see
  89009. + <http://www.gnu.org/licenses/>. */
  89010. #include <errno.h>
  89011. #include <pthreadP.h>
  89012. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setpshared.c uClibc-git/libpthread/nptl/pthread_mutexattr_setpshared.c
  89013. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setpshared.c 2012-05-15 09:20:09.000000000 +0200
  89014. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_setpshared.c 2014-06-02 17:40:35.038717652 +0200
  89015. @@ -13,9 +13,8 @@
  89016. Lesser General Public License for more details.
  89017. You should have received a copy of the GNU Lesser General Public
  89018. - License along with the GNU C Library; if not, write to the Free
  89019. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89020. - 02111-1307 USA. */
  89021. + License along with the GNU C Library; if not, see
  89022. + <http://www.gnu.org/licenses/>. */
  89023. #include <errno.h>
  89024. #include <pthreadP.h>
  89025. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setrobust.c uClibc-git/libpthread/nptl/pthread_mutexattr_setrobust.c
  89026. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_setrobust.c 2012-05-15 09:20:09.000000000 +0200
  89027. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_setrobust.c 2014-06-02 17:40:35.038717652 +0200
  89028. @@ -13,9 +13,8 @@
  89029. Lesser General Public License for more details.
  89030. You should have received a copy of the GNU Lesser General Public
  89031. - License along with the GNU C Library; if not, write to the Free
  89032. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89033. - 02111-1307 USA. */
  89034. + License along with the GNU C Library; if not, see
  89035. + <http://www.gnu.org/licenses/>. */
  89036. #include <errno.h>
  89037. #include <pthreadP.h>
  89038. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_settype.c uClibc-git/libpthread/nptl/pthread_mutexattr_settype.c
  89039. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutexattr_settype.c 2012-05-15 09:20:09.000000000 +0200
  89040. +++ uClibc-git/libpthread/nptl/pthread_mutexattr_settype.c 2014-06-02 17:40:35.038717652 +0200
  89041. @@ -13,9 +13,8 @@
  89042. Lesser General Public License for more details.
  89043. You should have received a copy of the GNU Lesser General Public
  89044. - License along with the GNU C Library; if not, write to the Free
  89045. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89046. - 02111-1307 USA. */
  89047. + License along with the GNU C Library; if not, see
  89048. + <http://www.gnu.org/licenses/>. */
  89049. #include <errno.h>
  89050. #include <pthreadP.h>
  89051. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_consistent.c uClibc-git/libpthread/nptl/pthread_mutex_consistent.c
  89052. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_consistent.c 2012-05-15 09:20:09.000000000 +0200
  89053. +++ uClibc-git/libpthread/nptl/pthread_mutex_consistent.c 2014-06-02 17:40:35.038717652 +0200
  89054. @@ -13,9 +13,8 @@
  89055. Lesser General Public License for more details.
  89056. You should have received a copy of the GNU Lesser General Public
  89057. - License along with the GNU C Library; if not, write to the Free
  89058. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89059. - 02111-1307 USA. */
  89060. + License along with the GNU C Library; if not, see
  89061. + <http://www.gnu.org/licenses/>. */
  89062. #include <errno.h>
  89063. #include <pthreadP.h>
  89064. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_destroy.c uClibc-git/libpthread/nptl/pthread_mutex_destroy.c
  89065. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_destroy.c 2012-05-15 09:20:09.000000000 +0200
  89066. +++ uClibc-git/libpthread/nptl/pthread_mutex_destroy.c 2014-06-02 17:40:35.038717652 +0200
  89067. @@ -13,9 +13,8 @@
  89068. Lesser General Public License for more details.
  89069. You should have received a copy of the GNU Lesser General Public
  89070. - License along with the GNU C Library; if not, write to the Free
  89071. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89072. - 02111-1307 USA. */
  89073. + License along with the GNU C Library; if not, see
  89074. + <http://www.gnu.org/licenses/>. */
  89075. #include <errno.h>
  89076. #include "pthreadP.h"
  89077. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_getprioceiling.c uClibc-git/libpthread/nptl/pthread_mutex_getprioceiling.c
  89078. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_getprioceiling.c 2012-05-15 09:20:09.000000000 +0200
  89079. +++ uClibc-git/libpthread/nptl/pthread_mutex_getprioceiling.c 2014-06-02 17:40:35.038717652 +0200
  89080. @@ -14,9 +14,8 @@
  89081. Lesser General Public License for more details.
  89082. You should have received a copy of the GNU Lesser General Public
  89083. - License along with the GNU C Library; if not, write to the Free
  89084. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89085. - 02111-1307 USA. */
  89086. + License along with the GNU C Library; if not, see
  89087. + <http://www.gnu.org/licenses/>. */
  89088. #include <errno.h>
  89089. #include <pthreadP.h>
  89090. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_init.c uClibc-git/libpthread/nptl/pthread_mutex_init.c
  89091. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_init.c 2012-05-15 09:20:09.000000000 +0200
  89092. +++ uClibc-git/libpthread/nptl/pthread_mutex_init.c 2014-06-02 17:40:35.038717652 +0200
  89093. @@ -14,9 +14,8 @@
  89094. Lesser General Public License for more details.
  89095. You should have received a copy of the GNU Lesser General Public
  89096. - License along with the GNU C Library; if not, write to the Free
  89097. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89098. - 02111-1307 USA. */
  89099. + License along with the GNU C Library; if not, see
  89100. + <http://www.gnu.org/licenses/>. */
  89101. #include <assert.h>
  89102. #include <errno.h>
  89103. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_lock.c uClibc-git/libpthread/nptl/pthread_mutex_lock.c
  89104. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_lock.c 2012-05-15 09:20:09.000000000 +0200
  89105. +++ uClibc-git/libpthread/nptl/pthread_mutex_lock.c 2014-06-02 17:40:35.038717652 +0200
  89106. @@ -13,9 +13,8 @@
  89107. Lesser General Public License for more details.
  89108. You should have received a copy of the GNU Lesser General Public
  89109. - License along with the GNU C Library; if not, write to the Free
  89110. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89111. - 02111-1307 USA. */
  89112. + License along with the GNU C Library; if not, see
  89113. + <http://www.gnu.org/licenses/>. */
  89114. #include <assert.h>
  89115. #include <errno.h>
  89116. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_setprioceiling.c uClibc-git/libpthread/nptl/pthread_mutex_setprioceiling.c
  89117. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_setprioceiling.c 2012-05-15 09:20:09.000000000 +0200
  89118. +++ uClibc-git/libpthread/nptl/pthread_mutex_setprioceiling.c 2014-06-02 17:40:35.038717652 +0200
  89119. @@ -14,9 +14,8 @@
  89120. Lesser General Public License for more details.
  89121. You should have received a copy of the GNU Lesser General Public
  89122. - License along with the GNU C Library; if not, write to the Free
  89123. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89124. - 02111-1307 USA. */
  89125. + License along with the GNU C Library; if not, see
  89126. + <http://www.gnu.org/licenses/>. */
  89127. #include <stdbool.h>
  89128. #include <errno.h>
  89129. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_timedlock.c uClibc-git/libpthread/nptl/pthread_mutex_timedlock.c
  89130. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_timedlock.c 2012-05-15 09:20:09.000000000 +0200
  89131. +++ uClibc-git/libpthread/nptl/pthread_mutex_timedlock.c 2014-06-02 17:40:35.038717652 +0200
  89132. @@ -13,9 +13,8 @@
  89133. Lesser General Public License for more details.
  89134. You should have received a copy of the GNU Lesser General Public
  89135. - License along with the GNU C Library; if not, write to the Free
  89136. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89137. - 02111-1307 USA. */
  89138. + License along with the GNU C Library; if not, see
  89139. + <http://www.gnu.org/licenses/>. */
  89140. #include <assert.h>
  89141. #include <errno.h>
  89142. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_trylock.c uClibc-git/libpthread/nptl/pthread_mutex_trylock.c
  89143. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_trylock.c 2012-05-15 09:20:09.000000000 +0200
  89144. +++ uClibc-git/libpthread/nptl/pthread_mutex_trylock.c 2014-06-02 17:40:35.038717652 +0200
  89145. @@ -13,9 +13,8 @@
  89146. Lesser General Public License for more details.
  89147. You should have received a copy of the GNU Lesser General Public
  89148. - License along with the GNU C Library; if not, write to the Free
  89149. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89150. - 02111-1307 USA. */
  89151. + License along with the GNU C Library; if not, see
  89152. + <http://www.gnu.org/licenses/>. */
  89153. #include <assert.h>
  89154. #include <errno.h>
  89155. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_unlock.c uClibc-git/libpthread/nptl/pthread_mutex_unlock.c
  89156. --- uClibc-0.9.33.2/libpthread/nptl/pthread_mutex_unlock.c 2012-05-15 09:20:09.000000000 +0200
  89157. +++ uClibc-git/libpthread/nptl/pthread_mutex_unlock.c 2014-06-02 17:40:35.038717652 +0200
  89158. @@ -13,9 +13,8 @@
  89159. Lesser General Public License for more details.
  89160. You should have received a copy of the GNU Lesser General Public
  89161. - License along with the GNU C Library; if not, write to the Free
  89162. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89163. - 02111-1307 USA. */
  89164. + License along with the GNU C Library; if not, see
  89165. + <http://www.gnu.org/licenses/>. */
  89166. #include <assert.h>
  89167. #include <errno.h>
  89168. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthreadP.h uClibc-git/libpthread/nptl/pthreadP.h
  89169. --- uClibc-0.9.33.2/libpthread/nptl/pthreadP.h 2012-05-15 09:20:09.000000000 +0200
  89170. +++ uClibc-git/libpthread/nptl/pthreadP.h 2014-06-02 17:40:35.034717630 +0200
  89171. @@ -13,9 +13,8 @@
  89172. Lesser General Public License for more details.
  89173. You should have received a copy of the GNU Lesser General Public
  89174. - License along with the GNU C Library; if not, write to the Free
  89175. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89176. - 02111-1307 USA. */
  89177. + License along with the GNU C Library; if not, see
  89178. + <http://www.gnu.org/licenses/>. */
  89179. #ifndef _PTHREADP_H
  89180. #define _PTHREADP_H 1
  89181. @@ -221,7 +220,7 @@
  89182. /* Cancellation test. */
  89183. #define CANCELLATION_P(self) \
  89184. do { \
  89185. - int cancelhandling = THREAD_GETMEM (self, cancelhandling); \
  89186. + cancelhandling = THREAD_GETMEM (self, cancelhandling); \
  89187. if (CANCEL_ENABLED_AND_CANCELED (cancelhandling)) \
  89188. { \
  89189. THREAD_SETMEM (self, result, PTHREAD_CANCELED); \
  89190. @@ -411,9 +410,9 @@
  89191. const struct sched_param *param);
  89192. extern int __pthread_setcancelstate (int state, int *oldstate);
  89193. extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
  89194. - __const pthread_mutexattr_t *__mutexattr);
  89195. + const pthread_mutexattr_t *__mutexattr);
  89196. extern int __pthread_mutex_init_internal (pthread_mutex_t *__mutex,
  89197. - __const pthread_mutexattr_t *__mutexattr)
  89198. + const pthread_mutexattr_t *__mutexattr)
  89199. attribute_hidden;
  89200. extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
  89201. extern int __pthread_mutex_destroy_internal (pthread_mutex_t *__mutex)
  89202. @@ -452,22 +451,22 @@
  89203. extern int __pthread_attr_setschedpolicy (pthread_attr_t *attr, int policy);
  89204. extern int __pthread_attr_getscope (const pthread_attr_t *attr, int *scope);
  89205. extern int __pthread_attr_setscope (pthread_attr_t *attr, int scope);
  89206. -extern int __pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
  89207. +extern int __pthread_attr_getstackaddr (const pthread_attr_t *__restrict
  89208. __attr, void **__restrict __stackaddr);
  89209. extern int __pthread_attr_setstackaddr (pthread_attr_t *__attr,
  89210. void *__stackaddr);
  89211. -extern int __pthread_attr_getstacksize (__const pthread_attr_t *__restrict
  89212. +extern int __pthread_attr_getstacksize (const pthread_attr_t *__restrict
  89213. __attr,
  89214. size_t *__restrict __stacksize);
  89215. extern int __pthread_attr_setstacksize (pthread_attr_t *__attr,
  89216. size_t __stacksize);
  89217. -extern int __pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
  89218. +extern int __pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
  89219. void **__restrict __stackaddr,
  89220. size_t *__restrict __stacksize);
  89221. extern int __pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
  89222. size_t __stacksize);
  89223. extern int __pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
  89224. - __const pthread_rwlockattr_t *__restrict
  89225. + const pthread_rwlockattr_t *__restrict
  89226. __attr);
  89227. extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
  89228. extern int __pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock);
  89229. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_destroy.c uClibc-git/libpthread/nptl/pthread_rwlockattr_destroy.c
  89230. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_destroy.c 2012-05-15 09:20:09.000000000 +0200
  89231. +++ uClibc-git/libpthread/nptl/pthread_rwlockattr_destroy.c 2014-06-02 17:40:35.038717652 +0200
  89232. @@ -13,9 +13,8 @@
  89233. Lesser General Public License for more details.
  89234. You should have received a copy of the GNU Lesser General Public
  89235. - License along with the GNU C Library; if not, write to the Free
  89236. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89237. - 02111-1307 USA. */
  89238. + License along with the GNU C Library; if not, see
  89239. + <http://www.gnu.org/licenses/>. */
  89240. #include "pthreadP.h"
  89241. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_getkind_np.c uClibc-git/libpthread/nptl/pthread_rwlockattr_getkind_np.c
  89242. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_getkind_np.c 2012-05-15 09:20:09.000000000 +0200
  89243. +++ uClibc-git/libpthread/nptl/pthread_rwlockattr_getkind_np.c 2014-06-02 17:40:35.038717652 +0200
  89244. @@ -13,9 +13,8 @@
  89245. Lesser General Public License for more details.
  89246. You should have received a copy of the GNU Lesser General Public
  89247. - License along with the GNU C Library; if not, write to the Free
  89248. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89249. - 02111-1307 USA. */
  89250. + License along with the GNU C Library; if not, see
  89251. + <http://www.gnu.org/licenses/>. */
  89252. #include "pthreadP.h"
  89253. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_getpshared.c uClibc-git/libpthread/nptl/pthread_rwlockattr_getpshared.c
  89254. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_getpshared.c 2012-05-15 09:20:09.000000000 +0200
  89255. +++ uClibc-git/libpthread/nptl/pthread_rwlockattr_getpshared.c 2014-06-02 17:40:35.038717652 +0200
  89256. @@ -13,9 +13,8 @@
  89257. Lesser General Public License for more details.
  89258. You should have received a copy of the GNU Lesser General Public
  89259. - License along with the GNU C Library; if not, write to the Free
  89260. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89261. - 02111-1307 USA. */
  89262. + License along with the GNU C Library; if not, see
  89263. + <http://www.gnu.org/licenses/>. */
  89264. #include "pthreadP.h"
  89265. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_init.c uClibc-git/libpthread/nptl/pthread_rwlockattr_init.c
  89266. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_init.c 2012-05-15 09:20:09.000000000 +0200
  89267. +++ uClibc-git/libpthread/nptl/pthread_rwlockattr_init.c 2014-06-02 17:40:35.038717652 +0200
  89268. @@ -13,9 +13,8 @@
  89269. Lesser General Public License for more details.
  89270. You should have received a copy of the GNU Lesser General Public
  89271. - License along with the GNU C Library; if not, write to the Free
  89272. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89273. - 02111-1307 USA. */
  89274. + License along with the GNU C Library; if not, see
  89275. + <http://www.gnu.org/licenses/>. */
  89276. #include "pthreadP.h"
  89277. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_setkind_np.c uClibc-git/libpthread/nptl/pthread_rwlockattr_setkind_np.c
  89278. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_setkind_np.c 2012-05-15 09:20:09.000000000 +0200
  89279. +++ uClibc-git/libpthread/nptl/pthread_rwlockattr_setkind_np.c 2014-06-02 17:40:35.038717652 +0200
  89280. @@ -13,9 +13,8 @@
  89281. Lesser General Public License for more details.
  89282. You should have received a copy of the GNU Lesser General Public
  89283. - License along with the GNU C Library; if not, write to the Free
  89284. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89285. - 02111-1307 USA. */
  89286. + License along with the GNU C Library; if not, see
  89287. + <http://www.gnu.org/licenses/>. */
  89288. #include <errno.h>
  89289. #include "pthreadP.h"
  89290. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_setpshared.c uClibc-git/libpthread/nptl/pthread_rwlockattr_setpshared.c
  89291. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlockattr_setpshared.c 2012-05-15 09:20:09.000000000 +0200
  89292. +++ uClibc-git/libpthread/nptl/pthread_rwlockattr_setpshared.c 2014-06-02 17:40:35.038717652 +0200
  89293. @@ -13,9 +13,8 @@
  89294. Lesser General Public License for more details.
  89295. You should have received a copy of the GNU Lesser General Public
  89296. - License along with the GNU C Library; if not, write to the Free
  89297. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89298. - 02111-1307 USA. */
  89299. + License along with the GNU C Library; if not, see
  89300. + <http://www.gnu.org/licenses/>. */
  89301. #include <errno.h>
  89302. #include "pthreadP.h"
  89303. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_destroy.c uClibc-git/libpthread/nptl/pthread_rwlock_destroy.c
  89304. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_destroy.c 2012-05-15 09:20:09.000000000 +0200
  89305. +++ uClibc-git/libpthread/nptl/pthread_rwlock_destroy.c 2014-06-02 17:40:35.038717652 +0200
  89306. @@ -13,9 +13,8 @@
  89307. Lesser General Public License for more details.
  89308. You should have received a copy of the GNU Lesser General Public
  89309. - License along with the GNU C Library; if not, write to the Free
  89310. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89311. - 02111-1307 USA. */
  89312. + License along with the GNU C Library; if not, see
  89313. + <http://www.gnu.org/licenses/>. */
  89314. #include "pthreadP.h"
  89315. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_init.c uClibc-git/libpthread/nptl/pthread_rwlock_init.c
  89316. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_init.c 2012-05-15 09:20:09.000000000 +0200
  89317. +++ uClibc-git/libpthread/nptl/pthread_rwlock_init.c 2014-06-02 17:40:35.038717652 +0200
  89318. @@ -13,9 +13,8 @@
  89319. Lesser General Public License for more details.
  89320. You should have received a copy of the GNU Lesser General Public
  89321. - License along with the GNU C Library; if not, write to the Free
  89322. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89323. - 02111-1307 USA. */
  89324. + License along with the GNU C Library; if not, see
  89325. + <http://www.gnu.org/licenses/>. */
  89326. #include "pthreadP.h"
  89327. #include <bits/kernel-features.h>
  89328. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_tryrdlock.c uClibc-git/libpthread/nptl/pthread_rwlock_tryrdlock.c
  89329. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_tryrdlock.c 2012-05-15 09:20:09.000000000 +0200
  89330. +++ uClibc-git/libpthread/nptl/pthread_rwlock_tryrdlock.c 2014-06-02 17:40:35.038717652 +0200
  89331. @@ -13,9 +13,8 @@
  89332. Lesser General Public License for more details.
  89333. You should have received a copy of the GNU Lesser General Public
  89334. - License along with the GNU C Library; if not, write to the Free
  89335. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89336. - 02111-1307 USA. */
  89337. + License along with the GNU C Library; if not, see
  89338. + <http://www.gnu.org/licenses/>. */
  89339. #include <errno.h>
  89340. #include "pthreadP.h"
  89341. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_trywrlock.c uClibc-git/libpthread/nptl/pthread_rwlock_trywrlock.c
  89342. --- uClibc-0.9.33.2/libpthread/nptl/pthread_rwlock_trywrlock.c 2012-05-15 09:20:09.000000000 +0200
  89343. +++ uClibc-git/libpthread/nptl/pthread_rwlock_trywrlock.c 2014-06-02 17:40:35.038717652 +0200
  89344. @@ -13,9 +13,8 @@
  89345. Lesser General Public License for more details.
  89346. You should have received a copy of the GNU Lesser General Public
  89347. - License along with the GNU C Library; if not, write to the Free
  89348. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89349. - 02111-1307 USA. */
  89350. + License along with the GNU C Library; if not, see
  89351. + <http://www.gnu.org/licenses/>. */
  89352. #include <errno.h>
  89353. #include "pthreadP.h"
  89354. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_self.c uClibc-git/libpthread/nptl/pthread_self.c
  89355. --- uClibc-0.9.33.2/libpthread/nptl/pthread_self.c 2012-05-15 09:20:09.000000000 +0200
  89356. +++ uClibc-git/libpthread/nptl/pthread_self.c 2014-06-02 17:40:35.038717652 +0200
  89357. @@ -13,9 +13,8 @@
  89358. Lesser General Public License for more details.
  89359. You should have received a copy of the GNU Lesser General Public
  89360. - License along with the GNU C Library; if not, write to the Free
  89361. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89362. - 02111-1307 USA. */
  89363. + License along with the GNU C Library; if not, see
  89364. + <http://www.gnu.org/licenses/>. */
  89365. #include "pthreadP.h"
  89366. #include <tls.h>
  89367. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setcancelstate.c uClibc-git/libpthread/nptl/pthread_setcancelstate.c
  89368. --- uClibc-0.9.33.2/libpthread/nptl/pthread_setcancelstate.c 2012-05-15 09:20:09.000000000 +0200
  89369. +++ uClibc-git/libpthread/nptl/pthread_setcancelstate.c 2014-06-02 17:40:35.038717652 +0200
  89370. @@ -13,9 +13,8 @@
  89371. Lesser General Public License for more details.
  89372. You should have received a copy of the GNU Lesser General Public
  89373. - License along with the GNU C Library; if not, write to the Free
  89374. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89375. - 02111-1307 USA. */
  89376. + License along with the GNU C Library; if not, see
  89377. + <http://www.gnu.org/licenses/>. */
  89378. #include <errno.h>
  89379. #include "pthreadP.h"
  89380. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setcanceltype.c uClibc-git/libpthread/nptl/pthread_setcanceltype.c
  89381. --- uClibc-0.9.33.2/libpthread/nptl/pthread_setcanceltype.c 2012-05-15 09:20:09.000000000 +0200
  89382. +++ uClibc-git/libpthread/nptl/pthread_setcanceltype.c 2014-06-02 17:40:35.038717652 +0200
  89383. @@ -13,9 +13,8 @@
  89384. Lesser General Public License for more details.
  89385. You should have received a copy of the GNU Lesser General Public
  89386. - License along with the GNU C Library; if not, write to the Free
  89387. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89388. - 02111-1307 USA. */
  89389. + License along with the GNU C Library; if not, see
  89390. + <http://www.gnu.org/licenses/>. */
  89391. #include <errno.h>
  89392. #include "pthreadP.h"
  89393. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setconcurrency.c uClibc-git/libpthread/nptl/pthread_setconcurrency.c
  89394. --- uClibc-0.9.33.2/libpthread/nptl/pthread_setconcurrency.c 2012-05-15 09:20:09.000000000 +0200
  89395. +++ uClibc-git/libpthread/nptl/pthread_setconcurrency.c 2014-06-02 17:40:35.038717652 +0200
  89396. @@ -13,9 +13,8 @@
  89397. Lesser General Public License for more details.
  89398. You should have received a copy of the GNU Lesser General Public
  89399. - License along with the GNU C Library; if not, write to the Free
  89400. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89401. - 02111-1307 USA. */
  89402. + License along with the GNU C Library; if not, see
  89403. + <http://www.gnu.org/licenses/>. */
  89404. #include <errno.h>
  89405. #include "pthreadP.h"
  89406. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setschedparam.c uClibc-git/libpthread/nptl/pthread_setschedparam.c
  89407. --- uClibc-0.9.33.2/libpthread/nptl/pthread_setschedparam.c 2012-05-15 09:20:09.000000000 +0200
  89408. +++ uClibc-git/libpthread/nptl/pthread_setschedparam.c 2014-06-02 17:40:35.042717675 +0200
  89409. @@ -13,9 +13,8 @@
  89410. Lesser General Public License for more details.
  89411. You should have received a copy of the GNU Lesser General Public
  89412. - License along with the GNU C Library; if not, write to the Free
  89413. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89414. - 02111-1307 USA. */
  89415. + License along with the GNU C Library; if not, see
  89416. + <http://www.gnu.org/licenses/>. */
  89417. #include <errno.h>
  89418. #include <sched.h>
  89419. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setschedprio.c uClibc-git/libpthread/nptl/pthread_setschedprio.c
  89420. --- uClibc-0.9.33.2/libpthread/nptl/pthread_setschedprio.c 2012-05-15 09:20:09.000000000 +0200
  89421. +++ uClibc-git/libpthread/nptl/pthread_setschedprio.c 2014-06-02 17:40:35.042717675 +0200
  89422. @@ -13,9 +13,8 @@
  89423. Lesser General Public License for more details.
  89424. You should have received a copy of the GNU Lesser General Public
  89425. - License along with the GNU C Library; if not, write to the Free
  89426. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89427. - 02111-1307 USA. */
  89428. + License along with the GNU C Library; if not, see
  89429. + <http://www.gnu.org/licenses/>. */
  89430. #include <errno.h>
  89431. #include <sched.h>
  89432. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_setspecific.c uClibc-git/libpthread/nptl/pthread_setspecific.c
  89433. --- uClibc-0.9.33.2/libpthread/nptl/pthread_setspecific.c 2012-05-15 09:20:09.000000000 +0200
  89434. +++ uClibc-git/libpthread/nptl/pthread_setspecific.c 2014-06-02 17:40:35.042717675 +0200
  89435. @@ -13,9 +13,8 @@
  89436. Lesser General Public License for more details.
  89437. You should have received a copy of the GNU Lesser General Public
  89438. - License along with the GNU C Library; if not, write to the Free
  89439. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89440. - 02111-1307 USA. */
  89441. + License along with the GNU C Library; if not, see
  89442. + <http://www.gnu.org/licenses/>. */
  89443. #include <errno.h>
  89444. #include <stdlib.h>
  89445. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_testcancel.c uClibc-git/libpthread/nptl/pthread_testcancel.c
  89446. --- uClibc-0.9.33.2/libpthread/nptl/pthread_testcancel.c 2012-05-15 09:20:09.000000000 +0200
  89447. +++ uClibc-git/libpthread/nptl/pthread_testcancel.c 2014-06-02 17:40:35.042717675 +0200
  89448. @@ -13,9 +13,8 @@
  89449. Lesser General Public License for more details.
  89450. You should have received a copy of the GNU Lesser General Public
  89451. - License along with the GNU C Library; if not, write to the Free
  89452. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89453. - 02111-1307 USA. */
  89454. + License along with the GNU C Library; if not, see
  89455. + <http://www.gnu.org/licenses/>. */
  89456. #include <stdlib.h>
  89457. #include "pthreadP.h"
  89458. @@ -24,5 +23,6 @@
  89459. void
  89460. pthread_testcancel (void)
  89461. {
  89462. + int cancelhandling;
  89463. CANCELLATION_P (THREAD_SELF);
  89464. }
  89465. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_timedjoin.c uClibc-git/libpthread/nptl/pthread_timedjoin.c
  89466. --- uClibc-0.9.33.2/libpthread/nptl/pthread_timedjoin.c 2012-05-15 09:20:09.000000000 +0200
  89467. +++ uClibc-git/libpthread/nptl/pthread_timedjoin.c 2014-06-02 17:40:35.042717675 +0200
  89468. @@ -13,9 +13,8 @@
  89469. Lesser General Public License for more details.
  89470. You should have received a copy of the GNU Lesser General Public
  89471. - License along with the GNU C Library; if not, write to the Free
  89472. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89473. - 02111-1307 USA. */
  89474. + License along with the GNU C Library; if not, see
  89475. + <http://www.gnu.org/licenses/>. */
  89476. #include <errno.h>
  89477. #include <stdlib.h>
  89478. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pthread_tryjoin.c uClibc-git/libpthread/nptl/pthread_tryjoin.c
  89479. --- uClibc-0.9.33.2/libpthread/nptl/pthread_tryjoin.c 2012-05-15 09:20:09.000000000 +0200
  89480. +++ uClibc-git/libpthread/nptl/pthread_tryjoin.c 2014-06-02 17:40:35.042717675 +0200
  89481. @@ -13,9 +13,8 @@
  89482. Lesser General Public License for more details.
  89483. You should have received a copy of the GNU Lesser General Public
  89484. - License along with the GNU C Library; if not, write to the Free
  89485. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89486. - 02111-1307 USA. */
  89487. + License along with the GNU C Library; if not, see
  89488. + <http://www.gnu.org/licenses/>. */
  89489. #include <errno.h>
  89490. #include <stdlib.h>
  89491. diff -Nur uClibc-0.9.33.2/libpthread/nptl/pt-system.c uClibc-git/libpthread/nptl/pt-system.c
  89492. --- uClibc-0.9.33.2/libpthread/nptl/pt-system.c 2012-05-15 09:20:09.000000000 +0200
  89493. +++ uClibc-git/libpthread/nptl/pt-system.c 2014-06-02 17:40:35.034717630 +0200
  89494. @@ -13,9 +13,8 @@
  89495. Lesser General Public License for more details.
  89496. You should have received a copy of the GNU Lesser General Public
  89497. - License along with the GNU C Library; if not, write to the Free
  89498. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89499. - 02111-1307 USA. */
  89500. + License along with the GNU C Library; if not, see
  89501. + <http://www.gnu.org/licenses/>. */
  89502. #include <errno.h>
  89503. #include <stdlib.h>
  89504. diff -Nur uClibc-0.9.33.2/libpthread/nptl/res.c uClibc-git/libpthread/nptl/res.c
  89505. --- uClibc-0.9.33.2/libpthread/nptl/res.c 2012-05-15 09:20:09.000000000 +0200
  89506. +++ uClibc-git/libpthread/nptl/res.c 2014-06-02 17:40:35.042717675 +0200
  89507. @@ -12,9 +12,8 @@
  89508. Lesser General Public License for more details.
  89509. You should have received a copy of the GNU Lesser General Public
  89510. - License along with the GNU C Library; if not, write to the Free
  89511. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89512. - 02111-1307 USA. */
  89513. + License along with the GNU C Library; if not, see
  89514. + <http://www.gnu.org/licenses/>. */
  89515. #include <features.h>
  89516. #include <tls.h>
  89517. diff -Nur uClibc-0.9.33.2/libpthread/nptl/semaphore.h uClibc-git/libpthread/nptl/semaphore.h
  89518. --- uClibc-0.9.33.2/libpthread/nptl/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  89519. +++ uClibc-git/libpthread/nptl/semaphore.h 2014-06-02 17:40:35.042717675 +0200
  89520. @@ -12,9 +12,8 @@
  89521. Lesser General Public License for more details.
  89522. You should have received a copy of the GNU Lesser General Public
  89523. - License along with the GNU C Library; if not, write to the Free
  89524. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89525. - 02111-1307 USA. */
  89526. + License along with the GNU C Library; if not, see
  89527. + <http://www.gnu.org/licenses/>. */
  89528. #ifndef _SEMAPHORE_H
  89529. #define _SEMAPHORE_H 1
  89530. @@ -40,13 +39,13 @@
  89531. extern int sem_destroy (sem_t *__sem) __THROW;
  89532. /* Open a named semaphore NAME with open flags OFLAG. */
  89533. -extern sem_t *sem_open (__const char *__name, int __oflag, ...) __THROW;
  89534. +extern sem_t *sem_open (const char *__name, int __oflag, ...) __THROW;
  89535. /* Close descriptor for named semaphore SEM. */
  89536. extern int sem_close (sem_t *__sem) __THROW;
  89537. /* Remove named semaphore NAME. */
  89538. -extern int sem_unlink (__const char *__name) __THROW;
  89539. +extern int sem_unlink (const char *__name) __THROW;
  89540. /* Wait for SEM being posted.
  89541. @@ -60,7 +59,7 @@
  89542. This function is a cancellation point and therefore not marked with
  89543. __THROW. */
  89544. extern int sem_timedwait (sem_t *__restrict __sem,
  89545. - __const struct timespec *__restrict __abstime);
  89546. + const struct timespec *__restrict __abstime);
  89547. #endif
  89548. /* Test whether SEM is posted. */
  89549. diff -Nur uClibc-0.9.33.2/libpthread/nptl/semaphoreP.h uClibc-git/libpthread/nptl/semaphoreP.h
  89550. --- uClibc-0.9.33.2/libpthread/nptl/semaphoreP.h 2012-05-15 09:20:09.000000000 +0200
  89551. +++ uClibc-git/libpthread/nptl/semaphoreP.h 2014-06-02 17:40:35.042717675 +0200
  89552. @@ -13,9 +13,8 @@
  89553. Lesser General Public License for more details.
  89554. You should have received a copy of the GNU Lesser General Public
  89555. - License along with the GNU C Library; if not, write to the Free
  89556. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89557. - 02111-1307 USA. */
  89558. + License along with the GNU C Library; if not, see
  89559. + <http://www.gnu.org/licenses/>. */
  89560. #include <semaphore.h>
  89561. #include "pthreadP.h"
  89562. @@ -56,14 +55,3 @@
  89563. /* Comparison function for search in tree with existing mappings. */
  89564. extern int __sem_search (const void *a, const void *b) attribute_hidden;
  89565. -
  89566. -
  89567. -/* Prototypes of functions with multiple interfaces. */
  89568. -extern int __new_sem_init (sem_t *sem, int pshared, unsigned int value);
  89569. -extern int __old_sem_init (sem_t *sem, int pshared, unsigned int value);
  89570. -extern int __new_sem_destroy (sem_t *sem);
  89571. -extern int __new_sem_post (sem_t *sem);
  89572. -extern int __new_sem_wait (sem_t *sem);
  89573. -extern int __old_sem_wait (sem_t *sem);
  89574. -extern int __new_sem_trywait (sem_t *sem);
  89575. -extern int __new_sem_getvalue (sem_t *sem, int *sval);
  89576. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_close.c uClibc-git/libpthread/nptl/sem_close.c
  89577. --- uClibc-0.9.33.2/libpthread/nptl/sem_close.c 2012-05-15 09:20:09.000000000 +0200
  89578. +++ uClibc-git/libpthread/nptl/sem_close.c 2014-06-02 17:40:35.042717675 +0200
  89579. @@ -13,9 +13,8 @@
  89580. Lesser General Public License for more details.
  89581. You should have received a copy of the GNU Lesser General Public
  89582. - License along with the GNU C Library; if not, write to the Free
  89583. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89584. - 02111-1307 USA. */
  89585. + License along with the GNU C Library; if not, see
  89586. + <http://www.gnu.org/licenses/>. */
  89587. #include <errno.h>
  89588. #include <search.h>
  89589. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_destroy.c uClibc-git/libpthread/nptl/sem_destroy.c
  89590. --- uClibc-0.9.33.2/libpthread/nptl/sem_destroy.c 2012-05-15 09:20:09.000000000 +0200
  89591. +++ uClibc-git/libpthread/nptl/sem_destroy.c 2014-06-02 17:40:35.042717675 +0200
  89592. @@ -13,16 +13,15 @@
  89593. Lesser General Public License for more details.
  89594. You should have received a copy of the GNU Lesser General Public
  89595. - License along with the GNU C Library; if not, write to the Free
  89596. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89597. - 02111-1307 USA. */
  89598. + License along with the GNU C Library; if not, see
  89599. + <http://www.gnu.org/licenses/>. */
  89600. #include <semaphore.h>
  89601. #include "semaphoreP.h"
  89602. int
  89603. -__new_sem_destroy (
  89604. +sem_destroy (
  89605. sem_t *sem)
  89606. {
  89607. /* XXX Check for valid parameter. */
  89608. @@ -30,4 +29,3 @@
  89609. /* Nothing to do. */
  89610. return 0;
  89611. }
  89612. -weak_alias(__new_sem_destroy, sem_destroy)
  89613. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_getvalue.c uClibc-git/libpthread/nptl/sem_getvalue.c
  89614. --- uClibc-0.9.33.2/libpthread/nptl/sem_getvalue.c 2012-05-15 09:20:09.000000000 +0200
  89615. +++ uClibc-git/libpthread/nptl/sem_getvalue.c 2014-06-02 17:40:35.042717675 +0200
  89616. @@ -13,16 +13,15 @@
  89617. Lesser General Public License for more details.
  89618. You should have received a copy of the GNU Lesser General Public
  89619. - License along with the GNU C Library; if not, write to the Free
  89620. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89621. - 02111-1307 USA. */
  89622. + License along with the GNU C Library; if not, see
  89623. + <http://www.gnu.org/licenses/>. */
  89624. #include <semaphore.h>
  89625. #include "semaphoreP.h"
  89626. int
  89627. -__new_sem_getvalue (
  89628. +sem_getvalue (
  89629. sem_t *sem,
  89630. int *sval)
  89631. {
  89632. @@ -34,4 +33,3 @@
  89633. return 0;
  89634. }
  89635. -weak_alias(__new_sem_getvalue, sem_getvalue)
  89636. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_init.c uClibc-git/libpthread/nptl/sem_init.c
  89637. --- uClibc-0.9.33.2/libpthread/nptl/sem_init.c 2012-05-15 09:20:09.000000000 +0200
  89638. +++ uClibc-git/libpthread/nptl/sem_init.c 2014-06-02 17:40:35.042717675 +0200
  89639. @@ -13,9 +13,8 @@
  89640. Lesser General Public License for more details.
  89641. You should have received a copy of the GNU Lesser General Public
  89642. - License along with the GNU C Library; if not, write to the Free
  89643. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89644. - 02111-1307 USA. */
  89645. + License along with the GNU C Library; if not, see
  89646. + <http://www.gnu.org/licenses/>. */
  89647. #include <errno.h>
  89648. #include <semaphore.h>
  89649. @@ -25,7 +24,7 @@
  89650. int
  89651. -__new_sem_init (
  89652. +sem_init (
  89653. sem_t *sem,
  89654. int pshared,
  89655. unsigned int value)
  89656. @@ -53,4 +52,3 @@
  89657. return 0;
  89658. }
  89659. -weak_alias(__new_sem_init, sem_init)
  89660. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_open.c uClibc-git/libpthread/nptl/sem_open.c
  89661. --- uClibc-0.9.33.2/libpthread/nptl/sem_open.c 2012-05-15 09:20:09.000000000 +0200
  89662. +++ uClibc-git/libpthread/nptl/sem_open.c 2014-06-02 17:40:35.042717675 +0200
  89663. @@ -13,9 +13,8 @@
  89664. Lesser General Public License for more details.
  89665. You should have received a copy of the GNU Lesser General Public
  89666. - License along with the GNU C Library; if not, write to the Free
  89667. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89668. - 02111-1307 USA. */
  89669. + License along with the GNU C Library; if not, see
  89670. + <http://www.gnu.org/licenses/>. */
  89671. #include <errno.h>
  89672. #include <fcntl.h>
  89673. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sem_unlink.c uClibc-git/libpthread/nptl/sem_unlink.c
  89674. --- uClibc-0.9.33.2/libpthread/nptl/sem_unlink.c 2012-05-15 09:20:09.000000000 +0200
  89675. +++ uClibc-git/libpthread/nptl/sem_unlink.c 2014-06-02 17:40:35.042717675 +0200
  89676. @@ -13,9 +13,8 @@
  89677. Lesser General Public License for more details.
  89678. You should have received a copy of the GNU Lesser General Public
  89679. - License along with the GNU C Library; if not, write to the Free
  89680. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89681. - 02111-1307 USA. */
  89682. + License along with the GNU C Library; if not, see
  89683. + <http://www.gnu.org/licenses/>. */
  89684. #include <errno.h>
  89685. #include <semaphore.h>
  89686. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/alpha/dl-tls.h
  89687. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
  89688. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/dl-tls.h 2014-06-02 17:40:35.042717675 +0200
  89689. @@ -13,9 +13,8 @@
  89690. Lesser General Public License for more details.
  89691. You should have received a copy of the GNU Lesser General Public
  89692. - License along with the GNU C Library; if not, write to the Free
  89693. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89694. - 02111-1307 USA. */
  89695. + License along with the GNU C Library; if not, see
  89696. + <http://www.gnu.org/licenses/>. */
  89697. /* Type used for the representation of TLS information in the GOT. */
  89698. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/elf/pt-initfini.c uClibc-git/libpthread/nptl/sysdeps/alpha/elf/pt-initfini.c
  89699. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/elf/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  89700. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/elf/pt-initfini.c 2014-06-02 17:40:35.042717675 +0200
  89701. @@ -13,9 +13,8 @@
  89702. Lesser General Public License for more details.
  89703. You should have received a copy of the GNU Lesser General Public
  89704. - License along with the GNU C Library; if not, write to the Free
  89705. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89706. - 02111-1307 USA. */
  89707. + License along with the GNU C Library; if not, see
  89708. + <http://www.gnu.org/licenses/>. */
  89709. /* This file is compiled into assembly code which is then munged by a sed
  89710. script into two files: crti.s and crtn.s.
  89711. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/alpha/jmpbuf-unwind.h
  89712. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  89713. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/jmpbuf-unwind.h 2014-06-02 17:40:35.042717675 +0200
  89714. @@ -13,9 +13,8 @@
  89715. Lesser General Public License for more details.
  89716. You should have received a copy of the GNU Lesser General Public
  89717. - License along with the GNU C Library; if not, write to the Free
  89718. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89719. - 02111-1307 USA. */
  89720. + License along with the GNU C Library; if not, see
  89721. + <http://www.gnu.org/licenses/>. */
  89722. #include <setjmp.h>
  89723. #include <stdint.h>
  89724. @@ -26,6 +25,3 @@
  89725. #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  89726. ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
  89727. -
  89728. -/* We use the normal lobngjmp for unwinding. */
  89729. -#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
  89730. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/libc-tls.c uClibc-git/libpthread/nptl/sysdeps/alpha/libc-tls.c
  89731. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/libc-tls.c 2012-05-15 09:20:09.000000000 +0200
  89732. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/libc-tls.c 2014-06-02 17:40:35.062717785 +0200
  89733. @@ -13,9 +13,8 @@
  89734. Lesser General Public License for more details.
  89735. You should have received a copy of the GNU Lesser General Public
  89736. - License along with the GNU C Library; if not, write to the Free
  89737. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89738. - 02111-1307 USA. */
  89739. + License along with the GNU C Library; if not, see
  89740. + <http://www.gnu.org/licenses/>. */
  89741. #include <sysdeps/generic/libc-tls.c>
  89742. #include <dl-tls.h>
  89743. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/Makefile uClibc-git/libpthread/nptl/sysdeps/alpha/Makefile
  89744. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/Makefile 2012-05-15 09:20:09.000000000 +0200
  89745. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/Makefile 2014-06-02 17:40:35.042717675 +0200
  89746. @@ -12,9 +12,8 @@
  89747. # Lesser General Public License for more details.
  89748. #
  89749. # You should have received a copy of the GNU Lesser General Public
  89750. -# License along with the GNU C Library; if not, write to the Free
  89751. -# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89752. -# 02111-1307 USA.
  89753. +# License along with the GNU C Library; see the file COPYING.LIB. If
  89754. +# not, see <http://www.gnu.org/licenses/>.
  89755. ifeq ($(subdir),csu)
  89756. gen-as-const-headers += tcb-offsets.sym
  89757. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/alpha/pthreaddef.h
  89758. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  89759. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/pthreaddef.h 2014-06-02 17:40:35.062717785 +0200
  89760. @@ -12,9 +12,8 @@
  89761. Lesser General Public License for more details.
  89762. You should have received a copy of the GNU Lesser General Public
  89763. - License along with the GNU C Library; if not, write to the Free
  89764. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89765. - 02111-1307 USA. */
  89766. + License along with the GNU C Library; if not, see
  89767. + <http://www.gnu.org/licenses/>. */
  89768. /* Default stack size. */
  89769. #define ARCH_STACK_DEFAULT_SIZE (4 * 1024 * 1024)
  89770. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/pthread_spin_lock.S uClibc-git/libpthread/nptl/sysdeps/alpha/pthread_spin_lock.S
  89771. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/pthread_spin_lock.S 2012-05-15 09:20:09.000000000 +0200
  89772. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/pthread_spin_lock.S 2014-06-02 17:40:35.062717785 +0200
  89773. @@ -13,9 +13,8 @@
  89774. Lesser General Public License for more details.
  89775. You should have received a copy of the GNU Lesser General Public
  89776. - License along with the GNU C Library; if not, write to the Free
  89777. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89778. - 02111-1307 USA. */
  89779. + License along with the GNU C Library; if not, see
  89780. + <http://www.gnu.org/licenses/>. */
  89781. .text
  89782. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/alpha/pthread_spin_trylock.S
  89783. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
  89784. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/pthread_spin_trylock.S 2014-06-02 17:40:35.062717785 +0200
  89785. @@ -13,9 +13,8 @@
  89786. Lesser General Public License for more details.
  89787. You should have received a copy of the GNU Lesser General Public
  89788. - License along with the GNU C Library; if not, write to the Free
  89789. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89790. - 02111-1307 USA. */
  89791. + License along with the GNU C Library; if not, see
  89792. + <http://www.gnu.org/licenses/>. */
  89793. #define _ERRNO_H 1
  89794. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/tls.h uClibc-git/libpthread/nptl/sysdeps/alpha/tls.h
  89795. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/alpha/tls.h 2012-05-15 09:20:09.000000000 +0200
  89796. +++ uClibc-git/libpthread/nptl/sysdeps/alpha/tls.h 2014-06-02 17:40:35.062717785 +0200
  89797. @@ -13,9 +13,8 @@
  89798. Lesser General Public License for more details.
  89799. You should have received a copy of the GNU Lesser General Public
  89800. - License along with the GNU C Library; if not, write to the Free
  89801. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89802. - 02111-1307 USA. */
  89803. + License along with the GNU C Library; if not, see
  89804. + <http://www.gnu.org/licenses/>. */
  89805. #ifndef _TLS_H
  89806. #define _TLS_H 1
  89807. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/arm/dl-tls.h
  89808. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
  89809. +++ uClibc-git/libpthread/nptl/sysdeps/arm/dl-tls.h 2014-06-02 17:40:35.062717785 +0200
  89810. @@ -13,9 +13,8 @@
  89811. Lesser General Public License for more details.
  89812. You should have received a copy of the GNU Lesser General Public
  89813. - License along with the GNU C Library; if not, write to the Free
  89814. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89815. - 02111-1307 USA. */
  89816. + License along with the GNU C Library; if not, see
  89817. + <http://www.gnu.org/licenses/>. */
  89818. /* Type used for the representation of TLS information in the GOT. */
  89819. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/arm/jmpbuf-unwind.h
  89820. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  89821. +++ uClibc-git/libpthread/nptl/sysdeps/arm/jmpbuf-unwind.h 2014-06-02 17:40:35.062717785 +0200
  89822. @@ -12,9 +12,8 @@
  89823. Lesser General Public License for more details.
  89824. You should have received a copy of the GNU Lesser General Public
  89825. - License along with the GNU C Library; if not, write to the Free
  89826. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89827. - 02111-1307 USA. */
  89828. + License along with the GNU C Library; if not, see
  89829. + <http://www.gnu.org/licenses/>. */
  89830. #include <setjmp.h>
  89831. #include <stdint.h>
  89832. @@ -31,6 +30,3 @@
  89833. #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  89834. ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[__JMP_BUF_SP] - (_adj))
  89835. -
  89836. -/* We use the normal longjmp for unwinding. */
  89837. -#define __libc_unwind_longjmp(buf, val) longjmp (buf, val)
  89838. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/libc-tls.c uClibc-git/libpthread/nptl/sysdeps/arm/libc-tls.c
  89839. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/libc-tls.c 2012-05-15 09:20:09.000000000 +0200
  89840. +++ uClibc-git/libpthread/nptl/sysdeps/arm/libc-tls.c 2014-06-02 17:40:35.062717785 +0200
  89841. @@ -13,9 +13,8 @@
  89842. Lesser General Public License for more details.
  89843. You should have received a copy of the GNU Lesser General Public
  89844. - License along with the GNU C Library; if not, write to the Free
  89845. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89846. - 02111-1307 USA. */
  89847. + License along with the GNU C Library; if not, see
  89848. + <http://www.gnu.org/licenses/>. */
  89849. #include <sysdeps/generic/libc-tls.c>
  89850. #include <dl-tls.h>
  89851. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/arm/pthreaddef.h
  89852. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  89853. +++ uClibc-git/libpthread/nptl/sysdeps/arm/pthreaddef.h 2014-06-02 17:40:35.062717785 +0200
  89854. @@ -12,9 +12,8 @@
  89855. Lesser General Public License for more details.
  89856. You should have received a copy of the GNU Lesser General Public
  89857. - License along with the GNU C Library; if not, write to the Free
  89858. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89859. - 02111-1307 USA. */
  89860. + License along with the GNU C Library; if not, see
  89861. + <http://www.gnu.org/licenses/>. */
  89862. /* Default stack size. */
  89863. #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
  89864. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/pthread_spin_lock.S uClibc-git/libpthread/nptl/sysdeps/arm/pthread_spin_lock.S
  89865. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/pthread_spin_lock.S 2012-05-15 09:20:09.000000000 +0200
  89866. +++ uClibc-git/libpthread/nptl/sysdeps/arm/pthread_spin_lock.S 2014-06-02 17:40:35.062717785 +0200
  89867. @@ -12,9 +12,8 @@
  89868. Lesser General Public License for more details.
  89869. You should have received a copy of the GNU Lesser General Public
  89870. - License along with the GNU C Library; if not, write to the Free
  89871. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89872. - 02111-1307 USA. */
  89873. + License along with the GNU C Library; if not, see
  89874. + <http://www.gnu.org/licenses/>. */
  89875. #include <sysdep.h>
  89876. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/arm/pthread_spin_trylock.S
  89877. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
  89878. +++ uClibc-git/libpthread/nptl/sysdeps/arm/pthread_spin_trylock.S 2014-06-02 17:40:35.062717785 +0200
  89879. @@ -12,9 +12,8 @@
  89880. Lesser General Public License for more details.
  89881. You should have received a copy of the GNU Lesser General Public
  89882. - License along with the GNU C Library; if not, write to the Free
  89883. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89884. - 02111-1307 USA. */
  89885. + License along with the GNU C Library; if not, see
  89886. + <http://www.gnu.org/licenses/>. */
  89887. #define _ERRNO_H 1
  89888. #include <bits/errno.h>
  89889. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/tls.h uClibc-git/libpthread/nptl/sysdeps/arm/tls.h
  89890. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/arm/tls.h 2012-05-15 09:20:09.000000000 +0200
  89891. +++ uClibc-git/libpthread/nptl/sysdeps/arm/tls.h 2014-06-02 17:40:35.062717785 +0200
  89892. @@ -13,9 +13,8 @@
  89893. Lesser General Public License for more details.
  89894. You should have received a copy of the GNU Lesser General Public
  89895. - License along with the GNU C Library; if not, write to the Free
  89896. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89897. - 02111-1307 USA. */
  89898. + License along with the GNU C Library; if not, see
  89899. + <http://www.gnu.org/licenses/>. */
  89900. #ifndef _TLS_H
  89901. #define _TLS_H 1
  89902. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/dl-tls.c uClibc-git/libpthread/nptl/sysdeps/generic/dl-tls.c
  89903. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/dl-tls.c 2012-05-15 09:20:09.000000000 +0200
  89904. +++ uClibc-git/libpthread/nptl/sysdeps/generic/dl-tls.c 2014-06-02 17:40:35.062717785 +0200
  89905. @@ -13,9 +13,8 @@
  89906. Lesser General Public License for more details.
  89907. You should have received a copy of the GNU Lesser General Public
  89908. - License along with the GNU C Library; if not, write to the Free
  89909. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89910. - 02111-1307 USA. */
  89911. + License along with the GNU C Library; if not, see
  89912. + <http://www.gnu.org/licenses/>. */
  89913. #if defined SHARED || defined NOT_IN_libc
  89914. # error in buildsystem: This file is for libc.a
  89915. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/libc-tls.c uClibc-git/libpthread/nptl/sysdeps/generic/libc-tls.c
  89916. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/libc-tls.c 2012-05-15 09:20:09.000000000 +0200
  89917. +++ uClibc-git/libpthread/nptl/sysdeps/generic/libc-tls.c 2014-06-02 17:40:35.062717785 +0200
  89918. @@ -13,9 +13,8 @@
  89919. Lesser General Public License for more details.
  89920. You should have received a copy of the GNU Lesser General Public
  89921. - License along with the GNU C Library; if not, write to the Free
  89922. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89923. - 02111-1307 USA. */
  89924. + License along with the GNU C Library; if not, see
  89925. + <http://www.gnu.org/licenses/>. */
  89926. #include <errno.h>
  89927. #include <ldsodefs.h>
  89928. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/generic/lowlevellock.h
  89929. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/generic/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  89930. +++ uClibc-git/libpthread/nptl/sysdeps/generic/lowlevellock.h 2014-06-02 17:40:35.062717785 +0200
  89931. @@ -14,9 +14,8 @@
  89932. Lesser General Public License for more details.
  89933. You should have received a copy of the GNU Lesser General Public
  89934. - License along with the GNU C Library; if not, write to the Free
  89935. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89936. - 02111-1307 USA. */
  89937. + License along with the GNU C Library; if not, see
  89938. + <http://www.gnu.org/licenses/>. */
  89939. #include <atomic.h>
  89940. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/i386/dl-tls.h
  89941. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
  89942. +++ uClibc-git/libpthread/nptl/sysdeps/i386/dl-tls.h 2014-06-02 17:40:35.062717785 +0200
  89943. @@ -13,9 +13,8 @@
  89944. Lesser General Public License for more details.
  89945. You should have received a copy of the GNU Lesser General Public
  89946. - License along with the GNU C Library; if not, write to the Free
  89947. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89948. - 02111-1307 USA. */
  89949. + License along with the GNU C Library; if not, see
  89950. + <http://www.gnu.org/licenses/>. */
  89951. /* Type used for the representation of TLS information in the GOT. */
  89952. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i486/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/i386/i486/pthread_spin_trylock.S
  89953. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i486/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
  89954. +++ uClibc-git/libpthread/nptl/sysdeps/i386/i486/pthread_spin_trylock.S 2014-06-02 17:40:35.062717785 +0200
  89955. @@ -13,9 +13,8 @@
  89956. Lesser General Public License for more details.
  89957. You should have received a copy of the GNU Lesser General Public
  89958. - License along with the GNU C Library; if not, write to the Free
  89959. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89960. - 02111-1307 USA. */
  89961. + License along with the GNU C Library; if not, see
  89962. + <http://www.gnu.org/licenses/>. */
  89963. #include <pthread-errnos.h>
  89964. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i586/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/i386/i586/pthread_spin_trylock.S
  89965. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i586/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
  89966. +++ uClibc-git/libpthread/nptl/sysdeps/i386/i586/pthread_spin_trylock.S 2014-06-02 17:40:35.062717785 +0200
  89967. @@ -13,8 +13,7 @@
  89968. Lesser General Public License for more details.
  89969. You should have received a copy of the GNU Lesser General Public
  89970. - License along with the GNU C Library; if not, write to the Free
  89971. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89972. - 02111-1307 USA. */
  89973. + License along with the GNU C Library; if not, see
  89974. + <http://www.gnu.org/licenses/>. */
  89975. #include "../i486/pthread_spin_trylock.S"
  89976. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i686/Makefile uClibc-git/libpthread/nptl/sysdeps/i386/i686/Makefile
  89977. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i686/Makefile 2012-05-15 09:20:09.000000000 +0200
  89978. +++ uClibc-git/libpthread/nptl/sysdeps/i386/i686/Makefile 2014-06-02 17:40:35.062717785 +0200
  89979. @@ -13,9 +13,8 @@
  89980. # Lesser General Public License for more details.
  89981. # You should have received a copy of the GNU Lesser General Public
  89982. -# License along with the GNU C Library; if not, write to the Free
  89983. -# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89984. -# 02111-1307 USA.
  89985. +# License along with the GNU C Library; see the file COPYING.LIB. If
  89986. +# not, see <http://www.gnu.org/licenses/>.
  89987. ifeq ($(subdir),nptl)
  89988. # It turns out that stack coloring is in general not good on P4s. Some
  89989. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i686/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/i386/i686/pthread_spin_trylock.S
  89990. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i686/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
  89991. +++ uClibc-git/libpthread/nptl/sysdeps/i386/i686/pthread_spin_trylock.S 2014-06-02 17:40:35.062717785 +0200
  89992. @@ -13,9 +13,8 @@
  89993. Lesser General Public License for more details.
  89994. You should have received a copy of the GNU Lesser General Public
  89995. - License along with the GNU C Library; if not, write to the Free
  89996. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  89997. - 02111-1307 USA. */
  89998. + License along with the GNU C Library; if not, see
  89999. + <http://www.gnu.org/licenses/>. */
  90000. #define HAVE_CMOV 1
  90001. #include "../i486/pthread_spin_trylock.S"
  90002. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i686/tls.h uClibc-git/libpthread/nptl/sysdeps/i386/i686/tls.h
  90003. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/i686/tls.h 2012-05-15 09:20:09.000000000 +0200
  90004. +++ uClibc-git/libpthread/nptl/sysdeps/i386/i686/tls.h 2014-06-02 17:40:35.062717785 +0200
  90005. @@ -13,9 +13,8 @@
  90006. Lesser General Public License for more details.
  90007. You should have received a copy of the GNU Lesser General Public
  90008. - License along with the GNU C Library; if not, write to the Free
  90009. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90010. - 02111-1307 USA. */
  90011. + License along with the GNU C Library; if not, see
  90012. + <http://www.gnu.org/licenses/>. */
  90013. #ifndef _TLS_H
  90014. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/i386/jmpbuf-unwind.h
  90015. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  90016. +++ uClibc-git/libpthread/nptl/sysdeps/i386/jmpbuf-unwind.h 2014-06-02 17:40:35.062717785 +0200
  90017. @@ -13,9 +13,8 @@
  90018. Lesser General Public License for more details.
  90019. You should have received a copy of the GNU Lesser General Public
  90020. - License along with the GNU C Library; if not, write to the Free
  90021. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90022. - 02111-1307 USA. */
  90023. + License along with the GNU C Library; if not, see
  90024. + <http://www.gnu.org/licenses/>. */
  90025. #include <setjmp.h>
  90026. #include <stdint.h>
  90027. @@ -26,7 +25,3 @@
  90028. #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  90029. ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
  90030. -
  90031. -/* We use the normal lobngjmp for unwinding. */
  90032. -extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
  90033. -#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
  90034. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/Makefile uClibc-git/libpthread/nptl/sysdeps/i386/Makefile
  90035. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/Makefile 2012-05-15 09:20:09.000000000 +0200
  90036. +++ uClibc-git/libpthread/nptl/sysdeps/i386/Makefile 2014-06-02 17:40:35.062717785 +0200
  90037. @@ -12,9 +12,8 @@
  90038. # Lesser General Public License for more details.
  90039. # You should have received a copy of the GNU Lesser General Public
  90040. -# License along with the GNU C Library; if not, write to the Free
  90041. -# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90042. -# 02111-1307 USA.
  90043. +# License along with the GNU C Library; see the file COPYING.LIB. If
  90044. +# not, see <http://www.gnu.org/licenses/>.
  90045. ifeq ($(subdir),csu)
  90046. gen-as-const-headers += tcb-offsets.sym
  90047. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/i386/pthreaddef.h
  90048. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  90049. +++ uClibc-git/libpthread/nptl/sysdeps/i386/pthreaddef.h 2014-06-02 17:40:35.066717808 +0200
  90050. @@ -13,9 +13,8 @@
  90051. Lesser General Public License for more details.
  90052. You should have received a copy of the GNU Lesser General Public
  90053. - License along with the GNU C Library; if not, write to the Free
  90054. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90055. - 02111-1307 USA. */
  90056. + License along with the GNU C Library; if not, see
  90057. + <http://www.gnu.org/licenses/>. */
  90058. /* Default stack size. */
  90059. #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
  90060. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthread_spin_init.c uClibc-git/libpthread/nptl/sysdeps/i386/pthread_spin_init.c
  90061. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthread_spin_init.c 2012-05-15 09:20:09.000000000 +0200
  90062. +++ uClibc-git/libpthread/nptl/sysdeps/i386/pthread_spin_init.c 2014-06-02 17:40:35.066717808 +0200
  90063. @@ -13,8 +13,7 @@
  90064. Lesser General Public License for more details.
  90065. You should have received a copy of the GNU Lesser General Public
  90066. - License along with the GNU C Library; if not, write to the Free
  90067. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90068. - 02111-1307 USA. */
  90069. + License along with the GNU C Library; if not, see
  90070. + <http://www.gnu.org/licenses/>. */
  90071. /* Not needed. pthread_spin_init is an alias for pthread_spin_unlock. */
  90072. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthread_spin_lock.c uClibc-git/libpthread/nptl/sysdeps/i386/pthread_spin_lock.c
  90073. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
  90074. +++ uClibc-git/libpthread/nptl/sysdeps/i386/pthread_spin_lock.c 2014-06-02 17:40:35.066717808 +0200
  90075. @@ -13,9 +13,8 @@
  90076. Lesser General Public License for more details.
  90077. You should have received a copy of the GNU Lesser General Public
  90078. - License along with the GNU C Library; if not, write to the Free
  90079. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90080. - 02111-1307 USA. */
  90081. + License along with the GNU C Library; if not, see
  90082. + <http://www.gnu.org/licenses/>. */
  90083. #include "pthreadP.h"
  90084. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthread_spin_unlock.S uClibc-git/libpthread/nptl/sysdeps/i386/pthread_spin_unlock.S
  90085. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/pthread_spin_unlock.S 2012-05-15 09:20:09.000000000 +0200
  90086. +++ uClibc-git/libpthread/nptl/sysdeps/i386/pthread_spin_unlock.S 2014-06-02 17:40:35.066717808 +0200
  90087. @@ -13,9 +13,8 @@
  90088. Lesser General Public License for more details.
  90089. You should have received a copy of the GNU Lesser General Public
  90090. - License along with the GNU C Library; if not, write to the Free
  90091. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90092. - 02111-1307 USA. */
  90093. + License along with the GNU C Library; if not, see
  90094. + <http://www.gnu.org/licenses/>. */
  90095. .globl pthread_spin_unlock
  90096. .type pthread_spin_unlock,@function
  90097. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/tls.h uClibc-git/libpthread/nptl/sysdeps/i386/tls.h
  90098. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/i386/tls.h 2012-05-15 09:20:09.000000000 +0200
  90099. +++ uClibc-git/libpthread/nptl/sysdeps/i386/tls.h 2014-06-02 17:40:35.066717808 +0200
  90100. @@ -13,9 +13,8 @@
  90101. Lesser General Public License for more details.
  90102. You should have received a copy of the GNU Lesser General Public
  90103. - License along with the GNU C Library; if not, write to the Free
  90104. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90105. - 02111-1307 USA. */
  90106. + License along with the GNU C Library; if not, see
  90107. + <http://www.gnu.org/licenses/>. */
  90108. #ifndef _TLS_H
  90109. #define _TLS_H 1
  90110. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/Makefile.commonarch uClibc-git/libpthread/nptl/sysdeps/Makefile.commonarch
  90111. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/Makefile.commonarch 2012-05-15 09:20:09.000000000 +0200
  90112. +++ uClibc-git/libpthread/nptl/sysdeps/Makefile.commonarch 2014-06-02 17:40:35.042717675 +0200
  90113. @@ -47,9 +47,8 @@
  90114. $(libpthread_arch_OUT)/gen_tcb-offsets.s: $(libpthread_arch_OUT)/gen_tcb-offsets.c | headers
  90115. $(compile.c)
  90116. libpthread-generated-y += $(libpthread_arch_OUT)/gen_tcb-offsets.s
  90117. -PTHREAD_TCB_OFFSET_MANGLE ?= -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*\$$/\#define \1 \2/p"
  90118. $(libpthread_arch_OUT)/tcb-offsets.h: $(libpthread_arch_OUT)/gen_tcb-offsets.s
  90119. - $(do_sed) $(PTHREAD_TCB_OFFSET_MANGLE) $< > $@
  90120. + $(do_sed) $(PTHREAD_GENERATE_MANGLE) $< > $@
  90121. @if test ! -s $@ ; then rm -f $@ ; false ; fi
  90122. pregen-headers-$(UCLIBC_HAS_THREADS_NATIVE) += $(libpthread_arch_OUT)/tcb-offsets.h
  90123. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/metag/dl-tls.h
  90124. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/dl-tls.h 1970-01-01 01:00:00.000000000 +0100
  90125. +++ uClibc-git/libpthread/nptl/sysdeps/metag/dl-tls.h 2014-06-02 17:40:35.066717808 +0200
  90126. @@ -0,0 +1,29 @@
  90127. +/* Thread-local storage handling in the ELF dynamic linker. Meta version.
  90128. + Copyright (C) 2002 Free Software Foundation, Inc.
  90129. + This file is part of the GNU C Library.
  90130. +
  90131. + The GNU C Library is free software; you can redistribute it and/or
  90132. + modify it under the terms of the GNU Lesser General Public
  90133. + License as published by the Free Software Foundation; either
  90134. + version 2.1 of the License, or (at your option) any later version.
  90135. +
  90136. + The GNU C Library is distributed in the hope that it will be useful,
  90137. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  90138. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  90139. + Lesser General Public License for more details.
  90140. +
  90141. + You should have received a copy of the GNU Lesser General Public
  90142. + License along with the GNU C Library; if not, write to the Free
  90143. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90144. + 02111-1307 USA. */
  90145. +
  90146. +
  90147. +/* Type used for the representation of TLS information in the GOT. */
  90148. +typedef struct
  90149. +{
  90150. + unsigned long int ti_module;
  90151. + unsigned long int ti_offset;
  90152. +} tls_index;
  90153. +
  90154. +
  90155. +extern void *__tls_get_addr (tls_index *ti);
  90156. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/metag/jmpbuf-unwind.h
  90157. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/jmpbuf-unwind.h 1970-01-01 01:00:00.000000000 +0100
  90158. +++ uClibc-git/libpthread/nptl/sysdeps/metag/jmpbuf-unwind.h 2014-06-02 17:40:35.066717808 +0200
  90159. @@ -0,0 +1,36 @@
  90160. +/* Copyright (C) 2003, 2004 Free Software Foundation, Inc.
  90161. + This file is part of the GNU C Library.
  90162. + Contributed by Jakub Jelinek <jakub@redhat.com>, 2003.
  90163. +
  90164. + The GNU C Library is free software; you can redistribute it and/or
  90165. + modify it under the terms of the GNU Lesser General Public
  90166. + License as published by the Free Software Foundation; either
  90167. + version 2.1 of the License, or (at your option) any later version.
  90168. +
  90169. + The GNU C Library is distributed in the hope that it will be useful,
  90170. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  90171. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  90172. + Lesser General Public License for more details.
  90173. +
  90174. + You should have received a copy of the GNU Lesser General Public
  90175. + License along with the GNU C Library; if not, write to the Free
  90176. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90177. + 02111-1307 USA. */
  90178. +
  90179. +#include <setjmp.h>
  90180. +#include <stdint.h>
  90181. +#include <unwind.h>
  90182. +
  90183. +/* Test if longjmp to JMPBUF would unwind the frame
  90184. + containing a local variable at ADDRESS. */
  90185. +#undef _JMPBUF_UNWINDS
  90186. +#define _JMPBUF_UNWINDS(jmpbuf, address, demangle) \
  90187. + ((void *) (address) > (void *) demangle (jmpbuf[JB_SP]))
  90188. +
  90189. +#define _JMPBUF_CFA_UNWINDS_ADJ(_jmpbuf, _context, _adj) \
  90190. + _JMPBUF_UNWINDS_ADJ (_jmpbuf, (void *) _Unwind_GetCFA (_context), _adj)
  90191. +
  90192. +#define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  90193. + ((uintptr_t) (_address) - (_adj) > (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
  90194. +
  90195. +#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
  90196. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/libc-tls.c uClibc-git/libpthread/nptl/sysdeps/metag/libc-tls.c
  90197. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/libc-tls.c 1970-01-01 01:00:00.000000000 +0100
  90198. +++ uClibc-git/libpthread/nptl/sysdeps/metag/libc-tls.c 2014-06-02 17:40:35.066717808 +0200
  90199. @@ -0,0 +1,33 @@
  90200. +/*
  90201. + * Thread-local storage handling in statically linked binaries. Meta version.
  90202. + * Copyright (C) 2009 Free Software Foundation, Inc.
  90203. + *
  90204. + * Based on GNU C Library (file: libc/sysdeps/sh/libc-tls.c)
  90205. + *
  90206. + * Copyright (C) 2010 STMicroelectronics Ltd.
  90207. + * Copyright (C) 2013 Imagination Technologies Ltd.
  90208. + *
  90209. + * Author: Filippo Arcidiacono <filippo.arcidiacono@st.com>
  90210. + *
  90211. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  90212. + *
  90213. + */
  90214. +
  90215. +#include <sysdeps/generic/libc-tls.c>
  90216. +#include <dl-tls.h>
  90217. +
  90218. +#if defined (USE_TLS) && (USE_TLS)
  90219. +
  90220. +/* On Meta, linker optimizations are not required, so __tls_get_addr
  90221. + can be called even in statically linked binaries. In this case module
  90222. + must be always 1 and PT_TLS segment exist in the binary, otherwise it
  90223. + would not link. */
  90224. +
  90225. +void *
  90226. +__tls_get_addr (tls_index *ti)
  90227. +{
  90228. + dtv_t *dtv = THREAD_DTV ();
  90229. + return (char *) dtv[1].pointer.val + ti->ti_offset;
  90230. +}
  90231. +
  90232. +#endif
  90233. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/Makefile.arch uClibc-git/libpthread/nptl/sysdeps/metag/Makefile.arch
  90234. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/Makefile.arch 1970-01-01 01:00:00.000000000 +0100
  90235. +++ uClibc-git/libpthread/nptl/sysdeps/metag/Makefile.arch 2014-06-02 17:40:35.066717808 +0200
  90236. @@ -0,0 +1,17 @@
  90237. +# Makefile for uClibc NPTL
  90238. +#
  90239. +# Copyright (C) 2005 Steven J. Hill <sjhill@uclibc.org>
  90240. +#
  90241. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  90242. +#
  90243. +
  90244. +CFLAGS-pthread_spin_init.c = -DNOT_IN_libc -DIS_IN_libpthread
  90245. +ASFLAGS-pthread_spin_lock.S = -DNOT_IN_libc -DIS_IN_libpthread
  90246. +ASFLAGS-pthread_spin_unlock.S = -DNOT_IN_libc -DIS_IN_libpthread
  90247. +ASFLAGS-pthread_spin_trylock.S = -DNOT_IN_libc -DIS_IN_libpthread
  90248. +
  90249. +ASFLAGS-pthread_spin_lock.c += -D_GNU_SOURCE
  90250. +
  90251. +CFLAGS-metag = $(SSP_ALL_CFLAGS)
  90252. +
  90253. +libc_arch_a_CSRC := libc-tls.c
  90254. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/metag_load_tp.S uClibc-git/libpthread/nptl/sysdeps/metag/metag_load_tp.S
  90255. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/metag_load_tp.S 1970-01-01 01:00:00.000000000 +0100
  90256. +++ uClibc-git/libpthread/nptl/sysdeps/metag/metag_load_tp.S 2014-06-02 17:40:35.066717808 +0200
  90257. @@ -0,0 +1,7 @@
  90258. +/*
  90259. + * Copyright (C) 2013 Imagination Technologies Ltd.
  90260. + *
  90261. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  90262. + */
  90263. +
  90264. +#include <../../../../ldso/ldso/metag/metag_load_tp.S>
  90265. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/metag/pthreaddef.h
  90266. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthreaddef.h 1970-01-01 01:00:00.000000000 +0100
  90267. +++ uClibc-git/libpthread/nptl/sysdeps/metag/pthreaddef.h 2014-06-02 17:40:35.066717808 +0200
  90268. @@ -0,0 +1,40 @@
  90269. +/* Copyright (C) 2003 Free Software Foundation, Inc.
  90270. + This file is part of the GNU C Library.
  90271. +
  90272. + The GNU C Library is free software; you can redistribute it and/or
  90273. + modify it under the terms of the GNU Lesser General Public
  90274. + License as published by the Free Software Foundation; either
  90275. + version 2.1 of the License, or (at your option) any later version.
  90276. +
  90277. + The GNU C Library is distributed in the hope that it will be useful,
  90278. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  90279. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  90280. + Lesser General Public License for more details.
  90281. +
  90282. + You should have received a copy of the GNU Lesser General Public
  90283. + License along with the GNU C Library; if not, write to the Free
  90284. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90285. + 02111-1307 USA. */
  90286. +
  90287. +#include <sysdep.h>
  90288. +
  90289. +/* Default stack size. */
  90290. +#define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
  90291. +
  90292. +/* Required stack pointer alignment at beginning. */
  90293. +#define STACK_ALIGN 8
  90294. +
  90295. +/* Minimal stack size after allocating thread descriptor and guard size. */
  90296. +#define MINIMAL_REST_STACK 2048
  90297. +
  90298. +/* Alignment requirement for TCB. */
  90299. +#define TCB_ALIGNMENT 8
  90300. +
  90301. +
  90302. +/* Location of current stack frame. */
  90303. +#define CURRENT_STACK_FRAME __builtin_frame_address (0)
  90304. +
  90305. +
  90306. +/* XXX Until we have a better place keep the definitions here. */
  90307. +#define __exit_thread_inline(val) \
  90308. + INLINE_SYSCALL (exit, 1, (val))
  90309. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_init.c uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_init.c
  90310. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_init.c 1970-01-01 01:00:00.000000000 +0100
  90311. +++ uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_init.c 2014-06-02 17:40:35.066717808 +0200
  90312. @@ -0,0 +1,20 @@
  90313. +/* Copyright (C) 2002 Free Software Foundation, Inc.
  90314. + This file is part of the GNU C Library.
  90315. + Contributed by Ulrich Drepper <drepper@redhat.com>, 2002.
  90316. +
  90317. + The GNU C Library is free software; you can redistribute it and/or
  90318. + modify it under the terms of the GNU Lesser General Public
  90319. + License as published by the Free Software Foundation; either
  90320. + version 2.1 of the License, or (at your option) any later version.
  90321. +
  90322. + The GNU C Library is distributed in the hope that it will be useful,
  90323. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  90324. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  90325. + Lesser General Public License for more details.
  90326. +
  90327. + You should have received a copy of the GNU Lesser General Public
  90328. + License along with the GNU C Library; if not, write to the Free
  90329. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90330. + 02111-1307 USA. */
  90331. +
  90332. +/* Not needed. pthread_spin_init is an alias for pthread_spin_unlock. */
  90333. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_lock.S uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_lock.S
  90334. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_lock.S 1970-01-01 01:00:00.000000000 +0100
  90335. +++ uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_lock.S 2014-06-02 17:40:35.066717808 +0200
  90336. @@ -0,0 +1,20 @@
  90337. +! Copyright (C) 2013 Imagination Technologies Ltd.
  90338. +
  90339. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  90340. +
  90341. + .text
  90342. + .global _pthread_spin_lock
  90343. + .type _pthread_spin_lock,function
  90344. +_pthread_spin_lock:
  90345. +1: LNKGETD D0Ar2, [D1Ar1]
  90346. + CMP D0Ar2, #0
  90347. + ADD D0Ar2, D0Ar2, #1
  90348. + LNKSETDEQ [D1Ar1], D0Ar2
  90349. + BNE 1b
  90350. + DEFR D0Ar2, TXSTAT
  90351. + ANDT D0Ar2, D0Ar2, #HI(0x3f000000)
  90352. + CMPT D0Ar2, #HI(0x02000000)
  90353. + BNZ 1b
  90354. + MOV D0Re0, #0
  90355. + MOV PC, D1RtP
  90356. + .size _pthread_spin_lock,.-_pthread_spin_lock
  90357. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_trylock.S
  90358. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_trylock.S 1970-01-01 01:00:00.000000000 +0100
  90359. +++ uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_trylock.S 2014-06-02 17:40:35.066717808 +0200
  90360. @@ -0,0 +1,24 @@
  90361. +! Copyright (C) 2013 Imagination Technologies Ltd.
  90362. +
  90363. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  90364. +
  90365. +#include <pthread-errnos.h>
  90366. +
  90367. + .text
  90368. + .global _pthread_spin_trylock
  90369. + .type _pthread_spin_trylock,function
  90370. +_pthread_spin_trylock:
  90371. +1: MOVT D0Re0, #HI(#EBUSY)
  90372. + ADD D0Re0, D0Re0, #LO(#EBUSY)
  90373. + LNKGETD D0Ar2, [D1Ar1]
  90374. + CMP D0Ar2, #0
  90375. + ADD D0Ar2, D0Ar2, #1
  90376. + LNKSETDEQ [D1Ar1], D0Ar2
  90377. + BNE 2f
  90378. + DEFR D0Ar2, TXSTAT
  90379. + ANDT D0Ar2, D0Ar2, #HI(0x3f000000)
  90380. + CMPT D0Ar2, #HI(0x02000000)
  90381. + BNZ 1b
  90382. + MOV D0Re0, #0
  90383. +2: MOV PC, D1RtP
  90384. + .size _pthread_spin_trylock,.-_pthread_spin_trylock
  90385. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_unlock.S uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_unlock.S
  90386. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/pthread_spin_unlock.S 1970-01-01 01:00:00.000000000 +0100
  90387. +++ uClibc-git/libpthread/nptl/sysdeps/metag/pthread_spin_unlock.S 2014-06-02 17:40:35.066717808 +0200
  90388. @@ -0,0 +1,16 @@
  90389. +! Copyright (C) 2013 Imagination Technologies Ltd.
  90390. +
  90391. +! Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  90392. +
  90393. + .text
  90394. + .global _pthread_spin_unlock
  90395. + .type _pthread_spin_unlock,function
  90396. +_pthread_spin_unlock:
  90397. + MOV D0Re0, #0
  90398. + SETD [D1Ar1], D0Re0
  90399. + MOV PC, D1RtP
  90400. + .size _pthread_spin_unlock,.-_pthread_spin_unlock
  90401. +
  90402. + /* The implementation of pthread_spin_init is identical. */
  90403. + .global _pthread_spin_init
  90404. +_pthread_spin_init = _pthread_spin_unlock
  90405. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/tcb-offsets.sym uClibc-git/libpthread/nptl/sysdeps/metag/tcb-offsets.sym
  90406. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/tcb-offsets.sym 1970-01-01 01:00:00.000000000 +0100
  90407. +++ uClibc-git/libpthread/nptl/sysdeps/metag/tcb-offsets.sym 2014-06-02 17:40:35.066717808 +0200
  90408. @@ -0,0 +1,15 @@
  90409. +#include <sysdep.h>
  90410. +#include <tls.h>
  90411. +
  90412. +RESULT offsetof (struct pthread, result)
  90413. +TID offsetof (struct pthread, tid)
  90414. +PID offsetof (struct pthread, pid)
  90415. +CANCELHANDLING offsetof (struct pthread, cancelhandling)
  90416. +CLEANUP_JMP_BUF offsetof (struct pthread, cleanup_jmp_buf)
  90417. +MULTIPLE_THREADS_OFFSET offsetof (struct pthread, header.multiple_threads)
  90418. +TLS_PRE_TCB_SIZE sizeof (struct pthread)
  90419. +MUTEX_FUTEX offsetof (pthread_mutex_t, __data.__lock)
  90420. +POINTER_GUARD offsetof (tcbhead_t, pointer_guard)
  90421. +#ifndef __ASSUME_PRIVATE_FUTEX
  90422. +PRIVATE_FUTEX offsetof (struct pthread, header.private_futex)
  90423. +#endif
  90424. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/tls.h uClibc-git/libpthread/nptl/sysdeps/metag/tls.h
  90425. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/metag/tls.h 1970-01-01 01:00:00.000000000 +0100
  90426. +++ uClibc-git/libpthread/nptl/sysdeps/metag/tls.h 2014-06-02 17:40:35.066717808 +0200
  90427. @@ -0,0 +1,163 @@
  90428. +/* Definition for thread-local data handling. NPTL/Meta version.
  90429. + Copyright (C) 2003, 2005, 2006, 2007 Free Software Foundation, Inc.
  90430. + This file is part of the GNU C Library.
  90431. +
  90432. + The GNU C Library is free software; you can redistribute it and/or
  90433. + modify it under the terms of the GNU Lesser General Public
  90434. + License as published by the Free Software Foundation; either
  90435. + version 2.1 of the License, or (at your option) any later version.
  90436. +
  90437. + The GNU C Library is distributed in the hope that it will be useful,
  90438. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  90439. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  90440. + Lesser General Public License for more details.
  90441. +
  90442. + You should have received a copy of the GNU Lesser General Public
  90443. + License along with the GNU C Library; if not, write to the Free
  90444. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90445. + 02111-1307 USA. */
  90446. +
  90447. +#ifndef _TLS_H
  90448. +#define _TLS_H
  90449. +
  90450. +#ifndef __ASSEMBLER__
  90451. +# include <stdbool.h>
  90452. +# include <stddef.h>
  90453. +# include <stdint.h>
  90454. +# include <stdlib.h>
  90455. +# include <list.h>
  90456. +# include <sysdep.h>
  90457. +# include <bits/kernel-features.h>
  90458. +
  90459. +/* Type for the dtv. */
  90460. +typedef union dtv
  90461. +{
  90462. + size_t counter;
  90463. + struct
  90464. + {
  90465. + void *val;
  90466. + bool is_static;
  90467. + } pointer;
  90468. +} dtv_t;
  90469. +
  90470. +typedef struct
  90471. +{
  90472. + dtv_t *dtv;
  90473. + uintptr_t pointer_guard;
  90474. +} tcbhead_t;
  90475. +
  90476. +# define TLS_MULTIPLE_THREADS_IN_TCB 1
  90477. +
  90478. +#else /* __ASSEMBLER__ */
  90479. +# include <tcb-offsets.h>
  90480. +#endif /* __ASSEMBLER__ */
  90481. +
  90482. +
  90483. +/* We require TLS support in the tools. */
  90484. +#define HAVE_TLS_SUPPORT
  90485. +#define HAVE___THREAD 1
  90486. +#define HAVE_TLS_MODEL_ATTRIBUTE 1
  90487. +/* Signal that TLS support is available. */
  90488. +# define USE_TLS 1
  90489. +
  90490. +#ifndef __ASSEMBLER__
  90491. +
  90492. +/* Get system call information. */
  90493. +# include <sysdep.h>
  90494. +
  90495. +/* This is the size of the initial TCB. */
  90496. +# define TLS_INIT_TCB_SIZE sizeof (tcbhead_t)
  90497. +
  90498. +/* Alignment requirements for the initial TCB. */
  90499. +# define TLS_INIT_TCB_ALIGN __alignof__ (tcbhead_t)
  90500. +
  90501. +/* This is the size of the TCB. */
  90502. +# define TLS_TCB_SIZE sizeof (tcbhead_t)
  90503. +
  90504. +/* This is the size we need before TCB. */
  90505. +# define TLS_PRE_TCB_SIZE sizeof (struct pthread)
  90506. +
  90507. +/* Alignment requirements for the TCB. */
  90508. +# define TLS_TCB_ALIGN __alignof__ (struct pthread)
  90509. +
  90510. +/* The TLS blocks start right after the TCB. */
  90511. +# define TLS_DTV_AT_TP 1
  90512. +
  90513. +/* Get the thread descriptor definition. */
  90514. +# include <descr.h>
  90515. +
  90516. +/* Install the dtv pointer. The pointer passed is to the element with
  90517. + index -1 which contain the length. */
  90518. +# define INSTALL_DTV(tcbp, dtvp) \
  90519. + ((tcbhead_t *) (tcbp))->dtv = (dtvp) + 1
  90520. +
  90521. +/* Install new dtv for current thread. */
  90522. +# define INSTALL_NEW_DTV(dtv) \
  90523. + (((tcbhead_t *)__builtin_thread_pointer ())->dtv = (dtv))
  90524. +
  90525. +/* Return dtv of given thread descriptor. */
  90526. +# define GET_DTV(tcbp) \
  90527. + (((tcbhead_t *) (tcbp))->dtv)
  90528. +
  90529. +/* Code to initially initialize the thread pointer. This might need
  90530. + special attention since 'errno' is not yet available and if the
  90531. + operation can cause a failure 'errno' must not be touched. */
  90532. +# define TLS_INIT_TP(tcbp, secondcall) \
  90533. + ({ INTERNAL_SYSCALL_DECL (err); \
  90534. + long result_var; \
  90535. + result_var = INTERNAL_SYSCALL (metag_set_tls, err, 1, (tcbp)); \
  90536. + INTERNAL_SYSCALL_ERROR_P (result_var, err) \
  90537. + ? "unknown error" : NULL; })
  90538. +
  90539. +/* Return the address of the dtv for the current thread. */
  90540. +# define THREAD_DTV() \
  90541. + (((tcbhead_t *)__builtin_thread_pointer ())->dtv)
  90542. +
  90543. +/* Return the thread descriptor for the current thread.
  90544. + The contained asm must *not* be marked volatile since otherwise
  90545. + assignments like
  90546. + struct pthread *self = thread_self();
  90547. + do not get optimized away. */
  90548. +# define THREAD_SELF \
  90549. + ((struct pthread *)__builtin_thread_pointer () - 1)
  90550. +
  90551. +/* Magic for libthread_db to know how to do THREAD_SELF. */
  90552. +# define DB_THREAD_SELF \
  90553. + CONST_THREAD_AREA (32, sizeof (struct pthread))
  90554. +
  90555. +/* Access to data in the thread descriptor is easy. */
  90556. +#define THREAD_GETMEM(descr, member) \
  90557. + descr->member
  90558. +#define THREAD_GETMEM_NC(descr, member, idx) \
  90559. + descr->member[idx]
  90560. +#define THREAD_SETMEM(descr, member, value) \
  90561. + descr->member = (value)
  90562. +#define THREAD_SETMEM_NC(descr, member, idx, value) \
  90563. + descr->member[idx] = (value)
  90564. +
  90565. +/* Get and set the global scope generation counter in struct pthread. */
  90566. +#define THREAD_GSCOPE_FLAG_UNUSED 0
  90567. +#define THREAD_GSCOPE_FLAG_USED 1
  90568. +#define THREAD_GSCOPE_FLAG_WAIT 2
  90569. +#define THREAD_GSCOPE_RESET_FLAG() \
  90570. + do \
  90571. + { int __res \
  90572. + = atomic_exchange_rel (&THREAD_SELF->header.gscope_flag, \
  90573. + THREAD_GSCOPE_FLAG_UNUSED); \
  90574. + if (__res == THREAD_GSCOPE_FLAG_WAIT) \
  90575. + lll_futex_wake (&THREAD_SELF->header.gscope_flag, 1, LLL_PRIVATE); \
  90576. + } \
  90577. + while (0)
  90578. +#define THREAD_GSCOPE_SET_FLAG() \
  90579. + do \
  90580. + { \
  90581. + THREAD_SELF->header.gscope_flag = THREAD_GSCOPE_FLAG_USED; \
  90582. + atomic_write_barrier (); \
  90583. + } \
  90584. + while (0)
  90585. +#define THREAD_GSCOPE_WAIT() \
  90586. + GL(dl_wait_lookup_done) ()
  90587. +
  90588. +#endif /* __ASSEMBLER__ */
  90589. +
  90590. +#endif /* tls.h */
  90591. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/mips/dl-tls.h
  90592. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
  90593. +++ uClibc-git/libpthread/nptl/sysdeps/mips/dl-tls.h 2014-06-02 17:40:35.066717808 +0200
  90594. @@ -13,9 +13,8 @@
  90595. Lesser General Public License for more details.
  90596. You should have received a copy of the GNU Lesser General Public
  90597. - License along with the GNU C Library; if not, write to the Free
  90598. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90599. - 02111-1307 USA. */
  90600. + License along with the GNU C Library; if not, see
  90601. + <http://www.gnu.org/licenses/>. */
  90602. /* Type used for the representation of TLS information in the GOT. */
  90603. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/mips/jmpbuf-unwind.h
  90604. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  90605. +++ uClibc-git/libpthread/nptl/sysdeps/mips/jmpbuf-unwind.h 2014-06-02 17:40:35.066717808 +0200
  90606. @@ -12,9 +12,8 @@
  90607. Lesser General Public License for more details.
  90608. You should have received a copy of the GNU Lesser General Public
  90609. - License along with the GNU C Library; if not, write to the Free
  90610. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90611. - 02111-1307 USA. */
  90612. + License along with the GNU C Library; if not, see
  90613. + <http://www.gnu.org/licenses/>. */
  90614. #include <setjmp.h>
  90615. #include <stdint.h>
  90616. @@ -25,6 +24,3 @@
  90617. #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  90618. ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[0].__sp - (_adj))
  90619. -
  90620. -/* We use the normal longjmp for unwinding. */
  90621. -#define __libc_unwind_longjmp(buf, val) longjmp (buf, val)
  90622. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/libc-tls.c uClibc-git/libpthread/nptl/sysdeps/mips/libc-tls.c
  90623. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/libc-tls.c 2012-05-15 09:20:09.000000000 +0200
  90624. +++ uClibc-git/libpthread/nptl/sysdeps/mips/libc-tls.c 2014-06-02 17:40:35.066717808 +0200
  90625. @@ -13,9 +13,8 @@
  90626. Lesser General Public License for more details.
  90627. You should have received a copy of the GNU Lesser General Public
  90628. - License along with the GNU C Library; if not, write to the Free
  90629. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90630. - 02111-1307 USA. */
  90631. + License along with the GNU C Library; if not, see
  90632. + <http://www.gnu.org/licenses/>. */
  90633. #include <sysdeps/generic/libc-tls.c>
  90634. #include <dl-tls.h>
  90635. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/mips/pthreaddef.h
  90636. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  90637. +++ uClibc-git/libpthread/nptl/sysdeps/mips/pthreaddef.h 2014-06-02 17:40:35.066717808 +0200
  90638. @@ -12,9 +12,8 @@
  90639. Lesser General Public License for more details.
  90640. You should have received a copy of the GNU Lesser General Public
  90641. - License along with the GNU C Library; if not, write to the Free
  90642. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90643. - 02111-1307 USA. */
  90644. + License along with the GNU C Library; if not, see
  90645. + <http://www.gnu.org/licenses/>. */
  90646. /* Default stack size. */
  90647. #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
  90648. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/pthread_spin_lock.S uClibc-git/libpthread/nptl/sysdeps/mips/pthread_spin_lock.S
  90649. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/pthread_spin_lock.S 2012-05-15 09:20:09.000000000 +0200
  90650. +++ uClibc-git/libpthread/nptl/sysdeps/mips/pthread_spin_lock.S 2014-06-02 17:40:35.066717808 +0200
  90651. @@ -12,9 +12,8 @@
  90652. Lesser General Public License for more details.
  90653. You should have received a copy of the GNU Lesser General Public
  90654. - License along with the GNU C Library; if not, write to the Free
  90655. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90656. - 02111-1307 USA. */
  90657. + License along with the GNU C Library; if not, see
  90658. + <http://www.gnu.org/licenses/>. */
  90659. #include <sys/asm.h>
  90660. #include <sysdep.h>
  90661. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/mips/pthread_spin_trylock.S
  90662. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
  90663. +++ uClibc-git/libpthread/nptl/sysdeps/mips/pthread_spin_trylock.S 2014-06-02 17:40:35.066717808 +0200
  90664. @@ -12,9 +12,8 @@
  90665. Lesser General Public License for more details.
  90666. You should have received a copy of the GNU Lesser General Public
  90667. - License along with the GNU C Library; if not, write to the Free
  90668. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90669. - 02111-1307 USA. */
  90670. + License along with the GNU C Library; if not, see
  90671. + <http://www.gnu.org/licenses/>. */
  90672. #include <sys/asm.h>
  90673. #include <sysdep.h>
  90674. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/regdef.h uClibc-git/libpthread/nptl/sysdeps/mips/regdef.h
  90675. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/regdef.h 2012-05-15 09:20:09.000000000 +0200
  90676. +++ uClibc-git/libpthread/nptl/sysdeps/mips/regdef.h 2014-06-02 17:40:35.066717808 +0200
  90677. @@ -13,9 +13,8 @@
  90678. Lesser General Public License for more details.
  90679. You should have received a copy of the GNU Lesser General Public
  90680. - License along with the GNU C Library; if not, write to the Free
  90681. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90682. - 02111-1307 USA. */
  90683. + License along with the GNU C Library; if not, see
  90684. + <http://www.gnu.org/licenses/>. */
  90685. #ifndef _REGDEF_H
  90686. #define _REGDEF_H
  90687. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/tls.h uClibc-git/libpthread/nptl/sysdeps/mips/tls.h
  90688. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/mips/tls.h 2012-05-15 09:20:09.000000000 +0200
  90689. +++ uClibc-git/libpthread/nptl/sysdeps/mips/tls.h 2014-06-02 17:40:35.066717808 +0200
  90690. @@ -13,9 +13,8 @@
  90691. Lesser General Public License for more details.
  90692. You should have received a copy of the GNU Lesser General Public
  90693. - License along with the GNU C Library; if not, write to the Free
  90694. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90695. - 02111-1307 USA. */
  90696. + License along with the GNU C Library; if not, see
  90697. + <http://www.gnu.org/licenses/>. */
  90698. #ifndef _TLS_H
  90699. #define _TLS_H 1
  90700. @@ -121,7 +120,7 @@
  90701. operation can cause a failure 'errno' must not be touched. */
  90702. # define TLS_INIT_TP(tcbp, secondcall) \
  90703. ({ INTERNAL_SYSCALL_DECL (err); \
  90704. - long result_var; \
  90705. + long result_var attribute_unused; \
  90706. result_var = INTERNAL_SYSCALL (set_thread_area, err, 1, \
  90707. (char *) (tcbp) + TLS_TCB_OFFSET); \
  90708. INTERNAL_SYSCALL_ERROR_P (result_var, err) \
  90709. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/powerpc/dl-tls.h
  90710. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
  90711. +++ uClibc-git/libpthread/nptl/sysdeps/powerpc/dl-tls.h 2014-06-02 17:40:35.066717808 +0200
  90712. @@ -13,9 +13,8 @@
  90713. Lesser General Public License for more details.
  90714. You should have received a copy of the GNU Lesser General Public
  90715. - License along with the GNU C Library; if not, write to the Free
  90716. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90717. - 02111-1307 USA. */
  90718. + License along with the GNU C Library; if not, see
  90719. + <http://www.gnu.org/licenses/>. */
  90720. /* Type used for the representation of TLS information in the TOC. */
  90721. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/powerpc/jmpbuf-unwind.h
  90722. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  90723. +++ uClibc-git/libpthread/nptl/sysdeps/powerpc/jmpbuf-unwind.h 2014-06-02 17:40:35.066717808 +0200
  90724. @@ -13,9 +13,8 @@
  90725. Lesser General Public License for more details.
  90726. You should have received a copy of the GNU Lesser General Public
  90727. - License along with the GNU C Library; if not, write to the Free
  90728. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90729. - 02111-1307 USA. */
  90730. + License along with the GNU C Library; if not, see
  90731. + <http://www.gnu.org/licenses/>. */
  90732. #include <setjmp.h>
  90733. #include <stdint.h>
  90734. @@ -26,6 +25,3 @@
  90735. #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  90736. ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_GPR1] - (_adj))
  90737. -
  90738. -/* We use the normal lobngjmp for unwinding. */
  90739. -#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
  90740. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/powerpc/pthreaddef.h
  90741. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  90742. +++ uClibc-git/libpthread/nptl/sysdeps/powerpc/pthreaddef.h 2014-06-02 17:40:35.066717808 +0200
  90743. @@ -12,9 +12,8 @@
  90744. Lesser General Public License for more details.
  90745. You should have received a copy of the GNU Lesser General Public
  90746. - License along with the GNU C Library; if not, write to the Free
  90747. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90748. - 02111-1307 USA. */
  90749. + License along with the GNU C Library; if not, see
  90750. + <http://www.gnu.org/licenses/>. */
  90751. /* Default stack size. */
  90752. #define ARCH_STACK_DEFAULT_SIZE (4 * 1024 * 1024)
  90753. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/pthread_spin_lock.c uClibc-git/libpthread/nptl/sysdeps/powerpc/pthread_spin_lock.c
  90754. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
  90755. +++ uClibc-git/libpthread/nptl/sysdeps/powerpc/pthread_spin_lock.c 2014-06-02 17:40:35.066717808 +0200
  90756. @@ -13,9 +13,8 @@
  90757. Lesser General Public License for more details.
  90758. You should have received a copy of the GNU Lesser General Public
  90759. - License along with the GNU C Library; if not, write to the Free
  90760. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90761. - 02111-1307 USA. */
  90762. + License along with the GNU C Library; if not, see
  90763. + <http://www.gnu.org/licenses/>. */
  90764. #include "pthreadP.h"
  90765. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/pthread_spin_trylock.c uClibc-git/libpthread/nptl/sysdeps/powerpc/pthread_spin_trylock.c
  90766. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/pthread_spin_trylock.c 2012-05-15 09:20:09.000000000 +0200
  90767. +++ uClibc-git/libpthread/nptl/sysdeps/powerpc/pthread_spin_trylock.c 2014-06-02 17:40:35.066717808 +0200
  90768. @@ -13,9 +13,8 @@
  90769. Lesser General Public License for more details.
  90770. You should have received a copy of the GNU Lesser General Public
  90771. - License along with the GNU C Library; if not, write to the Free
  90772. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90773. - 02111-1307 USA. */
  90774. + License along with the GNU C Library; if not, see
  90775. + <http://www.gnu.org/licenses/>. */
  90776. #include <errno.h>
  90777. #include "pthreadP.h"
  90778. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/tls.h uClibc-git/libpthread/nptl/sysdeps/powerpc/tls.h
  90779. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/powerpc/tls.h 2012-05-15 09:20:09.000000000 +0200
  90780. +++ uClibc-git/libpthread/nptl/sysdeps/powerpc/tls.h 2014-06-02 17:40:35.070717830 +0200
  90781. @@ -13,9 +13,8 @@
  90782. Lesser General Public License for more details.
  90783. You should have received a copy of the GNU Lesser General Public
  90784. - License along with the GNU C Library; if not, write to the Free
  90785. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90786. - 02111-1307 USA. */
  90787. + License along with the GNU C Library; if not, see
  90788. + <http://www.gnu.org/licenses/>. */
  90789. #ifndef _TLS_H
  90790. #define _TLS_H 1
  90791. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/allocalim.h uClibc-git/libpthread/nptl/sysdeps/pthread/allocalim.h
  90792. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/allocalim.h 2012-05-15 09:20:09.000000000 +0200
  90793. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/allocalim.h 2014-06-02 17:40:35.070717830 +0200
  90794. @@ -13,9 +13,8 @@
  90795. Lesser General Public License for more details.
  90796. You should have received a copy of the GNU Lesser General Public
  90797. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  90798. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  90799. - Boston, MA 02111-1307, USA. */
  90800. + License along with the GNU C Library; see the file COPYING.LIB. If
  90801. + not, see <http://www.gnu.org/licenses/>. */
  90802. #include <alloca.h>
  90803. #include <limits.h>
  90804. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/bits/libc-lock.h uClibc-git/libpthread/nptl/sysdeps/pthread/bits/libc-lock.h
  90805. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/bits/libc-lock.h 2012-05-15 09:20:09.000000000 +0200
  90806. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/bits/libc-lock.h 2014-06-02 17:40:35.070717830 +0200
  90807. @@ -13,9 +13,8 @@
  90808. Lesser General Public License for more details.
  90809. You should have received a copy of the GNU Lesser General Public
  90810. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  90811. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  90812. - Boston, MA 02111-1307, USA. */
  90813. + License along with the GNU C Library; see the file COPYING.LIB. If
  90814. + not, see <http://www.gnu.org/licenses/>. */
  90815. #ifndef _BITS_LIBC_LOCK_H
  90816. #define _BITS_LIBC_LOCK_H 1
  90817. @@ -475,7 +474,7 @@
  90818. library. */
  90819. extern int __pthread_mutex_init (pthread_mutex_t *__mutex,
  90820. - __const pthread_mutexattr_t *__mutex_attr);
  90821. + const pthread_mutexattr_t *__mutex_attr);
  90822. extern int __pthread_mutex_destroy (pthread_mutex_t *__mutex);
  90823. @@ -494,7 +493,7 @@
  90824. #ifdef __USE_UNIX98
  90825. extern int __pthread_rwlock_init (pthread_rwlock_t *__rwlock,
  90826. - __const pthread_rwlockattr_t *__attr);
  90827. + const pthread_rwlockattr_t *__attr);
  90828. extern int __pthread_rwlock_destroy (pthread_rwlock_t *__rwlock);
  90829. @@ -513,7 +512,7 @@
  90830. void (*__destr_function) (void *));
  90831. extern int __pthread_setspecific (pthread_key_t __key,
  90832. - __const void *__pointer);
  90833. + const void *__pointer);
  90834. extern void *__pthread_getspecific (pthread_key_t __key);
  90835. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/bits/libc-tsd.h uClibc-git/libpthread/nptl/sysdeps/pthread/bits/libc-tsd.h
  90836. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/bits/libc-tsd.h 2012-05-15 09:20:09.000000000 +0200
  90837. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/bits/libc-tsd.h 2014-06-02 17:40:35.070717830 +0200
  90838. @@ -13,9 +13,8 @@
  90839. Lesser General Public License for more details.
  90840. You should have received a copy of the GNU Lesser General Public
  90841. - License along with the GNU C Library; if not, write to the Free
  90842. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90843. - 02111-1307 USA. */
  90844. + License along with the GNU C Library; if not, see
  90845. + <http://www.gnu.org/licenses/>. */
  90846. #ifndef _GENERIC_BITS_LIBC_TSD_H
  90847. #define _GENERIC_BITS_LIBC_TSD_H 1
  90848. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h uClibc-git/libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h
  90849. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h 2012-05-15 09:20:09.000000000 +0200
  90850. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/bits/stdio-lock.h 2014-06-02 17:40:35.070717830 +0200
  90851. @@ -13,9 +13,8 @@
  90852. Lesser General Public License for more details.
  90853. You should have received a copy of the GNU Lesser General Public
  90854. - License along with the GNU C Library; if not, write to the Free
  90855. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90856. - 02111-1307 USA. */
  90857. + License along with the GNU C Library; if not, see
  90858. + <http://www.gnu.org/licenses/>. */
  90859. #ifndef _BITS_STDIO_LOCK_H
  90860. #define _BITS_STDIO_LOCK_H 1
  90861. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/createthread.c uClibc-git/libpthread/nptl/sysdeps/pthread/createthread.c
  90862. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/createthread.c 2012-05-15 09:20:09.000000000 +0200
  90863. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/createthread.c 2014-06-02 17:40:35.070717830 +0200
  90864. @@ -13,9 +13,8 @@
  90865. Lesser General Public License for more details.
  90866. You should have received a copy of the GNU Lesser General Public
  90867. - License along with the GNU C Library; if not, write to the Free
  90868. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90869. - 02111-1307 USA. */
  90870. + License along with the GNU C Library; if not, see
  90871. + <http://www.gnu.org/licenses/>. */
  90872. #include <sched.h>
  90873. #include <setjmp.h>
  90874. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/librt-cancellation.c uClibc-git/libpthread/nptl/sysdeps/pthread/librt-cancellation.c
  90875. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/librt-cancellation.c 2012-05-15 09:20:09.000000000 +0200
  90876. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/librt-cancellation.c 2014-06-02 17:40:35.070717830 +0200
  90877. @@ -13,9 +13,8 @@
  90878. Lesser General Public License for more details.
  90879. You should have received a copy of the GNU Lesser General Public
  90880. - License along with the GNU C Library; if not, write to the Free
  90881. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90882. - 02111-1307 USA. */
  90883. + License along with the GNU C Library; if not, see
  90884. + <http://www.gnu.org/licenses/>. */
  90885. #include "pthreadP.h"
  90886. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/list.h uClibc-git/libpthread/nptl/sysdeps/pthread/list.h
  90887. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/list.h 2012-05-15 09:20:09.000000000 +0200
  90888. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/list.h 2014-06-02 17:40:35.070717830 +0200
  90889. @@ -13,9 +13,8 @@
  90890. Lesser General Public License for more details.
  90891. You should have received a copy of the GNU Lesser General Public
  90892. - License along with the GNU C Library; if not, write to the Free
  90893. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90894. - 02111-1307 USA. */
  90895. + License along with the GNU C Library; if not, see
  90896. + <http://www.gnu.org/licenses/>. */
  90897. #ifndef _LIST_H
  90898. #define _LIST_H 1
  90899. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/Makefile.in uClibc-git/libpthread/nptl/sysdeps/pthread/Makefile.in
  90900. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  90901. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/Makefile.in 2014-06-02 17:40:35.070717830 +0200
  90902. @@ -33,7 +33,6 @@
  90903. pthread_spin_init.c \
  90904. pthread_spin_unlock.c \
  90905. pt-longjmp.c \
  90906. - pt-sigaction.c \
  90907. tpp.c
  90908. CFLAGS-pthread = $(SSP_ALL_CFLAGS) -DNOT_IN_libc -DIS_IN_libpthread
  90909. CFLAGS-pthread_barrier_wait.c = -D_GNU_SOURCE
  90910. @@ -49,8 +48,7 @@
  90911. CFLAGS-rt-unwind-resume.c = -DIS_IN_librt \
  90912. -fexceptions -fasynchronous-unwind-tables
  90913. -libpthread-so-y += $(patsubst %,$(libpthread_pthread_OUT)/%.oS, \
  90914. - unwind-forcedunwind)
  90915. +libpthread-so-y += $(patsubst %,$(libpthread_pthread_OUT)/%.oS, unwind-forcedunwind)
  90916. librt-pt-routines-y = librt-cancellation.c
  90917. librt-pt-shared-only-routines-y = rt-unwind-resume.c
  90918. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/malloc-machine.h uClibc-git/libpthread/nptl/sysdeps/pthread/malloc-machine.h
  90919. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/malloc-machine.h 2012-05-15 09:20:09.000000000 +0200
  90920. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/malloc-machine.h 2014-06-02 17:40:35.070717830 +0200
  90921. @@ -14,9 +14,8 @@
  90922. Lesser General Public License for more details.
  90923. You should have received a copy of the GNU Lesser General Public
  90924. - License along with the GNU C Library; if not, write to the Free
  90925. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90926. - 02111-1307 USA. */
  90927. + License along with the GNU C Library; if not, see
  90928. + <http://www.gnu.org/licenses/>. */
  90929. #ifndef _MALLOC_MACHINE_H
  90930. #define _MALLOC_MACHINE_H
  90931. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/posix-timer.h uClibc-git/libpthread/nptl/sysdeps/pthread/posix-timer.h
  90932. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/posix-timer.h 2012-05-15 09:20:09.000000000 +0200
  90933. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/posix-timer.h 2014-06-02 17:40:35.070717830 +0200
  90934. @@ -14,9 +14,8 @@
  90935. Lesser General Public License for more details.
  90936. You should have received a copy of the GNU Lesser General Public
  90937. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  90938. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  90939. - Boston, MA 02111-1307, USA. */
  90940. + License along with the GNU C Library; see the file COPYING.LIB. If
  90941. + not, see <http://www.gnu.org/licenses/>. */
  90942. #include <limits.h>
  90943. #include <signal.h>
  90944. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_barrier_destroy.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_barrier_destroy.c
  90945. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_barrier_destroy.c 2012-05-15 09:20:09.000000000 +0200
  90946. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_barrier_destroy.c 2014-06-02 17:40:35.070717830 +0200
  90947. @@ -13,9 +13,8 @@
  90948. Lesser General Public License for more details.
  90949. You should have received a copy of the GNU Lesser General Public
  90950. - License along with the GNU C Library; if not, write to the Free
  90951. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90952. - 02111-1307 USA. */
  90953. + License along with the GNU C Library; if not, see
  90954. + <http://www.gnu.org/licenses/>. */
  90955. #include <errno.h>
  90956. #include "pthreadP.h"
  90957. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_barrier_init.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_barrier_init.c
  90958. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_barrier_init.c 2012-05-15 09:20:09.000000000 +0200
  90959. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_barrier_init.c 2014-06-02 17:40:35.070717830 +0200
  90960. @@ -13,9 +13,8 @@
  90961. Lesser General Public License for more details.
  90962. You should have received a copy of the GNU Lesser General Public
  90963. - License along with the GNU C Library; if not, write to the Free
  90964. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90965. - 02111-1307 USA. */
  90966. + License along with the GNU C Library; if not, see
  90967. + <http://www.gnu.org/licenses/>. */
  90968. #include <errno.h>
  90969. #include "pthreadP.h"
  90970. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_barrier_wait.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_barrier_wait.c
  90971. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_barrier_wait.c 2012-05-15 09:20:09.000000000 +0200
  90972. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_barrier_wait.c 2014-06-02 17:40:35.070717830 +0200
  90973. @@ -13,9 +13,8 @@
  90974. Lesser General Public License for more details.
  90975. You should have received a copy of the GNU Lesser General Public
  90976. - License along with the GNU C Library; if not, write to the Free
  90977. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90978. - 02111-1307 USA. */
  90979. + License along with the GNU C Library; if not, see
  90980. + <http://www.gnu.org/licenses/>. */
  90981. #include <errno.h>
  90982. #include <sysdep.h>
  90983. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c
  90984. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c 2012-05-15 09:20:09.000000000 +0200
  90985. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_broadcast.c 2014-06-02 17:40:35.070717830 +0200
  90986. @@ -13,9 +13,8 @@
  90987. Lesser General Public License for more details.
  90988. You should have received a copy of the GNU Lesser General Public
  90989. - License along with the GNU C Library; if not, write to the Free
  90990. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  90991. - 02111-1307 USA. */
  90992. + License along with the GNU C Library; if not, see
  90993. + <http://www.gnu.org/licenses/>. */
  90994. #include <endian.h>
  90995. #include <errno.h>
  90996. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c
  90997. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c 2012-05-15 09:20:09.000000000 +0200
  90998. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_signal.c 2014-06-02 17:40:35.070717830 +0200
  90999. @@ -13,9 +13,8 @@
  91000. Lesser General Public License for more details.
  91001. You should have received a copy of the GNU Lesser General Public
  91002. - License along with the GNU C Library; if not, write to the Free
  91003. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91004. - 02111-1307 USA. */
  91005. + License along with the GNU C Library; if not, see
  91006. + <http://www.gnu.org/licenses/>. */
  91007. #include <endian.h>
  91008. #include <errno.h>
  91009. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c
  91010. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c 2012-05-15 09:20:09.000000000 +0200
  91011. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_timedwait.c 2014-06-02 17:40:35.070717830 +0200
  91012. @@ -13,9 +13,8 @@
  91013. Lesser General Public License for more details.
  91014. You should have received a copy of the GNU Lesser General Public
  91015. - License along with the GNU C Library; if not, write to the Free
  91016. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91017. - 02111-1307 USA. */
  91018. + License along with the GNU C Library; if not, see
  91019. + <http://www.gnu.org/licenses/>. */
  91020. #include <endian.h>
  91021. #include <errno.h>
  91022. @@ -100,8 +99,10 @@
  91023. {
  91024. #ifdef __NR_clock_gettime
  91025. INTERNAL_SYSCALL_DECL (err);
  91026. - int ret;
  91027. - ret = INTERNAL_SYSCALL (clock_gettime, err, 2,
  91028. +# ifndef __ASSUME_POSIX_TIMERS
  91029. + int ret =
  91030. +# endif
  91031. + INTERNAL_SYSCALL (clock_gettime, err, 2,
  91032. (cond->__data.__nwaiters
  91033. & ((1 << COND_NWAITERS_SHIFT) - 1)),
  91034. &rt);
  91035. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c
  91036. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c 2012-05-15 09:20:09.000000000 +0200
  91037. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_cond_wait.c 2014-06-02 17:40:35.070717830 +0200
  91038. @@ -13,9 +13,8 @@
  91039. Lesser General Public License for more details.
  91040. You should have received a copy of the GNU Lesser General Public
  91041. - License along with the GNU C Library; if not, write to the Free
  91042. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91043. - 02111-1307 USA. */
  91044. + License along with the GNU C Library; if not, see
  91045. + <http://www.gnu.org/licenses/>. */
  91046. #include <endian.h>
  91047. #include <errno.h>
  91048. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread-functions.h uClibc-git/libpthread/nptl/sysdeps/pthread/pthread-functions.h
  91049. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread-functions.h 2012-05-15 09:20:09.000000000 +0200
  91050. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread-functions.h 2014-06-02 17:40:35.070717830 +0200
  91051. @@ -13,9 +13,8 @@
  91052. Lesser General Public License for more details.
  91053. You should have received a copy of the GNU Lesser General Public
  91054. - License along with the GNU C Library; if not, write to the Free
  91055. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91056. - 02111-1307 USA. */
  91057. + License along with the GNU C Library; if not, see
  91058. + <http://www.gnu.org/licenses/>. */
  91059. #ifndef _PTHREAD_FUNCTIONS_H
  91060. #define _PTHREAD_FUNCTIONS_H 1
  91061. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread.h uClibc-git/libpthread/nptl/sysdeps/pthread/pthread.h
  91062. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread.h 2012-05-15 09:20:09.000000000 +0200
  91063. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread.h 2014-06-02 17:40:35.070717830 +0200
  91064. @@ -13,9 +13,8 @@
  91065. Lesser General Public License for more details.
  91066. You should have received a copy of the GNU Lesser General Public
  91067. - License along with the GNU C Library; if not, write to the Free
  91068. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91069. - 02111-1307 USA. */
  91070. + License along with the GNU C Library; if not, see
  91071. + <http://www.gnu.org/licenses/>. */
  91072. #ifndef _PTHREAD_H
  91073. #define _PTHREAD_H 1
  91074. @@ -228,7 +227,7 @@
  91075. getting passed ARG. Creation attributed come from ATTR. The new
  91076. handle is stored in *NEWTHREAD. */
  91077. extern int pthread_create (pthread_t *__restrict __newthread,
  91078. - __const pthread_attr_t *__restrict __attr,
  91079. + const pthread_attr_t *__restrict __attr,
  91080. void *(*__start_routine) (void *),
  91081. void *__restrict __arg) __THROW __nonnull ((1, 3));
  91082. @@ -258,7 +257,7 @@
  91083. This function is a cancellation point and therefore not marked with
  91084. __THROW. */
  91085. extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
  91086. - __const struct timespec *__abstime);
  91087. + const struct timespec *__abstime);
  91088. #endif
  91089. /* Indicate that the thread TH is never to be joined with PTHREAD_JOIN.
  91090. @@ -287,7 +286,7 @@
  91091. __THROW __nonnull ((1));
  91092. /* Get detach state attribute. */
  91093. -extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
  91094. +extern int pthread_attr_getdetachstate (const pthread_attr_t *__attr,
  91095. int *__detachstate)
  91096. __THROW __nonnull ((1, 2));
  91097. @@ -298,7 +297,7 @@
  91098. /* Get the size of the guard area created for stack overflow protection. */
  91099. -extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
  91100. +extern int pthread_attr_getguardsize (const pthread_attr_t *__attr,
  91101. size_t *__guardsize)
  91102. __THROW __nonnull ((1, 2));
  91103. @@ -309,18 +308,18 @@
  91104. /* Return in *PARAM the scheduling parameters of *ATTR. */
  91105. -extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
  91106. +extern int pthread_attr_getschedparam (const pthread_attr_t *__restrict
  91107. __attr,
  91108. struct sched_param *__restrict __param)
  91109. __THROW __nonnull ((1, 2));
  91110. /* Set scheduling parameters (priority, etc) in *ATTR according to PARAM. */
  91111. extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
  91112. - __const struct sched_param *__restrict
  91113. + const struct sched_param *__restrict
  91114. __param) __THROW __nonnull ((1, 2));
  91115. /* Return in *POLICY the scheduling policy of *ATTR. */
  91116. -extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
  91117. +extern int pthread_attr_getschedpolicy (const pthread_attr_t *__restrict
  91118. __attr, int *__restrict __policy)
  91119. __THROW __nonnull ((1, 2));
  91120. @@ -329,7 +328,7 @@
  91121. __THROW __nonnull ((1));
  91122. /* Return in *INHERIT the scheduling inheritance mode of *ATTR. */
  91123. -extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
  91124. +extern int pthread_attr_getinheritsched (const pthread_attr_t *__restrict
  91125. __attr, int *__restrict __inherit)
  91126. __THROW __nonnull ((1, 2));
  91127. @@ -340,7 +339,7 @@
  91128. /* Return in *SCOPE the scheduling contention scope of *ATTR. */
  91129. -extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
  91130. +extern int pthread_attr_getscope (const pthread_attr_t *__restrict __attr,
  91131. int *__restrict __scope)
  91132. __THROW __nonnull ((1, 2));
  91133. @@ -349,7 +348,7 @@
  91134. __THROW __nonnull ((1));
  91135. /* Return the previously set address for the stack. */
  91136. -extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
  91137. +extern int pthread_attr_getstackaddr (const pthread_attr_t *__restrict
  91138. __attr, void **__restrict __stackaddr)
  91139. __THROW __nonnull ((1, 2)) __attribute_deprecated__;
  91140. @@ -362,7 +361,7 @@
  91141. __THROW __nonnull ((1)) __attribute_deprecated__;
  91142. /* Return the currently used minimal stack size. */
  91143. -extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
  91144. +extern int pthread_attr_getstacksize (const pthread_attr_t *__restrict
  91145. __attr, size_t *__restrict __stacksize)
  91146. __THROW __nonnull ((1, 2));
  91147. @@ -375,7 +374,7 @@
  91148. #ifdef __USE_XOPEN2K
  91149. /* Return the previously set address for the stack. */
  91150. -extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
  91151. +extern int pthread_attr_getstack (const pthread_attr_t *__restrict __attr,
  91152. void **__restrict __stackaddr,
  91153. size_t *__restrict __stacksize)
  91154. __THROW __nonnull ((1, 2, 3));
  91155. @@ -392,12 +391,12 @@
  91156. the processors represented in CPUSET. */
  91157. extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
  91158. size_t __cpusetsize,
  91159. - __const cpu_set_t *__cpuset)
  91160. + const cpu_set_t *__cpuset)
  91161. __THROW __nonnull ((1, 3));
  91162. /* Get bit set in CPUSET representing the processors threads created with
  91163. ATTR can run on. */
  91164. -extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr,
  91165. +extern int pthread_attr_getaffinity_np (const pthread_attr_t *__attr,
  91166. size_t __cpusetsize,
  91167. cpu_set_t *__cpuset)
  91168. __THROW __nonnull ((1, 3));
  91169. @@ -416,7 +415,7 @@
  91170. /* Set the scheduling parameters for TARGET_THREAD according to POLICY
  91171. and *PARAM. */
  91172. extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
  91173. - __const struct sched_param *__param)
  91174. + const struct sched_param *__param)
  91175. __THROW __nonnull ((3));
  91176. /* Return in *POLICY and *PARAM the scheduling parameters for TARGET_THREAD. */
  91177. @@ -449,7 +448,7 @@
  91178. /* Limit specified thread TH to run only on the processors represented
  91179. in CPUSET. */
  91180. extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
  91181. - __const cpu_set_t *__cpuset)
  91182. + const cpu_set_t *__cpuset)
  91183. __THROW __nonnull ((3));
  91184. /* Get bit set in CPUSET representing the processors TH can run on. */
  91185. @@ -581,6 +580,7 @@
  91186. function the compiler is free to decide inlining the change when
  91187. needed or fall back on the copy which must exist somewhere
  91188. else. */
  91189. +void __pthread_cleanup_routine (struct __pthread_cleanup_frame *__frame);
  91190. __extern_inline void
  91191. __pthread_cleanup_routine (struct __pthread_cleanup_frame *__frame)
  91192. {
  91193. @@ -724,7 +724,7 @@
  91194. /* Initialize a mutex. */
  91195. extern int pthread_mutex_init (pthread_mutex_t *__mutex,
  91196. - __const pthread_mutexattr_t *__mutexattr)
  91197. + const pthread_mutexattr_t *__mutexattr)
  91198. __THROW __nonnull ((1));
  91199. /* Destroy a mutex. */
  91200. @@ -742,7 +742,7 @@
  91201. #ifdef __USE_XOPEN2K
  91202. /* Wait until lock becomes available, or specified time passes. */
  91203. extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
  91204. - __const struct timespec *__restrict
  91205. + const struct timespec *__restrict
  91206. __abstime) __THROW __nonnull ((1, 2));
  91207. #endif
  91208. @@ -752,7 +752,7 @@
  91209. /* Get the priority ceiling of MUTEX. */
  91210. -extern int pthread_mutex_getprioceiling (__const pthread_mutex_t *
  91211. +extern int pthread_mutex_getprioceiling (const pthread_mutex_t *
  91212. __restrict __mutex,
  91213. int *__restrict __prioceiling)
  91214. __THROW __nonnull ((1, 2));
  91215. @@ -788,7 +788,7 @@
  91216. __THROW __nonnull ((1));
  91217. /* Get the process-shared flag of the mutex attribute ATTR. */
  91218. -extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
  91219. +extern int pthread_mutexattr_getpshared (const pthread_mutexattr_t *
  91220. __restrict __attr,
  91221. int *__restrict __pshared)
  91222. __THROW __nonnull ((1, 2));
  91223. @@ -800,7 +800,7 @@
  91224. #if defined __USE_UNIX98 || defined __USE_XOPEN2K8
  91225. /* Return in *KIND the mutex kind attribute in *ATTR. */
  91226. -extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
  91227. +extern int pthread_mutexattr_gettype (const pthread_mutexattr_t *__restrict
  91228. __attr, int *__restrict __kind)
  91229. __THROW __nonnull ((1, 2));
  91230. @@ -812,7 +812,7 @@
  91231. #endif
  91232. /* Return in *PROTOCOL the mutex protocol attribute in *ATTR. */
  91233. -extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t *
  91234. +extern int pthread_mutexattr_getprotocol (const pthread_mutexattr_t *
  91235. __restrict __attr,
  91236. int *__restrict __protocol)
  91237. __THROW __nonnull ((1, 2));
  91238. @@ -824,7 +824,7 @@
  91239. __THROW __nonnull ((1));
  91240. /* Return in *PRIOCEILING the mutex prioceiling attribute in *ATTR. */
  91241. -extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t *
  91242. +extern int pthread_mutexattr_getprioceiling (const pthread_mutexattr_t *
  91243. __restrict __attr,
  91244. int *__restrict __prioceiling)
  91245. __THROW __nonnull ((1, 2));
  91246. @@ -836,11 +836,11 @@
  91247. #ifdef __USE_XOPEN2K
  91248. /* Get the robustness flag of the mutex attribute ATTR. */
  91249. -extern int pthread_mutexattr_getrobust (__const pthread_mutexattr_t *__attr,
  91250. +extern int pthread_mutexattr_getrobust (const pthread_mutexattr_t *__attr,
  91251. int *__robustness)
  91252. __THROW __nonnull ((1, 2));
  91253. # ifdef __USE_GNU
  91254. -extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr,
  91255. +extern int pthread_mutexattr_getrobust_np (const pthread_mutexattr_t *__attr,
  91256. int *__robustness)
  91257. __THROW __nonnull ((1, 2));
  91258. # endif
  91259. @@ -863,7 +863,7 @@
  91260. /* Initialize read-write lock RWLOCK using attributes ATTR, or use
  91261. the default values if later is NULL. */
  91262. extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
  91263. - __const pthread_rwlockattr_t *__restrict
  91264. + const pthread_rwlockattr_t *__restrict
  91265. __attr) __THROW __nonnull ((1));
  91266. /* Destroy read-write lock RWLOCK. */
  91267. @@ -881,7 +881,7 @@
  91268. # ifdef __USE_XOPEN2K
  91269. /* Try to acquire read lock for RWLOCK or return after specfied time. */
  91270. extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
  91271. - __const struct timespec *__restrict
  91272. + const struct timespec *__restrict
  91273. __abstime) __THROW __nonnull ((1, 2));
  91274. # endif
  91275. @@ -896,7 +896,7 @@
  91276. # ifdef __USE_XOPEN2K
  91277. /* Try to acquire write lock for RWLOCK or return after specfied time. */
  91278. extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
  91279. - __const struct timespec *__restrict
  91280. + const struct timespec *__restrict
  91281. __abstime) __THROW __nonnull ((1, 2));
  91282. # endif
  91283. @@ -916,7 +916,7 @@
  91284. __THROW __nonnull ((1));
  91285. /* Return current setting of process-shared attribute of ATTR in PSHARED. */
  91286. -extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
  91287. +extern int pthread_rwlockattr_getpshared (const pthread_rwlockattr_t *
  91288. __restrict __attr,
  91289. int *__restrict __pshared)
  91290. __THROW __nonnull ((1, 2));
  91291. @@ -927,7 +927,7 @@
  91292. __THROW __nonnull ((1));
  91293. /* Return current setting of reader/writer preference. */
  91294. -extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *
  91295. +extern int pthread_rwlockattr_getkind_np (const pthread_rwlockattr_t *
  91296. __restrict __attr,
  91297. int *__restrict __pref)
  91298. __THROW __nonnull ((1, 2));
  91299. @@ -943,7 +943,7 @@
  91300. /* Initialize condition variable COND using attributes ATTR, or use
  91301. the default values if later is NULL. */
  91302. extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
  91303. - __const pthread_condattr_t *__restrict
  91304. + const pthread_condattr_t *__restrict
  91305. __cond_attr) __THROW __nonnull ((1));
  91306. /* Destroy condition variable COND. */
  91307. @@ -976,7 +976,7 @@
  91308. __THROW. */
  91309. extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
  91310. pthread_mutex_t *__restrict __mutex,
  91311. - __const struct timespec *__restrict
  91312. + const struct timespec *__restrict
  91313. __abstime) __nonnull ((1, 2, 3));
  91314. /* Functions for handling condition variable attributes. */
  91315. @@ -990,7 +990,7 @@
  91316. __THROW __nonnull ((1));
  91317. /* Get the process-shared flag of the condition variable attribute ATTR. */
  91318. -extern int pthread_condattr_getpshared (__const pthread_condattr_t *
  91319. +extern int pthread_condattr_getpshared (const pthread_condattr_t *
  91320. __restrict __attr,
  91321. int *__restrict __pshared)
  91322. __THROW __nonnull ((1, 2));
  91323. @@ -1001,7 +1001,7 @@
  91324. #ifdef __USE_XOPEN2K
  91325. /* Get the clock selected for the conditon variable attribute ATTR. */
  91326. -extern int pthread_condattr_getclock (__const pthread_condattr_t *
  91327. +extern int pthread_condattr_getclock (const pthread_condattr_t *
  91328. __restrict __attr,
  91329. __clockid_t *__restrict __clock_id)
  91330. __THROW __nonnull ((1, 2));
  91331. @@ -1043,7 +1043,7 @@
  91332. /* Initialize BARRIER with the attributes in ATTR. The barrier is
  91333. opened when COUNT waiters arrived. */
  91334. extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
  91335. - __const pthread_barrierattr_t *__restrict
  91336. + const pthread_barrierattr_t *__restrict
  91337. __attr, unsigned int __count)
  91338. __THROW __nonnull ((1));
  91339. @@ -1065,7 +1065,7 @@
  91340. __THROW __nonnull ((1));
  91341. /* Get the process-shared flag of the barrier attribute ATTR. */
  91342. -extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
  91343. +extern int pthread_barrierattr_getpshared (const pthread_barrierattr_t *
  91344. __restrict __attr,
  91345. int *__restrict __pshared)
  91346. __THROW __nonnull ((1, 2));
  91347. @@ -1097,7 +1097,7 @@
  91348. /* Store POINTER in the thread-specific data slot identified by KEY. */
  91349. extern int pthread_setspecific (pthread_key_t __key,
  91350. - __const void *__pointer) __THROW ;
  91351. + const void *__pointer) __THROW ;
  91352. #ifdef __USE_XOPEN2K
  91353. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_once.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_once.c
  91354. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
  91355. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_once.c 2014-06-02 17:40:35.070717830 +0200
  91356. @@ -13,9 +13,8 @@
  91357. Lesser General Public License for more details.
  91358. You should have received a copy of the GNU Lesser General Public
  91359. - License along with the GNU C Library; if not, write to the Free
  91360. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91361. - 02111-1307 USA. */
  91362. + License along with the GNU C Library; if not, see
  91363. + <http://www.gnu.org/licenses/>. */
  91364. #include "pthreadP.h"
  91365. #include <lowlevellock.h>
  91366. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c
  91367. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c 2012-05-15 09:20:09.000000000 +0200
  91368. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_rdlock.c 2014-06-02 17:40:35.070717830 +0200
  91369. @@ -13,9 +13,8 @@
  91370. Lesser General Public License for more details.
  91371. You should have received a copy of the GNU Lesser General Public
  91372. - License along with the GNU C Library; if not, write to the Free
  91373. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91374. - 02111-1307 USA. */
  91375. + License along with the GNU C Library; if not, see
  91376. + <http://www.gnu.org/licenses/>. */
  91377. #include <errno.h>
  91378. #include <sysdep.h>
  91379. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c
  91380. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c 2012-05-15 09:20:09.000000000 +0200
  91381. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedrdlock.c 2014-06-02 17:40:35.070717830 +0200
  91382. @@ -13,9 +13,8 @@
  91383. Lesser General Public License for more details.
  91384. You should have received a copy of the GNU Lesser General Public
  91385. - License along with the GNU C Library; if not, write to the Free
  91386. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91387. - 02111-1307 USA. */
  91388. + License along with the GNU C Library; if not, see
  91389. + <http://www.gnu.org/licenses/>. */
  91390. #include <errno.h>
  91391. #include <sysdep.h>
  91392. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedwrlock.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedwrlock.c
  91393. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedwrlock.c 2012-05-15 09:20:09.000000000 +0200
  91394. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_timedwrlock.c 2014-06-02 17:40:35.070717830 +0200
  91395. @@ -13,9 +13,8 @@
  91396. Lesser General Public License for more details.
  91397. You should have received a copy of the GNU Lesser General Public
  91398. - License along with the GNU C Library; if not, write to the Free
  91399. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91400. - 02111-1307 USA. */
  91401. + License along with the GNU C Library; if not, see
  91402. + <http://www.gnu.org/licenses/>. */
  91403. #include <errno.h>
  91404. #include <sysdep.h>
  91405. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c
  91406. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c 2012-05-15 09:20:09.000000000 +0200
  91407. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_unlock.c 2014-06-02 17:40:35.070717830 +0200
  91408. @@ -13,9 +13,8 @@
  91409. Lesser General Public License for more details.
  91410. You should have received a copy of the GNU Lesser General Public
  91411. - License along with the GNU C Library; if not, write to the Free
  91412. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91413. - 02111-1307 USA. */
  91414. + License along with the GNU C Library; if not, see
  91415. + <http://www.gnu.org/licenses/>. */
  91416. #include <errno.h>
  91417. #include <sysdep.h>
  91418. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c
  91419. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c 2012-05-15 09:20:09.000000000 +0200
  91420. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_rwlock_wrlock.c 2014-06-02 17:40:35.070717830 +0200
  91421. @@ -13,9 +13,8 @@
  91422. Lesser General Public License for more details.
  91423. You should have received a copy of the GNU Lesser General Public
  91424. - License along with the GNU C Library; if not, write to the Free
  91425. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91426. - 02111-1307 USA. */
  91427. + License along with the GNU C Library; if not, see
  91428. + <http://www.gnu.org/licenses/>. */
  91429. #include <errno.h>
  91430. #include <sysdep.h>
  91431. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_sigmask.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_sigmask.c
  91432. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_sigmask.c 2012-05-15 09:20:09.000000000 +0200
  91433. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_sigmask.c 2014-06-02 17:40:35.070717830 +0200
  91434. @@ -13,9 +13,8 @@
  91435. Lesser General Public License for more details.
  91436. You should have received a copy of the GNU Lesser General Public
  91437. - License along with the GNU C Library; if not, write to the Free
  91438. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91439. - 02111-1307 USA. */
  91440. + License along with the GNU C Library; if not, see
  91441. + <http://www.gnu.org/licenses/>. */
  91442. #include <errno.h>
  91443. #include <signal.h>
  91444. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_spin_destroy.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_spin_destroy.c
  91445. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_spin_destroy.c 2012-05-15 09:20:09.000000000 +0200
  91446. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_spin_destroy.c 2014-06-02 17:40:35.070717830 +0200
  91447. @@ -13,9 +13,8 @@
  91448. Lesser General Public License for more details.
  91449. You should have received a copy of the GNU Lesser General Public
  91450. - License along with the GNU C Library; if not, write to the Free
  91451. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91452. - 02111-1307 USA. */
  91453. + License along with the GNU C Library; if not, see
  91454. + <http://www.gnu.org/licenses/>. */
  91455. #include "pthreadP.h"
  91456. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_spin_init.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_spin_init.c
  91457. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_spin_init.c 2012-05-15 09:20:09.000000000 +0200
  91458. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_spin_init.c 2014-06-02 17:40:35.070717830 +0200
  91459. @@ -14,9 +14,8 @@
  91460. Lesser General Public License for more details.
  91461. You should have received a copy of the GNU Lesser General Public
  91462. - License along with the GNU C Library; if not, write to the Free
  91463. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91464. - 02111-1307 USA. */
  91465. + License along with the GNU C Library; if not, see
  91466. + <http://www.gnu.org/licenses/>. */
  91467. #include "pthreadP.h"
  91468. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_spin_unlock.c uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_spin_unlock.c
  91469. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pthread_spin_unlock.c 2012-05-15 09:20:09.000000000 +0200
  91470. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pthread_spin_unlock.c 2014-06-02 17:40:35.070717830 +0200
  91471. @@ -14,9 +14,8 @@
  91472. Lesser General Public License for more details.
  91473. You should have received a copy of the GNU Lesser General Public
  91474. - License along with the GNU C Library; if not, write to the Free
  91475. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91476. - 02111-1307 USA. */
  91477. + License along with the GNU C Library; if not, see
  91478. + <http://www.gnu.org/licenses/>. */
  91479. #include "pthreadP.h"
  91480. #include <atomic.h>
  91481. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-initfini.c uClibc-git/libpthread/nptl/sysdeps/pthread/pt-initfini.c
  91482. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  91483. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pt-initfini.c 2014-06-02 17:40:35.070717830 +0200
  91484. @@ -23,8 +23,7 @@
  91485. You should have received a copy of the GNU Lesser General Public
  91486. License along with the GNU C Library; see the file COPYING.LIB. If not,
  91487. - write to the Free Software Foundation, 59 Temple Place - Suite 330,
  91488. - Boston, MA 02111-1307, USA. */
  91489. + see <http://www.gnu.org/licenses/>. */
  91490. /* This file is compiled into assembly code which is then munged by a sed
  91491. script into two files: crti.s and crtn.s.
  91492. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-longjmp.c uClibc-git/libpthread/nptl/sysdeps/pthread/pt-longjmp.c
  91493. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-longjmp.c 2012-05-15 09:20:09.000000000 +0200
  91494. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pt-longjmp.c 2014-06-02 17:40:35.070717830 +0200
  91495. @@ -13,14 +13,15 @@
  91496. Lesser General Public License for more details.
  91497. You should have received a copy of the GNU Lesser General Public
  91498. - License along with the GNU C Library; if not, write to the Free
  91499. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91500. - 02111-1307 USA. */
  91501. + License along with the GNU C Library; if not, see
  91502. + <http://www.gnu.org/licenses/>. */
  91503. #include <setjmp.h>
  91504. #include <stdlib.h>
  91505. #include "pthreadP.h"
  91506. +extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
  91507. +
  91508. void
  91509. longjmp (jmp_buf env, int val)
  91510. {
  91511. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-sigaction.c uClibc-git/libpthread/nptl/sysdeps/pthread/pt-sigaction.c
  91512. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/pt-sigaction.c 2012-05-15 09:20:09.000000000 +0200
  91513. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/pt-sigaction.c 2014-06-02 17:40:35.070717830 +0200
  91514. @@ -13,9 +13,8 @@
  91515. Lesser General Public License for more details.
  91516. You should have received a copy of the GNU Lesser General Public
  91517. - License along with the GNU C Library; if not, write to the Free
  91518. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91519. - 02111-1307 USA. */
  91520. + License along with the GNU C Library; if not, see
  91521. + <http://www.gnu.org/licenses/>. */
  91522. #include <pthreadP.h>
  91523. #include <signal.h>
  91524. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/setxid.h uClibc-git/libpthread/nptl/sysdeps/pthread/setxid.h
  91525. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/setxid.h 2012-05-15 09:20:09.000000000 +0200
  91526. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/setxid.h 2014-06-02 17:40:35.086717918 +0200
  91527. @@ -12,9 +12,8 @@
  91528. Lesser General Public License for more details.
  91529. You should have received a copy of the GNU Lesser General Public
  91530. - License along with the GNU C Library; if not, write to the Free
  91531. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91532. - 02111-1307 USA. */
  91533. + License along with the GNU C Library; if not, see
  91534. + <http://www.gnu.org/licenses/>. */
  91535. #include <pthreadP.h>
  91536. #include <sysdep.h>
  91537. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/sigfillset.c uClibc-git/libpthread/nptl/sysdeps/pthread/sigfillset.c
  91538. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/sigfillset.c 1970-01-01 01:00:00.000000000 +0100
  91539. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/sigfillset.c 2014-06-02 17:40:35.086717918 +0200
  91540. @@ -0,0 +1,20 @@
  91541. +/* Copyright (C) 2003, 2005 Free Software Foundation, Inc.
  91542. + This file is part of the GNU C Library.
  91543. +
  91544. + The GNU C Library is free software; you can redistribute it and/or
  91545. + modify it under the terms of the GNU Lesser General Public
  91546. + License as published by the Free Software Foundation; either
  91547. + version 2.1 of the License, or (at your option) any later version.
  91548. +
  91549. + The GNU C Library is distributed in the hope that it will be useful,
  91550. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  91551. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  91552. + Lesser General Public License for more details.
  91553. +
  91554. + You should have received a copy of the GNU Lesser General Public
  91555. + License along with the GNU C Library; if not, see
  91556. + <http://www.gnu.org/licenses/>. */
  91557. +
  91558. +#include <pthreadP.h>
  91559. +
  91560. +#include <../../../../libc/signal/sigfillset.c>
  91561. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/sigprocmask.c uClibc-git/libpthread/nptl/sysdeps/pthread/sigprocmask.c
  91562. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/sigprocmask.c 1970-01-01 01:00:00.000000000 +0100
  91563. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/sigprocmask.c 2014-06-02 17:40:35.086717918 +0200
  91564. @@ -0,0 +1,21 @@
  91565. +/* Copyright (C) 1997,1998,1999,2000,2001,2003 Free Software Foundation, Inc.
  91566. + This file is part of the GNU C Library.
  91567. +
  91568. + The GNU C Library is free software; you can redistribute it and/or
  91569. + modify it under the terms of the GNU Lesser General Public
  91570. + License as published by the Free Software Foundation; either
  91571. + version 2.1 of the License, or (at your option) any later version.
  91572. +
  91573. + The GNU C Library is distributed in the hope that it will be useful,
  91574. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  91575. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  91576. + Lesser General Public License for more details.
  91577. +
  91578. + You should have received a copy of the GNU Lesser General Public
  91579. + License along with the GNU C Library; if not, see
  91580. + <http://www.gnu.org/licenses/>. */
  91581. +
  91582. +#include <pthreadP.h>
  91583. +#undef _LARGEFILE64_SOURCE
  91584. +
  91585. +#include <../../../../libc/sysdeps/linux/common/sigprocmask.c>
  91586. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_create.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_create.c
  91587. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_create.c 2012-05-15 09:20:09.000000000 +0200
  91588. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_create.c 2014-06-02 17:40:35.086717918 +0200
  91589. @@ -13,9 +13,8 @@
  91590. Lesser General Public License for more details.
  91591. You should have received a copy of the GNU Lesser General Public
  91592. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  91593. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  91594. - Boston, MA 02111-1307, USA. */
  91595. + License along with the GNU C Library; see the file COPYING.LIB. If
  91596. + not, see <http://www.gnu.org/licenses/>. */
  91597. #include <errno.h>
  91598. #include <signal.h>
  91599. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_delete.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_delete.c
  91600. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_delete.c 2012-05-15 09:20:09.000000000 +0200
  91601. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_delete.c 2014-06-02 17:40:35.086717918 +0200
  91602. @@ -13,9 +13,8 @@
  91603. Lesser General Public License for more details.
  91604. You should have received a copy of the GNU Lesser General Public
  91605. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  91606. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  91607. - Boston, MA 02111-1307, USA. */
  91608. + License along with the GNU C Library; see the file COPYING.LIB. If
  91609. + not, see <http://www.gnu.org/licenses/>. */
  91610. #include <assert.h>
  91611. #include <errno.h>
  91612. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_getoverr.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_getoverr.c
  91613. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_getoverr.c 2012-05-15 09:20:09.000000000 +0200
  91614. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_getoverr.c 2014-06-02 17:40:35.086717918 +0200
  91615. @@ -13,9 +13,8 @@
  91616. Lesser General Public License for more details.
  91617. You should have received a copy of the GNU Lesser General Public
  91618. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  91619. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  91620. - Boston, MA 02111-1307, USA. */
  91621. + License along with the GNU C Library; see the file COPYING.LIB. If
  91622. + not, see <http://www.gnu.org/licenses/>. */
  91623. #include <errno.h>
  91624. #include <pthread.h>
  91625. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_gettime.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_gettime.c
  91626. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_gettime.c 2012-05-15 09:20:09.000000000 +0200
  91627. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_gettime.c 2014-06-02 17:40:35.086717918 +0200
  91628. @@ -13,9 +13,8 @@
  91629. Lesser General Public License for more details.
  91630. You should have received a copy of the GNU Lesser General Public
  91631. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  91632. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  91633. - Boston, MA 02111-1307, USA. */
  91634. + License along with the GNU C Library; see the file COPYING.LIB. If
  91635. + not, see <http://www.gnu.org/licenses/>. */
  91636. #include <errno.h>
  91637. #include <pthread.h>
  91638. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_routines.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_routines.c
  91639. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_routines.c 2012-05-15 09:20:09.000000000 +0200
  91640. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_routines.c 2014-06-02 17:40:35.086717918 +0200
  91641. @@ -14,9 +14,8 @@
  91642. Lesser General Public License for more details.
  91643. You should have received a copy of the GNU Lesser General Public
  91644. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  91645. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  91646. - Boston, MA 02111-1307, USA. */
  91647. + License along with the GNU C Library; see the file COPYING.LIB. If
  91648. + not, see <http://www.gnu.org/licenses/>. */
  91649. #include <assert.h>
  91650. #include <errno.h>
  91651. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_settime.c uClibc-git/libpthread/nptl/sysdeps/pthread/timer_settime.c
  91652. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/timer_settime.c 2012-05-15 09:20:09.000000000 +0200
  91653. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/timer_settime.c 2014-06-02 17:40:35.086717918 +0200
  91654. @@ -13,9 +13,8 @@
  91655. Lesser General Public License for more details.
  91656. You should have received a copy of the GNU Lesser General Public
  91657. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  91658. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  91659. - Boston, MA 02111-1307, USA. */
  91660. + License along with the GNU C Library; see the file COPYING.LIB. If
  91661. + not, see <http://www.gnu.org/licenses/>. */
  91662. #include <errno.h>
  91663. #include <pthread.h>
  91664. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/tpp.c uClibc-git/libpthread/nptl/sysdeps/pthread/tpp.c
  91665. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/tpp.c 2012-05-15 09:20:09.000000000 +0200
  91666. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/tpp.c 2014-06-02 17:40:35.086717918 +0200
  91667. @@ -14,9 +14,8 @@
  91668. Lesser General Public License for more details.
  91669. You should have received a copy of the GNU Lesser General Public
  91670. - License along with the GNU C Library; if not, write to the Free
  91671. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91672. - 02111-1307 USA. */
  91673. + License along with the GNU C Library; if not, see
  91674. + <http://www.gnu.org/licenses/>. */
  91675. #include <assert.h>
  91676. #include <atomic.h>
  91677. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/unwind-forcedunwind.c uClibc-git/libpthread/nptl/sysdeps/pthread/unwind-forcedunwind.c
  91678. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/unwind-forcedunwind.c 2012-05-15 09:20:09.000000000 +0200
  91679. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/unwind-forcedunwind.c 2014-06-02 17:40:35.086717918 +0200
  91680. @@ -13,9 +13,8 @@
  91681. Lesser General Public License for more details.
  91682. You should have received a copy of the GNU Lesser General Public
  91683. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  91684. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  91685. - Boston, MA 02111-1307, USA. */
  91686. + License along with the GNU C Library; see the file COPYING.LIB. If
  91687. + not, see <http://www.gnu.org/licenses/>. */
  91688. #include <dlfcn.h>
  91689. #include <stdio.h>
  91690. @@ -112,6 +111,11 @@
  91691. _Unwind_Reason_Code
  91692. __gcc_personality_v0 (int version, _Unwind_Action actions,
  91693. _Unwind_Exception_Class exception_class,
  91694. + struct _Unwind_Exception *ue_header,
  91695. + struct _Unwind_Context *context);
  91696. +_Unwind_Reason_Code
  91697. +__gcc_personality_v0 (int version, _Unwind_Action actions,
  91698. + _Unwind_Exception_Class exception_class,
  91699. struct _Unwind_Exception *ue_header,
  91700. struct _Unwind_Context *context)
  91701. {
  91702. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/unwind-resume.c uClibc-git/libpthread/nptl/sysdeps/pthread/unwind-resume.c
  91703. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/pthread/unwind-resume.c 2012-05-15 09:20:09.000000000 +0200
  91704. +++ uClibc-git/libpthread/nptl/sysdeps/pthread/unwind-resume.c 2014-06-02 17:40:35.090717940 +0200
  91705. @@ -13,9 +13,8 @@
  91706. Lesser General Public License for more details.
  91707. You should have received a copy of the GNU Lesser General Public
  91708. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  91709. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  91710. - Boston, MA 02111-1307, USA. */
  91711. + License along with the GNU C Library; see the file COPYING.LIB. If
  91712. + not, see <http://www.gnu.org/licenses/>. */
  91713. #include <dlfcn.h>
  91714. #include <stdio.h>
  91715. @@ -66,6 +65,11 @@
  91716. _Unwind_Reason_Code
  91717. __gcc_personality_v0 (int version, _Unwind_Action actions,
  91718. _Unwind_Exception_Class exception_class,
  91719. + struct _Unwind_Exception *ue_header,
  91720. + struct _Unwind_Context *context);
  91721. +_Unwind_Reason_Code
  91722. +__gcc_personality_v0 (int version, _Unwind_Action actions,
  91723. + _Unwind_Exception_Class exception_class,
  91724. struct _Unwind_Exception *ue_header,
  91725. struct _Unwind_Context *context)
  91726. {
  91727. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/sh/dl-tls.h
  91728. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
  91729. +++ uClibc-git/libpthread/nptl/sysdeps/sh/dl-tls.h 2014-06-02 17:40:35.090717940 +0200
  91730. @@ -13,9 +13,8 @@
  91731. Lesser General Public License for more details.
  91732. You should have received a copy of the GNU Lesser General Public
  91733. - License along with the GNU C Library; if not, write to the Free
  91734. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91735. - 02111-1307 USA. */
  91736. + License along with the GNU C Library; if not, see
  91737. + <http://www.gnu.org/licenses/>. */
  91738. /* Type used for the representation of TLS information in the GOT. */
  91739. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/sh/jmpbuf-unwind.h
  91740. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  91741. +++ uClibc-git/libpthread/nptl/sysdeps/sh/jmpbuf-unwind.h 2014-06-02 17:40:35.090717940 +0200
  91742. @@ -13,9 +13,8 @@
  91743. Lesser General Public License for more details.
  91744. You should have received a copy of the GNU Lesser General Public
  91745. - License along with the GNU C Library; if not, write to the Free
  91746. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91747. - 02111-1307 USA. */
  91748. + License along with the GNU C Library; if not, see
  91749. + <http://www.gnu.org/licenses/>. */
  91750. #include <setjmp.h>
  91751. #include <stdint.h>
  91752. @@ -26,8 +25,3 @@
  91753. #define _JMPBUF_UNWINDS_ADJ(jmpbuf, address, adj) \
  91754. ((uintptr_t) (address) - (adj) < (uintptr_t) (jmpbuf)[0].__regs[7] - (adj))
  91755. -
  91756. -extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
  91757. -
  91758. -/* We use the normal lobngjmp for unwinding. */
  91759. -#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
  91760. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/sh/pthreaddef.h
  91761. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  91762. +++ uClibc-git/libpthread/nptl/sysdeps/sh/pthreaddef.h 2014-06-02 17:40:35.090717940 +0200
  91763. @@ -12,9 +12,8 @@
  91764. Lesser General Public License for more details.
  91765. You should have received a copy of the GNU Lesser General Public
  91766. - License along with the GNU C Library; if not, write to the Free
  91767. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91768. - 02111-1307 USA. */
  91769. + License along with the GNU C Library; if not, see
  91770. + <http://www.gnu.org/licenses/>. */
  91771. #include <sysdep.h>
  91772. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_init.c uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_init.c
  91773. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_init.c 2012-05-15 09:20:09.000000000 +0200
  91774. +++ uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_init.c 2014-06-02 17:40:35.090717940 +0200
  91775. @@ -13,8 +13,7 @@
  91776. Lesser General Public License for more details.
  91777. You should have received a copy of the GNU Lesser General Public
  91778. - License along with the GNU C Library; if not, write to the Free
  91779. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91780. - 02111-1307 USA. */
  91781. + License along with the GNU C Library; if not, see
  91782. + <http://www.gnu.org/licenses/>. */
  91783. /* Not needed. pthread_spin_init is an alias for pthread_spin_unlock. */
  91784. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_lock.c uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_lock.c
  91785. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
  91786. +++ uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_lock.c 2014-06-02 17:40:35.090717940 +0200
  91787. @@ -12,9 +12,8 @@
  91788. Lesser General Public License for more details.
  91789. You should have received a copy of the GNU Lesser General Public
  91790. - License along with the GNU C Library; if not, write to the Free
  91791. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91792. - 02111-1307 USA. */
  91793. + License along with the GNU C Library; if not, see
  91794. + <http://www.gnu.org/licenses/>. */
  91795. #include "pthreadP.h"
  91796. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_trylock.S
  91797. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
  91798. +++ uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_trylock.S 2014-06-02 17:40:35.090717940 +0200
  91799. @@ -12,9 +12,8 @@
  91800. Lesser General Public License for more details.
  91801. You should have received a copy of the GNU Lesser General Public
  91802. - License along with the GNU C Library; if not, write to the Free
  91803. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91804. - 02111-1307 USA. */
  91805. + License along with the GNU C Library; if not, see
  91806. + <http://www.gnu.org/licenses/>. */
  91807. #include <pthread-errnos.h>
  91808. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_unlock.S uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_unlock.S
  91809. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/pthread_spin_unlock.S 2012-05-15 09:20:09.000000000 +0200
  91810. +++ uClibc-git/libpthread/nptl/sysdeps/sh/pthread_spin_unlock.S 2014-06-02 17:40:35.090717940 +0200
  91811. @@ -12,9 +12,8 @@
  91812. Lesser General Public License for more details.
  91813. You should have received a copy of the GNU Lesser General Public
  91814. - License along with the GNU C Library; if not, write to the Free
  91815. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91816. - 02111-1307 USA. */
  91817. + License along with the GNU C Library; if not, see
  91818. + <http://www.gnu.org/licenses/>. */
  91819. .globl pthread_spin_unlock
  91820. .type pthread_spin_unlock,@function
  91821. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/tls.h uClibc-git/libpthread/nptl/sysdeps/sh/tls.h
  91822. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sh/tls.h 2012-05-15 09:20:09.000000000 +0200
  91823. +++ uClibc-git/libpthread/nptl/sysdeps/sh/tls.h 2014-06-02 17:40:35.090717940 +0200
  91824. @@ -13,9 +13,8 @@
  91825. Lesser General Public License for more details.
  91826. You should have received a copy of the GNU Lesser General Public
  91827. - License along with the GNU C Library; if not, write to the Free
  91828. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91829. - 02111-1307 USA. */
  91830. + License along with the GNU C Library; if not, see
  91831. + <http://www.gnu.org/licenses/>. */
  91832. #ifndef _TLS_H
  91833. #define _TLS_H
  91834. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/sparc/dl-tls.h
  91835. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
  91836. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/dl-tls.h 2014-06-02 17:40:35.090717940 +0200
  91837. @@ -13,9 +13,8 @@
  91838. Lesser General Public License for more details.
  91839. You should have received a copy of the GNU Lesser General Public
  91840. - License along with the GNU C Library; if not, write to the Free
  91841. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91842. - 02111-1307 USA. */
  91843. + License along with the GNU C Library; if not, see
  91844. + <http://www.gnu.org/licenses/>. */
  91845. /* Type used for the representation of TLS information in the GOT. */
  91846. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/jmpbuf-unwind.h
  91847. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  91848. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/jmpbuf-unwind.h 2014-06-02 17:40:35.090717940 +0200
  91849. @@ -13,9 +13,8 @@
  91850. Lesser General Public License for more details.
  91851. You should have received a copy of the GNU Lesser General Public
  91852. - License along with the GNU C Library; if not, write to the Free
  91853. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91854. - 02111-1307 USA. */
  91855. + License along with the GNU C Library; if not, see
  91856. + <http://www.gnu.org/licenses/>. */
  91857. #include <setjmp.h>
  91858. #include <stdint.h>
  91859. @@ -26,7 +25,3 @@
  91860. #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  91861. ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
  91862. -
  91863. -/* We use the normal longjmp for unwinding. */
  91864. -extern __typeof(longjmp) __libc_longjmp attribute_noreturn;
  91865. -#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
  91866. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/pthreaddef.h
  91867. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  91868. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/pthreaddef.h 2014-06-02 17:40:35.090717940 +0200
  91869. @@ -12,9 +12,8 @@
  91870. Lesser General Public License for more details.
  91871. You should have received a copy of the GNU Lesser General Public
  91872. - License along with the GNU C Library; if not, write to the Free
  91873. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91874. - 02111-1307 USA. */
  91875. + License along with the GNU C Library; if not, see
  91876. + <http://www.gnu.org/licenses/>. */
  91877. /* Default stack size. */
  91878. #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
  91879. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_lock.c uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_lock.c
  91880. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
  91881. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_lock.c 2014-06-02 17:40:35.090717940 +0200
  91882. @@ -13,16 +13,15 @@
  91883. Lesser General Public License for more details.
  91884. You should have received a copy of the GNU Lesser General Public
  91885. - License along with the GNU C Library; if not, write to the Free
  91886. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91887. - 02111-1307 USA. */
  91888. + License along with the GNU C Library; if not, see
  91889. + <http://www.gnu.org/licenses/>. */
  91890. #include "pthreadP.h"
  91891. int
  91892. pthread_spin_lock (pthread_spinlock_t *lock)
  91893. {
  91894. - __asm__ __volatile
  91895. + __asm__ __volatile__
  91896. ("1: ldstub [%0], %%g2\n"
  91897. " orcc %%g2, 0x0, %%g0\n"
  91898. " bne,a 2f\n"
  91899. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_trylock.c uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_trylock.c
  91900. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_trylock.c 2012-05-15 09:20:09.000000000 +0200
  91901. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/pthread_spin_trylock.c 2014-06-02 17:40:35.090717940 +0200
  91902. @@ -13,9 +13,8 @@
  91903. Lesser General Public License for more details.
  91904. You should have received a copy of the GNU Lesser General Public
  91905. - License along with the GNU C Library; if not, write to the Free
  91906. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91907. - 02111-1307 USA. */
  91908. + License along with the GNU C Library; if not, see
  91909. + <http://www.gnu.org/licenses/>. */
  91910. #include <errno.h>
  91911. #include "pthreadP.h"
  91912. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c
  91913. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
  91914. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc32/sparcv9/pthread_spin_lock.c 2014-06-02 17:40:35.090717940 +0200
  91915. @@ -13,16 +13,15 @@
  91916. Lesser General Public License for more details.
  91917. You should have received a copy of the GNU Lesser General Public
  91918. - License along with the GNU C Library; if not, write to the Free
  91919. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91920. - 02111-1307 USA. */
  91921. + License along with the GNU C Library; if not, see
  91922. + <http://www.gnu.org/licenses/>. */
  91923. #include "pthreadP.h"
  91924. int
  91925. pthread_spin_lock (pthread_spinlock_t *lock)
  91926. {
  91927. - __asm__ __volatile
  91928. + __asm__ __volatile__
  91929. ("1: ldstub [%0], %%g2\n"
  91930. " brnz,pn %%g2, 2f\n"
  91931. " membar #StoreLoad | #StoreStore\n"
  91932. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/jmpbuf-unwind.h
  91933. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  91934. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/jmpbuf-unwind.h 2014-06-02 17:40:35.090717940 +0200
  91935. @@ -13,9 +13,8 @@
  91936. Lesser General Public License for more details.
  91937. You should have received a copy of the GNU Lesser General Public
  91938. - License along with the GNU C Library; if not, write to the Free
  91939. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91940. - 02111-1307 USA. */
  91941. + License along with the GNU C Library; if not, see
  91942. + <http://www.gnu.org/licenses/>. */
  91943. #include <setjmp.h>
  91944. #include <stdint.h>
  91945. @@ -26,6 +25,3 @@
  91946. #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  91947. ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_SP] - (_adj))
  91948. -
  91949. -/* We use the normal lobngjmp for unwinding. */
  91950. -#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
  91951. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthreaddef.h
  91952. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  91953. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthreaddef.h 2014-06-02 17:40:35.090717940 +0200
  91954. @@ -12,9 +12,8 @@
  91955. Lesser General Public License for more details.
  91956. You should have received a copy of the GNU Lesser General Public
  91957. - License along with the GNU C Library; if not, write to the Free
  91958. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91959. - 02111-1307 USA. */
  91960. + License along with the GNU C Library; if not, see
  91961. + <http://www.gnu.org/licenses/>. */
  91962. /* Default stack size. */
  91963. #define ARCH_STACK_DEFAULT_SIZE (4 * 1024 * 1024)
  91964. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_lock.c uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_lock.c
  91965. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_lock.c 2012-05-15 09:20:09.000000000 +0200
  91966. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_lock.c 2014-06-02 17:40:35.090717940 +0200
  91967. @@ -13,16 +13,15 @@
  91968. Lesser General Public License for more details.
  91969. You should have received a copy of the GNU Lesser General Public
  91970. - License along with the GNU C Library; if not, write to the Free
  91971. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91972. - 02111-1307 USA. */
  91973. + License along with the GNU C Library; if not, see
  91974. + <http://www.gnu.org/licenses/>. */
  91975. #include "pthreadP.h"
  91976. int
  91977. pthread_spin_lock (pthread_spinlock_t *lock)
  91978. {
  91979. - __asm__ __volatile
  91980. + __asm__ __volatile__
  91981. ("1: ldstub [%0], %%g5\n"
  91982. " brnz,pn %%g5, 2f\n"
  91983. " membar #StoreLoad | #StoreStore\n"
  91984. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_trylock.c uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_trylock.c
  91985. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_trylock.c 2012-05-15 09:20:09.000000000 +0200
  91986. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_trylock.c 2014-06-02 17:40:35.090717940 +0200
  91987. @@ -13,9 +13,8 @@
  91988. Lesser General Public License for more details.
  91989. You should have received a copy of the GNU Lesser General Public
  91990. - License along with the GNU C Library; if not, write to the Free
  91991. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  91992. - 02111-1307 USA. */
  91993. + License along with the GNU C Library; if not, see
  91994. + <http://www.gnu.org/licenses/>. */
  91995. #include <errno.h>
  91996. #include "pthreadP.h"
  91997. @@ -24,7 +23,7 @@
  91998. pthread_spin_trylock (pthread_spinlock_t *lock)
  91999. {
  92000. int res;
  92001. - __asm__ __volatile
  92002. + __asm__ __volatile__
  92003. ("ldstub [%1], %0\n"
  92004. "membar #StoreLoad | #StoreStore"
  92005. : "=r" (res)
  92006. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_unlock.c uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_unlock.c
  92007. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_unlock.c 2012-05-15 09:20:09.000000000 +0200
  92008. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/sparc64/pthread_spin_unlock.c 2014-06-02 17:40:35.090717940 +0200
  92009. @@ -14,9 +14,8 @@
  92010. Lesser General Public License for more details.
  92011. You should have received a copy of the GNU Lesser General Public
  92012. - License along with the GNU C Library; if not, write to the Free
  92013. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92014. - 02111-1307 USA. */
  92015. + License along with the GNU C Library; if not, see
  92016. + <http://www.gnu.org/licenses/>. */
  92017. #include "pthreadP.h"
  92018. #include <atomic.h>
  92019. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/tls.h uClibc-git/libpthread/nptl/sysdeps/sparc/tls.h
  92020. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/sparc/tls.h 2012-05-15 09:20:09.000000000 +0200
  92021. +++ uClibc-git/libpthread/nptl/sysdeps/sparc/tls.h 2014-06-02 17:40:35.090717940 +0200
  92022. @@ -13,9 +13,8 @@
  92023. Lesser General Public License for more details.
  92024. You should have received a copy of the GNU Lesser General Public
  92025. - License along with the GNU C Library; if not, write to the Free
  92026. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92027. - 02111-1307 USA. */
  92028. + License along with the GNU C Library; if not, see
  92029. + <http://www.gnu.org/licenses/>. */
  92030. #ifndef _TLS_H
  92031. #define _TLS_H
  92032. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h
  92033. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
  92034. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/local_lim.h 2014-06-02 17:40:35.094717962 +0200
  92035. @@ -14,8 +14,7 @@
  92036. You should have received a copy of the GNU Library General Public
  92037. License along with the GNU C Library; see the file COPYING.LIB. If not,
  92038. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  92039. - Boston, MA 02111-1307, USA. */
  92040. + see <http://www.gnu.org/licenses/>. */
  92041. /* The kernel header pollutes the namespace with the NR_OPEN symbol
  92042. and defines LINK_MAX although filesystems have different maxima. A
  92043. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h
  92044. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  92045. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/pthreadtypes.h 2014-06-02 17:40:35.094717962 +0200
  92046. @@ -13,9 +13,8 @@
  92047. Lesser General Public License for more details.
  92048. You should have received a copy of the GNU Lesser General Public
  92049. - License along with the GNU C Library; if not, write to the Free
  92050. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92051. - 02111-1307 USA. */
  92052. + License along with the GNU C Library; if not, see
  92053. + <http://www.gnu.org/licenses/>. */
  92054. #ifndef _BITS_PTHREADTYPES_H
  92055. #define _BITS_PTHREADTYPES_H 1
  92056. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h
  92057. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  92058. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/bits/semaphore.h 2014-06-02 17:40:35.094717962 +0200
  92059. @@ -13,9 +13,8 @@
  92060. Lesser General Public License for more details.
  92061. You should have received a copy of the GNU Lesser General Public
  92062. - License along with the GNU C Library; if not, write to the Free
  92063. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92064. - 02111-1307 USA. */
  92065. + License along with the GNU C Library; if not, see
  92066. + <http://www.gnu.org/licenses/>. */
  92067. #ifndef _SEMAPHORE_H
  92068. # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  92069. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/createthread.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/createthread.c
  92070. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/createthread.c 2012-05-15 09:20:09.000000000 +0200
  92071. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/createthread.c 2014-06-02 17:40:35.094717962 +0200
  92072. @@ -12,9 +12,8 @@
  92073. Lesser General Public License for more details.
  92074. You should have received a copy of the GNU Lesser General Public
  92075. - License along with the GNU C Library; if not, write to the Free
  92076. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92077. - 02111-1307 USA. */
  92078. + License along with the GNU C Library; if not, see
  92079. + <http://www.gnu.org/licenses/>. */
  92080. /* Value passed to 'clone' for initialization of the thread register. */
  92081. #define TLS_VALUE (pd + 1)
  92082. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/fork.c
  92083. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/fork.c 2012-05-15 09:20:09.000000000 +0200
  92084. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/fork.c 2014-06-02 17:40:35.094717962 +0200
  92085. @@ -12,9 +12,8 @@
  92086. Lesser General Public License for more details.
  92087. You should have received a copy of the GNU Lesser General Public
  92088. - License along with the GNU C Library; if not, write to the Free
  92089. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92090. - 02111-1307 USA. */
  92091. + License along with the GNU C Library; if not, see
  92092. + <http://www.gnu.org/licenses/>. */
  92093. #include <sched.h>
  92094. #include <signal.h>
  92095. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h
  92096. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  92097. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/lowlevellock.h 2014-06-02 17:40:35.094717962 +0200
  92098. @@ -12,9 +12,8 @@
  92099. Lesser General Public License for more details.
  92100. You should have received a copy of the GNU Lesser General Public
  92101. - License along with the GNU C Libr \ary; if not, write to the Free
  92102. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92103. - 02111-1307 USA. */
  92104. + License along with the GNU C Library; see the file COPYING.LIB. If
  92105. + not, see <http://www.gnu.org/licenses/>. */
  92106. #ifndef _LOWLEVELLOCK_H
  92107. #define _LOWLEVELLOCK_H 1
  92108. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pthread_once.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pthread_once.c
  92109. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
  92110. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pthread_once.c 2014-06-02 17:40:35.094717962 +0200
  92111. @@ -12,9 +12,8 @@
  92112. Lesser General Public License for more details.
  92113. You should have received a copy of the GNU Lesser General Public
  92114. - License along with the GNU C Library; if not, write to the Free
  92115. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92116. - 02111-1307 USA. */
  92117. + License along with the GNU C Library; if not, see
  92118. + <http://www.gnu.org/licenses/>. */
  92119. #include "pthreadP.h"
  92120. #include <lowlevellock.h>
  92121. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pt-vfork.S
  92122. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  92123. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/pt-vfork.S 2014-06-02 17:40:35.094717962 +0200
  92124. @@ -12,9 +12,8 @@
  92125. Lesser General Public License for more details.
  92126. You should have received a copy of the GNU Lesser General Public
  92127. - License along with the GNU C Library; if not, write to the Free
  92128. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92129. - 02111-1307 USA. */
  92130. + License along with the GNU C Library; if not, see
  92131. + <http://www.gnu.org/licenses/>. */
  92132. #include <sysdep.h>
  92133. #include <tcb-offsets.h>
  92134. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h
  92135. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  92136. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/sysdep-cancel.h 2014-06-02 17:40:35.094717962 +0200
  92137. @@ -12,9 +12,8 @@
  92138. Lesser General Public License for more details.
  92139. You should have received a copy of the GNU Lesser General Public
  92140. - License along with the GNU C Library; if not, write to the Free
  92141. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92142. - 02111-1307 USA. */
  92143. + License along with the GNU C Library; if not, see
  92144. + <http://www.gnu.org/licenses/>. */
  92145. #include <sysdep.h>
  92146. #include <tls.h>
  92147. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/vfork.S
  92148. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/vfork.S 2012-05-15 09:20:09.000000000 +0200
  92149. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/alpha/vfork.S 2014-06-02 17:40:35.094717962 +0200
  92150. @@ -12,9 +12,8 @@
  92151. Lesser General Public License for more details.
  92152. You should have received a copy of the GNU Lesser General Public
  92153. - License along with the GNU C Library; if not, write to the Free
  92154. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92155. - 02111-1307 USA. */
  92156. + License along with the GNU C Library; if not, see
  92157. + <http://www.gnu.org/licenses/>. */
  92158. #include <sysdep.h>
  92159. #include <tcb-offsets.h>
  92160. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/pthreadtypes.h
  92161. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  92162. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/pthreadtypes.h 2014-06-02 17:40:35.094717962 +0200
  92163. @@ -12,9 +12,8 @@
  92164. Lesser General Public License for more details.
  92165. You should have received a copy of the GNU Lesser General Public
  92166. - License along with the GNU C Library; if not, write to the Free
  92167. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92168. - 02111-1307 USA. */
  92169. + License along with the GNU C Library; if not, see
  92170. + <http://www.gnu.org/licenses/>. */
  92171. #ifndef _BITS_PTHREADTYPES_H
  92172. #define _BITS_PTHREADTYPES_H 1
  92173. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/semaphore.h
  92174. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  92175. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/bits/semaphore.h 2014-06-02 17:40:35.094717962 +0200
  92176. @@ -12,9 +12,8 @@
  92177. Lesser General Public License for more details.
  92178. You should have received a copy of the GNU Lesser General Public
  92179. - License along with the GNU C Library; if not, write to the Free
  92180. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92181. - 02111-1307 USA. */
  92182. + License along with the GNU C Library; if not, see
  92183. + <http://www.gnu.org/licenses/>. */
  92184. #ifndef _SEMAPHORE_H
  92185. # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  92186. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/createthread.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/createthread.c
  92187. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/createthread.c 2012-05-15 09:20:09.000000000 +0200
  92188. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/createthread.c 2014-06-02 17:40:35.094717962 +0200
  92189. @@ -12,9 +12,8 @@
  92190. Lesser General Public License for more details.
  92191. You should have received a copy of the GNU Lesser General Public
  92192. - License along with the GNU C Library; if not, write to the Free
  92193. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92194. - 02111-1307 USA. */
  92195. + License along with the GNU C Library; if not, see
  92196. + <http://www.gnu.org/licenses/>. */
  92197. /* Value passed to 'clone' for initialization of the thread register. */
  92198. #define TLS_VALUE (pd + 1)
  92199. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/fork.c
  92200. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/fork.c 2012-05-15 09:20:09.000000000 +0200
  92201. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/fork.c 2014-06-02 17:40:35.094717962 +0200
  92202. @@ -13,9 +13,8 @@
  92203. Lesser General Public License for more details.
  92204. You should have received a copy of the GNU Lesser General Public
  92205. - License along with the GNU C Library; if not, write to the Free
  92206. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92207. - 02111-1307 USA. */
  92208. + License along with the GNU C Library; if not, see
  92209. + <http://www.gnu.org/licenses/>. */
  92210. #include <sched.h>
  92211. #include <signal.h>
  92212. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/libc-lowlevellock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/libc-lowlevellock.c
  92213. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/libc-lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
  92214. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/libc-lowlevellock.c 2014-06-02 17:40:35.094717962 +0200
  92215. @@ -13,9 +13,8 @@
  92216. Lesser General Public License for more details.
  92217. You should have received a copy of the GNU Lesser General Public
  92218. - License along with the GNU C Library; if not, write to the Free
  92219. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92220. - 02111-1307 USA. */
  92221. + License along with the GNU C Library; if not, see
  92222. + <http://www.gnu.org/licenses/>. */
  92223. /* No difference to lowlevellock.c, except we lose a couple of functions. */
  92224. #include "lowlevellock.c"
  92225. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.c
  92226. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
  92227. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.c 2014-06-02 17:40:35.094717962 +0200
  92228. @@ -13,9 +13,8 @@
  92229. Lesser General Public License for more details.
  92230. You should have received a copy of the GNU Lesser General Public
  92231. - License along with the GNU C Library; if not, write to the Free
  92232. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92233. - 02111-1307 USA. */
  92234. + License along with the GNU C Library; if not, see
  92235. + <http://www.gnu.org/licenses/>. */
  92236. #include <errno.h>
  92237. #include <sysdep.h>
  92238. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.h
  92239. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  92240. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/lowlevellock.h 2014-06-02 17:40:35.094717962 +0200
  92241. @@ -12,9 +12,8 @@
  92242. Lesser General Public License for more details.
  92243. You should have received a copy of the GNU Lesser General Public
  92244. - License along with the GNU C Library; if not, write to the Free
  92245. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92246. - 02111-1307 USA. */
  92247. + License along with the GNU C Library; if not, see
  92248. + <http://www.gnu.org/licenses/>. */
  92249. #ifndef _LOWLEVELLOCK_H
  92250. #define _LOWLEVELLOCK_H 1
  92251. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pthread_once.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pthread_once.c
  92252. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
  92253. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pthread_once.c 2014-06-02 17:40:35.094717962 +0200
  92254. @@ -12,9 +12,8 @@
  92255. Lesser General Public License for more details.
  92256. You should have received a copy of the GNU Lesser General Public
  92257. - License along with the GNU C Library; if not, write to the Free
  92258. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92259. - 02111-1307 USA. */
  92260. + License along with the GNU C Library; if not, see
  92261. + <http://www.gnu.org/licenses/>. */
  92262. #include "pthreadP.h"
  92263. #include <lowlevellock.h>
  92264. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-vfork.S
  92265. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  92266. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/pt-vfork.S 2014-06-02 17:40:35.094717962 +0200
  92267. @@ -12,9 +12,8 @@
  92268. Lesser General Public License for more details.
  92269. You should have received a copy of the GNU Lesser General Public
  92270. - License along with the GNU C Library; if not, write to the Free
  92271. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92272. - 02111-1307 USA. */
  92273. + License along with the GNU C Library; if not, see
  92274. + <http://www.gnu.org/licenses/>. */
  92275. #include <tcb-offsets.h>
  92276. @@ -35,4 +34,4 @@
  92277. cmp r0, #0; /* If we are the parent... */ \
  92278. strne r3, [r2, #PID_OFFSET] /* ... restore the saved PID. */
  92279. -#INCLUDE <../../../../../../../LIBC/SYSDEPS/LINUX/ARM/VFORK.S>
  92280. +#include "../../../../../../../libc/sysdeps/linux/arm/vfork.S"
  92281. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h
  92282. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  92283. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/sysdep-cancel.h 2014-06-02 17:40:35.094717962 +0200
  92284. @@ -12,9 +12,8 @@
  92285. Lesser General Public License for more details.
  92286. You should have received a copy of the GNU Lesser General Public
  92287. - License along with the GNU C Library; if not, write to the Free
  92288. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92289. - 02111-1307 USA. */
  92290. + License along with the GNU C Library; if not, see
  92291. + <http://www.gnu.org/licenses/>. */
  92292. #include <sysdep.h>
  92293. #include <tcb-offsets.h>
  92294. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c
  92295. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c 2012-05-15 09:20:09.000000000 +0200
  92296. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-forcedunwind.c 2014-06-02 17:40:35.098717984 +0200
  92297. @@ -13,9 +13,8 @@
  92298. Lesser General Public License for more details.
  92299. You should have received a copy of the GNU Lesser General Public
  92300. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  92301. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  92302. - Boston, MA 02111-1307, USA. */
  92303. + License along with the GNU C Library; see the file COPYING.LIB. If
  92304. + not, see <http://www.gnu.org/licenses/>. */
  92305. #include <dlfcn.h>
  92306. #include <stdio.h>
  92307. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c
  92308. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c 2012-05-15 09:20:09.000000000 +0200
  92309. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/unwind-resume.c 2014-06-02 17:40:35.098717984 +0200
  92310. @@ -13,9 +13,8 @@
  92311. Lesser General Public License for more details.
  92312. You should have received a copy of the GNU Lesser General Public
  92313. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  92314. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  92315. - Boston, MA 02111-1307, USA. */
  92316. + License along with the GNU C Library; see the file COPYING.LIB. If
  92317. + not, see <http://www.gnu.org/licenses/>. */
  92318. #include <dlfcn.h>
  92319. #include <stdio.h>
  92320. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/vfork.S
  92321. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/arm/vfork.S 2012-05-15 09:20:09.000000000 +0200
  92322. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/arm/vfork.S 2014-06-02 17:40:35.098717984 +0200
  92323. @@ -12,9 +12,8 @@
  92324. Lesser General Public License for more details.
  92325. You should have received a copy of the GNU Lesser General Public
  92326. - License along with the GNU C Library; if not, write to the Free
  92327. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92328. - 02111-1307 USA. */
  92329. + License along with the GNU C Library; if not, see
  92330. + <http://www.gnu.org/licenses/>. */
  92331. #include <tcb-offsets.h>
  92332. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/bits/local_lim.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/bits/local_lim.h
  92333. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
  92334. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/bits/local_lim.h 2014-06-02 17:40:35.098717984 +0200
  92335. @@ -13,9 +13,8 @@
  92336. Lesser General Public License for more details.
  92337. You should have received a copy of the GNU Lesser General Public
  92338. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  92339. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  92340. - Boston, MA 02111-1307, USA. */
  92341. + License along with the GNU C Library; see the file COPYING.LIB. If
  92342. + not, see <http://www.gnu.org/licenses/>. */
  92343. /* The kernel header pollutes the namespace with the NR_OPEN symbol
  92344. and defines LINK_MAX although filesystems have different maxima. A
  92345. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h
  92346. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h 2012-05-15 09:20:09.000000000 +0200
  92347. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/bits/posix_opt.h 2014-06-02 17:40:35.098717984 +0200
  92348. @@ -13,9 +13,8 @@
  92349. Lesser General Public License for more details.
  92350. You should have received a copy of the GNU Lesser General Public
  92351. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  92352. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  92353. - Boston, MA 02111-1307, USA. */
  92354. + License along with the GNU C Library; see the file COPYING.LIB. If
  92355. + not, see <http://www.gnu.org/licenses/>. */
  92356. #ifndef _BITS_POSIX_OPT_H
  92357. #define _BITS_POSIX_OPT_H 1
  92358. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/createthread.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/createthread.c
  92359. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/createthread.c 2012-05-15 09:20:09.000000000 +0200
  92360. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/createthread.c 2014-06-02 17:40:35.098717984 +0200
  92361. @@ -13,9 +13,8 @@
  92362. Lesser General Public License for more details.
  92363. You should have received a copy of the GNU Lesser General Public
  92364. - License along with the GNU C Library; if not, write to the Free
  92365. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92366. - 02111-1307 USA. */
  92367. + License along with the GNU C Library; if not, see
  92368. + <http://www.gnu.org/licenses/>. */
  92369. /* Value passed to 'clone' for initialization of the thread register. */
  92370. #define TLS_VALUE pd
  92371. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/exit-thread.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/exit-thread.S
  92372. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/exit-thread.S 2012-05-15 09:20:09.000000000 +0200
  92373. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/exit-thread.S 2014-06-02 17:40:35.098717984 +0200
  92374. @@ -12,9 +12,8 @@
  92375. Lesser General Public License for more details.
  92376. You should have received a copy of the GNU Lesser General Public
  92377. - License along with the GNU C Library; if not, write to the Free
  92378. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92379. - 02111-1307 USA. */
  92380. + License along with the GNU C Library; if not, see
  92381. + <http://www.gnu.org/licenses/>. */
  92382. #include <sysdep.h>
  92383. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/fork.c
  92384. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/fork.c 2012-05-15 09:20:09.000000000 +0200
  92385. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/fork.c 2014-06-02 17:40:35.098717984 +0200
  92386. @@ -13,9 +13,8 @@
  92387. Lesser General Public License for more details.
  92388. You should have received a copy of the GNU Lesser General Public
  92389. - License along with the GNU C Library; if not, write to the Free
  92390. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92391. - 02111-1307 USA. */
  92392. + License along with the GNU C Library; if not, see
  92393. + <http://www.gnu.org/licenses/>. */
  92394. #include <assert.h>
  92395. #include <stdlib.h>
  92396. @@ -58,9 +57,15 @@
  92397. #endif
  92398. }
  92399. -extern __typeof(fork) __libc_fork;
  92400. pid_t
  92401. -__libc_fork (void)
  92402. +#if defined __arm__ && defined __thumb__ && __GNUC_PREREQ (4,6)
  92403. +/* GCC PR target/53735
  92404. + * In thumb1 we run out of registers when compiling with Os so relax that
  92405. + * to have more registers available for spilling by using O2 here.
  92406. + */
  92407. +attribute_optimize("O2")
  92408. +#endif
  92409. +fork (void)
  92410. {
  92411. pid_t pid;
  92412. struct used_handler
  92413. @@ -223,7 +228,4 @@
  92414. return pid;
  92415. }
  92416. -weak_alias(__libc_fork,__fork)
  92417. -libc_hidden_proto(fork)
  92418. -weak_alias(__libc_fork,fork)
  92419. -libc_hidden_weak(fork)
  92420. +libc_hidden_def(fork)
  92421. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/fork.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/fork.h
  92422. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/fork.h 2012-05-15 09:20:09.000000000 +0200
  92423. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/fork.h 2014-06-02 17:40:35.098717984 +0200
  92424. @@ -13,9 +13,8 @@
  92425. Lesser General Public License for more details.
  92426. You should have received a copy of the GNU Lesser General Public
  92427. - License along with the GNU C Library; if not, write to the Free
  92428. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92429. - 02111-1307 USA. */
  92430. + License along with the GNU C Library; if not, see
  92431. + <http://www.gnu.org/licenses/>. */
  92432. #include <lowlevellock.h>
  92433. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/getpid.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/getpid.c
  92434. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/getpid.c 2012-05-15 09:20:09.000000000 +0200
  92435. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/getpid.c 2014-06-02 17:40:35.098717984 +0200
  92436. @@ -13,14 +13,17 @@
  92437. Lesser General Public License for more details.
  92438. You should have received a copy of the GNU Lesser General Public
  92439. - License along with the GNU C Library; if not, write to the Free
  92440. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92441. - 02111-1307 USA. */
  92442. + License along with the GNU C Library; if not, see
  92443. + <http://www.gnu.org/licenses/>. */
  92444. #include <unistd.h>
  92445. #include <tls.h>
  92446. #include <sysdep.h>
  92447. +#ifdef __NR_getxpid
  92448. +# undef __NR_getpid
  92449. +# define __NR_getpid __NR_getxpid
  92450. +#endif
  92451. #ifndef NOT_IN_libc
  92452. static inline __attribute__((always_inline)) pid_t really_getpid (pid_t oldval);
  92453. @@ -46,8 +49,7 @@
  92454. }
  92455. #endif
  92456. -extern __typeof(getpid) __getpid;
  92457. -pid_t
  92458. +static pid_t
  92459. __getpid (void)
  92460. {
  92461. #ifdef NOT_IN_libc
  92462. @@ -60,6 +62,8 @@
  92463. #endif
  92464. return result;
  92465. }
  92466. -libc_hidden_proto(getpid)
  92467. weak_alias(__getpid, getpid)
  92468. libc_hidden_weak(getpid)
  92469. +#if !defined NOT_IN_libc && !defined __NR_getppid
  92470. +strong_alias(getpid,getppid)
  92471. +#endif
  92472. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h
  92473. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  92474. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/pthreadtypes.h 2014-06-02 17:40:35.098717984 +0200
  92475. @@ -12,9 +12,8 @@
  92476. Lesser General Public License for more details.
  92477. You should have received a copy of the GNU Lesser General Public
  92478. - License along with the GNU C Library; if not, write to the Free
  92479. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92480. - 02111-1307 USA. */
  92481. + License along with the GNU C Library; if not, see
  92482. + <http://www.gnu.org/licenses/>. */
  92483. #ifndef _BITS_PTHREADTYPES_H
  92484. #define _BITS_PTHREADTYPES_H 1
  92485. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/semaphore.h
  92486. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  92487. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/bits/semaphore.h 2014-06-02 17:40:35.098717984 +0200
  92488. @@ -13,9 +13,8 @@
  92489. Lesser General Public License for more details.
  92490. You should have received a copy of the GNU Lesser General Public
  92491. - License along with the GNU C Library; if not, write to the Free
  92492. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92493. - 02111-1307 USA. */
  92494. + License along with the GNU C Library; if not, see
  92495. + <http://www.gnu.org/licenses/>. */
  92496. #ifndef _SEMAPHORE_H
  92497. # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  92498. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/createthread.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/createthread.c
  92499. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/createthread.c 2012-05-15 09:20:09.000000000 +0200
  92500. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/createthread.c 2014-06-02 17:40:35.098717984 +0200
  92501. @@ -13,9 +13,8 @@
  92502. Lesser General Public License for more details.
  92503. You should have received a copy of the GNU Lesser General Public
  92504. - License along with the GNU C Library; if not, write to the Free
  92505. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92506. - 02111-1307 USA. */
  92507. + License along with the GNU C Library; if not, see
  92508. + <http://www.gnu.org/licenses/>. */
  92509. /* The "thread register" gets initialized from a segment descriptor.
  92510. Initialize such a descriptor first. */
  92511. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/fork.c
  92512. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/fork.c 2012-05-15 09:20:09.000000000 +0200
  92513. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/fork.c 2014-06-02 17:40:35.098717984 +0200
  92514. @@ -13,9 +13,8 @@
  92515. Lesser General Public License for more details.
  92516. You should have received a copy of the GNU Lesser General Public
  92517. - License along with the GNU C Library; if not, write to the Free
  92518. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92519. - 02111-1307 USA. */
  92520. + License along with the GNU C Library; if not, see
  92521. + <http://www.gnu.org/licenses/>. */
  92522. #include <sched.h>
  92523. #include <signal.h>
  92524. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S
  92525. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
  92526. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/libc-lowlevellock.S 2014-06-02 17:40:35.098717984 +0200
  92527. @@ -13,8 +13,7 @@
  92528. Lesser General Public License for more details.
  92529. You should have received a copy of the GNU Lesser General Public
  92530. - License along with the GNU C Library; if not, write to the Free
  92531. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92532. - 02111-1307 USA. */
  92533. + License along with the GNU C Library; if not, see
  92534. + <http://www.gnu.org/licenses/>. */
  92535. #include "lowlevellock.S"
  92536. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S
  92537. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
  92538. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevellock.S 2014-06-02 17:40:35.098717984 +0200
  92539. @@ -13,9 +13,8 @@
  92540. Lesser General Public License for more details.
  92541. You should have received a copy of the GNU Lesser General Public
  92542. - License along with the GNU C Library; if not, write to the Free
  92543. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92544. - 02111-1307 USA. */
  92545. + License along with the GNU C Library; if not, see
  92546. + <http://www.gnu.org/licenses/>. */
  92547. #include <sysdep.h>
  92548. #include <pthread-errnos.h>
  92549. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S
  92550. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S 2012-05-15 09:20:09.000000000 +0200
  92551. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/lowlevelrobustlock.S 2014-06-02 17:40:35.098717984 +0200
  92552. @@ -13,9 +13,8 @@
  92553. Lesser General Public License for more details.
  92554. You should have received a copy of the GNU Lesser General Public
  92555. - License along with the GNU C Library; if not, write to the Free
  92556. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92557. - 02111-1307 USA. */
  92558. + License along with the GNU C Library; if not, see
  92559. + <http://www.gnu.org/licenses/>. */
  92560. #include <sysdep.h>
  92561. #include <pthread-errnos.h>
  92562. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S
  92563. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S 2012-05-15 09:20:09.000000000 +0200
  92564. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_barrier_wait.S 2014-06-02 17:40:35.098717984 +0200
  92565. @@ -13,9 +13,8 @@
  92566. Lesser General Public License for more details.
  92567. You should have received a copy of the GNU Lesser General Public
  92568. - License along with the GNU C Library; if not, write to the Free
  92569. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92570. - 02111-1307 USA. */
  92571. + License along with the GNU C Library; if not, see
  92572. + <http://www.gnu.org/licenses/>. */
  92573. #include <sysdep.h>
  92574. #include <lowlevellock.h>
  92575. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S
  92576. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S 2012-05-15 09:20:09.000000000 +0200
  92577. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S 2014-06-02 17:40:35.098717984 +0200
  92578. @@ -13,9 +13,8 @@
  92579. Lesser General Public License for more details.
  92580. You should have received a copy of the GNU Lesser General Public
  92581. - License along with the GNU C Library; if not, write to the Free
  92582. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92583. - 02111-1307 USA. */
  92584. + License along with the GNU C Library; if not, see
  92585. + <http://www.gnu.org/licenses/>. */
  92586. #include <sysdep.h>
  92587. #include <lowlevellock.h>
  92588. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S
  92589. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S 2012-05-15 09:20:09.000000000 +0200
  92590. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_signal.S 2014-06-02 17:40:35.098717984 +0200
  92591. @@ -13,9 +13,8 @@
  92592. Lesser General Public License for more details.
  92593. You should have received a copy of the GNU Lesser General Public
  92594. - License along with the GNU C Library; if not, write to the Free
  92595. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92596. - 02111-1307 USA. */
  92597. + License along with the GNU C Library; if not, see
  92598. + <http://www.gnu.org/licenses/>. */
  92599. #include <sysdep.h>
  92600. #include <lowlevellock.h>
  92601. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S
  92602. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S 2012-05-15 09:20:09.000000000 +0200
  92603. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_timedwait.S 2014-06-02 17:40:35.098717984 +0200
  92604. @@ -13,9 +13,8 @@
  92605. Lesser General Public License for more details.
  92606. You should have received a copy of the GNU Lesser General Public
  92607. - License along with the GNU C Library; if not, write to the Free
  92608. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92609. - 02111-1307 USA. */
  92610. + License along with the GNU C Library; if not, see
  92611. + <http://www.gnu.org/licenses/>. */
  92612. #include <sysdep.h>
  92613. #include <lowlevellock.h>
  92614. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S
  92615. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2012-05-15 09:20:09.000000000 +0200
  92616. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_cond_wait.S 2014-06-02 17:40:35.098717984 +0200
  92617. @@ -13,9 +13,8 @@
  92618. Lesser General Public License for more details.
  92619. You should have received a copy of the GNU Lesser General Public
  92620. - License along with the GNU C Library; if not, write to the Free
  92621. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92622. - 02111-1307 USA. */
  92623. + License along with the GNU C Library; if not, see
  92624. + <http://www.gnu.org/licenses/>. */
  92625. #include <sysdep.h>
  92626. #include <lowlevellock.h>
  92627. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S
  92628. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S 2012-05-15 09:20:09.000000000 +0200
  92629. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_rdlock.S 2014-06-02 17:40:35.098717984 +0200
  92630. @@ -13,9 +13,8 @@
  92631. Lesser General Public License for more details.
  92632. You should have received a copy of the GNU Lesser General Public
  92633. - License along with the GNU C Library; if not, write to the Free
  92634. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92635. - 02111-1307 USA. */
  92636. + License along with the GNU C Library; if not, see
  92637. + <http://www.gnu.org/licenses/>. */
  92638. #include <sysdep.h>
  92639. #include <lowlevellock.h>
  92640. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S
  92641. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S 2012-05-15 09:20:09.000000000 +0200
  92642. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedrdlock.S 2014-06-02 17:40:35.098717984 +0200
  92643. @@ -13,9 +13,8 @@
  92644. Lesser General Public License for more details.
  92645. You should have received a copy of the GNU Lesser General Public
  92646. - License along with the GNU C Library; if not, write to the Free
  92647. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92648. - 02111-1307 USA. */
  92649. + License along with the GNU C Library; if not, see
  92650. + <http://www.gnu.org/licenses/>. */
  92651. #include <sysdep.h>
  92652. #include <lowlevellock.h>
  92653. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S
  92654. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S 2012-05-15 09:20:09.000000000 +0200
  92655. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_timedwrlock.S 2014-06-02 17:40:35.098717984 +0200
  92656. @@ -13,9 +13,8 @@
  92657. Lesser General Public License for more details.
  92658. You should have received a copy of the GNU Lesser General Public
  92659. - License along with the GNU C Library; if not, write to the Free
  92660. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92661. - 02111-1307 USA. */
  92662. + License along with the GNU C Library; if not, see
  92663. + <http://www.gnu.org/licenses/>. */
  92664. #include <sysdep.h>
  92665. #include <lowlevellock.h>
  92666. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S
  92667. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S 2012-05-15 09:20:09.000000000 +0200
  92668. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_unlock.S 2014-06-02 17:40:35.098717984 +0200
  92669. @@ -13,9 +13,8 @@
  92670. Lesser General Public License for more details.
  92671. You should have received a copy of the GNU Lesser General Public
  92672. - License along with the GNU C Library; if not, write to the Free
  92673. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92674. - 02111-1307 USA. */
  92675. + License along with the GNU C Library; if not, see
  92676. + <http://www.gnu.org/licenses/>. */
  92677. #include <sysdep.h>
  92678. #include <lowlevellock.h>
  92679. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S
  92680. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S 2012-05-15 09:20:09.000000000 +0200
  92681. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/pthread_rwlock_wrlock.S 2014-06-02 17:40:35.098717984 +0200
  92682. @@ -13,9 +13,8 @@
  92683. Lesser General Public License for more details.
  92684. You should have received a copy of the GNU Lesser General Public
  92685. - License along with the GNU C Library; if not, write to the Free
  92686. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92687. - 02111-1307 USA. */
  92688. + License along with the GNU C Library; if not, see
  92689. + <http://www.gnu.org/licenses/>. */
  92690. #include <sysdep.h>
  92691. #include <lowlevellock.h>
  92692. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S
  92693. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S 2012-05-15 09:20:09.000000000 +0200
  92694. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_post.S 2014-06-02 17:40:35.098717984 +0200
  92695. @@ -13,9 +13,8 @@
  92696. Lesser General Public License for more details.
  92697. You should have received a copy of the GNU Lesser General Public
  92698. - License along with the GNU C Library; if not, write to the Free
  92699. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92700. - 02111-1307 USA. */
  92701. + License along with the GNU C Library; if not, see
  92702. + <http://www.gnu.org/licenses/>. */
  92703. #include <sysdep.h>
  92704. #include <pthread-errnos.h>
  92705. @@ -25,10 +24,10 @@
  92706. .text
  92707. - .globl __new_sem_post
  92708. - .type __new_sem_post,@function
  92709. + .globl sem_post
  92710. + .type sem_post,@function
  92711. .align 16
  92712. -__new_sem_post:
  92713. +sem_post:
  92714. cfi_startproc
  92715. pushl %ebx
  92716. cfi_adjust_cfa_offset(4)
  92717. @@ -126,9 +125,7 @@
  92718. cfi_restore(%ebx)
  92719. ret
  92720. cfi_endproc
  92721. - .size __new_sem_post,.-__new_sem_post
  92722. -weak_alias(__new_sem_post, sem_post)
  92723. -
  92724. + .size sem_post,.-sem_post
  92725. #ifdef __PIC__
  92726. .section .gnu.linkonce.t.__x86.get_pc_thunk.bx,"ax",@progbits
  92727. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S
  92728. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S 2012-05-15 09:20:09.000000000 +0200
  92729. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_timedwait.S 2014-06-02 17:40:35.098717984 +0200
  92730. @@ -13,9 +13,8 @@
  92731. Lesser General Public License for more details.
  92732. You should have received a copy of the GNU Lesser General Public
  92733. - License along with the GNU C Library; if not, write to the Free
  92734. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92735. - 02111-1307 USA. */
  92736. + License along with the GNU C Library; if not, see
  92737. + <http://www.gnu.org/licenses/>. */
  92738. #include <sysdep.h>
  92739. #include <pthread-errnos.h>
  92740. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S
  92741. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S 2012-05-15 09:20:09.000000000 +0200
  92742. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_trywait.S 2014-06-02 17:40:35.102718006 +0200
  92743. @@ -13,9 +13,8 @@
  92744. Lesser General Public License for more details.
  92745. You should have received a copy of the GNU Lesser General Public
  92746. - License along with the GNU C Library; if not, write to the Free
  92747. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92748. - 02111-1307 USA. */
  92749. + License along with the GNU C Library; if not, see
  92750. + <http://www.gnu.org/licenses/>. */
  92751. #include <sysdep.h>
  92752. #include <pthread-errnos.h>
  92753. @@ -23,10 +22,10 @@
  92754. .text
  92755. - .globl __new_sem_trywait
  92756. - .type __new_sem_trywait,@function
  92757. + .globl sem_trywait
  92758. + .type sem_trywait,@function
  92759. .align 16
  92760. -__new_sem_trywait:
  92761. +sem_trywait:
  92762. movl 4(%esp), %ecx
  92763. movl (%ecx), %eax
  92764. @@ -63,9 +62,7 @@
  92765. #endif
  92766. orl $-1, %eax
  92767. ret
  92768. - .size __new_sem_trywait,.-__new_sem_trywait
  92769. -weak_alias(__new_sem_trywait, sem_trywait)
  92770. -
  92771. + .size sem_trywait,.-sem_trywait
  92772. #ifdef __PIC__
  92773. .section .gnu.linkonce.t.__x86.get_pc_thunk.cx,"ax",@progbits
  92774. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S
  92775. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S 2012-05-15 09:20:09.000000000 +0200
  92776. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i486/sem_wait.S 2014-06-02 17:40:35.102718006 +0200
  92777. @@ -13,9 +13,8 @@
  92778. Lesser General Public License for more details.
  92779. You should have received a copy of the GNU Lesser General Public
  92780. - License along with the GNU C Library; if not, write to the Free
  92781. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92782. - 02111-1307 USA. */
  92783. + License along with the GNU C Library; if not, see
  92784. + <http://www.gnu.org/licenses/>. */
  92785. #include <sysdep.h>
  92786. #include <pthread-errnos.h>
  92787. @@ -29,10 +28,10 @@
  92788. .text
  92789. - .globl __new_sem_wait
  92790. - .type __new_sem_wait,@function
  92791. + .globl sem_wait
  92792. + .type sem_wait,@function
  92793. .align 16
  92794. -__new_sem_wait:
  92795. +sem_wait:
  92796. .LSTARTCODE:
  92797. pushl %ebx
  92798. .Lpush_ebx:
  92799. @@ -129,8 +128,7 @@
  92800. orl $-1, %eax
  92801. jmp 9b
  92802. - .size __new_sem_wait,.-__new_sem_wait
  92803. -weak_alias(__new_sem_wait, sem_wait)
  92804. + .size sem_wait,.-sem_wait
  92805. .type sem_wait_cleanup,@function
  92806. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevellock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevellock.S
  92807. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
  92808. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevellock.S 2014-06-02 17:40:35.102718006 +0200
  92809. @@ -13,8 +13,7 @@
  92810. Lesser General Public License for more details.
  92811. You should have received a copy of the GNU Lesser General Public
  92812. - License along with the GNU C Library; if not, write to the Free
  92813. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92814. - 02111-1307 USA. */
  92815. + License along with the GNU C Library; if not, see
  92816. + <http://www.gnu.org/licenses/>. */
  92817. #include "../i486/lowlevellock.S"
  92818. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S
  92819. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S 2012-05-15 09:20:09.000000000 +0200
  92820. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/lowlevelrobustlock.S 2014-06-02 17:40:35.102718006 +0200
  92821. @@ -13,8 +13,7 @@
  92822. Lesser General Public License for more details.
  92823. You should have received a copy of the GNU Lesser General Public
  92824. - License along with the GNU C Library; if not, write to the Free
  92825. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92826. - 02111-1307 USA. */
  92827. + License along with the GNU C Library; if not, see
  92828. + <http://www.gnu.org/licenses/>. */
  92829. #include "../i486/lowlevelrobustlock.S"
  92830. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_barrier_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_barrier_wait.S
  92831. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_barrier_wait.S 2012-05-15 09:20:09.000000000 +0200
  92832. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_barrier_wait.S 2014-06-02 17:40:35.102718006 +0200
  92833. @@ -13,8 +13,7 @@
  92834. Lesser General Public License for more details.
  92835. You should have received a copy of the GNU Lesser General Public
  92836. - License along with the GNU C Library; if not, write to the Free
  92837. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92838. - 02111-1307 USA. */
  92839. + License along with the GNU C Library; if not, see
  92840. + <http://www.gnu.org/licenses/>. */
  92841. #include "../i486/pthread_barrier_wait.S"
  92842. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S
  92843. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S 2012-05-15 09:20:09.000000000 +0200
  92844. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_broadcast.S 2014-06-02 17:40:35.102718006 +0200
  92845. @@ -13,8 +13,7 @@
  92846. Lesser General Public License for more details.
  92847. You should have received a copy of the GNU Lesser General Public
  92848. - License along with the GNU C Library; if not, write to the Free
  92849. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92850. - 02111-1307 USA. */
  92851. + License along with the GNU C Library; if not, see
  92852. + <http://www.gnu.org/licenses/>. */
  92853. #include "../i486/pthread_cond_broadcast.S"
  92854. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S
  92855. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S 2012-05-15 09:20:09.000000000 +0200
  92856. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_signal.S 2014-06-02 17:40:35.102718006 +0200
  92857. @@ -13,8 +13,7 @@
  92858. Lesser General Public License for more details.
  92859. You should have received a copy of the GNU Lesser General Public
  92860. - License along with the GNU C Library; if not, write to the Free
  92861. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92862. - 02111-1307 USA. */
  92863. + License along with the GNU C Library; if not, see
  92864. + <http://www.gnu.org/licenses/>. */
  92865. #include "../i486/pthread_cond_signal.S"
  92866. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S
  92867. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S 2012-05-15 09:20:09.000000000 +0200
  92868. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_timedwait.S 2014-06-02 17:40:35.102718006 +0200
  92869. @@ -13,8 +13,7 @@
  92870. Lesser General Public License for more details.
  92871. You should have received a copy of the GNU Lesser General Public
  92872. - License along with the GNU C Library; if not, write to the Free
  92873. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92874. - 02111-1307 USA. */
  92875. + License along with the GNU C Library; if not, see
  92876. + <http://www.gnu.org/licenses/>. */
  92877. #include "../i486/pthread_cond_timedwait.S"
  92878. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S
  92879. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S 2012-05-15 09:20:09.000000000 +0200
  92880. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_cond_wait.S 2014-06-02 17:40:35.102718006 +0200
  92881. @@ -13,8 +13,7 @@
  92882. Lesser General Public License for more details.
  92883. You should have received a copy of the GNU Lesser General Public
  92884. - License along with the GNU C Library; if not, write to the Free
  92885. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92886. - 02111-1307 USA. */
  92887. + License along with the GNU C Library; if not, see
  92888. + <http://www.gnu.org/licenses/>. */
  92889. #include "../i486/pthread_cond_wait.S"
  92890. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S
  92891. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S 2012-05-15 09:20:09.000000000 +0200
  92892. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_rdlock.S 2014-06-02 17:40:35.102718006 +0200
  92893. @@ -13,8 +13,7 @@
  92894. Lesser General Public License for more details.
  92895. You should have received a copy of the GNU Lesser General Public
  92896. - License along with the GNU C Library; if not, write to the Free
  92897. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92898. - 02111-1307 USA. */
  92899. + License along with the GNU C Library; if not, see
  92900. + <http://www.gnu.org/licenses/>. */
  92901. #include "../i486/pthread_rwlock_rdlock.S"
  92902. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S
  92903. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S 2012-05-15 09:20:09.000000000 +0200
  92904. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedrdlock.S 2014-06-02 17:40:35.102718006 +0200
  92905. @@ -13,8 +13,7 @@
  92906. Lesser General Public License for more details.
  92907. You should have received a copy of the GNU Lesser General Public
  92908. - License along with the GNU C Library; if not, write to the Free
  92909. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92910. - 02111-1307 USA. */
  92911. + License along with the GNU C Library; if not, see
  92912. + <http://www.gnu.org/licenses/>. */
  92913. #include "../i486/pthread_rwlock_timedrdlock.S"
  92914. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S
  92915. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S 2012-05-15 09:20:09.000000000 +0200
  92916. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_timedwrlock.S 2014-06-02 17:40:35.102718006 +0200
  92917. @@ -13,8 +13,7 @@
  92918. Lesser General Public License for more details.
  92919. You should have received a copy of the GNU Lesser General Public
  92920. - License along with the GNU C Library; if not, write to the Free
  92921. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92922. - 02111-1307 USA. */
  92923. + License along with the GNU C Library; if not, see
  92924. + <http://www.gnu.org/licenses/>. */
  92925. #include "../i486/pthread_rwlock_timedwrlock.S"
  92926. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S
  92927. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S 2012-05-15 09:20:09.000000000 +0200
  92928. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_unlock.S 2014-06-02 17:40:35.102718006 +0200
  92929. @@ -13,8 +13,7 @@
  92930. Lesser General Public License for more details.
  92931. You should have received a copy of the GNU Lesser General Public
  92932. - License along with the GNU C Library; if not, write to the Free
  92933. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92934. - 02111-1307 USA. */
  92935. + License along with the GNU C Library; if not, see
  92936. + <http://www.gnu.org/licenses/>. */
  92937. #include "../i486/pthread_rwlock_unlock.S"
  92938. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S
  92939. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S 2012-05-15 09:20:09.000000000 +0200
  92940. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/pthread_rwlock_wrlock.S 2014-06-02 17:40:35.102718006 +0200
  92941. @@ -13,8 +13,7 @@
  92942. Lesser General Public License for more details.
  92943. You should have received a copy of the GNU Lesser General Public
  92944. - License along with the GNU C Library; if not, write to the Free
  92945. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92946. - 02111-1307 USA. */
  92947. + License along with the GNU C Library; if not, see
  92948. + <http://www.gnu.org/licenses/>. */
  92949. #include "../i486/pthread_rwlock_wrlock.S"
  92950. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_post.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_post.S
  92951. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_post.S 2012-05-15 09:20:09.000000000 +0200
  92952. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_post.S 2014-06-02 17:40:35.102718006 +0200
  92953. @@ -13,8 +13,7 @@
  92954. Lesser General Public License for more details.
  92955. You should have received a copy of the GNU Lesser General Public
  92956. - License along with the GNU C Library; if not, write to the Free
  92957. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92958. - 02111-1307 USA. */
  92959. + License along with the GNU C Library; if not, see
  92960. + <http://www.gnu.org/licenses/>. */
  92961. #include "../i486/sem_post.S"
  92962. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S
  92963. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S 2012-05-15 09:20:09.000000000 +0200
  92964. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_timedwait.S 2014-06-02 17:40:35.102718006 +0200
  92965. @@ -13,8 +13,7 @@
  92966. Lesser General Public License for more details.
  92967. You should have received a copy of the GNU Lesser General Public
  92968. - License along with the GNU C Library; if not, write to the Free
  92969. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92970. - 02111-1307 USA. */
  92971. + License along with the GNU C Library; if not, see
  92972. + <http://www.gnu.org/licenses/>. */
  92973. #include "../i486/sem_timedwait.S"
  92974. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S
  92975. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S 2012-05-15 09:20:09.000000000 +0200
  92976. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_trywait.S 2014-06-02 17:40:35.102718006 +0200
  92977. @@ -13,8 +13,7 @@
  92978. Lesser General Public License for more details.
  92979. You should have received a copy of the GNU Lesser General Public
  92980. - License along with the GNU C Library; if not, write to the Free
  92981. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92982. - 02111-1307 USA. */
  92983. + License along with the GNU C Library; if not, see
  92984. + <http://www.gnu.org/licenses/>. */
  92985. #include "../i486/sem_trywait.S"
  92986. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_wait.S
  92987. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_wait.S 2012-05-15 09:20:09.000000000 +0200
  92988. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i586/sem_wait.S 2014-06-02 17:40:35.102718006 +0200
  92989. @@ -13,8 +13,7 @@
  92990. Lesser General Public License for more details.
  92991. You should have received a copy of the GNU Lesser General Public
  92992. - License along with the GNU C Library; if not, write to the Free
  92993. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  92994. - 02111-1307 USA. */
  92995. + License along with the GNU C Library; if not, see
  92996. + <http://www.gnu.org/licenses/>. */
  92997. #include "../i486/sem_wait.S"
  92998. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevellock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevellock.S
  92999. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
  93000. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevellock.S 2014-06-02 17:40:35.102718006 +0200
  93001. @@ -13,8 +13,7 @@
  93002. Lesser General Public License for more details.
  93003. You should have received a copy of the GNU Lesser General Public
  93004. - License along with the GNU C Library; if not, write to the Free
  93005. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93006. - 02111-1307 USA. */
  93007. + License along with the GNU C Library; if not, see
  93008. + <http://www.gnu.org/licenses/>. */
  93009. #include "../i486/lowlevellock.S"
  93010. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S
  93011. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S 2012-05-15 09:20:09.000000000 +0200
  93012. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/lowlevelrobustlock.S 2014-06-02 17:40:35.102718006 +0200
  93013. @@ -13,8 +13,7 @@
  93014. Lesser General Public License for more details.
  93015. You should have received a copy of the GNU Lesser General Public
  93016. - License along with the GNU C Library; if not, write to the Free
  93017. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93018. - 02111-1307 USA. */
  93019. + License along with the GNU C Library; if not, see
  93020. + <http://www.gnu.org/licenses/>. */
  93021. #include "../i486/lowlevelrobustlock.S"
  93022. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_barrier_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_barrier_wait.S
  93023. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_barrier_wait.S 2012-05-15 09:20:09.000000000 +0200
  93024. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_barrier_wait.S 2014-06-02 17:40:35.102718006 +0200
  93025. @@ -13,8 +13,7 @@
  93026. Lesser General Public License for more details.
  93027. You should have received a copy of the GNU Lesser General Public
  93028. - License along with the GNU C Library; if not, write to the Free
  93029. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93030. - 02111-1307 USA. */
  93031. + License along with the GNU C Library; if not, see
  93032. + <http://www.gnu.org/licenses/>. */
  93033. #include "../i486/pthread_barrier_wait.S"
  93034. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S
  93035. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S 2012-05-15 09:20:09.000000000 +0200
  93036. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_broadcast.S 2014-06-02 17:40:35.102718006 +0200
  93037. @@ -13,8 +13,7 @@
  93038. Lesser General Public License for more details.
  93039. You should have received a copy of the GNU Lesser General Public
  93040. - License along with the GNU C Library; if not, write to the Free
  93041. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93042. - 02111-1307 USA. */
  93043. + License along with the GNU C Library; if not, see
  93044. + <http://www.gnu.org/licenses/>. */
  93045. #include "../i486/pthread_cond_broadcast.S"
  93046. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S
  93047. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S 2012-05-15 09:20:09.000000000 +0200
  93048. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_signal.S 2014-06-02 17:40:35.102718006 +0200
  93049. @@ -13,8 +13,7 @@
  93050. Lesser General Public License for more details.
  93051. You should have received a copy of the GNU Lesser General Public
  93052. - License along with the GNU C Library; if not, write to the Free
  93053. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93054. - 02111-1307 USA. */
  93055. + License along with the GNU C Library; if not, see
  93056. + <http://www.gnu.org/licenses/>. */
  93057. #include "../i486/pthread_cond_signal.S"
  93058. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S
  93059. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S 2012-05-15 09:20:09.000000000 +0200
  93060. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_timedwait.S 2014-06-02 17:40:35.102718006 +0200
  93061. @@ -13,9 +13,8 @@
  93062. Lesser General Public License for more details.
  93063. You should have received a copy of the GNU Lesser General Public
  93064. - License along with the GNU C Library; if not, write to the Free
  93065. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93066. - 02111-1307 USA. */
  93067. + License along with the GNU C Library; if not, see
  93068. + <http://www.gnu.org/licenses/>. */
  93069. #define HAVE_CMOV 1
  93070. #include "../i486/pthread_cond_timedwait.S"
  93071. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S
  93072. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S 2012-05-15 09:20:09.000000000 +0200
  93073. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_cond_wait.S 2014-06-02 17:40:35.102718006 +0200
  93074. @@ -13,8 +13,7 @@
  93075. Lesser General Public License for more details.
  93076. You should have received a copy of the GNU Lesser General Public
  93077. - License along with the GNU C Library; if not, write to the Free
  93078. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93079. - 02111-1307 USA. */
  93080. + License along with the GNU C Library; if not, see
  93081. + <http://www.gnu.org/licenses/>. */
  93082. #include "../i486/pthread_cond_wait.S"
  93083. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S
  93084. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S 2012-05-15 09:20:09.000000000 +0200
  93085. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_rdlock.S 2014-06-02 17:40:35.102718006 +0200
  93086. @@ -13,8 +13,7 @@
  93087. Lesser General Public License for more details.
  93088. You should have received a copy of the GNU Lesser General Public
  93089. - License along with the GNU C Library; if not, write to the Free
  93090. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93091. - 02111-1307 USA. */
  93092. + License along with the GNU C Library; if not, see
  93093. + <http://www.gnu.org/licenses/>. */
  93094. #include "../i486/pthread_rwlock_rdlock.S"
  93095. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S
  93096. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S 2012-05-15 09:20:09.000000000 +0200
  93097. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedrdlock.S 2014-06-02 17:40:35.102718006 +0200
  93098. @@ -13,8 +13,7 @@
  93099. Lesser General Public License for more details.
  93100. You should have received a copy of the GNU Lesser General Public
  93101. - License along with the GNU C Library; if not, write to the Free
  93102. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93103. - 02111-1307 USA. */
  93104. + License along with the GNU C Library; if not, see
  93105. + <http://www.gnu.org/licenses/>. */
  93106. #include "../i486/pthread_rwlock_timedrdlock.S"
  93107. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S
  93108. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S 2012-05-15 09:20:09.000000000 +0200
  93109. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_timedwrlock.S 2014-06-02 17:40:35.102718006 +0200
  93110. @@ -13,8 +13,7 @@
  93111. Lesser General Public License for more details.
  93112. You should have received a copy of the GNU Lesser General Public
  93113. - License along with the GNU C Library; if not, write to the Free
  93114. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93115. - 02111-1307 USA. */
  93116. + License along with the GNU C Library; if not, see
  93117. + <http://www.gnu.org/licenses/>. */
  93118. #include "../i486/pthread_rwlock_timedwrlock.S"
  93119. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S
  93120. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S 2012-05-15 09:20:09.000000000 +0200
  93121. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_unlock.S 2014-06-02 17:40:35.102718006 +0200
  93122. @@ -13,9 +13,8 @@
  93123. Lesser General Public License for more details.
  93124. You should have received a copy of the GNU Lesser General Public
  93125. - License along with the GNU C Library; if not, write to the Free
  93126. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93127. - 02111-1307 USA. */
  93128. + License along with the GNU C Library; if not, see
  93129. + <http://www.gnu.org/licenses/>. */
  93130. #define HAVE_CMOV 1
  93131. #include "../i486/pthread_rwlock_unlock.S"
  93132. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S
  93133. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S 2012-05-15 09:20:09.000000000 +0200
  93134. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/pthread_rwlock_wrlock.S 2014-06-02 17:40:35.102718006 +0200
  93135. @@ -13,8 +13,7 @@
  93136. Lesser General Public License for more details.
  93137. You should have received a copy of the GNU Lesser General Public
  93138. - License along with the GNU C Library; if not, write to the Free
  93139. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93140. - 02111-1307 USA. */
  93141. + License along with the GNU C Library; if not, see
  93142. + <http://www.gnu.org/licenses/>. */
  93143. #include "../i486/pthread_rwlock_wrlock.S"
  93144. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_post.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_post.S
  93145. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_post.S 2012-05-15 09:20:09.000000000 +0200
  93146. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_post.S 2014-06-02 17:40:35.102718006 +0200
  93147. @@ -13,8 +13,7 @@
  93148. Lesser General Public License for more details.
  93149. You should have received a copy of the GNU Lesser General Public
  93150. - License along with the GNU C Library; if not, write to the Free
  93151. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93152. - 02111-1307 USA. */
  93153. + License along with the GNU C Library; if not, see
  93154. + <http://www.gnu.org/licenses/>. */
  93155. #include "../i486/sem_post.S"
  93156. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S
  93157. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S 2012-05-15 09:20:09.000000000 +0200
  93158. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_timedwait.S 2014-06-02 17:40:35.102718006 +0200
  93159. @@ -13,8 +13,7 @@
  93160. Lesser General Public License for more details.
  93161. You should have received a copy of the GNU Lesser General Public
  93162. - License along with the GNU C Library; if not, write to the Free
  93163. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93164. - 02111-1307 USA. */
  93165. + License along with the GNU C Library; if not, see
  93166. + <http://www.gnu.org/licenses/>. */
  93167. #include "../i486/sem_timedwait.S"
  93168. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S
  93169. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S 2012-05-15 09:20:09.000000000 +0200
  93170. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_trywait.S 2014-06-02 17:40:35.102718006 +0200
  93171. @@ -13,8 +13,7 @@
  93172. Lesser General Public License for more details.
  93173. You should have received a copy of the GNU Lesser General Public
  93174. - License along with the GNU C Library; if not, write to the Free
  93175. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93176. - 02111-1307 USA. */
  93177. + License along with the GNU C Library; if not, see
  93178. + <http://www.gnu.org/licenses/>. */
  93179. #include "../i486/sem_trywait.S"
  93180. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_wait.S
  93181. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_wait.S 2012-05-15 09:20:09.000000000 +0200
  93182. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/i686/sem_wait.S 2014-06-02 17:40:35.102718006 +0200
  93183. @@ -13,8 +13,7 @@
  93184. Lesser General Public License for more details.
  93185. You should have received a copy of the GNU Lesser General Public
  93186. - License along with the GNU C Library; if not, write to the Free
  93187. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93188. - 02111-1307 USA. */
  93189. + License along with the GNU C Library; if not, see
  93190. + <http://www.gnu.org/licenses/>. */
  93191. #include "../i486/sem_wait.S"
  93192. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h
  93193. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  93194. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 2014-06-02 17:40:35.102718006 +0200
  93195. @@ -13,9 +13,8 @@
  93196. Lesser General Public License for more details.
  93197. You should have received a copy of the GNU Lesser General Public
  93198. - License along with the GNU C Library; if not, write to the Free
  93199. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93200. - 02111-1307 USA. */
  93201. + License along with the GNU C Library; if not, see
  93202. + <http://www.gnu.org/licenses/>. */
  93203. #ifndef _LOWLEVELLOCK_H
  93204. #define _LOWLEVELLOCK_H 1
  93205. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S
  93206. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S 2012-05-15 09:20:09.000000000 +0200
  93207. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pthread_once.S 2014-06-02 17:40:35.102718006 +0200
  93208. @@ -13,9 +13,8 @@
  93209. Lesser General Public License for more details.
  93210. You should have received a copy of the GNU Lesser General Public
  93211. - License along with the GNU C Library; if not, write to the Free
  93212. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93213. - 02111-1307 USA. */
  93214. + License along with the GNU C Library; if not, see
  93215. + <http://www.gnu.org/licenses/>. */
  93216. #include <unwindbuf.h>
  93217. #include <sysdep.h>
  93218. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pt-vfork.S
  93219. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  93220. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/pt-vfork.S 2014-06-02 17:40:35.102718006 +0200
  93221. @@ -13,9 +13,8 @@
  93222. Lesser General Public License for more details.
  93223. You should have received a copy of the GNU Lesser General Public
  93224. - License along with the GNU C Library; if not, write to the Free
  93225. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93226. - 02111-1307 USA. */
  93227. + License along with the GNU C Library; if not, see
  93228. + <http://www.gnu.org/licenses/>. */
  93229. #include <sysdep.h>
  93230. #define _ERRNO_H 1
  93231. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/smp.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/smp.h
  93232. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/smp.h 2012-05-15 09:20:09.000000000 +0200
  93233. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/smp.h 2014-06-02 17:40:35.102718006 +0200
  93234. @@ -14,8 +14,7 @@
  93235. You should have received a copy of the GNU Library General Public
  93236. License along with the GNU C Library; see the file COPYING.LIB. If not,
  93237. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  93238. - Boston, MA 02111-1307, USA. */
  93239. + see <http://www.gnu.org/licenses/>. */
  93240. #include <errno.h>
  93241. #include <fcntl.h>
  93242. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h
  93243. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  93244. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/sysdep-cancel.h 2014-06-02 17:40:35.102718006 +0200
  93245. @@ -13,9 +13,8 @@
  93246. Lesser General Public License for more details.
  93247. You should have received a copy of the GNU Lesser General Public
  93248. - License along with the GNU C Library; if not, write to the Free
  93249. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93250. - 02111-1307 USA. */
  93251. + License along with the GNU C Library; if not, see
  93252. + <http://www.gnu.org/licenses/>. */
  93253. #include <sysdep.h>
  93254. #include <tls.h>
  93255. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/vfork.S
  93256. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/i386/vfork.S 2012-05-15 09:20:09.000000000 +0200
  93257. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/i386/vfork.S 2014-06-02 17:40:35.102718006 +0200
  93258. @@ -12,9 +12,8 @@
  93259. Lesser General Public License for more details.
  93260. You should have received a copy of the GNU Lesser General Public
  93261. - License along with the GNU C Library; if not, write to the Free
  93262. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93263. - 02111-1307 USA. */
  93264. + License along with the GNU C Library; if not, see
  93265. + <http://www.gnu.org/licenses/>. */
  93266. #include <tcb-offsets.h>
  93267. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/internaltypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/internaltypes.h
  93268. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/internaltypes.h 2012-05-15 09:20:09.000000000 +0200
  93269. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/internaltypes.h 2014-06-02 17:40:35.102718006 +0200
  93270. @@ -13,9 +13,8 @@
  93271. Lesser General Public License for more details.
  93272. You should have received a copy of the GNU Lesser General Public
  93273. - License along with the GNU C Library; if not, write to the Free
  93274. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93275. - 02111-1307 USA. */
  93276. + License along with the GNU C Library; if not, see
  93277. + <http://www.gnu.org/licenses/>. */
  93278. #ifndef _INTERNALTYPES_H
  93279. #define _INTERNALTYPES_H 1
  93280. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/jmp-unwind.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/jmp-unwind.c
  93281. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/jmp-unwind.c 2012-05-15 09:20:09.000000000 +0200
  93282. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/jmp-unwind.c 2014-06-02 17:40:35.102718006 +0200
  93283. @@ -13,9 +13,8 @@
  93284. Lesser General Public License for more details.
  93285. You should have received a copy of the GNU Lesser General Public
  93286. - License along with the GNU C Library; if not, write to the Free
  93287. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93288. - 02111-1307 USA. */
  93289. + License along with the GNU C Library; if not, see
  93290. + <http://www.gnu.org/licenses/>. */
  93291. #include <setjmp.h>
  93292. #include <stddef.h>
  93293. @@ -25,7 +24,6 @@
  93294. #pragma weak __pthread_cleanup_upto
  93295. -void _longjmp_unwind (jmp_buf env, int val);
  93296. void
  93297. _longjmp_unwind (jmp_buf env, int val)
  93298. {
  93299. @@ -38,3 +36,4 @@
  93300. __pthread_cleanup_upto (env->__jmpbuf, CURRENT_STACK_FRAME);
  93301. #endif
  93302. }
  93303. +libc_hidden_def(_longjmp_unwind)
  93304. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c
  93305. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
  93306. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/libc-lowlevellock.c 2014-06-02 17:40:35.102718006 +0200
  93307. @@ -13,9 +13,8 @@
  93308. Lesser General Public License for more details.
  93309. You should have received a copy of the GNU Lesser General Public
  93310. - License along with the GNU C Library; if not, write to the Free
  93311. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93312. - 02111-1307 USA. */
  93313. + License along with the GNU C Library; if not, see
  93314. + <http://www.gnu.org/licenses/>. */
  93315. /* No difference to lowlevellock.c, except we lose a couple of functions. */
  93316. #include "lowlevellock.c"
  93317. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/libc_multiple_threads.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/libc_multiple_threads.c
  93318. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/libc_multiple_threads.c 2012-05-15 09:20:09.000000000 +0200
  93319. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/libc_multiple_threads.c 2014-06-02 17:40:35.102718006 +0200
  93320. @@ -13,9 +13,8 @@
  93321. Lesser General Public License for more details.
  93322. You should have received a copy of the GNU Lesser General Public
  93323. - License along with the GNU C Library; if not, write to the Free
  93324. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93325. - 02111-1307 USA. */
  93326. + License along with the GNU C Library; if not, see
  93327. + <http://www.gnu.org/licenses/>. */
  93328. #include <pthreadP.h>
  93329. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c
  93330. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c 2012-05-15 09:20:09.000000000 +0200
  93331. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/libc_pthread_init.c 2014-06-02 17:40:35.102718006 +0200
  93332. @@ -13,9 +13,8 @@
  93333. Lesser General Public License for more details.
  93334. You should have received a copy of the GNU Lesser General Public
  93335. - License along with the GNU C Library; if not, write to the Free
  93336. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93337. - 02111-1307 USA. */
  93338. + License along with the GNU C Library; if not, see
  93339. + <http://www.gnu.org/licenses/>. */
  93340. #include <unistd.h>
  93341. #include <list.h>
  93342. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevellock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevellock.c
  93343. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
  93344. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevellock.c 2014-06-02 17:40:35.102718006 +0200
  93345. @@ -14,9 +14,8 @@
  93346. Lesser General Public License for more details.
  93347. You should have received a copy of the GNU Lesser General Public
  93348. - License along with the GNU C Library; if not, write to the Free
  93349. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93350. - 02111-1307 USA. */
  93351. + License along with the GNU C Library; if not, see
  93352. + <http://www.gnu.org/licenses/>. */
  93353. #include <errno.h>
  93354. #include <sysdep.h>
  93355. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.c
  93356. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.c 2012-05-15 09:20:09.000000000 +0200
  93357. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.c 2014-06-02 17:40:35.102718006 +0200
  93358. @@ -13,9 +13,8 @@
  93359. Lesser General Public License for more details.
  93360. You should have received a copy of the GNU Lesser General Public
  93361. - License along with the GNU C Library; if not, write to the Free
  93362. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93363. - 02111-1307 USA. */
  93364. + License along with the GNU C Library; if not, see
  93365. + <http://www.gnu.org/licenses/>. */
  93366. #include <errno.h>
  93367. #include <sysdep.h>
  93368. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch
  93369. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch 2012-05-15 09:20:09.000000000 +0200
  93370. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/Makefile.commonarch 2014-06-02 17:40:35.094717962 +0200
  93371. @@ -62,22 +62,24 @@
  93372. pthread_getcpuclockid.c pthread_kill.c \
  93373. pthread_mutex_cond_lock.c pthread_yield.c \
  93374. sem_post.c sem_timedwait.c sem_trywait.c sem_wait.c \
  93375. - pt-fork.c pt-sleep.c pthread_sigqueue.c pt-tempname.c \
  93376. - sigtimedwait.c sigwaitinfo.c sigwait.c \
  93377. + pt-tempname.c \
  93378. + pthread_sigqueue.c \
  93379. lowlevellock.c lowlevelrobustlock.c
  93380. +# pt-sleep.c pt-fork.c sigtimedwait.c sigwaitinfo.c sigwait.c
  93381. libpthread_linux_SSRC := #ptw-close.S ptw-open.S ptw-waitid.S ptw-waidpid.S ptw-write.S
  93382. libc_linux_CSRC += libc_pthread_init.c libc_multiple_threads.c \
  93383. register-atfork.c unregister-atfork.c getpid.c \
  93384. - raise.c sleep.c jmp-unwind.c libc-lowlevellock.c
  93385. + raise.c jmp-unwind.c libc-lowlevellock.c
  93386. + #sleep.c
  93387. librt_linux_CSRC += mq_notify.c timer_create.c timer_delete.c \
  93388. timer_getoverr.c timer_gettime.c timer_routines.c \
  93389. timer_settime.c
  93390. # These provide both a cancellable and a not cancellable implementation
  93391. -libc_linux_SSRC = close.S open.S write.S read.S waitpid.S
  93392. +libc_linux_SSRC = #close.S open.S write.S read.S waitpid.S
  93393. libc_linux_SSRC := $(filter-out $(libc_linux_arch_SSRC-OMIT),$(libc_linux_SSRC))
  93394. libpthread_linux_CSRC := $(filter-out $(notdir $(libpthread_linux_arch_OBJS:.o=.c)),$(libpthread_linux_CSRC))
  93395. @@ -141,13 +143,14 @@
  93396. CFLAGS-OMIT-getpid.c = -DNOT_IN_libc -DIS_IN_libpthread
  93397. CFLAGS-OMIT-raise.c = -DNOT_IN_libc -DIS_IN_libpthread
  93398. CFLAGS-OMIT-sleep.c = -DNOT_IN_libc -DIS_IN_libpthread
  93399. +CFLAGS-OMIT-jmp-unwind.c = -DNOT_IN_libc -DIS_IN_libpthread
  93400. CFLAGS-OMIT-libc-lowlevellock.c = -DNOT_IN_libc -DIS_IN_libpthread
  93401. -CFLAGS-OMIT-close.S = -DNOT_IN_libc -DIS_IN_libpthread
  93402. -CFLAGS-OMIT-open.S = -DNOT_IN_libc -DIS_IN_libpthread
  93403. -CFLAGS-OMIT-read.S = -DNOT_IN_libc -DIS_IN_libpthread
  93404. -CFLAGS-OMIT-write.S = -DNOT_IN_libc -DIS_IN_libpthread
  93405. -CFLAGS-OMIT-waitpid.S = -DNOT_IN_libc -DIS_IN_libpthread
  93406. +#CFLAGS-OMIT-close.S = -DNOT_IN_libc -DIS_IN_libpthread
  93407. +#CFLAGS-OMIT-open.S = -DNOT_IN_libc -DIS_IN_libpthread
  93408. +#CFLAGS-OMIT-read.S = -DNOT_IN_libc -DIS_IN_libpthread
  93409. +#CFLAGS-OMIT-write.S = -DNOT_IN_libc -DIS_IN_libpthread
  93410. +#CFLAGS-OMIT-waitpid.S = -DNOT_IN_libc -DIS_IN_libpthread
  93411. CFLAGS-OMIT-mq_notify.c = -DIS_IN_libpthread
  93412. CFLAGS-OMIT-timer_create.c = -DIS_IN_libpthread
  93413. @@ -157,11 +160,11 @@
  93414. CFLAGS-OMIT-timer_routines.c = -DIS_IN_libpthread
  93415. CFLAGS-OMIT-timer_settime.c = -DIS_IN_libpthread
  93416. -ASFLAGS-open.S = -D_LIBC_REENTRANT
  93417. -ASFLAGS-close.S = -D_LIBC_REENTRANT
  93418. -ASFLAGS-read.S = -D_LIBC_REENTRANT
  93419. -ASFLAGS-write.S = -D_LIBC_REENTRANT
  93420. -ASFLAGS-waitpid.S = -D_LIBC_REENTRANT
  93421. +#ASFLAGS-open.S = -D_LIBC_REENTRANT
  93422. +#ASFLAGS-close.S = -D_LIBC_REENTRANT
  93423. +#ASFLAGS-read.S = -D_LIBC_REENTRANT
  93424. +#ASFLAGS-write.S = -D_LIBC_REENTRANT
  93425. +#ASFLAGS-waitpid.S = -D_LIBC_REENTRANT
  93426. #
  93427. # Create header files.
  93428. @@ -174,8 +177,6 @@
  93429. CFLAGS-gen_structsem.c = -S
  93430. CFLAGS-gen_unwindbuf.c = -S
  93431. -PTHREAD_GENERATE_MANGLE ?= -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*\$$/\#define \1 \2/p"
  93432. -
  93433. PTHREAD_LINUX_SYM := $(notdir $(wildcard $(libpthread_linux_DIR)/*.sym))
  93434. PTHREAD_LINUX_SYM_C := $(addprefix $(libpthread_linux_OUT)/gen_,$(PTHREAD_LINUX_SYM:.sym=.c))
  93435. PTHREAD_LINUX_SYM_S := $(PTHREAD_LINUX_SYM_C:.c=.s)
  93436. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/pthreadtypes.h
  93437. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/pthreadtypes.h 1970-01-01 01:00:00.000000000 +0100
  93438. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/pthreadtypes.h 2014-06-02 17:40:35.106718029 +0200
  93439. @@ -0,0 +1,181 @@
  93440. +/* Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
  93441. + This file is part of the GNU C Library.
  93442. +
  93443. + The GNU C Library is free software; you can redistribute it and/or
  93444. + modify it under the terms of the GNU Lesser General Public
  93445. + License as published by the Free Software Foundation; either
  93446. + version 2.1 of the License, or (at your option) any later version.
  93447. +
  93448. + The GNU C Library is distributed in the hope that it will be useful,
  93449. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  93450. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  93451. + Lesser General Public License for more details.
  93452. +
  93453. + You should have received a copy of the GNU Lesser General Public
  93454. + License along with the GNU C Library; if not, write to the Free
  93455. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93456. + 02111-1307 USA. */
  93457. +
  93458. +#ifndef _BITS_PTHREADTYPES_H
  93459. +#define _BITS_PTHREADTYPES_H 1
  93460. +
  93461. +#include <endian.h>
  93462. +
  93463. +#define __SIZEOF_PTHREAD_ATTR_T 36
  93464. +#define __SIZEOF_PTHREAD_MUTEX_T 24
  93465. +#define __SIZEOF_PTHREAD_MUTEXATTR_T 4
  93466. +#define __SIZEOF_PTHREAD_COND_T 48
  93467. +#define __SIZEOF_PTHREAD_COND_COMPAT_T 12
  93468. +#define __SIZEOF_PTHREAD_CONDATTR_T 4
  93469. +#define __SIZEOF_PTHREAD_RWLOCK_T 32
  93470. +#define __SIZEOF_PTHREAD_RWLOCKATTR_T 8
  93471. +#define __SIZEOF_PTHREAD_BARRIER_T 20
  93472. +#define __SIZEOF_PTHREAD_BARRIERATTR_T 4
  93473. +
  93474. +
  93475. +/* Thread identifiers. The structure of the attribute type is not
  93476. + exposed on purpose. */
  93477. +typedef unsigned long int pthread_t;
  93478. +
  93479. +
  93480. +typedef union
  93481. +{
  93482. + char __size[__SIZEOF_PTHREAD_ATTR_T];
  93483. + long int __align;
  93484. +} pthread_attr_t;
  93485. +
  93486. +
  93487. +typedef struct __pthread_internal_slist
  93488. +{
  93489. + struct __pthread_internal_slist *__next;
  93490. +} __pthread_slist_t;
  93491. +
  93492. +
  93493. +/* Data structures for mutex handling. The structure of the attribute
  93494. + type is not exposed on purpose. */
  93495. +typedef union
  93496. +{
  93497. + struct __pthread_mutex_s
  93498. + {
  93499. + int __lock;
  93500. + unsigned int __count;
  93501. + int __owner;
  93502. + /* KIND must stay at this position in the structure to maintain
  93503. + binary compatibility. */
  93504. + int __kind;
  93505. + unsigned int __nusers;
  93506. + __extension__ union
  93507. + {
  93508. + int __spins;
  93509. + __pthread_slist_t __list;
  93510. + };
  93511. + } __data;
  93512. + char __size[__SIZEOF_PTHREAD_MUTEX_T];
  93513. + long int __align;
  93514. +} pthread_mutex_t;
  93515. +
  93516. +typedef union
  93517. +{
  93518. + char __size[__SIZEOF_PTHREAD_MUTEXATTR_T];
  93519. + long int __align;
  93520. +} pthread_mutexattr_t;
  93521. +
  93522. +
  93523. +/* Data structure for conditional variable handling. The structure of
  93524. + the attribute type is not exposed on purpose. */
  93525. +typedef union
  93526. +{
  93527. + struct
  93528. + {
  93529. + int __lock;
  93530. + unsigned int __futex;
  93531. + __extension__ unsigned long long int __total_seq;
  93532. + __extension__ unsigned long long int __wakeup_seq;
  93533. + __extension__ unsigned long long int __woken_seq;
  93534. + void *__mutex;
  93535. + unsigned int __nwaiters;
  93536. + unsigned int __broadcast_seq;
  93537. + } __data;
  93538. + char __size[__SIZEOF_PTHREAD_COND_T];
  93539. + __extension__ long long int __align;
  93540. +} pthread_cond_t;
  93541. +
  93542. +typedef union
  93543. +{
  93544. + char __size[__SIZEOF_PTHREAD_CONDATTR_T];
  93545. + long int __align;
  93546. +} pthread_condattr_t;
  93547. +
  93548. +
  93549. +/* Keys for thread-specific data */
  93550. +typedef unsigned int pthread_key_t;
  93551. +
  93552. +
  93553. +/* Once-only execution */
  93554. +typedef int pthread_once_t;
  93555. +
  93556. +
  93557. +#if defined __USE_UNIX98 || defined __USE_XOPEN2K
  93558. +/* Data structure for read-write lock variable handling. The
  93559. + structure of the attribute type is not exposed on purpose. */
  93560. +typedef union
  93561. +{
  93562. + struct
  93563. + {
  93564. + int __lock;
  93565. + unsigned int __nr_readers;
  93566. + unsigned int __readers_wakeup;
  93567. + unsigned int __writer_wakeup;
  93568. + unsigned int __nr_readers_queued;
  93569. + unsigned int __nr_writers_queued;
  93570. +#if __BYTE_ORDER == __BIG_ENDIAN
  93571. + unsigned char __pad1;
  93572. + unsigned char __pad2;
  93573. + unsigned char __shared;
  93574. + /* FLAGS must stay at this position in the structure to maintain
  93575. + binary compatibility. */
  93576. + unsigned char __flags;
  93577. +#else
  93578. + /* FLAGS must stay at this position in the structure to maintain
  93579. + binary compatibility. */
  93580. + unsigned char __flags;
  93581. + unsigned char __shared;
  93582. + unsigned char __pad1;
  93583. + unsigned char __pad2;
  93584. +#endif
  93585. + int __writer;
  93586. + } __data;
  93587. + char __size[__SIZEOF_PTHREAD_RWLOCK_T];
  93588. + long int __align;
  93589. +} pthread_rwlock_t;
  93590. +
  93591. +typedef union
  93592. +{
  93593. + char __size[__SIZEOF_PTHREAD_RWLOCKATTR_T];
  93594. + long int __align;
  93595. +} pthread_rwlockattr_t;
  93596. +#endif
  93597. +
  93598. +
  93599. +#ifdef __USE_XOPEN2K
  93600. +/* POSIX spinlock data type. */
  93601. +typedef volatile int pthread_spinlock_t;
  93602. +
  93603. +
  93604. +/* POSIX barriers data type. The structure of the type is
  93605. + deliberately not exposed. */
  93606. +typedef union
  93607. +{
  93608. + char __size[__SIZEOF_PTHREAD_BARRIER_T];
  93609. + long int __align;
  93610. +} pthread_barrier_t;
  93611. +
  93612. +typedef union
  93613. +{
  93614. + char __size[__SIZEOF_PTHREAD_BARRIERATTR_T];
  93615. + int __align;
  93616. +} pthread_barrierattr_t;
  93617. +#endif
  93618. +
  93619. +
  93620. +#endif /* bits/pthreadtypes.h */
  93621. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/semaphore.h
  93622. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/semaphore.h 1970-01-01 01:00:00.000000000 +0100
  93623. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/bits/semaphore.h 2014-06-02 17:40:35.106718029 +0200
  93624. @@ -0,0 +1,35 @@
  93625. +/* Copyright (C) 2002, 2005, 2007 Free Software Foundation, Inc.
  93626. + This file is part of the GNU C Library.
  93627. +
  93628. + The GNU C Library is free software; you can redistribute it and/or
  93629. + modify it under the terms of the GNU Lesser General Public
  93630. + License as published by the Free Software Foundation; either
  93631. + version 2.1 of the License, or (at your option) any later version.
  93632. +
  93633. + The GNU C Library is distributed in the hope that it will be useful,
  93634. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  93635. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  93636. + Lesser General Public License for more details.
  93637. +
  93638. + You should have received a copy of the GNU Lesser General Public
  93639. + License along with the GNU C Library; if not, write to the Free
  93640. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93641. + 02111-1307 USA. */
  93642. +
  93643. +#ifndef _SEMAPHORE_H
  93644. +# error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  93645. +#endif
  93646. +
  93647. +
  93648. +#define __SIZEOF_SEM_T 16
  93649. +
  93650. +
  93651. +/* Value returned if `sem_open' failed. */
  93652. +#define SEM_FAILED ((sem_t *) 0)
  93653. +
  93654. +
  93655. +typedef union
  93656. +{
  93657. + char __size[__SIZEOF_SEM_T];
  93658. + long int __align;
  93659. +} sem_t;
  93660. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/clone.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/clone.S
  93661. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/clone.S 1970-01-01 01:00:00.000000000 +0100
  93662. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/clone.S 2014-06-02 17:40:35.106718029 +0200
  93663. @@ -0,0 +1,9 @@
  93664. +/*
  93665. + * Copyright (C) 2013 Imagination Technologies Ltd.
  93666. + *
  93667. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  93668. + */
  93669. +
  93670. +#define RESET_PID
  93671. +#include <tcb-offsets.h>
  93672. +#include "../../../../../../../libc/sysdeps/linux/metag/clone.S"
  93673. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/createthread.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/createthread.c
  93674. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/createthread.c 1970-01-01 01:00:00.000000000 +0100
  93675. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/createthread.c 2014-06-02 17:40:35.106718029 +0200
  93676. @@ -0,0 +1,23 @@
  93677. +/* Copyright (C) 2005 Free Software Foundation, Inc.
  93678. + This file is part of the GNU C Library.
  93679. +
  93680. + The GNU C Library is free software; you can redistribute it and/or
  93681. + modify it under the terms of the GNU Lesser General Public
  93682. + License as published by the Free Software Foundation; either
  93683. + version 2.1 of the License, or (at your option) any later version.
  93684. +
  93685. + The GNU C Library is distributed in the hope that it will be useful,
  93686. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  93687. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  93688. + Lesser General Public License for more details.
  93689. +
  93690. + You should have received a copy of the GNU Lesser General Public
  93691. + License along with the GNU C Library; if not, write to the Free
  93692. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93693. + 02111-1307 USA. */
  93694. +
  93695. +/* Value passed to 'clone' for initialization of the thread register. */
  93696. +#define TLS_VALUE (pd + 1)
  93697. +
  93698. +/* Get the real implementation. */
  93699. +#include <sysdeps/pthread/createthread.c>
  93700. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/fork.c
  93701. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/fork.c 1970-01-01 01:00:00.000000000 +0100
  93702. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/fork.c 2014-06-02 17:40:35.106718029 +0200
  93703. @@ -0,0 +1,31 @@
  93704. +/* Copyright (C) 2005 Free Software Foundation, Inc.
  93705. + This file is part of the GNU C Library.
  93706. + Contributed by Phil Blundell <pb@nexus.co.uk>, 2005
  93707. +
  93708. + The GNU C Library is free software; you can redistribute it and/or
  93709. + modify it under the terms of the GNU Lesser General Public
  93710. + License as published by the Free Software Foundation; either
  93711. + version 2.1 of the License, or (at your option) any later version.
  93712. +
  93713. + The GNU C Library is distributed in the hope that it will be useful,
  93714. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  93715. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  93716. + Lesser General Public License for more details.
  93717. +
  93718. + You should have received a copy of the GNU Lesser General Public
  93719. + License along with the GNU C Library; if not, write to the Free
  93720. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93721. + 02111-1307 USA. */
  93722. +
  93723. +#include <sched.h>
  93724. +#include <signal.h>
  93725. +#include <sysdep.h>
  93726. +#include <tls.h>
  93727. +
  93728. +
  93729. +#define ARCH_FORK() \
  93730. + INLINE_SYSCALL (clone, 5, \
  93731. + CLONE_CHILD_SETTID | CLONE_CHILD_CLEARTID | SIGCHLD, \
  93732. + NULL, NULL, &THREAD_SELF->tid, NULL)
  93733. +
  93734. +#include "../fork.c"
  93735. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/libc-lowlevellock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/libc-lowlevellock.c
  93736. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/libc-lowlevellock.c 1970-01-01 01:00:00.000000000 +0100
  93737. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/libc-lowlevellock.c 2014-06-02 17:40:35.106718029 +0200
  93738. @@ -0,0 +1,21 @@
  93739. +/* Copyright (C) 2003 Free Software Foundation, Inc.
  93740. + This file is part of the GNU C Library.
  93741. + Contributed by Paul Mackerras <paulus@au.ibm.com>, 2003.
  93742. +
  93743. + The GNU C Library is free software; you can redistribute it and/or
  93744. + modify it under the terms of the GNU Lesser General Public
  93745. + License as published by the Free Software Foundation; either
  93746. + version 2.1 of the License, or (at your option) any later version.
  93747. +
  93748. + The GNU C Library is distributed in the hope that it will be useful,
  93749. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  93750. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  93751. + Lesser General Public License for more details.
  93752. +
  93753. + You should have received a copy of the GNU Lesser General Public
  93754. + License along with the GNU C Library; if not, write to the Free
  93755. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93756. + 02111-1307 USA. */
  93757. +
  93758. +/* No difference to lowlevellock.c, except we lose a couple of functions. */
  93759. +#include "lowlevellock.c"
  93760. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.c
  93761. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.c 1970-01-01 01:00:00.000000000 +0100
  93762. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.c 2014-06-02 17:40:35.106718029 +0200
  93763. @@ -0,0 +1,134 @@
  93764. +/* low level locking for pthread library. Generic futex-using version.
  93765. + Copyright (C) 2003, 2005, 2007 Free Software Foundation, Inc.
  93766. + This file is part of the GNU C Library.
  93767. +
  93768. + The GNU C Library is free software; you can redistribute it and/or
  93769. + modify it under the terms of the GNU Lesser General Public
  93770. + License as published by the Free Software Foundation; either
  93771. + version 2.1 of the License, or (at your option) any later version.
  93772. +
  93773. + The GNU C Library is distributed in the hope that it will be useful,
  93774. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  93775. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  93776. + Lesser General Public License for more details.
  93777. +
  93778. + You should have received a copy of the GNU Lesser General Public
  93779. + License along with the GNU C Library; if not, write to the Free
  93780. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93781. + 02111-1307 USA. */
  93782. +
  93783. +#include <errno.h>
  93784. +#include <sysdep.h>
  93785. +#include <lowlevellock.h>
  93786. +#include <sys/time.h>
  93787. +#include <tls.h>
  93788. +
  93789. +void
  93790. +__lll_lock_wait_private (int *futex)
  93791. +{
  93792. + do
  93793. + {
  93794. + int oldval = atomic_compare_and_exchange_val_acq (futex, 2, 1);
  93795. + if (oldval != 0)
  93796. + lll_futex_wait (futex, 2, LLL_PRIVATE);
  93797. + }
  93798. + while (atomic_compare_and_exchange_bool_acq (futex, 2, 0) != 0);
  93799. +}
  93800. +
  93801. +
  93802. +/* These functions don't get included in libc.so */
  93803. +#ifdef IS_IN_libpthread
  93804. +void
  93805. +__lll_lock_wait (int *futex, int private)
  93806. +{
  93807. + do
  93808. + {
  93809. + int oldval = atomic_compare_and_exchange_val_acq (futex, 2, 1);
  93810. + if (oldval != 0)
  93811. + lll_futex_wait (futex, 2, private);
  93812. + }
  93813. + while (atomic_compare_and_exchange_bool_acq (futex, 2, 0) != 0);
  93814. +}
  93815. +
  93816. +
  93817. +int
  93818. +__lll_timedlock_wait (int *futex, const struct timespec *abstime, int private)
  93819. +{
  93820. + struct timespec rt;
  93821. +
  93822. + /* Reject invalid timeouts. */
  93823. + if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
  93824. + return EINVAL;
  93825. +
  93826. + /* Upgrade the lock. */
  93827. + if (atomic_exchange_acq (futex, 2) == 0)
  93828. + return 0;
  93829. +
  93830. + do
  93831. + {
  93832. + struct timeval tv;
  93833. +
  93834. + /* Get the current time. */
  93835. + (void) gettimeofday (&tv, NULL);
  93836. +
  93837. + /* Compute relative timeout. */
  93838. + rt.tv_sec = abstime->tv_sec - tv.tv_sec;
  93839. + rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
  93840. + if (rt.tv_nsec < 0)
  93841. + {
  93842. + rt.tv_nsec += 1000000000;
  93843. + --rt.tv_sec;
  93844. + }
  93845. +
  93846. + /* Already timed out? */
  93847. + if (rt.tv_sec < 0)
  93848. + return ETIMEDOUT;
  93849. +
  93850. + // XYZ: Lost the lock to check whether it was private.
  93851. + lll_futex_timed_wait (futex, 2, &rt, private);
  93852. + }
  93853. + while (atomic_compare_and_exchange_bool_acq (futex, 2, 0) != 0);
  93854. +
  93855. + return 0;
  93856. +}
  93857. +
  93858. +
  93859. +int
  93860. +__lll_timedwait_tid (int *tidp, const struct timespec *abstime)
  93861. +{
  93862. + int tid;
  93863. +
  93864. + if (abstime->tv_nsec < 0 || abstime->tv_nsec >= 1000000000)
  93865. + return EINVAL;
  93866. +
  93867. + /* Repeat until thread terminated. */
  93868. + while ((tid = *tidp) != 0)
  93869. + {
  93870. + struct timeval tv;
  93871. + struct timespec rt;
  93872. +
  93873. + /* Get the current time. */
  93874. + (void) gettimeofday (&tv, NULL);
  93875. +
  93876. + /* Compute relative timeout. */
  93877. + rt.tv_sec = abstime->tv_sec - tv.tv_sec;
  93878. + rt.tv_nsec = abstime->tv_nsec - tv.tv_usec * 1000;
  93879. + if (rt.tv_nsec < 0)
  93880. + {
  93881. + rt.tv_nsec += 1000000000;
  93882. + --rt.tv_sec;
  93883. + }
  93884. +
  93885. + /* Already timed out? */
  93886. + if (rt.tv_sec < 0)
  93887. + return ETIMEDOUT;
  93888. +
  93889. + /* Wait until thread terminates. */
  93890. + // XYZ: Lost the lock to check whether it was private.
  93891. + if (lll_futex_timed_wait (tidp, tid, &rt, LLL_SHARED) == -ETIMEDOUT)
  93892. + return ETIMEDOUT;
  93893. + }
  93894. +
  93895. + return 0;
  93896. +}
  93897. +#endif
  93898. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.h
  93899. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.h 1970-01-01 01:00:00.000000000 +0100
  93900. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/lowlevellock.h 2014-06-02 17:40:35.106718029 +0200
  93901. @@ -0,0 +1,279 @@
  93902. +/* Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
  93903. + This file is part of the GNU C Library.
  93904. +
  93905. + The GNU C Library is free software; you can redistribute it and/or
  93906. + modify it under the terms of the GNU Lesser General Public
  93907. + License as published by the Free Software Foundation; either
  93908. + version 2.1 of the License, or (at your option) any later version.
  93909. +
  93910. + The GNU C Library is distributed in the hope that it will be useful,
  93911. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  93912. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  93913. + Lesser General Public License for more details.
  93914. +
  93915. + You should have received a copy of the GNU Lesser General Public
  93916. + License along with the GNU C Library; if not, write to the Free
  93917. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  93918. + 02111-1307 USA. */
  93919. +
  93920. +#ifndef _LOWLEVELLOCK_H
  93921. +#define _LOWLEVELLOCK_H 1
  93922. +
  93923. +#include <time.h>
  93924. +#include <sys/param.h>
  93925. +#include <bits/pthreadtypes.h>
  93926. +#include <atomic.h>
  93927. +#include <sysdep.h>
  93928. +#include <bits/kernel-features.h>
  93929. +
  93930. +#define FUTEX_WAIT 0
  93931. +#define FUTEX_WAKE 1
  93932. +#define FUTEX_REQUEUE 3
  93933. +#define FUTEX_CMP_REQUEUE 4
  93934. +#define FUTEX_WAKE_OP 5
  93935. +#define FUTEX_OP_CLEAR_WAKE_IF_GT_ONE ((4 << 24) | 1)
  93936. +#define FUTEX_LOCK_PI 6
  93937. +#define FUTEX_UNLOCK_PI 7
  93938. +#define FUTEX_TRYLOCK_PI 8
  93939. +#define FUTEX_WAIT_BITSET 9
  93940. +#define FUTEX_WAKE_BITSET 10
  93941. +#define FUTEX_PRIVATE_FLAG 128
  93942. +#define FUTEX_CLOCK_REALTIME 256
  93943. +
  93944. +#define FUTEX_BITSET_MATCH_ANY 0xffffffff
  93945. +
  93946. +/* Values for 'private' parameter of locking macros. Yes, the
  93947. + definition seems to be backwards. But it is not. The bit will be
  93948. + reversed before passing to the system call. */
  93949. +#define LLL_PRIVATE 0
  93950. +#define LLL_SHARED FUTEX_PRIVATE_FLAG
  93951. +
  93952. +
  93953. +#if !defined NOT_IN_libc || defined IS_IN_rtld
  93954. +/* In libc.so or ld.so all futexes are private. */
  93955. +# ifdef __ASSUME_PRIVATE_FUTEX
  93956. +# define __lll_private_flag(fl, private) \
  93957. + ((fl) | FUTEX_PRIVATE_FLAG)
  93958. +# else
  93959. +# define __lll_private_flag(fl, private) \
  93960. + ((fl) | THREAD_GETMEM (THREAD_SELF, header.private_futex))
  93961. +# endif
  93962. +#else
  93963. +# ifdef __ASSUME_PRIVATE_FUTEX
  93964. +# define __lll_private_flag(fl, private) \
  93965. + (((fl) | FUTEX_PRIVATE_FLAG) ^ (private))
  93966. +# else
  93967. +# define __lll_private_flag(fl, private) \
  93968. + (__builtin_constant_p (private) \
  93969. + ? ((private) == 0 \
  93970. + ? ((fl) | THREAD_GETMEM (THREAD_SELF, header.private_futex)) \
  93971. + : (fl)) \
  93972. + : ((fl) | (((private) ^ FUTEX_PRIVATE_FLAG) \
  93973. + & THREAD_GETMEM (THREAD_SELF, header.private_futex))))
  93974. +# endif
  93975. +#endif
  93976. +
  93977. +
  93978. +#define lll_futex_wait(futexp, val, private) \
  93979. + lll_futex_timed_wait(futexp, val, NULL, private)
  93980. +
  93981. +#define lll_futex_timed_wait(futexp, val, timespec, private) \
  93982. + ({ \
  93983. + INTERNAL_SYSCALL_DECL (__err); \
  93984. + long int __ret; \
  93985. + __ret = INTERNAL_SYSCALL (futex, __err, 4, (futexp), \
  93986. + __lll_private_flag (FUTEX_WAIT, private), \
  93987. + (val), (timespec)); \
  93988. + __ret; \
  93989. + })
  93990. +
  93991. +#define lll_futex_wake(futexp, nr, private) \
  93992. + ({ \
  93993. + INTERNAL_SYSCALL_DECL (__err); \
  93994. + long int __ret; \
  93995. + __ret = INTERNAL_SYSCALL (futex, __err, 4, (futexp), \
  93996. + __lll_private_flag (FUTEX_WAKE, private), \
  93997. + (nr), 0); \
  93998. + __ret; \
  93999. + })
  94000. +
  94001. +#define lll_robust_dead(futexv, private) \
  94002. + do \
  94003. + { \
  94004. + int *__futexp = &(futexv); \
  94005. + atomic_or (__futexp, FUTEX_OWNER_DIED); \
  94006. + lll_futex_wake (__futexp, 1, private); \
  94007. + } \
  94008. + while (0)
  94009. +
  94010. +/* Returns non-zero if error happened, zero if success. */
  94011. +#define lll_futex_requeue(futexp, nr_wake, nr_move, mutex, val, private) \
  94012. + ({ \
  94013. + INTERNAL_SYSCALL_DECL (__err); \
  94014. + long int __ret; \
  94015. + __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp), \
  94016. + __lll_private_flag (FUTEX_CMP_REQUEUE, private),\
  94017. + (nr_wake), (nr_move), (mutex), (val)); \
  94018. + INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
  94019. + })
  94020. +
  94021. +
  94022. +/* Returns non-zero if error happened, zero if success. */
  94023. +#define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2, private) \
  94024. + ({ \
  94025. + INTERNAL_SYSCALL_DECL (__err); \
  94026. + long int __ret; \
  94027. + __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp), \
  94028. + __lll_private_flag (FUTEX_WAKE_OP, private), \
  94029. + (nr_wake), (nr_wake2), (futexp2), \
  94030. + FUTEX_OP_CLEAR_WAKE_IF_GT_ONE); \
  94031. + INTERNAL_SYSCALL_ERROR_P (__ret, __err); \
  94032. + })
  94033. +
  94034. +
  94035. +#define lll_trylock(lock) \
  94036. + atomic_compare_and_exchange_val_acq(&(lock), 1, 0)
  94037. +
  94038. +#define lll_cond_trylock(lock) \
  94039. + atomic_compare_and_exchange_val_acq(&(lock), 2, 0)
  94040. +
  94041. +#define __lll_robust_trylock(futex, id) \
  94042. + (atomic_compare_and_exchange_val_acq (futex, id, 0) != 0)
  94043. +#define lll_robust_trylock(lock, id) \
  94044. + __lll_robust_trylock (&(lock), id)
  94045. +
  94046. +extern void __lll_lock_wait_private (int *futex) attribute_hidden;
  94047. +extern void __lll_lock_wait (int *futex, int private) attribute_hidden;
  94048. +extern int __lll_robust_lock_wait (int *futex, int private) attribute_hidden;
  94049. +
  94050. +#define __lll_lock(futex, private) \
  94051. + ((void) ({ \
  94052. + int *__futex = (futex); \
  94053. + if (unlikely(atomic_compare_and_exchange_val_acq (__futex, 1, 0))) \
  94054. + { \
  94055. + if (__builtin_constant_p (private) && (private) == LLL_PRIVATE) \
  94056. + __lll_lock_wait_private (__futex); \
  94057. + else \
  94058. + __lll_lock_wait (__futex, private); \
  94059. + } \
  94060. + }))
  94061. +#define lll_lock(futex, private) __lll_lock (&(futex), private)
  94062. +
  94063. +
  94064. +#define __lll_robust_lock(futex, id, private) \
  94065. + ({ \
  94066. + int *__futex = (futex); \
  94067. + int __val = 0; \
  94068. + \
  94069. + if (unlikely(atomic_compare_and_exchange_bool_acq (__futex, id, 0))) \
  94070. + __val = __lll_robust_lock_wait (__futex, private); \
  94071. + __val; \
  94072. + })
  94073. +#define lll_robust_lock(futex, id, private) \
  94074. + __lll_robust_lock (&(futex), id, private)
  94075. +
  94076. +
  94077. +#define __lll_cond_lock(futex, private) \
  94078. + ((void) ({ \
  94079. + int *__futex = (futex); \
  94080. + if (unlikely(atomic_exchange_acq (__futex, 2))) \
  94081. + __lll_lock_wait (__futex, private); \
  94082. + }))
  94083. +#define lll_cond_lock(futex, private) __lll_cond_lock (&(futex), private)
  94084. +
  94085. +
  94086. +#define lll_robust_cond_lock(futex, id, private) \
  94087. + __lll_robust_lock (&(futex), (id) | FUTEX_WAITERS, private)
  94088. +
  94089. +
  94090. +extern int __lll_timedlock_wait (int *futex, const struct timespec *,
  94091. + int private) attribute_hidden;
  94092. +extern int __lll_robust_timedlock_wait (int *futex, const struct timespec *,
  94093. + int private) attribute_hidden;
  94094. +
  94095. +#define __lll_timedlock(futex, abstime, private) \
  94096. + ({ \
  94097. + int *__futex = (futex); \
  94098. + int __val = 0; \
  94099. + \
  94100. + if (unlikely(atomic_exchange_acq (__futex, 1))) \
  94101. + __val = __lll_timedlock_wait (__futex, abstime, private); \
  94102. + __val; \
  94103. + })
  94104. +#define lll_timedlock(futex, abstime, private) \
  94105. + __lll_timedlock (&(futex), abstime, private)
  94106. +
  94107. +
  94108. +#define __lll_robust_timedlock(futex, abstime, id, private) \
  94109. + ({ \
  94110. + int *__futex = (futex); \
  94111. + int __val = 0; \
  94112. + \
  94113. + if (unlikely(atomic_compare_and_exchange_bool_acq (__futex, id, 0))) \
  94114. + __val = __lll_robust_timedlock_wait (__futex, abstime, private); \
  94115. + __val; \
  94116. + })
  94117. +#define lll_robust_timedlock(futex, abstime, id, private) \
  94118. + __lll_robust_timedlock (&(futex), abstime, id, private)
  94119. +
  94120. +
  94121. +#define __lll_unlock(futex, private) \
  94122. + (void) \
  94123. + ({ int *__futex = (futex); \
  94124. + int __oldval = atomic_exchange_rel (__futex, 0); \
  94125. + if (unlikely(__oldval > 1)) \
  94126. + lll_futex_wake (__futex, 1, private); \
  94127. + })
  94128. +#define lll_unlock(futex, private) __lll_unlock(&(futex), private)
  94129. +
  94130. +
  94131. +#define __lll_robust_unlock(futex, private) \
  94132. + (void) \
  94133. + ({ int *__futex = (futex); \
  94134. + int __oldval = atomic_exchange_rel (__futex, 0); \
  94135. + if (unlikely(__oldval & FUTEX_WAITERS)) \
  94136. + lll_futex_wake (__futex, 1, private); \
  94137. + })
  94138. +#define lll_robust_unlock(futex, private) \
  94139. + __lll_robust_unlock(&(futex), private)
  94140. +
  94141. +
  94142. +#define lll_islocked(futex) \
  94143. + (futex != 0)
  94144. +
  94145. +
  94146. +/* Our internal lock implementation is identical to the binary-compatible
  94147. + mutex implementation. */
  94148. +
  94149. +/* Initializers for lock. */
  94150. +#define LLL_LOCK_INITIALIZER (0)
  94151. +#define LLL_LOCK_INITIALIZER_LOCKED (1)
  94152. +
  94153. +/* The states of a lock are:
  94154. + 0 - untaken
  94155. + 1 - taken by one user
  94156. + >1 - taken by more users */
  94157. +
  94158. +/* The kernel notifies a process which uses CLONE_CLEARTID via futex
  94159. + wakeup when the clone terminates. The memory location contains the
  94160. + thread ID while the clone is running and is reset to zero
  94161. + afterwards. */
  94162. +#define lll_wait_tid(tid) \
  94163. + do { \
  94164. + __typeof (tid) __tid; \
  94165. + while ((__tid = (tid)) != 0) \
  94166. + lll_futex_wait (&(tid), __tid, LLL_SHARED);\
  94167. + } while (0)
  94168. +
  94169. +extern int __lll_timedwait_tid (int *, const struct timespec *)
  94170. + attribute_hidden;
  94171. +
  94172. +#define lll_timedwait_tid(tid, abstime) \
  94173. + ({ \
  94174. + int __res = 0; \
  94175. + if ((tid) != 0) \
  94176. + __res = __lll_timedwait_tid (&(tid), (abstime)); \
  94177. + __res; \
  94178. + })
  94179. +
  94180. +#endif /* lowlevellock.h */
  94181. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile
  94182. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile 1970-01-01 01:00:00.000000000 +0100
  94183. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile 2014-06-02 17:40:35.102718006 +0200
  94184. @@ -0,0 +1,13 @@
  94185. +# Makefile for uClibc NPTL
  94186. +#
  94187. +# Copyright (C) 2005 Steven J. Hill <sjhill@uclibc.org>
  94188. +#
  94189. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  94190. +#
  94191. +
  94192. +top_srcdir=../../../../../../../
  94193. +top_builddir=../../../../../../../
  94194. +all: objs
  94195. +include $(top_builddir)Rules.mak
  94196. +include Makefile.arch
  94197. +include $(top_srcdir)Makerules
  94198. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch
  94199. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch 1970-01-01 01:00:00.000000000 +0100
  94200. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/Makefile.arch 2014-06-02 17:40:35.102718006 +0200
  94201. @@ -0,0 +1,31 @@
  94202. +# Makefile for uClibc NPTL
  94203. +#
  94204. +# Copyright (C) 2006 Steven J. Hill <sjhill@uclibc.org>
  94205. +#
  94206. +# Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  94207. +#
  94208. +
  94209. +libpthread_linux_arch_SSRC = pt-vfork.S
  94210. +libpthread_linux_arch_CSRC = pthread_once.c \
  94211. + pt-__syscall_rt_sigaction.c pt-__syscall_error.c \
  94212. + lowlevellock.c
  94213. +
  94214. +libc_linux_arch_CSRC = fork.c libc-lowlevellock.c
  94215. +libc_linux_arch_SSRC = clone.S vfork.S
  94216. +libc_linux_arch_SSRC-OMIT = waitpid.S
  94217. +
  94218. +CFLAGS += $(SSP_ALL_CFLAGS)
  94219. +
  94220. +CFLAGS-pthread_once.c = -DNOT_IN_libc -DIS_IN_libpthread
  94221. +CFLAGS-pt-__syscall_rt_sigaction.c = -DNOT_IN_libc -DIS_IN_libpthread
  94222. +CFLAGS-lowlevellock.c = -DNOT_IN_libc -DIS_IN_libpthread
  94223. +CFLAGS-pt-__syscall_error.c = -DNOT_IN_libc -DIS_IN_libpthread
  94224. +ASFLAGS-vfork.S = -DIS_IN_libc -DNOT_IN_libpthread
  94225. +ASFLAGS-clone.S = -DIS_IN_libc -DNOT_IN_libpthread
  94226. +ASFLAGS-pt-vfork.S = -DNOT_IN_libc -DIS_IN_libpthread
  94227. +
  94228. +ifeq ($(UCLIBC_HAS_STDIO_FUTEXES),y)
  94229. +CFLAGS-fork.c = -D__USE_STDIO_FUTEXES__
  94230. +endif
  94231. +CFLAGS-OMIT-fork.c = -DNOT_IN_libc -DIS_IN_libpthread
  94232. +CFLAGS-OMIT-libc-lowlevellock.c = -DNOT_IN_libc -DIS_IN_libpthread
  94233. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-gettimeofday.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-gettimeofday.c
  94234. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-gettimeofday.c 1970-01-01 01:00:00.000000000 +0100
  94235. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-gettimeofday.c 2014-06-02 17:40:35.106718029 +0200
  94236. @@ -0,0 +1,11 @@
  94237. +/*
  94238. + * Copyright (C) 2013 Imagination Technologies Ltd.
  94239. + *
  94240. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  94241. + */
  94242. +
  94243. +#include <sys/syscall.h>
  94244. +#include <sys/time.h>
  94245. +
  94246. +int gettimeofday (struct timeval *, struct timezone *) attribute_hidden;
  94247. +_syscall2(int, gettimeofday, struct timeval *, tv, struct timezone *, tz);
  94248. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pthread_once.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pthread_once.c
  94249. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pthread_once.c 1970-01-01 01:00:00.000000000 +0100
  94250. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pthread_once.c 2014-06-02 17:40:35.106718029 +0200
  94251. @@ -0,0 +1,100 @@
  94252. +/* Copyright (C) 2004, 2005 Free Software Foundation, Inc.
  94253. + This file is part of the GNU C Library.
  94254. +
  94255. + The GNU C Library is free software; you can redistribute it and/or
  94256. + modify it under the terms of the GNU Lesser General Public
  94257. + License as published by the Free Software Foundation; either
  94258. + version 2.1 of the License, or (at your option) any later version.
  94259. +
  94260. + The GNU C Library is distributed in the hope that it will be useful,
  94261. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  94262. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  94263. + Lesser General Public License for more details.
  94264. +
  94265. + You should have received a copy of the GNU Lesser General Public
  94266. + License along with the GNU C Library; if not, write to the Free
  94267. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94268. + 02111-1307 USA. */
  94269. +
  94270. +#include "pthreadP.h"
  94271. +#include <lowlevellock.h>
  94272. +
  94273. +unsigned long int __fork_generation attribute_hidden;
  94274. +
  94275. +static void
  94276. +clear_once_control (void *arg)
  94277. +{
  94278. + pthread_once_t *once_control = (pthread_once_t *) arg;
  94279. +
  94280. + *once_control = 0;
  94281. + lll_futex_wake (once_control, INT_MAX, LLL_PRIVATE);
  94282. +}
  94283. +
  94284. +int
  94285. +attribute_protected
  94286. +__pthread_once (pthread_once_t *once_control, void (*init_routine) (void))
  94287. +{
  94288. + for (;;)
  94289. + {
  94290. + int oldval;
  94291. + int newval;
  94292. +
  94293. + /* Pseudo code:
  94294. + newval = __fork_generation | 1;
  94295. + oldval = *once_control;
  94296. + if ((oldval & 2) == 0)
  94297. + *once_control = newval;
  94298. + Do this atomically.
  94299. + */
  94300. + do
  94301. + {
  94302. + newval = __fork_generation | 1;
  94303. + oldval = *once_control;
  94304. + if (oldval & 2)
  94305. + break;
  94306. + } while (atomic_compare_and_exchange_val_acq (once_control, newval, oldval) != oldval);
  94307. +
  94308. + /* Check if the initializer has already been done. */
  94309. + if ((oldval & 2) != 0)
  94310. + return 0;
  94311. +
  94312. + /* Check if another thread already runs the initializer. */
  94313. + if ((oldval & 1) == 0)
  94314. + break;
  94315. +
  94316. + /* Check whether the initializer execution was interrupted by a fork. */
  94317. + if (oldval != newval)
  94318. + break;
  94319. +
  94320. + /* Same generation, some other thread was faster. Wait. */
  94321. + lll_futex_wait (once_control, oldval, LLL_PRIVATE);
  94322. + }
  94323. +
  94324. + /* This thread is the first here. Do the initialization.
  94325. + Register a cleanup handler so that in case the thread gets
  94326. + interrupted the initialization can be restarted. */
  94327. + pthread_cleanup_push (clear_once_control, once_control);
  94328. +
  94329. + init_routine ();
  94330. +
  94331. + pthread_cleanup_pop (0);
  94332. +
  94333. + /* Say that the initialisation is done. */
  94334. + *once_control = __fork_generation | 2;
  94335. +
  94336. + /* Wake up all other threads. */
  94337. + lll_futex_wake (once_control, INT_MAX, LLL_PRIVATE);
  94338. +
  94339. + return 0;
  94340. +}
  94341. +weak_alias (__pthread_once, pthread_once)
  94342. +strong_alias (__pthread_once, __pthread_once_internal)
  94343. +
  94344. +#if defined(__USING_SJLJ_EXCEPTIONS__) && !defined(__PIC__)
  94345. +/* When statically linked, if pthread_create is used, this file
  94346. + will be brought in. The exception handling code in GCC assumes
  94347. + that if pthread_create is available, so are these. */
  94348. +const void *include_pthread_getspecific attribute_hidden = pthread_getspecific;
  94349. +const void *include_pthread_setspecific attribute_hidden = pthread_setspecific;
  94350. +const void *include_pthread_key_create attribute_hidden = pthread_key_create;
  94351. +#endif
  94352. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_error.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_error.c
  94353. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_error.c 1970-01-01 01:00:00.000000000 +0100
  94354. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_error.c 2014-06-02 17:40:35.106718029 +0200
  94355. @@ -0,0 +1,7 @@
  94356. +/*
  94357. + * Copyright (C) 2013 Imagination Technologies Ltd.
  94358. + *
  94359. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  94360. + */
  94361. +
  94362. +#include <../../../../../../../libc/sysdeps/linux/metag/__syscall_error.c>
  94363. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_rt_sigaction.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_rt_sigaction.c
  94364. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_rt_sigaction.c 1970-01-01 01:00:00.000000000 +0100
  94365. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-__syscall_rt_sigaction.c 2014-06-02 17:40:35.106718029 +0200
  94366. @@ -0,0 +1,7 @@
  94367. +/*
  94368. + * Copyright (C) 2013 Imagination Technologies Ltd.
  94369. + *
  94370. + * Licensed under the LGPL v2.1 or later, see the file COPYING.LIB in this tarball.
  94371. + */
  94372. +
  94373. +#include <../../../../../../../libc/sysdeps/linux/common/__syscall_rt_sigaction.c>
  94374. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-vfork.S
  94375. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-vfork.S 1970-01-01 01:00:00.000000000 +0100
  94376. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/pt-vfork.S 2014-06-02 17:40:35.106718029 +0200
  94377. @@ -0,0 +1,51 @@
  94378. +/* Copyright (C) 2005 Free Software Foundation, Inc.
  94379. + This file is part of the GNU C Library.
  94380. +
  94381. + The GNU C Library is free software; you can redistribute it and/or
  94382. + modify it under the terms of the GNU Lesser General Public
  94383. + License as published by the Free Software Foundation; either
  94384. + version 2.1 of the License, or (at your option) any later version.
  94385. +
  94386. + The GNU C Library is distributed in the hope that it will be useful,
  94387. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  94388. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  94389. + Lesser General Public License for more details.
  94390. +
  94391. + You should have received a copy of the GNU Lesser General Public
  94392. + License along with the GNU C Library; if not, write to the Free
  94393. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94394. + 02111-1307 USA. */
  94395. +
  94396. +#include <tcb-offsets.h>
  94397. +#include <asm/unistd.h>
  94398. +
  94399. +#ifdef __PIC__
  94400. +#define __VFORK_METAG_LOAD_TP ___metag_load_tp@PLT
  94401. +#else
  94402. +#define __VFORK_METAG_LOAD_TP ___metag_load_tp
  94403. +#endif
  94404. +
  94405. +/* Save the PID value. */
  94406. +#define SAVE_PID \
  94407. + SETL [A0StP++], D0FrT, D1RtP; \
  94408. + CALLR D1RtP, __VFORK_METAG_LOAD_TP; \
  94409. + SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE; \
  94410. + GETD D0FrT, [D0Re0 + #PID]; \
  94411. + NEG D0FrT, D0FrT; \
  94412. + SETD [D0Re0 + #PID], D0FrT; \
  94413. + GETL D0FrT, D1RtP, [--A0StP];
  94414. +
  94415. +#define RESTORE_PID \
  94416. + CMP D0Re0, #0; \
  94417. + BEQ 1f; \
  94418. + MSETL [A0StP++], D0Re0, D0FrT; \
  94419. + CALLR D1RtP, __VFORK_METAG_LOAD_TP; \
  94420. + SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE; \
  94421. + GETD D0FrT, [D0Re0 + #PID]; \
  94422. + NEG D0FrT, D0FrT; \
  94423. + SETD [D0Re0 + #PID], D0FrT; \
  94424. + GETL D0FrT, D1RtP, [--A0StP]; \
  94425. + GETL D0Re0, D1Re0, [--A0StP]; \
  94426. +1:
  94427. +
  94428. +#include <../../../../../../../libc/sysdeps/linux/metag/vfork.S>
  94429. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/sysdep-cancel.h
  94430. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/sysdep-cancel.h 1970-01-01 01:00:00.000000000 +0100
  94431. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/sysdep-cancel.h 2014-06-02 17:40:35.106718029 +0200
  94432. @@ -0,0 +1,152 @@
  94433. +/* Copyright (C) 2003, 2004, 2005, 2009 Free Software Foundation, Inc.
  94434. + This file is part of the GNU C Library.
  94435. +
  94436. + The GNU C Library is free software; you can redistribute it and/or
  94437. + modify it under the terms of the GNU Lesser General Public
  94438. + License as published by the Free Software Foundation; either
  94439. + version 2.1 of the License, or (at your option) any later version.
  94440. +
  94441. + The GNU C Library is distributed in the hope that it will be useful,
  94442. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  94443. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  94444. + Lesser General Public License for more details.
  94445. +
  94446. + You should have received a copy of the GNU Lesser General Public
  94447. + License along with the GNU C Library; if not, write to the Free
  94448. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94449. + 02111-1307 USA. */
  94450. +
  94451. +#include <tls.h>
  94452. +#include <sysdep.h>
  94453. +#ifndef __ASSEMBLER__
  94454. +# include <pthreadP.h>
  94455. +#endif
  94456. +
  94457. +#if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
  94458. +
  94459. +/* NOTE: We do mark syscalls with unwind annotations, for the benefit of
  94460. + cancellation; but they're really only accurate at the point of the
  94461. + syscall. The ARM unwind directives are not rich enough without adding
  94462. + a custom personality function. */
  94463. +
  94464. +#ifdef __ASSEMBLER__
  94465. +#undef ret
  94466. +#define ret \
  94467. + CMP D0Re0, #-4095; \
  94468. + MOVLO PC, D1RtP; \
  94469. + MOV D1Ar1, D0Re0; \
  94470. + B SYSCALL_ERROR;
  94471. +#endif /* __ASSEMBLER__ */
  94472. +
  94473. +# undef PSEUDO
  94474. +# define PSEUDO(name, syscall_name, args) \
  94475. + .section ".text"; \
  94476. + .type ___##syscall_name##_nocancel,%function; \
  94477. + .globl ___##syscall_name##_nocancel; \
  94478. + ___##syscall_name##_nocancel: \
  94479. + cfi_startproc; \
  94480. + DO_CALL (syscall_name, args); \
  94481. + MOV PC, D1RtP; \
  94482. + cfi_endproc; \
  94483. + .size ___##syscall_name##_nocancel,.-___##syscall_name##_nocancel; \
  94484. + .globl _##name; \
  94485. + .type _##name, @function; \
  94486. +name##: \
  94487. +_##name##: \
  94488. + DOCARGS_##args; \
  94489. + SINGLE_THREAD_P; \
  94490. + UNDOCARGS_##args; \
  94491. + BNE .Lpseudo_cancel; \
  94492. + cfi_remember_state; \
  94493. + DO_CALL (syscall_name, 0); \
  94494. + ret \
  94495. + cfi_restore_state; \
  94496. + .Lpseudo_cancel: \
  94497. + MSETL [A0StP++], D0FrT, D0.5; \
  94498. + DOCARGS_##args; /* save syscall args etc. around CENABLE. */ \
  94499. + CENABLE; \
  94500. + MOV D0FrT, D0Re0; /* put mask in safe place. */ \
  94501. + UNDOCARGS_##args; /* restore syscall args. */ \
  94502. + DO_CALL(syscall_name, 0); /* do the call. */ \
  94503. + MOV D0.5, D0Re0; /* save syscall return value. */ \
  94504. + MOV D1Ar1, D0FrT; /* get mask back. */ \
  94505. + CDISABLE; \
  94506. + MOV D0Re0, D0.5; /* retrieve return value. */ \
  94507. + GETL D0.5, D1.5, [--A0StP]; \
  94508. + GETL D0FrT, D1RtP, [--A0StP];
  94509. +
  94510. +# define DOCARGS_0
  94511. +# define UNDOCARGS_0
  94512. +
  94513. +# define DOCARGS_1 \
  94514. + SETL [A0StP++], D1Ar1, D0Ar2
  94515. +# define UNDOCARGS_1 \
  94516. + GETL D1Ar1, D0Ar2, [--A0StP]
  94517. +
  94518. +# define DOCARGS_2 DOCARGS_1
  94519. +
  94520. +# define UNDOCARGS_2 UNDOCARGS_2
  94521. +
  94522. +# define DOCARGS_3 \
  94523. + MSETL [A0StP++], D1Ar1, D1Ar3
  94524. +
  94525. +# define UNDOCARGS_3 \
  94526. + GETL D1Ar1, D0Ar2, [--A0StP]; \
  94527. + GETL D1Ar3, D0Ar4, [--A0StP]
  94528. +
  94529. +# define DOCARGS_4 DOCARGS_3
  94530. +# define UNDOCARGS_4 UNDOCARGS_3
  94531. +
  94532. +# define DOCARGS_5 \
  94533. + MSETL [A0StP++], D1Ar1, D1Ar3, D1Ar5
  94534. +# define UNDOCARGS_5 \
  94535. + GETL D1Ar1, D0Ar2, [--A0StP]; \
  94536. + GETL D1Ar3, D0Ar4, [--A0StP]; \
  94537. + GETL D1Ar5, D0Ar6, [--A0StP]
  94538. +
  94539. +# define DOCARGS_6 DOCARGS_5
  94540. +# define UNDOCARGS_6 UNDOCARGS_5
  94541. +
  94542. +# ifdef IS_IN_libpthread
  94543. +# define CENABLE CALLR D1RtP, ___pthread_enable_asynccancel@PLT
  94544. +# define CDISABLE CALLR D1RtP, ___pthread_disable_asynccancel@PLT
  94545. +# define __local_multiple_threads __pthread_multiple_threads
  94546. +# elif !defined NOT_IN_libc
  94547. +# define CENABLE CALLR D1RtP, ___libc_enable_asynccancel@PLT
  94548. +# define CDISABLE CALLR D1RtP, ___libc_disable_asynccancel@PLT
  94549. +# define __local_multiple_threads __libc_multiple_threads
  94550. +# elif defined IS_IN_librt
  94551. +# define CENABLE CALLR D1RtP, ___librt_enable_asynccancel@PLT
  94552. +# define CDISABLE CALLR D1RtP, ___librt_disable_asynccancel@PLT
  94553. +# else
  94554. +# error Unsupported library
  94555. +# endif
  94556. +
  94557. +#ifndef __ASSEMBLER__
  94558. +# define SINGLE_THREAD_P \
  94559. + likely(THREAD_GETMEM (THREAD_SELF, \
  94560. + header.multiple_threads) == 0)
  94561. +#else
  94562. +# define SINGLE_THREAD_P \
  94563. + SETL [A0StP++], D0FrT, D1RtP; \
  94564. + CALLR D1RtP, ___metag_load_tp@PLT; \
  94565. + SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE; \
  94566. + GETD D0Re0, [D0Re0 + #MULTIPLE_THREADS_OFFSET]; \
  94567. + CMP D0Re0, #0; \
  94568. + GETL D0FrT, D1RtP, [--A0StP]
  94569. +#endif
  94570. +
  94571. +
  94572. +#elif !defined __ASSEMBLER__
  94573. +
  94574. +/* For rtld, et cetera. */
  94575. +# define SINGLE_THREAD_P 1
  94576. +# define NO_CANCELLATION 1
  94577. +
  94578. +#endif
  94579. +
  94580. +#ifndef __ASSEMBLER__
  94581. +# define RTLD_SINGLE_THREAD_P \
  94582. + likely(THREAD_GETMEM (THREAD_SELF, \
  94583. + header.multiple_threads) == 0)
  94584. +#endif
  94585. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/vfork.S
  94586. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/metag/vfork.S 1970-01-01 01:00:00.000000000 +0100
  94587. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/metag/vfork.S 2014-06-02 17:40:35.106718029 +0200
  94588. @@ -0,0 +1,56 @@
  94589. +/* Copyright (C) 2005 Free Software Foundation, Inc.
  94590. + This file is part of the GNU C Library.
  94591. +
  94592. + The GNU C Library is free software; you can redistribute it and/or
  94593. + modify it under the terms of the GNU Lesser General Public
  94594. + License as published by the Free Software Foundation; either
  94595. + version 2.1 of the License, or (at your option) any later version.
  94596. +
  94597. + The GNU C Library is distributed in the hope that it will be useful,
  94598. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  94599. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  94600. + Lesser General Public License for more details.
  94601. +
  94602. + You should have received a copy of the GNU Lesser General Public
  94603. + License along with the GNU C Library; if not, write to the Free
  94604. + Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94605. + 02111-1307 USA. */
  94606. +
  94607. +#include <tcb-offsets.h>
  94608. +#include <asm/unistd.h>
  94609. +
  94610. +#ifdef __PIC__
  94611. +#define __VFORK_METAG_LOAD_TP ___metag_load_tp@PLT
  94612. +#else
  94613. +#define __VFORK_METAG_LOAD_TP ___metag_load_tp
  94614. +#endif
  94615. +
  94616. +/* Save the PID value. */
  94617. +#define SAVE_PID \
  94618. + SETL [A0StP++], D0FrT, D1RtP; \
  94619. + CALLR D1RtP, __VFORK_METAG_LOAD_TP; \
  94620. + SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE; \
  94621. + GETD D0FrT, [D0Re0 + #PID]; \
  94622. + NEGS D0FrT, D0FrT; \
  94623. + BNZ 1f; \
  94624. + MOVT D0FrT, #0x8000; \
  94625. +1: SETD [D0Re0 + #PID], D0FrT; \
  94626. + GETL D0FrT, D1RtP, [--A0StP];
  94627. +
  94628. +#define RESTORE_PID \
  94629. + CMP D0Re0, #0; \
  94630. + BEQ 1f; \
  94631. + MSETL [A0StP++], D0Re0, D0FrT; \
  94632. + CALLR D1RtP, __VFORK_METAG_LOAD_TP; \
  94633. + SUB D0Re0, D0Re0, #TLS_PRE_TCB_SIZE; \
  94634. + GETD D0FrT, [D0Re0 + #PID]; \
  94635. + NEG D0FrT, D0FrT; \
  94636. + MOVT D1Re0, #0x8000; \
  94637. + CMP D0FrT, D1Re0; \
  94638. + XOREQ D0FrT, D0FrT, D0FrT; \
  94639. + SETD [D0Re0 + #PID], D0FrT; \
  94640. + GETL D0FrT, D1RtP, [--A0StP]; \
  94641. + GETL D0Re0, D1Re0, [--A0StP]; \
  94642. +1:
  94643. +
  94644. +#include <../../../../../../../libc/sysdeps/linux/metag/vfork.S>
  94645. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h
  94646. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  94647. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/pthreadtypes.h 2014-06-02 17:40:35.106718029 +0200
  94648. @@ -13,9 +13,8 @@
  94649. Lesser General Public License for more details.
  94650. You should have received a copy of the GNU Lesser General Public
  94651. - License along with the GNU C Library; if not, write to the Free
  94652. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94653. - 02111-1307 USA. */
  94654. + License along with the GNU C Library; if not, see
  94655. + <http://www.gnu.org/licenses/>. */
  94656. #ifndef _BITS_PTHREADTYPES_H
  94657. #define _BITS_PTHREADTYPES_H 1
  94658. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/semaphore.h
  94659. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  94660. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/bits/semaphore.h 2014-06-02 17:40:35.106718029 +0200
  94661. @@ -12,9 +12,8 @@
  94662. Lesser General Public License for more details.
  94663. You should have received a copy of the GNU Lesser General Public
  94664. - License along with the GNU C Library; if not, write to the Free
  94665. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94666. - 02111-1307 USA. */
  94667. + License along with the GNU C Library; if not, see
  94668. + <http://www.gnu.org/licenses/>. */
  94669. #ifndef _SEMAPHORE_H
  94670. # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  94671. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/createthread.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/createthread.c
  94672. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/createthread.c 2012-05-15 09:20:09.000000000 +0200
  94673. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/createthread.c 2014-06-02 17:40:35.106718029 +0200
  94674. @@ -12,9 +12,8 @@
  94675. Lesser General Public License for more details.
  94676. You should have received a copy of the GNU Lesser General Public
  94677. - License along with the GNU C Library; if not, write to the Free
  94678. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94679. - 02111-1307 USA. */
  94680. + License along with the GNU C Library; if not, see
  94681. + <http://www.gnu.org/licenses/>. */
  94682. /* Value passed to 'clone' for initialization of the thread register. */
  94683. #define TLS_VALUE ((void *) (pd) \
  94684. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/lowlevellock.h
  94685. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  94686. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/lowlevellock.h 2014-06-02 17:40:35.106718029 +0200
  94687. @@ -13,9 +13,8 @@
  94688. Lesser General Public License for more details.
  94689. You should have received a copy of the GNU Lesser General Public
  94690. - License along with the GNU C Library; if not, write to the Free
  94691. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94692. - 02111-1307 USA. */
  94693. + License along with the GNU C Library; if not, see
  94694. + <http://www.gnu.org/licenses/>. */
  94695. #ifndef _LOWLEVELLOCK_H
  94696. #define _LOWLEVELLOCK_H 1
  94697. @@ -81,7 +80,7 @@
  94698. #define lll_futex_timed_wait(futexp, val, timespec, private) \
  94699. ({ \
  94700. INTERNAL_SYSCALL_DECL (__err); \
  94701. - long int __ret; \
  94702. + long int __ret attribute_unused; \
  94703. __ret = INTERNAL_SYSCALL (futex, __err, 4, (long) (futexp), \
  94704. __lll_private_flag (FUTEX_WAIT, private), \
  94705. (val), (timespec)); \
  94706. @@ -91,7 +90,7 @@
  94707. #define lll_futex_wake(futexp, nr, private) \
  94708. ({ \
  94709. INTERNAL_SYSCALL_DECL (__err); \
  94710. - long int __ret; \
  94711. + long int __ret attribute_unused; \
  94712. __ret = INTERNAL_SYSCALL (futex, __err, 4, (long) (futexp), \
  94713. __lll_private_flag (FUTEX_WAKE, private), \
  94714. (nr), 0); \
  94715. @@ -111,7 +110,7 @@
  94716. #define lll_futex_requeue(futexp, nr_wake, nr_move, mutex, val, private) \
  94717. ({ \
  94718. INTERNAL_SYSCALL_DECL (__err); \
  94719. - long int __ret; \
  94720. + long int __ret attribute_unused; \
  94721. __ret = INTERNAL_SYSCALL (futex, __err, 6, (long) (futexp), \
  94722. __lll_private_flag (FUTEX_CMP_REQUEUE, private),\
  94723. (nr_wake), (nr_move), (mutex), (val)); \
  94724. @@ -122,7 +121,7 @@
  94725. #define lll_futex_wake_unlock(futexp, nr_wake, nr_wake2, futexp2, private) \
  94726. ({ \
  94727. INTERNAL_SYSCALL_DECL (__err); \
  94728. - long int __ret; \
  94729. + long int __ret attribute_unused; \
  94730. \
  94731. __ret = INTERNAL_SYSCALL (futex, __err, 6, (futexp), \
  94732. __lll_private_flag (FUTEX_WAKE_OP, private), \
  94733. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pthread_once.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pthread_once.c
  94734. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
  94735. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pthread_once.c 2014-06-02 17:40:35.106718029 +0200
  94736. @@ -13,9 +13,8 @@
  94737. Lesser General Public License for more details.
  94738. You should have received a copy of the GNU Lesser General Public
  94739. - License along with the GNU C Library; if not, write to the Free
  94740. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94741. - 02111-1307 USA. */
  94742. + License along with the GNU C Library; if not, see
  94743. + <http://www.gnu.org/licenses/>. */
  94744. #include "pthreadP.h"
  94745. #include <lowlevellock.h>
  94746. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pt-vfork.S
  94747. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  94748. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/pt-vfork.S 2014-06-02 17:40:35.106718029 +0200
  94749. @@ -12,9 +12,8 @@
  94750. Lesser General Public License for more details.
  94751. You should have received a copy of the GNU Lesser General Public
  94752. - License along with the GNU C Library; if not, write to the Free
  94753. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94754. - 02111-1307 USA. */
  94755. + License along with the GNU C Library; if not, see
  94756. + <http://www.gnu.org/licenses/>. */
  94757. #include <features.h>
  94758. #include <tls.h>
  94759. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h
  94760. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  94761. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/sysdep-cancel.h 2014-06-02 17:40:35.106718029 +0200
  94762. @@ -12,9 +12,8 @@
  94763. Lesser General Public License for more details.
  94764. You should have received a copy of the GNU Lesser General Public
  94765. - License along with the GNU C Library; if not, write to the Free
  94766. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94767. - 02111-1307 USA. */
  94768. + License along with the GNU C Library; if not, see
  94769. + <http://www.gnu.org/licenses/>. */
  94770. #include <sysdep.h>
  94771. #include <tls.h>
  94772. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/vfork.S
  94773. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mips/vfork.S 2012-05-15 09:20:09.000000000 +0200
  94774. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mips/vfork.S 2014-06-02 17:40:35.106718029 +0200
  94775. @@ -12,9 +12,8 @@
  94776. Lesser General Public License for more details.
  94777. You should have received a copy of the GNU Lesser General Public
  94778. - License along with the GNU C Library; if not, write to the Free
  94779. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94780. - 02111-1307 USA. */
  94781. + License along with the GNU C Library; if not, see
  94782. + <http://www.gnu.org/licenses/>. */
  94783. #include <features.h>
  94784. #include <tls.h>
  94785. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mq_notify.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mq_notify.c
  94786. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/mq_notify.c 2012-05-15 09:20:09.000000000 +0200
  94787. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/mq_notify.c 2014-06-02 17:40:35.106718029 +0200
  94788. @@ -13,9 +13,8 @@
  94789. Lesser General Public License for more details.
  94790. You should have received a copy of the GNU Lesser General Public
  94791. - License along with the GNU C Library; if not, write to the Free
  94792. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94793. - 02111-1307 USA. */
  94794. + License along with the GNU C Library; if not, see
  94795. + <http://www.gnu.org/licenses/>. */
  94796. #include <assert.h>
  94797. #include <errno.h>
  94798. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/not-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/not-cancel.h
  94799. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/not-cancel.h 2012-05-15 09:20:09.000000000 +0200
  94800. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/not-cancel.h 2014-06-02 17:40:35.106718029 +0200
  94801. @@ -14,18 +14,26 @@
  94802. Lesser General Public License for more details.
  94803. You should have received a copy of the GNU Lesser General Public
  94804. - License along with the GNU C Library; if not, write to the Free
  94805. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94806. - 02111-1307 USA. */
  94807. + License along with the GNU C Library; if not, see
  94808. + <http://www.gnu.org/licenses/>. */
  94809. #include <sys/types.h>
  94810. #include <sysdep.h>
  94811. /* Uncancelable open. */
  94812. +#if defined __NR_openat && !defined __NR_open
  94813. +#define open_not_cancel(name, flags, mode) \
  94814. + INLINE_SYSCALL (openat, 4, AT_FDCWD, (const char *) (name), \
  94815. + (flags), (mode))
  94816. +#define open_not_cancel_2(name, flags) \
  94817. + INLINE_SYSCALL (openat, 3, AT_FDCWD, (const char *) (name), \
  94818. + (flags))
  94819. +#else
  94820. #define open_not_cancel(name, flags, mode) \
  94821. INLINE_SYSCALL (open, 3, (const char *) (name), (flags), (mode))
  94822. #define open_not_cancel_2(name, flags) \
  94823. INLINE_SYSCALL (open, 2, (const char *) (name), (flags))
  94824. +#endif
  94825. /* Uncancelable openat. */
  94826. #if !defined NOT_IN_libc || defined IS_IN_libpthread || defined IS_IN_librt
  94827. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h
  94828. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  94829. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h 2014-06-02 17:40:35.110718051 +0200
  94830. @@ -14,9 +14,8 @@
  94831. Lesser General Public License for more details.
  94832. You should have received a copy of the GNU Lesser General Public
  94833. - License along with the GNU C Library; if not, write to the Free
  94834. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94835. - 02111-1307 USA. */
  94836. + License along with the GNU C Library; if not, see
  94837. + <http://www.gnu.org/licenses/>. */
  94838. #ifndef _BITS_PTHREADTYPES_H
  94839. #define _BITS_PTHREADTYPES_H 1
  94840. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h
  94841. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  94842. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/bits/semaphore.h 2014-06-02 17:40:35.110718051 +0200
  94843. @@ -14,9 +14,8 @@
  94844. Lesser General Public License for more details.
  94845. You should have received a copy of the GNU Lesser General Public
  94846. - License along with the GNU C Library; if not, write to the Free
  94847. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94848. - 02111-1307 USA. */
  94849. + License along with the GNU C Library; if not, see
  94850. + <http://www.gnu.org/licenses/>. */
  94851. #ifndef _SEMAPHORE_H
  94852. # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  94853. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/createthread.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/createthread.c
  94854. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/createthread.c 2012-05-15 09:20:09.000000000 +0200
  94855. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/createthread.c 2014-06-02 17:40:35.110718051 +0200
  94856. @@ -13,9 +13,8 @@
  94857. Lesser General Public License for more details.
  94858. You should have received a copy of the GNU Lesser General Public
  94859. - License along with the GNU C Library; if not, write to the Free
  94860. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94861. - 02111-1307 USA. */
  94862. + License along with the GNU C Library; if not, see
  94863. + <http://www.gnu.org/licenses/>. */
  94864. /* Value passed to 'clone' for initialization of the thread register. */
  94865. #define TLS_VALUE ((void *) (pd) \
  94866. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h
  94867. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  94868. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/lowlevellock.h 2014-06-02 17:40:35.110718051 +0200
  94869. @@ -13,9 +13,8 @@
  94870. Lesser General Public License for more details.
  94871. You should have received a copy of the GNU Lesser General Public
  94872. - License along with the GNU C Library; if not, write to the Free
  94873. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94874. - 02111-1307 USA. */
  94875. + License along with the GNU C Library; if not, see
  94876. + <http://www.gnu.org/licenses/>. */
  94877. #ifndef _LOWLEVELLOCK_H
  94878. #define _LOWLEVELLOCK_H 1
  94879. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S
  94880. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  94881. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/pt-vfork.S 2014-06-02 17:40:35.110718051 +0200
  94882. @@ -13,9 +13,8 @@
  94883. Lesser General Public License for more details.
  94884. You should have received a copy of the GNU Lesser General Public
  94885. - License along with the GNU C Library; if not, write to the Free
  94886. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94887. - 02111-1307 USA. */
  94888. + License along with the GNU C Library; if not, see
  94889. + <http://www.gnu.org/licenses/>. */
  94890. #include <sysdep.h>
  94891. #define _ERRNO_H 1
  94892. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h
  94893. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  94894. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/sysdep-cancel.h 2014-06-02 17:40:35.110718051 +0200
  94895. @@ -14,9 +14,8 @@
  94896. Lesser General Public License for more details.
  94897. You should have received a copy of the GNU Lesser General Public
  94898. - License along with the GNU C Library; if not, write to the Free
  94899. - Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
  94900. - 02110-1301 USA. */
  94901. + License along with the GNU C Library; if not, see
  94902. + <http://www.gnu.org/licenses/>. */
  94903. #include <sysdep.h>
  94904. #include <tls.h>
  94905. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S
  94906. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S 2012-05-15 09:20:09.000000000 +0200
  94907. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S 2014-06-02 17:40:35.110718051 +0200
  94908. @@ -13,9 +13,8 @@
  94909. Lesser General Public License for more details.
  94910. You should have received a copy of the GNU Lesser General Public
  94911. - License along with the GNU C Library; if not, write to the Free
  94912. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94913. - 02111-1307 USA. */
  94914. + License along with the GNU C Library; if not, see
  94915. + <http://www.gnu.org/licenses/>. */
  94916. #include <sysdep.h>
  94917. #define _ERRNO_H 1
  94918. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S
  94919. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  94920. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/pt-vfork.S 2014-06-02 17:40:35.110718051 +0200
  94921. @@ -13,9 +13,8 @@
  94922. Lesser General Public License for more details.
  94923. You should have received a copy of the GNU Lesser General Public
  94924. - License along with the GNU C Library; if not, write to the Free
  94925. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94926. - 02111-1307 USA. */
  94927. + License along with the GNU C Library; if not, see
  94928. + <http://www.gnu.org/licenses/>. */
  94929. #include <sysdep.h>
  94930. #define _ERRNO_H 1
  94931. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h
  94932. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  94933. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/sysdep-cancel.h 2014-06-02 17:40:35.110718051 +0200
  94934. @@ -14,9 +14,8 @@
  94935. Lesser General Public License for more details.
  94936. You should have received a copy of the GNU Lesser General Public
  94937. - License along with the GNU C Library; if not, write to the Free
  94938. - Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA
  94939. - 02110-1301 USA. */
  94940. + License along with the GNU C Library; if not, see
  94941. + <http://www.gnu.org/licenses/>. */
  94942. #include <sysdep.h>
  94943. #include <tls.h>
  94944. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S
  94945. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  94946. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S 2014-06-02 17:40:35.126718139 +0200
  94947. @@ -13,9 +13,8 @@
  94948. Lesser General Public License for more details.
  94949. You should have received a copy of the GNU Lesser General Public
  94950. - License along with the GNU C Library; if not, write to the Free
  94951. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94952. - 02111-1307 USA. */
  94953. + License along with the GNU C Library; if not, see
  94954. + <http://www.gnu.org/licenses/>. */
  94955. #include <sysdep.h>
  94956. #define _ERRNO_H 1
  94957. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c
  94958. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
  94959. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_once.c 2014-06-02 17:40:35.126718139 +0200
  94960. @@ -13,9 +13,8 @@
  94961. Lesser General Public License for more details.
  94962. You should have received a copy of the GNU Lesser General Public
  94963. - License along with the GNU C Library; if not, write to the Free
  94964. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94965. - 02111-1307 USA. */
  94966. + License along with the GNU C Library; if not, see
  94967. + <http://www.gnu.org/licenses/>. */
  94968. #include "pthreadP.h"
  94969. #include <lowlevellock.h>
  94970. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c
  94971. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c 2012-05-15 09:20:09.000000000 +0200
  94972. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pthread_spin_unlock.c 2014-06-02 17:40:35.126718139 +0200
  94973. @@ -13,9 +13,8 @@
  94974. Lesser General Public License for more details.
  94975. You should have received a copy of the GNU Lesser General Public
  94976. - License along with the GNU C Library; if not, write to the Free
  94977. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94978. - 02111-1307 USA. */
  94979. + License along with the GNU C Library; if not, see
  94980. + <http://www.gnu.org/licenses/>. */
  94981. #include "pthreadP.h"
  94982. #include <lowlevellock.h>
  94983. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c
  94984. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c 2012-05-15 09:20:09.000000000 +0200
  94985. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/pt-longjmp.c 2014-06-02 17:40:35.126718139 +0200
  94986. @@ -13,9 +13,8 @@
  94987. Lesser General Public License for more details.
  94988. You should have received a copy of the GNU Lesser General Public
  94989. - License along with the GNU C Library; if not, write to the Free
  94990. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  94991. - 02111-1307 USA. */
  94992. + License along with the GNU C Library; if not, see
  94993. + <http://www.gnu.org/licenses/>. */
  94994. #include <setjmp.h>
  94995. #include <stdlib.h>
  94996. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/sem_post.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/sem_post.c
  94997. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/sem_post.c 2012-05-15 09:20:09.000000000 +0200
  94998. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/powerpc/sem_post.c 2014-06-02 17:40:35.126718139 +0200
  94999. @@ -14,9 +14,8 @@
  95000. Lesser General Public License for more details.
  95001. You should have received a copy of the GNU Lesser General Public
  95002. - License along with the GNU C Library; if not, write to the Free
  95003. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95004. - 02111-1307 USA. */
  95005. + License along with the GNU C Library; if not, see
  95006. + <http://www.gnu.org/licenses/>. */
  95007. #include <errno.h>
  95008. #include <sysdep.h>
  95009. @@ -25,7 +24,7 @@
  95010. #include <semaphore.h>
  95011. int
  95012. -__new_sem_post (sem_t *sem)
  95013. +sem_post (sem_t *sem)
  95014. {
  95015. struct new_sem *isem = (struct new_sem *) sem;
  95016. @@ -44,4 +43,3 @@
  95017. }
  95018. return 0;
  95019. }
  95020. -weak_alias(__new_sem_post, sem_post)
  95021. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c
  95022. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c 2012-05-15 09:20:09.000000000 +0200
  95023. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pt-fork.c 2014-06-02 17:40:35.126718139 +0200
  95024. @@ -13,17 +13,16 @@
  95025. Lesser General Public License for more details.
  95026. You should have received a copy of the GNU Lesser General Public
  95027. - License along with the GNU C Library; if not, write to the Free
  95028. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95029. - 02111-1307 USA. */
  95030. + License along with the GNU C Library; if not, see
  95031. + <http://www.gnu.org/licenses/>. */
  95032. #include <unistd.h>
  95033. -extern int __libc_fork (void);
  95034. -
  95035. -pid_t
  95036. +#if 0
  95037. +static pid_t
  95038. __fork (void)
  95039. {
  95040. return __libc_fork ();
  95041. }
  95042. strong_alias (__fork, fork)
  95043. +#endif
  95044. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c
  95045. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c 2012-05-15 09:20:09.000000000 +0200
  95046. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_getaffinity.c 2014-06-02 17:40:35.130718162 +0200
  95047. @@ -13,9 +13,8 @@
  95048. Lesser General Public License for more details.
  95049. You should have received a copy of the GNU Lesser General Public
  95050. - License along with the GNU C Library; if not, write to the Free
  95051. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95052. - 02111-1307 USA. */
  95053. + License along with the GNU C Library; if not, see
  95054. + <http://www.gnu.org/licenses/>. */
  95055. #include <assert.h>
  95056. #include <errno.h>
  95057. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c
  95058. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c 2012-05-15 09:20:09.000000000 +0200
  95059. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_attr_setaffinity.c 2014-06-02 17:40:35.130718162 +0200
  95060. @@ -13,9 +13,8 @@
  95061. Lesser General Public License for more details.
  95062. You should have received a copy of the GNU Lesser General Public
  95063. - License along with the GNU C Library; if not, write to the Free
  95064. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95065. - 02111-1307 USA. */
  95066. + License along with the GNU C Library; if not, see
  95067. + <http://www.gnu.org/licenses/>. */
  95068. #include <assert.h>
  95069. #include <errno.h>
  95070. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getaffinity.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getaffinity.c
  95071. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getaffinity.c 2012-05-15 09:20:09.000000000 +0200
  95072. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getaffinity.c 2014-06-02 17:40:35.130718162 +0200
  95073. @@ -13,9 +13,8 @@
  95074. Lesser General Public License for more details.
  95075. You should have received a copy of the GNU Lesser General Public
  95076. - License along with the GNU C Library; if not, write to the Free
  95077. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95078. - 02111-1307 USA. */
  95079. + License along with the GNU C Library; if not, see
  95080. + <http://www.gnu.org/licenses/>. */
  95081. #include <errno.h>
  95082. #include <limits.h>
  95083. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c
  95084. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c 2012-05-15 09:20:09.000000000 +0200
  95085. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c 2014-06-02 17:40:35.130718162 +0200
  95086. @@ -12,9 +12,8 @@
  95087. Lesser General Public License for more details.
  95088. You should have received a copy of the GNU Lesser General Public
  95089. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  95090. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  95091. - Boston, MA 02111-1307, USA. */
  95092. + License along with the GNU C Library; see the file COPYING.LIB. If
  95093. + not, see <http://www.gnu.org/licenses/>. */
  95094. #include <errno.h>
  95095. #include <pthreadP.h>
  95096. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_kill.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_kill.c
  95097. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_kill.c 2012-05-15 09:20:09.000000000 +0200
  95098. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_kill.c 2014-06-02 17:40:35.130718162 +0200
  95099. @@ -13,9 +13,8 @@
  95100. Lesser General Public License for more details.
  95101. You should have received a copy of the GNU Lesser General Public
  95102. - License along with the GNU C Library; if not, write to the Free
  95103. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95104. - 02111-1307 USA. */
  95105. + License along with the GNU C Library; if not, see
  95106. + <http://www.gnu.org/licenses/>. */
  95107. #include <errno.h>
  95108. #include <signal.h>
  95109. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_setaffinity.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_setaffinity.c
  95110. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_setaffinity.c 2012-05-15 09:20:09.000000000 +0200
  95111. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_setaffinity.c 2014-06-02 17:40:35.130718162 +0200
  95112. @@ -13,9 +13,8 @@
  95113. Lesser General Public License for more details.
  95114. You should have received a copy of the GNU Lesser General Public
  95115. - License along with the GNU C Library; if not, write to the Free
  95116. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95117. - 02111-1307 USA. */
  95118. + License along with the GNU C Library; if not, see
  95119. + <http://www.gnu.org/licenses/>. */
  95120. #include <alloca.h>
  95121. #include <errno.h>
  95122. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c
  95123. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c 2012-05-15 09:20:09.000000000 +0200
  95124. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c 2014-06-02 17:40:35.130718162 +0200
  95125. @@ -13,9 +13,8 @@
  95126. Lesser General Public License for more details.
  95127. You should have received a copy of the GNU Lesser General Public
  95128. - License along with the GNU C Library; if not, write to the Free
  95129. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95130. - 02111-1307 USA. */
  95131. + License along with the GNU C Library; if not, see
  95132. + <http://www.gnu.org/licenses/>. */
  95133. #include <errno.h>
  95134. #include <signal.h>
  95135. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_yield.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_yield.c
  95136. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_yield.c 2012-05-15 09:20:09.000000000 +0200
  95137. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pthread_yield.c 2014-06-02 17:40:35.130718162 +0200
  95138. @@ -13,9 +13,8 @@
  95139. Lesser General Public License for more details.
  95140. You should have received a copy of the GNU Lesser General Public
  95141. - License along with the GNU C Library; if not, write to the Free
  95142. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95143. - 02111-1307 USA. */
  95144. + License along with the GNU C Library; if not, see
  95145. + <http://www.gnu.org/licenses/>. */
  95146. #include <pthread.h>
  95147. #include <sched.h>
  95148. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pt-raise.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pt-raise.c
  95149. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/pt-raise.c 2012-05-15 09:20:09.000000000 +0200
  95150. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/pt-raise.c 2014-06-02 17:40:35.126718139 +0200
  95151. @@ -13,9 +13,8 @@
  95152. Lesser General Public License for more details.
  95153. You should have received a copy of the GNU Lesser General Public
  95154. - License along with the GNU C Library; if not, write to the Free
  95155. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95156. - 02111-1307 USA. */
  95157. + License along with the GNU C Library; if not, see
  95158. + <http://www.gnu.org/licenses/>. */
  95159. #include <errno.h>
  95160. #include <signal.h>
  95161. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/raise.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/raise.c
  95162. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/raise.c 2012-05-15 09:20:09.000000000 +0200
  95163. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/raise.c 2014-06-02 17:40:35.130718162 +0200
  95164. @@ -13,9 +13,8 @@
  95165. Lesser General Public License for more details.
  95166. You should have received a copy of the GNU Lesser General Public
  95167. - License along with the GNU C Library; if not, write to the Free
  95168. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95169. - 02111-1307 USA. */
  95170. + License along with the GNU C Library; if not, see
  95171. + <http://www.gnu.org/licenses/>. */
  95172. #include <errno.h>
  95173. #include <limits.h>
  95174. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/register-atfork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/register-atfork.c
  95175. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/register-atfork.c 2012-05-15 09:20:09.000000000 +0200
  95176. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/register-atfork.c 2014-06-02 17:40:35.130718162 +0200
  95177. @@ -13,9 +13,8 @@
  95178. Lesser General Public License for more details.
  95179. You should have received a copy of the GNU Lesser General Public
  95180. - License along with the GNU C Library; if not, write to the Free
  95181. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95182. - 02111-1307 USA. */
  95183. + License along with the GNU C Library; if not, see
  95184. + <http://www.gnu.org/licenses/>. */
  95185. #include <errno.h>
  95186. #include <stdlib.h>
  95187. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_post.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_post.c
  95188. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_post.c 2012-05-15 09:20:09.000000000 +0200
  95189. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_post.c 2014-06-02 17:40:35.130718162 +0200
  95190. @@ -14,9 +14,8 @@
  95191. Lesser General Public License for more details.
  95192. You should have received a copy of the GNU Lesser General Public
  95193. - License along with the GNU C Library; if not, write to the Free
  95194. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95195. - 02111-1307 USA. */
  95196. + License along with the GNU C Library; if not, see
  95197. + <http://www.gnu.org/licenses/>. */
  95198. #include <errno.h>
  95199. #include <sysdep.h>
  95200. @@ -26,7 +25,7 @@
  95201. #include <tls.h>
  95202. int
  95203. -__new_sem_post (sem_t *sem)
  95204. +sem_post (sem_t *sem)
  95205. {
  95206. struct new_sem *isem = (struct new_sem *) sem;
  95207. @@ -55,4 +54,3 @@
  95208. }
  95209. return 0;
  95210. }
  95211. -weak_alias(__new_sem_post, sem_post)
  95212. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_timedwait.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_timedwait.c
  95213. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_timedwait.c 2012-05-15 09:20:09.000000000 +0200
  95214. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_timedwait.c 2014-06-02 17:40:35.130718162 +0200
  95215. @@ -14,9 +14,8 @@
  95216. Lesser General Public License for more details.
  95217. You should have received a copy of the GNU Lesser General Public
  95218. - License along with the GNU C Library; if not, write to the Free
  95219. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95220. - 02111-1307 USA. */
  95221. + License along with the GNU C Library; if not, see
  95222. + <http://www.gnu.org/licenses/>. */
  95223. #include <errno.h>
  95224. #include <sysdep.h>
  95225. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_trywait.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_trywait.c
  95226. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_trywait.c 2012-05-15 09:20:09.000000000 +0200
  95227. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_trywait.c 2014-06-02 17:40:35.130718162 +0200
  95228. @@ -14,9 +14,8 @@
  95229. Lesser General Public License for more details.
  95230. You should have received a copy of the GNU Lesser General Public
  95231. - License along with the GNU C Library; if not, write to the Free
  95232. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95233. - 02111-1307 USA. */
  95234. + License along with the GNU C Library; if not, see
  95235. + <http://www.gnu.org/licenses/>. */
  95236. #include <errno.h>
  95237. #include <sysdep.h>
  95238. @@ -26,7 +25,7 @@
  95239. int
  95240. -__new_sem_trywait (sem_t *sem)
  95241. +sem_trywait (sem_t *sem)
  95242. {
  95243. int *futex = (int *) sem;
  95244. int val;
  95245. @@ -41,4 +40,3 @@
  95246. __set_errno (EAGAIN);
  95247. return -1;
  95248. }
  95249. -weak_alias(__new_sem_trywait, sem_trywait)
  95250. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_wait.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_wait.c
  95251. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sem_wait.c 2012-05-15 09:20:09.000000000 +0200
  95252. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sem_wait.c 2014-06-02 17:40:35.130718162 +0200
  95253. @@ -14,9 +14,8 @@
  95254. Lesser General Public License for more details.
  95255. You should have received a copy of the GNU Lesser General Public
  95256. - License along with the GNU C Library; if not, write to the Free
  95257. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95258. - 02111-1307 USA. */
  95259. + License along with the GNU C Library; if not, see
  95260. + <http://www.gnu.org/licenses/>. */
  95261. #include <errno.h>
  95262. #include <sysdep.h>
  95263. @@ -38,7 +37,7 @@
  95264. int
  95265. -__new_sem_wait (sem_t *sem)
  95266. +sem_wait (sem_t *sem)
  95267. {
  95268. struct new_sem *isem = (struct new_sem *) sem;
  95269. int err;
  95270. @@ -81,4 +80,3 @@
  95271. return err;
  95272. }
  95273. -weak_alias(__new_sem_wait, sem_wait)
  95274. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h
  95275. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  95276. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/pthreadtypes.h 2014-06-02 17:40:35.130718162 +0200
  95277. @@ -14,9 +14,8 @@
  95278. Lesser General Public License for more details.
  95279. You should have received a copy of the GNU Lesser General Public
  95280. - License along with the GNU C Library; if not, write to the Free
  95281. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95282. - 02111-1307 USA. */
  95283. + License along with the GNU C Library; if not, see
  95284. + <http://www.gnu.org/licenses/>. */
  95285. #ifndef _BITS_PTHREADTYPES_H
  95286. #define _BITS_PTHREADTYPES_H 1
  95287. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/semaphore.h
  95288. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  95289. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/bits/semaphore.h 2014-06-02 17:40:35.130718162 +0200
  95290. @@ -13,9 +13,8 @@
  95291. Lesser General Public License for more details.
  95292. You should have received a copy of the GNU Lesser General Public
  95293. - License along with the GNU C Library; if not, write to the Free
  95294. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95295. - 02111-1307 USA. */
  95296. + License along with the GNU C Library; if not, see
  95297. + <http://www.gnu.org/licenses/>. */
  95298. #ifndef _SEMAPHORE_H
  95299. # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  95300. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/createthread.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/createthread.c
  95301. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/createthread.c 2012-05-15 09:20:09.000000000 +0200
  95302. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/createthread.c 2014-06-02 17:40:35.130718162 +0200
  95303. @@ -12,9 +12,8 @@
  95304. Lesser General Public License for more details.
  95305. You should have received a copy of the GNU Lesser General Public
  95306. - License along with the GNU C Library; if not, write to the Free
  95307. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95308. - 02111-1307 USA. */
  95309. + License along with the GNU C Library; if not, see
  95310. + <http://www.gnu.org/licenses/>. */
  95311. /* Value passed to 'clone' for initialization of the thread register. */
  95312. #define TLS_VALUE (pd + 1)
  95313. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/fork.c
  95314. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/fork.c 2012-05-15 09:20:09.000000000 +0200
  95315. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/fork.c 2014-06-02 17:40:35.134718184 +0200
  95316. @@ -12,9 +12,8 @@
  95317. Lesser General Public License for more details.
  95318. You should have received a copy of the GNU Lesser General Public
  95319. - License along with the GNU C Library; if not, write to the Free
  95320. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95321. - 02111-1307 USA. */
  95322. + License along with the GNU C Library; if not, see
  95323. + <http://www.gnu.org/licenses/>. */
  95324. #include <sched.h>
  95325. #include <signal.h>
  95326. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S
  95327. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
  95328. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/libc-lowlevellock.S 2014-06-02 17:40:35.134718184 +0200
  95329. @@ -12,8 +12,7 @@
  95330. Lesser General Public License for more details.
  95331. You should have received a copy of the GNU Lesser General Public
  95332. - License along with the GNU C Library; if not, write to the Free
  95333. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95334. - 02111-1307 USA. */
  95335. + License along with the GNU C Library; if not, see
  95336. + <http://www.gnu.org/licenses/>. */
  95337. #include "lowlevellock.S"
  95338. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h
  95339. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h 2012-05-15 09:20:09.000000000 +0200
  95340. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevel-atomic.h 2014-06-02 17:40:35.134718184 +0200
  95341. @@ -12,9 +12,8 @@
  95342. Lesser General Public License for more details.
  95343. You should have received a copy of the GNU Lesser General Public
  95344. - License along with the GNU C Library; if not, write to the Free
  95345. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95346. - 02111-1307 USA. */
  95347. + License along with the GNU C Library; if not, see
  95348. + <http://www.gnu.org/licenses/>. */
  95349. #ifdef __ASSEMBLER__
  95350. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h
  95351. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  95352. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.h 2014-06-02 17:40:35.134718184 +0200
  95353. @@ -13,9 +13,8 @@
  95354. Lesser General Public License for more details.
  95355. You should have received a copy of the GNU Lesser General Public
  95356. - License along with the GNU C Library; if not, write to the Free
  95357. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95358. - 02111-1307 USA. */
  95359. + License along with the GNU C Library; if not, see
  95360. + <http://www.gnu.org/licenses/>. */
  95361. #ifndef _LOWLEVELLOCK_H
  95362. #define _LOWLEVELLOCK_H 1
  95363. @@ -396,9 +395,9 @@
  95364. #define lll_wait_tid(tid) \
  95365. do { \
  95366. - __typeof (tid) *__tid = &(tid); \
  95367. - while (*__tid != 0) \
  95368. - lll_futex_wait (__tid, *__tid, LLL_SHARED); \
  95369. + __typeof (tid) __tid; \
  95370. + while ((__tid = (tid)) != 0) \
  95371. + lll_futex_wait (&(tid), __tid, LLL_SHARED); \
  95372. } while (0)
  95373. extern int __lll_timedwait_tid (int *tid, const struct timespec *abstime)
  95374. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S
  95375. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
  95376. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevellock.S 2014-06-02 17:40:35.134718184 +0200
  95377. @@ -13,9 +13,8 @@
  95378. Lesser General Public License for more details.
  95379. You should have received a copy of the GNU Lesser General Public
  95380. - License along with the GNU C Library; if not, write to the Free
  95381. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95382. - 02111-1307 USA. */
  95383. + License along with the GNU C Library; if not, see
  95384. + <http://www.gnu.org/licenses/>. */
  95385. #include <sysdep.h>
  95386. #include <pthread-errnos.h>
  95387. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S
  95388. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S 2012-05-15 09:20:09.000000000 +0200
  95389. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/lowlevelrobustlock.S 2014-06-02 17:40:35.134718184 +0200
  95390. @@ -13,9 +13,8 @@
  95391. Lesser General Public License for more details.
  95392. You should have received a copy of the GNU Lesser General Public
  95393. - License along with the GNU C Library; if not, write to the Free
  95394. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95395. - 02111-1307 USA. */
  95396. + License along with the GNU C Library; if not, see
  95397. + <http://www.gnu.org/licenses/>. */
  95398. #include <sysdep.h>
  95399. #include <pthread-errnos.h>
  95400. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S
  95401. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S 2012-05-15 09:20:09.000000000 +0200
  95402. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_barrier_wait.S 2014-06-02 17:40:35.134718184 +0200
  95403. @@ -12,9 +12,8 @@
  95404. Lesser General Public License for more details.
  95405. You should have received a copy of the GNU Lesser General Public
  95406. - License along with the GNU C Library; if not, write to the Free
  95407. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95408. - 02111-1307 USA. */
  95409. + License along with the GNU C Library; if not, see
  95410. + <http://www.gnu.org/licenses/>. */
  95411. #include <sysdep.h>
  95412. #include <lowlevellock.h>
  95413. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S
  95414. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S 2012-05-15 09:20:09.000000000 +0200
  95415. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_broadcast.S 2014-06-02 17:40:35.134718184 +0200
  95416. @@ -12,9 +12,8 @@
  95417. Lesser General Public License for more details.
  95418. You should have received a copy of the GNU Lesser General Public
  95419. - License along with the GNU C Library; if not, write to the Free
  95420. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95421. - 02111-1307 USA. */
  95422. + License along with the GNU C Library; if not, see
  95423. + <http://www.gnu.org/licenses/>. */
  95424. #include <sysdep.h>
  95425. #include <lowlevellock.h>
  95426. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S
  95427. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S 2012-05-15 09:20:09.000000000 +0200
  95428. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_signal.S 2014-06-02 17:40:35.134718184 +0200
  95429. @@ -12,9 +12,8 @@
  95430. Lesser General Public License for more details.
  95431. You should have received a copy of the GNU Lesser General Public
  95432. - License along with the GNU C Library; if not, write to the Free
  95433. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95434. - 02111-1307 USA. */
  95435. + License along with the GNU C Library; if not, see
  95436. + <http://www.gnu.org/licenses/>. */
  95437. #include <sysdep.h>
  95438. #include <lowlevellock.h>
  95439. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S
  95440. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S 2012-05-15 09:20:09.000000000 +0200
  95441. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_timedwait.S 2014-06-02 17:40:35.134718184 +0200
  95442. @@ -12,9 +12,8 @@
  95443. Lesser General Public License for more details.
  95444. You should have received a copy of the GNU Lesser General Public
  95445. - License along with the GNU C Library; if not, write to the Free
  95446. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95447. - 02111-1307 USA. */
  95448. + License along with the GNU C Library; if not, see
  95449. + <http://www.gnu.org/licenses/>. */
  95450. #include <sysdep.h>
  95451. #include <lowlevellock.h>
  95452. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S
  95453. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S 2012-05-15 09:20:09.000000000 +0200
  95454. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_cond_wait.S 2014-06-02 17:40:35.134718184 +0200
  95455. @@ -12,9 +12,8 @@
  95456. Lesser General Public License for more details.
  95457. You should have received a copy of the GNU Lesser General Public
  95458. - License along with the GNU C Library; if not, write to the Free
  95459. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95460. - 02111-1307 USA. */
  95461. + License along with the GNU C Library; if not, see
  95462. + <http://www.gnu.org/licenses/>. */
  95463. #include <sysdep.h>
  95464. #include <lowlevellock.h>
  95465. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S
  95466. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S 2012-05-15 09:20:09.000000000 +0200
  95467. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_once.S 2014-06-02 17:40:35.134718184 +0200
  95468. @@ -12,9 +12,8 @@
  95469. Lesser General Public License for more details.
  95470. You should have received a copy of the GNU Lesser General Public
  95471. - License along with the GNU C Library; if not, write to the Free
  95472. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95473. - 02111-1307 USA. */
  95474. + License along with the GNU C Library; if not, see
  95475. + <http://www.gnu.org/licenses/>. */
  95476. #include <unwindbuf.h>
  95477. #include <sysdep.h>
  95478. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S
  95479. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S 2012-05-15 09:20:09.000000000 +0200
  95480. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_rdlock.S 2014-06-02 17:40:35.134718184 +0200
  95481. @@ -12,9 +12,8 @@
  95482. Lesser General Public License for more details.
  95483. You should have received a copy of the GNU Lesser General Public
  95484. - License along with the GNU C Library; if not, write to the Free
  95485. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95486. - 02111-1307 USA. */
  95487. + License along with the GNU C Library; if not, see
  95488. + <http://www.gnu.org/licenses/>. */
  95489. #include <sysdep.h>
  95490. #include <lowlevellock.h>
  95491. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S
  95492. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S 2012-05-15 09:20:09.000000000 +0200
  95493. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedrdlock.S 2014-06-02 17:40:35.134718184 +0200
  95494. @@ -12,9 +12,8 @@
  95495. Lesser General Public License for more details.
  95496. You should have received a copy of the GNU Lesser General Public
  95497. - License along with the GNU C Library; if not, write to the Free
  95498. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95499. - 02111-1307 USA. */
  95500. + License along with the GNU C Library; if not, see
  95501. + <http://www.gnu.org/licenses/>. */
  95502. #include <sysdep.h>
  95503. #include <lowlevellock.h>
  95504. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S
  95505. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S 2012-05-15 09:20:09.000000000 +0200
  95506. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_timedwrlock.S 2014-06-02 17:40:35.134718184 +0200
  95507. @@ -12,9 +12,8 @@
  95508. Lesser General Public License for more details.
  95509. You should have received a copy of the GNU Lesser General Public
  95510. - License along with the GNU C Library; if not, write to the Free
  95511. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95512. - 02111-1307 USA. */
  95513. + License along with the GNU C Library; if not, see
  95514. + <http://www.gnu.org/licenses/>. */
  95515. #include <sysdep.h>
  95516. #include <lowlevellock.h>
  95517. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S
  95518. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S 2012-05-15 09:20:09.000000000 +0200
  95519. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_unlock.S 2014-06-02 17:40:35.134718184 +0200
  95520. @@ -12,9 +12,8 @@
  95521. Lesser General Public License for more details.
  95522. You should have received a copy of the GNU Lesser General Public
  95523. - License along with the GNU C Library; if not, write to the Free
  95524. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95525. - 02111-1307 USA. */
  95526. + License along with the GNU C Library; if not, see
  95527. + <http://www.gnu.org/licenses/>. */
  95528. #include <sysdep.h>
  95529. #include <lowlevellock.h>
  95530. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S
  95531. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S 2012-05-15 09:20:09.000000000 +0200
  95532. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pthread_rwlock_wrlock.S 2014-06-02 17:40:35.134718184 +0200
  95533. @@ -12,9 +12,8 @@
  95534. Lesser General Public License for more details.
  95535. You should have received a copy of the GNU Lesser General Public
  95536. - License along with the GNU C Library; if not, write to the Free
  95537. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95538. - 02111-1307 USA. */
  95539. + License along with the GNU C Library; if not, see
  95540. + <http://www.gnu.org/licenses/>. */
  95541. #include <sysdep.h>
  95542. #include <lowlevellock.h>
  95543. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c
  95544. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c 2012-05-15 09:20:09.000000000 +0200
  95545. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-initfini.c 2014-06-02 17:40:35.134718184 +0200
  95546. @@ -23,8 +23,7 @@
  95547. You should have received a copy of the GNU Library General Public
  95548. License along with the GNU C Library; see the file COPYING.LIB. If not,
  95549. - write to the Free Software Foundation, 59 Temple Place - Suite 330,
  95550. - Boston, MA 02111-1307, USA. */
  95551. + see <http://www.gnu.org/licenses/>. */
  95552. /* This file is compiled into assembly code which is then munged by a sed
  95553. script into two files: crti.s and crtn.s.
  95554. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S
  95555. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  95556. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/pt-vfork.S 2014-06-02 17:40:35.134718184 +0200
  95557. @@ -12,9 +12,8 @@
  95558. Lesser General Public License for more details.
  95559. You should have received a copy of the GNU Lesser General Public
  95560. - License along with the GNU C Library; if not, write to the Free
  95561. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95562. - 02111-1307 USA. */
  95563. + License along with the GNU C Library; if not, see
  95564. + <http://www.gnu.org/licenses/>. */
  95565. #include <sysdep.h>
  95566. #define _ERRNO_H 1
  95567. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_post.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_post.S
  95568. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_post.S 2012-05-15 09:20:09.000000000 +0200
  95569. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_post.S 2014-06-02 17:40:35.134718184 +0200
  95570. @@ -12,9 +12,8 @@
  95571. Lesser General Public License for more details.
  95572. You should have received a copy of the GNU Lesser General Public
  95573. - License along with the GNU C Library; if not, write to the Free
  95574. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95575. - 02111-1307 USA. */
  95576. + License along with the GNU C Library; if not, see
  95577. + <http://www.gnu.org/licenses/>. */
  95578. #include <sysdep.h>
  95579. #include <pthread-errnos.h>
  95580. @@ -25,10 +24,10 @@
  95581. .text
  95582. - .globl __new_sem_post
  95583. - .type __new_sem_post,@function
  95584. + .globl sem_post
  95585. + .type sem_post,@function
  95586. .align 5
  95587. -__new_sem_post:
  95588. +sem_post:
  95589. mov.l @(VALUE,r4), r2
  95590. 0:
  95591. mov.l .Lmax, r1
  95592. @@ -106,5 +105,4 @@
  95593. .Lerrloc3:
  95594. .long __errno_location@PLT-(.Lerrloc3b-.)
  95595. #endif
  95596. - .size __new_sem_post,.-__new_sem_post
  95597. - weak_alias(__new_sem_post, sem_post)
  95598. + .size sem_post,.-sem_post
  95599. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S
  95600. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S 2012-05-15 09:20:09.000000000 +0200
  95601. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_timedwait.S 2014-06-02 17:40:35.134718184 +0200
  95602. @@ -12,9 +12,8 @@
  95603. Lesser General Public License for more details.
  95604. You should have received a copy of the GNU Lesser General Public
  95605. - License along with the GNU C Library; if not, write to the Free
  95606. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95607. - 02111-1307 USA. */
  95608. + License along with the GNU C Library; if not, see
  95609. + <http://www.gnu.org/licenses/>. */
  95610. #include <sysdep.h>
  95611. #include <pthread-errnos.h>
  95612. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S
  95613. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S 2012-05-15 09:20:09.000000000 +0200
  95614. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_trywait.S 2014-06-02 17:40:35.134718184 +0200
  95615. @@ -12,9 +12,8 @@
  95616. Lesser General Public License for more details.
  95617. You should have received a copy of the GNU Lesser General Public
  95618. - License along with the GNU C Library; if not, write to the Free
  95619. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95620. - 02111-1307 USA. */
  95621. + License along with the GNU C Library; if not, see
  95622. + <http://www.gnu.org/licenses/>. */
  95623. #include <sysdep.h>
  95624. #include <pthread-errnos.h>
  95625. @@ -24,10 +23,10 @@
  95626. .text
  95627. - .globl __new_sem_trywait
  95628. - .type __new_sem_trywait,@function
  95629. + .globl sem_trywait
  95630. + .type sem_trywait,@function
  95631. .align 5
  95632. -__new_sem_trywait:
  95633. +sem_trywait:
  95634. mov.l r12, @-r15
  95635. mov.l r8, @-r15
  95636. sts.l pr, @-r15
  95637. @@ -86,5 +85,4 @@
  95638. .Lerrloc1:
  95639. .long __errno_location@PLT-(.Lerrloc1b-.)
  95640. #endif
  95641. - .size __new_sem_trywait,.-__new_sem_trywait
  95642. - weak_alias(__new_sem_trywait, sem_trywait)
  95643. + .size sem_trywait,.-sem_trywait
  95644. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S
  95645. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S 2012-05-15 09:20:09.000000000 +0200
  95646. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sem_wait.S 2014-06-02 17:40:35.134718184 +0200
  95647. @@ -12,9 +12,8 @@
  95648. Lesser General Public License for more details.
  95649. You should have received a copy of the GNU Lesser General Public
  95650. - License along with the GNU C Library; if not, write to the Free
  95651. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95652. - 02111-1307 USA. */
  95653. + License along with the GNU C Library; if not, see
  95654. + <http://www.gnu.org/licenses/>. */
  95655. #include <sysdep.h>
  95656. #include <pthread-errnos.h>
  95657. @@ -30,10 +29,10 @@
  95658. .text
  95659. - .globl __new_sem_wait
  95660. - .type __new_sem_wait,@function
  95661. + .globl sem_wait
  95662. + .type sem_wait,@function
  95663. .align 5
  95664. -__new_sem_wait:
  95665. +sem_wait:
  95666. .LSTARTCODE:
  95667. mov.l r8, @-r15
  95668. .Lpush_r8:
  95669. @@ -161,8 +160,7 @@
  95670. .long __pthread_enable_asynccancel-.Lenable0b
  95671. .Ldisable0:
  95672. .long __pthread_disable_asynccancel-.Ldisable0b
  95673. - .size __new_sem_wait,.-__new_sem_wait
  95674. - weak_alias(__new_sem_wait, sem_wait)
  95675. + .size sem_wait,.-sem_wait
  95676. .type sem_wait_cleanup,@function
  95677. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/smp.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/smp.h
  95678. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/smp.h 2012-05-15 09:20:09.000000000 +0200
  95679. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/smp.h 2014-06-02 17:40:35.134718184 +0200
  95680. @@ -14,8 +14,7 @@
  95681. You should have received a copy of the GNU Library General Public
  95682. License along with the GNU C Library; see the file COPYING.LIB. If not,
  95683. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  95684. - Boston, MA 02111-1307, USA. */
  95685. + see <http://www.gnu.org/licenses/>. */
  95686. static inline int
  95687. is_smp_system (void)
  95688. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h
  95689. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  95690. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/sysdep-cancel.h 2014-06-02 17:40:35.134718184 +0200
  95691. @@ -12,9 +12,8 @@
  95692. Lesser General Public License for more details.
  95693. You should have received a copy of the GNU Lesser General Public
  95694. - License along with the GNU C Library; if not, write to the Free
  95695. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95696. - 02111-1307 USA. */
  95697. + License along with the GNU C Library; if not, see
  95698. + <http://www.gnu.org/licenses/>. */
  95699. #include <tls.h>
  95700. #include <sysdep.h>
  95701. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/vfork.S
  95702. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sh/vfork.S 2012-05-15 09:20:09.000000000 +0200
  95703. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sh/vfork.S 2014-06-02 17:40:35.134718184 +0200
  95704. @@ -12,9 +12,8 @@
  95705. Lesser General Public License for more details.
  95706. You should have received a copy of the GNU Lesser General Public
  95707. - License along with the GNU C Library; if not, write to the Free
  95708. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95709. - 02111-1307 USA. */
  95710. + License along with the GNU C Library; if not, see
  95711. + <http://www.gnu.org/licenses/>. */
  95712. #include <sysdep.h>
  95713. #define _ERRNO_H 1
  95714. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sigtimedwait.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sigtimedwait.c
  95715. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sigtimedwait.c 2012-05-15 09:20:09.000000000 +0200
  95716. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sigtimedwait.c 2014-06-02 17:40:35.134718184 +0200
  95717. @@ -12,9 +12,8 @@
  95718. Lesser General Public License for more details.
  95719. You should have received a copy of the GNU Lesser General Public
  95720. - License along with the GNU C Library; if not, write to the Free
  95721. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95722. - 02111-1307 USA. */
  95723. + License along with the GNU C Library; if not, see
  95724. + <http://www.gnu.org/licenses/>. */
  95725. #include <pthreadP.h>
  95726. #include <errno.h>
  95727. @@ -67,7 +66,7 @@
  95728. /* Return any pending signal or wait for one for the given time. */
  95729. -int attribute_hidden
  95730. +int
  95731. __sigtimedwait (const sigset_t *set, siginfo_t *info,
  95732. const struct timespec *timeout)
  95733. {
  95734. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sigwaitinfo.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sigwaitinfo.c
  95735. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sigwaitinfo.c 2012-05-15 09:20:09.000000000 +0200
  95736. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sigwaitinfo.c 2014-06-02 17:40:35.134718184 +0200
  95737. @@ -12,9 +12,8 @@
  95738. Lesser General Public License for more details.
  95739. You should have received a copy of the GNU Lesser General Public
  95740. - License along with the GNU C Library; if not, write to the Free
  95741. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95742. - 02111-1307 USA. */
  95743. + License along with the GNU C Library; if not, see
  95744. + <http://www.gnu.org/licenses/>. */
  95745. #include <pthreadP.h>
  95746. #include <errno.h>
  95747. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/smp.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/smp.h
  95748. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/smp.h 2012-05-15 09:20:09.000000000 +0200
  95749. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/smp.h 2014-06-02 17:40:35.134718184 +0200
  95750. @@ -14,8 +14,7 @@
  95751. You should have received a copy of the GNU Library General Public
  95752. License along with the GNU C Library; see the file COPYING.LIB. If not,
  95753. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  95754. - Boston, MA 02111-1307, USA. */
  95755. + see <http://www.gnu.org/licenses/>. */
  95756. /* Test whether the machine has more than one processor. This is not the
  95757. best test but good enough. More complicated tests would require `malloc'
  95758. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h
  95759. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h 2012-05-15 09:20:09.000000000 +0200
  95760. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/local_lim.h 2014-06-02 17:40:35.134718184 +0200
  95761. @@ -14,8 +14,7 @@
  95762. You should have received a copy of the GNU Library General Public
  95763. License along with the GNU C Library; see the file COPYING.LIB. If not,
  95764. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  95765. - Boston, MA 02111-1307, USA. */
  95766. + see <http://www.gnu.org/licenses/>. */
  95767. /* The kernel header pollutes the namespace with the NR_OPEN symbol
  95768. and defines LINK_MAX although filesystems have different maxima. A
  95769. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h
  95770. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  95771. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/pthreadtypes.h 2014-06-02 17:40:35.134718184 +0200
  95772. @@ -14,9 +14,8 @@
  95773. Lesser General Public License for more details.
  95774. You should have received a copy of the GNU Lesser General Public
  95775. - License along with the GNU C Library; if not, write to the Free
  95776. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95777. - 02111-1307 USA. */
  95778. + License along with the GNU C Library; if not, see
  95779. + <http://www.gnu.org/licenses/>. */
  95780. #ifndef _BITS_PTHREADTYPES_H
  95781. #define _BITS_PTHREADTYPES_H 1
  95782. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/semaphore.h
  95783. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  95784. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/bits/semaphore.h 2014-06-02 17:40:35.134718184 +0200
  95785. @@ -14,9 +14,8 @@
  95786. Lesser General Public License for more details.
  95787. You should have received a copy of the GNU Lesser General Public
  95788. - License along with the GNU C Library; if not, write to the Free
  95789. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95790. - 02111-1307 USA. */
  95791. + License along with the GNU C Library; if not, see
  95792. + <http://www.gnu.org/licenses/>. */
  95793. #ifndef _SEMAPHORE_H
  95794. # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  95795. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/fork.c
  95796. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/fork.c 2012-05-15 09:20:09.000000000 +0200
  95797. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/fork.c 2014-06-02 17:40:35.134718184 +0200
  95798. @@ -13,9 +13,8 @@
  95799. Lesser General Public License for more details.
  95800. You should have received a copy of the GNU Lesser General Public
  95801. - License along with the GNU C Library; if not, write to the Free
  95802. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95803. - 02111-1307 USA. */
  95804. + License along with the GNU C Library; if not, see
  95805. + <http://www.gnu.org/licenses/>. */
  95806. #include <sched.h>
  95807. #include <signal.h>
  95808. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/libc-lowlevellock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/libc-lowlevellock.c
  95809. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/libc-lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
  95810. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/libc-lowlevellock.c 2014-06-02 17:40:35.134718184 +0200
  95811. @@ -13,9 +13,8 @@
  95812. Lesser General Public License for more details.
  95813. You should have received a copy of the GNU Lesser General Public
  95814. - License along with the GNU C Library; if not, write to the Free
  95815. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95816. - 02111-1307 USA. */
  95817. + License along with the GNU C Library; if not, see
  95818. + <http://www.gnu.org/licenses/>. */
  95819. /* No difference to lowlevellock.c, except we lose a couple of functions. */
  95820. #include "lowlevellock.c"
  95821. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.c
  95822. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.c 2012-05-15 09:20:09.000000000 +0200
  95823. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.c 2014-06-02 17:40:35.134718184 +0200
  95824. @@ -14,9 +14,8 @@
  95825. Lesser General Public License for more details.
  95826. You should have received a copy of the GNU Lesser General Public
  95827. - License along with the GNU C Library; if not, write to the Free
  95828. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95829. - 02111-1307 USA. */
  95830. + License along with the GNU C Library; if not, see
  95831. + <http://www.gnu.org/licenses/>. */
  95832. #include <errno.h>
  95833. #include <sysdep.h>
  95834. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h
  95835. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  95836. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/lowlevellock.h 2014-06-02 17:40:35.134718184 +0200
  95837. @@ -14,9 +14,8 @@
  95838. Lesser General Public License for more details.
  95839. You should have received a copy of the GNU Lesser General Public
  95840. - License along with the GNU C Libr \ary; if not, write to the Free
  95841. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95842. - 02111-1307 USA. */
  95843. + License along with the GNU C Library; see the file COPYING.LIB. If
  95844. + not, see <http://www.gnu.org/licenses/>. */
  95845. #ifndef _LOWLEVELLOCK_H
  95846. #define _LOWLEVELLOCK_H 1
  95847. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c
  95848. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c 2012-05-15 09:20:09.000000000 +0200
  95849. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_destroy.c 2014-06-02 17:40:35.134718184 +0200
  95850. @@ -13,9 +13,8 @@
  95851. Lesser General Public License for more details.
  95852. You should have received a copy of the GNU Lesser General Public
  95853. - License along with the GNU C Library; if not, write to the Free
  95854. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95855. - 02111-1307 USA. */
  95856. + License along with the GNU C Library; if not, see
  95857. + <http://www.gnu.org/licenses/>. */
  95858. #include <errno.h>
  95859. #include "pthreadP.h"
  95860. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c
  95861. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c 2012-05-15 09:20:09.000000000 +0200
  95862. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_barrier_init.c 2014-06-02 17:40:35.134718184 +0200
  95863. @@ -13,9 +13,8 @@
  95864. Lesser General Public License for more details.
  95865. You should have received a copy of the GNU Lesser General Public
  95866. - License along with the GNU C Library; if not, write to the Free
  95867. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95868. - 02111-1307 USA. */
  95869. + License along with the GNU C Library; if not, see
  95870. + <http://www.gnu.org/licenses/>. */
  95871. #include <errno.h>
  95872. #include "pthreadP.h"
  95873. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_once.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_once.c
  95874. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_once.c 2012-05-15 09:20:09.000000000 +0200
  95875. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/pthread_once.c 2014-06-02 17:40:35.138718205 +0200
  95876. @@ -13,9 +13,8 @@
  95877. Lesser General Public License for more details.
  95878. You should have received a copy of the GNU Lesser General Public
  95879. - License along with the GNU C Library; if not, write to the Free
  95880. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95881. - 02111-1307 USA. */
  95882. + License along with the GNU C Library; if not, see
  95883. + <http://www.gnu.org/licenses/>. */
  95884. #include "pthreadP.h"
  95885. #include <lowlevellock.h>
  95886. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c
  95887. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c 2012-05-15 09:20:09.000000000 +0200
  95888. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sem_init.c 2014-06-02 17:40:35.138718205 +0200
  95889. @@ -13,9 +13,8 @@
  95890. Lesser General Public License for more details.
  95891. You should have received a copy of the GNU Lesser General Public
  95892. - License along with the GNU C Library; if not, write to the Free
  95893. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95894. - 02111-1307 USA. */
  95895. + License along with the GNU C Library; if not, see
  95896. + <http://www.gnu.org/licenses/>. */
  95897. #include <errno.h>
  95898. #include <string.h>
  95899. @@ -26,7 +25,7 @@
  95900. int
  95901. -__new_sem_init (sem, pshared, value)
  95902. +sem_init (sem, pshared, value)
  95903. sem_t *sem;
  95904. int pshared;
  95905. unsigned int value;
  95906. @@ -53,5 +52,3 @@
  95907. return 0;
  95908. }
  95909. -weak_alias(__new_sem_init, sem_init)
  95910. -
  95911. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c
  95912. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c 2012-05-15 09:20:09.000000000 +0200
  95913. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pthread_barrier_wait.c 2014-06-02 17:40:35.138718205 +0200
  95914. @@ -13,9 +13,8 @@
  95915. Lesser General Public License for more details.
  95916. You should have received a copy of the GNU Lesser General Public
  95917. - License along with the GNU C Library; if not, write to the Free
  95918. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95919. - 02111-1307 USA. */
  95920. + License along with the GNU C Library; if not, see
  95921. + <http://www.gnu.org/licenses/>. */
  95922. #include <errno.h>
  95923. #include <sysdep.h>
  95924. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S
  95925. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  95926. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/pt-vfork.S 2014-06-02 17:40:35.138718205 +0200
  95927. @@ -13,9 +13,8 @@
  95928. Lesser General Public License for more details.
  95929. You should have received a copy of the GNU Lesser General Public
  95930. - License along with the GNU C Library; if not, write to the Free
  95931. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95932. - 02111-1307 USA. */
  95933. + License along with the GNU C Library; if not, see
  95934. + <http://www.gnu.org/licenses/>. */
  95935. #include <sysdep.h>
  95936. #include <tcb-offsets.h>
  95937. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c
  95938. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c 2012-05-15 09:20:09.000000000 +0200
  95939. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_post.c 2014-06-02 17:40:35.138718205 +0200
  95940. @@ -14,9 +14,8 @@
  95941. Lesser General Public License for more details.
  95942. You should have received a copy of the GNU Lesser General Public
  95943. - License along with the GNU C Library; if not, write to the Free
  95944. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95945. - 02111-1307 USA. */
  95946. + License along with the GNU C Library; if not, see
  95947. + <http://www.gnu.org/licenses/>. */
  95948. #include <errno.h>
  95949. #include <sysdep.h>
  95950. @@ -25,7 +24,7 @@
  95951. #include <semaphore.h>
  95952. int
  95953. -__new_sem_post (sem_t *sem)
  95954. +sem_post (sem_t *sem)
  95955. {
  95956. struct sparc_new_sem *isem = (struct sparc_new_sem *) sem;
  95957. int nr;
  95958. @@ -51,5 +50,3 @@
  95959. }
  95960. return 0;
  95961. }
  95962. -weak_alias(__new_sem_post, sem_post)
  95963. -
  95964. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c
  95965. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c 2012-05-15 09:20:09.000000000 +0200
  95966. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_timedwait.c 2014-06-02 17:40:35.138718205 +0200
  95967. @@ -14,9 +14,8 @@
  95968. Lesser General Public License for more details.
  95969. You should have received a copy of the GNU Lesser General Public
  95970. - License along with the GNU C Library; if not, write to the Free
  95971. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95972. - 02111-1307 USA. */
  95973. + License along with the GNU C Library; if not, see
  95974. + <http://www.gnu.org/licenses/>. */
  95975. #include <errno.h>
  95976. #include <sysdep.h>
  95977. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c
  95978. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c 2012-05-15 09:20:09.000000000 +0200
  95979. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_trywait.c 2014-06-02 17:40:35.138718205 +0200
  95980. @@ -14,9 +14,8 @@
  95981. Lesser General Public License for more details.
  95982. You should have received a copy of the GNU Lesser General Public
  95983. - License along with the GNU C Library; if not, write to the Free
  95984. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  95985. - 02111-1307 USA. */
  95986. + License along with the GNU C Library; if not, see
  95987. + <http://www.gnu.org/licenses/>. */
  95988. #include <errno.h>
  95989. #include <sysdep.h>
  95990. @@ -26,7 +25,7 @@
  95991. int
  95992. -__new_sem_trywait (sem_t *sem)
  95993. +sem_trywait (sem_t *sem)
  95994. {
  95995. struct sparc_old_sem *isem = (struct sparc_old_sem *) sem;
  95996. int val;
  95997. @@ -50,5 +49,3 @@
  95998. __set_errno (EAGAIN);
  95999. return -1;
  96000. }
  96001. -weak_alias(__new_sem_trywait, sem_trywait)
  96002. -
  96003. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c
  96004. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c 2012-05-15 09:20:09.000000000 +0200
  96005. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sem_wait.c 2014-06-02 17:40:35.138718205 +0200
  96006. @@ -14,9 +14,8 @@
  96007. Lesser General Public License for more details.
  96008. You should have received a copy of the GNU Lesser General Public
  96009. - License along with the GNU C Library; if not, write to the Free
  96010. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96011. - 02111-1307 USA. */
  96012. + License along with the GNU C Library; if not, see
  96013. + <http://www.gnu.org/licenses/>. */
  96014. #include <errno.h>
  96015. #include <sysdep.h>
  96016. @@ -45,7 +44,7 @@
  96017. int
  96018. -__new_sem_wait (sem_t *sem)
  96019. +sem_wait (sem_t *sem)
  96020. {
  96021. struct sparc_new_sem *isem = (struct sparc_new_sem *) sem;
  96022. int err;
  96023. @@ -123,5 +122,3 @@
  96024. return err;
  96025. }
  96026. -weak_alias(__new_sem_wait, sem_wait)
  96027. -
  96028. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h
  96029. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  96030. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/sysdep-cancel.h 2014-06-02 17:40:35.138718205 +0200
  96031. @@ -13,9 +13,8 @@
  96032. Lesser General Public License for more details.
  96033. You should have received a copy of the GNU Lesser General Public
  96034. - License along with the GNU C Library; if not, write to the Free
  96035. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96036. - 02111-1307 USA. */
  96037. + License along with the GNU C Library; if not, see
  96038. + <http://www.gnu.org/licenses/>. */
  96039. #include <tls.h>
  96040. #include <sysdep.h>
  96041. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S
  96042. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S 2012-05-15 09:20:09.000000000 +0200
  96043. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc32/vfork.S 2014-06-02 17:40:35.138718205 +0200
  96044. @@ -13,9 +13,8 @@
  96045. Lesser General Public License for more details.
  96046. You should have received a copy of the GNU Lesser General Public
  96047. - License along with the GNU C Library; if not, write to the Free
  96048. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96049. - 02111-1307 USA. */
  96050. + License along with the GNU C Library; if not, see
  96051. + <http://www.gnu.org/licenses/>. */
  96052. #include <sysdep.h>
  96053. #include <tcb-offsets.h>
  96054. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S
  96055. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  96056. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/pt-vfork.S 2014-06-02 17:40:35.138718205 +0200
  96057. @@ -13,9 +13,8 @@
  96058. Lesser General Public License for more details.
  96059. You should have received a copy of the GNU Lesser General Public
  96060. - License along with the GNU C Library; if not, write to the Free
  96061. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96062. - 02111-1307 USA. */
  96063. + License along with the GNU C Library; if not, see
  96064. + <http://www.gnu.org/licenses/>. */
  96065. #include <sysdep.h>
  96066. #include <tcb-offsets.h>
  96067. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h
  96068. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  96069. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/sysdep-cancel.h 2014-06-02 17:40:35.138718205 +0200
  96070. @@ -13,9 +13,8 @@
  96071. Lesser General Public License for more details.
  96072. You should have received a copy of the GNU Lesser General Public
  96073. - License along with the GNU C Library; if not, write to the Free
  96074. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96075. - 02111-1307 USA. */
  96076. + License along with the GNU C Library; if not, see
  96077. + <http://www.gnu.org/licenses/>. */
  96078. #include <sysdep.h>
  96079. #include <tls.h>
  96080. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S
  96081. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  96082. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/sparc/sparc64/vfork.S 2014-06-02 17:40:35.138718205 +0200
  96083. @@ -13,9 +13,8 @@
  96084. Lesser General Public License for more details.
  96085. You should have received a copy of the GNU Lesser General Public
  96086. - License along with the GNU C Library; if not, write to the Free
  96087. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96088. - 02111-1307 USA. */
  96089. + License along with the GNU C Library; if not, see
  96090. + <http://www.gnu.org/licenses/>. */
  96091. #include <sysdep.h>
  96092. #include <tcb-offsets.h>
  96093. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_create.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_create.c
  96094. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_create.c 2012-05-15 09:20:09.000000000 +0200
  96095. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_create.c 2014-06-02 17:40:35.138718205 +0200
  96096. @@ -13,9 +13,8 @@
  96097. Lesser General Public License for more details.
  96098. You should have received a copy of the GNU Lesser General Public
  96099. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  96100. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  96101. - Boston, MA 02111-1307, USA. */
  96102. + License along with the GNU C Library; see the file COPYING.LIB. If
  96103. + not, see <http://www.gnu.org/licenses/>. */
  96104. #include <errno.h>
  96105. #include <pthread.h>
  96106. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_delete.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_delete.c
  96107. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_delete.c 2012-05-15 09:20:09.000000000 +0200
  96108. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_delete.c 2014-06-02 17:40:35.138718205 +0200
  96109. @@ -13,9 +13,8 @@
  96110. Lesser General Public License for more details.
  96111. You should have received a copy of the GNU Lesser General Public
  96112. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  96113. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  96114. - Boston, MA 02111-1307, USA. */
  96115. + License along with the GNU C Library; see the file COPYING.LIB. If
  96116. + not, see <http://www.gnu.org/licenses/>. */
  96117. #include <errno.h>
  96118. #include <stdlib.h>
  96119. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c
  96120. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c 2012-05-15 09:20:09.000000000 +0200
  96121. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_getoverr.c 2014-06-02 17:40:35.138718205 +0200
  96122. @@ -13,9 +13,8 @@
  96123. Lesser General Public License for more details.
  96124. You should have received a copy of the GNU Lesser General Public
  96125. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  96126. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  96127. - Boston, MA 02111-1307, USA. */
  96128. + License along with the GNU C Library; see the file COPYING.LIB. If
  96129. + not, see <http://www.gnu.org/licenses/>. */
  96130. #include <errno.h>
  96131. #include <time.h>
  96132. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_gettime.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_gettime.c
  96133. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_gettime.c 2012-05-15 09:20:09.000000000 +0200
  96134. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_gettime.c 2014-06-02 17:40:35.138718205 +0200
  96135. @@ -13,9 +13,8 @@
  96136. Lesser General Public License for more details.
  96137. You should have received a copy of the GNU Lesser General Public
  96138. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  96139. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  96140. - Boston, MA 02111-1307, USA. */
  96141. + License along with the GNU C Library; see the file COPYING.LIB. If
  96142. + not, see <http://www.gnu.org/licenses/>. */
  96143. #include <errno.h>
  96144. #include <stdlib.h>
  96145. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_routines.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_routines.c
  96146. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_routines.c 2012-05-15 09:20:09.000000000 +0200
  96147. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_routines.c 2014-06-02 17:40:35.138718205 +0200
  96148. @@ -13,9 +13,8 @@
  96149. Lesser General Public License for more details.
  96150. You should have received a copy of the GNU Lesser General Public
  96151. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  96152. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  96153. - Boston, MA 02111-1307, USA. */
  96154. + License along with the GNU C Library; see the file COPYING.LIB. If
  96155. + not, see <http://www.gnu.org/licenses/>. */
  96156. #include <errno.h>
  96157. #include <setjmp.h>
  96158. @@ -49,7 +48,7 @@
  96159. surprising for user code, although valid. We unblock all
  96160. signals. */
  96161. sigset_t ss;
  96162. - sigemptyset (&ss);
  96163. + __sigemptyset (&ss);
  96164. INTERNAL_SYSCALL_DECL (err);
  96165. INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, NULL, _NSIG / 8);
  96166. @@ -69,13 +68,13 @@
  96167. /* Helper function to support starting threads for SIGEV_THREAD. */
  96168. -static void *
  96169. +static attribute_noreturn void *
  96170. timer_helper_thread (void *arg)
  96171. {
  96172. /* Wait for the SIGTIMER signal, allowing the setXid signal, and
  96173. none else. */
  96174. sigset_t ss;
  96175. - sigemptyset (&ss);
  96176. + __sigemptyset (&ss);
  96177. __sigaddset (&ss, SIGTIMER);
  96178. /* Endless loop of waiting for signals. The loop is only ended when
  96179. @@ -175,7 +174,7 @@
  96180. sigset_t ss;
  96181. sigset_t oss;
  96182. sigfillset (&ss);
  96183. - /*__sigaddset (&ss, SIGCANCEL); - already done by sigfillset */
  96184. + __sigaddset (&ss, SIGCANCEL);
  96185. INTERNAL_SYSCALL_DECL (err);
  96186. INTERNAL_SYSCALL (rt_sigprocmask, err, 4, SIG_SETMASK, &ss, &oss, _NSIG / 8);
  96187. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_settime.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_settime.c
  96188. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/timer_settime.c 2012-05-15 09:20:09.000000000 +0200
  96189. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/timer_settime.c 2014-06-02 17:40:35.138718205 +0200
  96190. @@ -13,9 +13,8 @@
  96191. Lesser General Public License for more details.
  96192. You should have received a copy of the GNU Lesser General Public
  96193. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  96194. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  96195. - Boston, MA 02111-1307, USA. */
  96196. + License along with the GNU C Library; see the file COPYING.LIB. If
  96197. + not, see <http://www.gnu.org/licenses/>. */
  96198. #include <errno.h>
  96199. #include <stdlib.h>
  96200. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/unregister-atfork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/unregister-atfork.c
  96201. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/unregister-atfork.c 2012-05-15 09:20:09.000000000 +0200
  96202. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/unregister-atfork.c 2014-06-02 17:40:35.138718205 +0200
  96203. @@ -13,9 +13,8 @@
  96204. Lesser General Public License for more details.
  96205. You should have received a copy of the GNU Lesser General Public
  96206. - License along with the GNU C Library; if not, write to the Free
  96207. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96208. - 02111-1307 USA. */
  96209. + License along with the GNU C Library; if not, see
  96210. + <http://www.gnu.org/licenses/>. */
  96211. #include <errno.h>
  96212. #include <stdlib.h>
  96213. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h
  96214. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h 2012-05-15 09:20:09.000000000 +0200
  96215. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/pthreadtypes.h 2014-06-02 17:40:35.138718205 +0200
  96216. @@ -13,9 +13,8 @@
  96217. Lesser General Public License for more details.
  96218. You should have received a copy of the GNU Lesser General Public
  96219. - License along with the GNU C Library; if not, write to the Free
  96220. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96221. - 02111-1307 USA. */
  96222. + License along with the GNU C Library; if not, see
  96223. + <http://www.gnu.org/licenses/>. */
  96224. #ifndef _BITS_PTHREADTYPES_H
  96225. #define _BITS_PTHREADTYPES_H 1
  96226. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h
  96227. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h 2012-05-15 09:20:09.000000000 +0200
  96228. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/bits/semaphore.h 2014-06-02 17:40:35.138718205 +0200
  96229. @@ -13,9 +13,8 @@
  96230. Lesser General Public License for more details.
  96231. You should have received a copy of the GNU Lesser General Public
  96232. - License along with the GNU C Library; if not, write to the Free
  96233. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96234. - 02111-1307 USA. */
  96235. + License along with the GNU C Library; if not, see
  96236. + <http://www.gnu.org/licenses/>. */
  96237. #ifndef _SEMAPHORE_H
  96238. # error "Never use <bits/semaphore.h> directly; include <semaphore.h> instead."
  96239. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S
  96240. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S 2012-05-15 09:20:09.000000000 +0200
  96241. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/cancellation.S 2014-06-02 17:40:35.138718205 +0200
  96242. @@ -13,9 +13,8 @@
  96243. Lesser General Public License for more details.
  96244. You should have received a copy of the GNU Lesser General Public
  96245. - License along with the GNU C Library; if not, write to the Free
  96246. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96247. - 02111-1307 USA. */
  96248. + License along with the GNU C Library; if not, see
  96249. + <http://www.gnu.org/licenses/>. */
  96250. #include <sysdep.h>
  96251. #include <tcb-offsets.h>
  96252. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/compat-timer.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/compat-timer.h
  96253. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/compat-timer.h 2012-05-15 09:20:09.000000000 +0200
  96254. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/compat-timer.h 2014-06-02 17:40:35.138718205 +0200
  96255. @@ -13,9 +13,8 @@
  96256. Lesser General Public License for more details.
  96257. You should have received a copy of the GNU Lesser General Public
  96258. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  96259. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  96260. - Boston, MA 02111-1307, USA. */
  96261. + License along with the GNU C Library; see the file COPYING.LIB. If
  96262. + not, see <http://www.gnu.org/licenses/>. */
  96263. #include <signal.h>
  96264. #include <time.h>
  96265. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/fork.c uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/fork.c
  96266. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/fork.c 2012-05-15 09:20:09.000000000 +0200
  96267. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/fork.c 2014-06-02 17:40:35.138718205 +0200
  96268. @@ -13,9 +13,8 @@
  96269. Lesser General Public License for more details.
  96270. You should have received a copy of the GNU Lesser General Public
  96271. - License along with the GNU C Library; if not, write to the Free
  96272. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96273. - 02111-1307 USA. */
  96274. + License along with the GNU C Library; if not, see
  96275. + <http://www.gnu.org/licenses/>. */
  96276. #include <sched.h>
  96277. #include <signal.h>
  96278. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S
  96279. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S 2012-05-15 09:20:09.000000000 +0200
  96280. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-cancellation.S 2014-06-02 17:40:35.138718205 +0200
  96281. @@ -13,9 +13,8 @@
  96282. Lesser General Public License for more details.
  96283. You should have received a copy of the GNU Lesser General Public
  96284. - License along with the GNU C Library; if not, write to the Free
  96285. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96286. - 02111-1307 USA. */
  96287. + License along with the GNU C Library; if not, see
  96288. + <http://www.gnu.org/licenses/>. */
  96289. #define __pthread_enable_asynccancel __libc_enable_asynccancel
  96290. #define __pthread_disable_asynccancel __libc_disable_asynccancel
  96291. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S
  96292. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
  96293. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/libc-lowlevellock.S 2014-06-02 17:40:35.142718228 +0200
  96294. @@ -13,8 +13,7 @@
  96295. Lesser General Public License for more details.
  96296. You should have received a copy of the GNU Lesser General Public
  96297. - License along with the GNU C Library; if not, write to the Free
  96298. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96299. - 02111-1307 USA. */
  96300. + License along with the GNU C Library; if not, see
  96301. + <http://www.gnu.org/licenses/>. */
  96302. #include "lowlevellock.S"
  96303. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S
  96304. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S 2012-05-15 09:20:09.000000000 +0200
  96305. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/librt-cancellation.S 2014-06-02 17:40:35.142718228 +0200
  96306. @@ -13,9 +13,8 @@
  96307. Lesser General Public License for more details.
  96308. You should have received a copy of the GNU Lesser General Public
  96309. - License along with the GNU C Library; if not, write to the Free
  96310. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96311. - 02111-1307 USA. */
  96312. + License along with the GNU C Library; if not, see
  96313. + <http://www.gnu.org/licenses/>. */
  96314. #define __pthread_enable_asynccancel __librt_enable_asynccancel
  96315. #define __pthread_disable_asynccancel __librt_disable_asynccancel
  96316. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h
  96317. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h 2012-05-15 09:20:09.000000000 +0200
  96318. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.h 2014-06-02 17:40:35.142718228 +0200
  96319. @@ -13,9 +13,8 @@
  96320. Lesser General Public License for more details.
  96321. You should have received a copy of the GNU Lesser General Public
  96322. - License along with the GNU C Library; if not, write to the Free
  96323. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96324. - 02111-1307 USA. */
  96325. + License along with the GNU C Library; if not, see
  96326. + <http://www.gnu.org/licenses/>. */
  96327. #ifndef _LOWLEVELLOCK_H
  96328. #define _LOWLEVELLOCK_H 1
  96329. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S
  96330. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S 2012-05-15 09:20:09.000000000 +0200
  96331. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S 2014-06-02 17:40:35.142718228 +0200
  96332. @@ -13,9 +13,8 @@
  96333. Lesser General Public License for more details.
  96334. You should have received a copy of the GNU Lesser General Public
  96335. - License along with the GNU C Library; if not, write to the Free
  96336. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96337. - 02111-1307 USA. */
  96338. + License along with the GNU C Library; if not, see
  96339. + <http://www.gnu.org/licenses/>. */
  96340. #include <sysdep.h>
  96341. #include <pthread-errnos.h>
  96342. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S
  96343. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S 2012-05-15 09:20:09.000000000 +0200
  96344. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/lowlevelrobustlock.S 2014-06-02 17:40:35.142718228 +0200
  96345. @@ -14,9 +14,8 @@
  96346. Lesser General Public License for more details.
  96347. You should have received a copy of the GNU Lesser General Public
  96348. - License along with the GNU C Library; if not, write to the Free
  96349. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96350. - 02111-1307 USA. */
  96351. + License along with the GNU C Library; if not, see
  96352. + <http://www.gnu.org/licenses/>. */
  96353. #include <sysdep.h>
  96354. #include <pthread-errnos.h>
  96355. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S
  96356. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S 2012-05-15 09:20:09.000000000 +0200
  96357. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_barrier_wait.S 2014-06-02 17:40:35.142718228 +0200
  96358. @@ -13,9 +13,8 @@
  96359. Lesser General Public License for more details.
  96360. You should have received a copy of the GNU Lesser General Public
  96361. - License along with the GNU C Library; if not, write to the Free
  96362. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96363. - 02111-1307 USA. */
  96364. + License along with the GNU C Library; if not, see
  96365. + <http://www.gnu.org/licenses/>. */
  96366. #include <sysdep.h>
  96367. #include <lowlevellock.h>
  96368. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S
  96369. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S 2012-05-15 09:20:09.000000000 +0200
  96370. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_broadcast.S 2014-06-02 17:40:35.142718228 +0200
  96371. @@ -14,9 +14,8 @@
  96372. Lesser General Public License for more details.
  96373. You should have received a copy of the GNU Lesser General Public
  96374. - License along with the GNU C Library; if not, write to the Free
  96375. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96376. - 02111-1307 USA. */
  96377. + License along with the GNU C Library; if not, see
  96378. + <http://www.gnu.org/licenses/>. */
  96379. #include <sysdep.h>
  96380. #include <lowlevellock.h>
  96381. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S
  96382. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S 2012-05-15 09:20:09.000000000 +0200
  96383. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_signal.S 2014-06-02 17:40:35.142718228 +0200
  96384. @@ -13,9 +13,8 @@
  96385. Lesser General Public License for more details.
  96386. You should have received a copy of the GNU Lesser General Public
  96387. - License along with the GNU C Library; if not, write to the Free
  96388. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96389. - 02111-1307 USA. */
  96390. + License along with the GNU C Library; if not, see
  96391. + <http://www.gnu.org/licenses/>. */
  96392. #include <sysdep.h>
  96393. #include <lowlevellock.h>
  96394. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S
  96395. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S 2012-05-15 09:20:09.000000000 +0200
  96396. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S 2014-06-02 17:40:35.142718228 +0200
  96397. @@ -13,9 +13,8 @@
  96398. Lesser General Public License for more details.
  96399. You should have received a copy of the GNU Lesser General Public
  96400. - License along with the GNU C Library; if not, write to the Free
  96401. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96402. - 02111-1307 USA. */
  96403. + License along with the GNU C Library; if not, see
  96404. + <http://www.gnu.org/licenses/>. */
  96405. #include <sysdep.h>
  96406. #include <lowlevellock.h>
  96407. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
  96408. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2012-05-15 09:20:09.000000000 +0200
  96409. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S 2014-06-02 17:40:35.142718228 +0200
  96410. @@ -13,9 +13,8 @@
  96411. Lesser General Public License for more details.
  96412. You should have received a copy of the GNU Lesser General Public
  96413. - License along with the GNU C Library; if not, write to the Free
  96414. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96415. - 02111-1307 USA. */
  96416. + License along with the GNU C Library; if not, see
  96417. + <http://www.gnu.org/licenses/>. */
  96418. #include <sysdep.h>
  96419. #include <lowlevellock.h>
  96420. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S
  96421. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S 2012-05-15 09:20:09.000000000 +0200
  96422. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_once.S 2014-06-02 17:40:35.142718228 +0200
  96423. @@ -13,9 +13,8 @@
  96424. Lesser General Public License for more details.
  96425. You should have received a copy of the GNU Lesser General Public
  96426. - License along with the GNU C Library; if not, write to the Free
  96427. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96428. - 02111-1307 USA. */
  96429. + License along with the GNU C Library; if not, see
  96430. + <http://www.gnu.org/licenses/>. */
  96431. #include <sysdep.h>
  96432. #include <bits/kernel-features.h>
  96433. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S
  96434. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S 2012-05-15 09:20:09.000000000 +0200
  96435. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_rdlock.S 2014-06-02 17:40:35.142718228 +0200
  96436. @@ -13,9 +13,8 @@
  96437. Lesser General Public License for more details.
  96438. You should have received a copy of the GNU Lesser General Public
  96439. - License along with the GNU C Library; if not, write to the Free
  96440. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96441. - 02111-1307 USA. */
  96442. + License along with the GNU C Library; if not, see
  96443. + <http://www.gnu.org/licenses/>. */
  96444. #include <sysdep.h>
  96445. #include <lowlevellock.h>
  96446. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S
  96447. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S 2012-05-15 09:20:09.000000000 +0200
  96448. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedrdlock.S 2014-06-02 17:40:35.142718228 +0200
  96449. @@ -13,9 +13,8 @@
  96450. Lesser General Public License for more details.
  96451. You should have received a copy of the GNU Lesser General Public
  96452. - License along with the GNU C Library; if not, write to the Free
  96453. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96454. - 02111-1307 USA. */
  96455. + License along with the GNU C Library; if not, see
  96456. + <http://www.gnu.org/licenses/>. */
  96457. #include <sysdep.h>
  96458. #include <lowlevellock.h>
  96459. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S
  96460. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S 2012-05-15 09:20:09.000000000 +0200
  96461. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_timedwrlock.S 2014-06-02 17:40:35.142718228 +0200
  96462. @@ -13,9 +13,8 @@
  96463. Lesser General Public License for more details.
  96464. You should have received a copy of the GNU Lesser General Public
  96465. - License along with the GNU C Library; if not, write to the Free
  96466. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96467. - 02111-1307 USA. */
  96468. + License along with the GNU C Library; if not, see
  96469. + <http://www.gnu.org/licenses/>. */
  96470. #include <sysdep.h>
  96471. #include <lowlevellock.h>
  96472. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S
  96473. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S 2012-05-15 09:20:09.000000000 +0200
  96474. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_unlock.S 2014-06-02 17:40:35.142718228 +0200
  96475. @@ -13,9 +13,8 @@
  96476. Lesser General Public License for more details.
  96477. You should have received a copy of the GNU Lesser General Public
  96478. - License along with the GNU C Library; if not, write to the Free
  96479. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96480. - 02111-1307 USA. */
  96481. + License along with the GNU C Library; if not, see
  96482. + <http://www.gnu.org/licenses/>. */
  96483. #include <sysdep.h>
  96484. #include <lowlevellock.h>
  96485. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S
  96486. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S 2012-05-15 09:20:09.000000000 +0200
  96487. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pthread_rwlock_wrlock.S 2014-06-02 17:40:35.142718228 +0200
  96488. @@ -13,9 +13,8 @@
  96489. Lesser General Public License for more details.
  96490. You should have received a copy of the GNU Lesser General Public
  96491. - License along with the GNU C Library; if not, write to the Free
  96492. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96493. - 02111-1307 USA. */
  96494. + License along with the GNU C Library; if not, see
  96495. + <http://www.gnu.org/licenses/>. */
  96496. #include <sysdep.h>
  96497. #include <lowlevellock.h>
  96498. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pt-vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pt-vfork.S
  96499. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pt-vfork.S 2012-05-15 09:20:09.000000000 +0200
  96500. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/pt-vfork.S 2014-06-02 17:40:35.142718228 +0200
  96501. @@ -12,9 +12,8 @@
  96502. Lesser General Public License for more details.
  96503. You should have received a copy of the GNU Lesser General Public
  96504. - License along with the GNU C Library; if not, write to the Free
  96505. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96506. - 02111-1307 USA. */
  96507. + License along with the GNU C Library; if not, see
  96508. + <http://www.gnu.org/licenses/>. */
  96509. #include <tcb-offsets.h>
  96510. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_post.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_post.S
  96511. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_post.S 2012-05-15 09:20:09.000000000 +0200
  96512. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_post.S 2014-06-02 17:40:35.142718228 +0200
  96513. @@ -13,9 +13,8 @@
  96514. Lesser General Public License for more details.
  96515. You should have received a copy of the GNU Lesser General Public
  96516. - License along with the GNU C Library; if not, write to the Free
  96517. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96518. - 02111-1307 USA. */
  96519. + License along with the GNU C Library; if not, see
  96520. + <http://www.gnu.org/licenses/>. */
  96521. #include <sysdep.h>
  96522. #include <lowlevellock.h>
  96523. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S
  96524. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S 2012-05-15 09:20:09.000000000 +0200
  96525. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S 2014-06-02 17:40:35.142718228 +0200
  96526. @@ -13,9 +13,8 @@
  96527. Lesser General Public License for more details.
  96528. You should have received a copy of the GNU Lesser General Public
  96529. - License along with the GNU C Library; if not, write to the Free
  96530. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96531. - 02111-1307 USA. */
  96532. + License along with the GNU C Library; if not, see
  96533. + <http://www.gnu.org/licenses/>. */
  96534. #include <sysdep.h>
  96535. #include <bits/kernel-features.h>
  96536. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S
  96537. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S 2012-05-15 09:20:09.000000000 +0200
  96538. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S 2014-06-02 17:40:35.142718228 +0200
  96539. @@ -13,9 +13,8 @@
  96540. Lesser General Public License for more details.
  96541. You should have received a copy of the GNU Lesser General Public
  96542. - License along with the GNU C Library; if not, write to the Free
  96543. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96544. - 02111-1307 USA. */
  96545. + License along with the GNU C Library; if not, see
  96546. + <http://www.gnu.org/licenses/>. */
  96547. #include <sysdep.h>
  96548. #include <lowlevellock.h>
  96549. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S
  96550. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S 2012-05-15 09:20:09.000000000 +0200
  96551. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sem_wait.S 2014-06-02 17:40:35.142718228 +0200
  96552. @@ -13,9 +13,8 @@
  96553. Lesser General Public License for more details.
  96554. You should have received a copy of the GNU Lesser General Public
  96555. - License along with the GNU C Library; if not, write to the Free
  96556. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96557. - 02111-1307 USA. */
  96558. + License along with the GNU C Library; if not, see
  96559. + <http://www.gnu.org/licenses/>. */
  96560. #include <sysdep.h>
  96561. #include <lowlevellock.h>
  96562. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h
  96563. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h 2012-05-15 09:20:09.000000000 +0200
  96564. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/sysdep-cancel.h 2014-06-02 17:40:35.142718228 +0200
  96565. @@ -13,9 +13,8 @@
  96566. Lesser General Public License for more details.
  96567. You should have received a copy of the GNU Lesser General Public
  96568. - License along with the GNU C Library; if not, write to the Free
  96569. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96570. - 02111-1307 USA. */
  96571. + License along with the GNU C Library; if not, see
  96572. + <http://www.gnu.org/licenses/>. */
  96573. #include <sysdep.h>
  96574. #include <tls.h>
  96575. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S
  96576. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S 2012-05-15 09:20:09.000000000 +0200
  96577. +++ uClibc-git/libpthread/nptl/sysdeps/unix/sysv/linux/x86_64/vfork.S 2014-06-02 17:40:35.142718228 +0200
  96578. @@ -12,9 +12,8 @@
  96579. Lesser General Public License for more details.
  96580. You should have received a copy of the GNU Lesser General Public
  96581. - License along with the GNU C Library; if not, write to the Free
  96582. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96583. - 02111-1307 USA. */
  96584. + License along with the GNU C Library; if not, see
  96585. + <http://www.gnu.org/licenses/>. */
  96586. /* We want an #include_next, but we are the main source file.
  96587. So, #include ourselves and in that incarnation we can use #include_next. */
  96588. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/dl-tls.h uClibc-git/libpthread/nptl/sysdeps/x86_64/dl-tls.h
  96589. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/dl-tls.h 2012-05-15 09:20:09.000000000 +0200
  96590. +++ uClibc-git/libpthread/nptl/sysdeps/x86_64/dl-tls.h 2014-06-02 17:40:35.142718228 +0200
  96591. @@ -13,9 +13,8 @@
  96592. Lesser General Public License for more details.
  96593. You should have received a copy of the GNU Lesser General Public
  96594. - License along with the GNU C Library; if not, write to the Free
  96595. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96596. - 02111-1307 USA. */
  96597. + License along with the GNU C Library; if not, see
  96598. + <http://www.gnu.org/licenses/>. */
  96599. /* Type used for the representation of TLS information in the GOT. */
  96600. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/jmpbuf-unwind.h uClibc-git/libpthread/nptl/sysdeps/x86_64/jmpbuf-unwind.h
  96601. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/jmpbuf-unwind.h 2012-05-15 09:20:09.000000000 +0200
  96602. +++ uClibc-git/libpthread/nptl/sysdeps/x86_64/jmpbuf-unwind.h 2014-06-02 17:40:35.142718228 +0200
  96603. @@ -13,9 +13,8 @@
  96604. Lesser General Public License for more details.
  96605. You should have received a copy of the GNU Lesser General Public
  96606. - License along with the GNU C Library; if not, write to the Free
  96607. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96608. - 02111-1307 USA. */
  96609. + License along with the GNU C Library; if not, see
  96610. + <http://www.gnu.org/licenses/>. */
  96611. #include <setjmp.h>
  96612. #include <stdint.h>
  96613. @@ -26,6 +25,3 @@
  96614. #define _JMPBUF_UNWINDS_ADJ(_jmpbuf, _address, _adj) \
  96615. ((uintptr_t) (_address) - (_adj) < (uintptr_t) (_jmpbuf)[JB_RSP] - (_adj))
  96616. -
  96617. -/* We use the normal lobngjmp for unwinding. */
  96618. -#define __libc_unwind_longjmp(buf, val) __libc_longjmp (buf, val)
  96619. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/pthreaddef.h uClibc-git/libpthread/nptl/sysdeps/x86_64/pthreaddef.h
  96620. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/pthreaddef.h 2012-05-15 09:20:09.000000000 +0200
  96621. +++ uClibc-git/libpthread/nptl/sysdeps/x86_64/pthreaddef.h 2014-06-02 17:40:35.142718228 +0200
  96622. @@ -13,9 +13,8 @@
  96623. Lesser General Public License for more details.
  96624. You should have received a copy of the GNU Lesser General Public
  96625. - License along with the GNU C Library; if not, write to the Free
  96626. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96627. - 02111-1307 USA. */
  96628. + License along with the GNU C Library; if not, see
  96629. + <http://www.gnu.org/licenses/>. */
  96630. /* Default stack size. */
  96631. #define ARCH_STACK_DEFAULT_SIZE (2 * 1024 * 1024)
  96632. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/pthread_spin_trylock.S uClibc-git/libpthread/nptl/sysdeps/x86_64/pthread_spin_trylock.S
  96633. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/pthread_spin_trylock.S 2012-05-15 09:20:09.000000000 +0200
  96634. +++ uClibc-git/libpthread/nptl/sysdeps/x86_64/pthread_spin_trylock.S 2014-06-02 17:40:35.142718228 +0200
  96635. @@ -13,9 +13,8 @@
  96636. Lesser General Public License for more details.
  96637. You should have received a copy of the GNU Lesser General Public
  96638. - License along with the GNU C Library; if not, write to the Free
  96639. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96640. - 02111-1307 USA. */
  96641. + License along with the GNU C Library; if not, see
  96642. + <http://www.gnu.org/licenses/>. */
  96643. #include <pthread-errnos.h>
  96644. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/pthread_spin_unlock.S uClibc-git/libpthread/nptl/sysdeps/x86_64/pthread_spin_unlock.S
  96645. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/pthread_spin_unlock.S 2012-05-15 09:20:09.000000000 +0200
  96646. +++ uClibc-git/libpthread/nptl/sysdeps/x86_64/pthread_spin_unlock.S 2014-06-02 17:40:35.142718228 +0200
  96647. @@ -13,9 +13,8 @@
  96648. Lesser General Public License for more details.
  96649. You should have received a copy of the GNU Lesser General Public
  96650. - License along with the GNU C Library; if not, write to the Free
  96651. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96652. - 02111-1307 USA. */
  96653. + License along with the GNU C Library; if not, see
  96654. + <http://www.gnu.org/licenses/>. */
  96655. .globl pthread_spin_unlock
  96656. .type pthread_spin_unlock,@function
  96657. diff -Nur uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/tls.h uClibc-git/libpthread/nptl/sysdeps/x86_64/tls.h
  96658. --- uClibc-0.9.33.2/libpthread/nptl/sysdeps/x86_64/tls.h 2012-05-15 09:20:09.000000000 +0200
  96659. +++ uClibc-git/libpthread/nptl/sysdeps/x86_64/tls.h 2014-06-02 17:40:35.146718250 +0200
  96660. @@ -13,9 +13,8 @@
  96661. Lesser General Public License for more details.
  96662. You should have received a copy of the GNU Lesser General Public
  96663. - License along with the GNU C Library; if not, write to the Free
  96664. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96665. - 02111-1307 USA. */
  96666. + License along with the GNU C Library; if not, see
  96667. + <http://www.gnu.org/licenses/>. */
  96668. #ifndef _TLS_H
  96669. #define _TLS_H 1
  96670. diff -Nur uClibc-0.9.33.2/libpthread/nptl/unwind.c uClibc-git/libpthread/nptl/unwind.c
  96671. --- uClibc-0.9.33.2/libpthread/nptl/unwind.c 2012-05-15 09:20:09.000000000 +0200
  96672. +++ uClibc-git/libpthread/nptl/unwind.c 2014-06-02 17:40:35.146718250 +0200
  96673. @@ -14,9 +14,8 @@
  96674. Lesser General Public License for more details.
  96675. You should have received a copy of the GNU Lesser General Public
  96676. - License along with the GNU C Library; if not, write to the Free
  96677. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96678. - 02111-1307 USA. */
  96679. + License along with the GNU C Library; if not, see
  96680. + <http://www.gnu.org/licenses/>. */
  96681. #include <setjmp.h>
  96682. #include <stdlib.h>
  96683. @@ -99,7 +98,7 @@
  96684. }
  96685. -static void
  96686. +static attribute_noreturn void
  96687. unwind_cleanup (_Unwind_Reason_Code reason, struct _Unwind_Exception *exc)
  96688. {
  96689. /* When we get here a C++ catch block didn't rethrow the object. We
  96690. @@ -115,7 +114,7 @@
  96691. void
  96692. -attribute_protected
  96693. +/*does not apply due to hidden_proto(): attribute_protected*/
  96694. __cleanup_fct_attribute __attribute ((noreturn))
  96695. #if !defined SHARED && !defined IS_IN_libpthread
  96696. weak_function
  96697. diff -Nur uClibc-0.9.33.2/libpthread/nptl/vars.c uClibc-git/libpthread/nptl/vars.c
  96698. --- uClibc-0.9.33.2/libpthread/nptl/vars.c 2012-05-15 09:20:09.000000000 +0200
  96699. +++ uClibc-git/libpthread/nptl/vars.c 2014-06-02 17:40:35.146718250 +0200
  96700. @@ -12,9 +12,8 @@
  96701. Lesser General Public License for more details.
  96702. You should have received a copy of the GNU Lesser General Public
  96703. - License along with the GNU C Library; if not, write to the Free
  96704. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96705. - 02111-1307 USA. */
  96706. + License along with the GNU C Library; if not, see
  96707. + <http://www.gnu.org/licenses/>. */
  96708. #include <pthreadP.h>
  96709. #include <stdlib.h>
  96710. diff -Nur uClibc-0.9.33.2/libpthread/nptl/version.c uClibc-git/libpthread/nptl/version.c
  96711. --- uClibc-0.9.33.2/libpthread/nptl/version.c 2012-05-15 09:20:09.000000000 +0200
  96712. +++ uClibc-git/libpthread/nptl/version.c 2014-06-02 17:40:35.146718250 +0200
  96713. @@ -13,9 +13,8 @@
  96714. Lesser General Public License for more details.
  96715. You should have received a copy of the GNU Lesser General Public
  96716. - License along with the GNU C Library; if not, write to the Free
  96717. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96718. - 02111-1307 USA. */
  96719. + License along with the GNU C Library; if not, see
  96720. + <http://www.gnu.org/licenses/>. */
  96721. #include <unistd.h>
  96722. #include <sysdep.h>
  96723. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/db_info.c uClibc-git/libpthread/nptl_db/db_info.c
  96724. --- uClibc-0.9.33.2/libpthread/nptl_db/db_info.c 2012-05-15 09:20:09.000000000 +0200
  96725. +++ uClibc-git/libpthread/nptl_db/db_info.c 2014-06-02 17:40:35.170718383 +0200
  96726. @@ -15,9 +15,8 @@
  96727. Lesser General Public License for more details.
  96728. You should have received a copy of the GNU Lesser General Public
  96729. - License along with the GNU C Library; if not, write to the Free
  96730. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96731. - 02111-1307 USA. */
  96732. + License along with the GNU C Library; if not, see
  96733. + <http://www.gnu.org/licenses/>. */
  96734. #include "thread_dbP.h"
  96735. #include <tls.h>
  96736. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/fetch-value.c uClibc-git/libpthread/nptl_db/fetch-value.c
  96737. --- uClibc-0.9.33.2/libpthread/nptl_db/fetch-value.c 2012-05-15 09:20:09.000000000 +0200
  96738. +++ uClibc-git/libpthread/nptl_db/fetch-value.c 2014-06-02 17:40:35.170718383 +0200
  96739. @@ -13,9 +13,8 @@
  96740. Lesser General Public License for more details.
  96741. You should have received a copy of the GNU Lesser General Public
  96742. - License along with the GNU C Library; if not, write to the Free
  96743. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96744. - 02111-1307 USA. */
  96745. + License along with the GNU C Library; if not, see
  96746. + <http://www.gnu.org/licenses/>. */
  96747. #include "thread_dbP.h"
  96748. #include <byteswap.h>
  96749. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/proc_service.h uClibc-git/libpthread/nptl_db/proc_service.h
  96750. --- uClibc-0.9.33.2/libpthread/nptl_db/proc_service.h 2012-05-15 09:20:09.000000000 +0200
  96751. +++ uClibc-git/libpthread/nptl_db/proc_service.h 2014-06-02 17:40:35.170718383 +0200
  96752. @@ -13,9 +13,8 @@
  96753. Lesser General Public License for more details.
  96754. You should have received a copy of the GNU Lesser General Public
  96755. - License along with the GNU C Library; if not, write to the Free
  96756. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96757. - 02111-1307 USA. */
  96758. + License along with the GNU C Library; if not, see
  96759. + <http://www.gnu.org/licenses/>. */
  96760. /* The definitions in this file must correspond to those in the debugger. */
  96761. #include <sys/procfs.h>
  96762. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/structs.def uClibc-git/libpthread/nptl_db/structs.def
  96763. --- uClibc-0.9.33.2/libpthread/nptl_db/structs.def 2012-05-15 09:20:09.000000000 +0200
  96764. +++ uClibc-git/libpthread/nptl_db/structs.def 2014-06-02 17:40:35.170718383 +0200
  96765. @@ -13,9 +13,8 @@
  96766. Lesser General Public License for more details.
  96767. You should have received a copy of the GNU Lesser General Public
  96768. - License along with the GNU C Library; if not, write to the Free
  96769. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96770. - 02111-1307 USA. */
  96771. + License along with the GNU C Library; if not, see
  96772. + <http://www.gnu.org/licenses/>. */
  96773. #ifndef DB_STRUCT_ARRAY_FIELD
  96774. # define DB_STRUCT_ARRAY_FIELD(type, field) DB_STRUCT_FIELD (type, field)
  96775. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_init.c uClibc-git/libpthread/nptl_db/td_init.c
  96776. --- uClibc-0.9.33.2/libpthread/nptl_db/td_init.c 2012-05-15 09:20:09.000000000 +0200
  96777. +++ uClibc-git/libpthread/nptl_db/td_init.c 2014-06-02 17:40:35.170718383 +0200
  96778. @@ -14,9 +14,8 @@
  96779. Lesser General Public License for more details.
  96780. You should have received a copy of the GNU Lesser General Public
  96781. - License along with the GNU C Library; if not, write to the Free
  96782. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96783. - 02111-1307 USA. */
  96784. + License along with the GNU C Library; if not, see
  96785. + <http://www.gnu.org/licenses/>. */
  96786. #include "thread_dbP.h"
  96787. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_log.c uClibc-git/libpthread/nptl_db/td_log.c
  96788. --- uClibc-0.9.33.2/libpthread/nptl_db/td_log.c 2012-05-15 09:20:09.000000000 +0200
  96789. +++ uClibc-git/libpthread/nptl_db/td_log.c 2014-06-02 17:40:35.170718383 +0200
  96790. @@ -14,9 +14,8 @@
  96791. Lesser General Public License for more details.
  96792. You should have received a copy of the GNU Lesser General Public
  96793. - License along with the GNU C Library; if not, write to the Free
  96794. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96795. - 02111-1307 USA. */
  96796. + License along with the GNU C Library; if not, see
  96797. + <http://www.gnu.org/licenses/>. */
  96798. #include "thread_dbP.h"
  96799. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_symbol_list.c uClibc-git/libpthread/nptl_db/td_symbol_list.c
  96800. --- uClibc-0.9.33.2/libpthread/nptl_db/td_symbol_list.c 2012-05-15 09:20:09.000000000 +0200
  96801. +++ uClibc-git/libpthread/nptl_db/td_symbol_list.c 2014-06-02 17:40:35.170718383 +0200
  96802. @@ -14,9 +14,8 @@
  96803. Lesser General Public License for more details.
  96804. You should have received a copy of the GNU Lesser General Public
  96805. - License along with the GNU C Library; if not, write to the Free
  96806. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96807. - 02111-1307 USA. */
  96808. + License along with the GNU C Library; if not, see
  96809. + <http://www.gnu.org/licenses/>. */
  96810. #include <assert.h>
  96811. #ifndef __UCLIBC__
  96812. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_clear_event.c uClibc-git/libpthread/nptl_db/td_ta_clear_event.c
  96813. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_clear_event.c 2012-05-15 09:20:09.000000000 +0200
  96814. +++ uClibc-git/libpthread/nptl_db/td_ta_clear_event.c 2014-06-02 17:40:35.170718383 +0200
  96815. @@ -14,9 +14,8 @@
  96816. Lesser General Public License for more details.
  96817. You should have received a copy of the GNU Lesser General Public
  96818. - License along with the GNU C Library; if not, write to the Free
  96819. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96820. - 02111-1307 USA. */
  96821. + License along with the GNU C Library; if not, see
  96822. + <http://www.gnu.org/licenses/>. */
  96823. #include "thread_dbP.h"
  96824. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_delete.c uClibc-git/libpthread/nptl_db/td_ta_delete.c
  96825. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_delete.c 2012-05-15 09:20:09.000000000 +0200
  96826. +++ uClibc-git/libpthread/nptl_db/td_ta_delete.c 2014-06-02 17:40:35.170718383 +0200
  96827. @@ -14,9 +14,8 @@
  96828. Lesser General Public License for more details.
  96829. You should have received a copy of the GNU Lesser General Public
  96830. - License along with the GNU C Library; if not, write to the Free
  96831. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96832. - 02111-1307 USA. */
  96833. + License along with the GNU C Library; if not, see
  96834. + <http://www.gnu.org/licenses/>. */
  96835. #include <stdlib.h>
  96836. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_enable_stats.c uClibc-git/libpthread/nptl_db/td_ta_enable_stats.c
  96837. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_enable_stats.c 2012-05-15 09:20:09.000000000 +0200
  96838. +++ uClibc-git/libpthread/nptl_db/td_ta_enable_stats.c 2014-06-02 17:40:35.174718405 +0200
  96839. @@ -14,9 +14,8 @@
  96840. Lesser General Public License for more details.
  96841. You should have received a copy of the GNU Lesser General Public
  96842. - License along with the GNU C Library; if not, write to the Free
  96843. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96844. - 02111-1307 USA. */
  96845. + License along with the GNU C Library; if not, see
  96846. + <http://www.gnu.org/licenses/>. */
  96847. #include "thread_dbP.h"
  96848. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_event_addr.c uClibc-git/libpthread/nptl_db/td_ta_event_addr.c
  96849. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_event_addr.c 2012-05-15 09:20:09.000000000 +0200
  96850. +++ uClibc-git/libpthread/nptl_db/td_ta_event_addr.c 2014-06-02 17:40:35.174718405 +0200
  96851. @@ -14,9 +14,8 @@
  96852. Lesser General Public License for more details.
  96853. You should have received a copy of the GNU Lesser General Public
  96854. - License along with the GNU C Library; if not, write to the Free
  96855. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96856. - 02111-1307 USA. */
  96857. + License along with the GNU C Library; if not, see
  96858. + <http://www.gnu.org/licenses/>. */
  96859. #include "thread_dbP.h"
  96860. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_event_getmsg.c uClibc-git/libpthread/nptl_db/td_ta_event_getmsg.c
  96861. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
  96862. +++ uClibc-git/libpthread/nptl_db/td_ta_event_getmsg.c 2014-06-02 17:40:35.174718405 +0200
  96863. @@ -14,9 +14,8 @@
  96864. Lesser General Public License for more details.
  96865. You should have received a copy of the GNU Lesser General Public
  96866. - License along with the GNU C Library; if not, write to the Free
  96867. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96868. - 02111-1307 USA. */
  96869. + License along with the GNU C Library; if not, see
  96870. + <http://www.gnu.org/licenses/>. */
  96871. #include <stddef.h>
  96872. #include <string.h>
  96873. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_get_nthreads.c uClibc-git/libpthread/nptl_db/td_ta_get_nthreads.c
  96874. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_get_nthreads.c 2012-05-15 09:20:09.000000000 +0200
  96875. +++ uClibc-git/libpthread/nptl_db/td_ta_get_nthreads.c 2014-06-02 17:40:35.174718405 +0200
  96876. @@ -14,9 +14,8 @@
  96877. Lesser General Public License for more details.
  96878. You should have received a copy of the GNU Lesser General Public
  96879. - License along with the GNU C Library; if not, write to the Free
  96880. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96881. - 02111-1307 USA. */
  96882. + License along with the GNU C Library; if not, see
  96883. + <http://www.gnu.org/licenses/>. */
  96884. #include "thread_dbP.h"
  96885. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_get_ph.c uClibc-git/libpthread/nptl_db/td_ta_get_ph.c
  96886. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_get_ph.c 2012-05-15 09:20:09.000000000 +0200
  96887. +++ uClibc-git/libpthread/nptl_db/td_ta_get_ph.c 2014-06-02 17:40:35.174718405 +0200
  96888. @@ -14,9 +14,8 @@
  96889. Lesser General Public License for more details.
  96890. You should have received a copy of the GNU Lesser General Public
  96891. - License along with the GNU C Library; if not, write to the Free
  96892. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96893. - 02111-1307 USA. */
  96894. + License along with the GNU C Library; if not, see
  96895. + <http://www.gnu.org/licenses/>. */
  96896. #include "thread_dbP.h"
  96897. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_get_stats.c uClibc-git/libpthread/nptl_db/td_ta_get_stats.c
  96898. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_get_stats.c 2012-05-15 09:20:09.000000000 +0200
  96899. +++ uClibc-git/libpthread/nptl_db/td_ta_get_stats.c 2014-06-02 17:40:35.174718405 +0200
  96900. @@ -14,9 +14,8 @@
  96901. Lesser General Public License for more details.
  96902. You should have received a copy of the GNU Lesser General Public
  96903. - License along with the GNU C Library; if not, write to the Free
  96904. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96905. - 02111-1307 USA. */
  96906. + License along with the GNU C Library; if not, see
  96907. + <http://www.gnu.org/licenses/>. */
  96908. #include "thread_dbP.h"
  96909. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_map_id2thr.c uClibc-git/libpthread/nptl_db/td_ta_map_id2thr.c
  96910. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_map_id2thr.c 2012-05-15 09:20:09.000000000 +0200
  96911. +++ uClibc-git/libpthread/nptl_db/td_ta_map_id2thr.c 2014-06-02 17:40:35.174718405 +0200
  96912. @@ -14,9 +14,8 @@
  96913. Lesser General Public License for more details.
  96914. You should have received a copy of the GNU Lesser General Public
  96915. - License along with the GNU C Library; if not, write to the Free
  96916. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96917. - 02111-1307 USA. */
  96918. + License along with the GNU C Library; if not, see
  96919. + <http://www.gnu.org/licenses/>. */
  96920. #include "thread_dbP.h"
  96921. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_map_lwp2thr.c uClibc-git/libpthread/nptl_db/td_ta_map_lwp2thr.c
  96922. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_map_lwp2thr.c 2012-05-15 09:20:09.000000000 +0200
  96923. +++ uClibc-git/libpthread/nptl_db/td_ta_map_lwp2thr.c 2014-06-02 17:40:35.174718405 +0200
  96924. @@ -13,9 +13,8 @@
  96925. Lesser General Public License for more details.
  96926. You should have received a copy of the GNU Lesser General Public
  96927. - License along with the GNU C Library; if not, write to the Free
  96928. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96929. - 02111-1307 USA. */
  96930. + License along with the GNU C Library; if not, see
  96931. + <http://www.gnu.org/licenses/>. */
  96932. #include "thread_dbP.h"
  96933. #include <stdlib.h>
  96934. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_new.c uClibc-git/libpthread/nptl_db/td_ta_new.c
  96935. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_new.c 2012-05-15 09:20:09.000000000 +0200
  96936. +++ uClibc-git/libpthread/nptl_db/td_ta_new.c 2014-06-02 17:40:35.174718405 +0200
  96937. @@ -14,9 +14,8 @@
  96938. Lesser General Public License for more details.
  96939. You should have received a copy of the GNU Lesser General Public
  96940. - License along with the GNU C Library; if not, write to the Free
  96941. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96942. - 02111-1307 USA. */
  96943. + License along with the GNU C Library; if not, see
  96944. + <http://www.gnu.org/licenses/>. */
  96945. #include <stddef.h>
  96946. #include <stdlib.h>
  96947. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_reset_stats.c uClibc-git/libpthread/nptl_db/td_ta_reset_stats.c
  96948. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_reset_stats.c 2012-05-15 09:20:09.000000000 +0200
  96949. +++ uClibc-git/libpthread/nptl_db/td_ta_reset_stats.c 2014-06-02 17:40:35.174718405 +0200
  96950. @@ -14,9 +14,8 @@
  96951. Lesser General Public License for more details.
  96952. You should have received a copy of the GNU Lesser General Public
  96953. - License along with the GNU C Library; if not, write to the Free
  96954. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96955. - 02111-1307 USA. */
  96956. + License along with the GNU C Library; if not, see
  96957. + <http://www.gnu.org/licenses/>. */
  96958. #include "thread_dbP.h"
  96959. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_setconcurrency.c uClibc-git/libpthread/nptl_db/td_ta_setconcurrency.c
  96960. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_setconcurrency.c 2012-05-15 09:20:09.000000000 +0200
  96961. +++ uClibc-git/libpthread/nptl_db/td_ta_setconcurrency.c 2014-06-02 17:40:35.174718405 +0200
  96962. @@ -14,9 +14,8 @@
  96963. Lesser General Public License for more details.
  96964. You should have received a copy of the GNU Lesser General Public
  96965. - License along with the GNU C Library; if not, write to the Free
  96966. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96967. - 02111-1307 USA. */
  96968. + License along with the GNU C Library; if not, see
  96969. + <http://www.gnu.org/licenses/>. */
  96970. #include "thread_dbP.h"
  96971. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_set_event.c uClibc-git/libpthread/nptl_db/td_ta_set_event.c
  96972. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_set_event.c 2012-05-15 09:20:09.000000000 +0200
  96973. +++ uClibc-git/libpthread/nptl_db/td_ta_set_event.c 2014-06-02 17:40:35.174718405 +0200
  96974. @@ -14,9 +14,8 @@
  96975. Lesser General Public License for more details.
  96976. You should have received a copy of the GNU Lesser General Public
  96977. - License along with the GNU C Library; if not, write to the Free
  96978. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96979. - 02111-1307 USA. */
  96980. + License along with the GNU C Library; if not, see
  96981. + <http://www.gnu.org/licenses/>. */
  96982. #include "thread_dbP.h"
  96983. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_thr_iter.c uClibc-git/libpthread/nptl_db/td_ta_thr_iter.c
  96984. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_thr_iter.c 2012-05-15 09:20:09.000000000 +0200
  96985. +++ uClibc-git/libpthread/nptl_db/td_ta_thr_iter.c 2014-06-02 17:40:35.174718405 +0200
  96986. @@ -14,9 +14,8 @@
  96987. Lesser General Public License for more details.
  96988. You should have received a copy of the GNU Lesser General Public
  96989. - License along with the GNU C Library; if not, write to the Free
  96990. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  96991. - 02111-1307 USA. */
  96992. + License along with the GNU C Library; if not, see
  96993. + <http://www.gnu.org/licenses/>. */
  96994. #include "thread_dbP.h"
  96995. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_ta_tsd_iter.c uClibc-git/libpthread/nptl_db/td_ta_tsd_iter.c
  96996. --- uClibc-0.9.33.2/libpthread/nptl_db/td_ta_tsd_iter.c 2012-05-15 09:20:09.000000000 +0200
  96997. +++ uClibc-git/libpthread/nptl_db/td_ta_tsd_iter.c 2014-06-02 17:40:35.174718405 +0200
  96998. @@ -14,9 +14,8 @@
  96999. Lesser General Public License for more details.
  97000. You should have received a copy of the GNU Lesser General Public
  97001. - License along with the GNU C Library; if not, write to the Free
  97002. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97003. - 02111-1307 USA. */
  97004. + License along with the GNU C Library; if not, see
  97005. + <http://www.gnu.org/licenses/>. */
  97006. #include "thread_dbP.h"
  97007. #include <alloca.h>
  97008. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_clear_event.c uClibc-git/libpthread/nptl_db/td_thr_clear_event.c
  97009. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_clear_event.c 2012-05-15 09:20:09.000000000 +0200
  97010. +++ uClibc-git/libpthread/nptl_db/td_thr_clear_event.c 2014-06-02 17:40:35.174718405 +0200
  97011. @@ -14,9 +14,8 @@
  97012. Lesser General Public License for more details.
  97013. You should have received a copy of the GNU Lesser General Public
  97014. - License along with the GNU C Library; if not, write to the Free
  97015. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97016. - 02111-1307 USA. */
  97017. + License along with the GNU C Library; if not, see
  97018. + <http://www.gnu.org/licenses/>. */
  97019. #include <stddef.h>
  97020. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_dbresume.c uClibc-git/libpthread/nptl_db/td_thr_dbresume.c
  97021. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_dbresume.c 2012-05-15 09:20:09.000000000 +0200
  97022. +++ uClibc-git/libpthread/nptl_db/td_thr_dbresume.c 2014-06-02 17:40:35.174718405 +0200
  97023. @@ -14,9 +14,8 @@
  97024. Lesser General Public License for more details.
  97025. You should have received a copy of the GNU Lesser General Public
  97026. - License along with the GNU C Library; if not, write to the Free
  97027. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97028. - 02111-1307 USA. */
  97029. + License along with the GNU C Library; if not, see
  97030. + <http://www.gnu.org/licenses/>. */
  97031. #include "thread_dbP.h"
  97032. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_dbsuspend.c uClibc-git/libpthread/nptl_db/td_thr_dbsuspend.c
  97033. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_dbsuspend.c 2012-05-15 09:20:09.000000000 +0200
  97034. +++ uClibc-git/libpthread/nptl_db/td_thr_dbsuspend.c 2014-06-02 17:40:35.174718405 +0200
  97035. @@ -14,9 +14,8 @@
  97036. Lesser General Public License for more details.
  97037. You should have received a copy of the GNU Lesser General Public
  97038. - License along with the GNU C Library; if not, write to the Free
  97039. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97040. - 02111-1307 USA. */
  97041. + License along with the GNU C Library; if not, see
  97042. + <http://www.gnu.org/licenses/>. */
  97043. #include "thread_dbP.h"
  97044. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_event_enable.c uClibc-git/libpthread/nptl_db/td_thr_event_enable.c
  97045. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_event_enable.c 2012-05-15 09:20:09.000000000 +0200
  97046. +++ uClibc-git/libpthread/nptl_db/td_thr_event_enable.c 2014-06-02 17:40:35.174718405 +0200
  97047. @@ -14,9 +14,8 @@
  97048. Lesser General Public License for more details.
  97049. You should have received a copy of the GNU Lesser General Public
  97050. - License along with the GNU C Library; if not, write to the Free
  97051. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97052. - 02111-1307 USA. */
  97053. + License along with the GNU C Library; if not, see
  97054. + <http://www.gnu.org/licenses/>. */
  97055. #include "thread_dbP.h"
  97056. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_event_getmsg.c uClibc-git/libpthread/nptl_db/td_thr_event_getmsg.c
  97057. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_event_getmsg.c 2012-05-15 09:20:09.000000000 +0200
  97058. +++ uClibc-git/libpthread/nptl_db/td_thr_event_getmsg.c 2014-06-02 17:40:35.174718405 +0200
  97059. @@ -14,9 +14,8 @@
  97060. Lesser General Public License for more details.
  97061. You should have received a copy of the GNU Lesser General Public
  97062. - License along with the GNU C Library; if not, write to the Free
  97063. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97064. - 02111-1307 USA. */
  97065. + License along with the GNU C Library; if not, see
  97066. + <http://www.gnu.org/licenses/>. */
  97067. #include "thread_dbP.h"
  97068. #include <assert.h>
  97069. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getfpregs.c uClibc-git/libpthread/nptl_db/td_thr_getfpregs.c
  97070. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getfpregs.c 2012-05-15 09:20:09.000000000 +0200
  97071. +++ uClibc-git/libpthread/nptl_db/td_thr_getfpregs.c 2014-06-02 17:40:35.174718405 +0200
  97072. @@ -14,9 +14,8 @@
  97073. Lesser General Public License for more details.
  97074. You should have received a copy of the GNU Lesser General Public
  97075. - License along with the GNU C Library; if not, write to the Free
  97076. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97077. - 02111-1307 USA. */
  97078. + License along with the GNU C Library; if not, see
  97079. + <http://www.gnu.org/licenses/>. */
  97080. #include "thread_dbP.h"
  97081. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getgregs.c uClibc-git/libpthread/nptl_db/td_thr_getgregs.c
  97082. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getgregs.c 2012-05-15 09:20:09.000000000 +0200
  97083. +++ uClibc-git/libpthread/nptl_db/td_thr_getgregs.c 2014-06-02 17:40:35.174718405 +0200
  97084. @@ -14,9 +14,8 @@
  97085. Lesser General Public License for more details.
  97086. You should have received a copy of the GNU Lesser General Public
  97087. - License along with the GNU C Library; if not, write to the Free
  97088. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97089. - 02111-1307 USA. */
  97090. + License along with the GNU C Library; if not, see
  97091. + <http://www.gnu.org/licenses/>. */
  97092. #include "thread_dbP.h"
  97093. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_get_info.c uClibc-git/libpthread/nptl_db/td_thr_get_info.c
  97094. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_get_info.c 2012-05-15 09:20:09.000000000 +0200
  97095. +++ uClibc-git/libpthread/nptl_db/td_thr_get_info.c 2014-06-02 17:40:35.174718405 +0200
  97096. @@ -14,9 +14,8 @@
  97097. Lesser General Public License for more details.
  97098. You should have received a copy of the GNU Lesser General Public
  97099. - License along with the GNU C Library; if not, write to the Free
  97100. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97101. - 02111-1307 USA. */
  97102. + License along with the GNU C Library; if not, see
  97103. + <http://www.gnu.org/licenses/>. */
  97104. #include <stddef.h>
  97105. #include <string.h>
  97106. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getxregs.c uClibc-git/libpthread/nptl_db/td_thr_getxregs.c
  97107. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getxregs.c 2012-05-15 09:20:09.000000000 +0200
  97108. +++ uClibc-git/libpthread/nptl_db/td_thr_getxregs.c 2014-06-02 17:40:35.174718405 +0200
  97109. @@ -14,9 +14,8 @@
  97110. Lesser General Public License for more details.
  97111. You should have received a copy of the GNU Lesser General Public
  97112. - License along with the GNU C Library; if not, write to the Free
  97113. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97114. - 02111-1307 USA. */
  97115. + License along with the GNU C Library; if not, see
  97116. + <http://www.gnu.org/licenses/>. */
  97117. #include "thread_dbP.h"
  97118. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getxregsize.c uClibc-git/libpthread/nptl_db/td_thr_getxregsize.c
  97119. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_getxregsize.c 2012-05-15 09:20:09.000000000 +0200
  97120. +++ uClibc-git/libpthread/nptl_db/td_thr_getxregsize.c 2014-06-02 17:40:35.174718405 +0200
  97121. @@ -14,9 +14,8 @@
  97122. Lesser General Public License for more details.
  97123. You should have received a copy of the GNU Lesser General Public
  97124. - License along with the GNU C Library; if not, write to the Free
  97125. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97126. - 02111-1307 USA. */
  97127. + License along with the GNU C Library; if not, see
  97128. + <http://www.gnu.org/licenses/>. */
  97129. #include "thread_dbP.h"
  97130. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_set_event.c uClibc-git/libpthread/nptl_db/td_thr_set_event.c
  97131. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_set_event.c 2012-05-15 09:20:09.000000000 +0200
  97132. +++ uClibc-git/libpthread/nptl_db/td_thr_set_event.c 2014-06-02 17:40:35.174718405 +0200
  97133. @@ -14,9 +14,8 @@
  97134. Lesser General Public License for more details.
  97135. You should have received a copy of the GNU Lesser General Public
  97136. - License along with the GNU C Library; if not, write to the Free
  97137. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97138. - 02111-1307 USA. */
  97139. + License along with the GNU C Library; if not, see
  97140. + <http://www.gnu.org/licenses/>. */
  97141. #include <stddef.h>
  97142. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setfpregs.c uClibc-git/libpthread/nptl_db/td_thr_setfpregs.c
  97143. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setfpregs.c 2012-05-15 09:20:09.000000000 +0200
  97144. +++ uClibc-git/libpthread/nptl_db/td_thr_setfpregs.c 2014-06-02 17:40:35.174718405 +0200
  97145. @@ -14,9 +14,8 @@
  97146. Lesser General Public License for more details.
  97147. You should have received a copy of the GNU Lesser General Public
  97148. - License along with the GNU C Library; if not, write to the Free
  97149. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97150. - 02111-1307 USA. */
  97151. + License along with the GNU C Library; if not, see
  97152. + <http://www.gnu.org/licenses/>. */
  97153. #include "thread_dbP.h"
  97154. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setgregs.c uClibc-git/libpthread/nptl_db/td_thr_setgregs.c
  97155. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setgregs.c 2012-05-15 09:20:09.000000000 +0200
  97156. +++ uClibc-git/libpthread/nptl_db/td_thr_setgregs.c 2014-06-02 17:40:35.174718405 +0200
  97157. @@ -14,9 +14,8 @@
  97158. Lesser General Public License for more details.
  97159. You should have received a copy of the GNU Lesser General Public
  97160. - License along with the GNU C Library; if not, write to the Free
  97161. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97162. - 02111-1307 USA. */
  97163. + License along with the GNU C Library; if not, see
  97164. + <http://www.gnu.org/licenses/>. */
  97165. #include "thread_dbP.h"
  97166. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setprio.c uClibc-git/libpthread/nptl_db/td_thr_setprio.c
  97167. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setprio.c 2012-05-15 09:20:09.000000000 +0200
  97168. +++ uClibc-git/libpthread/nptl_db/td_thr_setprio.c 2014-06-02 17:40:35.174718405 +0200
  97169. @@ -14,9 +14,8 @@
  97170. Lesser General Public License for more details.
  97171. You should have received a copy of the GNU Lesser General Public
  97172. - License along with the GNU C Library; if not, write to the Free
  97173. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97174. - 02111-1307 USA. */
  97175. + License along with the GNU C Library; if not, see
  97176. + <http://www.gnu.org/licenses/>. */
  97177. #include "thread_dbP.h"
  97178. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setsigpending.c uClibc-git/libpthread/nptl_db/td_thr_setsigpending.c
  97179. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setsigpending.c 2012-05-15 09:20:09.000000000 +0200
  97180. +++ uClibc-git/libpthread/nptl_db/td_thr_setsigpending.c 2014-06-02 17:40:35.174718405 +0200
  97181. @@ -14,9 +14,8 @@
  97182. Lesser General Public License for more details.
  97183. You should have received a copy of the GNU Lesser General Public
  97184. - License along with the GNU C Library; if not, write to the Free
  97185. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97186. - 02111-1307 USA. */
  97187. + License along with the GNU C Library; if not, see
  97188. + <http://www.gnu.org/licenses/>. */
  97189. #include "thread_dbP.h"
  97190. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setxregs.c uClibc-git/libpthread/nptl_db/td_thr_setxregs.c
  97191. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_setxregs.c 2012-05-15 09:20:09.000000000 +0200
  97192. +++ uClibc-git/libpthread/nptl_db/td_thr_setxregs.c 2014-06-02 17:40:35.174718405 +0200
  97193. @@ -14,9 +14,8 @@
  97194. Lesser General Public License for more details.
  97195. You should have received a copy of the GNU Lesser General Public
  97196. - License along with the GNU C Library; if not, write to the Free
  97197. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97198. - 02111-1307 USA. */
  97199. + License along with the GNU C Library; if not, see
  97200. + <http://www.gnu.org/licenses/>. */
  97201. #include "thread_dbP.h"
  97202. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_sigsetmask.c uClibc-git/libpthread/nptl_db/td_thr_sigsetmask.c
  97203. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_sigsetmask.c 2012-05-15 09:20:09.000000000 +0200
  97204. +++ uClibc-git/libpthread/nptl_db/td_thr_sigsetmask.c 2014-06-02 17:40:35.174718405 +0200
  97205. @@ -14,9 +14,8 @@
  97206. Lesser General Public License for more details.
  97207. You should have received a copy of the GNU Lesser General Public
  97208. - License along with the GNU C Library; if not, write to the Free
  97209. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97210. - 02111-1307 USA. */
  97211. + License along with the GNU C Library; if not, see
  97212. + <http://www.gnu.org/licenses/>. */
  97213. #include "thread_dbP.h"
  97214. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_tlsbase.c uClibc-git/libpthread/nptl_db/td_thr_tlsbase.c
  97215. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_tlsbase.c 2012-05-15 09:20:09.000000000 +0200
  97216. +++ uClibc-git/libpthread/nptl_db/td_thr_tlsbase.c 2014-06-02 17:40:35.174718405 +0200
  97217. @@ -13,9 +13,8 @@
  97218. Lesser General Public License for more details.
  97219. You should have received a copy of the GNU Lesser General Public
  97220. - License along with the GNU C Library; if not, write to the Free
  97221. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97222. - 02111-1307 USA. */
  97223. + License along with the GNU C Library; if not, see
  97224. + <http://www.gnu.org/licenses/>. */
  97225. #include "thread_dbP.h"
  97226. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_tls_get_addr.c uClibc-git/libpthread/nptl_db/td_thr_tls_get_addr.c
  97227. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_tls_get_addr.c 2012-05-15 09:20:09.000000000 +0200
  97228. +++ uClibc-git/libpthread/nptl_db/td_thr_tls_get_addr.c 2014-06-02 17:40:35.174718405 +0200
  97229. @@ -14,9 +14,8 @@
  97230. Lesser General Public License for more details.
  97231. You should have received a copy of the GNU Lesser General Public
  97232. - License along with the GNU C Library; if not, write to the Free
  97233. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97234. - 02111-1307 USA. */
  97235. + License along with the GNU C Library; if not, see
  97236. + <http://www.gnu.org/licenses/>. */
  97237. #include <link.h>
  97238. #include "thread_dbP.h"
  97239. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_tsd.c uClibc-git/libpthread/nptl_db/td_thr_tsd.c
  97240. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_tsd.c 2012-05-15 09:20:09.000000000 +0200
  97241. +++ uClibc-git/libpthread/nptl_db/td_thr_tsd.c 2014-06-02 17:40:35.174718405 +0200
  97242. @@ -14,9 +14,8 @@
  97243. Lesser General Public License for more details.
  97244. You should have received a copy of the GNU Lesser General Public
  97245. - License along with the GNU C Library; if not, write to the Free
  97246. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97247. - 02111-1307 USA. */
  97248. + License along with the GNU C Library; if not, see
  97249. + <http://www.gnu.org/licenses/>. */
  97250. #include "thread_dbP.h"
  97251. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/td_thr_validate.c uClibc-git/libpthread/nptl_db/td_thr_validate.c
  97252. --- uClibc-0.9.33.2/libpthread/nptl_db/td_thr_validate.c 2012-05-15 09:20:09.000000000 +0200
  97253. +++ uClibc-git/libpthread/nptl_db/td_thr_validate.c 2014-06-02 17:40:35.174718405 +0200
  97254. @@ -14,9 +14,8 @@
  97255. Lesser General Public License for more details.
  97256. You should have received a copy of the GNU Lesser General Public
  97257. - License along with the GNU C Library; if not, write to the Free
  97258. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97259. - 02111-1307 USA. */
  97260. + License along with the GNU C Library; if not, see
  97261. + <http://www.gnu.org/licenses/>. */
  97262. #include "thread_dbP.h"
  97263. #include <stdbool.h>
  97264. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/thread_db.h uClibc-git/libpthread/nptl_db/thread_db.h
  97265. --- uClibc-0.9.33.2/libpthread/nptl_db/thread_db.h 2012-05-15 09:20:09.000000000 +0200
  97266. +++ uClibc-git/libpthread/nptl_db/thread_db.h 2014-06-02 17:40:35.174718405 +0200
  97267. @@ -13,9 +13,8 @@
  97268. Lesser General Public License for more details.
  97269. You should have received a copy of the GNU Lesser General Public
  97270. - License along with the GNU C Library; if not, write to the Free
  97271. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97272. - 02111-1307 USA. */
  97273. + License along with the GNU C Library; if not, see
  97274. + <http://www.gnu.org/licenses/>. */
  97275. #ifndef _THREAD_DB_H
  97276. #define _THREAD_DB_H 1
  97277. diff -Nur uClibc-0.9.33.2/libpthread/nptl_db/thread_dbP.h uClibc-git/libpthread/nptl_db/thread_dbP.h
  97278. --- uClibc-0.9.33.2/libpthread/nptl_db/thread_dbP.h 2012-05-15 09:20:09.000000000 +0200
  97279. +++ uClibc-git/libpthread/nptl_db/thread_dbP.h 2014-06-02 17:40:35.174718405 +0200
  97280. @@ -13,9 +13,8 @@
  97281. Lesser General Public License for more details.
  97282. You should have received a copy of the GNU Lesser General Public
  97283. - License along with the GNU C Library; if not, write to the Free
  97284. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97285. - 02111-1307 USA. */
  97286. + License along with the GNU C Library; if not, see
  97287. + <http://www.gnu.org/licenses/>. */
  97288. #ifndef _THREAD_DBP_H
  97289. #define _THREAD_DBP_H 1
  97290. diff -Nur uClibc-0.9.33.2/libresolv/resolv.c uClibc-git/libresolv/resolv.c
  97291. --- uClibc-0.9.33.2/libresolv/resolv.c 2012-05-15 09:20:09.000000000 +0200
  97292. +++ uClibc-git/libresolv/resolv.c 2014-06-02 17:40:35.178718427 +0200
  97293. @@ -7,8 +7,6 @@
  97294. * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  97295. */
  97296. -#include <features.h>
  97297. -
  97298. void __stub1(void);
  97299. void __stub1(void)
  97300. {
  97301. diff -Nur uClibc-0.9.33.2/librt/clock_getcpuclockid.c uClibc-git/librt/clock_getcpuclockid.c
  97302. --- uClibc-0.9.33.2/librt/clock_getcpuclockid.c 2012-05-15 09:20:09.000000000 +0200
  97303. +++ uClibc-git/librt/clock_getcpuclockid.c 2014-06-02 17:40:35.178718427 +0200
  97304. @@ -13,9 +13,8 @@
  97305. Lesser General Public License for more details.
  97306. You should have received a copy of the GNU Lesser General Public
  97307. - License along with the GNU C Library; if not, write to the Free
  97308. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97309. - 02111-1307 USA. */
  97310. + License along with the GNU C Library; if not, see
  97311. + <http://www.gnu.org/licenses/>. */
  97312. #include <errno.h>
  97313. #include <time.h>
  97314. diff -Nur uClibc-0.9.33.2/librt/clock_gettime.c uClibc-git/librt/clock_gettime.c
  97315. --- uClibc-0.9.33.2/librt/clock_gettime.c 2012-05-15 09:20:09.000000000 +0200
  97316. +++ uClibc-git/librt/clock_gettime.c 2014-06-02 17:40:35.178718427 +0200
  97317. @@ -13,9 +13,8 @@
  97318. Lesser General Public License for more details.
  97319. You should have received a copy of the GNU Lesser General Public
  97320. - License along with the GNU C Library; if not, write to the Free
  97321. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97322. - 02111-1307 USA. */
  97323. + License along with the GNU C Library; if not, see
  97324. + <http://www.gnu.org/licenses/>. */
  97325. #include <sysdep.h>
  97326. #include <errno.h>
  97327. @@ -186,7 +185,6 @@
  97328. #include <stdint.h>
  97329. #include <time.h>
  97330. #include <sys/time.h>
  97331. -#include <libc-internal.h>
  97332. #include <ldsodefs.h>
  97333. diff -Nur uClibc-0.9.33.2/librt/clock_nanosleep.c uClibc-git/librt/clock_nanosleep.c
  97334. --- uClibc-0.9.33.2/librt/clock_nanosleep.c 2012-05-15 09:20:09.000000000 +0200
  97335. +++ uClibc-git/librt/clock_nanosleep.c 2014-06-02 17:40:35.178718427 +0200
  97336. @@ -12,9 +12,8 @@
  97337. Lesser General Public License for more details.
  97338. You should have received a copy of the GNU Lesser General Public
  97339. - License along with the GNU C Library; if not, write to the Free
  97340. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  97341. - 02111-1307 USA. */
  97342. + License along with the GNU C Library; if not, see
  97343. + <http://www.gnu.org/licenses/>. */
  97344. #include <time.h>
  97345. #include <errno.h>
  97346. diff -Nur uClibc-0.9.33.2/librt/Makefile.in uClibc-git/librt/Makefile.in
  97347. --- uClibc-0.9.33.2/librt/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  97348. +++ uClibc-git/librt/Makefile.in 2014-06-02 17:40:35.178718427 +0200
  97349. @@ -28,11 +28,20 @@
  97350. ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  97351. librt_filter_SRC += mq_notify.c timer_create.c timer_delete.c \
  97352. timer_getoverr.c timer_gettime.c timer_settime.c
  97353. +# these should really be guarded by ADVANCED_REALTIME, we use them in mq_send.c/mq_receive.c
  97354. librt_SSRC := $(wildcard $(librt_DIR)/*.S)
  97355. else
  97356. librt_filter_SRC += clock_nanosleep.c clock_getcpuclockid.c clock_gettime.c
  97357. librt_SSRC :=
  97358. endif
  97359. +
  97360. +librt_filter_SRC += $(if $(UCLIBC_HAS_ADVANCED_REALTIME),, \
  97361. + spawn.c \
  97362. + spawn_faction_addclose.c \
  97363. + spawn_faction_adddup2.c \
  97364. + spawn_faction_addopen.c \
  97365. + spawn_faction_init.c)
  97366. +
  97367. librt_SRC := $(filter-out $(librt_filter_SRC),$(librt_SRC))
  97368. librt_OBJ := $(patsubst %.c,$(librt_OUT)/%.o,$(librt_SRC))
  97369. diff -Nur uClibc-0.9.33.2/librt/mq_receive.c uClibc-git/librt/mq_receive.c
  97370. --- uClibc-0.9.33.2/librt/mq_receive.c 2012-05-15 09:20:09.000000000 +0200
  97371. +++ uClibc-git/librt/mq_receive.c 2014-06-02 17:40:35.178718427 +0200
  97372. @@ -10,13 +10,18 @@
  97373. #include <mqueue.h>
  97374. #ifdef __UCLIBC_HAS_THREADS_NATIVE__
  97375. +# ifndef __UCLIBC_HAS_ADVANCED_REALTIME__
  97376. +extern ssize_t mq_timedreceive(mqd_t mqdes, char *msg_ptr, size_t msg_len,
  97377. + unsigned int *msg_prio,
  97378. + const struct timespec *abs_timeout);
  97379. +# endif
  97380. librt_hidden_proto(mq_timedreceive)
  97381. #else
  97382. # define __NR___syscall_mq_timedreceive __NR_mq_timedreceive
  97383. static _syscall5(int, __syscall_mq_timedreceive, int, mqdes,
  97384. char *, msg_ptr, size_t, msg_len, unsigned int *,
  97385. - msg_prio, const void *, abs_timeout);
  97386. + msg_prio, const void *, abs_timeout)
  97387. # ifdef __UCLIBC_HAS_ADVANCED_REALTIME__
  97388. /*
  97389. diff -Nur uClibc-0.9.33.2/librt/mq_send.c uClibc-git/librt/mq_send.c
  97390. --- uClibc-0.9.33.2/librt/mq_send.c 2012-05-15 09:20:09.000000000 +0200
  97391. +++ uClibc-git/librt/mq_send.c 2014-06-02 17:40:35.178718427 +0200
  97392. @@ -10,13 +10,17 @@
  97393. #include <mqueue.h>
  97394. #ifdef __UCLIBC_HAS_THREADS_NATIVE__
  97395. +# ifndef __UCLIBC_HAS_ADVANCED_REALTIME__
  97396. +extern int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len,
  97397. + unsigned int msg_prio, const struct timespec *abs_timeout);
  97398. +# endif
  97399. librt_hidden_proto(mq_timedsend)
  97400. #else
  97401. # define __NR___syscall_mq_timedsend __NR_mq_timedsend
  97402. static _syscall5(int, __syscall_mq_timedsend, int, mqdes,
  97403. const char *, msg_ptr, size_t, msg_len, unsigned int,
  97404. - msg_prio, const void *, abs_timeout);
  97405. + msg_prio, const void *, abs_timeout)
  97406. # ifdef __UCLIBC_HAS_ADVANCED_REALTIME__
  97407. /*
  97408. diff -Nur uClibc-0.9.33.2/librt/mq_timedreceive.S uClibc-git/librt/mq_timedreceive.S
  97409. --- uClibc-0.9.33.2/librt/mq_timedreceive.S 2012-05-15 09:20:09.000000000 +0200
  97410. +++ uClibc-git/librt/mq_timedreceive.S 2014-06-02 17:40:35.178718427 +0200
  97411. @@ -2,9 +2,7 @@
  97412. #ifndef __NR_mq_timedreceive
  97413. #error Missing definition of NR_timedreceive needed for cancellation.
  97414. #endif
  97415. -PSEUDO (__mq_timedreceive, mq_timedreceive, 5)
  97416. -ret
  97417. -PSEUDO_END(__mq_timedreceive)
  97418. -librt_hidden_def (__mq_timedreceive)
  97419. -weak_alias (__mq_timedreceive, mq_timedreceive)
  97420. -librt_hidden_weak (mq_timedreceive)
  97421. +PSEUDO(mq_timedreceive, mq_timedreceive, 5)
  97422. +ret_ERRVAL
  97423. +PSEUDO_END(mq_timedreceive)
  97424. +librt_hidden_def(mq_timedreceive)
  97425. diff -Nur uClibc-0.9.33.2/librt/mq_timedsend.S uClibc-git/librt/mq_timedsend.S
  97426. --- uClibc-0.9.33.2/librt/mq_timedsend.S 2012-05-15 09:20:09.000000000 +0200
  97427. +++ uClibc-git/librt/mq_timedsend.S 2014-06-02 17:40:35.178718427 +0200
  97428. @@ -2,9 +2,7 @@
  97429. #ifndef __NR_mq_timedsend
  97430. #error Missing definition of NR_timedsend needed for cancellation.
  97431. #endif
  97432. -PSEUDO (__mq_timedsend, mq_timedsend, 5)
  97433. -ret
  97434. -PSEUDO_END(__mq_timedsend)
  97435. -librt_hidden_def (__mq_timedsend)
  97436. -weak_alias (__mq_timedsend, mq_timedsend)
  97437. -librt_hidden_weak (mq_timedsend)
  97438. +PSEUDO(mq_timedsend, mq_timedsend, 5)
  97439. +ret_ERRVAL
  97440. +PSEUDO_END(mq_timedsend)
  97441. +librt_hidden_def(mq_timedsend)
  97442. diff -Nur uClibc-0.9.33.2/librt/spawn.c uClibc-git/librt/spawn.c
  97443. --- uClibc-0.9.33.2/librt/spawn.c 1970-01-01 01:00:00.000000000 +0100
  97444. +++ uClibc-git/librt/spawn.c 2014-06-02 17:40:35.178718427 +0200
  97445. @@ -0,0 +1,266 @@
  97446. +/* Copyright (C) 2000, 2011 Free Software Foundation, Inc.
  97447. + This file is part of the GNU C Library.
  97448. +
  97449. + The GNU C Library is free software; you can redistribute it and/or
  97450. + modify it under the terms of the GNU Lesser General Public
  97451. + License as published by the Free Software Foundation; either
  97452. + version 2.1 of the License, or (at your option) any later version.
  97453. +
  97454. + The GNU C Library is distributed in the hope that it will be useful,
  97455. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  97456. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  97457. + Lesser General Public License for more details.
  97458. +
  97459. + You should have received a copy of the GNU Lesser General Public
  97460. + License along with the GNU C Library; if not, see
  97461. + <http://www.gnu.org/licenses/>. */
  97462. +
  97463. +#include <errno.h>
  97464. +#include <alloca.h>
  97465. +#include <unistd.h>
  97466. +#include <signal.h>
  97467. +#include <stdbool.h>
  97468. +#include <fcntl.h>
  97469. +
  97470. +#include <sys/resource.h>
  97471. +#include <not-cancel.h>
  97472. +
  97473. +#include <spawn.h>
  97474. +#include "spawn_int.h"
  97475. +
  97476. +/* The Unix standard contains a long explanation of the way to signal
  97477. + an error after the fork() was successful. Since no new wait status
  97478. + was wanted there is no way to signal an error using one of the
  97479. + available methods. The committee chose to signal an error by a
  97480. + normal program exit with the exit code 127. */
  97481. +#define SPAWN_ERROR 127
  97482. +
  97483. +/* Execute file actions.
  97484. + * Returns true on error.
  97485. + */
  97486. +inline static bool execute_file_actions(const posix_spawn_file_actions_t *fa)
  97487. +{
  97488. + struct rlimit64 fdlimit;
  97489. + bool have_fdlimit = false;
  97490. + int cnt;
  97491. +
  97492. + for (cnt = 0; cnt < fa->__used; ++cnt) {
  97493. + struct __spawn_action *action = &fa->__actions[cnt];
  97494. +
  97495. + switch (action->tag) {
  97496. + case spawn_do_close:
  97497. + if (close_not_cancel(action->action.close_action.fd) != 0) {
  97498. + if (!have_fdlimit) {
  97499. + getrlimit64(RLIMIT_NOFILE, &fdlimit);
  97500. + have_fdlimit = true;
  97501. + }
  97502. +
  97503. + /* Only signal errors for file descriptors out of range. */
  97504. + if (0 > action->action.close_action.fd
  97505. + || action->action.close_action.fd >= fdlimit.rlim_cur)
  97506. + /* Signal the error. */
  97507. + return true;
  97508. + }
  97509. + break;
  97510. +
  97511. + case spawn_do_open:;
  97512. + int new_fd = open_not_cancel(action->action.open_action.path,
  97513. + action->action.open_action.oflag
  97514. + | O_LARGEFILE,
  97515. + action->action.open_action.mode);
  97516. +
  97517. + if (new_fd == -1)
  97518. + return true;
  97519. +
  97520. + /* Make sure the desired file descriptor is used. */
  97521. + if (new_fd != action->action.open_action.fd) {
  97522. + if (dup2(new_fd, action->action.open_action.fd)
  97523. + != action->action.open_action.fd)
  97524. + return true;
  97525. +
  97526. + if (close_not_cancel(new_fd) != 0)
  97527. + return true;
  97528. + }
  97529. + break;
  97530. +
  97531. + case spawn_do_dup2:
  97532. + if (dup2(action->action.dup2_action.fd,
  97533. + action->action.dup2_action.newfd)
  97534. + != action->action.dup2_action.newfd)
  97535. + return true;
  97536. + break;
  97537. + }
  97538. + }
  97539. +
  97540. + return false;
  97541. +}
  97542. +
  97543. +#define DANGEROUS (POSIX_SPAWN_SETSIGMASK \
  97544. + | POSIX_SPAWN_SETSIGDEF \
  97545. + | POSIX_SPAWN_SETSCHEDPARAM \
  97546. + | POSIX_SPAWN_SETSCHEDULER \
  97547. + | POSIX_SPAWN_SETPGROUP \
  97548. + | POSIX_SPAWN_RESETIDS)
  97549. +inline static bool is_vfork_safe(short int flags)
  97550. +{
  97551. + return ((flags & POSIX_SPAWN_USEVFORK) || !(flags & DANGEROUS));
  97552. +}
  97553. +
  97554. +
  97555. +/* Spawn a new process executing PATH with the attributes describes in *ATTRP.
  97556. + Before running the process perform the actions described in FILE-ACTIONS. */
  97557. +static int
  97558. +__spawni(pid_t *pid, const char *file,
  97559. + const posix_spawn_file_actions_t *fa,
  97560. + const posix_spawnattr_t *attrp, char *const argv[],
  97561. + char *const envp[], const char *path)
  97562. +{
  97563. + short int flags = attrp ? attrp->__flags : 0;
  97564. +
  97565. + pid_t new_pid;
  97566. + if (is_vfork_safe(flags) && !fa)
  97567. + new_pid = vfork();
  97568. + else {
  97569. +#ifdef __ARCH_USE_MMU__
  97570. + new_pid = fork();
  97571. +#else
  97572. + return ENOSYS;
  97573. +#endif
  97574. + }
  97575. +
  97576. + if (new_pid) {
  97577. + if (new_pid < 0)
  97578. + return errno;
  97579. +
  97580. + if (pid)
  97581. + *pid = new_pid;
  97582. +
  97583. + return 0;
  97584. + }
  97585. +
  97586. + if (flags & POSIX_SPAWN_SETSIGMASK) {
  97587. + if (sigprocmask(SIG_SETMASK, &attrp->__ss, NULL) != 0)
  97588. + goto error;
  97589. + }
  97590. +
  97591. + if (flags & POSIX_SPAWN_SETSIGDEF) {
  97592. + /* We have to iterate over all signals. This could possibly be
  97593. + done better but it requires system specific solutions since
  97594. + the sigset_t data type can be very different on different
  97595. + architectures. */
  97596. + struct sigaction sa;
  97597. + int sig;
  97598. +
  97599. + memset(&sa, 0, sizeof(sa));
  97600. + sa.sa_handler = SIG_DFL;
  97601. +
  97602. + for (sig = 1; sig <= _NSIG; ++sig) {
  97603. + if (sigismember(&attrp->__sd, sig)) {
  97604. + if (sigaction(sig, &sa, NULL) != 0)
  97605. + goto error;
  97606. + }
  97607. + }
  97608. + }
  97609. +
  97610. + if (flags & POSIX_SPAWN_SETSCHEDULER) {
  97611. + if (sched_setscheduler(0, attrp->__policy, &attrp->__sp) == -1)
  97612. + goto error;
  97613. + } else if (flags & POSIX_SPAWN_SETSCHEDPARAM) {
  97614. + if (sched_setparam(0, &attrp->__sp) == -1)
  97615. + goto error;
  97616. + }
  97617. +
  97618. + if (flags & POSIX_SPAWN_SETPGROUP) {
  97619. + if (setpgid(0, attrp->__pgrp) != 0)
  97620. + goto error;
  97621. + }
  97622. +
  97623. + if (flags & POSIX_SPAWN_RESETIDS) {
  97624. + if (seteuid(getuid()) || setegid(getgid()))
  97625. + goto error;
  97626. + }
  97627. +
  97628. + if (fa && execute_file_actions(fa))
  97629. + goto error;
  97630. +
  97631. + if (!path || strchr(file, '/')) {
  97632. + execve(file, argv, envp);
  97633. + goto error;
  97634. + }
  97635. +
  97636. +
  97637. + char *name;
  97638. + {
  97639. + size_t filelen = strlen(file) + 1;
  97640. + size_t pathlen = strlen(path) + 1;
  97641. + name = alloca(pathlen + filelen);
  97642. +
  97643. + /* Copy the file name at the top. */
  97644. + name = (char *) memcpy(name + pathlen, file, filelen);
  97645. +
  97646. + /* And add the slash. */
  97647. + *--name = '/';
  97648. + }
  97649. +
  97650. + char *p;
  97651. + do {
  97652. + char *startp;
  97653. + p = strchrnul(path, ':');
  97654. +
  97655. + /* Two adjacent colons, or a colon at the beginning or the end
  97656. + of `PATH' means to search the current directory. */
  97657. + if (p == path)
  97658. + startp = name + 1;
  97659. + else
  97660. + startp = (char *) memcpy(name - (p - path), path, p - path);
  97661. +
  97662. + execve(startp, argv, envp);
  97663. +
  97664. + switch (errno) {
  97665. + case EACCES:
  97666. + case ENOENT:
  97667. + case ESTALE:
  97668. + case ENOTDIR:
  97669. + /* Those errors indicate the file is missing or not
  97670. + executable by us, in which case we want to just try
  97671. + the next path directory. */
  97672. + break;
  97673. + default:
  97674. + /* Some other error means we found an executable file,
  97675. + but something went wrong executing it; return the
  97676. + error to our caller. */
  97677. + goto error;
  97678. + }
  97679. +
  97680. + path = p;
  97681. + } while (*p++ != '\0');
  97682. +
  97683. +error:
  97684. + _exit(SPAWN_ERROR);
  97685. +}
  97686. +
  97687. +/* Spawn a new process executing PATH with the attributes describes in *ATTRP.
  97688. + Before running the process perform the actions described in FILE-ACTIONS. */
  97689. +int posix_spawn (pid_t *pid, const char *path,
  97690. + const posix_spawn_file_actions_t *fa,
  97691. + const posix_spawnattr_t *attrp, char *const argv[],
  97692. + char *const envp[])
  97693. +{
  97694. + return __spawni(pid, path, fa, attrp, argv, envp, NULL);
  97695. +}
  97696. +
  97697. +/* Spawn a new process executing FILE with the attributes describes in *ATTRP.
  97698. + Before running the process perform the actions described in FILE-ACTIONS. */
  97699. +int
  97700. +posix_spawnp(pid_t *pid, const char *file,
  97701. + const posix_spawn_file_actions_t *fa,
  97702. + const posix_spawnattr_t *attrp, char *const argv[],
  97703. + char *const envp[])
  97704. +{
  97705. + const char *path = getenv("PATH");
  97706. +
  97707. + if (!path)
  97708. + path = ":/bin:/usr/bin";
  97709. +
  97710. + return __spawni(pid, file, fa, attrp, argv, envp, path);
  97711. +}
  97712. diff -Nur uClibc-0.9.33.2/librt/spawn_faction_addclose.c uClibc-git/librt/spawn_faction_addclose.c
  97713. --- uClibc-0.9.33.2/librt/spawn_faction_addclose.c 1970-01-01 01:00:00.000000000 +0100
  97714. +++ uClibc-git/librt/spawn_faction_addclose.c 2014-06-02 17:40:35.178718427 +0200
  97715. @@ -0,0 +1,51 @@
  97716. +/* Copyright (C) 2000 Free Software Foundation, Inc.
  97717. + This file is part of the GNU C Library.
  97718. +
  97719. + The GNU C Library is free software; you can redistribute it and/or
  97720. + modify it under the terms of the GNU Lesser General Public
  97721. + License as published by the Free Software Foundation; either
  97722. + version 2.1 of the License, or (at your option) any later version.
  97723. +
  97724. + The GNU C Library is distributed in the hope that it will be useful,
  97725. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  97726. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  97727. + Lesser General Public License for more details.
  97728. +
  97729. + You should have received a copy of the GNU Lesser General Public
  97730. + License along with the GNU C Library; if not, see
  97731. + <http://www.gnu.org/licenses/>. */
  97732. +
  97733. +#include <errno.h>
  97734. +#include <spawn.h>
  97735. +#include <unistd.h>
  97736. +
  97737. +#include "spawn_int.h"
  97738. +
  97739. +/* Add an action to FILE-ACTIONS which tells the implementation to call
  97740. + `close' for the given file descriptor during the `spawn' call. */
  97741. +int
  97742. +posix_spawn_file_actions_addclose(posix_spawn_file_actions_t *file_actions,
  97743. + int fd)
  97744. +{
  97745. + int maxfd = sysconf(_SC_OPEN_MAX);
  97746. + struct __spawn_action *rec;
  97747. +
  97748. + /* Test for the validity of the file descriptor. */
  97749. + if (fd < 0 || fd >= maxfd)
  97750. + return EBADF;
  97751. +
  97752. + /* Allocate more memory if needed. */
  97753. + if (file_actions->__used == file_actions->__allocated
  97754. + && __posix_spawn_file_actions_realloc(file_actions) != 0)
  97755. + /* This can only mean we ran out of memory. */
  97756. + return ENOMEM;
  97757. +
  97758. + /* Add the new value. */
  97759. + rec = &file_actions->__actions[file_actions->__used];
  97760. + rec->tag = spawn_do_close;
  97761. + rec->action.open_action.fd = fd;
  97762. +
  97763. + /* Account for the new entry. */
  97764. + ++file_actions->__used;
  97765. + return 0;
  97766. +}
  97767. diff -Nur uClibc-0.9.33.2/librt/spawn_faction_adddup2.c uClibc-git/librt/spawn_faction_adddup2.c
  97768. --- uClibc-0.9.33.2/librt/spawn_faction_adddup2.c 1970-01-01 01:00:00.000000000 +0100
  97769. +++ uClibc-git/librt/spawn_faction_adddup2.c 2014-06-02 17:40:35.178718427 +0200
  97770. @@ -0,0 +1,52 @@
  97771. +/* Copyright (C) 2000 Free Software Foundation, Inc.
  97772. + This file is part of the GNU C Library.
  97773. +
  97774. + The GNU C Library is free software; you can redistribute it and/or
  97775. + modify it under the terms of the GNU Lesser General Public
  97776. + License as published by the Free Software Foundation; either
  97777. + version 2.1 of the License, or (at your option) any later version.
  97778. +
  97779. + The GNU C Library is distributed in the hope that it will be useful,
  97780. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  97781. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  97782. + Lesser General Public License for more details.
  97783. +
  97784. + You should have received a copy of the GNU Lesser General Public
  97785. + License along with the GNU C Library; if not, see
  97786. + <http://www.gnu.org/licenses/>. */
  97787. +
  97788. +#include <errno.h>
  97789. +#include <spawn.h>
  97790. +#include <unistd.h>
  97791. +
  97792. +#include "spawn_int.h"
  97793. +
  97794. +/* Add an action to FILE-ACTIONS which tells the implementation to call
  97795. + `dup2' for the given file descriptors during the `spawn' call. */
  97796. +int
  97797. +posix_spawn_file_actions_adddup2(posix_spawn_file_actions_t *file_actions,
  97798. + int fd, int newfd)
  97799. +{
  97800. + int maxfd = sysconf(_SC_OPEN_MAX);
  97801. + struct __spawn_action *rec;
  97802. +
  97803. + /* Test for the validity of the file descriptor. */
  97804. + if (fd < 0 || newfd < 0 || fd >= maxfd || newfd >= maxfd)
  97805. + return EBADF;
  97806. +
  97807. + /* Allocate more memory if needed. */
  97808. + if (file_actions->__used == file_actions->__allocated
  97809. + && __posix_spawn_file_actions_realloc (file_actions) != 0)
  97810. + /* This can only mean we ran out of memory. */
  97811. + return ENOMEM;
  97812. +
  97813. + /* Add the new value. */
  97814. + rec = &file_actions->__actions[file_actions->__used];
  97815. + rec->tag = spawn_do_dup2;
  97816. + rec->action.dup2_action.fd = fd;
  97817. + rec->action.dup2_action.newfd = newfd;
  97818. +
  97819. + /* Account for the new entry. */
  97820. + ++file_actions->__used;
  97821. + return 0;
  97822. +}
  97823. diff -Nur uClibc-0.9.33.2/librt/spawn_faction_addopen.c uClibc-git/librt/spawn_faction_addopen.c
  97824. --- uClibc-0.9.33.2/librt/spawn_faction_addopen.c 1970-01-01 01:00:00.000000000 +0100
  97825. +++ uClibc-git/librt/spawn_faction_addopen.c 2014-06-02 17:40:35.178718427 +0200
  97826. @@ -0,0 +1,55 @@
  97827. +/* Copyright (C) 2000 Free Software Foundation, Inc.
  97828. + This file is part of the GNU C Library.
  97829. +
  97830. + The GNU C Library is free software; you can redistribute it and/or
  97831. + modify it under the terms of the GNU Lesser General Public
  97832. + License as published by the Free Software Foundation; either
  97833. + version 2.1 of the License, or (at your option) any later version.
  97834. +
  97835. + The GNU C Library is distributed in the hope that it will be useful,
  97836. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  97837. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  97838. + Lesser General Public License for more details.
  97839. +
  97840. + You should have received a copy of the GNU Lesser General Public
  97841. + License along with the GNU C Library; if not, see
  97842. + <http://www.gnu.org/licenses/>. */
  97843. +
  97844. +#include <errno.h>
  97845. +#include <spawn.h>
  97846. +#include <unistd.h>
  97847. +
  97848. +#include "spawn_int.h"
  97849. +
  97850. +/* Add an action to FILE-ACTIONS which tells the implementation to call
  97851. + `open' for the given file during the `spawn' call. */
  97852. +int
  97853. +posix_spawn_file_actions_addopen(posix_spawn_file_actions_t *file_actions,
  97854. + int fd, const char *path, int oflag,
  97855. + mode_t mode)
  97856. +{
  97857. + int maxfd = sysconf(_SC_OPEN_MAX);
  97858. + struct __spawn_action *rec;
  97859. +
  97860. + /* Test for the validity of the file descriptor. */
  97861. + if (fd < 0 || fd >= maxfd)
  97862. + return EBADF;
  97863. +
  97864. + /* Allocate more memory if needed. */
  97865. + if (file_actions->__used == file_actions->__allocated
  97866. + && __posix_spawn_file_actions_realloc (file_actions) != 0)
  97867. + /* This can only mean we ran out of memory. */
  97868. + return ENOMEM;
  97869. +
  97870. + /* Add the new value. */
  97871. + rec = &file_actions->__actions[file_actions->__used];
  97872. + rec->tag = spawn_do_open;
  97873. + rec->action.open_action.fd = fd;
  97874. + rec->action.open_action.path = path;
  97875. + rec->action.open_action.oflag = oflag;
  97876. + rec->action.open_action.mode = mode;
  97877. +
  97878. + /* Account for the new entry. */
  97879. + ++file_actions->__used;
  97880. + return 0;
  97881. +}
  97882. diff -Nur uClibc-0.9.33.2/librt/spawn_faction_init.c uClibc-git/librt/spawn_faction_init.c
  97883. --- uClibc-0.9.33.2/librt/spawn_faction_init.c 1970-01-01 01:00:00.000000000 +0100
  97884. +++ uClibc-git/librt/spawn_faction_init.c 2014-06-02 17:40:35.178718427 +0200
  97885. @@ -0,0 +1,42 @@
  97886. +/* Copyright (C) 2000 Free Software Foundation, Inc.
  97887. + This file is part of the GNU C Library.
  97888. +
  97889. + The GNU C Library is free software; you can redistribute it and/or
  97890. + modify it under the terms of the GNU Lesser General Public
  97891. + License as published by the Free Software Foundation; either
  97892. + version 2.1 of the License, or (at your option) any later version.
  97893. +
  97894. + The GNU C Library is distributed in the hope that it will be useful,
  97895. + but WITHOUT ANY WARRANTY; without even the implied warranty of
  97896. + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  97897. + Lesser General Public License for more details.
  97898. +
  97899. + You should have received a copy of the GNU Lesser General Public
  97900. + License along with the GNU C Library; if not, see
  97901. + <http://www.gnu.org/licenses/>. */
  97902. +
  97903. +#include <errno.h>
  97904. +#include <spawn.h>
  97905. +#include <stdlib.h>
  97906. +#include <string.h>
  97907. +
  97908. +#include "spawn_int.h"
  97909. +
  97910. +
  97911. +/* Function used to increase the size of the allocated array. This
  97912. + function is called from the `add'-functions. */
  97913. +int
  97914. +__posix_spawn_file_actions_realloc(posix_spawn_file_actions_t *file_actions)
  97915. +{
  97916. + int newalloc = file_actions->__allocated + 8;
  97917. + void *newmem = realloc(file_actions->__actions,
  97918. + newalloc * sizeof(struct __spawn_action));
  97919. +
  97920. + if (newmem == NULL)
  97921. + /* Not enough memory. */
  97922. + return ENOMEM;
  97923. +
  97924. + file_actions->__actions = (struct __spawn_action *)newmem;
  97925. + file_actions->__allocated = newalloc;
  97926. + return 0;
  97927. +}
  97928. diff -Nur uClibc-0.9.33.2/librt/spawn_int.h uClibc-git/librt/spawn_int.h
  97929. --- uClibc-0.9.33.2/librt/spawn_int.h 1970-01-01 01:00:00.000000000 +0100
  97930. +++ uClibc-git/librt/spawn_int.h 2014-06-02 17:40:35.178718427 +0200
  97931. @@ -0,0 +1,35 @@
  97932. +/* Data structure to contain the action information. */
  97933. +struct __spawn_action {
  97934. + enum {
  97935. + spawn_do_close,
  97936. + spawn_do_dup2,
  97937. + spawn_do_open
  97938. + } tag;
  97939. +
  97940. + union {
  97941. + struct {
  97942. + int fd;
  97943. + } close_action;
  97944. + struct {
  97945. + int fd;
  97946. + int newfd;
  97947. + } dup2_action;
  97948. + struct {
  97949. + int fd;
  97950. + const char *path;
  97951. + int oflag;
  97952. + mode_t mode;
  97953. + } open_action;
  97954. + } action;
  97955. +};
  97956. +
  97957. +int __posix_spawn_file_actions_realloc(posix_spawn_file_actions_t *fa);
  97958. +
  97959. +/* handle !LFS */
  97960. +#ifndef __UCLIBC_HAS_LFS__
  97961. +# define rlimit64 rlimit
  97962. +# define getrlimit64 getrlimit
  97963. +#endif
  97964. +#ifndef O_LARGEFILE
  97965. +# define O_LARGEFILE 0
  97966. +#endif
  97967. diff -Nur uClibc-0.9.33.2/librt/timer_create.c uClibc-git/librt/timer_create.c
  97968. --- uClibc-0.9.33.2/librt/timer_create.c 2012-05-15 09:20:09.000000000 +0200
  97969. +++ uClibc-git/librt/timer_create.c 2014-06-02 17:40:35.178718427 +0200
  97970. @@ -2,6 +2,7 @@
  97971. * timer_create.c - create a per-process timer.
  97972. */
  97973. +#include <stddef.h>
  97974. #include <errno.h>
  97975. #include <signal.h>
  97976. #include <stdlib.h>
  97977. @@ -13,10 +14,6 @@
  97978. #ifdef __NR_timer_create
  97979. -#ifndef offsetof
  97980. -# define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
  97981. -#endif
  97982. -
  97983. #define __NR___syscall_timer_create __NR_timer_create
  97984. static __inline__ _syscall3(int, __syscall_timer_create, clockid_t, clock_id,
  97985. struct sigevent *, evp, kernel_timer_t *, ktimerid);
  97986. diff -Nur uClibc-0.9.33.2/libubacktrace/arm/backtrace.c uClibc-git/libubacktrace/arm/backtrace.c
  97987. --- uClibc-0.9.33.2/libubacktrace/arm/backtrace.c 2012-05-15 09:20:09.000000000 +0200
  97988. +++ uClibc-git/libubacktrace/arm/backtrace.c 2014-06-02 17:40:35.178718427 +0200
  97989. @@ -12,6 +12,7 @@
  97990. *
  97991. */
  97992. +#include <libgcc_s.h>
  97993. #include <execinfo.h>
  97994. #include <dlfcn.h>
  97995. #include <stdlib.h>
  97996. @@ -25,6 +26,7 @@
  97997. int cnt, size;
  97998. };
  97999. +#ifdef SHARED
  98000. static _Unwind_Reason_Code (*unwind_backtrace) (_Unwind_Trace_Fn, void *);
  98001. static _Unwind_VRS_Result (*unwind_vrs_get) (_Unwind_Context *,
  98002. _Unwind_VRS_RegClass,
  98003. @@ -34,14 +36,18 @@
  98004. static void backtrace_init (void)
  98005. {
  98006. - void *handle = dlopen ("libgcc_s.so.1", RTLD_LAZY);
  98007. + void *handle = dlopen (LIBGCC_S_SO, RTLD_LAZY);
  98008. if (handle == NULL
  98009. || ((unwind_backtrace = dlsym (handle, "_Unwind_Backtrace")) == NULL)
  98010. || ((unwind_vrs_get = dlsym (handle, "_Unwind_VRS_Get")) == NULL)) {
  98011. - printf("libgcc_s.so.1 must be installed for backtrace to work\n");
  98012. + printf(LIBGCC_S_SO " must be installed for backtrace to work\n");
  98013. abort();
  98014. }
  98015. }
  98016. +#else
  98017. +# define unwind_backtrace _Unwind_Backtrace
  98018. +# define unwind_vrs_get _Unwind_VRS_Get
  98019. +#endif
  98020. /* This function is identical to "_Unwind_GetGR", except that it uses
  98021. "unwind_vrs_get" instead of "_Unwind_VRS_Get". */
  98022. static inline _Unwind_Word
  98023. @@ -62,7 +68,7 @@
  98024. {
  98025. struct trace_arg *arg = a;
  98026. - assert (unwind_getip != NULL);
  98027. + assert (unwind_getip(ctx) != NULL);
  98028. /* We are first called with address in the __backtrace function. Skip it. */
  98029. if (arg->cnt != -1)
  98030. @@ -80,8 +86,10 @@
  98031. {
  98032. struct trace_arg arg = { .array = array, .size = size, .cnt = -1 };
  98033. +#ifdef SHARED
  98034. if (unwind_backtrace == NULL)
  98035. backtrace_init();
  98036. +#endif
  98037. if (size >= 1)
  98038. unwind_backtrace (backtrace_helper, &arg);
  98039. diff -Nur uClibc-0.9.33.2/libubacktrace/arm/Makefile.arch uClibc-git/libubacktrace/arm/Makefile.arch
  98040. --- uClibc-0.9.33.2/libubacktrace/arm/Makefile.arch 2012-05-15 09:20:09.000000000 +0200
  98041. +++ uClibc-git/libubacktrace/arm/Makefile.arch 2014-06-02 17:40:35.178718427 +0200
  98042. @@ -14,4 +14,4 @@
  98043. else
  98044. libubacktrace-a-y+=$(libubacktrace_ARCH_OBJS)
  98045. endif
  98046. -libubacktrace-so-y+=$(libubacktrace_ARCH_OBJS:.o=.os)
  98047. +libubacktrace-so-y+=$(libubacktrace_ARCH_OBJS:.o=.oS)
  98048. diff -Nur uClibc-0.9.33.2/libubacktrace/backtrace.c uClibc-git/libubacktrace/backtrace.c
  98049. --- uClibc-0.9.33.2/libubacktrace/backtrace.c 2012-05-15 09:20:09.000000000 +0200
  98050. +++ uClibc-git/libubacktrace/backtrace.c 2014-06-02 17:40:35.178718427 +0200
  98051. @@ -20,6 +20,7 @@
  98052. *
  98053. */
  98054. +#include <libgcc_s.h>
  98055. #include <execinfo.h>
  98056. #include <dlfcn.h>
  98057. #include <stdlib.h>
  98058. @@ -33,20 +34,25 @@
  98059. int cnt, size;
  98060. };
  98061. +#ifdef SHARED
  98062. static _Unwind_Reason_Code (*unwind_backtrace) (_Unwind_Trace_Fn, void *);
  98063. static _Unwind_Ptr (*unwind_getip) (struct _Unwind_Context *);
  98064. static void backtrace_init (void)
  98065. {
  98066. - void *handle = dlopen ("libgcc_s.so.1", RTLD_LAZY);
  98067. + void *handle = dlopen (LIBGCC_S_SO, RTLD_LAZY);
  98068. if (handle == NULL
  98069. || ((unwind_backtrace = dlsym (handle, "_Unwind_Backtrace")) == NULL)
  98070. || ((unwind_getip = dlsym (handle, "_Unwind_GetIP")) == NULL)) {
  98071. - printf("libgcc_s.so.1 must be installed for backtrace to work\n");
  98072. + printf(LIBGCC_S_SO " must be installed for backtrace to work\n");
  98073. abort();
  98074. }
  98075. }
  98076. +#else
  98077. +# define unwind_backtrace _Unwind_Backtrace
  98078. +# define unwind_getip _Unwind_GetIP
  98079. +#endif
  98080. static _Unwind_Reason_Code
  98081. backtrace_helper (struct _Unwind_Context *ctx, void *a)
  98082. @@ -71,8 +77,10 @@
  98083. {
  98084. struct trace_arg arg = { .array = array, .size = size, .cnt = -1 };
  98085. +#ifdef SHARED
  98086. if (unwind_backtrace == NULL)
  98087. backtrace_init();
  98088. +#endif
  98089. if (size >= 1)
  98090. unwind_backtrace (backtrace_helper, &arg);
  98091. diff -Nur uClibc-0.9.33.2/libubacktrace/backtracesyms.c uClibc-git/libubacktrace/backtracesyms.c
  98092. --- uClibc-0.9.33.2/libubacktrace/backtracesyms.c 2012-05-15 09:20:09.000000000 +0200
  98093. +++ uClibc-git/libubacktrace/backtracesyms.c 2014-06-02 17:40:35.178718427 +0200
  98094. @@ -14,9 +14,8 @@
  98095. Lesser General Public License for more details.
  98096. You should have received a copy of the GNU Lesser General Public
  98097. - License along with the GNU C Library; if not, write to the Free
  98098. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  98099. - 02111-1307 USA.
  98100. + License along with the GNU C Library; see the file COPYING.LIB. If
  98101. + not, see <http://www.gnu.org/licenses/>.
  98102. Based on glibc/sysdeps/generic/elf/backtracesyms.c
  98103. diff -Nur uClibc-0.9.33.2/libubacktrace/backtracesymsfd.c uClibc-git/libubacktrace/backtracesymsfd.c
  98104. --- uClibc-0.9.33.2/libubacktrace/backtracesymsfd.c 2012-05-15 09:20:09.000000000 +0200
  98105. +++ uClibc-git/libubacktrace/backtracesymsfd.c 2014-06-02 17:40:35.178718427 +0200
  98106. @@ -14,9 +14,8 @@
  98107. Lesser General Public License for more details.
  98108. You should have received a copy of the GNU Lesser General Public
  98109. - License along with the GNU C Library; if not, write to the Free
  98110. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  98111. - 02111-1307 USA.
  98112. + License along with the GNU C Library; see the file COPYING.LIB. If
  98113. + not, see <http://www.gnu.org/licenses/>.
  98114. Based on glibc/sysdeps/generic/elf/backtracesymsfd.c
  98115. diff -Nur uClibc-0.9.33.2/libubacktrace/Makefile.in uClibc-git/libubacktrace/Makefile.in
  98116. --- uClibc-0.9.33.2/libubacktrace/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  98117. +++ uClibc-git/libubacktrace/Makefile.in 2014-06-02 17:40:35.178718427 +0200
  98118. @@ -25,11 +25,13 @@
  98119. -include $(libubacktrace_ARCH_DIR)/Makefile.arch
  98120. libubacktrace_SRC-y :=
  98121. -libubacktrace_SRC-$(UCLIBC_HAS_BACKTRACE) := backtrace.c backtracesyms.c backtracesymsfd.c
  98122. +libubacktrace_SRC-$(UCLIBC_HAS_BACKTRACE) := backtracesyms.c backtracesymsfd.c
  98123. +libubacktrace_SRC_SHARED-$(UCLIBC_HAS_BACKTRACE) := backtrace.c
  98124. # remove generic sources, if arch specific version is present
  98125. ifneq ($(strip $(libubacktrace_ARCH_SRC-y)),)
  98126. libubacktrace_SRC-y := $(filter-out $(notdir $(libubacktrace_ARCH_SRC-y)),$(libubacktrace_SRC-y))
  98127. +libubacktrace_SRC_SHARED-y := $(filter-out $(notdir $(libubacktrace_ARCH_SRC-y)),$(libubacktrace_SRC_SHARED-y))
  98128. endif
  98129. # -fasynchronous-unwind-tables is required for backtrace to work using dwarf2
  98130. @@ -43,12 +45,19 @@
  98131. libubacktrace_SRCS := $(patsubst %.c,$(libubacktrace_DIR)/%.c,$(libubacktrace_SRC-y))
  98132. libubacktrace_OBJS := $(patsubst $(libubacktrace_DIR)/%.c,$(libubacktrace_OUT)/%.o,$(libubacktrace_SRCS))
  98133. +libubacktrace_SHARED_SRCS := $(patsubst %.c,$(libubacktrace_DIR)/%.c,$(libubacktrace_SRC_SHARED-y))
  98134. +libubacktrace_SHARED_OBJS := $(patsubst $(libubacktrace_DIR)/%.c,$(libubacktrace_OUT)/%.o,$(libubacktrace_SHARED_SRCS))
  98135. +
  98136. +libubacktrace-shared-y := $(libubacktrace_SHARED_OBJS:.o=.oS)
  98137. +libubacktrace-static-y := $(libubacktrace_SHARED_OBJS)
  98138. +
  98139. ifeq ($(DOPIC),y)
  98140. -libubacktrace-a-y += $(libubacktrace_OBJS:.o=.os)
  98141. +libubacktrace-a-y += $(libubacktrace_OBJS:.o=.os) $(libubacktrace-static-y:.o=.os)
  98142. else
  98143. -libubacktrace-a-y += $(libubacktrace_OBJS)
  98144. +libubacktrace-a-y += $(libubacktrace_OBJS) $(libubacktrace-static-y)
  98145. endif
  98146. -libubacktrace-so-y += $(libubacktrace_OBJS:.o=.os)
  98147. +libubacktrace-so-y += $(libubacktrace_OBJS:.o=.os) $(libubacktrace-shared-y)
  98148. +
  98149. lib-a-$(UCLIBC_HAS_BACKTRACE) += $(top_builddir)lib/libubacktrace.a
  98150. lib-so-$(UCLIBC_HAS_BACKTRACE) += $(top_builddir)lib/libubacktrace.so
  98151. @@ -56,11 +65,7 @@
  98152. objclean-y += CLEAN_libubacktrace
  98153. ifeq ($(DOMULTI),n)
  98154. -ifeq ($(DOPIC),y)
  98155. -$(top_builddir)lib/libubacktrace.so: $(top_builddir)lib/libubacktrace.a $(libdl.depend)
  98156. -else
  98157. $(top_builddir)lib/libubacktrace.so: $(libubacktrace_OUT)/libubacktrace_so.a $(libdl.depend)
  98158. -endif
  98159. $(call link.so,$(libubacktrace_FULL_NAME),$(ABI_VERSION))
  98160. else
  98161. $(top_builddir)lib/libubacktrace.so: $(libubacktrace_OUT)/libubacktrace.oS | $(libdl.depend)
  98162. @@ -71,7 +76,7 @@
  98163. $(Q)$(RM) $@
  98164. $(do_ar)
  98165. -$(libubacktrace_OUT)/libubacktrace.oS: $(libubacktrace_SRCS) $(libubacktrace_ARCH_SRCS)
  98166. +$(libubacktrace_OUT)/libubacktrace.oS: $(libubacktrace_SRCS) $(libubacktrace_ARCH_SRCS) $(libubacktrace_SHARED_SRCS)
  98167. $(Q)$(RM) $@
  98168. $(compile-m)
  98169. diff -Nur uClibc-0.9.33.2/libutil/forkpty.c uClibc-git/libutil/forkpty.c
  98170. --- uClibc-0.9.33.2/libutil/forkpty.c 2012-05-15 09:20:09.000000000 +0200
  98171. +++ uClibc-git/libutil/forkpty.c 2014-06-02 17:40:35.178718427 +0200
  98172. @@ -13,9 +13,8 @@
  98173. Lesser General Public License for more details.
  98174. You should have received a copy of the GNU Lesser General Public
  98175. - License along with the GNU C Library; if not, write to the Free
  98176. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  98177. - 02111-1307 USA. */
  98178. + License along with the GNU C Library; if not, see
  98179. + <http://www.gnu.org/licenses/>. */
  98180. #include <sys/types.h>
  98181. #include <termios.h>
  98182. diff -Nur uClibc-0.9.33.2/libutil/logout.c uClibc-git/libutil/logout.c
  98183. --- uClibc-0.9.33.2/libutil/logout.c 2012-05-15 09:20:09.000000000 +0200
  98184. +++ uClibc-git/libutil/logout.c 2014-06-02 17:40:35.178718427 +0200
  98185. @@ -13,9 +13,8 @@
  98186. Lesser General Public License for more details.
  98187. You should have received a copy of the GNU Lesser General Public
  98188. - License along with the GNU C Library; if not, write to the Free
  98189. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  98190. - 02111-1307 USA. */
  98191. + License along with the GNU C Library; if not, see
  98192. + <http://www.gnu.org/licenses/>. */
  98193. #include <errno.h>
  98194. #include <string.h>
  98195. diff -Nur uClibc-0.9.33.2/libutil/openpty.c uClibc-git/libutil/openpty.c
  98196. --- uClibc-0.9.33.2/libutil/openpty.c 2012-05-15 09:20:09.000000000 +0200
  98197. +++ uClibc-git/libutil/openpty.c 2014-06-02 17:40:35.182718449 +0200
  98198. @@ -13,9 +13,8 @@
  98199. Lesser General Public License for more details.
  98200. You should have received a copy of the GNU Lesser General Public
  98201. - License along with the GNU C Library; if not, write to the Free
  98202. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  98203. - 02111-1307 USA. */
  98204. + License along with the GNU C Library; if not, see
  98205. + <http://www.gnu.org/licenses/>. */
  98206. #include <errno.h>
  98207. #include <fcntl.h>
  98208. diff -Nur uClibc-0.9.33.2/Makefile.help uClibc-git/Makefile.help
  98209. --- uClibc-0.9.33.2/Makefile.help 2012-05-15 09:20:09.000000000 +0200
  98210. +++ uClibc-git/Makefile.help 2014-06-02 17:40:33.670710081 +0200
  98211. @@ -27,6 +27,7 @@
  98212. @echo ' menuconfig - interactive curses-based configurator'
  98213. @echo ' oldconfig - resolve any unresolved symbols in .config'
  98214. @echo ' silentoldconfig - resolve any unresolved symbols in .config, silently'
  98215. + @echo ' savedefconfig - Save current config (minimal config)'
  98216. @echo ' randconfig - generate a random .config'
  98217. @$(if $(arch-defconfigs), \
  98218. @echo ''; \
  98219. @@ -58,7 +59,7 @@
  98220. @echo ' ARCH= - Use given arch for config targets'
  98221. @echo ' SHELL= - Shell to use for make'
  98222. @echo ' BUILD_CFLAGS= - extra CFLAGS for compiling host binaries'
  98223. - @echo ' BUILD_LFLAGS= - extra LDFLAGS for linking host binaries'
  98224. + @echo ' BUILD_LDFLAGS= - extra LDFLAGS for linking host binaries'
  98225. @echo ' CONFIG_SHELL= - Shell to use for menuconfig'
  98226. @echo
  98227. @echo ' PREFIX= - Prepended prefix'
  98228. diff -Nur uClibc-0.9.33.2/Makefile.in uClibc-git/Makefile.in
  98229. --- uClibc-0.9.33.2/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  98230. +++ uClibc-git/Makefile.in 2014-06-02 17:40:33.670710081 +0200
  98231. @@ -8,18 +8,8 @@
  98232. #--------------------------------------------------------------
  98233. # You shouldn't need to mess with anything beyond this point...
  98234. #--------------------------------------------------------------
  98235. -clean_targets := clean realclean distclean \
  98236. - objclean-y headers_clean-y CLEAN_utils
  98237. -noconfig_targets := menuconfig config oldconfig silentoldconfig randconfig \
  98238. - defconfig allyesconfig allnoconfig \
  98239. - release dist tags help
  98240. -
  98241. include $(top_srcdir)Rules.mak
  98242. sub_headers := headers
  98243. -ifndef KCONFIG_CONFIG
  98244. -KCONFIG_CONFIG := $(top_builddir).config
  98245. -endif
  98246. -export KCONFIG_CONFIG
  98247. ifeq ($(HAVE_DOT_CONFIG),y)
  98248. @@ -56,6 +46,7 @@
  98249. conf := $(top_builddir)extra/config/conf
  98250. mconf := $(top_builddir)extra/config/mconf
  98251. +nconf := $(top_builddir)extra/config/nconf
  98252. ifeq ($(HAVE_DOT_CONFIG),y)
  98253. # If the .config changes then we have to make sure that our includes are
  98254. @@ -63,9 +54,9 @@
  98255. # have uClibc_config.h as prerequisite but since we _symlink_ the headers
  98256. # and do not (?) want to rely on 'make -L' we better update them right here,
  98257. # on spot to save us from alot of hazzle.
  98258. -$(top_builddir)include/bits/uClibc_config.h: $(conf) $(KCONFIG_CONFIG) $(top_srcdir)extra/scripts/conf-header.sh | $(top_builddir)include/bits $(top_builddir)include/config
  98259. +$(top_builddir)include/bits/uClibc_config.h: $(conf) $(KCONFIG_CONFIG) $(top_srcdir)extra/scripts/conf-header.sh | $(top_builddir)include/bits
  98260. @$(disp_gen)
  98261. - $(Q)@$< -s $(top_srcdir)extra/Configs/Config.in
  98262. + $(Q)$< -s $(Kconfig)
  98263. $(Q)$(top_srcdir)extra/scripts/conf-header.sh $(KCONFIG_CONFIG) > $@
  98264. $(Q)$(MAKE) headers-y
  98265. @@ -76,6 +67,10 @@
  98266. $(top_builddir)include/config/linuxthreads/old.h $(top_builddir)include/config/linuxthreads/new.h:
  98267. @true
  98268. +$(top_builddir)include/generated/unifdef_config.h: $(top_builddir)include/bits/uClibc_config.h | $(top_builddir)include/generated
  98269. + @$(disp_gen)
  98270. + $(Q)$(SED) -e '1,3d' $^ > $@
  98271. +
  98272. # For the moment, we have to keep re-running this target
  98273. # because the fix includes scripts rely on pre-processers
  98274. # in order to generate the headers correctly :(. That
  98275. @@ -87,11 +82,21 @@
  98276. export header_extra_args = -n
  98277. endif
  98278. HEADERS_BITS_COMMON := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/common/bits/*.h))
  98279. +ifneq ($(ARCH_HAS_DEPRECATED_SYSCALLS),y)
  98280. +HEADERS_BITS_COMMON_NO_LEGACY := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/common-generic/bits/*.h))
  98281. +HEADERS_BITS_COMMON := $(filter-out $(HEADERS_BITS_COMMON_NO_LEGACY),$(HEADERS_BITS_COMMON))
  98282. +ALL_HEADERS_BITS_COMMON_NO_LEGACY := $(addprefix $(top_builddir)include/bits/,$(HEADERS_BITS_COMMON_NO_LEGACY))
  98283. +endif
  98284. +
  98285. HEADERS_BITS_ARCH := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/bits/*.h))
  98286. HEADERS_BITS_SUBARCH :=
  98287. ifneq ($(TARGET_SUBARCH),)
  98288. HEADERS_BITS_SUBARCH := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/bits/$(TARGET_SUBARCH)/*.h))
  98289. endif
  98290. +ifneq ($(HEADERS_BITS_PTHREAD),)
  98291. +HEADERS_BITS_ARCH := $(filter-out $(HEADERS_BITS_PTHREAD),$(HEADERS_BITS_ARCH))
  98292. +HEADERS_BITS_SUBARCH:= $(filter-out $(HEADERS_BITS_PTHREAD),$(HEADERS_BITS_SUBARCH))
  98293. +endif
  98294. HEADERS_BITS_COMMON := $(filter-out $(HEADERS_BITS_ARCH) $(HEADERS_BITS_SUBARCH) $(HEADERS_BITS_PTHREAD),$(HEADERS_BITS_COMMON))
  98295. HEADERS_SYS_COMMON := $(notdir $(wildcard $(top_srcdir)libc/sysdeps/linux/common/sys/*.h))
  98296. @@ -99,8 +104,11 @@
  98297. HEADERS_SYS_COMMON := $(filter-out $(HEADERS_SYS_ARCH),$(HEADERS_SYS_COMMON))
  98298. ALL_HEADERS_COMMON := $(top_builddir)include/fpu_control.h \
  98299. + $(top_builddir)include/jmpbuf-offsets.h \
  98300. + $(top_builddir)include/jmpbuf-unwind.h \
  98301. $(top_builddir)include/dl-osinfo.h \
  98302. - $(top_builddir)include/hp-timing.h
  98303. + $(top_builddir)include/hp-timing.h \
  98304. + $(top_builddir)include/not-cancel.h
  98305. ALL_HEADERS_BITS_COMMON := $(addprefix $(top_builddir)include/bits/,$(HEADERS_BITS_COMMON))
  98306. ALL_HEADERS_BITS_ARCH := $(addprefix $(top_builddir)include/bits/,$(HEADERS_BITS_ARCH))
  98307. ifneq ($(TARGET_SUBARCH),)
  98308. @@ -120,13 +128,17 @@
  98309. $(ALL_HEADERS_SYS_ARCH) \
  98310. $(ALL_HEADERS_BITS_PTHREAD)
  98311. -$(top_builddir)include/fpu_control.h:
  98312. +ifneq ($(ARCH_HAS_DEPRECATED_SYSCALLS),y)
  98313. + target-headers-sysdep += $(ALL_HEADERS_BITS_COMMON_NO_LEGACY)
  98314. +endif
  98315. +
  98316. +$(top_builddir)include/fpu_control.h $(top_builddir)include/jmpbuf-offsets.h $(top_builddir)include/jmpbuf-unwind.h:
  98317. @$(disp_ln)
  98318. $(Q)[ -r $(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/$(@F) ] && \
  98319. $(LN) -fs $(call rel_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/$(@F) $@ || \
  98320. $(LN) -fs $(call rel_srcdir)libc/sysdeps/linux/common/$(@F) $@
  98321. -$(top_builddir)include/dl-osinfo.h $(top_builddir)include/hp-timing.h:
  98322. +$(top_builddir)include/dl-osinfo.h $(top_builddir)include/hp-timing.h $(top_builddir)include/not-cancel.h:
  98323. $(do_ln) $(call rel_srcdir)libc/sysdeps/linux/common/$(@F) $@
  98324. $(ALL_HEADERS_BITS_COMMON):
  98325. @@ -135,6 +147,11 @@
  98326. $(ALL_HEADERS_BITS_ARCH):
  98327. $(do_ln) $(call rel_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/bits/$(@F) $@
  98328. +ifneq ($(ARCH_HAS_DEPRECATED_SYSCALLS),y)
  98329. +$(ALL_HEADERS_BITS_COMMON_NO_LEGACY):
  98330. + $(do_ln) $(call rel_srcdir)libc/sysdeps/linux/common-generic/bits/$(@F) $@
  98331. +endif
  98332. +
  98333. ifneq ($(TARGET_SUBARCH),)
  98334. $(ALL_HEADERS_BITS_SUBARCH):
  98335. $(do_ln) $(call rel_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)/bits/$(TARGET_SUBARCH)/$(@F) $@
  98336. @@ -155,6 +172,9 @@
  98337. HEADERCLEAN_common:
  98338. $(do_rm) $(ALL_HEADERS_COMMON)
  98339. headers_clean-y += HEADERCLEAN_common
  98340. +HEADERCLEAN_config:
  98341. + $(do_rm) -r $(addprefix $(top_builddir)include/,config generated)
  98342. +menuconfig-clean-y: HEADERCLEAN_config
  98343. # The headers. Arch specific headers are specified via ARCH_HEADERS in
  98344. # libc/sysdeps/linux/$(TARGET_ARCH)/Makefile.arch which appends those via
  98345. @@ -170,27 +190,22 @@
  98346. $(top_builddir)include/bits/sysnum.h: $(top_srcdir)extra/scripts/gen_bits_syscall_h.sh | $(top_builddir)include/bits
  98347. @$(disp_gen)
  98348. $(Q)set -e; \
  98349. - tmp=`mktemp $(top_builddir)include/bits/sysnum.h.XXXXXX 2>/dev/null || true`; \
  98350. - [ -z "$$tmp" ] && tmp='$(top_builddir)include/bits/sysnum.h.new'; \
  98351. - KERNEL_HEADERS="${KERNEL_HEADERS}" top_builddir="$(top_builddir)" CC="$(CC) $(CPU_CFLAGS)" $(SHELL) $< > $$tmp; \
  98352. - if cmp $(top_builddir)include/bits/sysnum.h $$tmp >/dev/null 2>&1; then \
  98353. - $(RM) $$tmp; \
  98354. - else \
  98355. - mv -f $$tmp $(top_builddir)include/bits/sysnum.h; \
  98356. - fi
  98357. + KERNEL_HEADERS="${KERNEL_HEADERS}" CC="$(CC) $(CPU_CFLAGS)" $(SHELL) $< > $@.new; \
  98358. + cmp -s $@ $@.new && $(RM) $@.new || mv -f $@.new $@
  98359. @# Ugly linux specific hack..
  98360. $(Q)if grep -q __NR_ $@; then true; else \
  98361. rm -f $@; \
  98362. echo "ERROR: Could not generate syscalls."; \
  98363. - echo "Make sure that you have proper kernel headers."; \
  98364. - echo "Your .config in KERNEL_HEADERS=\"\" was set to:"; \
  98365. + echo "Make sure that you have properly installed kernel headers."; \
  98366. + echo "Your .config KERNEL_HEADERS=\"\" was set to:"; \
  98367. echo "${KERNEL_HEADERS}"; \
  98368. exit 1; \
  98369. fi
  98370. .PHONY: $(LOCAL_INSTALL_PATH)
  98371. $(LOCAL_INSTALL_PATH):
  98372. - $(Q)$(MAKE) PREFIX=$(shell pwd)/$(LOCAL_INSTALL_PATH) RUNTIME_PREFIX=/ \
  98373. + $(Q)$(MAKE) PREFIX=$(LOCAL_INSTALL_PATH) \
  98374. + RUNTIME_PREFIX=/ \
  98375. DEVEL_PREFIX=/usr/ \
  98376. HOSTCC="$(HOSTCC)" \
  98377. install
  98378. @@ -210,16 +225,27 @@
  98379. # a "y" here means the feature is enabled and so we should *not* rm it.
  98380. # if the option expands to nothing though, we can punt the headers.
  98381. HEADERS_RM- := \
  98382. + config \
  98383. + generated \
  98384. + internal \
  98385. + cancel.h \
  98386. dl-osinfo.h \
  98387. + jmpbuf-offsets.h \
  98388. + jmpbuf-unwind.h \
  98389. hp-timing.h \
  98390. + not-cancel.h \
  98391. _lfs_64.h \
  98392. bits/uClibc_arch_features.h \
  98393. bits/kernel_sigaction.h \
  98394. bits/kernel_stat.h \
  98395. bits/kernel_types.h \
  98396. + bits/libc-lock.h \
  98397. + bits/stdio-lock.h \
  98398. bits/syscalls.h \
  98399. bits/syscalls-common.h \
  98400. bits/uClibc_fpmax.h \
  98401. + bits/uClibc_mutex.h \
  98402. + bits/uClibc_pthread.h \
  98403. bits/uClibc_uintmaxtostr.h \
  98404. bits/uClibc_uwchar.h \
  98405. bits/uClibc_va_copy.h \
  98406. @@ -259,18 +285,23 @@
  98407. HEADERS_RM-$(UCLIBC_HAS_REGEX) += regex.h regexp.h
  98408. HEADERS_RM-$(UCLIBC_HAS_RPC) += rpc
  98409. HEADERS_RM-$(UCLIBC_HAS_SHADOW) += shadow.h
  98410. -HEADERS_RM-$(UCLIBC_HAS_SOCKET) += sys/socket.h bits/socket.h sys/socketvar.h
  98411. +HEADERS_RM-$(UCLIBC_HAS_SOCKET) += sys/socket.h bits/socket.h sys/socketvar.h bits/socket_type.h
  98412. HEADERS_RM-$(UCLIBC_HAS_SYSLOG) += syslog.h sys/syslog.h bits/syslog*.h
  98413. HEADERS_RM-$(UCLIBC_HAS_THREADS) += *thread*.h semaphore.h \
  98414. bits/*thread*.h \
  98415. bits/initspin.h
  98416. HEADERS_RM-$(UCLIBC_HAS_THREADS_NATIVE) += atomic.h bits/atomic.h
  98417. +HEADERS_RM-$(UCLIBC_HAS_OBSTACK) += obstack.h
  98418. HEADERS_RM-$(UCLIBC_HAS_UTMPX) += bits/utmpx.h utmpx.h
  98419. HEADERS_RM-$(UCLIBC_HAS_WCHAR) += wchar.h wctype.h
  98420. HEADERS_RM-$(UCLIBC_HAS_WORDEXP) += wordexp.h
  98421. HEADERS_RM-$(UCLIBC_HAS_XATTR) += sys/xattr.h
  98422. HEADERS_RM-$(UCLIBC_HAS_XLOCALE) += xlocale.h
  98423. -HEADERS_RM-$(UCLIBC_LINUX_SPECIFIC) += sys/eventfd.h sys/fsuid.h \
  98424. +HEADERS_RM-$(UCLIBC_LINUX_SPECIFIC) += \
  98425. + sys/cachectl.h \
  98426. + bits/eventfd.h \
  98427. + sys/eventfd.h \
  98428. + sys/fsuid.h \
  98429. bits/inotify.h \
  98430. sys/inotify.h \
  98431. sys/kdaemon.h \
  98432. @@ -288,11 +319,13 @@
  98433. sys/sysinfo.h \
  98434. bits/timerfd.h \
  98435. sys/timerfd.h \
  98436. + sys/sysmips.h \
  98437. sys/vfs.h
  98438. HEADERS_RM-$(UCLIBC_SUPPORT_AI_ADDRCONFIG) += ifaddrs.h
  98439. HEADERS_RM-$(UCLIBC_SV4_DEPRECATED) += ustat.h sys/ustat.h bits/ustat.h
  98440. HEADERS_RM-$(UCLIBC_SUSV3_LEGACY) += sys/timeb.h regexp.h
  98441. HEADERS_RM-$(UCLIBC_SUSV4_LEGACY) += utime.h ucontext.h
  98442. +HEADERS_RM-$(UCLIBC_HAS_ADVANCED_REALTIME) += spawn.h
  98443. ifneq ($(findstring install,$(MAKECMDGOALS)),)
  98444. $(addprefix $(PREFIX)$(DEVEL_PREFIX),include $(MULTILIB_DIR)):
  98445. @@ -303,7 +336,9 @@
  98446. $(do_mkdir)
  98447. endif
  98448. endif
  98449. -install_headers: headers $(top_builddir)extra/scripts/unifdef | $(PREFIX)$(DEVEL_PREFIX)include
  98450. +
  98451. +
  98452. +install_headers: headers $(top_builddir)extra/scripts/unifdef $(top_builddir)include/generated/unifdef_config.h | $(PREFIX)$(DEVEL_PREFIX)include
  98453. @$(call disp_install,"include -> $(PREFIX)$(DEVEL_PREFIX)include")
  98454. $(Q)top_builddir=$(top_builddir) \
  98455. $(top_srcdir)extra/scripts/install_headers.sh \
  98456. @@ -346,12 +381,7 @@
  98457. else
  98458. -$(INSTALL) -m 755 $(top_builddir)lib/libc.so $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/
  98459. endif
  98460. -ifeq ($(UCLIBC_HAS_BACKTRACE),y)
  98461. -# Add the AS_NEEDED entry for libubacktrace.so
  98462. - if [ -f $(top_builddir)lib/libc.so -a -f $(PREFIX)$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(SHARED_LIBNAME) ] ; then \
  98463. - echo "GROUP ( $(UBACKTRACE_ASNEEDED) )" >> $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libc.so; \
  98464. - fi
  98465. -endif
  98466. + echo "$(UBACKTRACE_ASNEEDED)" >> $(PREFIX)$(DEVEL_PREFIX)$(MULTILIB_DIR)/libc.so
  98467. ifeq ($(UCLIBC_HAS_THREADS),y)
  98468. ifneq ($(LINUXTHREADS_OLD),y)
  98469. ifeq ($(HARDWIRED_ABSPATH),y)
  98470. @@ -422,49 +452,55 @@
  98471. install_hostutils: hostutils
  98472. $(Q)$(MAKE) CROSS_COMPILE="$(CROSS_COMPILE)" CC="$(CC)" HOSTCC="$(HOSTCC)" DOTHOST=.host -C utils utils_install
  98473. -$(addprefix $(top_builddir),include include/bits include/sys include/config lib extra/config/lxdialog extra/locale extra/scripts $(subdirs)):
  98474. +$(addprefix $(top_builddir),include include/bits include/sys include/config include/generated lib extra/config/lxdialog extra/locale extra/scripts $(subdirs)):
  98475. $(do_mkdir)
  98476. # configuration
  98477. # ---------------------------------------------------------------------------
  98478. -$(conf) $(mconf): | $(top_builddir)include/config $(top_builddir)extra/config/lxdialog
  98479. +$(conf) $(mconf) $(nconf): | $(top_builddir)include/config $(top_builddir)include/generated $(top_builddir)extra/config/lxdialog
  98480. $(Q)$(MAKE) -C extra/config $(@F)
  98481. arch-defconfigs := $(notdir $(wildcard $(top_srcdir)extra/Configs/defconfigs/$(ARCH)/*_defconfig))
  98482. menuconfig: $(mconf)
  98483. - $(Q)$< extra/Configs/Config.in
  98484. -
  98485. + $(Q)$< $(Kconfig)
  98486. config: $(conf)
  98487. - $(Q)$< extra/Configs/Config.in
  98488. -
  98489. -oldconfig: $(conf)
  98490. - $(Q)$< -o extra/Configs/Config.in
  98491. + $(Q)$< $(Kconfig)
  98492. +nconfig: $(nconf)
  98493. + $(Q)$< $(Kconfig)
  98494. +oldaskconfig: $(conf)
  98495. + $(Q)$< -a $(Kconfig)
  98496. silentoldconfig: $(conf)
  98497. - $(Q)$< -s extra/Configs/Config.in
  98498. -
  98499. -randconfig: $(conf)
  98500. - $(Q)$< -r extra/Configs/Config.in
  98501. -
  98502. + $(Q)$< -s $(Kconfig)
  98503. +oldconfig: $(conf)
  98504. + $(Q)$< -o $(Kconfig)
  98505. +allnoconfig: $(conf)
  98506. + $(Q)$< -n $(Kconfig)
  98507. allyesconfig: $(conf)
  98508. - $(Q)$< -y extra/Configs/Config.in
  98509. + $(Q)$< -y $(Kconfig)
  98510. $(SED) -i -e "s/^DODEBUG=.*/# DODEBUG is not set/" \
  98511. -e "s/^DOASSERTS=.*/# DOASSERTS is not set/" \
  98512. -e "s/^SUPPORT_LD_DEBUG_EARLY=.*/# SUPPORT_LD_DEBUG_EARLY is not set/" \
  98513. -e "s/^SUPPORT_LD_DEBUG=.*/# SUPPORT_LD_DEBUG is not set/" \
  98514. -e "s/^UCLIBC_MJN3_ONLY=.*/# UCLIBC_MJN3_ONLY is not set/" \
  98515. $(KCONFIG_CONFIG)
  98516. - $(Q)$< -o extra/Configs/Config.in
  98517. -
  98518. -allnoconfig: $(conf)
  98519. - $(Q)$< -n extra/Configs/Config.in
  98520. -
  98521. -defconfig: $(conf)
  98522. - $(Q)$< -D extra/Configs/defconfigs/$(ARCH)/$@ extra/Configs/Config.in
  98523. + $(Q)$< -o $(Kconfig)
  98524. +alldefconfig: $(conf)
  98525. + $(Q)$< -A $(Kconfig)
  98526. +randconfig: $(conf)
  98527. + $(Q)$< -r $(Kconfig)
  98528. -%_defconfig: $(conf)
  98529. - $(Q)$< -D extra/Configs/defconfigs/$(ARCH)/$@ extra/Configs/Config.in
  98530. +cmd_defconfig = $(Q)$< -D extra/Configs/defconfigs/$(ARCH)/$@ $(Kconfig)
  98531. +defconfig: $(conf) ; $(cmd_defconfig)
  98532. +%_defconfig: $(conf) ; $(cmd_defconfig)
  98533. +
  98534. +savedefconfig: $(conf)
  98535. + $(Q)$< -S defconfig $(Kconfig)
  98536. +listnewconfig: $(conf)
  98537. + $(Q)$< -l $(Kconfig)
  98538. +olddefconfig: $(conf)
  98539. + $(Q)$< -d $(Kconfig)
  98540. menuconfig-clean-y:
  98541. $(Q)$(MAKE) -C extra/config CLEAN_extra/config
  98542. @@ -484,11 +520,11 @@
  98543. $(Q)$(RM) $(top_builddir)extra/scripts/unifdef
  98544. $(Q)$(RM) -r $(LOCAL_INSTALL_PATH)
  98545. -distclean: clean
  98546. +distclean: realclean
  98547. -find . \( -name core -o -name \*.orig -o -name \*~ -o -name .\*.dep \) -exec $(RM) {} \;
  98548. $(RM) $(top_builddir).config $(top_builddir).config.old $(top_builddir).config.cmd
  98549. - $(RM) $(top_builddir)extra/locale/*.tgz
  98550. - $(MAKE) -C extra/config distclean
  98551. + $(Q)$(RM) $(top_builddir)extra/locale/*.tgz
  98552. + @$(MAKE) -C extra/config distclean
  98553. dist release:
  98554. $(RM) ../uClibc-$(VERSION).tar
  98555. @@ -499,7 +535,9 @@
  98556. du -b ../uClibc-$(VERSION).tar.{bz2,xz}
  98557. test check: test_compile
  98558. - $(Q)$(MAKE) -C test
  98559. + $(Q)$(MAKE) -C test \
  98560. + $(if $(O),top_builddir=$(O)/)
  98561. test_compile: $(LOCAL_INSTALL_PATH)
  98562. - $(Q)$(MAKE) -C test compile
  98563. + $(Q)$(MAKE) -C test compile \
  98564. + $(if $(O),top_builddir=$(O)/)
  98565. diff -Nur uClibc-0.9.33.2/Makerules uClibc-git/Makerules
  98566. --- uClibc-0.9.33.2/Makerules 2012-05-15 09:20:09.000000000 +0200
  98567. +++ uClibc-git/Makerules 2014-06-02 17:40:33.670710081 +0200
  98568. @@ -50,6 +50,10 @@
  98569. endif
  98570. $(shared_objs) $(ar_objs): | $(sub_headers)
  98571. +define objects_with_syms
  98572. + $(foreach o,$(2),$(if $(shell $(NM) $(1) $(o) | grep .),$(o)))
  98573. +endef
  98574. +
  98575. headers-y: $(headers-y)
  98576. @true
  98577. @@ -243,7 +247,7 @@
  98578. cmd_compile-m = $(CC) $^ -c -o $@ $(CFLAGS) $(CFLAGS-$(suffix $@)) $(CFLAGS-$(notdir $(@D))) $(CFLAGS-$(notdir $@)) $(sort $(foreach d,$(^:$(top_srcdir)=),$(collect_multi_flags)))
  98579. cmd_strip = $(STRIPTOOL) $(STRIP_FLAGS) $^
  98580. cmd_t_strip = $(STRIPTOOL) $(STRIP_FLAGS) $@
  98581. -cmd_ar = $(AR) $(ARFLAGS) $@ $^
  98582. +cmd_ar = $(AR) $(ARFLAGS) $@ $(call objects_with_syms,,$^)
  98583. define do_ln
  98584. @$(disp_ln)
  98585. @@ -300,7 +304,7 @@
  98586. -Wl,-z,relro -Wl,--hash-style=gnu -Wl,-z,defs \
  98587. -Wl,--verbose 2>&1 | LC_ALL=C \
  98588. sed -e '/^=========/,/^=========/!d;/^=========/d' \
  98589. - -e 's/\. = .* + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' > $@.lds
  98590. + -e 's/\. = .* + SIZEOF_HEADERS;/& $(SYMBOL_PREFIX)_begin = . - SIZEOF_HEADERS;/' > $@.lds
  98591. endef
  98592. define link.so
  98593. @@ -373,14 +377,9 @@
  98594. $(top_builddir)lib/interp.c: | $(top_builddir)lib
  98595. $(Q)echo "/* Force shared libraries to know about the correct library loader */" > $@.tmp
  98596. $(Q)echo "#include <features.h>" >> $@.tmp
  98597. -ifeq ($(HARDWIRED_ABSPATH),y)
  98598. $(Q)echo "const char __dl_ldso__[] attribute_hidden __attribute__ ((weak)) __attribute__ ((section " \
  98599. "(\".interp\"))) =\""$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(UCLIBC_LDSO)"\";" >> $@.tmp
  98600. $(Q)$(SED) -i -e 's://:/:g' $@.tmp
  98601. -else
  98602. - $(Q)echo "const char __dl_ldso__[] attribute_hidden __attribute__ ((weak)) __attribute__ ((section " \
  98603. - "(\".interp\"))) =\""$(UCLIBC_LDSO)"\";" >> $@.tmp
  98604. -endif
  98605. $(Q)mv $@.tmp $@
  98606. $(interp): $(top_builddir)lib/interp.c | $(sub_headers)
  98607. @@ -470,6 +469,8 @@
  98608. $(libm-a-y) $(libm-so-y) \
  98609. $(libpthread-a-y) $(libpthread-so-y) $(libpthread-nonshared-y) \
  98610. $(libthread_db-a-y) $(libthread_db-so-y) $(libpthread-generated-y) \
  98611. + $(START_FILE-libpthread.so) $(END_FILE-libpthread.so) \
  98612. + $(PTHREAD_INITFINI:.c=.s) \
  98613. $(librt-a-y) $(librt-so-y) $(libresolv-a-y) $(libresolv-so-y) \
  98614. $(libcrypt-a-y) $(libcrypt-so-y) $(libutil-a-y) $(libutil-so-y) \
  98615. $(libnsl-a-y) $(libnsl-so-y) $(ldso-y) $(libdl-a-y) $(libdl-so-y) \
  98616. diff -Nur uClibc-0.9.33.2/Rules.mak uClibc-git/Rules.mak
  98617. --- uClibc-0.9.33.2/Rules.mak 2012-05-15 09:20:09.000000000 +0200
  98618. +++ uClibc-git/Rules.mak 2014-06-02 17:40:33.670710081 +0200
  98619. @@ -27,6 +27,15 @@
  98620. # file named ".config". Don't mess with this file unless
  98621. # you know what you are doing.
  98622. +clean_targets := clean realclean distclean \
  98623. + objclean-y headers_clean-y CLEAN_utils
  98624. +noconfig_targets := menuconfig config nconfig \
  98625. + oldaskconfig silentoldconfig oldconfig allnoconfig allyesconfig \
  98626. + alldefconfig randconfig defconfig savedefconfig listnewconfig \
  98627. + olddefconfig \
  98628. + xconfig gconfig update-po-config mconf qconf gconf nconf conf \
  98629. + release dist tags help
  98630. +
  98631. #-----------------------------------------------------------
  98632. # If you are running a cross compiler, you will want to set
  98633. @@ -63,7 +72,7 @@
  98634. # Select the compiler needed to build binaries for your development system
  98635. HOSTCC = gcc
  98636. -BUILD_CFLAGS = -Os -Wall
  98637. +BUILD_CFLAGS = -Os
  98638. #---------------------------------------------------------
  98639. # Nothing beyond this point should ever be touched by mere
  98640. @@ -74,10 +83,25 @@
  98641. qstrip = $(strip $(subst ",,$(1)))
  98642. #"))
  98643. +# kconfig stuff
  98644. +KCONFIG_CONFIG ?= $(top_builddir).config
  98645. +KCONFIG_CONFIG := $(abspath $(KCONFIG_CONFIG))
  98646. +export KCONFIG_CONFIG
  98647. +KCONFIG_AUTOCONFIG := $(dir $(KCONFIG_CONFIG))include/config/auto.conf
  98648. +export KCONFIG_AUTOCONFIG
  98649. +KCONFIG_TRISTATE := $(dir $(KCONFIG_CONFIG))include/config/tristate.conf
  98650. +export KCONFIG_TRISTATE
  98651. +srctree := $(abspath $(top_srcdir))
  98652. +export srctree
  98653. +KCONFIG_AUTOHEADER := $(dir $(KCONFIG_CONFIG))include/generated/autoconf.h
  98654. +export KCONFIG_AUTOHEADER
  98655. +Kconfig := $(abspath $(top_srcdir)extra/Configs/Config.in)
  98656. +
  98657. # Pull in the user's uClibc configuration
  98658. -ifeq ($(filter $(noconfig_targets),$(MAKECMDGOALS)),)
  98659. --include $(top_builddir).config
  98660. +ifeq ($(filter $(noconfig_targets) clean CLEAN_%,$(MAKECMDGOALS)),)
  98661. +-include $(KCONFIG_CONFIG)
  98662. endif
  98663. +
  98664. TARGET_ARCH:=$(call qstrip,$(TARGET_ARCH))
  98665. ifeq ($(TARGET_ARCH),)
  98666. ARCH ?= $(shell uname -m | $(SED) -e s/i.86/i386/ \
  98667. @@ -93,19 +117,20 @@
  98668. export ARCH
  98669. # Make certain these contain a final "/", but no "//"s.
  98670. -TARGET_SUBARCH:=$(call qstrip,$(TARGET_SUBARCH))
  98671. -RUNTIME_PREFIX:=$(strip $(subst //,/, $(subst ,/, $(call qstrip,$(RUNTIME_PREFIX)))))
  98672. -DEVEL_PREFIX:=$(strip $(subst //,/, $(subst ,/, $(call qstrip,$(DEVEL_PREFIX)))))
  98673. -MULTILIB_DIR:=$(strip $(subst //,/, $(subst ,/, $(call qstrip,$(MULTILIB_DIR)))))
  98674. -KERNEL_HEADERS:=$(strip $(subst //,/, $(subst ,/, $(call qstrip,$(KERNEL_HEADERS)))))
  98675. +scrub_path = $(strip $(subst //,/, $(subst ,/, $(call qstrip,$(1)))))
  98676. +TARGET_SUBARCH := $(call qstrip,$(TARGET_SUBARCH))
  98677. +RUNTIME_PREFIX := $(call scrub_path,$(RUNTIME_PREFIX))
  98678. +DEVEL_PREFIX := $(call scrub_path,$(DEVEL_PREFIX))
  98679. +MULTILIB_DIR := $(call scrub_path,$(MULTILIB_DIR))
  98680. +KERNEL_HEADERS := $(call scrub_path,$(KERNEL_HEADERS))
  98681. export RUNTIME_PREFIX DEVEL_PREFIX KERNEL_HEADERS MULTILIB_DIR
  98682. # Now config hard core
  98683. MAJOR_VERSION := 0
  98684. MINOR_VERSION := 9
  98685. -SUBLEVEL := 33
  98686. -EXTRAVERSION :=.2
  98687. +SUBLEVEL := 34
  98688. +EXTRAVERSION :=-git
  98689. VERSION := $(MAJOR_VERSION).$(MINOR_VERSION).$(SUBLEVEL)
  98690. ABI_VERSION := $(MAJOR_VERSION)
  98691. ifneq ($(EXTRAVERSION),)
  98692. @@ -118,13 +143,19 @@
  98693. LIBC := libc
  98694. SHARED_LIBNAME := $(LIBC).so.$(ABI_VERSION)
  98695. UBACKTRACE_DSO := libubacktrace.so.$(ABI_VERSION)
  98696. -ifneq ($(findstring $(TARGET_ARCH) , hppa64 ia64 mips64 powerpc64 s390x sparc64 x86_64 ),)
  98697. +
  98698. +UCLIBC_LDSO_NAME := ld-uClibc
  98699. +ARCH_NATIVE_BIT := 32
  98700. +ifneq ($(findstring $(TARGET_ARCH) , hppa64 ia64 powerpc64 s390x sparc64 x86_64 ),)
  98701. UCLIBC_LDSO_NAME := ld64-uClibc
  98702. ARCH_NATIVE_BIT := 64
  98703. else
  98704. -UCLIBC_LDSO_NAME := ld-uClibc
  98705. -ARCH_NATIVE_BIT := 32
  98706. +ifeq ($(CONFIG_MIPS_N64_ABI),y)
  98707. +UCLIBC_LDSO_NAME := ld64-uClibc
  98708. +ARCH_NATIVE_BIT := 64
  98709. +endif
  98710. endif
  98711. +
  98712. UCLIBC_LDSO := $(UCLIBC_LDSO_NAME).so.$(ABI_VERSION)
  98713. NONSHARED_LIBNAME := uclibc_nonshared.a
  98714. libc := $(top_builddir)lib/$(SHARED_LIBNAME)
  98715. @@ -170,7 +201,7 @@
  98716. if $(CC) -Wa,$(1) -Wa,-Z -c -o /dev/null -xassembler /dev/null > /dev/null 2>&1; \
  98717. then echo "-Wa,$(1)"; fi)
  98718. check_ld=$(shell \
  98719. - if $(LD) $(1) -o /dev/null -b binary /dev/null > /dev/null 2>&1; \
  98720. + if $(CC) $(LDFLAG-fuse-ld) -Wl,$(1) $(CFLAG_-nostdlib) -o /dev/null -Wl,-b,binary /dev/null > /dev/null 2>&1; \
  98721. then echo "$(1)"; fi)
  98722. # Use variable indirection here so that we can have variable
  98723. @@ -221,6 +252,10 @@
  98724. ARFLAGS:=cr
  98725. +# Note: The check for -nostdlib has to be before all calls to check_ld
  98726. +$(eval $(call check-gcc-var,-nostdlib))
  98727. +LDFLAG-fuse-ld := $(filter -fuse-ld=%,$(EXTRA_UCLIBC_FLAGS))
  98728. +# deliberately not named CFLAG-fuse-ld since unchecked and from user
  98729. # Flags in OPTIMIZATION are used only for non-debug builds
  98730. @@ -246,6 +281,7 @@
  98731. GCC_MAJOR_VER ?= $(word 1,$(GCC_VER))
  98732. #GCC_MINOR_VER ?= $(word 2,$(GCC_VER))
  98733. +ifneq ($(TARGET_ARCH),arc)
  98734. ifeq ($(GCC_MAJOR_VER),4)
  98735. # shrinks code, results are from 4.0.2
  98736. # 0.36%
  98737. @@ -258,7 +294,7 @@
  98738. $(eval $(call check-gcc-var,-fno-strength-reduce))
  98739. OPTIMIZATION += $(CFLAG_-fno-strength-reduce)
  98740. endif
  98741. -
  98742. +endif
  98743. # CPU_CFLAGS-y contain options which are not warnings,
  98744. # not include or library paths, and not optimizations.
  98745. @@ -311,7 +347,9 @@
  98746. $(eval $(call check-gcc-var,-fomit-frame-pointer))
  98747. OPTIMIZATION += $(CFLAG_-fomit-frame-pointer)
  98748. -ifeq ($(CONFIG_386)$(CONFIG_486)$(CONFIG_586)$(CONFIG_586MMX),y)
  98749. +ifeq ($(CONFIG_386)$(CONFIG_486)$(CONFIG_586),y)
  98750. + # TODO: Change this to a gcc version check. This bug
  98751. + # should be fixed with at least gcc-4.3.
  98752. # Non-SSE capable processor.
  98753. # NB: this may make SSE insns segfault!
  98754. # -O1 -march=pentium3, -Os -msse etc are known to be affected.
  98755. @@ -330,18 +368,6 @@
  98756. # -falign-jumps: reachable only by a jump
  98757. # Generic: no alignment at all (smallest code)
  98758. GCC_FALIGN=$(call check_gcc,-falign-functions=1 -falign-jumps=1 -falign-labels=1 -falign-loops=1,-malign-jumps=1 -malign-loops=1)
  98759. -ifeq ($(CONFIG_K7),y)
  98760. - # Align functions to four bytes, use default for jumps and loops (why?)
  98761. - GCC_FALIGN=$(call check_gcc,-falign-functions=4 -falign-labels=1,-malign-functions=4)
  98762. -endif
  98763. -ifeq ($(CONFIG_CRUSOE),y)
  98764. - # Use compiler's default for functions, jumps and loops (why?)
  98765. - GCC_FALIGN=$(call check_gcc,-falign-functions=0 -falign-labels=1,-malign-functions=0)
  98766. -endif
  98767. -ifeq ($(CONFIG_CYRIXIII),y)
  98768. - # Use compiler's default for functions, jumps and loops (why?)
  98769. - GCC_FALIGN=$(call check_gcc,-falign-functions=0 -falign-labels=1,-malign-functions=0)
  98770. -endif
  98771. OPTIMIZATION+=$(GCC_FALIGN)
  98772. # Putting each function and data object into its own section
  98773. @@ -366,22 +392,6 @@
  98774. CPU_LDFLAGS-y+=-m32
  98775. CPU_CFLAGS-y+=-m32
  98776. - CPU_CFLAGS-$(CONFIG_386)+=-march=i386
  98777. - CPU_CFLAGS-$(CONFIG_486)+=-march=i486
  98778. - CPU_CFLAGS-$(CONFIG_ELAN)+=-march=i486
  98779. - CPU_CFLAGS-$(CONFIG_586)+=-march=i586
  98780. - CPU_CFLAGS-$(CONFIG_586MMX)+=$(call check_gcc,-march=pentium-mmx,-march=i586)
  98781. - CPU_CFLAGS-$(CONFIG_686)+=-march=i686
  98782. - CPU_CFLAGS-$(CONFIG_PENTIUMII)+=$(call check_gcc,-march=pentium2,-march=i686)
  98783. - CPU_CFLAGS-$(CONFIG_PENTIUMIII)+=$(call check_gcc,-march=pentium3,-march=i686)
  98784. - CPU_CFLAGS-$(CONFIG_PENTIUM4)+=$(call check_gcc,-march=pentium4,-march=i686)
  98785. - CPU_CFLAGS-$(CONFIG_K6)+=$(call check_gcc,-march=k6,-march=i586)
  98786. - CPU_CFLAGS-$(CONFIG_K7)+=$(call check_gcc,-march=athlon,-march=i686)
  98787. - CPU_CFLAGS-$(CONFIG_CRUSOE)+=-march=i686
  98788. - CPU_CFLAGS-$(CONFIG_WINCHIPC6)+=$(call check_gcc,-march=winchip-c6,-march=i586)
  98789. - CPU_CFLAGS-$(CONFIG_WINCHIP2)+=$(call check_gcc,-march=winchip2,-march=i586)
  98790. - CPU_CFLAGS-$(CONFIG_CYRIXIII)+=$(call check_gcc,-march=c3,-march=i486)
  98791. - CPU_CFLAGS-$(CONFIG_NEHEMIAH)+=$(call check_gcc,-march=c3-2,-march=i686)
  98792. endif
  98793. ifeq ($(TARGET_ARCH),sparc)
  98794. @@ -397,6 +407,12 @@
  98795. CPU_CFLAGS-$(COMPILE_IN_THUMB_MODE)+=-mthumb
  98796. endif
  98797. +ifeq ($(TARGET_ARCH),metag)
  98798. + SYMBOL_PREFIX=_
  98799. + CPU_CFLAGS-$(CONFIG_META_1_2)+=
  98800. + CPU_CFLAGS-$(CONFIG_META_2_1)+=-Wa,-mcpu=metac21
  98801. +endif
  98802. +
  98803. ifeq ($(TARGET_ARCH),mips)
  98804. OPTIMIZATION+=-mno-split-addresses
  98805. CPU_CFLAGS-$(CONFIG_MIPS_ISA_1)+=-mips1
  98806. @@ -406,6 +422,7 @@
  98807. CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS32)+=-mips32 -mtune=mips32
  98808. CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS32R2)+=-march=mips32r2 -mtune=mips32r2
  98809. CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS64)+=-mips64 -mtune=mips32
  98810. + CPU_CFLAGS-$(CONFIG_MIPS_ISA_MIPS64R2)+=-mips64r2 -mtune=mips64r2
  98811. ifeq ($(strip $(ARCH_BIG_ENDIAN)),y)
  98812. CPU_LDFLAGS-$(CONFIG_MIPS_N64_ABI)+=-Wl,-melf64btsmip
  98813. CPU_LDFLAGS-$(CONFIG_MIPS_O32_ABI)+=-Wl,-melf32btsmip
  98814. @@ -537,6 +554,12 @@
  98815. CPU_LDFLAGS-y += $(CPU_CFLAGS)
  98816. endif
  98817. +ifeq ($(TARGET_ARCH),arc)
  98818. + CPU_CFLAGS-y += -mlock -mswape
  98819. + CPU_CFLAGS-$(CONFIG_ARC_CPU_700) += -mA7
  98820. + CPU_LDFLAGS-y += $(CPU_CFLAGS) -marclinux
  98821. +endif
  98822. +
  98823. $(eval $(call check-gcc-var,$(PIEFLAG_NAME)))
  98824. PIEFLAG := $(CFLAG_$(PIEFLAG_NAME))
  98825. ifeq ($(PIEFLAG),)
  98826. @@ -546,11 +569,11 @@
  98827. # well as the LD PIE flag (below) because we can't rely on
  98828. # gcc passing -pie if we used -fPIE. We need to directly use -pie
  98829. # instead of -Wl,-pie as gcc picks up the wrong startfile/endfile
  98830. -$(eval $(call cache-output-var,LDPIEFLAG,$(LD) --help 2>/dev/null | grep -q -- -pie && echo "-pie"))
  98831. +$(eval $(call cache-output-var,LDPIEFLAG,$(CC) -Wl$(comma)--help 2>/dev/null | grep -q -- -pie && echo "-pie"))
  98832. # Check for --as-needed support in linker
  98833. ifndef LD_FLAG_ASNEEDED
  98834. -_LD_FLAG_ASNEEDED:=$(shell $(LD) --help 2>/dev/null | grep -- --as-needed)
  98835. +_LD_FLAG_ASNEEDED:=$(shell $(CC) -Wl,--help 2>/dev/null | grep -- --as-needed)
  98836. ifneq ($(_LD_FLAG_ASNEEDED),)
  98837. export LD_FLAG_ASNEEDED:=--as-needed
  98838. endif
  98839. @@ -574,11 +597,18 @@
  98840. # Check for AS_NEEDED support in linker script (binutils>=2.16.1 has it)
  98841. ifndef ASNEEDED
  98842. -export ASNEEDED:=$(shell $(LD) --help 2>/dev/null | grep -q -- --as-needed && echo "AS_NEEDED ( $(UCLIBC_LDSO) )" || echo "$(UCLIBC_LDSO)")
  98843. -ifeq ($(UCLIBC_HAS_BACKTRACE),y)
  98844. +export ASNEEDED:=$(shell $(CC) -Wl,--help 2>/dev/null | grep -q -- --as-needed && echo "AS_NEEDED ( $(UCLIBC_LDSO) )" || echo "$(UCLIBC_LDSO)")
  98845. +
  98846. # Only used in installed libc.so linker script
  98847. -UBACKTRACE_FULL_NAME := $(RUNTIME_PREFIX)lib/$(UBACKTRACE_DSO)
  98848. -export UBACKTRACE_ASNEEDED:=$(shell $(LD) --help 2>/dev/null | grep -q -- --as-needed && echo "AS_NEEDED ( $(UBACKTRACE_FULL_NAME) )" || echo "$(UBACKTRACE_FULL_NAME)")
  98849. +ifeq ($(UCLIBC_HAS_BACKTRACE),y)
  98850. +ifeq ($(HARDWIRED_ABSPATH),y)
  98851. +UBACKTRACE_FULL_NAME := $(subst //,/,$(RUNTIME_PREFIX)$(MULTILIB_DIR)/$(UBACKTRACE_DSO))
  98852. +else
  98853. +UBACKTRACE_FULL_NAME := $(UBACKTRACE_DSO)
  98854. +endif
  98855. +export UBACKTRACE_ASNEEDED:=$(shell $(CC) -Wl,--help 2>/dev/null | grep -q -- --as-needed && \
  98856. + echo "GROUP ( AS_NEEDED ( $(UBACKTRACE_FULL_NAME) ) )" || \
  98857. + echo "GROUP ( $(UBACKTRACE_FULL_NAME) )")
  98858. else
  98859. export UBACKTRACE_ASNEEDED:=""
  98860. endif
  98861. @@ -623,14 +653,17 @@
  98862. SSP_CFLAGS := $(SSP_DISABLE_FLAGS)
  98863. endif
  98864. -$(eval $(call check-gcc-var,-nostdlib))
  98865. -
  98866. # Collect all CFLAGS components
  98867. -CFLAGS := -include $(top_srcdir)include/libc-symbols.h \
  98868. - $(XWARNINGS) $(CPU_CFLAGS) $(SSP_CFLAGS) \
  98869. - -nostdinc -I$(top_builddir)include -I$(top_srcdir)include -I. \
  98870. +CFLAGS := $(XWARNINGS) $(CPU_CFLAGS) $(SSP_CFLAGS) \
  98871. + -nostdinc -I$(top_builddir)include \
  98872. + -I$(top_srcdir)include -include libc-symbols.h \
  98873. + -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH) \
  98874. -I$(top_srcdir)libc/sysdeps/linux \
  98875. - -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH)
  98876. + -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
  98877. + -I$(top_srcdir)ldso/include -I.
  98878. +ifneq ($(strip $(UCLIBC_EXTRA_CFLAGS)),"")
  98879. +CFLAGS += $(call qstrip,$(UCLIBC_EXTRA_CFLAGS))
  98880. +endif
  98881. # We need this to be checked within libc-symbols.h
  98882. ifneq ($(HAVE_SHARED),y)
  98883. @@ -640,7 +673,7 @@
  98884. $(eval $(call check-ld-var,--warn-once))
  98885. $(eval $(call check-ld-var,--sort-common))
  98886. $(eval $(call check-ld-var,--discard-all))
  98887. -LDFLAGS_NOSTRIP:=$(CPU_LDFLAGS-y) -shared \
  98888. +LDFLAGS_NOSTRIP:=$(LDFLAG-fuse-ld) $(CPU_LDFLAGS-y) -shared \
  98889. -Wl,--warn-common $(CFLAG_-Wl--warn-once) -Wl,-z,combreloc
  98890. # binutils-2.16.1 warns about ignored sections, 2.16.91.0.3 and newer are ok
  98891. #$(eval $(call check-ld-var,--gc-sections))
  98892. @@ -720,7 +753,7 @@
  98893. ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
  98894. PTINC:= -I$(top_builddir)$(PTDIR) \
  98895. -I$(top_srcdir)$(PTDIR) \
  98896. - $(if $(TARGET_ARCH),-I$(top_srcdir)$(PTDIR)/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/$(TARGET_SUBARCH)) \
  98897. + $(if $(TARGET_SUBARCH),-I$(top_srcdir)$(PTDIR)/sysdeps/unix/sysv/linux/$(TARGET_ARCH)/$(TARGET_SUBARCH)) \
  98898. -I$(top_srcdir)$(PTDIR)/sysdeps/unix/sysv/linux/$(TARGET_ARCH) \
  98899. -I$(top_builddir)$(PTDIR)/sysdeps/$(TARGET_ARCH) \
  98900. -I$(top_srcdir)$(PTDIR)/sysdeps/$(TARGET_ARCH) \
  98901. @@ -728,9 +761,7 @@
  98902. -I$(top_srcdir)$(PTDIR)/sysdeps/unix/sysv/linux \
  98903. -I$(top_srcdir)$(PTDIR)/sysdeps/pthread \
  98904. -I$(top_srcdir)$(PTDIR)/sysdeps/pthread/bits \
  98905. - -I$(top_srcdir)$(PTDIR)/sysdeps/generic \
  98906. - -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
  98907. - -I$(top_srcdir)ldso/include
  98908. + -I$(top_srcdir)$(PTDIR)/sysdeps/generic
  98909. #
  98910. # Test for TLS if NPTL support was selected.
  98911. #
  98912. @@ -763,13 +794,14 @@
  98913. PTINC :=
  98914. endif
  98915. CFLAGS += -I$(top_srcdir)libc/sysdeps/linux/common
  98916. -CFLAGS += -I$(KERNEL_HEADERS)
  98917. #CFLAGS += -iwithprefix include-fixed -iwithprefix include
  98918. $(eval $(call cache-output-var,CC_IPREFIX,$(CC) -print-file-name=include))
  98919. CC_INC := -isystem $(dir $(CC_IPREFIX))include-fixed -isystem $(CC_IPREFIX)
  98920. CFLAGS += $(CC_INC)
  98921. +CFLAGS += -I$(KERNEL_HEADERS)
  98922. +
  98923. ifneq ($(DOASSERTS),y)
  98924. CFLAGS+=-DNDEBUG
  98925. endif
  98926. @@ -786,7 +818,11 @@
  98927. LIBGCC_CFLAGS ?= $(CFLAGS) $(CPU_CFLAGS-y)
  98928. $(eval $(call cache-output-var,LIBGCC,$(CC) $(LIBGCC_CFLAGS) -print-libgcc-file-name))
  98929. +$(eval $(call cache-output-var,LIBGCC_EH,$(CC) $(LIBGCC_CFLAGS) -print-file-name=libgcc_eh.a))
  98930. +# with -O0 we (e.g. lockf) might end up with references to
  98931. +# _Unwind_Resume, so pull in gcc_eh in this case..
  98932. LIBGCC_DIR:=$(dir $(LIBGCC))
  98933. +LIBGCC += $(if $(DODEBUG),$(LIBGCC_EH))
  98934. # moved from libpthread/linuxthreads
  98935. ifeq ($(UCLIBC_CTOR_DTOR),y)
  98936. @@ -794,4 +830,6 @@
  98937. SHARED_END_FILES:=$(LIBGCC_DIR)crtendS.o $(top_builddir)lib/crtn.o
  98938. endif
  98939. -LOCAL_INSTALL_PATH := install_dir
  98940. +LOCAL_INSTALL_PATH := $(if $(O),$(O)/)install_dir
  98941. +
  98942. +PTHREAD_GENERATE_MANGLE ?= -n "s/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*\$$/\#define \1 \2/p"
  98943. diff -Nur uClibc-0.9.33.2/test/API/Makefile uClibc-git/test/API/Makefile
  98944. --- uClibc-0.9.33.2/test/API/Makefile 2012-05-15 09:20:09.000000000 +0200
  98945. +++ uClibc-git/test/API/Makefile 2014-06-02 17:40:35.198718538 +0200
  98946. @@ -2,6 +2,7 @@
  98947. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  98948. top_builddir=../../
  98949. +top_srcdir=../../
  98950. include ../Rules.mak
  98951. -include Makefile.in
  98952. include ../Test.mak
  98953. diff -Nur uClibc-0.9.33.2/test/args/Makefile uClibc-git/test/args/Makefile
  98954. --- uClibc-0.9.33.2/test/args/Makefile 2012-05-15 09:20:09.000000000 +0200
  98955. +++ uClibc-git/test/args/Makefile 2014-06-02 17:40:35.206718582 +0200
  98956. @@ -2,6 +2,7 @@
  98957. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  98958. top_builddir=../../
  98959. +top_srcdir=../../
  98960. include ../Rules.mak
  98961. -include Makefile.in
  98962. include ../Test.mak
  98963. diff -Nur uClibc-0.9.33.2/test/assert/Makefile uClibc-git/test/assert/Makefile
  98964. --- uClibc-0.9.33.2/test/assert/Makefile 2012-05-15 09:20:09.000000000 +0200
  98965. +++ uClibc-git/test/assert/Makefile 2014-06-02 17:40:35.206718582 +0200
  98966. @@ -2,6 +2,7 @@
  98967. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  98968. top_builddir=../../
  98969. +top_srcdir=../../
  98970. include ../Rules.mak
  98971. -include Makefile.in
  98972. include ../Test.mak
  98973. diff -Nur uClibc-0.9.33.2/test/build/Makefile uClibc-git/test/build/Makefile
  98974. --- uClibc-0.9.33.2/test/build/Makefile 2012-05-15 09:20:09.000000000 +0200
  98975. +++ uClibc-git/test/build/Makefile 2014-06-02 17:40:35.206718582 +0200
  98976. @@ -2,6 +2,7 @@
  98977. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  98978. top_builddir=../../
  98979. +top_srcdir=../../
  98980. include ../Rules.mak
  98981. -include Makefile.in
  98982. include ../Test.mak
  98983. diff -Nur uClibc-0.9.33.2/test/crypt/Makefile uClibc-git/test/crypt/Makefile
  98984. --- uClibc-0.9.33.2/test/crypt/Makefile 2012-05-15 09:20:09.000000000 +0200
  98985. +++ uClibc-git/test/crypt/Makefile 2014-06-02 17:40:35.206718582 +0200
  98986. @@ -2,6 +2,7 @@
  98987. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  98988. top_builddir=../../
  98989. +top_srcdir=../../
  98990. include ../Rules.mak
  98991. -include Makefile.in
  98992. include ../Test.mak
  98993. diff -Nur uClibc-0.9.33.2/test/ctype/Makefile uClibc-git/test/ctype/Makefile
  98994. --- uClibc-0.9.33.2/test/ctype/Makefile 2012-05-15 09:20:09.000000000 +0200
  98995. +++ uClibc-git/test/ctype/Makefile 2014-06-02 17:40:35.214718627 +0200
  98996. @@ -2,6 +2,7 @@
  98997. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  98998. top_builddir=../../
  98999. +top_srcdir=../../
  99000. include ../Rules.mak
  99001. -include Makefile.in
  99002. include ../Test.mak
  99003. diff -Nur uClibc-0.9.33.2/test/dlopen/libA.c uClibc-git/test/dlopen/libA.c
  99004. --- uClibc-0.9.33.2/test/dlopen/libA.c 1970-01-01 01:00:00.000000000 +0100
  99005. +++ uClibc-git/test/dlopen/libA.c 2014-06-02 17:40:35.214718627 +0200
  99006. @@ -0,0 +1,7 @@
  99007. +extern void libB_func(void);
  99008. +
  99009. +void libA_func(void);
  99010. +void libA_func(void)
  99011. +{
  99012. + libB_func();
  99013. +}
  99014. diff -Nur uClibc-0.9.33.2/test/dlopen/libB.c uClibc-git/test/dlopen/libB.c
  99015. --- uClibc-0.9.33.2/test/dlopen/libB.c 1970-01-01 01:00:00.000000000 +0100
  99016. +++ uClibc-git/test/dlopen/libB.c 2014-06-02 17:40:35.214718627 +0200
  99017. @@ -0,0 +1,7 @@
  99018. +extern void libC_func(void);
  99019. +
  99020. +void libB_func(void);
  99021. +void libB_func(void)
  99022. +{
  99023. + libC_func();
  99024. +}
  99025. diff -Nur uClibc-0.9.33.2/test/dlopen/libC.c uClibc-git/test/dlopen/libC.c
  99026. --- uClibc-0.9.33.2/test/dlopen/libC.c 1970-01-01 01:00:00.000000000 +0100
  99027. +++ uClibc-git/test/dlopen/libC.c 2014-06-02 17:40:35.214718627 +0200
  99028. @@ -0,0 +1,30 @@
  99029. +#include <dlfcn.h>
  99030. +#include <stdio.h>
  99031. +#include <stdlib.h>
  99032. +
  99033. +#define LIBNAME "libB.so"
  99034. +void _libC_fini(void);
  99035. +void _libC_fini(void)
  99036. +{
  99037. + printf("libC_fini():finish - atexit()\n");
  99038. +}
  99039. +
  99040. +void libC_fini(void);
  99041. +void libC_fini(void)
  99042. +{
  99043. + _libC_fini();
  99044. +}
  99045. +
  99046. +void libC_func(void);
  99047. +void libC_func(void)
  99048. +{
  99049. + void *libB;
  99050. +
  99051. + libB = dlopen(LIBNAME, RTLD_LAZY);
  99052. + if (!libB) {
  99053. + fprintf(stderr, "Could not open ./%s: %s\n", LIBNAME, dlerror());
  99054. + exit(1);
  99055. + }
  99056. +
  99057. + atexit(libC_fini);
  99058. +}
  99059. diff -Nur uClibc-0.9.33.2/test/dlopen/Makefile uClibc-git/test/dlopen/Makefile
  99060. --- uClibc-0.9.33.2/test/dlopen/Makefile 2012-05-15 09:20:09.000000000 +0200
  99061. +++ uClibc-git/test/dlopen/Makefile 2014-06-02 17:40:35.214718627 +0200
  99062. @@ -2,11 +2,7 @@
  99063. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99064. top_builddir=../../
  99065. +top_srcdir=../../
  99066. include ../Rules.mak
  99067. -include Makefile.in
  99068. -ifneq ($(HAVE_SHARED),y)
  99069. -TESTS_DISABLED := test3
  99070. -LDFLAGS_libtest.so := -lpthread
  99071. -endif
  99072. -
  99073. include ../Test.mak
  99074. diff -Nur uClibc-0.9.33.2/test/dlopen/Makefile.in uClibc-git/test/dlopen/Makefile.in
  99075. --- uClibc-0.9.33.2/test/dlopen/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  99076. +++ uClibc-git/test/dlopen/Makefile.in 2014-06-02 17:40:35.214718627 +0200
  99077. @@ -4,7 +4,13 @@
  99078. # rules need a little love to work with glibc ...
  99079. export UCLIBC_ONLY := 1
  99080. -TESTS := dltest dltest2 dlstatic test1 test2 test3 dlundef dlafk dladdr
  99081. +TESTS := dltest dltest2 dlstatic test1 test2 test3 dlundef dlafk dladdr \
  99082. + testscope
  99083. +
  99084. +ifneq ($(HAVE_SHARED),y)
  99085. +TESTS_DISABLED := test3
  99086. +LDFLAGS_libtest.so := -lpthread
  99087. +endif
  99088. CFLAGS_dltest := -DLIBNAME="\"./libtest.so\""
  99089. CFLAGS_dltest2 := -DLIBNAME="\"./libtest3.so\""
  99090. @@ -18,22 +24,42 @@
  99091. LDFLAGS_test2 := -ldl
  99092. LDFLAGS_test3 := -ldl ./libtest1.so ./libtest2.so -Wl,-rpath,.
  99093. LDFLAGS_dladdr := -ldl
  99094. +LDFLAGS_testscope:= -ldl
  99095. DEBUG_LIBS := X
  99096. WRAPPER := env $(DEBUG_LIBS)=all LD_LIBRARY_PATH="$$PWD:.:$(LD_LIBRARY_PATH)"
  99097. +# Build libC.so without -mprefergot compilation flag to force a
  99098. +# R_SH_JMP_SLOT relocation instead of R_SH_GLOB_DAT for _libC_fini. This is
  99099. +# needed to resolve the _libC_fini symbol when used (by libC.so destructor),
  99100. +# whereas with GLOB_DAT relocation the resolution happens in the GOT entry
  99101. +# when the libC is loaded, for the same reason remove also the "-z now"
  99102. +# linker flag.
  99103. +# These are needed to spot the issue test case want raise.
  99104. +
  99105. +ifeq ($(TARGET_ARCH),sh)
  99106. +CFLAGS-OMIT-libC.c = -mprefergot
  99107. +endif
  99108. +LDFLAGS-OMIT-libC.c = -Wl,-z,now
  99109. +
  99110. dltest: libtest.so
  99111. dltest2: libtest3.so
  99112. dlstatic: libstatic.so
  99113. dlundef: libundef.so
  99114. dlafk: libafk.so
  99115. +testscope:libA.so
  99116. libafk.so: libafk-temp.so
  99117. LDFLAGS_libafk.so := ./libafk-temp.so -Wl,-rpath,.
  99118. test1: libtest1.so
  99119. test2: libtest1.so libtest2.so
  99120. test3: libtest1.so libtest2.so
  99121. libtest1.so: libtest2.so
  99122. +libB.so: libC.so
  99123. +libA.so: libB.so
  99124. LDFLAGS_libtest.so := -lpthread
  99125. LDFLAGS_libtest1.so := ./libtest2.so -Wl,-rpath,.
  99126. LDFLAGS_libtest2.so := -Wl,-rpath,.
  99127. LDFLAGS_libtest3.so := -lpthread -Wl,-rpath,.
  99128. +LDFLAGS_libC.so := -ldl
  99129. +LDFLAGS_libB.so := ./libC.so -Wl,-rpath,.
  99130. +LDFLAGS_libA.so := ./libB.so -Wl,-rpath,.
  99131. diff -Nur uClibc-0.9.33.2/test/dlopen/testscope.c uClibc-git/test/dlopen/testscope.c
  99132. --- uClibc-0.9.33.2/test/dlopen/testscope.c 1970-01-01 01:00:00.000000000 +0100
  99133. +++ uClibc-git/test/dlopen/testscope.c 2014-06-02 17:40:35.218718649 +0200
  99134. @@ -0,0 +1,29 @@
  99135. +#include <dlfcn.h>
  99136. +#include <stdio.h>
  99137. +#include <stdlib.h>
  99138. +
  99139. +#define LIBNAME "libA.so"
  99140. +int main(int argc, char **argv)
  99141. +{
  99142. + void *libA;
  99143. + void (*libAfn)(void);
  99144. + char *error;
  99145. +
  99146. + libA = dlopen(LIBNAME, RTLD_LAZY);
  99147. + if (!libA) {
  99148. + fprintf(stderr, "Could not open ./%s: %s\n", LIBNAME, dlerror());
  99149. + exit(1);
  99150. + }
  99151. +
  99152. + libAfn = dlsym(libA, "libA_func");
  99153. + if ((error = dlerror()) != NULL) {
  99154. + fprintf(stderr, "Could not locate symbol 'libA_func': %s\n", error);
  99155. + exit(1);
  99156. + }
  99157. +
  99158. + libAfn();
  99159. +
  99160. + dlclose(libA);
  99161. +
  99162. + return EXIT_SUCCESS;
  99163. +}
  99164. diff -Nur uClibc-0.9.33.2/test/.gitignore uClibc-git/test/.gitignore
  99165. --- uClibc-0.9.33.2/test/.gitignore 2012-05-15 09:20:09.000000000 +0200
  99166. +++ uClibc-git/test/.gitignore 2014-06-02 17:40:35.182718449 +0200
  99167. @@ -29,13 +29,19 @@
  99168. dlopen/dlundef
  99169. dlopen/libafk.so
  99170. dlopen/libafk-temp.so
  99171. +dlopen/libA.so
  99172. +dlopen/libB.so
  99173. +dlopen/libC.so
  99174. dlopen/libstatic.so
  99175. dlopen/libtest[123].so
  99176. dlopen/libtest.so
  99177. dlopen/libundef.so
  99178. dlopen/test[1-3]
  99179. +dlopen/testscope
  99180. inet/bug-if1
  99181. inet/gethost_r-align
  99182. +inet/gethostid
  99183. +inet/getnetent
  99184. inet/if_nameindex
  99185. inet/tst-aton
  99186. inet/tst-ether_aton
  99187. @@ -43,13 +49,28 @@
  99188. inet/tst-ethers-line
  99189. inet/tst-network
  99190. inet/tst-ntoa
  99191. -inet/gethostid
  99192. -inet/getnetent
  99193. +inet/tst-res
  99194. +inet/tst-sock-nonblock
  99195. librt/shmtest
  99196. locale/bug-iconv-trans
  99197. +locale/bug-usesetlocale
  99198. +locale/C
  99199. locale/collate-test
  99200. locale/dump-ctype
  99201. locale/gen-unicode-ctype
  99202. +locale/show-ucs-data
  99203. +locale/tst-digits
  99204. +locale/tst-langinfo
  99205. +locale/tst-mbswcs[1-6]
  99206. +locale/tst_nl_langinfo
  99207. +locale/tst-numeric
  99208. +locale/tst-setlocale
  99209. +locale/tst-sscanf
  99210. +locale/tst-trans
  99211. +locale/tst-wctype
  99212. +locale/tst-xlocale1
  99213. +locale/tst-xlocale2
  99214. +locale/xfrm-test
  99215. locale-mbwc/tst_iswalnum
  99216. locale-mbwc/tst_iswalpha
  99217. locale-mbwc/tst_iswcntrl
  99218. @@ -100,16 +121,6 @@
  99219. locale-mbwc/tst_wctype
  99220. locale-mbwc/tst_wcwidth
  99221. locale-mbwc/tst2_mbrtowc
  99222. -locale/show-ucs-data
  99223. -locale/tst-digits
  99224. -locale/tst-langinfo
  99225. -locale/tst-mbswcs[1-6]
  99226. -locale/tst_nl_langinfo
  99227. -locale/tst-numeric
  99228. -locale/tst-setlocale
  99229. -locale/tst-sscanf
  99230. -locale/tst-trans
  99231. -locale/tst-wctype
  99232. malloc/malloc
  99233. malloc/mallocbug
  99234. malloc/malloc-standard-alignment
  99235. @@ -146,8 +157,11 @@
  99236. misc/seek
  99237. misc/sem
  99238. misc/stdarg
  99239. +misc/tst-inotify
  99240. misc/tst-scandir
  99241. misc/tst-seekdir
  99242. +misc/tst-statfs
  99243. +misc/tst-statvfs
  99244. misc/tst-utmp
  99245. mmap/mmap
  99246. mmap/mmap2
  99247. @@ -243,6 +257,7 @@
  99248. signal/signal
  99249. signal/tst-raise
  99250. signal/tst-signal
  99251. +signal/tst-signalfd
  99252. signal/tst-sigset
  99253. signal/tst-sigsimple
  99254. silly/hello
  99255. @@ -250,10 +265,12 @@
  99256. stat/memcmp-stat
  99257. stat/stat
  99258. stat/stat64
  99259. +stat/stat-loop256
  99260. stdio/64bit
  99261. stdio/fclose-loop
  99262. stdlib/ptytest
  99263. stdlib/qsort
  99264. +stdlib/testarc4random
  99265. stdlib/testatexit
  99266. stdlib/test-canon
  99267. stdlib/test-canon2
  99268. @@ -282,6 +299,7 @@
  99269. time/tst-mktime
  99270. time/tst-mktime3
  99271. time/tst-strptime2
  99272. +time/tst-timerfd
  99273. time/tst_wcsftime
  99274. tls/tst-tls[1-9]
  99275. tls/tst-tls1[0-8]
  99276. @@ -302,6 +320,8 @@
  99277. unistd/getopt
  99278. unistd/getopt_long
  99279. unistd/tstgetopt
  99280. +unistd/tst-posix_fallocate
  99281. +unistd/tst-posix_fallocate64
  99282. unistd/tst-preadwrite
  99283. unistd/tst-preadwrite64
  99284. unistd/vfork
  99285. diff -Nur uClibc-0.9.33.2/test/inet/bug-if1.c uClibc-git/test/inet/bug-if1.c
  99286. --- uClibc-0.9.33.2/test/inet/bug-if1.c 2012-05-15 09:20:09.000000000 +0200
  99287. +++ uClibc-git/test/inet/bug-if1.c 2014-06-02 17:40:35.218718649 +0200
  99288. @@ -13,9 +13,8 @@
  99289. Lesser General Public License for more details.
  99290. You should have received a copy of the GNU Lesser General Public
  99291. - License along with the GNU C Library; if not, write to the Free
  99292. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99293. - 02111-1307 USA. */
  99294. + License along with the GNU C Library; if not, see
  99295. + <http://www.gnu.org/licenses/>. */
  99296. #include <errno.h>
  99297. #include <limits.h>
  99298. diff -Nur uClibc-0.9.33.2/test/inet/gethostid.c uClibc-git/test/inet/gethostid.c
  99299. --- uClibc-0.9.33.2/test/inet/gethostid.c 2012-05-15 09:20:09.000000000 +0200
  99300. +++ uClibc-git/test/inet/gethostid.c 2014-06-02 17:40:35.218718649 +0200
  99301. @@ -1,6 +1,6 @@
  99302. #include <unistd.h>
  99303. #include <stdio.h>
  99304. int main(void) {
  99305. - printf("hostid=%d\n", gethostid());
  99306. + printf("hostid=%ld\n", gethostid());
  99307. return 0;
  99308. }
  99309. diff -Nur uClibc-0.9.33.2/test/inet/getnetent.c uClibc-git/test/inet/getnetent.c
  99310. --- uClibc-0.9.33.2/test/inet/getnetent.c 2012-05-15 09:20:09.000000000 +0200
  99311. +++ uClibc-git/test/inet/getnetent.c 2014-06-02 17:40:35.218718649 +0200
  99312. @@ -8,7 +8,7 @@
  99313. while (net->n_net && !((net->n_net >> 24) & 0xff)) {
  99314. net->n_net <<= 8;
  99315. }
  99316. - printf("%lu.%lu.%lu.%lu\n",
  99317. + printf("%u.%u.%u.%u\n",
  99318. (net->n_net >> 24) & 0xff, (net->n_net >> 16) & 0xff,
  99319. (net->n_net >> 8) & 0xff, net->n_net & 0xff);
  99320. }
  99321. diff -Nur uClibc-0.9.33.2/test/inet/Makefile uClibc-git/test/inet/Makefile
  99322. --- uClibc-0.9.33.2/test/inet/Makefile 2012-05-15 09:20:09.000000000 +0200
  99323. +++ uClibc-git/test/inet/Makefile 2014-06-02 17:40:35.218718649 +0200
  99324. @@ -2,6 +2,7 @@
  99325. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99326. top_builddir=../../
  99327. +top_srcdir=../../
  99328. include ../Rules.mak
  99329. -include Makefile.in
  99330. include ../Test.mak
  99331. diff -Nur uClibc-0.9.33.2/test/inet/Makefile.in uClibc-git/test/inet/Makefile.in
  99332. --- uClibc-0.9.33.2/test/inet/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  99333. +++ uClibc-git/test/inet/Makefile.in 2014-06-02 17:40:35.218718649 +0200
  99334. @@ -7,5 +7,11 @@
  99335. endif
  99336. ifeq ($(UCLIBC_HAS_SOCKET)$(UCLIBC_HAS_IPV4)$(UCLIBC_HAS_IPV6),)
  99337. -TESTS_DISABLED := tst-ether_aton tst-ethers tst-ethers-line
  99338. +TESTS_DISABLED += tst-ether_aton tst-ethers tst-ethers-line
  99339. +endif
  99340. +
  99341. +ifeq ($(UCLIBC_HAS_RESOLVER_SUPPORT),)
  99342. +TESTS_DISABLED += tst-res
  99343. +else
  99344. +LDFLAGS_tst-res_glibc := -lresolv # assume it's glibc or somebody with that lib
  99345. endif
  99346. diff -Nur uClibc-0.9.33.2/test/inet/tst-network.c uClibc-git/test/inet/tst-network.c
  99347. --- uClibc-0.9.33.2/test/inet/tst-network.c 2012-05-15 09:20:09.000000000 +0200
  99348. +++ uClibc-git/test/inet/tst-network.c 2014-06-02 17:40:35.218718649 +0200
  99349. @@ -14,9 +14,8 @@
  99350. Lesser General Public License for more details.
  99351. You should have received a copy of the GNU Lesser General Public
  99352. - License along with the GNU C Library; if not, write to the Free
  99353. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99354. - 02111-1307 USA. */
  99355. + License along with the GNU C Library; if not, see
  99356. + <http://www.gnu.org/licenses/>. */
  99357. #include <stdio.h>
  99358. #include <sys/socket.h>
  99359. diff -Nur uClibc-0.9.33.2/test/inet/tst-res.c uClibc-git/test/inet/tst-res.c
  99360. --- uClibc-0.9.33.2/test/inet/tst-res.c 1970-01-01 01:00:00.000000000 +0100
  99361. +++ uClibc-git/test/inet/tst-res.c 2014-06-02 17:40:35.218718649 +0200
  99362. @@ -0,0 +1,44 @@
  99363. +#include <stdlib.h>
  99364. +#include <assert.h>
  99365. +#include <sys/types.h>
  99366. +#include <netinet/in.h>
  99367. +#include <arpa/nameser.h>
  99368. +#include <resolv.h>
  99369. +#include <netdb.h>
  99370. +
  99371. +int main(int argc, char **argv)
  99372. +{
  99373. + int r;
  99374. + struct __res_state state;
  99375. +
  99376. + r = res_ninit(&state);
  99377. + if (r) {
  99378. + herror("ninit");
  99379. + abort();
  99380. + }
  99381. + r = res_init();
  99382. + if (r) {
  99383. + herror("init");
  99384. + abort();
  99385. + }
  99386. +
  99387. +#ifdef __UCLIBC_HAS_BSD_RES_CLOSE__
  99388. + res_close();
  99389. +#endif
  99390. +#ifdef __UCLIBC__
  99391. + /* assume there is at least one resolver configured */
  99392. + assert (state._u._ext.nscount > 0);
  99393. +#else
  99394. + assert (state._u._ext.nscount == 0);
  99395. +#endif
  99396. + assert (state.options & RES_INIT);
  99397. + res_nclose(&state);
  99398. +#ifdef __UCLIBC__
  99399. + /* We wipe the whole thing */
  99400. + assert ((state.options & RES_INIT) == 0);
  99401. +#endif
  99402. + assert (state._u._ext.nscount == 0);
  99403. +
  99404. + return 0;
  99405. +}
  99406. +
  99407. diff -Nur uClibc-0.9.33.2/test/inet/tst-sock-nonblock.c uClibc-git/test/inet/tst-sock-nonblock.c
  99408. --- uClibc-0.9.33.2/test/inet/tst-sock-nonblock.c 1970-01-01 01:00:00.000000000 +0100
  99409. +++ uClibc-git/test/inet/tst-sock-nonblock.c 2014-06-02 17:40:35.218718649 +0200
  99410. @@ -0,0 +1,53 @@
  99411. +/* vi: set sw=4 ts=4 sts=4: */
  99412. +/*
  99413. + * Nonblocking socket test for uClibc
  99414. + * Copyright (C) 2012 by Kevin Cernekee <cernekee@gmail.com>
  99415. + *
  99416. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99417. + */
  99418. +
  99419. +#include <stdio.h>
  99420. +#include <stdlib.h>
  99421. +#include <string.h>
  99422. +#include <unistd.h>
  99423. +#include <errno.h>
  99424. +#include <error.h>
  99425. +#include <sys/types.h>
  99426. +#include <sys/socket.h>
  99427. +#include <sys/un.h>
  99428. +#include <sys/fcntl.h>
  99429. +
  99430. +static int
  99431. +do_test(void)
  99432. +{
  99433. + int fd, ret, result = 0;
  99434. + struct sockaddr_un sa;
  99435. + char buf;
  99436. +
  99437. + fd = socket(AF_UNIX, SOCK_DGRAM | SOCK_NONBLOCK, 0);
  99438. + if (fd < 0) {
  99439. + perror("socket()");
  99440. + result = 1;
  99441. + }
  99442. +
  99443. + memset(&sa, 0, sizeof(sa));
  99444. + sa.sun_family = AF_UNIX;
  99445. + strcpy(sa.sun_path, "socktest");
  99446. + unlink("socktest");
  99447. + if (bind(fd, (const struct sockaddr *)&sa, sizeof(sa)) < 0) {
  99448. + perror("bind()");
  99449. + result = 1;
  99450. + }
  99451. +
  99452. + ret = read(fd, &buf, sizeof(buf));
  99453. + if (ret != -1 || errno != EAGAIN) {
  99454. + error(0, 0, "Nonblocking read returned %d", ret);
  99455. + result = 1;
  99456. + }
  99457. +
  99458. + return result;
  99459. +}
  99460. +
  99461. +#define TIMEOUT 5
  99462. +#define TEST_FUNCTION do_test ()
  99463. +#include "../test-skeleton.c"
  99464. diff -Nur uClibc-0.9.33.2/test/librt/Makefile uClibc-git/test/librt/Makefile
  99465. --- uClibc-0.9.33.2/test/librt/Makefile 2012-05-15 09:20:09.000000000 +0200
  99466. +++ uClibc-git/test/librt/Makefile 2014-06-02 17:40:35.218718649 +0200
  99467. @@ -2,6 +2,7 @@
  99468. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99469. top_builddir=../../
  99470. +top_srcdir=../../
  99471. include ../Rules.mak
  99472. -include Makefile.in
  99473. include ../Test.mak
  99474. diff -Nur uClibc-0.9.33.2/test/locale/collate-test.c uClibc-git/test/locale/collate-test.c
  99475. --- uClibc-0.9.33.2/test/locale/collate-test.c 2012-05-15 09:20:09.000000000 +0200
  99476. +++ uClibc-git/test/locale/collate-test.c 2014-06-02 17:40:35.262718892 +0200
  99477. @@ -14,9 +14,8 @@
  99478. Lesser General Public License for more details.
  99479. You should have received a copy of the GNU Lesser General Public
  99480. - License along with the GNU C Library; if not, write to the Free
  99481. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99482. - 02111-1307 USA. */
  99483. + License along with the GNU C Library; if not, see
  99484. + <http://www.gnu.org/licenses/>. */
  99485. #include <ctype.h>
  99486. #include <error.h>
  99487. diff -Nur uClibc-0.9.33.2/test/locale/dump-ctype.c uClibc-git/test/locale/dump-ctype.c
  99488. --- uClibc-0.9.33.2/test/locale/dump-ctype.c 2012-05-15 09:20:09.000000000 +0200
  99489. +++ uClibc-git/test/locale/dump-ctype.c 2014-06-02 17:40:35.262718892 +0200
  99490. @@ -15,9 +15,8 @@
  99491. Lesser General Public License for more details.
  99492. You should have received a copy of the GNU Lesser General Public
  99493. - License along with the GNU C Library; if not, write to the Free
  99494. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99495. - 02111-1307 USA. */
  99496. + License along with the GNU C Library; if not, see
  99497. + <http://www.gnu.org/licenses/>. */
  99498. /* Usage example:
  99499. $ dump-ctype de_DE.UTF-8
  99500. diff -Nur uClibc-0.9.33.2/test/locale/gen-unicode-ctype.c uClibc-git/test/locale/gen-unicode-ctype.c
  99501. --- uClibc-0.9.33.2/test/locale/gen-unicode-ctype.c 2012-05-15 09:20:09.000000000 +0200
  99502. +++ uClibc-git/test/locale/gen-unicode-ctype.c 2014-06-02 17:40:35.262718892 +0200
  99503. @@ -14,9 +14,8 @@
  99504. Lesser General Public License for more details.
  99505. You should have received a copy of the GNU Lesser General Public
  99506. - License along with the GNU C Library; if not, write to the Free
  99507. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99508. - 02111-1307 USA. */
  99509. + License along with the GNU C Library; if not, see
  99510. + <http://www.gnu.org/licenses/>. */
  99511. /* Usage example:
  99512. $ gen-unicode /usr/local/share/Unidata/UnicodeData.txt 3.1
  99513. diff -Nur uClibc-0.9.33.2/test/locale/Makefile uClibc-git/test/locale/Makefile
  99514. --- uClibc-0.9.33.2/test/locale/Makefile 2012-05-15 09:20:09.000000000 +0200
  99515. +++ uClibc-git/test/locale/Makefile 2014-06-02 17:40:35.262718892 +0200
  99516. @@ -2,6 +2,7 @@
  99517. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99518. top_builddir=../../
  99519. +top_srcdir=../../
  99520. include ../Rules.mak
  99521. -include Makefile.in
  99522. include ../Test.mak
  99523. diff -Nur uClibc-0.9.33.2/test/locale/tst-C-locale.c uClibc-git/test/locale/tst-C-locale.c
  99524. --- uClibc-0.9.33.2/test/locale/tst-C-locale.c 2012-05-15 09:20:09.000000000 +0200
  99525. +++ uClibc-git/test/locale/tst-C-locale.c 2014-06-02 17:40:35.262718892 +0200
  99526. @@ -14,9 +14,8 @@
  99527. Lesser General Public License for more details.
  99528. You should have received a copy of the GNU Lesser General Public
  99529. - License along with the GNU C Library; if not, write to the Free
  99530. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99531. - 02111-1307 USA. */
  99532. + License along with the GNU C Library; if not, see
  99533. + <http://www.gnu.org/licenses/>. */
  99534. #include <ctype.h>
  99535. #include <langinfo.h>
  99536. diff -Nur uClibc-0.9.33.2/test/locale/tst-ctype.c uClibc-git/test/locale/tst-ctype.c
  99537. --- uClibc-0.9.33.2/test/locale/tst-ctype.c 2012-05-15 09:20:09.000000000 +0200
  99538. +++ uClibc-git/test/locale/tst-ctype.c 2014-06-02 17:40:35.262718892 +0200
  99539. @@ -13,9 +13,8 @@
  99540. Lesser General Public License for more details.
  99541. You should have received a copy of the GNU Lesser General Public
  99542. - License along with the GNU C Library; if not, write to the Free
  99543. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99544. - 02111-1307 USA. */
  99545. + License along with the GNU C Library; if not, see
  99546. + <http://www.gnu.org/licenses/>. */
  99547. #include <ctype.h>
  99548. #include <locale.h>
  99549. diff -Nur uClibc-0.9.33.2/test/locale/tst-digits.c uClibc-git/test/locale/tst-digits.c
  99550. --- uClibc-0.9.33.2/test/locale/tst-digits.c 2012-05-15 09:20:09.000000000 +0200
  99551. +++ uClibc-git/test/locale/tst-digits.c 2014-06-02 17:40:35.262718892 +0200
  99552. @@ -13,9 +13,8 @@
  99553. Lesser General Public License for more details.
  99554. You should have received a copy of the GNU Lesser General Public
  99555. - License along with the GNU C Library; if not, write to the Free
  99556. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99557. - 02111-1307 USA. */
  99558. + License along with the GNU C Library; if not, see
  99559. + <http://www.gnu.org/licenses/>. */
  99560. #include <ctype.h>
  99561. #include <langinfo.h>
  99562. diff -Nur uClibc-0.9.33.2/test/locale/tst-fmon.c uClibc-git/test/locale/tst-fmon.c
  99563. --- uClibc-0.9.33.2/test/locale/tst-fmon.c 2012-05-15 09:20:09.000000000 +0200
  99564. +++ uClibc-git/test/locale/tst-fmon.c 2014-06-02 17:40:35.262718892 +0200
  99565. @@ -14,9 +14,8 @@
  99566. Lesser General Public License for more details.
  99567. You should have received a copy of the GNU Lesser General Public
  99568. - License along with the GNU C Library; if not, write to the Free
  99569. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99570. - 02111-1307 USA. */
  99571. + License along with the GNU C Library; if not, see
  99572. + <http://www.gnu.org/licenses/>. */
  99573. #include <stdio.h>
  99574. #include <locale.h>
  99575. diff -Nur uClibc-0.9.33.2/test/locale/tst-langinfo.c uClibc-git/test/locale/tst-langinfo.c
  99576. --- uClibc-0.9.33.2/test/locale/tst-langinfo.c 2012-05-15 09:20:09.000000000 +0200
  99577. +++ uClibc-git/test/locale/tst-langinfo.c 2014-06-02 17:40:35.262718892 +0200
  99578. @@ -14,9 +14,8 @@
  99579. Lesser General Public License for more details.
  99580. You should have received a copy of the GNU Lesser General Public
  99581. - License along with the GNU C Library; if not, write to the Free
  99582. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99583. - 02111-1307 USA. */
  99584. + License along with the GNU C Library; if not, see
  99585. + <http://www.gnu.org/licenses/>. */
  99586. #include <langinfo.h>
  99587. #include <locale.h>
  99588. diff -Nur uClibc-0.9.33.2/test/locale/tst-langinfo.input uClibc-git/test/locale/tst-langinfo.input
  99589. --- uClibc-0.9.33.2/test/locale/tst-langinfo.input 2012-05-15 09:20:09.000000000 +0200
  99590. +++ uClibc-git/test/locale/tst-langinfo.input 2014-06-02 17:40:35.262718892 +0200
  99591. @@ -15,9 +15,8 @@
  99592. # Lesser General Public License for more details.
  99593. # You should have received a copy of the GNU Lesser General Public
  99594. -# License along with the GNU C Library; if not, write to the Free
  99595. -# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99596. -# 02111-1307 USA.
  99597. +# License along with the GNU C Library; see the file COPYING.LIB. If
  99598. +# not, see <http://www.gnu.org/licenses/>.
  99599. # Run the test program.
  99600. diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs1.c uClibc-git/test/locale/tst-mbswcs1.c
  99601. --- uClibc-0.9.33.2/test/locale/tst-mbswcs1.c 2012-05-15 09:20:09.000000000 +0200
  99602. +++ uClibc-git/test/locale/tst-mbswcs1.c 2014-06-02 17:40:35.262718892 +0200
  99603. @@ -14,9 +14,8 @@
  99604. Lesser General Public License for more details.
  99605. You should have received a copy of the GNU Lesser General Public
  99606. - License along with the GNU C Library; if not, write to the Free
  99607. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99608. - 02111-1307 USA. */
  99609. + License along with the GNU C Library; if not, see
  99610. + <http://www.gnu.org/licenses/>. */
  99611. #include <stdio.h>
  99612. #include <string.h>
  99613. diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs2.c uClibc-git/test/locale/tst-mbswcs2.c
  99614. --- uClibc-0.9.33.2/test/locale/tst-mbswcs2.c 2012-05-15 09:20:09.000000000 +0200
  99615. +++ uClibc-git/test/locale/tst-mbswcs2.c 2014-06-02 17:40:35.262718892 +0200
  99616. @@ -14,9 +14,8 @@
  99617. Lesser General Public License for more details.
  99618. You should have received a copy of the GNU Lesser General Public
  99619. - License along with the GNU C Library; if not, write to the Free
  99620. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99621. - 02111-1307 USA. */
  99622. + License along with the GNU C Library; if not, see
  99623. + <http://www.gnu.org/licenses/>. */
  99624. #include <stdio.h>
  99625. #include <string.h>
  99626. diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs3.c uClibc-git/test/locale/tst-mbswcs3.c
  99627. --- uClibc-0.9.33.2/test/locale/tst-mbswcs3.c 2012-05-15 09:20:09.000000000 +0200
  99628. +++ uClibc-git/test/locale/tst-mbswcs3.c 2014-06-02 17:40:35.262718892 +0200
  99629. @@ -14,9 +14,8 @@
  99630. Lesser General Public License for more details.
  99631. You should have received a copy of the GNU Lesser General Public
  99632. - License along with the GNU C Library; if not, write to the Free
  99633. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99634. - 02111-1307 USA. */
  99635. + License along with the GNU C Library; if not, see
  99636. + <http://www.gnu.org/licenses/>. */
  99637. #include <stdio.h>
  99638. #include <string.h>
  99639. diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs4.c uClibc-git/test/locale/tst-mbswcs4.c
  99640. --- uClibc-0.9.33.2/test/locale/tst-mbswcs4.c 2012-05-15 09:20:09.000000000 +0200
  99641. +++ uClibc-git/test/locale/tst-mbswcs4.c 2014-06-02 17:40:35.262718892 +0200
  99642. @@ -13,9 +13,8 @@
  99643. Lesser General Public License for more details.
  99644. You should have received a copy of the GNU Lesser General Public
  99645. - License along with the GNU C Library; if not, write to the Free
  99646. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99647. - 02111-1307 USA. */
  99648. + License along with the GNU C Library; if not, see
  99649. + <http://www.gnu.org/licenses/>. */
  99650. #include <stdio.h>
  99651. #include <string.h>
  99652. diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs5.c uClibc-git/test/locale/tst-mbswcs5.c
  99653. --- uClibc-0.9.33.2/test/locale/tst-mbswcs5.c 2012-05-15 09:20:09.000000000 +0200
  99654. +++ uClibc-git/test/locale/tst-mbswcs5.c 2014-06-02 17:40:35.262718892 +0200
  99655. @@ -14,9 +14,8 @@
  99656. Lesser General Public License for more details.
  99657. You should have received a copy of the GNU Lesser General Public
  99658. - License along with the GNU C Library; if not, write to the Free
  99659. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99660. - 02111-1307 USA. */
  99661. + License along with the GNU C Library; if not, see
  99662. + <http://www.gnu.org/licenses/>. */
  99663. #include <stdio.h>
  99664. #include <string.h>
  99665. diff -Nur uClibc-0.9.33.2/test/locale/tst-mbswcs6.c uClibc-git/test/locale/tst-mbswcs6.c
  99666. --- uClibc-0.9.33.2/test/locale/tst-mbswcs6.c 2012-05-15 09:20:09.000000000 +0200
  99667. +++ uClibc-git/test/locale/tst-mbswcs6.c 2014-06-02 17:40:35.262718892 +0200
  99668. @@ -14,9 +14,8 @@
  99669. Lesser General Public License for more details.
  99670. You should have received a copy of the GNU Lesser General Public
  99671. - License along with the GNU C Library; if not, write to the Free
  99672. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99673. - 02111-1307 USA. */
  99674. + License along with the GNU C Library; if not, see
  99675. + <http://www.gnu.org/licenses/>. */
  99676. #include <errno.h>
  99677. #include <locale.h>
  99678. diff -Nur uClibc-0.9.33.2/test/locale/tst-numeric.c uClibc-git/test/locale/tst-numeric.c
  99679. --- uClibc-0.9.33.2/test/locale/tst-numeric.c 2012-05-15 09:20:09.000000000 +0200
  99680. +++ uClibc-git/test/locale/tst-numeric.c 2014-06-02 17:40:35.262718892 +0200
  99681. @@ -16,9 +16,8 @@
  99682. Lesser General Public License for more details.
  99683. You should have received a copy of the GNU Lesser General Public
  99684. - License along with the GNU C Library; if not, write to the Free
  99685. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99686. - 02111-1307 USA. */
  99687. + License along with the GNU C Library; if not, see
  99688. + <http://www.gnu.org/licenses/>. */
  99689. #include <stdio.h>
  99690. #include <locale.h>
  99691. diff -Nur uClibc-0.9.33.2/test/locale/tst-rpmatch.c uClibc-git/test/locale/tst-rpmatch.c
  99692. --- uClibc-0.9.33.2/test/locale/tst-rpmatch.c 2012-05-15 09:20:09.000000000 +0200
  99693. +++ uClibc-git/test/locale/tst-rpmatch.c 2014-06-02 17:40:35.262718892 +0200
  99694. @@ -14,9 +14,8 @@
  99695. Lesser General Public License for more details.
  99696. You should have received a copy of the GNU Lesser General Public
  99697. - License along with the GNU C Library; if not, write to the Free
  99698. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99699. - 02111-1307 USA. */
  99700. + License along with the GNU C Library; if not, see
  99701. + <http://www.gnu.org/licenses/>. */
  99702. #include <locale.h>
  99703. #include <stdio.h>
  99704. diff -Nur uClibc-0.9.33.2/test/locale/tst-trans.c uClibc-git/test/locale/tst-trans.c
  99705. --- uClibc-0.9.33.2/test/locale/tst-trans.c 2012-05-15 09:20:09.000000000 +0200
  99706. +++ uClibc-git/test/locale/tst-trans.c 2014-06-02 17:40:35.262718892 +0200
  99707. @@ -14,9 +14,8 @@
  99708. Lesser General Public License for more details.
  99709. You should have received a copy of the GNU Lesser General Public
  99710. - License along with the GNU C Library; if not, write to the Free
  99711. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99712. - 02111-1307 USA. */
  99713. + License along with the GNU C Library; if not, see
  99714. + <http://www.gnu.org/licenses/>. */
  99715. #include <locale.h>
  99716. #include <stdio.h>
  99717. diff -Nur uClibc-0.9.33.2/test/locale/tst-wctype.c uClibc-git/test/locale/tst-wctype.c
  99718. --- uClibc-0.9.33.2/test/locale/tst-wctype.c 2012-05-15 09:20:09.000000000 +0200
  99719. +++ uClibc-git/test/locale/tst-wctype.c 2014-06-02 17:40:35.262718892 +0200
  99720. @@ -14,9 +14,8 @@
  99721. Lesser General Public License for more details.
  99722. You should have received a copy of the GNU Lesser General Public
  99723. - License along with the GNU C Library; if not, write to the Free
  99724. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99725. - 02111-1307 USA. */
  99726. + License along with the GNU C Library; if not, see
  99727. + <http://www.gnu.org/licenses/>. */
  99728. #include <error.h>
  99729. #include <locale.h>
  99730. diff -Nur uClibc-0.9.33.2/test/locale/xfrm-test.c uClibc-git/test/locale/xfrm-test.c
  99731. --- uClibc-0.9.33.2/test/locale/xfrm-test.c 2012-05-15 09:20:09.000000000 +0200
  99732. +++ uClibc-git/test/locale/xfrm-test.c 2014-06-02 17:40:35.262718892 +0200
  99733. @@ -14,9 +14,8 @@
  99734. Lesser General Public License for more details.
  99735. You should have received a copy of the GNU Lesser General Public
  99736. - License along with the GNU C Library; if not, write to the Free
  99737. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99738. - 02111-1307 USA. */
  99739. + License along with the GNU C Library; if not, see
  99740. + <http://www.gnu.org/licenses/>. */
  99741. #include <ctype.h>
  99742. #include <error.h>
  99743. diff -Nur uClibc-0.9.33.2/test/locale-mbwc/Makefile uClibc-git/test/locale-mbwc/Makefile
  99744. --- uClibc-0.9.33.2/test/locale-mbwc/Makefile 2012-05-15 09:20:09.000000000 +0200
  99745. +++ uClibc-git/test/locale-mbwc/Makefile 2014-06-02 17:40:35.218718649 +0200
  99746. @@ -2,6 +2,7 @@
  99747. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99748. top_builddir=../../
  99749. +top_srcdir=../../
  99750. include ../Rules.mak
  99751. -include Makefile.in
  99752. include ../Test.mak
  99753. diff -Nur uClibc-0.9.33.2/test/Makefile uClibc-git/test/Makefile
  99754. --- uClibc-0.9.33.2/test/Makefile 2012-05-15 09:20:09.000000000 +0200
  99755. +++ uClibc-git/test/Makefile 2014-06-02 17:40:35.206718582 +0200
  99756. @@ -5,6 +5,7 @@
  99757. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99758. #
  99759. +top_srcdir=../
  99760. top_builddir=../
  99761. include Rules.mak
  99762. @@ -46,9 +47,9 @@
  99763. run: compile subdirs_run
  99764. -compile: $(top_builddir)/$(LOCAL_INSTALL_PATH) subdirs_compile
  99765. +compile: $(top_builddir)$(LOCAL_INSTALL_PATH) subdirs_compile
  99766. -$(top_builddir)/$(LOCAL_INSTALL_PATH):
  99767. +$(top_builddir)$(LOCAL_INSTALL_PATH):
  99768. $(Q)$(MAKE) -C $(top_builddir) $(LOCAL_INSTALL_PATH)
  99769. tags:
  99770. @@ -62,13 +63,16 @@
  99771. subdirs_clean: $(patsubst %, _dirclean_%, $(ALL_SUBDIRS))
  99772. $(patsubst %, _dir_%, $(DIRS)) : dummy
  99773. - $(Q)$(MAKE) -C $(patsubst _dir_%, %, $@)
  99774. + $(Q)$(MAKE) -C $(patsubst _dir_%, %, $@) \
  99775. + KCONFIG_CONFIG=$(KCONFIG_CONFIG)
  99776. $(patsubst %, _dirrun_%, $(DIRS)) : dummy
  99777. - $(Q)$(MAKE) -C $(patsubst _dirrun_%, %, $@) run
  99778. + $(Q)$(MAKE) -C $(patsubst _dirrun_%, %, $@) run \
  99779. + KCONFIG_CONFIG=$(KCONFIG_CONFIG)
  99780. $(patsubst %, _dircompile_%, $(DIRS)) : dummy
  99781. - $(Q)$(MAKE) -C $(patsubst _dircompile_%, %, $@) compile
  99782. + $(Q)$(MAKE) -C $(patsubst _dircompile_%, %, $@) compile \
  99783. + KCONFIG_CONFIG=$(KCONFIG_CONFIG)
  99784. $(patsubst %, _dirclean_%, $(ALL_SUBDIRS)) : dummy
  99785. $(Q)$(MAKE) -C $(patsubst _dirclean_%, %, $@) clean
  99786. diff -Nur uClibc-0.9.33.2/test/malloc/Makefile uClibc-git/test/malloc/Makefile
  99787. --- uClibc-0.9.33.2/test/malloc/Makefile 2012-05-15 09:20:09.000000000 +0200
  99788. +++ uClibc-git/test/malloc/Makefile 2014-06-02 17:40:35.262718892 +0200
  99789. @@ -2,6 +2,7 @@
  99790. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99791. top_builddir=../../
  99792. +top_srcdir=../../
  99793. include ../Rules.mak
  99794. -include Makefile.in
  99795. include ../Test.mak
  99796. diff -Nur uClibc-0.9.33.2/test/malloc/Makefile.in uClibc-git/test/malloc/Makefile.in
  99797. --- uClibc-0.9.33.2/test/malloc/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  99798. +++ uClibc-git/test/malloc/Makefile.in 2014-06-02 17:40:35.262718892 +0200
  99799. @@ -2,3 +2,11 @@
  99800. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  99801. TESTS_DISABLED := time_malloc
  99802. +
  99803. +ifneq ($(UCLIBC_SUSV2_LEGACY),y)
  99804. +TESTS_DISABLED += tst-valloc
  99805. +endif
  99806. +
  99807. +ifneq ($(UCLIBC_HAS_OBSTACK),y)
  99808. +TESTS_DISABLED += tst-obstack
  99809. +endif
  99810. diff -Nur uClibc-0.9.33.2/test/malloc/tst-calloc.c uClibc-git/test/malloc/tst-calloc.c
  99811. --- uClibc-0.9.33.2/test/malloc/tst-calloc.c 2012-05-15 09:20:09.000000000 +0200
  99812. +++ uClibc-git/test/malloc/tst-calloc.c 2014-06-02 17:40:35.266718914 +0200
  99813. @@ -13,9 +13,8 @@
  99814. Lesser General Public License for more details.
  99815. You should have received a copy of the GNU Lesser General Public
  99816. - License along with the GNU C Library; if not, write to the Free
  99817. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99818. - 02111-1307 USA. */
  99819. + License along with the GNU C Library; if not, see
  99820. + <http://www.gnu.org/licenses/>. */
  99821. #include <errno.h>
  99822. #include <limits.h>
  99823. diff -Nur uClibc-0.9.33.2/test/malloc/tst-malloc.c uClibc-git/test/malloc/tst-malloc.c
  99824. --- uClibc-0.9.33.2/test/malloc/tst-malloc.c 2012-05-15 09:20:09.000000000 +0200
  99825. +++ uClibc-git/test/malloc/tst-malloc.c 2014-06-02 17:40:35.266718914 +0200
  99826. @@ -13,9 +13,8 @@
  99827. Lesser General Public License for more details.
  99828. You should have received a copy of the GNU Lesser General Public
  99829. - License along with the GNU C Library; if not, write to the Free
  99830. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99831. - 02111-1307 USA. */
  99832. + License along with the GNU C Library; if not, see
  99833. + <http://www.gnu.org/licenses/>. */
  99834. #include <errno.h>
  99835. #include <malloc.h>
  99836. diff -Nur uClibc-0.9.33.2/test/malloc/tst-mcheck.c uClibc-git/test/malloc/tst-mcheck.c
  99837. --- uClibc-0.9.33.2/test/malloc/tst-mcheck.c 2012-05-15 09:20:09.000000000 +0200
  99838. +++ uClibc-git/test/malloc/tst-mcheck.c 2014-06-02 17:40:35.266718914 +0200
  99839. @@ -13,9 +13,8 @@
  99840. Lesser General Public License for more details.
  99841. You should have received a copy of the GNU Lesser General Public
  99842. - License along with the GNU C Library; if not, write to the Free
  99843. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99844. - 02111-1307 USA. */
  99845. + License along with the GNU C Library; if not, see
  99846. + <http://www.gnu.org/licenses/>. */
  99847. #include <errno.h>
  99848. #include <stdio.h>
  99849. diff -Nur uClibc-0.9.33.2/test/malloc/tst-obstack.c uClibc-git/test/malloc/tst-obstack.c
  99850. --- uClibc-0.9.33.2/test/malloc/tst-obstack.c 2012-05-15 09:20:09.000000000 +0200
  99851. +++ uClibc-git/test/malloc/tst-obstack.c 2014-06-02 17:40:35.266718914 +0200
  99852. @@ -1,4 +1,8 @@
  99853. -/* Test case by Alexandre Duret-Lutz <duret_g@epita.fr>. */
  99854. +/* Test case by Alexandre Duret-Lutz <duret_g@epita.fr>.
  99855. + * test_obstack_printf() added by Anthony G. Basile <blueness.gentoo.org>.
  99856. + */
  99857. +
  99858. +#include <features.h>
  99859. #include <obstack.h>
  99860. #include <stdint.h>
  99861. #include <stdio.h>
  99862. @@ -26,7 +30,7 @@
  99863. }
  99864. int
  99865. -main (void)
  99866. +test_obstack_alloc (void)
  99867. {
  99868. int result = 0;
  99869. int align = 2;
  99870. @@ -62,3 +66,39 @@
  99871. return result;
  99872. }
  99873. +
  99874. +int
  99875. +test_obstack_printf (void)
  99876. +{
  99877. + int result = 0;
  99878. + int n;
  99879. + char *s;
  99880. + struct obstack ob;
  99881. +
  99882. + obstack_init (&ob);
  99883. +
  99884. + n = obstack_printf (&ob, "%s%d%c", "testing 1 ... 2 ... ", 3, '\n');
  99885. + result |= (n != 22);
  99886. + printf("obstack_printf => %d\n", n);
  99887. +
  99888. + n = obstack_printf (&ob, "%s%d%c", "testing 3 ... 2 ... ", 1, '\0');
  99889. + result |= (n != 22);
  99890. + printf("obstack_printf => %d\n", n);
  99891. +
  99892. + s = obstack_finish (&ob);
  99893. + printf("obstack_printf => %s\n", s);
  99894. + obstack_free (&ob, NULL);
  99895. +
  99896. + return result;
  99897. +}
  99898. +
  99899. +int
  99900. +main (void)
  99901. +{
  99902. + int result = 0;
  99903. +
  99904. + result |= test_obstack_alloc();
  99905. + result |= test_obstack_printf();
  99906. +
  99907. + return result;
  99908. +}
  99909. diff -Nur uClibc-0.9.33.2/test/math/basic-test.c uClibc-git/test/math/basic-test.c
  99910. --- uClibc-0.9.33.2/test/math/basic-test.c 2012-05-15 09:20:09.000000000 +0200
  99911. +++ uClibc-git/test/math/basic-test.c 2014-06-02 17:40:35.266718914 +0200
  99912. @@ -13,9 +13,8 @@
  99913. Lesser General Public License for more details.
  99914. You should have received a copy of the GNU Lesser General Public
  99915. - License along with the GNU C Library; if not, write to the Free
  99916. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  99917. - 02111-1307 USA. */
  99918. + License along with the GNU C Library; if not, see
  99919. + <http://www.gnu.org/licenses/>. */
  99920. #define _ISOC99_SOURCE
  99921. @@ -65,11 +64,6 @@
  99922. check (#FLOAT " !isnan (1)", !(isnan (one_var))); \
  99923. check (#FLOAT " !isnan (inf)", !(isnan (Inf_var))); \
  99924. \
  99925. - check (#FLOAT " inf == inf", Inf_var == Inf_var); \
  99926. - check (#FLOAT " -inf == -inf", -Inf_var == -Inf_var); \
  99927. - check (#FLOAT " inf != -inf", Inf_var != -Inf_var); \
  99928. - check (#FLOAT " NaN != NaN", NaN_var != NaN_var); \
  99929. - \
  99930. /* \
  99931. the same tests but this time with NAN from <bits/nan.h> \
  99932. NAN is a double const \
  99933. @@ -78,7 +72,6 @@
  99934. check (#FLOAT " isnan (-NAN)", isnan (-NAN)); \
  99935. check (#FLOAT " !isinf (NAN)", !(isinf (NAN))); \
  99936. check (#FLOAT " !isinf (-NAN)", !(isinf (-NAN))); \
  99937. - check (#FLOAT " NAN != NAN", NAN != NAN); \
  99938. \
  99939. /* \
  99940. And again with the value returned by the `nan' function. \
  99941. @@ -89,6 +82,48 @@
  99942. check (#FLOAT " !isinf (-NAN)", !(isinf (-NANFUNC ("")))); \
  99943. check (#FLOAT " NAN != NAN", NANFUNC ("") != NANFUNC ("")); \
  99944. \
  99945. + /* test if HUGE_VALx is ok */ \
  99946. + x1 = HUGEVAL; \
  99947. + check (#FLOAT " isinf (HUGE_VALx) == +1", isinf (x1) == +1); \
  99948. + x1 = - HUGEVAL; \
  99949. + check (#FLOAT " isinf (-HUGE_VALx) == -1", isinf (x1) == -1); \
  99950. +}
  99951. +#ifndef DO_C99_MATH
  99952. +# undef TEST_FUNC
  99953. +# define TEST_FUNC(NAME, FLOAT, NANFUNC, EPSILON, HUGEVAL) \
  99954. +static void \
  99955. +NAME(void) \
  99956. +{ /* nothing */ }
  99957. +#endif
  99958. +
  99959. +#define TEST_VAL(NAME, FLOAT, NANFUNC, EPSILON, HUGEVAL) \
  99960. +static void \
  99961. +NAME (void) \
  99962. +{ \
  99963. + /* Variables are declared volatile to forbid some compiler \
  99964. + optimizations. */ \
  99965. + volatile FLOAT Inf_var, NaN_var, zero_var, one_var; \
  99966. + FLOAT x1, x2; \
  99967. + \
  99968. + zero_var = 0.0; \
  99969. + one_var = 1.0; \
  99970. + NaN_var = zero_var/zero_var; \
  99971. + Inf_var = one_var / zero_var; \
  99972. + \
  99973. + (void) &zero_var; \
  99974. + (void) &one_var; \
  99975. + (void) &NaN_var; \
  99976. + (void) &Inf_var; \
  99977. + \
  99978. + \
  99979. + check (#FLOAT " inf == inf", Inf_var == Inf_var); \
  99980. + check (#FLOAT " -inf == -inf", -Inf_var == -Inf_var); \
  99981. + check (#FLOAT " inf != -inf", Inf_var != -Inf_var); \
  99982. + check (#FLOAT " NaN != NaN", NaN_var != NaN_var); \
  99983. + \
  99984. + check (#FLOAT " NAN != NAN", NAN != NAN); \
  99985. + \
  99986. + \
  99987. /* test if EPSILON is ok */ \
  99988. x1 = 1.0; \
  99989. x2 = x1 + EPSILON; \
  99990. @@ -98,27 +133,28 @@
  99991. x2 = x1 - EPSILON; \
  99992. check (#FLOAT " 1 != 1-EPSILON", x1 != x2); \
  99993. \
  99994. - /* test if HUGE_VALx is ok */ \
  99995. - x1 = HUGEVAL; \
  99996. - check (#FLOAT " isinf (HUGE_VALx) == +1", isinf (x1) == +1); \
  99997. - x1 = - HUGEVAL; \
  99998. - check (#FLOAT " isinf (-HUGE_VALx) == -1", isinf (x1) == -1); \
  99999. }
  100000. -TEST_FUNC (float_test, float, nanf, FLT_EPSILON, HUGE_VALF)
  100001. -TEST_FUNC (double_test, double, nan, DBL_EPSILON, HUGE_VAL)
  100002. +TEST_VAL (float_test_value, float, nanf, FLT_EPSILON, HUGE_VALF)
  100003. +TEST_FUNC (float_test_call, float, nanf, FLT_EPSILON, HUGE_VALF)
  100004. +TEST_VAL (double_test_value, double, nan, DBL_EPSILON, HUGE_VAL)
  100005. +TEST_FUNC (double_test_call, double, nan, DBL_EPSILON, HUGE_VAL)
  100006. #ifndef NO_LONG_DOUBLE
  100007. -TEST_FUNC (ldouble_test, long double, nanl, LDBL_EPSILON, HUGE_VALL)
  100008. +TEST_VAL (ldouble_test_value, long double, nanl, LDBL_EPSILON, HUGE_VALL)
  100009. +TEST_FUNC (ldouble_test_call, long double, nanl, LDBL_EPSILON, HUGE_VALL)
  100010. #endif
  100011. int
  100012. main (void)
  100013. {
  100014. - float_test ();
  100015. - double_test ();
  100016. + float_test_value ();
  100017. + float_test_call ();
  100018. + double_test_value ();
  100019. + double_test_call ();
  100020. #ifndef NO_LONG_DOUBLE
  100021. - ldouble_test ();
  100022. + ldouble_test_value ();
  100023. + ldouble_test_call ();
  100024. #endif
  100025. return errors != 0;
  100026. diff -Nur uClibc-0.9.33.2/test/math/gen-libm-test.pl uClibc-git/test/math/gen-libm-test.pl
  100027. --- uClibc-0.9.33.2/test/math/gen-libm-test.pl 2012-05-15 09:20:09.000000000 +0200
  100028. +++ uClibc-git/test/math/gen-libm-test.pl 2014-06-02 17:40:35.266718914 +0200
  100029. @@ -14,9 +14,8 @@
  100030. # Lesser General Public License for more details.
  100031. # You should have received a copy of the GNU Lesser General Public
  100032. -# License along with the GNU C Library; if not, write to the Free
  100033. -# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  100034. -# 02111-1307 USA.
  100035. +# License along with the GNU C Library; see the file COPYING.LIB. If
  100036. +# not, see <http://www.gnu.org/licenses/>.
  100037. # This file needs to be tidied up
  100038. # Note that functions and tests share the same namespace.
  100039. diff -Nur uClibc-0.9.33.2/test/math/libm-test.inc uClibc-git/test/math/libm-test.inc
  100040. --- uClibc-0.9.33.2/test/math/libm-test.inc 2012-05-15 09:20:09.000000000 +0200
  100041. +++ uClibc-git/test/math/libm-test.inc 2014-06-02 17:40:35.270718936 +0200
  100042. @@ -13,9 +13,8 @@
  100043. Lesser General Public License for more details.
  100044. You should have received a copy of the GNU Lesser General Public
  100045. - License along with the GNU C Library; if not, write to the Free
  100046. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  100047. - 02111-1307 USA. */
  100048. + License along with the GNU C Library; if not, see
  100049. + <http://www.gnu.org/licenses/>. */
  100050. /* Part of testsuite for libm.
  100051. diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-arm uClibc-git/test/math/libm-test-ulps-arm
  100052. --- uClibc-0.9.33.2/test/math/libm-test-ulps-arm 1970-01-01 01:00:00.000000000 +0100
  100053. +++ uClibc-git/test/math/libm-test-ulps-arm 2014-06-02 17:40:35.266718914 +0200
  100054. @@ -0,0 +1,4981 @@
  100055. +# Begin of automatic generation
  100056. +
  100057. +# acos_downward
  100058. +Test "acos_downward (-0)":
  100059. +float: 1
  100060. +ifloat: 1
  100061. +Test "acos_downward (-0.5)":
  100062. +double: 1
  100063. +idouble: 1
  100064. +Test "acos_downward (-1)":
  100065. +float: 1
  100066. +ifloat: 1
  100067. +Test "acos_downward (0)":
  100068. +float: 1
  100069. +ifloat: 1
  100070. +Test "acos_downward (0.5)":
  100071. +double: 1
  100072. +float: 1
  100073. +idouble: 1
  100074. +ifloat: 1
  100075. +
  100076. +# acos_towardzero
  100077. +Test "acos_towardzero (-0)":
  100078. +float: 1
  100079. +ifloat: 1
  100080. +Test "acos_towardzero (-0.5)":
  100081. +double: 1
  100082. +idouble: 1
  100083. +Test "acos_towardzero (-1)":
  100084. +float: 1
  100085. +ifloat: 1
  100086. +Test "acos_towardzero (0)":
  100087. +float: 1
  100088. +ifloat: 1
  100089. +Test "acos_towardzero (0.5)":
  100090. +double: 1
  100091. +float: 1
  100092. +idouble: 1
  100093. +ifloat: 1
  100094. +
  100095. +# asin_downward
  100096. +Test "asin_downward (-0.5)":
  100097. +double: 1
  100098. +idouble: 1
  100099. +Test "asin_downward (0.5)":
  100100. +double: 1
  100101. +idouble: 1
  100102. +Test "asin_downward (1.0)":
  100103. +float: 1
  100104. +ifloat: 1
  100105. +
  100106. +# asin_towardzero
  100107. +Test "asin_towardzero (-0.5)":
  100108. +double: 1
  100109. +idouble: 1
  100110. +Test "asin_towardzero (-1.0)":
  100111. +float: 1
  100112. +ifloat: 1
  100113. +Test "asin_towardzero (0.5)":
  100114. +double: 1
  100115. +idouble: 1
  100116. +Test "asin_towardzero (1.0)":
  100117. +float: 1
  100118. +ifloat: 1
  100119. +
  100120. +# asin_upward
  100121. +Test "asin_upward (-1.0)":
  100122. +float: 1
  100123. +ifloat: 1
  100124. +
  100125. +# atan2
  100126. +Test "atan2 (-0.75, -1.0)":
  100127. +float: 1
  100128. +ifloat: 1
  100129. +Test "atan2 (-max_value, -min_value)":
  100130. +float: 1
  100131. +ifloat: 1
  100132. +Test "atan2 (0.75, -1.0)":
  100133. +float: 1
  100134. +ifloat: 1
  100135. +Test "atan2 (1.390625, 0.9296875)":
  100136. +float: 1
  100137. +ifloat: 1
  100138. +
  100139. +# atanh
  100140. +Test "atanh (0.75)":
  100141. +float: 1
  100142. +ifloat: 1
  100143. +
  100144. +# cacos
  100145. +Test "Imaginary part of: cacos (+0 + 0.5 i)":
  100146. +float: 1
  100147. +ifloat: 1
  100148. +Test "Imaginary part of: cacos (+0 + 1.0 i)":
  100149. +double: 1
  100150. +float: 1
  100151. +idouble: 1
  100152. +ifloat: 1
  100153. +Test "Imaginary part of: cacos (+0 + 1.5 i)":
  100154. +double: 1
  100155. +idouble: 1
  100156. +Test "Imaginary part of: cacos (+0 - 0.5 i)":
  100157. +float: 1
  100158. +ifloat: 1
  100159. +Test "Imaginary part of: cacos (+0 - 1.0 i)":
  100160. +double: 1
  100161. +float: 1
  100162. +idouble: 1
  100163. +ifloat: 1
  100164. +Test "Imaginary part of: cacos (+0 - 1.5 i)":
  100165. +double: 1
  100166. +idouble: 1
  100167. +Test "Imaginary part of: cacos (-0 + 0.5 i)":
  100168. +float: 1
  100169. +ifloat: 1
  100170. +Test "Imaginary part of: cacos (-0 + 1.0 i)":
  100171. +double: 1
  100172. +float: 1
  100173. +idouble: 1
  100174. +ifloat: 1
  100175. +Test "Imaginary part of: cacos (-0 + 1.5 i)":
  100176. +double: 1
  100177. +idouble: 1
  100178. +Test "Imaginary part of: cacos (-0 - 0.5 i)":
  100179. +float: 1
  100180. +ifloat: 1
  100181. +Test "Imaginary part of: cacos (-0 - 1.0 i)":
  100182. +double: 1
  100183. +float: 1
  100184. +idouble: 1
  100185. +ifloat: 1
  100186. +Test "Imaginary part of: cacos (-0 - 1.5 i)":
  100187. +double: 1
  100188. +idouble: 1
  100189. +Test "Real part of: cacos (-0.25 + 1.0 i)":
  100190. +double: 1
  100191. +float: 1
  100192. +idouble: 1
  100193. +ifloat: 1
  100194. +Test "Imaginary part of: cacos (-0.25 + 1.0 i)":
  100195. +float: 1
  100196. +ifloat: 1
  100197. +Test "Real part of: cacos (-0.25 - 1.0 i)":
  100198. +double: 1
  100199. +float: 1
  100200. +idouble: 1
  100201. +ifloat: 1
  100202. +Test "Imaginary part of: cacos (-0.25 - 1.0 i)":
  100203. +float: 1
  100204. +ifloat: 1
  100205. +Test "Imaginary part of: cacos (-0.5 + 0x1.fp-129 i)":
  100206. +double: 1
  100207. +idouble: 1
  100208. +Test "Imaginary part of: cacos (-0.5 + 0x1p-105 i)":
  100209. +double: 1
  100210. +idouble: 1
  100211. +Test "Imaginary part of: cacos (-0.5 + 0x1p-112 i)":
  100212. +double: 1
  100213. +idouble: 1
  100214. +Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i)":
  100215. +double: 1
  100216. +idouble: 1
  100217. +Test "Real part of: cacos (-0.5 + 1.0 i)":
  100218. +float: 1
  100219. +ifloat: 1
  100220. +Test "Imaginary part of: cacos (-0.5 + 1.0 i)":
  100221. +double: 1
  100222. +idouble: 1
  100223. +Test "Imaginary part of: cacos (-0.5 - 0x1.fp-129 i)":
  100224. +double: 1
  100225. +idouble: 1
  100226. +Test "Imaginary part of: cacos (-0.5 - 0x1p-105 i)":
  100227. +double: 1
  100228. +idouble: 1
  100229. +Test "Imaginary part of: cacos (-0.5 - 0x1p-112 i)":
  100230. +double: 1
  100231. +idouble: 1
  100232. +Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i)":
  100233. +double: 1
  100234. +idouble: 1
  100235. +Test "Real part of: cacos (-0.5 - 1.0 i)":
  100236. +float: 1
  100237. +ifloat: 1
  100238. +Test "Imaginary part of: cacos (-0.5 - 1.0 i)":
  100239. +double: 1
  100240. +idouble: 1
  100241. +Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  100242. +double: 1
  100243. +idouble: 1
  100244. +Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  100245. +double: 1
  100246. +idouble: 1
  100247. +Test "Imaginary part of: cacos (-0x0.ffffffp0 + 0x1p-23 i)":
  100248. +float: 2
  100249. +ifloat: 2
  100250. +Test "Imaginary part of: cacos (-0x0.ffffffp0 - 0x1p-23 i)":
  100251. +float: 2
  100252. +ifloat: 2
  100253. +Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i)":
  100254. +float: 1
  100255. +ifloat: 1
  100256. +Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1p-23 i)":
  100257. +float: 1
  100258. +ifloat: 1
  100259. +Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i)":
  100260. +double: 1
  100261. +idouble: 1
  100262. +Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i)":
  100263. +double: 1
  100264. +idouble: 1
  100265. +Test "Real part of: cacos (-0x1.fp-100 + 1.0 i)":
  100266. +float: 1
  100267. +ifloat: 1
  100268. +Test "Imaginary part of: cacos (-0x1.fp-100 + 1.0 i)":
  100269. +double: 1
  100270. +float: 1
  100271. +idouble: 1
  100272. +ifloat: 1
  100273. +Test "Real part of: cacos (-0x1.fp-100 - 1.0 i)":
  100274. +float: 1
  100275. +ifloat: 1
  100276. +Test "Imaginary part of: cacos (-0x1.fp-100 - 1.0 i)":
  100277. +double: 1
  100278. +float: 1
  100279. +idouble: 1
  100280. +ifloat: 1
  100281. +Test "Imaginary part of: cacos (-0x1.fp-1000 + 1.0 i)":
  100282. +double: 1
  100283. +idouble: 1
  100284. +Test "Imaginary part of: cacos (-0x1.fp-1000 - 1.0 i)":
  100285. +double: 1
  100286. +idouble: 1
  100287. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.0 i)":
  100288. +double: 1
  100289. +idouble: 1
  100290. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i)":
  100291. +double: 1
  100292. +idouble: 1
  100293. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.0 i)":
  100294. +double: 1
  100295. +idouble: 1
  100296. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i)":
  100297. +double: 1
  100298. +idouble: 1
  100299. +Test "Real part of: cacos (-0x1.fp-129 + 0.5 i)":
  100300. +float: 1
  100301. +ifloat: 1
  100302. +Test "Imaginary part of: cacos (-0x1.fp-129 + 0.5 i)":
  100303. +float: 1
  100304. +ifloat: 1
  100305. +Test "Real part of: cacos (-0x1.fp-129 + 0x0.ffffffp0 i)":
  100306. +float: 1
  100307. +ifloat: 1
  100308. +Test "Real part of: cacos (-0x1.fp-129 + 0x1.000002p0 i)":
  100309. +float: 1
  100310. +ifloat: 1
  100311. +Test "Real part of: cacos (-0x1.fp-129 + 0x1.fp-129 i)":
  100312. +float: 1
  100313. +ifloat: 1
  100314. +Test "Real part of: cacos (-0x1.fp-129 + 0x1p-23 i)":
  100315. +float: 1
  100316. +ifloat: 1
  100317. +Test "Real part of: cacos (-0x1.fp-129 + 1.0 i)":
  100318. +float: 1
  100319. +ifloat: 1
  100320. +Test "Imaginary part of: cacos (-0x1.fp-129 + 1.0 i)":
  100321. +double: 1
  100322. +float: 1
  100323. +idouble: 1
  100324. +ifloat: 1
  100325. +Test "Real part of: cacos (-0x1.fp-129 + 1.5 i)":
  100326. +float: 1
  100327. +ifloat: 1
  100328. +Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i)":
  100329. +double: 1
  100330. +idouble: 1
  100331. +Test "Real part of: cacos (-0x1.fp-129 - 0.5 i)":
  100332. +float: 1
  100333. +ifloat: 1
  100334. +Test "Imaginary part of: cacos (-0x1.fp-129 - 0.5 i)":
  100335. +float: 1
  100336. +ifloat: 1
  100337. +Test "Real part of: cacos (-0x1.fp-129 - 0x0.ffffffp0 i)":
  100338. +float: 1
  100339. +ifloat: 1
  100340. +Test "Real part of: cacos (-0x1.fp-129 - 0x1.000002p0 i)":
  100341. +float: 1
  100342. +ifloat: 1
  100343. +Test "Real part of: cacos (-0x1.fp-129 - 0x1.fp-129 i)":
  100344. +float: 1
  100345. +ifloat: 1
  100346. +Test "Real part of: cacos (-0x1.fp-129 - 0x1p-23 i)":
  100347. +float: 1
  100348. +ifloat: 1
  100349. +Test "Real part of: cacos (-0x1.fp-129 - 1.0 i)":
  100350. +float: 1
  100351. +ifloat: 1
  100352. +Test "Imaginary part of: cacos (-0x1.fp-129 - 1.0 i)":
  100353. +double: 1
  100354. +float: 1
  100355. +idouble: 1
  100356. +ifloat: 1
  100357. +Test "Real part of: cacos (-0x1.fp-129 - 1.5 i)":
  100358. +float: 1
  100359. +ifloat: 1
  100360. +Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i)":
  100361. +double: 1
  100362. +idouble: 1
  100363. +Test "Real part of: cacos (-0x1.fp-30 + 1.0 i)":
  100364. +float: 1
  100365. +ifloat: 1
  100366. +Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i)":
  100367. +double: 1
  100368. +float: 1
  100369. +idouble: 1
  100370. +ifloat: 1
  100371. +Test "Real part of: cacos (-0x1.fp-30 - 1.0 i)":
  100372. +float: 1
  100373. +ifloat: 1
  100374. +Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i)":
  100375. +double: 1
  100376. +float: 1
  100377. +idouble: 1
  100378. +ifloat: 1
  100379. +Test "Real part of: cacos (-0x1p-105 + 0.0 i)":
  100380. +float: 1
  100381. +ifloat: 1
  100382. +Test "Real part of: cacos (-0x1p-105 + 0.5 i)":
  100383. +float: 1
  100384. +ifloat: 1
  100385. +Test "Imaginary part of: cacos (-0x1p-105 + 0.5 i)":
  100386. +float: 1
  100387. +ifloat: 1
  100388. +Test "Real part of: cacos (-0x1p-105 + 0x1p-105 i)":
  100389. +float: 1
  100390. +ifloat: 1
  100391. +Test "Real part of: cacos (-0x1p-105 - 0.0 i)":
  100392. +float: 1
  100393. +ifloat: 1
  100394. +Test "Real part of: cacos (-0x1p-105 - 0.5 i)":
  100395. +float: 1
  100396. +ifloat: 1
  100397. +Test "Imaginary part of: cacos (-0x1p-105 - 0.5 i)":
  100398. +float: 1
  100399. +ifloat: 1
  100400. +Test "Real part of: cacos (-0x1p-105 - 0x1p-105 i)":
  100401. +float: 1
  100402. +ifloat: 1
  100403. +Test "Real part of: cacos (-0x1p-112 + 0.0 i)":
  100404. +float: 1
  100405. +ifloat: 1
  100406. +Test "Real part of: cacos (-0x1p-112 + 0.5 i)":
  100407. +float: 1
  100408. +ifloat: 1
  100409. +Test "Imaginary part of: cacos (-0x1p-112 + 0.5 i)":
  100410. +float: 1
  100411. +ifloat: 1
  100412. +Test "Real part of: cacos (-0x1p-112 + 0x1p-112 i)":
  100413. +float: 1
  100414. +ifloat: 1
  100415. +Test "Real part of: cacos (-0x1p-112 - 0.0 i)":
  100416. +float: 1
  100417. +ifloat: 1
  100418. +Test "Real part of: cacos (-0x1p-112 - 0.5 i)":
  100419. +float: 1
  100420. +ifloat: 1
  100421. +Test "Imaginary part of: cacos (-0x1p-112 - 0.5 i)":
  100422. +float: 1
  100423. +ifloat: 1
  100424. +Test "Real part of: cacos (-0x1p-112 - 0x1p-112 i)":
  100425. +float: 1
  100426. +ifloat: 1
  100427. +Test "Real part of: cacos (-0x1p-23 + 0.0 i)":
  100428. +float: 1
  100429. +ifloat: 1
  100430. +Test "Real part of: cacos (-0x1p-23 + 0.5 i)":
  100431. +float: 1
  100432. +ifloat: 1
  100433. +Test "Imaginary part of: cacos (-0x1p-23 + 0.5 i)":
  100434. +float: 1
  100435. +ifloat: 1
  100436. +Test "Imaginary part of: cacos (-0x1p-23 + 0x0.ffffffp0 i)":
  100437. +double: 1
  100438. +idouble: 1
  100439. +Test "Real part of: cacos (-0x1p-23 + 0x1.fp-129 i)":
  100440. +float: 1
  100441. +ifloat: 1
  100442. +Test "Real part of: cacos (-0x1p-23 + 0x1p-23 i)":
  100443. +float: 1
  100444. +ifloat: 1
  100445. +Test "Real part of: cacos (-0x1p-23 - 0.0 i)":
  100446. +float: 1
  100447. +ifloat: 1
  100448. +Test "Real part of: cacos (-0x1p-23 - 0.5 i)":
  100449. +float: 1
  100450. +ifloat: 1
  100451. +Test "Imaginary part of: cacos (-0x1p-23 - 0.5 i)":
  100452. +float: 1
  100453. +ifloat: 1
  100454. +Test "Imaginary part of: cacos (-0x1p-23 - 0x0.ffffffp0 i)":
  100455. +double: 1
  100456. +idouble: 1
  100457. +Test "Real part of: cacos (-0x1p-23 - 0x1.fp-129 i)":
  100458. +float: 1
  100459. +ifloat: 1
  100460. +Test "Real part of: cacos (-0x1p-23 - 0x1p-23 i)":
  100461. +float: 1
  100462. +ifloat: 1
  100463. +Test "Real part of: cacos (-0x1p-52 + 0.0 i)":
  100464. +float: 1
  100465. +ifloat: 1
  100466. +Test "Real part of: cacos (-0x1p-52 + 0.5 i)":
  100467. +float: 1
  100468. +ifloat: 1
  100469. +Test "Imaginary part of: cacos (-0x1p-52 + 0.5 i)":
  100470. +float: 1
  100471. +ifloat: 1
  100472. +Test "Real part of: cacos (-0x1p-52 + 0x1p-52 i)":
  100473. +float: 1
  100474. +ifloat: 1
  100475. +Test "Real part of: cacos (-0x1p-52 - 0.0 i)":
  100476. +float: 1
  100477. +ifloat: 1
  100478. +Test "Real part of: cacos (-0x1p-52 - 0.5 i)":
  100479. +float: 1
  100480. +ifloat: 1
  100481. +Test "Imaginary part of: cacos (-0x1p-52 - 0.5 i)":
  100482. +float: 1
  100483. +ifloat: 1
  100484. +Test "Real part of: cacos (-0x1p-52 - 0x1p-52 i)":
  100485. +float: 1
  100486. +ifloat: 1
  100487. +Test "Real part of: cacos (-0x1p-63 + 0.0 i)":
  100488. +float: 1
  100489. +ifloat: 1
  100490. +Test "Real part of: cacos (-0x1p-63 + 0.5 i)":
  100491. +float: 1
  100492. +ifloat: 1
  100493. +Test "Imaginary part of: cacos (-0x1p-63 + 0.5 i)":
  100494. +float: 1
  100495. +ifloat: 1
  100496. +Test "Real part of: cacos (-0x1p-63 + 0x1p-63 i)":
  100497. +float: 1
  100498. +ifloat: 1
  100499. +Test "Real part of: cacos (-0x1p-63 - 0.0 i)":
  100500. +float: 1
  100501. +ifloat: 1
  100502. +Test "Real part of: cacos (-0x1p-63 - 0.5 i)":
  100503. +float: 1
  100504. +ifloat: 1
  100505. +Test "Imaginary part of: cacos (-0x1p-63 - 0.5 i)":
  100506. +float: 1
  100507. +ifloat: 1
  100508. +Test "Real part of: cacos (-0x1p-63 - 0x1p-63 i)":
  100509. +float: 1
  100510. +ifloat: 1
  100511. +Test "Imaginary part of: cacos (-1.0 + 0.5 i)":
  100512. +float: 1
  100513. +ifloat: 1
  100514. +Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i)":
  100515. +float: 1
  100516. +ifloat: 1
  100517. +Test "Real part of: cacos (-1.0 + 0x1p50 i)":
  100518. +float: 1
  100519. +ifloat: 1
  100520. +Test "Imaginary part of: cacos (-1.0 - 0.5 i)":
  100521. +float: 1
  100522. +ifloat: 1
  100523. +Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i)":
  100524. +float: 1
  100525. +ifloat: 1
  100526. +Test "Real part of: cacos (-1.0 - 0x1p50 i)":
  100527. +float: 1
  100528. +ifloat: 1
  100529. +Test "Real part of: cacos (-2 - 3 i)":
  100530. +float: 1
  100531. +ifloat: 1
  100532. +Test "Imaginary part of: cacos (0.25 + 1.0 i)":
  100533. +float: 1
  100534. +ifloat: 1
  100535. +Test "Imaginary part of: cacos (0.25 - 1.0 i)":
  100536. +float: 1
  100537. +ifloat: 1
  100538. +Test "Real part of: cacos (0.5 + +0 i)":
  100539. +double: 1
  100540. +idouble: 1
  100541. +Test "Real part of: cacos (0.5 + 0x1.fp-1025 i)":
  100542. +double: 1
  100543. +idouble: 1
  100544. +Test "Real part of: cacos (0.5 + 0x1.fp-129 i)":
  100545. +double: 1
  100546. +idouble: 1
  100547. +Test "Imaginary part of: cacos (0.5 + 0x1.fp-129 i)":
  100548. +double: 1
  100549. +idouble: 1
  100550. +Test "Real part of: cacos (0.5 + 0x1p-105 i)":
  100551. +double: 1
  100552. +idouble: 1
  100553. +Test "Imaginary part of: cacos (0.5 + 0x1p-105 i)":
  100554. +double: 1
  100555. +idouble: 1
  100556. +Test "Real part of: cacos (0.5 + 0x1p-112 i)":
  100557. +double: 1
  100558. +idouble: 1
  100559. +Test "Imaginary part of: cacos (0.5 + 0x1p-112 i)":
  100560. +double: 1
  100561. +idouble: 1
  100562. +Test "Imaginary part of: cacos (0.5 + 0x1p-23 i)":
  100563. +double: 1
  100564. +idouble: 1
  100565. +Test "Real part of: cacos (0.5 + 0x1p-52 i)":
  100566. +double: 1
  100567. +idouble: 1
  100568. +Test "Real part of: cacos (0.5 + 0x1p-63 i)":
  100569. +double: 1
  100570. +idouble: 1
  100571. +Test "Real part of: cacos (0.5 + 1.0 i)":
  100572. +float: 1
  100573. +ifloat: 1
  100574. +Test "Imaginary part of: cacos (0.5 + 1.0 i)":
  100575. +double: 1
  100576. +idouble: 1
  100577. +Test "Real part of: cacos (0.5 - 0 i)":
  100578. +double: 1
  100579. +idouble: 1
  100580. +Test "Real part of: cacos (0.5 - 0x1.fp-1025 i)":
  100581. +double: 1
  100582. +idouble: 1
  100583. +Test "Real part of: cacos (0.5 - 0x1.fp-129 i)":
  100584. +double: 1
  100585. +idouble: 1
  100586. +Test "Imaginary part of: cacos (0.5 - 0x1.fp-129 i)":
  100587. +double: 1
  100588. +idouble: 1
  100589. +Test "Real part of: cacos (0.5 - 0x1p-105 i)":
  100590. +double: 1
  100591. +idouble: 1
  100592. +Test "Imaginary part of: cacos (0.5 - 0x1p-105 i)":
  100593. +double: 1
  100594. +idouble: 1
  100595. +Test "Real part of: cacos (0.5 - 0x1p-112 i)":
  100596. +double: 1
  100597. +idouble: 1
  100598. +Test "Imaginary part of: cacos (0.5 - 0x1p-112 i)":
  100599. +double: 1
  100600. +idouble: 1
  100601. +Test "Imaginary part of: cacos (0.5 - 0x1p-23 i)":
  100602. +double: 1
  100603. +idouble: 1
  100604. +Test "Real part of: cacos (0.5 - 0x1p-52 i)":
  100605. +double: 1
  100606. +idouble: 1
  100607. +Test "Real part of: cacos (0.5 - 0x1p-63 i)":
  100608. +double: 1
  100609. +idouble: 1
  100610. +Test "Real part of: cacos (0.5 - 1.0 i)":
  100611. +float: 1
  100612. +ifloat: 1
  100613. +Test "Imaginary part of: cacos (0.5 - 1.0 i)":
  100614. +double: 1
  100615. +idouble: 1
  100616. +Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  100617. +double: 1
  100618. +idouble: 1
  100619. +Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  100620. +double: 1
  100621. +idouble: 1
  100622. +Test "Real part of: cacos (0x0.ffffffp0 + 0.0 i)":
  100623. +float: 1
  100624. +ifloat: 1
  100625. +Test "Real part of: cacos (0x0.ffffffp0 + 0x1.fp-129 i)":
  100626. +float: 1
  100627. +ifloat: 1
  100628. +Test "Real part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
  100629. +float: 2
  100630. +ifloat: 2
  100631. +Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
  100632. +float: 2
  100633. +ifloat: 2
  100634. +Test "Real part of: cacos (0x0.ffffffp0 - 0.0 i)":
  100635. +float: 1
  100636. +ifloat: 1
  100637. +Test "Real part of: cacos (0x0.ffffffp0 - 0x1.fp-129 i)":
  100638. +float: 1
  100639. +ifloat: 1
  100640. +Test "Real part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
  100641. +float: 2
  100642. +ifloat: 2
  100643. +Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
  100644. +float: 2
  100645. +ifloat: 2
  100646. +Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
  100647. +double: 1
  100648. +idouble: 1
  100649. +Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
  100650. +double: 1
  100651. +idouble: 1
  100652. +Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i)":
  100653. +float: 2
  100654. +ifloat: 2
  100655. +Test "Imaginary part of: cacos (0x1.000002p0 + 0x1p-23 i)":
  100656. +float: 1
  100657. +ifloat: 1
  100658. +Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i)":
  100659. +float: 2
  100660. +ifloat: 2
  100661. +Test "Imaginary part of: cacos (0x1.000002p0 - 0x1p-23 i)":
  100662. +float: 1
  100663. +ifloat: 1
  100664. +Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i)":
  100665. +double: 1
  100666. +idouble: 1
  100667. +Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i)":
  100668. +double: 1
  100669. +idouble: 1
  100670. +Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i)":
  100671. +double: 1
  100672. +float: 1
  100673. +idouble: 1
  100674. +ifloat: 1
  100675. +Test "Imaginary part of: cacos (0x1.fp-100 - 1.0 i)":
  100676. +double: 1
  100677. +float: 1
  100678. +idouble: 1
  100679. +ifloat: 1
  100680. +Test "Imaginary part of: cacos (0x1.fp-1000 + 1.0 i)":
  100681. +double: 1
  100682. +idouble: 1
  100683. +Test "Imaginary part of: cacos (0x1.fp-1000 - 1.0 i)":
  100684. +double: 1
  100685. +idouble: 1
  100686. +Test "Imaginary part of: cacos (0x1.fp-1025 + 1.0 i)":
  100687. +double: 1
  100688. +idouble: 1
  100689. +Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i)":
  100690. +double: 1
  100691. +idouble: 1
  100692. +Test "Imaginary part of: cacos (0x1.fp-1025 - 1.0 i)":
  100693. +double: 1
  100694. +idouble: 1
  100695. +Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i)":
  100696. +double: 1
  100697. +idouble: 1
  100698. +Test "Imaginary part of: cacos (0x1.fp-129 + 0.5 i)":
  100699. +float: 1
  100700. +ifloat: 1
  100701. +Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i)":
  100702. +double: 1
  100703. +float: 1
  100704. +idouble: 1
  100705. +ifloat: 1
  100706. +Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i)":
  100707. +double: 1
  100708. +idouble: 1
  100709. +Test "Imaginary part of: cacos (0x1.fp-129 - 0.5 i)":
  100710. +float: 1
  100711. +ifloat: 1
  100712. +Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i)":
  100713. +double: 1
  100714. +float: 1
  100715. +idouble: 1
  100716. +ifloat: 1
  100717. +Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i)":
  100718. +double: 1
  100719. +idouble: 1
  100720. +Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i)":
  100721. +double: 1
  100722. +float: 1
  100723. +idouble: 1
  100724. +ifloat: 1
  100725. +Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i)":
  100726. +double: 1
  100727. +float: 1
  100728. +idouble: 1
  100729. +ifloat: 1
  100730. +Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i)":
  100731. +double: 1
  100732. +idouble: 1
  100733. +Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
  100734. +double: 1
  100735. +idouble: 1
  100736. +Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
  100737. +float: 1
  100738. +ifloat: 1
  100739. +Test "Imaginary part of: cacos (0x1p-105 - 0.5 i)":
  100740. +float: 1
  100741. +ifloat: 1
  100742. +Test "Imaginary part of: cacos (0x1p-112 + 0.5 i)":
  100743. +float: 1
  100744. +ifloat: 1
  100745. +Test "Imaginary part of: cacos (0x1p-112 - 0.5 i)":
  100746. +float: 1
  100747. +ifloat: 1
  100748. +Test "Imaginary part of: cacos (0x1p-23 + 0.5 i)":
  100749. +float: 1
  100750. +ifloat: 1
  100751. +Test "Imaginary part of: cacos (0x1p-23 + 0x0.ffffffp0 i)":
  100752. +double: 1
  100753. +idouble: 1
  100754. +Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
  100755. +float: 1
  100756. +ifloat: 1
  100757. +Test "Imaginary part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
  100758. +double: 1
  100759. +idouble: 1
  100760. +Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
  100761. +float: 1
  100762. +ifloat: 1
  100763. +Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
  100764. +float: 1
  100765. +ifloat: 1
  100766. +Test "Imaginary part of: cacos (0x1p-63 + 0.5 i)":
  100767. +float: 1
  100768. +ifloat: 1
  100769. +Test "Imaginary part of: cacos (0x1p-63 - 0.5 i)":
  100770. +float: 1
  100771. +ifloat: 1
  100772. +Test "Real part of: cacos (1.0 + 0.25 i)":
  100773. +double: 1
  100774. +idouble: 1
  100775. +Test "Real part of: cacos (1.0 + 0.5 i)":
  100776. +float: 1
  100777. +ifloat: 1
  100778. +Test "Imaginary part of: cacos (1.0 + 0.5 i)":
  100779. +float: 1
  100780. +ifloat: 1
  100781. +Test "Real part of: cacos (1.0 + 0x1.fp-10 i)":
  100782. +float: 2
  100783. +ifloat: 2
  100784. +Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
  100785. +float: 1
  100786. +ifloat: 1
  100787. +Test "Real part of: cacos (1.0 - 0.25 i)":
  100788. +double: 1
  100789. +idouble: 1
  100790. +Test "Real part of: cacos (1.0 - 0.5 i)":
  100791. +float: 1
  100792. +ifloat: 1
  100793. +Test "Imaginary part of: cacos (1.0 - 0.5 i)":
  100794. +float: 1
  100795. +ifloat: 1
  100796. +Test "Real part of: cacos (1.0 - 0x1.fp-10 i)":
  100797. +float: 2
  100798. +ifloat: 2
  100799. +Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
  100800. +float: 1
  100801. +ifloat: 1
  100802. +
  100803. +# cacosh
  100804. +Test "Real part of: cacosh (+0 + 0.5 i)":
  100805. +float: 1
  100806. +ifloat: 1
  100807. +Test "Real part of: cacosh (+0 + 1.0 i)":
  100808. +double: 1
  100809. +float: 1
  100810. +idouble: 1
  100811. +ifloat: 1
  100812. +Test "Real part of: cacosh (+0 + 1.5 i)":
  100813. +double: 1
  100814. +idouble: 1
  100815. +Test "Real part of: cacosh (+0 - 0.5 i)":
  100816. +float: 1
  100817. +ifloat: 1
  100818. +Test "Real part of: cacosh (+0 - 1.0 i)":
  100819. +double: 1
  100820. +float: 1
  100821. +idouble: 1
  100822. +ifloat: 1
  100823. +Test "Real part of: cacosh (+0 - 1.5 i)":
  100824. +double: 1
  100825. +idouble: 1
  100826. +Test "Real part of: cacosh (-0 + 0.5 i)":
  100827. +float: 1
  100828. +ifloat: 1
  100829. +Test "Real part of: cacosh (-0 + 1.0 i)":
  100830. +double: 1
  100831. +float: 1
  100832. +idouble: 1
  100833. +ifloat: 1
  100834. +Test "Real part of: cacosh (-0 + 1.5 i)":
  100835. +double: 1
  100836. +idouble: 1
  100837. +Test "Real part of: cacosh (-0 - 0.5 i)":
  100838. +float: 1
  100839. +ifloat: 1
  100840. +Test "Real part of: cacosh (-0 - 1.0 i)":
  100841. +double: 1
  100842. +float: 1
  100843. +idouble: 1
  100844. +ifloat: 1
  100845. +Test "Real part of: cacosh (-0 - 1.5 i)":
  100846. +double: 1
  100847. +idouble: 1
  100848. +Test "Real part of: cacosh (-0.25 + 1.0 i)":
  100849. +float: 1
  100850. +ifloat: 1
  100851. +Test "Imaginary part of: cacosh (-0.25 + 1.0 i)":
  100852. +double: 1
  100853. +float: 1
  100854. +idouble: 1
  100855. +ifloat: 1
  100856. +Test "Real part of: cacosh (-0.25 - 1.0 i)":
  100857. +float: 1
  100858. +ifloat: 1
  100859. +Test "Imaginary part of: cacosh (-0.25 - 1.0 i)":
  100860. +double: 1
  100861. +float: 1
  100862. +idouble: 1
  100863. +ifloat: 1
  100864. +Test "Real part of: cacosh (-0.5 + 0x1.fp-129 i)":
  100865. +double: 1
  100866. +idouble: 1
  100867. +Test "Real part of: cacosh (-0.5 + 0x1p-105 i)":
  100868. +double: 1
  100869. +idouble: 1
  100870. +Test "Real part of: cacosh (-0.5 + 0x1p-112 i)":
  100871. +double: 1
  100872. +idouble: 1
  100873. +Test "Real part of: cacosh (-0.5 + 0x1p-23 i)":
  100874. +double: 1
  100875. +idouble: 1
  100876. +Test "Real part of: cacosh (-0.5 + 1.0 i)":
  100877. +double: 1
  100878. +idouble: 1
  100879. +Test "Imaginary part of: cacosh (-0.5 + 1.0 i)":
  100880. +float: 1
  100881. +ifloat: 1
  100882. +Test "Real part of: cacosh (-0.5 - 0x1.fp-129 i)":
  100883. +double: 1
  100884. +idouble: 1
  100885. +Test "Real part of: cacosh (-0.5 - 0x1p-105 i)":
  100886. +double: 1
  100887. +idouble: 1
  100888. +Test "Real part of: cacosh (-0.5 - 0x1p-112 i)":
  100889. +double: 1
  100890. +idouble: 1
  100891. +Test "Real part of: cacosh (-0.5 - 0x1p-23 i)":
  100892. +double: 1
  100893. +idouble: 1
  100894. +Test "Real part of: cacosh (-0.5 - 1.0 i)":
  100895. +double: 1
  100896. +idouble: 1
  100897. +Test "Imaginary part of: cacosh (-0.5 - 1.0 i)":
  100898. +float: 1
  100899. +ifloat: 1
  100900. +Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  100901. +double: 1
  100902. +idouble: 1
  100903. +Test "Real part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  100904. +double: 1
  100905. +idouble: 1
  100906. +Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i)":
  100907. +float: 2
  100908. +ifloat: 2
  100909. +Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i)":
  100910. +float: 2
  100911. +ifloat: 2
  100912. +Test "Real part of: cacosh (-0x1.000002p0 + 0x1p-23 i)":
  100913. +float: 1
  100914. +ifloat: 1
  100915. +Test "Real part of: cacosh (-0x1.000002p0 - 0x1p-23 i)":
  100916. +float: 1
  100917. +ifloat: 1
  100918. +Test "Real part of: cacosh (-0x1.fp-10 + 1.0 i)":
  100919. +double: 1
  100920. +idouble: 1
  100921. +Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i)":
  100922. +double: 1
  100923. +idouble: 1
  100924. +Test "Real part of: cacosh (-0x1.fp-100 + 1.0 i)":
  100925. +double: 1
  100926. +float: 1
  100927. +idouble: 1
  100928. +ifloat: 1
  100929. +Test "Imaginary part of: cacosh (-0x1.fp-100 + 1.0 i)":
  100930. +float: 1
  100931. +ifloat: 1
  100932. +Test "Real part of: cacosh (-0x1.fp-100 - 1.0 i)":
  100933. +double: 1
  100934. +float: 1
  100935. +idouble: 1
  100936. +ifloat: 1
  100937. +Test "Imaginary part of: cacosh (-0x1.fp-100 - 1.0 i)":
  100938. +float: 1
  100939. +ifloat: 1
  100940. +Test "Real part of: cacosh (-0x1.fp-1000 + 1.0 i)":
  100941. +double: 1
  100942. +idouble: 1
  100943. +Test "Real part of: cacosh (-0x1.fp-1000 - 1.0 i)":
  100944. +double: 1
  100945. +idouble: 1
  100946. +Test "Real part of: cacosh (-0x1.fp-1025 + 1.0 i)":
  100947. +double: 1
  100948. +idouble: 1
  100949. +Test "Real part of: cacosh (-0x1.fp-1025 + 1.5 i)":
  100950. +double: 1
  100951. +idouble: 1
  100952. +Test "Real part of: cacosh (-0x1.fp-1025 - 1.0 i)":
  100953. +double: 1
  100954. +idouble: 1
  100955. +Test "Real part of: cacosh (-0x1.fp-1025 - 1.5 i)":
  100956. +double: 1
  100957. +idouble: 1
  100958. +Test "Real part of: cacosh (-0x1.fp-129 + 0.5 i)":
  100959. +float: 1
  100960. +ifloat: 1
  100961. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0.5 i)":
  100962. +float: 1
  100963. +ifloat: 1
  100964. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x0.ffffffp0 i)":
  100965. +float: 1
  100966. +ifloat: 1
  100967. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.000002p0 i)":
  100968. +float: 1
  100969. +ifloat: 1
  100970. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.fp-129 i)":
  100971. +float: 1
  100972. +ifloat: 1
  100973. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1p-23 i)":
  100974. +float: 1
  100975. +ifloat: 1
  100976. +Test "Real part of: cacosh (-0x1.fp-129 + 1.0 i)":
  100977. +double: 1
  100978. +float: 1
  100979. +idouble: 1
  100980. +ifloat: 1
  100981. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.0 i)":
  100982. +float: 1
  100983. +ifloat: 1
  100984. +Test "Real part of: cacosh (-0x1.fp-129 + 1.5 i)":
  100985. +double: 1
  100986. +idouble: 1
  100987. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.5 i)":
  100988. +float: 1
  100989. +ifloat: 1
  100990. +Test "Real part of: cacosh (-0x1.fp-129 - 0.5 i)":
  100991. +float: 1
  100992. +ifloat: 1
  100993. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0.5 i)":
  100994. +float: 1
  100995. +ifloat: 1
  100996. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x0.ffffffp0 i)":
  100997. +float: 1
  100998. +ifloat: 1
  100999. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.000002p0 i)":
  101000. +float: 1
  101001. +ifloat: 1
  101002. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.fp-129 i)":
  101003. +float: 1
  101004. +ifloat: 1
  101005. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1p-23 i)":
  101006. +float: 1
  101007. +ifloat: 1
  101008. +Test "Real part of: cacosh (-0x1.fp-129 - 1.0 i)":
  101009. +double: 1
  101010. +float: 1
  101011. +idouble: 1
  101012. +ifloat: 1
  101013. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.0 i)":
  101014. +float: 1
  101015. +ifloat: 1
  101016. +Test "Real part of: cacosh (-0x1.fp-129 - 1.5 i)":
  101017. +double: 1
  101018. +idouble: 1
  101019. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.5 i)":
  101020. +float: 1
  101021. +ifloat: 1
  101022. +Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i)":
  101023. +double: 1
  101024. +float: 1
  101025. +idouble: 1
  101026. +ifloat: 1
  101027. +Test "Imaginary part of: cacosh (-0x1.fp-30 + 1.0 i)":
  101028. +float: 1
  101029. +ifloat: 1
  101030. +Test "Real part of: cacosh (-0x1.fp-30 - 1.0 i)":
  101031. +double: 1
  101032. +float: 1
  101033. +idouble: 1
  101034. +ifloat: 1
  101035. +Test "Imaginary part of: cacosh (-0x1.fp-30 - 1.0 i)":
  101036. +float: 1
  101037. +ifloat: 1
  101038. +Test "Imaginary part of: cacosh (-0x1p-105 + 0.0 i)":
  101039. +float: 1
  101040. +ifloat: 1
  101041. +Test "Real part of: cacosh (-0x1p-105 + 0.5 i)":
  101042. +float: 1
  101043. +ifloat: 1
  101044. +Test "Imaginary part of: cacosh (-0x1p-105 + 0.5 i)":
  101045. +float: 1
  101046. +ifloat: 1
  101047. +Test "Imaginary part of: cacosh (-0x1p-105 + 0x1p-105 i)":
  101048. +float: 1
  101049. +ifloat: 1
  101050. +Test "Imaginary part of: cacosh (-0x1p-105 - 0.0 i)":
  101051. +float: 1
  101052. +ifloat: 1
  101053. +Test "Real part of: cacosh (-0x1p-105 - 0.5 i)":
  101054. +float: 1
  101055. +ifloat: 1
  101056. +Test "Imaginary part of: cacosh (-0x1p-105 - 0.5 i)":
  101057. +float: 1
  101058. +ifloat: 1
  101059. +Test "Imaginary part of: cacosh (-0x1p-105 - 0x1p-105 i)":
  101060. +float: 1
  101061. +ifloat: 1
  101062. +Test "Imaginary part of: cacosh (-0x1p-112 + 0.0 i)":
  101063. +float: 1
  101064. +ifloat: 1
  101065. +Test "Real part of: cacosh (-0x1p-112 + 0.5 i)":
  101066. +float: 1
  101067. +ifloat: 1
  101068. +Test "Imaginary part of: cacosh (-0x1p-112 + 0.5 i)":
  101069. +float: 1
  101070. +ifloat: 1
  101071. +Test "Imaginary part of: cacosh (-0x1p-112 + 0x1p-112 i)":
  101072. +float: 1
  101073. +ifloat: 1
  101074. +Test "Imaginary part of: cacosh (-0x1p-112 - 0.0 i)":
  101075. +float: 1
  101076. +ifloat: 1
  101077. +Test "Real part of: cacosh (-0x1p-112 - 0.5 i)":
  101078. +float: 1
  101079. +ifloat: 1
  101080. +Test "Imaginary part of: cacosh (-0x1p-112 - 0.5 i)":
  101081. +float: 1
  101082. +ifloat: 1
  101083. +Test "Imaginary part of: cacosh (-0x1p-112 - 0x1p-112 i)":
  101084. +float: 1
  101085. +ifloat: 1
  101086. +Test "Imaginary part of: cacosh (-0x1p-23 + 0.0 i)":
  101087. +float: 1
  101088. +ifloat: 1
  101089. +Test "Real part of: cacosh (-0x1p-23 + 0.5 i)":
  101090. +float: 1
  101091. +ifloat: 1
  101092. +Test "Imaginary part of: cacosh (-0x1p-23 + 0.5 i)":
  101093. +float: 1
  101094. +ifloat: 1
  101095. +Test "Real part of: cacosh (-0x1p-23 + 0x0.ffffffp0 i)":
  101096. +double: 1
  101097. +idouble: 1
  101098. +Test "Imaginary part of: cacosh (-0x1p-23 + 0x1.fp-129 i)":
  101099. +float: 1
  101100. +ifloat: 1
  101101. +Test "Imaginary part of: cacosh (-0x1p-23 + 0x1p-23 i)":
  101102. +float: 1
  101103. +ifloat: 1
  101104. +Test "Imaginary part of: cacosh (-0x1p-23 - 0.0 i)":
  101105. +float: 1
  101106. +ifloat: 1
  101107. +Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
  101108. +float: 1
  101109. +ifloat: 1
  101110. +Test "Imaginary part of: cacosh (-0x1p-23 - 0.5 i)":
  101111. +float: 1
  101112. +ifloat: 1
  101113. +Test "Real part of: cacosh (-0x1p-23 - 0x0.ffffffp0 i)":
  101114. +double: 1
  101115. +idouble: 1
  101116. +Test "Imaginary part of: cacosh (-0x1p-23 - 0x1.fp-129 i)":
  101117. +float: 1
  101118. +ifloat: 1
  101119. +Test "Imaginary part of: cacosh (-0x1p-23 - 0x1p-23 i)":
  101120. +float: 1
  101121. +ifloat: 1
  101122. +Test "Imaginary part of: cacosh (-0x1p-52 + 0.0 i)":
  101123. +float: 1
  101124. +ifloat: 1
  101125. +Test "Real part of: cacosh (-0x1p-52 + 0.5 i)":
  101126. +float: 1
  101127. +ifloat: 1
  101128. +Test "Imaginary part of: cacosh (-0x1p-52 + 0.5 i)":
  101129. +float: 1
  101130. +ifloat: 1
  101131. +Test "Imaginary part of: cacosh (-0x1p-52 + 0x1p-52 i)":
  101132. +float: 1
  101133. +ifloat: 1
  101134. +Test "Imaginary part of: cacosh (-0x1p-52 - 0.0 i)":
  101135. +float: 1
  101136. +ifloat: 1
  101137. +Test "Real part of: cacosh (-0x1p-52 - 0.5 i)":
  101138. +float: 1
  101139. +ifloat: 1
  101140. +Test "Imaginary part of: cacosh (-0x1p-52 - 0.5 i)":
  101141. +float: 1
  101142. +ifloat: 1
  101143. +Test "Imaginary part of: cacosh (-0x1p-52 - 0x1p-52 i)":
  101144. +float: 1
  101145. +ifloat: 1
  101146. +Test "Imaginary part of: cacosh (-0x1p-63 + 0.0 i)":
  101147. +float: 1
  101148. +ifloat: 1
  101149. +Test "Real part of: cacosh (-0x1p-63 + 0.5 i)":
  101150. +float: 1
  101151. +ifloat: 1
  101152. +Test "Imaginary part of: cacosh (-0x1p-63 + 0.5 i)":
  101153. +float: 1
  101154. +ifloat: 1
  101155. +Test "Imaginary part of: cacosh (-0x1p-63 + 0x1p-63 i)":
  101156. +float: 1
  101157. +ifloat: 1
  101158. +Test "Imaginary part of: cacosh (-0x1p-63 - 0.0 i)":
  101159. +float: 1
  101160. +ifloat: 1
  101161. +Test "Real part of: cacosh (-0x1p-63 - 0.5 i)":
  101162. +float: 1
  101163. +ifloat: 1
  101164. +Test "Imaginary part of: cacosh (-0x1p-63 - 0.5 i)":
  101165. +float: 1
  101166. +ifloat: 1
  101167. +Test "Imaginary part of: cacosh (-0x1p-63 - 0x1p-63 i)":
  101168. +float: 1
  101169. +ifloat: 1
  101170. +Test "Real part of: cacosh (-1.0 + 0.5 i)":
  101171. +float: 1
  101172. +ifloat: 1
  101173. +Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i)":
  101174. +float: 1
  101175. +ifloat: 1
  101176. +Test "Imaginary part of: cacosh (-1.0 + 0x1p50 i)":
  101177. +float: 1
  101178. +ifloat: 1
  101179. +Test "Real part of: cacosh (-1.0 - 0.5 i)":
  101180. +float: 1
  101181. +ifloat: 1
  101182. +Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i)":
  101183. +float: 1
  101184. +ifloat: 1
  101185. +Test "Imaginary part of: cacosh (-1.0 - 0x1p50 i)":
  101186. +float: 1
  101187. +ifloat: 1
  101188. +Test "Imaginary part of: cacosh (-2 - 3 i)":
  101189. +float: 1
  101190. +ifloat: 1
  101191. +Test "Real part of: cacosh (0.25 + 1.0 i)":
  101192. +float: 1
  101193. +ifloat: 1
  101194. +Test "Real part of: cacosh (0.25 - 1.0 i)":
  101195. +float: 1
  101196. +ifloat: 1
  101197. +Test "Imaginary part of: cacosh (0.5 + +0 i)":
  101198. +double: 1
  101199. +idouble: 1
  101200. +Test "Imaginary part of: cacosh (0.5 + 0x1.fp-1025 i)":
  101201. +double: 1
  101202. +idouble: 1
  101203. +Test "Real part of: cacosh (0.5 + 0x1.fp-129 i)":
  101204. +double: 1
  101205. +idouble: 1
  101206. +Test "Imaginary part of: cacosh (0.5 + 0x1.fp-129 i)":
  101207. +double: 1
  101208. +idouble: 1
  101209. +Test "Real part of: cacosh (0.5 + 0x1p-105 i)":
  101210. +double: 1
  101211. +idouble: 1
  101212. +Test "Imaginary part of: cacosh (0.5 + 0x1p-105 i)":
  101213. +double: 1
  101214. +idouble: 1
  101215. +Test "Real part of: cacosh (0.5 + 0x1p-112 i)":
  101216. +double: 1
  101217. +idouble: 1
  101218. +Test "Imaginary part of: cacosh (0.5 + 0x1p-112 i)":
  101219. +double: 1
  101220. +idouble: 1
  101221. +Test "Real part of: cacosh (0.5 + 0x1p-23 i)":
  101222. +double: 1
  101223. +idouble: 1
  101224. +Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i)":
  101225. +double: 1
  101226. +idouble: 1
  101227. +Test "Imaginary part of: cacosh (0.5 + 0x1p-63 i)":
  101228. +double: 1
  101229. +idouble: 1
  101230. +Test "Real part of: cacosh (0.5 + 1.0 i)":
  101231. +double: 1
  101232. +idouble: 1
  101233. +Test "Imaginary part of: cacosh (0.5 + 1.0 i)":
  101234. +float: 1
  101235. +ifloat: 1
  101236. +Test "Imaginary part of: cacosh (0.5 - 0 i)":
  101237. +double: 1
  101238. +idouble: 1
  101239. +Test "Imaginary part of: cacosh (0.5 - 0x1.fp-1025 i)":
  101240. +double: 1
  101241. +idouble: 1
  101242. +Test "Real part of: cacosh (0.5 - 0x1.fp-129 i)":
  101243. +double: 1
  101244. +idouble: 1
  101245. +Test "Imaginary part of: cacosh (0.5 - 0x1.fp-129 i)":
  101246. +double: 1
  101247. +idouble: 1
  101248. +Test "Real part of: cacosh (0.5 - 0x1p-105 i)":
  101249. +double: 1
  101250. +idouble: 1
  101251. +Test "Imaginary part of: cacosh (0.5 - 0x1p-105 i)":
  101252. +double: 1
  101253. +idouble: 1
  101254. +Test "Real part of: cacosh (0.5 - 0x1p-112 i)":
  101255. +double: 1
  101256. +idouble: 1
  101257. +Test "Imaginary part of: cacosh (0.5 - 0x1p-112 i)":
  101258. +double: 1
  101259. +idouble: 1
  101260. +Test "Real part of: cacosh (0.5 - 0x1p-23 i)":
  101261. +double: 1
  101262. +idouble: 1
  101263. +Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i)":
  101264. +double: 1
  101265. +idouble: 1
  101266. +Test "Imaginary part of: cacosh (0.5 - 0x1p-63 i)":
  101267. +double: 1
  101268. +idouble: 1
  101269. +Test "Real part of: cacosh (0.5 - 1.0 i)":
  101270. +double: 1
  101271. +idouble: 1
  101272. +Test "Imaginary part of: cacosh (0.5 - 1.0 i)":
  101273. +float: 1
  101274. +ifloat: 1
  101275. +Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  101276. +double: 1
  101277. +idouble: 1
  101278. +Test "Real part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  101279. +double: 1
  101280. +idouble: 1
  101281. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0.0 i)":
  101282. +float: 1
  101283. +ifloat: 1
  101284. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1.fp-129 i)":
  101285. +float: 1
  101286. +ifloat: 1
  101287. +Test "Real part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
  101288. +float: 2
  101289. +ifloat: 2
  101290. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
  101291. +float: 2
  101292. +ifloat: 2
  101293. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0.0 i)":
  101294. +float: 1
  101295. +ifloat: 1
  101296. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1.fp-129 i)":
  101297. +float: 1
  101298. +ifloat: 1
  101299. +Test "Real part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
  101300. +float: 2
  101301. +ifloat: 2
  101302. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
  101303. +float: 2
  101304. +ifloat: 2
  101305. +Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
  101306. +double: 1
  101307. +idouble: 1
  101308. +Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
  101309. +double: 1
  101310. +idouble: 1
  101311. +Test "Real part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
  101312. +float: 1
  101313. +ifloat: 1
  101314. +Test "Imaginary part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
  101315. +float: 2
  101316. +ifloat: 2
  101317. +Test "Real part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
  101318. +float: 1
  101319. +ifloat: 1
  101320. +Test "Imaginary part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
  101321. +float: 2
  101322. +ifloat: 2
  101323. +Test "Real part of: cacosh (0x1.fp-10 + 1.0 i)":
  101324. +double: 1
  101325. +idouble: 1
  101326. +Test "Real part of: cacosh (0x1.fp-10 - 1.0 i)":
  101327. +double: 1
  101328. +idouble: 1
  101329. +Test "Real part of: cacosh (0x1.fp-100 + 1.0 i)":
  101330. +double: 1
  101331. +float: 1
  101332. +idouble: 1
  101333. +ifloat: 1
  101334. +Test "Real part of: cacosh (0x1.fp-100 - 1.0 i)":
  101335. +double: 1
  101336. +float: 1
  101337. +idouble: 1
  101338. +ifloat: 1
  101339. +Test "Real part of: cacosh (0x1.fp-1000 + 1.0 i)":
  101340. +double: 1
  101341. +idouble: 1
  101342. +Test "Real part of: cacosh (0x1.fp-1000 - 1.0 i)":
  101343. +double: 1
  101344. +idouble: 1
  101345. +Test "Real part of: cacosh (0x1.fp-1025 + 1.0 i)":
  101346. +double: 1
  101347. +idouble: 1
  101348. +Test "Real part of: cacosh (0x1.fp-1025 + 1.5 i)":
  101349. +double: 1
  101350. +idouble: 1
  101351. +Test "Real part of: cacosh (0x1.fp-1025 - 1.0 i)":
  101352. +double: 1
  101353. +idouble: 1
  101354. +Test "Real part of: cacosh (0x1.fp-1025 - 1.5 i)":
  101355. +double: 1
  101356. +idouble: 1
  101357. +Test "Real part of: cacosh (0x1.fp-129 + 0.5 i)":
  101358. +float: 1
  101359. +ifloat: 1
  101360. +Test "Real part of: cacosh (0x1.fp-129 + 1.0 i)":
  101361. +double: 1
  101362. +float: 1
  101363. +idouble: 1
  101364. +ifloat: 1
  101365. +Test "Real part of: cacosh (0x1.fp-129 + 1.5 i)":
  101366. +double: 1
  101367. +idouble: 1
  101368. +Test "Real part of: cacosh (0x1.fp-129 - 0.5 i)":
  101369. +float: 1
  101370. +ifloat: 1
  101371. +Test "Real part of: cacosh (0x1.fp-129 - 1.0 i)":
  101372. +double: 1
  101373. +float: 1
  101374. +idouble: 1
  101375. +ifloat: 1
  101376. +Test "Real part of: cacosh (0x1.fp-129 - 1.5 i)":
  101377. +double: 1
  101378. +idouble: 1
  101379. +Test "Real part of: cacosh (0x1.fp-30 + 1.0 i)":
  101380. +double: 1
  101381. +float: 1
  101382. +idouble: 1
  101383. +ifloat: 1
  101384. +Test "Real part of: cacosh (0x1.fp-30 - 1.0 i)":
  101385. +double: 1
  101386. +float: 1
  101387. +idouble: 1
  101388. +ifloat: 1
  101389. +Test "Real part of: cacosh (0x1.fp1023 + 0x1.fp1023 i)":
  101390. +double: 1
  101391. +idouble: 1
  101392. +Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i)":
  101393. +double: 1
  101394. +idouble: 1
  101395. +Test "Real part of: cacosh (0x1p-105 + 0.5 i)":
  101396. +float: 1
  101397. +ifloat: 1
  101398. +Test "Real part of: cacosh (0x1p-105 - 0.5 i)":
  101399. +float: 1
  101400. +ifloat: 1
  101401. +Test "Real part of: cacosh (0x1p-112 + 0.5 i)":
  101402. +float: 1
  101403. +ifloat: 1
  101404. +Test "Real part of: cacosh (0x1p-112 - 0.5 i)":
  101405. +float: 1
  101406. +ifloat: 1
  101407. +Test "Real part of: cacosh (0x1p-23 + 0.5 i)":
  101408. +float: 1
  101409. +ifloat: 1
  101410. +Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i)":
  101411. +double: 1
  101412. +idouble: 1
  101413. +Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
  101414. +float: 1
  101415. +ifloat: 1
  101416. +Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
  101417. +double: 1
  101418. +idouble: 1
  101419. +Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
  101420. +float: 1
  101421. +ifloat: 1
  101422. +Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
  101423. +float: 1
  101424. +ifloat: 1
  101425. +Test "Real part of: cacosh (0x1p-63 + 0.5 i)":
  101426. +float: 1
  101427. +ifloat: 1
  101428. +Test "Real part of: cacosh (0x1p-63 - 0.5 i)":
  101429. +float: 1
  101430. +ifloat: 1
  101431. +Test "Imaginary part of: cacosh (1.0 + 0.25 i)":
  101432. +double: 1
  101433. +idouble: 1
  101434. +Test "Real part of: cacosh (1.0 + 0.5 i)":
  101435. +float: 1
  101436. +ifloat: 1
  101437. +Test "Imaginary part of: cacosh (1.0 + 0.5 i)":
  101438. +float: 1
  101439. +ifloat: 1
  101440. +Test "Real part of: cacosh (1.0 + 0x1.fp-10 i)":
  101441. +float: 1
  101442. +ifloat: 1
  101443. +Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
  101444. +float: 2
  101445. +ifloat: 2
  101446. +Test "Imaginary part of: cacosh (1.0 - 0.25 i)":
  101447. +double: 1
  101448. +idouble: 1
  101449. +Test "Real part of: cacosh (1.0 - 0.5 i)":
  101450. +float: 1
  101451. +ifloat: 1
  101452. +Test "Imaginary part of: cacosh (1.0 - 0.5 i)":
  101453. +float: 1
  101454. +ifloat: 1
  101455. +Test "Real part of: cacosh (1.0 - 0x1.fp-10 i)":
  101456. +float: 1
  101457. +ifloat: 1
  101458. +Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
  101459. +float: 2
  101460. +ifloat: 2
  101461. +
  101462. +# casin
  101463. +Test "Imaginary part of: casin (+0 + 0.5 i)":
  101464. +float: 1
  101465. +ifloat: 1
  101466. +Test "Imaginary part of: casin (+0 + 1.0 i)":
  101467. +double: 1
  101468. +float: 1
  101469. +idouble: 1
  101470. +ifloat: 1
  101471. +Test "Imaginary part of: casin (+0 + 1.5 i)":
  101472. +double: 1
  101473. +idouble: 1
  101474. +Test "Imaginary part of: casin (+0 - 0.5 i)":
  101475. +float: 1
  101476. +ifloat: 1
  101477. +Test "Imaginary part of: casin (+0 - 1.0 i)":
  101478. +double: 1
  101479. +float: 1
  101480. +idouble: 1
  101481. +ifloat: 1
  101482. +Test "Imaginary part of: casin (+0 - 1.5 i)":
  101483. +double: 1
  101484. +idouble: 1
  101485. +Test "Imaginary part of: casin (-0 + 0.5 i)":
  101486. +float: 1
  101487. +ifloat: 1
  101488. +Test "Imaginary part of: casin (-0 + 1.0 i)":
  101489. +double: 1
  101490. +float: 1
  101491. +idouble: 1
  101492. +ifloat: 1
  101493. +Test "Imaginary part of: casin (-0 + 1.5 i)":
  101494. +double: 1
  101495. +idouble: 1
  101496. +Test "Imaginary part of: casin (-0 - 0.5 i)":
  101497. +float: 1
  101498. +ifloat: 1
  101499. +Test "Imaginary part of: casin (-0 - 1.0 i)":
  101500. +double: 1
  101501. +float: 1
  101502. +idouble: 1
  101503. +ifloat: 1
  101504. +Test "Imaginary part of: casin (-0 - 1.5 i)":
  101505. +double: 1
  101506. +idouble: 1
  101507. +Test "Imaginary part of: casin (-0.25 + 1.0 i)":
  101508. +float: 1
  101509. +ifloat: 1
  101510. +Test "Imaginary part of: casin (-0.25 - 1.0 i)":
  101511. +float: 1
  101512. +ifloat: 1
  101513. +Test "Imaginary part of: casin (-0.5 + 0x1.fp-129 i)":
  101514. +double: 1
  101515. +idouble: 1
  101516. +Test "Imaginary part of: casin (-0.5 + 0x1p-105 i)":
  101517. +double: 1
  101518. +idouble: 1
  101519. +Test "Imaginary part of: casin (-0.5 + 0x1p-112 i)":
  101520. +double: 1
  101521. +idouble: 1
  101522. +Test "Imaginary part of: casin (-0.5 + 0x1p-23 i)":
  101523. +double: 1
  101524. +idouble: 1
  101525. +Test "Imaginary part of: casin (-0.5 + 1.0 i)":
  101526. +double: 1
  101527. +idouble: 1
  101528. +Test "Imaginary part of: casin (-0.5 - 0x1.fp-129 i)":
  101529. +double: 1
  101530. +idouble: 1
  101531. +Test "Imaginary part of: casin (-0.5 - 0x1p-105 i)":
  101532. +double: 1
  101533. +idouble: 1
  101534. +Test "Imaginary part of: casin (-0.5 - 0x1p-112 i)":
  101535. +double: 1
  101536. +idouble: 1
  101537. +Test "Imaginary part of: casin (-0.5 - 0x1p-23 i)":
  101538. +double: 1
  101539. +idouble: 1
  101540. +Test "Imaginary part of: casin (-0.5 - 1.0 i)":
  101541. +double: 1
  101542. +idouble: 1
  101543. +Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  101544. +double: 1
  101545. +idouble: 1
  101546. +Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  101547. +double: 1
  101548. +idouble: 1
  101549. +Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
  101550. +float: 2
  101551. +ifloat: 2
  101552. +Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
  101553. +float: 2
  101554. +ifloat: 2
  101555. +Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i)":
  101556. +float: 1
  101557. +ifloat: 1
  101558. +Test "Imaginary part of: casin (-0x1.000002p0 - 0x1p-23 i)":
  101559. +float: 1
  101560. +ifloat: 1
  101561. +Test "Real part of: casin (-0x1.fp-10 + 1.0 i)":
  101562. +float: 1
  101563. +ifloat: 1
  101564. +Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i)":
  101565. +double: 1
  101566. +idouble: 1
  101567. +Test "Real part of: casin (-0x1.fp-10 - 1.0 i)":
  101568. +float: 1
  101569. +ifloat: 1
  101570. +Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i)":
  101571. +double: 1
  101572. +idouble: 1
  101573. +Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i)":
  101574. +double: 1
  101575. +float: 1
  101576. +idouble: 1
  101577. +ifloat: 1
  101578. +Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i)":
  101579. +double: 1
  101580. +float: 1
  101581. +idouble: 1
  101582. +ifloat: 1
  101583. +Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i)":
  101584. +double: 1
  101585. +idouble: 1
  101586. +Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i)":
  101587. +double: 1
  101588. +idouble: 1
  101589. +Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i)":
  101590. +double: 1
  101591. +idouble: 1
  101592. +Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i)":
  101593. +double: 1
  101594. +idouble: 1
  101595. +Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i)":
  101596. +double: 1
  101597. +idouble: 1
  101598. +Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i)":
  101599. +double: 1
  101600. +idouble: 1
  101601. +Test "Imaginary part of: casin (-0x1.fp-129 + 0.5 i)":
  101602. +float: 1
  101603. +ifloat: 1
  101604. +Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i)":
  101605. +double: 1
  101606. +float: 1
  101607. +idouble: 1
  101608. +ifloat: 1
  101609. +Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i)":
  101610. +double: 1
  101611. +idouble: 1
  101612. +Test "Imaginary part of: casin (-0x1.fp-129 - 0.5 i)":
  101613. +float: 1
  101614. +ifloat: 1
  101615. +Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i)":
  101616. +double: 1
  101617. +float: 1
  101618. +idouble: 1
  101619. +ifloat: 1
  101620. +Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i)":
  101621. +double: 1
  101622. +idouble: 1
  101623. +Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i)":
  101624. +double: 1
  101625. +float: 1
  101626. +idouble: 1
  101627. +ifloat: 1
  101628. +Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i)":
  101629. +double: 1
  101630. +float: 1
  101631. +idouble: 1
  101632. +ifloat: 1
  101633. +Test "Imaginary part of: casin (-0x1p-105 + 0.5 i)":
  101634. +float: 1
  101635. +ifloat: 1
  101636. +Test "Imaginary part of: casin (-0x1p-105 - 0.5 i)":
  101637. +float: 1
  101638. +ifloat: 1
  101639. +Test "Imaginary part of: casin (-0x1p-112 + 0.5 i)":
  101640. +float: 1
  101641. +ifloat: 1
  101642. +Test "Imaginary part of: casin (-0x1p-112 - 0.5 i)":
  101643. +float: 1
  101644. +ifloat: 1
  101645. +Test "Real part of: casin (-0x1p-23 + 0.5 i)":
  101646. +double: 1
  101647. +float: 1
  101648. +idouble: 1
  101649. +ifloat: 1
  101650. +Test "Imaginary part of: casin (-0x1p-23 + 0.5 i)":
  101651. +float: 1
  101652. +ifloat: 1
  101653. +Test "Imaginary part of: casin (-0x1p-23 + 0x0.ffffffp0 i)":
  101654. +double: 1
  101655. +idouble: 1
  101656. +Test "Real part of: casin (-0x1p-23 + 0x1.000002p0 i)":
  101657. +double: 1
  101658. +float: 1
  101659. +idouble: 1
  101660. +ifloat: 1
  101661. +Test "Real part of: casin (-0x1p-23 - 0.5 i)":
  101662. +double: 1
  101663. +float: 1
  101664. +idouble: 1
  101665. +ifloat: 1
  101666. +Test "Imaginary part of: casin (-0x1p-23 - 0.5 i)":
  101667. +float: 1
  101668. +ifloat: 1
  101669. +Test "Imaginary part of: casin (-0x1p-23 - 0x0.ffffffp0 i)":
  101670. +double: 1
  101671. +idouble: 1
  101672. +Test "Real part of: casin (-0x1p-23 - 0x1.000002p0 i)":
  101673. +double: 1
  101674. +float: 1
  101675. +idouble: 1
  101676. +ifloat: 1
  101677. +Test "Imaginary part of: casin (-0x1p-52 + 0.5 i)":
  101678. +float: 1
  101679. +ifloat: 1
  101680. +Test "Imaginary part of: casin (-0x1p-52 - 0.5 i)":
  101681. +float: 1
  101682. +ifloat: 1
  101683. +Test "Imaginary part of: casin (-0x1p-63 + 0.5 i)":
  101684. +float: 1
  101685. +ifloat: 1
  101686. +Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
  101687. +float: 1
  101688. +ifloat: 1
  101689. +Test "Real part of: casin (-1.0 + 0.25 i)":
  101690. +double: 1
  101691. +idouble: 1
  101692. +Test "Real part of: casin (-1.0 + 0.5 i)":
  101693. +float: 1
  101694. +ifloat: 1
  101695. +Test "Imaginary part of: casin (-1.0 + 0.5 i)":
  101696. +float: 1
  101697. +ifloat: 1
  101698. +Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
  101699. +float: 1
  101700. +ifloat: 1
  101701. +Test "Real part of: casin (-1.0 - 0.25 i)":
  101702. +double: 1
  101703. +idouble: 1
  101704. +Test "Real part of: casin (-1.0 - 0.5 i)":
  101705. +float: 1
  101706. +ifloat: 1
  101707. +Test "Imaginary part of: casin (-1.0 - 0.5 i)":
  101708. +float: 1
  101709. +ifloat: 1
  101710. +Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
  101711. +float: 1
  101712. +ifloat: 1
  101713. +Test "Imaginary part of: casin (0.25 + 1.0 i)":
  101714. +float: 1
  101715. +ifloat: 1
  101716. +Test "Imaginary part of: casin (0.25 - 1.0 i)":
  101717. +float: 1
  101718. +ifloat: 1
  101719. +Test "Imaginary part of: casin (0.5 + 0x1.fp-129 i)":
  101720. +double: 1
  101721. +idouble: 1
  101722. +Test "Imaginary part of: casin (0.5 + 0x1p-105 i)":
  101723. +double: 1
  101724. +idouble: 1
  101725. +Test "Imaginary part of: casin (0.5 + 0x1p-112 i)":
  101726. +double: 1
  101727. +idouble: 1
  101728. +Test "Imaginary part of: casin (0.5 + 0x1p-23 i)":
  101729. +double: 1
  101730. +idouble: 1
  101731. +Test "Imaginary part of: casin (0.5 + 1.0 i)":
  101732. +double: 1
  101733. +idouble: 1
  101734. +Test "Imaginary part of: casin (0.5 - 0x1.fp-129 i)":
  101735. +double: 1
  101736. +idouble: 1
  101737. +Test "Imaginary part of: casin (0.5 - 0x1p-105 i)":
  101738. +double: 1
  101739. +idouble: 1
  101740. +Test "Imaginary part of: casin (0.5 - 0x1p-112 i)":
  101741. +double: 1
  101742. +idouble: 1
  101743. +Test "Imaginary part of: casin (0.5 - 0x1p-23 i)":
  101744. +double: 1
  101745. +idouble: 1
  101746. +Test "Imaginary part of: casin (0.5 - 1.0 i)":
  101747. +double: 1
  101748. +idouble: 1
  101749. +Test "Real part of: casin (0.75 + 1.25 i)":
  101750. +double: 1
  101751. +float: 1
  101752. +idouble: 1
  101753. +ifloat: 1
  101754. +Test "Imaginary part of: casin (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  101755. +double: 1
  101756. +idouble: 1
  101757. +Test "Imaginary part of: casin (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  101758. +double: 1
  101759. +idouble: 1
  101760. +Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
  101761. +float: 2
  101762. +ifloat: 2
  101763. +Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
  101764. +float: 2
  101765. +ifloat: 2
  101766. +Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i)":
  101767. +float: 1
  101768. +ifloat: 1
  101769. +Test "Imaginary part of: casin (0x1.000002p0 - 0x1p-23 i)":
  101770. +float: 1
  101771. +ifloat: 1
  101772. +Test "Real part of: casin (0x1.fp-10 + 1.0 i)":
  101773. +float: 1
  101774. +ifloat: 1
  101775. +Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i)":
  101776. +double: 1
  101777. +idouble: 1
  101778. +Test "Real part of: casin (0x1.fp-10 - 1.0 i)":
  101779. +float: 1
  101780. +ifloat: 1
  101781. +Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i)":
  101782. +double: 1
  101783. +idouble: 1
  101784. +Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i)":
  101785. +double: 1
  101786. +float: 1
  101787. +idouble: 1
  101788. +ifloat: 1
  101789. +Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i)":
  101790. +double: 1
  101791. +float: 1
  101792. +idouble: 1
  101793. +ifloat: 1
  101794. +Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i)":
  101795. +double: 1
  101796. +idouble: 1
  101797. +Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i)":
  101798. +double: 1
  101799. +idouble: 1
  101800. +Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i)":
  101801. +double: 1
  101802. +idouble: 1
  101803. +Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i)":
  101804. +double: 1
  101805. +idouble: 1
  101806. +Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i)":
  101807. +double: 1
  101808. +idouble: 1
  101809. +Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i)":
  101810. +double: 1
  101811. +idouble: 1
  101812. +Test "Imaginary part of: casin (0x1.fp-129 + 0.5 i)":
  101813. +float: 1
  101814. +ifloat: 1
  101815. +Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i)":
  101816. +double: 1
  101817. +float: 1
  101818. +idouble: 1
  101819. +ifloat: 1
  101820. +Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i)":
  101821. +double: 1
  101822. +idouble: 1
  101823. +Test "Imaginary part of: casin (0x1.fp-129 - 0.5 i)":
  101824. +float: 1
  101825. +ifloat: 1
  101826. +Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i)":
  101827. +double: 1
  101828. +float: 1
  101829. +idouble: 1
  101830. +ifloat: 1
  101831. +Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i)":
  101832. +double: 1
  101833. +idouble: 1
  101834. +Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i)":
  101835. +double: 1
  101836. +float: 1
  101837. +idouble: 1
  101838. +ifloat: 1
  101839. +Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i)":
  101840. +double: 1
  101841. +float: 1
  101842. +idouble: 1
  101843. +ifloat: 1
  101844. +Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i)":
  101845. +double: 1
  101846. +idouble: 1
  101847. +Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
  101848. +double: 1
  101849. +idouble: 1
  101850. +Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
  101851. +float: 1
  101852. +ifloat: 1
  101853. +Test "Imaginary part of: casin (0x1p-105 - 0.5 i)":
  101854. +float: 1
  101855. +ifloat: 1
  101856. +Test "Imaginary part of: casin (0x1p-112 + 0.5 i)":
  101857. +float: 1
  101858. +ifloat: 1
  101859. +Test "Imaginary part of: casin (0x1p-112 - 0.5 i)":
  101860. +float: 1
  101861. +ifloat: 1
  101862. +Test "Real part of: casin (0x1p-23 + 0.5 i)":
  101863. +double: 1
  101864. +float: 1
  101865. +idouble: 1
  101866. +ifloat: 1
  101867. +Test "Imaginary part of: casin (0x1p-23 + 0.5 i)":
  101868. +float: 1
  101869. +ifloat: 1
  101870. +Test "Imaginary part of: casin (0x1p-23 + 0x0.ffffffp0 i)":
  101871. +double: 1
  101872. +idouble: 1
  101873. +Test "Real part of: casin (0x1p-23 + 0x1.000002p0 i)":
  101874. +double: 1
  101875. +float: 1
  101876. +idouble: 1
  101877. +ifloat: 1
  101878. +Test "Real part of: casin (0x1p-23 - 0.5 i)":
  101879. +double: 1
  101880. +float: 1
  101881. +idouble: 1
  101882. +ifloat: 1
  101883. +Test "Imaginary part of: casin (0x1p-23 - 0.5 i)":
  101884. +float: 1
  101885. +ifloat: 1
  101886. +Test "Imaginary part of: casin (0x1p-23 - 0x0.ffffffp0 i)":
  101887. +double: 1
  101888. +idouble: 1
  101889. +Test "Real part of: casin (0x1p-23 - 0x1.000002p0 i)":
  101890. +double: 1
  101891. +float: 1
  101892. +idouble: 1
  101893. +ifloat: 1
  101894. +Test "Imaginary part of: casin (0x1p-52 + 0.5 i)":
  101895. +float: 1
  101896. +ifloat: 1
  101897. +Test "Imaginary part of: casin (0x1p-52 - 0.5 i)":
  101898. +float: 1
  101899. +ifloat: 1
  101900. +Test "Imaginary part of: casin (0x1p-63 + 0.5 i)":
  101901. +float: 1
  101902. +ifloat: 1
  101903. +Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
  101904. +float: 1
  101905. +ifloat: 1
  101906. +Test "Real part of: casin (1.0 + 0.25 i)":
  101907. +double: 1
  101908. +idouble: 1
  101909. +Test "Real part of: casin (1.0 + 0.5 i)":
  101910. +float: 1
  101911. +ifloat: 1
  101912. +Test "Imaginary part of: casin (1.0 + 0.5 i)":
  101913. +float: 1
  101914. +ifloat: 1
  101915. +Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
  101916. +float: 1
  101917. +ifloat: 1
  101918. +Test "Real part of: casin (1.0 - 0.25 i)":
  101919. +double: 1
  101920. +idouble: 1
  101921. +Test "Real part of: casin (1.0 - 0.5 i)":
  101922. +float: 1
  101923. +ifloat: 1
  101924. +Test "Imaginary part of: casin (1.0 - 0.5 i)":
  101925. +float: 1
  101926. +ifloat: 1
  101927. +Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
  101928. +float: 1
  101929. +ifloat: 1
  101930. +
  101931. +# casinh
  101932. +Test "Imaginary part of: casinh (-0.25 + 1.0 i)":
  101933. +double: 1
  101934. +idouble: 1
  101935. +Test "Imaginary part of: casinh (-0.25 - 1.0 i)":
  101936. +double: 1
  101937. +idouble: 1
  101938. +Test "Real part of: casinh (-0.5 + +0 i)":
  101939. +float: 1
  101940. +ifloat: 1
  101941. +Test "Real part of: casinh (-0.5 + 0x1.fp-129 i)":
  101942. +float: 1
  101943. +ifloat: 1
  101944. +Test "Real part of: casinh (-0.5 + 0x1p-105 i)":
  101945. +float: 1
  101946. +ifloat: 1
  101947. +Test "Real part of: casinh (-0.5 + 0x1p-112 i)":
  101948. +float: 1
  101949. +ifloat: 1
  101950. +Test "Real part of: casinh (-0.5 + 0x1p-23 i)":
  101951. +float: 1
  101952. +ifloat: 1
  101953. +Test "Imaginary part of: casinh (-0.5 + 0x1p-23 i)":
  101954. +double: 1
  101955. +float: 1
  101956. +idouble: 1
  101957. +ifloat: 1
  101958. +Test "Real part of: casinh (-0.5 + 0x1p-52 i)":
  101959. +float: 1
  101960. +ifloat: 1
  101961. +Test "Real part of: casinh (-0.5 + 0x1p-63 i)":
  101962. +float: 1
  101963. +ifloat: 1
  101964. +Test "Real part of: casinh (-0.5 + 1.0 i)":
  101965. +float: 1
  101966. +ifloat: 1
  101967. +Test "Imaginary part of: casinh (-0.5 + 1.0 i)":
  101968. +float: 1
  101969. +ifloat: 1
  101970. +Test "Real part of: casinh (-0.5 - 0 i)":
  101971. +float: 1
  101972. +ifloat: 1
  101973. +Test "Real part of: casinh (-0.5 - 0x1.fp-129 i)":
  101974. +float: 1
  101975. +ifloat: 1
  101976. +Test "Real part of: casinh (-0.5 - 0x1p-105 i)":
  101977. +float: 1
  101978. +ifloat: 1
  101979. +Test "Real part of: casinh (-0.5 - 0x1p-112 i)":
  101980. +float: 1
  101981. +ifloat: 1
  101982. +Test "Real part of: casinh (-0.5 - 0x1p-23 i)":
  101983. +float: 1
  101984. +ifloat: 1
  101985. +Test "Imaginary part of: casinh (-0.5 - 0x1p-23 i)":
  101986. +double: 1
  101987. +float: 1
  101988. +idouble: 1
  101989. +ifloat: 1
  101990. +Test "Real part of: casinh (-0.5 - 0x1p-52 i)":
  101991. +float: 1
  101992. +ifloat: 1
  101993. +Test "Real part of: casinh (-0.5 - 0x1p-63 i)":
  101994. +float: 1
  101995. +ifloat: 1
  101996. +Test "Real part of: casinh (-0.5 - 1.0 i)":
  101997. +float: 1
  101998. +ifloat: 1
  101999. +Test "Imaginary part of: casinh (-0.5 - 1.0 i)":
  102000. +float: 1
  102001. +ifloat: 1
  102002. +Test "Real part of: casinh (-0x0.ffffffp0 + 0x1p-23 i)":
  102003. +double: 1
  102004. +idouble: 1
  102005. +Test "Real part of: casinh (-0x0.ffffffp0 - 0x1p-23 i)":
  102006. +double: 1
  102007. +idouble: 1
  102008. +Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
  102009. +double: 1
  102010. +float: 1
  102011. +idouble: 1
  102012. +ifloat: 1
  102013. +Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
  102014. +double: 1
  102015. +float: 1
  102016. +idouble: 1
  102017. +ifloat: 1
  102018. +Test "Real part of: casinh (-0x1.fp-10 + 1.0 i)":
  102019. +float: 1
  102020. +ifloat: 1
  102021. +Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
  102022. +float: 1
  102023. +ifloat: 1
  102024. +Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
  102025. +double: 1
  102026. +idouble: 1
  102027. +Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
  102028. +double: 1
  102029. +idouble: 1
  102030. +Test "Real part of: casinh (-0x1p-105 + 0.5 i)":
  102031. +double: 1
  102032. +idouble: 1
  102033. +Test "Real part of: casinh (-0x1p-105 - 0.5 i)":
  102034. +double: 1
  102035. +idouble: 1
  102036. +Test "Real part of: casinh (-0x1p-112 + 0.5 i)":
  102037. +double: 1
  102038. +idouble: 1
  102039. +Test "Real part of: casinh (-0x1p-112 - 0.5 i)":
  102040. +double: 1
  102041. +idouble: 1
  102042. +Test "Real part of: casinh (-0x1p-23 + 0.5 i)":
  102043. +double: 1
  102044. +idouble: 1
  102045. +Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
  102046. +float: 2
  102047. +ifloat: 2
  102048. +Test "Real part of: casinh (-0x1p-23 + 0x1.000002p0 i)":
  102049. +float: 1
  102050. +ifloat: 1
  102051. +Test "Real part of: casinh (-0x1p-23 - 0.5 i)":
  102052. +double: 1
  102053. +idouble: 1
  102054. +Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
  102055. +float: 2
  102056. +ifloat: 2
  102057. +Test "Real part of: casinh (-0x1p-23 - 0x1.000002p0 i)":
  102058. +float: 1
  102059. +ifloat: 1
  102060. +Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
  102061. +double: 1
  102062. +idouble: 1
  102063. +Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
  102064. +double: 1
  102065. +idouble: 1
  102066. +Test "Real part of: casinh (-1.0 + +0 i)":
  102067. +double: 1
  102068. +float: 1
  102069. +idouble: 1
  102070. +ifloat: 1
  102071. +Test "Real part of: casinh (-1.0 + 0.25 i)":
  102072. +float: 1
  102073. +ifloat: 1
  102074. +Test "Real part of: casinh (-1.0 + 0.5 i)":
  102075. +double: 1
  102076. +idouble: 1
  102077. +Test "Real part of: casinh (-1.0 + 0x1.fp-10 i)":
  102078. +double: 1
  102079. +idouble: 1
  102080. +Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10 i)":
  102081. +float: 1
  102082. +ifloat: 1
  102083. +Test "Real part of: casinh (-1.0 + 0x1.fp-100 i)":
  102084. +double: 1
  102085. +float: 1
  102086. +idouble: 1
  102087. +ifloat: 1
  102088. +Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i)":
  102089. +double: 1
  102090. +idouble: 1
  102091. +Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i)":
  102092. +double: 1
  102093. +idouble: 1
  102094. +Test "Real part of: casinh (-1.0 + 0x1.fp-129 i)":
  102095. +double: 1
  102096. +float: 1
  102097. +idouble: 1
  102098. +ifloat: 1
  102099. +Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
  102100. +double: 1
  102101. +float: 1
  102102. +idouble: 1
  102103. +ifloat: 1
  102104. +Test "Real part of: casinh (-1.0 - 0 i)":
  102105. +double: 1
  102106. +float: 1
  102107. +idouble: 1
  102108. +ifloat: 1
  102109. +Test "Real part of: casinh (-1.0 - 0.25 i)":
  102110. +float: 1
  102111. +ifloat: 1
  102112. +Test "Real part of: casinh (-1.0 - 0.5 i)":
  102113. +double: 1
  102114. +idouble: 1
  102115. +Test "Real part of: casinh (-1.0 - 0x1.fp-10 i)":
  102116. +double: 1
  102117. +idouble: 1
  102118. +Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10 i)":
  102119. +float: 1
  102120. +ifloat: 1
  102121. +Test "Real part of: casinh (-1.0 - 0x1.fp-100 i)":
  102122. +double: 1
  102123. +float: 1
  102124. +idouble: 1
  102125. +ifloat: 1
  102126. +Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i)":
  102127. +double: 1
  102128. +idouble: 1
  102129. +Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i)":
  102130. +double: 1
  102131. +idouble: 1
  102132. +Test "Real part of: casinh (-1.0 - 0x1.fp-129 i)":
  102133. +double: 1
  102134. +float: 1
  102135. +idouble: 1
  102136. +ifloat: 1
  102137. +Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
  102138. +double: 1
  102139. +float: 1
  102140. +idouble: 1
  102141. +ifloat: 1
  102142. +Test "Real part of: casinh (-1.5 + +0 i)":
  102143. +double: 1
  102144. +idouble: 1
  102145. +Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i)":
  102146. +double: 1
  102147. +idouble: 1
  102148. +Test "Real part of: casinh (-1.5 + 0x1.fp-129 i)":
  102149. +double: 1
  102150. +idouble: 1
  102151. +Test "Real part of: casinh (-1.5 - 0 i)":
  102152. +double: 1
  102153. +idouble: 1
  102154. +Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i)":
  102155. +double: 1
  102156. +idouble: 1
  102157. +Test "Real part of: casinh (-1.5 - 0x1.fp-129 i)":
  102158. +double: 1
  102159. +idouble: 1
  102160. +Test "Imaginary part of: casinh (0.25 + 1.0 i)":
  102161. +double: 1
  102162. +idouble: 1
  102163. +Test "Imaginary part of: casinh (0.25 - 1.0 i)":
  102164. +double: 1
  102165. +idouble: 1
  102166. +Test "Real part of: casinh (0.5 + +0 i)":
  102167. +float: 1
  102168. +ifloat: 1
  102169. +Test "Real part of: casinh (0.5 + 0x1.fp-129 i)":
  102170. +float: 1
  102171. +ifloat: 1
  102172. +Test "Real part of: casinh (0.5 + 0x1p-105 i)":
  102173. +float: 1
  102174. +ifloat: 1
  102175. +Test "Real part of: casinh (0.5 + 0x1p-112 i)":
  102176. +float: 1
  102177. +ifloat: 1
  102178. +Test "Real part of: casinh (0.5 + 0x1p-23 i)":
  102179. +float: 1
  102180. +ifloat: 1
  102181. +Test "Imaginary part of: casinh (0.5 + 0x1p-23 i)":
  102182. +double: 1
  102183. +float: 1
  102184. +idouble: 1
  102185. +ifloat: 1
  102186. +Test "Real part of: casinh (0.5 + 0x1p-52 i)":
  102187. +float: 1
  102188. +ifloat: 1
  102189. +Test "Real part of: casinh (0.5 + 0x1p-63 i)":
  102190. +float: 1
  102191. +ifloat: 1
  102192. +Test "Real part of: casinh (0.5 + 1.0 i)":
  102193. +float: 1
  102194. +ifloat: 1
  102195. +Test "Imaginary part of: casinh (0.5 + 1.0 i)":
  102196. +float: 1
  102197. +ifloat: 1
  102198. +Test "Real part of: casinh (0.5 - 0 i)":
  102199. +float: 1
  102200. +ifloat: 1
  102201. +Test "Real part of: casinh (0.5 - 0x1.fp-129 i)":
  102202. +float: 1
  102203. +ifloat: 1
  102204. +Test "Real part of: casinh (0.5 - 0x1p-105 i)":
  102205. +float: 1
  102206. +ifloat: 1
  102207. +Test "Real part of: casinh (0.5 - 0x1p-112 i)":
  102208. +float: 1
  102209. +ifloat: 1
  102210. +Test "Real part of: casinh (0.5 - 0x1p-23 i)":
  102211. +float: 1
  102212. +ifloat: 1
  102213. +Test "Imaginary part of: casinh (0.5 - 0x1p-23 i)":
  102214. +double: 1
  102215. +float: 1
  102216. +idouble: 1
  102217. +ifloat: 1
  102218. +Test "Real part of: casinh (0.5 - 0x1p-52 i)":
  102219. +float: 1
  102220. +ifloat: 1
  102221. +Test "Real part of: casinh (0.5 - 0x1p-63 i)":
  102222. +float: 1
  102223. +ifloat: 1
  102224. +Test "Real part of: casinh (0.5 - 1.0 i)":
  102225. +float: 1
  102226. +ifloat: 1
  102227. +Test "Imaginary part of: casinh (0.5 - 1.0 i)":
  102228. +float: 1
  102229. +ifloat: 1
  102230. +Test "Real part of: casinh (0.75 + 1.25 i)":
  102231. +float: 1
  102232. +ifloat: 1
  102233. +Test "Imaginary part of: casinh (0.75 + 1.25 i)":
  102234. +double: 1
  102235. +float: 1
  102236. +idouble: 1
  102237. +ifloat: 1
  102238. +Test "Real part of: casinh (0x0.ffffffp0 + 0x1p-23 i)":
  102239. +double: 1
  102240. +idouble: 1
  102241. +Test "Real part of: casinh (0x0.ffffffp0 - 0x1p-23 i)":
  102242. +double: 1
  102243. +idouble: 1
  102244. +Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
  102245. +double: 1
  102246. +float: 1
  102247. +idouble: 1
  102248. +ifloat: 1
  102249. +Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
  102250. +double: 1
  102251. +float: 1
  102252. +idouble: 1
  102253. +ifloat: 1
  102254. +Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
  102255. +float: 1
  102256. +ifloat: 1
  102257. +Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
  102258. +float: 1
  102259. +ifloat: 1
  102260. +Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
  102261. +double: 1
  102262. +idouble: 1
  102263. +Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
  102264. +double: 1
  102265. +idouble: 1
  102266. +Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i)":
  102267. +double: 1
  102268. +idouble: 1
  102269. +Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
  102270. +double: 1
  102271. +idouble: 1
  102272. +Test "Real part of: casinh (0x1p-105 + 0.5 i)":
  102273. +double: 1
  102274. +idouble: 1
  102275. +Test "Real part of: casinh (0x1p-105 - 0.5 i)":
  102276. +double: 1
  102277. +idouble: 1
  102278. +Test "Real part of: casinh (0x1p-112 + 0.5 i)":
  102279. +double: 1
  102280. +idouble: 1
  102281. +Test "Real part of: casinh (0x1p-112 - 0.5 i)":
  102282. +double: 1
  102283. +idouble: 1
  102284. +Test "Real part of: casinh (0x1p-23 + 0.5 i)":
  102285. +double: 1
  102286. +idouble: 1
  102287. +Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
  102288. +float: 2
  102289. +ifloat: 2
  102290. +Test "Real part of: casinh (0x1p-23 + 0x1.000002p0 i)":
  102291. +float: 1
  102292. +ifloat: 1
  102293. +Test "Real part of: casinh (0x1p-23 - 0.5 i)":
  102294. +double: 1
  102295. +idouble: 1
  102296. +Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
  102297. +float: 2
  102298. +ifloat: 2
  102299. +Test "Real part of: casinh (0x1p-23 - 0x1.000002p0 i)":
  102300. +float: 1
  102301. +ifloat: 1
  102302. +Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
  102303. +double: 1
  102304. +idouble: 1
  102305. +Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
  102306. +double: 1
  102307. +idouble: 1
  102308. +Test "Real part of: casinh (1.0 + +0 i)":
  102309. +double: 1
  102310. +float: 1
  102311. +idouble: 1
  102312. +ifloat: 1
  102313. +Test "Real part of: casinh (1.0 + 0.25 i)":
  102314. +float: 1
  102315. +ifloat: 1
  102316. +Test "Real part of: casinh (1.0 + 0.5 i)":
  102317. +double: 1
  102318. +idouble: 1
  102319. +Test "Real part of: casinh (1.0 + 0x1.fp-10 i)":
  102320. +double: 1
  102321. +idouble: 1
  102322. +Test "Imaginary part of: casinh (1.0 + 0x1.fp-10 i)":
  102323. +float: 1
  102324. +ifloat: 1
  102325. +Test "Real part of: casinh (1.0 + 0x1.fp-100 i)":
  102326. +double: 1
  102327. +float: 1
  102328. +idouble: 1
  102329. +ifloat: 1
  102330. +Test "Real part of: casinh (1.0 + 0x1.fp-1000 i)":
  102331. +double: 1
  102332. +idouble: 1
  102333. +Test "Real part of: casinh (1.0 + 0x1.fp-1025 i)":
  102334. +double: 1
  102335. +idouble: 1
  102336. +Test "Real part of: casinh (1.0 + 0x1.fp-129 i)":
  102337. +double: 1
  102338. +float: 1
  102339. +idouble: 1
  102340. +ifloat: 1
  102341. +Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
  102342. +double: 1
  102343. +float: 1
  102344. +idouble: 1
  102345. +ifloat: 1
  102346. +Test "Real part of: casinh (1.0 - 0 i)":
  102347. +double: 1
  102348. +float: 1
  102349. +idouble: 1
  102350. +ifloat: 1
  102351. +Test "Real part of: casinh (1.0 - 0.25 i)":
  102352. +float: 1
  102353. +ifloat: 1
  102354. +Test "Real part of: casinh (1.0 - 0.5 i)":
  102355. +double: 1
  102356. +idouble: 1
  102357. +Test "Real part of: casinh (1.0 - 0x1.fp-10 i)":
  102358. +double: 1
  102359. +idouble: 1
  102360. +Test "Imaginary part of: casinh (1.0 - 0x1.fp-10 i)":
  102361. +float: 1
  102362. +ifloat: 1
  102363. +Test "Real part of: casinh (1.0 - 0x1.fp-100 i)":
  102364. +double: 1
  102365. +float: 1
  102366. +idouble: 1
  102367. +ifloat: 1
  102368. +Test "Real part of: casinh (1.0 - 0x1.fp-1000 i)":
  102369. +double: 1
  102370. +idouble: 1
  102371. +Test "Real part of: casinh (1.0 - 0x1.fp-1025 i)":
  102372. +double: 1
  102373. +idouble: 1
  102374. +Test "Real part of: casinh (1.0 - 0x1.fp-129 i)":
  102375. +double: 1
  102376. +float: 1
  102377. +idouble: 1
  102378. +ifloat: 1
  102379. +Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
  102380. +double: 1
  102381. +float: 1
  102382. +idouble: 1
  102383. +ifloat: 1
  102384. +Test "Real part of: casinh (1.5 + +0 i)":
  102385. +double: 1
  102386. +idouble: 1
  102387. +Test "Real part of: casinh (1.5 + 0x1.fp-1025 i)":
  102388. +double: 1
  102389. +idouble: 1
  102390. +Test "Real part of: casinh (1.5 + 0x1.fp-129 i)":
  102391. +double: 1
  102392. +idouble: 1
  102393. +Test "Real part of: casinh (1.5 - 0 i)":
  102394. +double: 1
  102395. +idouble: 1
  102396. +Test "Real part of: casinh (1.5 - 0x1.fp-1025 i)":
  102397. +double: 1
  102398. +idouble: 1
  102399. +Test "Real part of: casinh (1.5 - 0x1.fp-129 i)":
  102400. +double: 1
  102401. +idouble: 1
  102402. +
  102403. +# catan
  102404. +Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
  102405. +double: 1
  102406. +idouble: 1
  102407. +Test "Imaginary part of: catan (-0x0.ffffffp0 + 0x1p-13 i)":
  102408. +double: 1
  102409. +float: 1
  102410. +idouble: 1
  102411. +ifloat: 1
  102412. +Test "Imaginary part of: catan (-0x1.0000000000001p0 - 0x1p-27 i)":
  102413. +double: 1
  102414. +idouble: 1
  102415. +Test "Real part of: catan (-0x1.000002p0 + 0x1p-126 i)":
  102416. +float: 1
  102417. +ifloat: 1
  102418. +Test "Real part of: catan (-0x1.000002p0 + 0x1p-13 i)":
  102419. +float: 1
  102420. +ifloat: 1
  102421. +Test "Real part of: catan (-0x1.000002p0 - 0x1p-126 i)":
  102422. +float: 1
  102423. +ifloat: 1
  102424. +Test "Real part of: catan (-0x1.000002p0 - 0x1p-13 i)":
  102425. +float: 1
  102426. +ifloat: 1
  102427. +Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i)":
  102428. +double: 1
  102429. +idouble: 1
  102430. +Test "Imaginary part of: catan (-0x1.fp1023 + 0x1.fp1023 i)":
  102431. +double: 1
  102432. +idouble: 1
  102433. +Test "Imaginary part of: catan (-0x1.fp1023 - 0x1.fp1023 i)":
  102434. +double: 1
  102435. +idouble: 1
  102436. +Test "Imaginary part of: catan (-0x1.fp127 + 0x1.fp127 i)":
  102437. +double: 1
  102438. +idouble: 1
  102439. +Test "Imaginary part of: catan (-0x1.fp127 - 0x1.fp127 i)":
  102440. +double: 1
  102441. +idouble: 1
  102442. +Test "Imaginary part of: catan (-0x1p-1020 + 1.0 i)":
  102443. +double: 1
  102444. +idouble: 1
  102445. +Test "Imaginary part of: catan (-0x1p-1020 - 1.0 i)":
  102446. +double: 1
  102447. +idouble: 1
  102448. +Test "Real part of: catan (-0x1p-13 + 0x1.000002p0 i)":
  102449. +float: 1
  102450. +ifloat: 1
  102451. +Test "Real part of: catan (-0x1p-13 + 1.0 i)":
  102452. +float: 1
  102453. +ifloat: 1
  102454. +Test "Real part of: catan (-0x1p-13 - 0x1.000002p0 i)":
  102455. +float: 1
  102456. +ifloat: 1
  102457. +Test "Imaginary part of: catan (-0x1p-13 - 0x1.000002p0 i)":
  102458. +float: 1
  102459. +ifloat: 1
  102460. +Test "Real part of: catan (-0x1p-13 - 1.0 i)":
  102461. +float: 1
  102462. +ifloat: 1
  102463. +Test "Imaginary part of: catan (-0x1p-54 + 1.0 i)":
  102464. +float: 1
  102465. +ifloat: 1
  102466. +Test "Imaginary part of: catan (-0x1p-54 - 1.0 i)":
  102467. +float: 1
  102468. +ifloat: 1
  102469. +Test "Imaginary part of: catan (-0x1p-57 + 1.0 i)":
  102470. +float: 1
  102471. +ifloat: 1
  102472. +Test "Imaginary part of: catan (-0x1p-57 - 1.0 i)":
  102473. +float: 1
  102474. +ifloat: 1
  102475. +Test "Real part of: catan (-1.0 + 0x1p-13 i)":
  102476. +float: 1
  102477. +ifloat: 1
  102478. +Test "Real part of: catan (-1.0 - 0x1p-13 i)":
  102479. +float: 1
  102480. +ifloat: 1
  102481. +Test "Imaginary part of: catan (-2 - 3 i)":
  102482. +double: 1
  102483. +float: 1
  102484. +idouble: 1
  102485. +ifloat: 1
  102486. +Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i)":
  102487. +double: 1
  102488. +idouble: 1
  102489. +Test "Imaginary part of: catan (0x0.ffffffp0 + 0x1p-13 i)":
  102490. +double: 1
  102491. +float: 1
  102492. +idouble: 1
  102493. +ifloat: 1
  102494. +Test "Imaginary part of: catan (0x1.0000000000001p0 - 0x1p-27 i)":
  102495. +double: 1
  102496. +idouble: 1
  102497. +Test "Real part of: catan (0x1.000002p0 + 0x1p-126 i)":
  102498. +float: 1
  102499. +ifloat: 1
  102500. +Test "Real part of: catan (0x1.000002p0 + 0x1p-13 i)":
  102501. +float: 1
  102502. +ifloat: 1
  102503. +Test "Real part of: catan (0x1.000002p0 - 0x1p-126 i)":
  102504. +float: 1
  102505. +ifloat: 1
  102506. +Test "Real part of: catan (0x1.000002p0 - 0x1p-13 i)":
  102507. +float: 1
  102508. +ifloat: 1
  102509. +Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i)":
  102510. +double: 1
  102511. +idouble: 1
  102512. +Test "Imaginary part of: catan (0x1.fp1023 + 0x1.fp1023 i)":
  102513. +double: 1
  102514. +idouble: 1
  102515. +Test "Imaginary part of: catan (0x1.fp1023 - 0x1.fp1023 i)":
  102516. +double: 1
  102517. +idouble: 1
  102518. +Test "Imaginary part of: catan (0x1.fp127 + 0x1.fp127 i)":
  102519. +double: 1
  102520. +idouble: 1
  102521. +Test "Imaginary part of: catan (0x1.fp127 - 0x1.fp127 i)":
  102522. +double: 1
  102523. +idouble: 1
  102524. +Test "Imaginary part of: catan (0x1p-1020 + 1.0 i)":
  102525. +double: 1
  102526. +idouble: 1
  102527. +Test "Imaginary part of: catan (0x1p-1020 - 1.0 i)":
  102528. +double: 1
  102529. +idouble: 1
  102530. +Test "Real part of: catan (0x1p-13 + 0x1.000002p0 i)":
  102531. +float: 1
  102532. +ifloat: 1
  102533. +Test "Real part of: catan (0x1p-13 + 1.0 i)":
  102534. +float: 1
  102535. +ifloat: 1
  102536. +Test "Real part of: catan (0x1p-13 - 0x1.000002p0 i)":
  102537. +float: 1
  102538. +ifloat: 1
  102539. +Test "Imaginary part of: catan (0x1p-13 - 0x1.000002p0 i)":
  102540. +float: 1
  102541. +ifloat: 1
  102542. +Test "Real part of: catan (0x1p-13 - 1.0 i)":
  102543. +float: 1
  102544. +ifloat: 1
  102545. +Test "Imaginary part of: catan (0x1p-54 + 1.0 i)":
  102546. +float: 1
  102547. +ifloat: 1
  102548. +Test "Imaginary part of: catan (0x1p-54 - 1.0 i)":
  102549. +float: 1
  102550. +ifloat: 1
  102551. +Test "Imaginary part of: catan (0x1p-57 + 1.0 i)":
  102552. +float: 1
  102553. +ifloat: 1
  102554. +Test "Imaginary part of: catan (0x1p-57 - 1.0 i)":
  102555. +float: 1
  102556. +ifloat: 1
  102557. +Test "Real part of: catan (1.0 + 0x1p-13 i)":
  102558. +float: 1
  102559. +ifloat: 1
  102560. +Test "Real part of: catan (1.0 - 0x1p-13 i)":
  102561. +float: 1
  102562. +ifloat: 1
  102563. +
  102564. +# catanh
  102565. +Test "Real part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
  102566. +float: 1
  102567. +ifloat: 1
  102568. +Test "Imaginary part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
  102569. +float: 1
  102570. +ifloat: 1
  102571. +Test "Real part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
  102572. +float: 1
  102573. +ifloat: 1
  102574. +Test "Imaginary part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
  102575. +float: 1
  102576. +ifloat: 1
  102577. +Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i)":
  102578. +double: 1
  102579. +idouble: 1
  102580. +Test "Real part of: catanh (-0x1.fp1023 - 0x1.fp1023 i)":
  102581. +double: 1
  102582. +idouble: 1
  102583. +Test "Real part of: catanh (-0x1.fp127 + 0x1.fp127 i)":
  102584. +double: 1
  102585. +idouble: 1
  102586. +Test "Real part of: catanh (-0x1.fp127 - 0x1.fp127 i)":
  102587. +double: 1
  102588. +idouble: 1
  102589. +Test "Imaginary part of: catanh (-0x1p-126 + 0x1.000002p0 i)":
  102590. +float: 1
  102591. +ifloat: 1
  102592. +Test "Imaginary part of: catanh (-0x1p-126 - 0x1.000002p0 i)":
  102593. +float: 1
  102594. +ifloat: 1
  102595. +Test "Real part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
  102596. +double: 1
  102597. +idouble: 1
  102598. +Test "Imaginary part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
  102599. +float: 1
  102600. +ifloat: 1
  102601. +Test "Imaginary part of: catanh (-0x1p-13 + 1.0 i)":
  102602. +float: 1
  102603. +ifloat: 1
  102604. +Test "Real part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
  102605. +double: 1
  102606. +idouble: 1
  102607. +Test "Imaginary part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
  102608. +float: 1
  102609. +ifloat: 1
  102610. +Test "Imaginary part of: catanh (-0x1p-13 - 1.0 i)":
  102611. +float: 1
  102612. +ifloat: 1
  102613. +Test "Real part of: catanh (-0x1p-27 + 0x1.0000000000001p0 i)":
  102614. +double: 1
  102615. +idouble: 1
  102616. +Test "Real part of: catanh (-0x1p-27 - 0x1.0000000000001p0 i)":
  102617. +double: 1
  102618. +idouble: 1
  102619. +Test "Real part of: catanh (-1.0 + 0x1p-1020 i)":
  102620. +double: 1
  102621. +idouble: 1
  102622. +Test "Imaginary part of: catanh (-1.0 + 0x1p-13 i)":
  102623. +float: 1
  102624. +ifloat: 1
  102625. +Test "Real part of: catanh (-1.0 + 0x1p-54 i)":
  102626. +float: 1
  102627. +ifloat: 1
  102628. +Test "Real part of: catanh (-1.0 + 0x1p-57 i)":
  102629. +float: 1
  102630. +ifloat: 1
  102631. +Test "Real part of: catanh (-1.0 - 0x1p-1020 i)":
  102632. +double: 1
  102633. +idouble: 1
  102634. +Test "Imaginary part of: catanh (-1.0 - 0x1p-13 i)":
  102635. +float: 1
  102636. +ifloat: 1
  102637. +Test "Real part of: catanh (-1.0 - 0x1p-54 i)":
  102638. +float: 1
  102639. +ifloat: 1
  102640. +Test "Real part of: catanh (-1.0 - 0x1p-57 i)":
  102641. +float: 1
  102642. +ifloat: 1
  102643. +Test "Real part of: catanh (-2 - 3 i)":
  102644. +double: 1
  102645. +idouble: 1
  102646. +Test "Imaginary part of: catanh (0x1.000002p0 + 0x1p-13 i)":
  102647. +float: 1
  102648. +ifloat: 1
  102649. +Test "Imaginary part of: catanh (0x1.000002p0 - 0x1p-13 i)":
  102650. +float: 1
  102651. +ifloat: 1
  102652. +Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i)":
  102653. +double: 1
  102654. +idouble: 1
  102655. +Test "Real part of: catanh (0x1.fp1023 - 0x1.fp1023 i)":
  102656. +double: 1
  102657. +idouble: 1
  102658. +Test "Real part of: catanh (0x1.fp127 + 0x1.fp127 i)":
  102659. +double: 1
  102660. +idouble: 1
  102661. +Test "Real part of: catanh (0x1.fp127 - 0x1.fp127 i)":
  102662. +double: 1
  102663. +idouble: 1
  102664. +Test "Imaginary part of: catanh (0x1p-126 + 0x1.000002p0 i)":
  102665. +float: 1
  102666. +ifloat: 1
  102667. +Test "Imaginary part of: catanh (0x1p-126 - 0x1.000002p0 i)":
  102668. +float: 1
  102669. +ifloat: 1
  102670. +Test "Real part of: catanh (0x1p-13 + 0x0.ffffffp0 i)":
  102671. +double: 1
  102672. +float: 1
  102673. +idouble: 1
  102674. +ifloat: 1
  102675. +Test "Imaginary part of: catanh (0x1p-13 + 0x1.000002p0 i)":
  102676. +float: 1
  102677. +ifloat: 1
  102678. +Test "Imaginary part of: catanh (0x1p-13 + 1.0 i)":
  102679. +float: 1
  102680. +ifloat: 1
  102681. +Test "Real part of: catanh (0x1p-13 - 0x0.ffffffp0 i)":
  102682. +double: 1
  102683. +float: 1
  102684. +idouble: 1
  102685. +ifloat: 1
  102686. +Test "Imaginary part of: catanh (0x1p-13 - 0x1.000002p0 i)":
  102687. +float: 1
  102688. +ifloat: 1
  102689. +Test "Imaginary part of: catanh (0x1p-13 - 1.0 i)":
  102690. +float: 1
  102691. +ifloat: 1
  102692. +Test "Real part of: catanh (0x1p-27 + 0x0.fffffffffffff8p0 i)":
  102693. +double: 1
  102694. +idouble: 1
  102695. +Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i)":
  102696. +double: 1
  102697. +idouble: 1
  102698. +Test "Real part of: catanh (1.0 + 0x1p-1020 i)":
  102699. +double: 1
  102700. +idouble: 1
  102701. +Test "Imaginary part of: catanh (1.0 + 0x1p-13 i)":
  102702. +float: 1
  102703. +ifloat: 1
  102704. +Test "Real part of: catanh (1.0 + 0x1p-54 i)":
  102705. +float: 1
  102706. +ifloat: 1
  102707. +Test "Real part of: catanh (1.0 + 0x1p-57 i)":
  102708. +float: 1
  102709. +ifloat: 1
  102710. +Test "Real part of: catanh (1.0 - 0x1p-1020 i)":
  102711. +double: 1
  102712. +idouble: 1
  102713. +Test "Imaginary part of: catanh (1.0 - 0x1p-13 i)":
  102714. +float: 1
  102715. +ifloat: 1
  102716. +Test "Real part of: catanh (1.0 - 0x1p-54 i)":
  102717. +float: 1
  102718. +ifloat: 1
  102719. +Test "Real part of: catanh (1.0 - 0x1p-57 i)":
  102720. +float: 1
  102721. +ifloat: 1
  102722. +
  102723. +# cbrt
  102724. +Test "cbrt (-27.0)":
  102725. +double: 1
  102726. +idouble: 1
  102727. +Test "cbrt (0.75)":
  102728. +double: 1
  102729. +idouble: 1
  102730. +Test "cbrt (0.9921875)":
  102731. +double: 1
  102732. +idouble: 1
  102733. +
  102734. +# ccos
  102735. +Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
  102736. +double: 1
  102737. +idouble: 1
  102738. +Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
  102739. +float: 1
  102740. +ifloat: 1
  102741. +Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
  102742. +double: 1
  102743. +idouble: 1
  102744. +Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
  102745. +float: 1
  102746. +ifloat: 1
  102747. +Test "Imaginary part of: ccos (-2 - 3 i)":
  102748. +float: 1
  102749. +ifloat: 1
  102750. +Test "Real part of: ccos (0.75 + 1.25 i)":
  102751. +double: 1
  102752. +float: 1
  102753. +idouble: 1
  102754. +ifloat: 1
  102755. +Test "Imaginary part of: ccos (0.75 + 1.25 i)":
  102756. +float: 1
  102757. +ifloat: 1
  102758. +Test "Imaginary part of: ccos (0.75 + 710.5 i)":
  102759. +double: 1
  102760. +idouble: 1
  102761. +Test "Imaginary part of: ccos (0.75 + 89.5 i)":
  102762. +float: 1
  102763. +ifloat: 1
  102764. +Test "Imaginary part of: ccos (0.75 - 710.5 i)":
  102765. +double: 1
  102766. +idouble: 1
  102767. +Test "Imaginary part of: ccos (0.75 - 89.5 i)":
  102768. +float: 1
  102769. +ifloat: 1
  102770. +Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
  102771. +double: 1
  102772. +idouble: 1
  102773. +
  102774. +# ccosh
  102775. +Test "Real part of: ccosh (-2 - 3 i)":
  102776. +float: 1
  102777. +ifloat: 1
  102778. +Test "Imaginary part of: ccosh (-2 - 3 i)":
  102779. +float: 1
  102780. +ifloat: 1
  102781. +Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
  102782. +double: 1
  102783. +idouble: 1
  102784. +Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
  102785. +double: 1
  102786. +idouble: 1
  102787. +Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
  102788. +float: 1
  102789. +ifloat: 1
  102790. +Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
  102791. +float: 1
  102792. +ifloat: 1
  102793. +Test "Real part of: ccosh (0.75 + 1.25 i)":
  102794. +double: 1
  102795. +float: 1
  102796. +idouble: 1
  102797. +ifloat: 1
  102798. +Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
  102799. +float: 1
  102800. +ifloat: 1
  102801. +Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
  102802. +double: 1
  102803. +idouble: 1
  102804. +Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
  102805. +double: 1
  102806. +idouble: 1
  102807. +Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
  102808. +double: 1
  102809. +idouble: 1
  102810. +Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
  102811. +float: 1
  102812. +ifloat: 1
  102813. +Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
  102814. +float: 1
  102815. +ifloat: 1
  102816. +
  102817. +# cexp
  102818. +Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
  102819. +float: 1
  102820. +ifloat: 1
  102821. +Test "Imaginary part of: cexp (-95 + 0.75 i)":
  102822. +double: 1
  102823. +idouble: 1
  102824. +Test "Real part of: cexp (0.75 + 1.25 i)":
  102825. +float: 1
  102826. +ifloat: 1
  102827. +Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
  102828. +double: 1
  102829. +idouble: 1
  102830. +Test "Real part of: cexp (50 + 0x1p127 i)":
  102831. +double: 2
  102832. +float: 1
  102833. +idouble: 2
  102834. +ifloat: 1
  102835. +Test "Imaginary part of: cexp (50 + 0x1p127 i)":
  102836. +double: 1
  102837. +idouble: 1
  102838. +Test "Real part of: cexp (500 + 0x1p1023 i)":
  102839. +double: 1
  102840. +idouble: 1
  102841. +Test "Real part of: cexp (709.8125 + 0.75 i)":
  102842. +double: 1
  102843. +idouble: 1
  102844. +Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
  102845. +double: 1
  102846. +idouble: 1
  102847. +Test "Real part of: cexp (88.75 + 0.75 i)":
  102848. +float: 1
  102849. +ifloat: 1
  102850. +Test "Imaginary part of: cexp (88.75 + 0.75 i)":
  102851. +float: 2
  102852. +ifloat: 2
  102853. +
  102854. +# clog
  102855. +Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  102856. +double: 1
  102857. +idouble: 1
  102858. +Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  102859. +double: 1
  102860. +idouble: 1
  102861. +Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
  102862. +float: 1
  102863. +ifloat: 1
  102864. +Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
  102865. +float: 1
  102866. +ifloat: 1
  102867. +Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
  102868. +float: 1
  102869. +ifloat: 1
  102870. +Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
  102871. +float: 1
  102872. +ifloat: 1
  102873. +Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
  102874. +float: 1
  102875. +ifloat: 1
  102876. +Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
  102877. +float: 1
  102878. +ifloat: 1
  102879. +Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
  102880. +float: 1
  102881. +ifloat: 1
  102882. +Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
  102883. +float: 1
  102884. +ifloat: 1
  102885. +Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
  102886. +float: 1
  102887. +ifloat: 1
  102888. +Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
  102889. +float: 1
  102890. +ifloat: 1
  102891. +Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
  102892. +float: 1
  102893. +ifloat: 1
  102894. +Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
  102895. +double: 1
  102896. +idouble: 1
  102897. +Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
  102898. +float: 1
  102899. +ifloat: 1
  102900. +Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
  102901. +float: 1
  102902. +ifloat: 1
  102903. +Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
  102904. +float: 1
  102905. +ifloat: 1
  102906. +Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
  102907. +float: 1
  102908. +ifloat: 1
  102909. +Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
  102910. +float: 1
  102911. +ifloat: 1
  102912. +
  102913. +# clog10
  102914. +Test "Imaginary part of: clog10 (-0 + inf i)":
  102915. +double: 1
  102916. +float: 1
  102917. +idouble: 1
  102918. +ifloat: 1
  102919. +Test "Imaginary part of: clog10 (-0 - inf i)":
  102920. +double: 1
  102921. +float: 1
  102922. +idouble: 1
  102923. +ifloat: 1
  102924. +Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  102925. +double: 2
  102926. +idouble: 2
  102927. +Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  102928. +double: 1
  102929. +idouble: 1
  102930. +Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  102931. +double: 2
  102932. +idouble: 2
  102933. +Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  102934. +double: 1
  102935. +idouble: 1
  102936. +Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
  102937. +double: 1
  102938. +idouble: 1
  102939. +Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
  102940. +double: 1
  102941. +idouble: 1
  102942. +Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
  102943. +double: 1
  102944. +float: 1
  102945. +idouble: 1
  102946. +ifloat: 1
  102947. +Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
  102948. +double: 1
  102949. +float: 1
  102950. +idouble: 1
  102951. +ifloat: 1
  102952. +Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
  102953. +double: 1
  102954. +idouble: 1
  102955. +Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
  102956. +double: 1
  102957. +idouble: 1
  102958. +Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
  102959. +double: 1
  102960. +idouble: 1
  102961. +Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
  102962. +double: 1
  102963. +idouble: 1
  102964. +Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
  102965. +double: 1
  102966. +idouble: 1
  102967. +Test "Imaginary part of: clog10 (-2 - 3 i)":
  102968. +double: 1
  102969. +idouble: 1
  102970. +Test "Imaginary part of: clog10 (-3 + inf i)":
  102971. +double: 1
  102972. +float: 1
  102973. +idouble: 1
  102974. +ifloat: 1
  102975. +Test "Imaginary part of: clog10 (-3 - inf i)":
  102976. +double: 1
  102977. +float: 1
  102978. +idouble: 1
  102979. +ifloat: 1
  102980. +Test "Imaginary part of: clog10 (-inf + 0 i)":
  102981. +double: 1
  102982. +float: 1
  102983. +idouble: 1
  102984. +ifloat: 1
  102985. +Test "Imaginary part of: clog10 (-inf + 1 i)":
  102986. +double: 1
  102987. +float: 1
  102988. +idouble: 1
  102989. +ifloat: 1
  102990. +Test "Imaginary part of: clog10 (-inf + inf i)":
  102991. +double: 1
  102992. +idouble: 1
  102993. +Test "Imaginary part of: clog10 (-inf - 0 i)":
  102994. +double: 1
  102995. +float: 1
  102996. +idouble: 1
  102997. +ifloat: 1
  102998. +Test "Imaginary part of: clog10 (-inf - 1 i)":
  102999. +double: 1
  103000. +float: 1
  103001. +idouble: 1
  103002. +ifloat: 1
  103003. +Test "Imaginary part of: clog10 (0 + inf i)":
  103004. +double: 1
  103005. +float: 1
  103006. +idouble: 1
  103007. +ifloat: 1
  103008. +Test "Imaginary part of: clog10 (0 - inf i)":
  103009. +double: 1
  103010. +float: 1
  103011. +idouble: 1
  103012. +ifloat: 1
  103013. +Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
  103014. +double: 1
  103015. +idouble: 1
  103016. +Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
  103017. +double: 1
  103018. +float: 2
  103019. +idouble: 1
  103020. +ifloat: 2
  103021. +Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
  103022. +float: 1
  103023. +ifloat: 1
  103024. +Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
  103025. +double: 1
  103026. +idouble: 1
  103027. +Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
  103028. +float: 1
  103029. +ifloat: 1
  103030. +Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
  103031. +float: 1
  103032. +ifloat: 1
  103033. +Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
  103034. +float: 1
  103035. +ifloat: 1
  103036. +Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
  103037. +double: 1
  103038. +float: 1
  103039. +idouble: 1
  103040. +ifloat: 1
  103041. +Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
  103042. +double: 1
  103043. +float: 1
  103044. +idouble: 1
  103045. +ifloat: 1
  103046. +Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i)":
  103047. +float: 1
  103048. +ifloat: 1
  103049. +Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  103050. +double: 1
  103051. +idouble: 1
  103052. +Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
  103053. +double: 1
  103054. +idouble: 1
  103055. +Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
  103056. +double: 1
  103057. +idouble: 1
  103058. +Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
  103059. +double: 1
  103060. +idouble: 1
  103061. +Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
  103062. +double: 1
  103063. +idouble: 1
  103064. +Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
  103065. +double: 1
  103066. +idouble: 1
  103067. +Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i)":
  103068. +double: 1
  103069. +idouble: 1
  103070. +Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i)":
  103071. +double: 1
  103072. +idouble: 1
  103073. +Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
  103074. +double: 1
  103075. +idouble: 1
  103076. +Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
  103077. +double: 1
  103078. +idouble: 1
  103079. +Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i)":
  103080. +double: 1
  103081. +idouble: 1
  103082. +Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
  103083. +double: 1
  103084. +float: 1
  103085. +idouble: 1
  103086. +ifloat: 1
  103087. +Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
  103088. +double: 1
  103089. +float: 1
  103090. +idouble: 1
  103091. +ifloat: 1
  103092. +Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
  103093. +double: 1
  103094. +float: 1
  103095. +idouble: 1
  103096. +ifloat: 1
  103097. +Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
  103098. +double: 1
  103099. +float: 1
  103100. +idouble: 1
  103101. +ifloat: 1
  103102. +Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
  103103. +double: 1
  103104. +idouble: 1
  103105. +Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
  103106. +double: 1
  103107. +idouble: 1
  103108. +Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
  103109. +double: 1
  103110. +idouble: 1
  103111. +Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
  103112. +double: 1
  103113. +float: 1
  103114. +idouble: 1
  103115. +ifloat: 1
  103116. +Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
  103117. +double: 1
  103118. +float: 1
  103119. +idouble: 1
  103120. +ifloat: 1
  103121. +Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
  103122. +double: 1
  103123. +float: 1
  103124. +idouble: 1
  103125. +ifloat: 1
  103126. +Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
  103127. +double: 1
  103128. +float: 1
  103129. +idouble: 1
  103130. +ifloat: 1
  103131. +Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
  103132. +float: 1
  103133. +ifloat: 1
  103134. +Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
  103135. +double: 1
  103136. +idouble: 1
  103137. +Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
  103138. +float: 1
  103139. +ifloat: 1
  103140. +Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
  103141. +double: 1
  103142. +idouble: 1
  103143. +Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
  103144. +double: 1
  103145. +idouble: 1
  103146. +Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
  103147. +double: 1
  103148. +idouble: 1
  103149. +Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
  103150. +double: 1
  103151. +idouble: 1
  103152. +Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
  103153. +double: 1
  103154. +idouble: 1
  103155. +Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
  103156. +double: 1
  103157. +idouble: 1
  103158. +Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
  103159. +double: 1
  103160. +idouble: 1
  103161. +Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
  103162. +double: 1
  103163. +idouble: 1
  103164. +Test "Imaginary part of: clog10 (3 + inf i)":
  103165. +double: 1
  103166. +float: 1
  103167. +idouble: 1
  103168. +ifloat: 1
  103169. +Test "Imaginary part of: clog10 (3 - inf i)":
  103170. +double: 1
  103171. +float: 1
  103172. +idouble: 1
  103173. +ifloat: 1
  103174. +Test "Imaginary part of: clog10 (inf + inf i)":
  103175. +double: 1
  103176. +float: 1
  103177. +idouble: 1
  103178. +ifloat: 1
  103179. +Test "Imaginary part of: clog10 (inf - inf i)":
  103180. +double: 1
  103181. +float: 1
  103182. +idouble: 1
  103183. +ifloat: 1
  103184. +
  103185. +# cos
  103186. +Test "cos (0x1p+120)":
  103187. +float: 1
  103188. +ifloat: 1
  103189. +Test "cos (0x1p+127)":
  103190. +float: 1
  103191. +ifloat: 1
  103192. +Test "cos (M_PI_6l * 2.0) == 0.5":
  103193. +double: 1
  103194. +idouble: 1
  103195. +ifloat: 1
  103196. +Test "cos (M_PI_6l * 4.0) == -0.5":
  103197. +double: 2
  103198. +float: 1
  103199. +idouble: 2
  103200. +ifloat: 1
  103201. +
  103202. +# cos_downward
  103203. +Test "cos_downward (1)":
  103204. +float: 1
  103205. +ifloat: 1
  103206. +Test "cos_downward (2)":
  103207. +float: 1
  103208. +ifloat: 1
  103209. +Test "cos_downward (3)":
  103210. +float: 1
  103211. +ifloat: 1
  103212. +Test "cos_downward (4)":
  103213. +float: 1
  103214. +ifloat: 1
  103215. +Test "cos_downward (5)":
  103216. +float: 1
  103217. +ifloat: 1
  103218. +Test "cos_downward (7)":
  103219. +float: 1
  103220. +ifloat: 1
  103221. +Test "cos_downward (8)":
  103222. +float: 1
  103223. +ifloat: 1
  103224. +
  103225. +# cos_tonearest
  103226. +Test "cos_tonearest (7)":
  103227. +float: 1
  103228. +ifloat: 1
  103229. +
  103230. +# cos_towardzero
  103231. +Test "cos_towardzero (2)":
  103232. +float: 1
  103233. +ifloat: 1
  103234. +Test "cos_towardzero (3)":
  103235. +float: 1
  103236. +ifloat: 1
  103237. +Test "cos_towardzero (5)":
  103238. +float: 1
  103239. +ifloat: 1
  103240. +Test "cos_towardzero (7)":
  103241. +float: 1
  103242. +ifloat: 1
  103243. +Test "cos_towardzero (8)":
  103244. +float: 1
  103245. +ifloat: 1
  103246. +
  103247. +# cos_upward
  103248. +Test "cos_upward (10)":
  103249. +float: 1
  103250. +ifloat: 1
  103251. +Test "cos_upward (6)":
  103252. +float: 1
  103253. +ifloat: 1
  103254. +Test "cos_upward (7)":
  103255. +float: 1
  103256. +ifloat: 1
  103257. +Test "cos_upward (9)":
  103258. +float: 2
  103259. +ifloat: 2
  103260. +
  103261. +# cosh_downward
  103262. +Test "cosh_downward (22)":
  103263. +float: 1
  103264. +ifloat: 1
  103265. +Test "cosh_downward (23)":
  103266. +float: 1
  103267. +ifloat: 1
  103268. +Test "cosh_downward (24)":
  103269. +float: 1
  103270. +ifloat: 1
  103271. +
  103272. +# cosh_towardzero
  103273. +Test "cosh_towardzero (22)":
  103274. +float: 1
  103275. +ifloat: 1
  103276. +Test "cosh_towardzero (23)":
  103277. +float: 1
  103278. +ifloat: 1
  103279. +Test "cosh_towardzero (24)":
  103280. +float: 1
  103281. +ifloat: 1
  103282. +
  103283. +# cpow
  103284. +Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
  103285. +float: 1
  103286. +ifloat: 1
  103287. +Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
  103288. +double: 1
  103289. +float: 4
  103290. +idouble: 1
  103291. +ifloat: 4
  103292. +Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
  103293. +double: 2
  103294. +float: 3
  103295. +idouble: 2
  103296. +ifloat: 3
  103297. +Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
  103298. +double: 1
  103299. +float: 4
  103300. +idouble: 1
  103301. +ifloat: 4
  103302. +Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
  103303. +float: 2
  103304. +ifloat: 2
  103305. +
  103306. +# csin
  103307. +Test "Real part of: csin (-0.75 + 710.5 i)":
  103308. +double: 1
  103309. +idouble: 1
  103310. +Test "Real part of: csin (-0.75 + 89.5 i)":
  103311. +float: 1
  103312. +ifloat: 1
  103313. +Test "Real part of: csin (-0.75 - 710.5 i)":
  103314. +double: 1
  103315. +idouble: 1
  103316. +Test "Real part of: csin (-0.75 - 89.5 i)":
  103317. +float: 1
  103318. +ifloat: 1
  103319. +Test "Real part of: csin (0.75 + 710.5 i)":
  103320. +double: 1
  103321. +idouble: 1
  103322. +Test "Real part of: csin (0.75 + 89.5 i)":
  103323. +float: 1
  103324. +ifloat: 1
  103325. +Test "Real part of: csin (0.75 - 710.5 i)":
  103326. +double: 1
  103327. +idouble: 1
  103328. +Test "Real part of: csin (0.75 - 89.5 i)":
  103329. +float: 1
  103330. +ifloat: 1
  103331. +Test "Real part of: csin (0x1p-1074 + 1440 i)":
  103332. +double: 1
  103333. +idouble: 1
  103334. +
  103335. +# csinh
  103336. +Test "Imaginary part of: csinh (-2 - 3 i)":
  103337. +double: 1
  103338. +idouble: 1
  103339. +Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
  103340. +double: 1
  103341. +idouble: 1
  103342. +Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
  103343. +double: 1
  103344. +idouble: 1
  103345. +Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
  103346. +float: 1
  103347. +ifloat: 1
  103348. +Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
  103349. +float: 1
  103350. +ifloat: 1
  103351. +Test "Real part of: csinh (0.75 + 1.25 i)":
  103352. +float: 1
  103353. +ifloat: 1
  103354. +Test "Imaginary part of: csinh (0.75 + 1.25 i)":
  103355. +float: 1
  103356. +ifloat: 1
  103357. +Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
  103358. +double: 1
  103359. +idouble: 1
  103360. +Test "Imaginary part of: csinh (710.5 + 0.75 i)":
  103361. +double: 1
  103362. +idouble: 1
  103363. +Test "Imaginary part of: csinh (710.5 - 0.75 i)":
  103364. +double: 1
  103365. +idouble: 1
  103366. +Test "Imaginary part of: csinh (89.5 + 0.75 i)":
  103367. +float: 1
  103368. +ifloat: 1
  103369. +Test "Imaginary part of: csinh (89.5 - 0.75 i)":
  103370. +float: 1
  103371. +ifloat: 1
  103372. +
  103373. +# csqrt
  103374. +Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
  103375. +double: 1
  103376. +idouble: 1
  103377. +Test "Real part of: csqrt (-2 + 3 i)":
  103378. +float: 1
  103379. +ifloat: 1
  103380. +Test "Real part of: csqrt (-2 - 3 i)":
  103381. +float: 1
  103382. +ifloat: 1
  103383. +Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
  103384. +double: 1
  103385. +idouble: 1
  103386. +Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
  103387. +float: 1
  103388. +ifloat: 1
  103389. +Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  103390. +double: 1
  103391. +idouble: 1
  103392. +Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  103393. +double: 1
  103394. +idouble: 1
  103395. +Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
  103396. +double: 1
  103397. +idouble: 1
  103398. +
  103399. +# ctan
  103400. +Test "Real part of: ctan (-2 - 3 i)":
  103401. +float: 1
  103402. +ifloat: 1
  103403. +Test "Imaginary part of: ctan (-2 - 3 i)":
  103404. +double: 1
  103405. +idouble: 1
  103406. +Test "Imaginary part of: ctan (0.75 + 1.25 i)":
  103407. +double: 1
  103408. +idouble: 1
  103409. +Test "Real part of: ctan (0x1p1023 + 1 i)":
  103410. +double: 1
  103411. +idouble: 1
  103412. +Test "Imaginary part of: ctan (0x1p127 + 1 i)":
  103413. +double: 1
  103414. +idouble: 1
  103415. +Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
  103416. +float: 1
  103417. +ifloat: 1
  103418. +
  103419. +# ctan_downward
  103420. +Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
  103421. +double: 2
  103422. +float: 1
  103423. +idouble: 2
  103424. +ifloat: 1
  103425. +Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
  103426. +float: 1
  103427. +ifloat: 1
  103428. +
  103429. +# ctan_tonearest
  103430. +Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
  103431. +float: 1
  103432. +ifloat: 1
  103433. +Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
  103434. +float: 1
  103435. +ifloat: 1
  103436. +
  103437. +# ctan_towardzero
  103438. +Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
  103439. +float: 1
  103440. +ifloat: 1
  103441. +Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
  103442. +float: 1
  103443. +ifloat: 1
  103444. +
  103445. +# ctan_upward
  103446. +Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
  103447. +double: 1
  103448. +idouble: 1
  103449. +Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
  103450. +double: 2
  103451. +float: 1
  103452. +idouble: 2
  103453. +ifloat: 1
  103454. +Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
  103455. +double: 1
  103456. +float: 2
  103457. +idouble: 1
  103458. +ifloat: 2
  103459. +
  103460. +# ctanh
  103461. +Test "Real part of: ctanh (-2 - 3 i)":
  103462. +double: 1
  103463. +float: 1
  103464. +idouble: 1
  103465. +ifloat: 1
  103466. +Test "Imaginary part of: ctanh (-2 - 3 i)":
  103467. +double: 1
  103468. +float: 1
  103469. +idouble: 1
  103470. +ifloat: 1
  103471. +Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
  103472. +float: 1
  103473. +ifloat: 1
  103474. +Test "Imaginary part of: ctanh (0 + pi/4 i)":
  103475. +double: 1
  103476. +float: 1
  103477. +idouble: 1
  103478. +ifloat: 1
  103479. +Test "Real part of: ctanh (0.75 + 1.25 i)":
  103480. +double: 1
  103481. +float: 1
  103482. +idouble: 1
  103483. +ifloat: 1
  103484. +Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
  103485. +float: 2
  103486. +ifloat: 2
  103487. +Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
  103488. +double: 1
  103489. +idouble: 1
  103490. +Test "Real part of: ctanh (1 + 0x1p127 i)":
  103491. +double: 1
  103492. +idouble: 1
  103493. +
  103494. +# ctanh_downward
  103495. +Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
  103496. +float: 1
  103497. +ifloat: 1
  103498. +Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
  103499. +double: 2
  103500. +float: 1
  103501. +idouble: 2
  103502. +ifloat: 1
  103503. +
  103504. +# ctanh_tonearest
  103505. +Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
  103506. +float: 1
  103507. +ifloat: 1
  103508. +Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
  103509. +float: 1
  103510. +ifloat: 1
  103511. +
  103512. +# ctanh_towardzero
  103513. +Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
  103514. +float: 1
  103515. +ifloat: 1
  103516. +Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
  103517. +float: 1
  103518. +ifloat: 1
  103519. +
  103520. +# ctanh_upward
  103521. +Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
  103522. +double: 1
  103523. +idouble: 1
  103524. +Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
  103525. +double: 1
  103526. +float: 2
  103527. +idouble: 1
  103528. +ifloat: 2
  103529. +Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
  103530. +double: 2
  103531. +float: 1
  103532. +idouble: 2
  103533. +ifloat: 1
  103534. +
  103535. +# erf
  103536. +Test "erf (0.75) == 0.711155633653515131598937834591410777":
  103537. +double: 1
  103538. +idouble: 1
  103539. +Test "erf (1.25) == 0.922900128256458230136523481197281140":
  103540. +double: 1
  103541. +idouble: 1
  103542. +
  103543. +# erfc
  103544. +Test "erfc (0x1.f7303cp+1)":
  103545. +double: 1
  103546. +idouble: 1
  103547. +Test "erfc (0x1.ffa002p+2)":
  103548. +float: 1
  103549. +ifloat: 1
  103550. +Test "erfc (2.0)":
  103551. +double: 1
  103552. +idouble: 1
  103553. +Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
  103554. +double: 1
  103555. +idouble: 1
  103556. +
  103557. +# exp
  103558. +Test "exp (1) == e":
  103559. +double: 1
  103560. +idouble: 1
  103561. +
  103562. +# exp10
  103563. +Test "exp10 (-1)":
  103564. +double: 1
  103565. +idouble: 1
  103566. +Test "exp10 (-305)":
  103567. +double: 1
  103568. +idouble: 1
  103569. +Test "exp10 (-36)":
  103570. +double: 1
  103571. +idouble: 1
  103572. +Test "exp10 (3)":
  103573. +double: 1
  103574. +idouble: 1
  103575. +Test "exp10 (36)":
  103576. +double: 1
  103577. +idouble: 1
  103578. +
  103579. +# exp_downward
  103580. +Test "exp_downward (2)":
  103581. +float: 1
  103582. +ifloat: 1
  103583. +Test "exp_downward (3)":
  103584. +float: 1
  103585. +ifloat: 1
  103586. +
  103587. +# exp_towardzero
  103588. +Test "exp_towardzero (2)":
  103589. +float: 1
  103590. +ifloat: 1
  103591. +Test "exp_towardzero (3)":
  103592. +float: 1
  103593. +ifloat: 1
  103594. +
  103595. +# exp_upward
  103596. +Test "exp_upward (1)":
  103597. +float: 1
  103598. +ifloat: 1
  103599. +
  103600. +# expm1
  103601. +Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
  103602. +double: 1
  103603. +idouble: 1
  103604. +Test "expm1 (1)":
  103605. +float: 1
  103606. +ifloat: 1
  103607. +Test "expm1 (500.0)":
  103608. +double: 1
  103609. +idouble: 1
  103610. +
  103611. +# gamma
  103612. +Test "gamma (0.7)":
  103613. +double: 1
  103614. +float: 1
  103615. +idouble: 1
  103616. +ifloat: 1
  103617. +Test "gamma (1.2)":
  103618. +double: 1
  103619. +float: 2
  103620. +idouble: 1
  103621. +ifloat: 2
  103622. +
  103623. +# hypot
  103624. +Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
  103625. +float: 1
  103626. +ifloat: 1
  103627. +Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
  103628. +float: 1
  103629. +ifloat: 1
  103630. +Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
  103631. +float: 1
  103632. +ifloat: 1
  103633. +Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
  103634. +float: 1
  103635. +ifloat: 1
  103636. +Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
  103637. +float: 1
  103638. +ifloat: 1
  103639. +Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
  103640. +float: 1
  103641. +ifloat: 1
  103642. +Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
  103643. +float: 1
  103644. +ifloat: 1
  103645. +Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
  103646. +float: 1
  103647. +ifloat: 1
  103648. +
  103649. +# j0
  103650. +Test "j0 (-4.0)":
  103651. +double: 1
  103652. +float: 1
  103653. +idouble: 1
  103654. +ifloat: 1
  103655. +Test "j0 (0.75)":
  103656. +float: 1
  103657. +ifloat: 1
  103658. +Test "j0 (0x1.d7ce3ap+107)":
  103659. +float: 2
  103660. +ifloat: 2
  103661. +Test "j0 (10.0)":
  103662. +double: 2
  103663. +float: 1
  103664. +idouble: 2
  103665. +ifloat: 1
  103666. +Test "j0 (2.0)":
  103667. +float: 2
  103668. +ifloat: 2
  103669. +Test "j0 (4.0)":
  103670. +double: 1
  103671. +float: 1
  103672. +idouble: 1
  103673. +ifloat: 1
  103674. +Test "j0 (8.0)":
  103675. +float: 1
  103676. +ifloat: 1
  103677. +
  103678. +# j1
  103679. +Test "j1 (0x1.3ffp+74)":
  103680. +double: 1
  103681. +idouble: 1
  103682. +Test "j1 (0x1.ff00000000002p+840)":
  103683. +double: 1
  103684. +idouble: 1
  103685. +Test "j1 (10.0)":
  103686. +float: 2
  103687. +ifloat: 2
  103688. +Test "j1 (2.0)":
  103689. +double: 1
  103690. +idouble: 1
  103691. +Test "j1 (8.0)":
  103692. +double: 1
  103693. +idouble: 1
  103694. +
  103695. +# jn
  103696. +Test "jn (0, -4.0)":
  103697. +double: 1
  103698. +float: 1
  103699. +idouble: 1
  103700. +ifloat: 1
  103701. +Test "jn (0, 0.75)":
  103702. +float: 1
  103703. +ifloat: 1
  103704. +Test "jn (0, 10.0)":
  103705. +double: 2
  103706. +float: 1
  103707. +idouble: 2
  103708. +ifloat: 1
  103709. +Test "jn (0, 2.0)":
  103710. +float: 2
  103711. +ifloat: 2
  103712. +Test "jn (0, 4.0)":
  103713. +double: 1
  103714. +float: 1
  103715. +idouble: 1
  103716. +ifloat: 1
  103717. +Test "jn (0, 8.0)":
  103718. +float: 1
  103719. +ifloat: 1
  103720. +Test "jn (1, 10.0)":
  103721. +float: 2
  103722. +ifloat: 2
  103723. +Test "jn (1, 2.0)":
  103724. +double: 1
  103725. +idouble: 1
  103726. +Test "jn (1, 8.0)":
  103727. +double: 1
  103728. +idouble: 1
  103729. +Test "jn (10, 0.125)":
  103730. +double: 1
  103731. +float: 1
  103732. +idouble: 1
  103733. +ifloat: 1
  103734. +Test "jn (10, 0.75)":
  103735. +double: 1
  103736. +float: 1
  103737. +idouble: 1
  103738. +ifloat: 1
  103739. +Test "jn (10, 10.0)":
  103740. +double: 4
  103741. +float: 3
  103742. +idouble: 4
  103743. +ifloat: 3
  103744. +Test "jn (10, 2.0)":
  103745. +double: 1
  103746. +float: 2
  103747. +idouble: 1
  103748. +ifloat: 2
  103749. +Test "jn (2, 0x1.ffff62p+99)":
  103750. +double: 2
  103751. +float: 2
  103752. +idouble: 2
  103753. +ifloat: 2
  103754. +Test "jn (2, 2.4048255576957729)":
  103755. +double: 2
  103756. +float: 1
  103757. +idouble: 2
  103758. +ifloat: 1
  103759. +Test "jn (3, 0.125)":
  103760. +double: 1
  103761. +float: 1
  103762. +idouble: 1
  103763. +ifloat: 1
  103764. +Test "jn (3, 0.75)":
  103765. +double: 1
  103766. +float: 1
  103767. +idouble: 1
  103768. +ifloat: 1
  103769. +Test "jn (3, 10.0)":
  103770. +double: 3
  103771. +float: 1
  103772. +idouble: 3
  103773. +ifloat: 1
  103774. +Test "jn (3, 2.0)":
  103775. +float: 1
  103776. +ifloat: 1
  103777. +Test "jn (3, 2.4048255576957729)":
  103778. +double: 3
  103779. +idouble: 3
  103780. +Test "jn (4, 2.4048255576957729)":
  103781. +double: 1
  103782. +idouble: 1
  103783. +Test "jn (5, 2.4048255576957729)":
  103784. +double: 3
  103785. +float: 1
  103786. +idouble: 3
  103787. +ifloat: 1
  103788. +Test "jn (6, 2.4048255576957729)":
  103789. +double: 4
  103790. +float: 3
  103791. +idouble: 4
  103792. +ifloat: 3
  103793. +Test "jn (7, 2.4048255576957729)":
  103794. +double: 3
  103795. +float: 5
  103796. +idouble: 3
  103797. +ifloat: 5
  103798. +Test "jn (8, 2.4048255576957729)":
  103799. +double: 3
  103800. +float: 2
  103801. +idouble: 3
  103802. +ifloat: 2
  103803. +Test "jn (9, 2.4048255576957729)":
  103804. +double: 1
  103805. +float: 2
  103806. +idouble: 1
  103807. +ifloat: 2
  103808. +
  103809. +# lgamma
  103810. +Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
  103811. +double: 1
  103812. +float: 1
  103813. +idouble: 1
  103814. +ifloat: 1
  103815. +Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
  103816. +double: 1
  103817. +float: 2
  103818. +idouble: 1
  103819. +ifloat: 2
  103820. +
  103821. +# log10
  103822. +Test "log10 (0.75) == -0.124938736608299953132449886193870744":
  103823. +double: 1
  103824. +idouble: 1
  103825. +Test "log10 (e) == log10(e)":
  103826. +float: 1
  103827. +ifloat: 1
  103828. +
  103829. +# log1p
  103830. +Test "log1p (-0.25)":
  103831. +float: 1
  103832. +ifloat: 1
  103833. +
  103834. +# pow
  103835. +Test "pow (0x0.ffffffp0, -0x1p24)":
  103836. +float: 1
  103837. +ifloat: 1
  103838. +Test "pow (0x0.ffffffp0, 0x1p24)":
  103839. +float: 1
  103840. +ifloat: 1
  103841. +Test "pow (0x1.000002p0, 0x1p24)":
  103842. +float: 1
  103843. +ifloat: 1
  103844. +
  103845. +# pow10
  103846. +Test "pow10 (-1)":
  103847. +double: 1
  103848. +idouble: 1
  103849. +Test "pow10 (-305)":
  103850. +double: 1
  103851. +idouble: 1
  103852. +Test "pow10 (-36)":
  103853. +double: 1
  103854. +idouble: 1
  103855. +Test "pow10 (3)":
  103856. +double: 1
  103857. +idouble: 1
  103858. +Test "pow10 (36)":
  103859. +double: 1
  103860. +idouble: 1
  103861. +
  103862. +# pow_downward
  103863. +Test "pow_downward (1.5, 1.03125)":
  103864. +float: 1
  103865. +ifloat: 1
  103866. +
  103867. +# pow_towardzero
  103868. +Test "pow_towardzero (1.5, 1.03125)":
  103869. +float: 1
  103870. +ifloat: 1
  103871. +
  103872. +# pow_upward
  103873. +Test "pow_upward (1.0625, 1.125)":
  103874. +float: 1
  103875. +ifloat: 1
  103876. +
  103877. +# sin_downward
  103878. +Test "sin_downward (10)":
  103879. +float: 1
  103880. +ifloat: 1
  103881. +Test "sin_downward (3)":
  103882. +float: 1
  103883. +ifloat: 1
  103884. +Test "sin_downward (5)":
  103885. +float: 1
  103886. +ifloat: 1
  103887. +Test "sin_downward (6)":
  103888. +float: 1
  103889. +ifloat: 1
  103890. +
  103891. +# sin_tonearest
  103892. +Test "sin_tonearest (1)":
  103893. +float: 1
  103894. +ifloat: 1
  103895. +
  103896. +# sin_towardzero
  103897. +Test "sin_towardzero (1)":
  103898. +float: 1
  103899. +ifloat: 1
  103900. +Test "sin_towardzero (10)":
  103901. +float: 1
  103902. +ifloat: 1
  103903. +Test "sin_towardzero (4)":
  103904. +float: 1
  103905. +ifloat: 1
  103906. +Test "sin_towardzero (5)":
  103907. +float: 1
  103908. +ifloat: 1
  103909. +Test "sin_towardzero (9)":
  103910. +float: 1
  103911. +ifloat: 1
  103912. +
  103913. +# sin_upward
  103914. +Test "sin_upward (1)":
  103915. +float: 1
  103916. +ifloat: 1
  103917. +Test "sin_upward (2)":
  103918. +float: 2
  103919. +ifloat: 2
  103920. +Test "sin_upward (4)":
  103921. +float: 1
  103922. +ifloat: 1
  103923. +Test "sin_upward (9)":
  103924. +float: 1
  103925. +ifloat: 1
  103926. +
  103927. +# sincos
  103928. +Test "sincos (0x1p+120) extra output 2":
  103929. +float: 1
  103930. +ifloat: 1
  103931. +Test "sincos (0x1p+127) extra output 2":
  103932. +float: 1
  103933. +ifloat: 1
  103934. +Test "sincos (M_PI_6l*2.0) extra output 1":
  103935. +double: 1
  103936. +float: 1
  103937. +idouble: 1
  103938. +ifloat: 1
  103939. +Test "sincos (M_PI_6l*2.0) extra output 2":
  103940. +double: 1
  103941. +idouble: 1
  103942. +Test "sincos (pi/6) extra output 2":
  103943. +float: 1
  103944. +ifloat: 1
  103945. +
  103946. +# sinh_downward
  103947. +Test "sinh_downward (22)":
  103948. +float: 1
  103949. +ifloat: 1
  103950. +Test "sinh_downward (23)":
  103951. +float: 1
  103952. +ifloat: 1
  103953. +Test "sinh_downward (24)":
  103954. +float: 1
  103955. +ifloat: 1
  103956. +
  103957. +# sinh_towardzero
  103958. +Test "sinh_towardzero (22)":
  103959. +float: 1
  103960. +ifloat: 1
  103961. +Test "sinh_towardzero (23)":
  103962. +float: 1
  103963. +ifloat: 1
  103964. +Test "sinh_towardzero (24)":
  103965. +float: 1
  103966. +ifloat: 1
  103967. +
  103968. +# tan_downward
  103969. +Test "tan_downward (1)":
  103970. +float: 1
  103971. +ifloat: 1
  103972. +Test "tan_downward (10)":
  103973. +float: 1
  103974. +ifloat: 1
  103975. +Test "tan_downward (2)":
  103976. +float: 1
  103977. +ifloat: 1
  103978. +Test "tan_downward (6)":
  103979. +float: 1
  103980. +ifloat: 1
  103981. +Test "tan_downward (8)":
  103982. +float: 1
  103983. +ifloat: 1
  103984. +Test "tan_downward (9)":
  103985. +float: 1
  103986. +ifloat: 1
  103987. +
  103988. +# tan_towardzero
  103989. +Test "tan_towardzero (10)":
  103990. +float: 1
  103991. +ifloat: 1
  103992. +Test "tan_towardzero (3)":
  103993. +float: 1
  103994. +ifloat: 1
  103995. +Test "tan_towardzero (4)":
  103996. +float: 1
  103997. +ifloat: 1
  103998. +Test "tan_towardzero (5)":
  103999. +float: 1
  104000. +ifloat: 1
  104001. +Test "tan_towardzero (9)":
  104002. +float: 1
  104003. +ifloat: 1
  104004. +
  104005. +# tan_upward
  104006. +Test "tan_upward (1)":
  104007. +float: 1
  104008. +ifloat: 1
  104009. +Test "tan_upward (10)":
  104010. +float: 1
  104011. +ifloat: 1
  104012. +Test "tan_upward (3)":
  104013. +float: 1
  104014. +ifloat: 1
  104015. +Test "tan_upward (5)":
  104016. +float: 1
  104017. +ifloat: 1
  104018. +
  104019. +# tgamma
  104020. +Test "tgamma (-0.5)":
  104021. +double: 1
  104022. +float: 1
  104023. +idouble: 1
  104024. +ifloat: 1
  104025. +Test "tgamma (-0x0.fffffffffffff8p0)":
  104026. +double: 1
  104027. +idouble: 1
  104028. +Test "tgamma (-0x0.ffffffp0)":
  104029. +float: 1
  104030. +ifloat: 1
  104031. +Test "tgamma (-0x1.000002p0)":
  104032. +double: 2
  104033. +idouble: 2
  104034. +Test "tgamma (-0x1.0a32a2p+5)":
  104035. +float: 2
  104036. +ifloat: 2
  104037. +Test "tgamma (-0x13.ffffep0)":
  104038. +float: 2
  104039. +ifloat: 2
  104040. +Test "tgamma (-0x14.000000000001p0)":
  104041. +double: 1
  104042. +idouble: 1
  104043. +Test "tgamma (-0x14.00002p0)":
  104044. +float: 1
  104045. +ifloat: 1
  104046. +Test "tgamma (-0x1d.ffffep0)":
  104047. +double: 1
  104048. +float: 1
  104049. +idouble: 1
  104050. +ifloat: 1
  104051. +Test "tgamma (-0x1e.000000000001p0)":
  104052. +double: 3
  104053. +idouble: 3
  104054. +Test "tgamma (-0x1e.00002p0)":
  104055. +double: 1
  104056. +float: 1
  104057. +idouble: 1
  104058. +ifloat: 1
  104059. +Test "tgamma (-0x2.0000000000002p0)":
  104060. +double: 1
  104061. +idouble: 1
  104062. +Test "tgamma (-0x2.000004p0)":
  104063. +double: 2
  104064. +float: 1
  104065. +idouble: 2
  104066. +ifloat: 1
  104067. +Test "tgamma (-0x2.fffffcp0)":
  104068. +double: 1
  104069. +float: 1
  104070. +idouble: 1
  104071. +ifloat: 1
  104072. +Test "tgamma (-0x27.fffffffffffep0)":
  104073. +double: 1
  104074. +idouble: 1
  104075. +Test "tgamma (-0x28.000000000002p0)":
  104076. +double: 1
  104077. +idouble: 1
  104078. +Test "tgamma (-0x28.00004p0)":
  104079. +double: 2
  104080. +idouble: 2
  104081. +Test "tgamma (-0x29.00004p0)":
  104082. +double: 1
  104083. +idouble: 1
  104084. +Test "tgamma (-0x29.ffffcp0)":
  104085. +double: 1
  104086. +idouble: 1
  104087. +Test "tgamma (-0x3.000004p0)":
  104088. +double: 2
  104089. +float: 1
  104090. +idouble: 2
  104091. +ifloat: 1
  104092. +Test "tgamma (-0x3.fffffcp0)":
  104093. +double: 1
  104094. +float: 1
  104095. +idouble: 1
  104096. +ifloat: 1
  104097. +Test "tgamma (-0x3.ffffffffffffep0)":
  104098. +double: 2
  104099. +idouble: 2
  104100. +Test "tgamma (-0x31.fffffffffffep0)":
  104101. +double: 3
  104102. +idouble: 3
  104103. +Test "tgamma (-0x4.000008p0)":
  104104. +float: 1
  104105. +ifloat: 1
  104106. +Test "tgamma (-0x4.fffff8p0)":
  104107. +double: 1
  104108. +idouble: 1
  104109. +Test "tgamma (-0x4.ffffffffffffcp0)":
  104110. +double: 1
  104111. +idouble: 1
  104112. +Test "tgamma (-0x5.000008p0)":
  104113. +double: 1
  104114. +float: 1
  104115. +idouble: 1
  104116. +ifloat: 1
  104117. +Test "tgamma (-0x5.ffffffffffffcp0)":
  104118. +double: 1
  104119. +idouble: 1
  104120. +Test "tgamma (-0x6.000008p0)":
  104121. +float: 2
  104122. +ifloat: 2
  104123. +Test "tgamma (-0x6.fffff8p0)":
  104124. +double: 2
  104125. +float: 1
  104126. +idouble: 2
  104127. +ifloat: 1
  104128. +Test "tgamma (-0x6.ffffffffffffcp0)":
  104129. +double: 4
  104130. +idouble: 4
  104131. +Test "tgamma (-0x63.fffffffffffcp0)":
  104132. +double: 2
  104133. +idouble: 2
  104134. +Test "tgamma (-0x64.000000000004p0)":
  104135. +double: 1
  104136. +idouble: 1
  104137. +Test "tgamma (-0x7.0000000000004p0)":
  104138. +double: 3
  104139. +idouble: 3
  104140. +Test "tgamma (-0x7.000008p0)":
  104141. +double: 1
  104142. +float: 1
  104143. +idouble: 1
  104144. +ifloat: 1
  104145. +Test "tgamma (-0x7.fffff8p0)":
  104146. +double: 3
  104147. +float: 1
  104148. +idouble: 3
  104149. +ifloat: 1
  104150. +Test "tgamma (-0x7.ffffffffffffcp0)":
  104151. +double: 3
  104152. +idouble: 3
  104153. +Test "tgamma (-0x8.00001p0)":
  104154. +double: 2
  104155. +idouble: 2
  104156. +Test "tgamma (-0x9.ffffffffffff8p0)":
  104157. +double: 1
  104158. +idouble: 1
  104159. +Test "tgamma (-0x9.fffffp0)":
  104160. +float: 1
  104161. +ifloat: 1
  104162. +Test "tgamma (-0x96.000000000008p0)":
  104163. +double: 1
  104164. +idouble: 1
  104165. +Test "tgamma (-0xa.00001p0)":
  104166. +double: 1
  104167. +idouble: 1
  104168. +Test "tgamma (-2.5)":
  104169. +double: 1
  104170. +float: 2
  104171. +idouble: 1
  104172. +ifloat: 2
  104173. +Test "tgamma (-3.5)":
  104174. +double: 1
  104175. +float: 1
  104176. +idouble: 1
  104177. +ifloat: 1
  104178. +Test "tgamma (-4.5)":
  104179. +double: 1
  104180. +float: 1
  104181. +idouble: 1
  104182. +ifloat: 1
  104183. +Test "tgamma (-5.5)":
  104184. +double: 1
  104185. +idouble: 1
  104186. +Test "tgamma (-6.5)":
  104187. +float: 1
  104188. +ifloat: 1
  104189. +Test "tgamma (-7.5)":
  104190. +double: 2
  104191. +float: 1
  104192. +idouble: 2
  104193. +ifloat: 1
  104194. +Test "tgamma (-8.5)":
  104195. +double: 1
  104196. +float: 1
  104197. +idouble: 1
  104198. +ifloat: 1
  104199. +Test "tgamma (-9.5)":
  104200. +double: 1
  104201. +float: 1
  104202. +idouble: 1
  104203. +ifloat: 1
  104204. +Test "tgamma (0.5)":
  104205. +float: 1
  104206. +ifloat: 1
  104207. +Test "tgamma (0.7)":
  104208. +double: 1
  104209. +float: 1
  104210. +idouble: 1
  104211. +ifloat: 1
  104212. +Test "tgamma (0x1.fffffep0)":
  104213. +float: 1
  104214. +ifloat: 1
  104215. +Test "tgamma (0x1.fffffffffffffp0)":
  104216. +double: 1
  104217. +idouble: 1
  104218. +Test "tgamma (0x1p-24)":
  104219. +float: 1
  104220. +ifloat: 1
  104221. +Test "tgamma (0x1p-53)":
  104222. +double: 1
  104223. +idouble: 1
  104224. +Test "tgamma (0x2.30a43cp+4)":
  104225. +double: 1
  104226. +float: 2
  104227. +idouble: 1
  104228. +ifloat: 2
  104229. +Test "tgamma (0x2.fffffcp0)":
  104230. +float: 3
  104231. +ifloat: 3
  104232. +Test "tgamma (0x3.fffffcp0)":
  104233. +float: 1
  104234. +ifloat: 1
  104235. +Test "tgamma (0x3.ffffffffffffep0)":
  104236. +double: 1
  104237. +idouble: 1
  104238. +Test "tgamma (0x4.0000000000004p0)":
  104239. +double: 1
  104240. +idouble: 1
  104241. +Test "tgamma (0x4.ffffffffffffcp0)":
  104242. +double: 1
  104243. +idouble: 1
  104244. +Test "tgamma (0x5.0000000000004p0)":
  104245. +double: 1
  104246. +idouble: 1
  104247. +Test "tgamma (0x5.000008p0)":
  104248. +float: 2
  104249. +ifloat: 2
  104250. +Test "tgamma (0x5.fffff8p0)":
  104251. +double: 1
  104252. +float: 1
  104253. +idouble: 1
  104254. +ifloat: 1
  104255. +Test "tgamma (0x6.0000000000004p0)":
  104256. +double: 1
  104257. +idouble: 1
  104258. +Test "tgamma (0x6.000008p0)":
  104259. +float: 2
  104260. +ifloat: 2
  104261. +Test "tgamma (0x6.fffff8p0)":
  104262. +double: 1
  104263. +idouble: 1
  104264. +Test "tgamma (0x6.ffffffffffffcp0)":
  104265. +double: 4
  104266. +idouble: 4
  104267. +Test "tgamma (0x7.0000000000004p0)":
  104268. +double: 4
  104269. +idouble: 4
  104270. +Test "tgamma (0x7.000008p0)":
  104271. +double: 1
  104272. +float: 1
  104273. +idouble: 1
  104274. +ifloat: 1
  104275. +Test "tgamma (0x7.fffff8p0)":
  104276. +double: 2
  104277. +float: 1
  104278. +idouble: 2
  104279. +ifloat: 1
  104280. +Test "tgamma (0x7.ffffffffffffcp0)":
  104281. +double: 2
  104282. +idouble: 2
  104283. +Test "tgamma (0x8.00001p0)":
  104284. +double: 2
  104285. +idouble: 2
  104286. +Test "tgamma (0xa.b9fd72b0fb238p+4)":
  104287. +double: 1
  104288. +idouble: 1
  104289. +Test "tgamma (10)":
  104290. +double: 1
  104291. +float: 1
  104292. +idouble: 1
  104293. +ifloat: 1
  104294. +Test "tgamma (18.5)":
  104295. +double: 1
  104296. +float: 1
  104297. +idouble: 1
  104298. +ifloat: 1
  104299. +Test "tgamma (19.5)":
  104300. +double: 2
  104301. +idouble: 2
  104302. +Test "tgamma (2.5)":
  104303. +float: 2
  104304. +ifloat: 2
  104305. +Test "tgamma (23.5)":
  104306. +double: 1
  104307. +float: 1
  104308. +idouble: 1
  104309. +ifloat: 1
  104310. +Test "tgamma (29.5)":
  104311. +double: 1
  104312. +float: 1
  104313. +idouble: 1
  104314. +ifloat: 1
  104315. +Test "tgamma (3)":
  104316. +float: 1
  104317. +ifloat: 1
  104318. +Test "tgamma (3.5)":
  104319. +float: 2
  104320. +ifloat: 2
  104321. +Test "tgamma (30.5)":
  104322. +float: 1
  104323. +ifloat: 1
  104324. +Test "tgamma (33.5)":
  104325. +float: 1
  104326. +ifloat: 1
  104327. +Test "tgamma (34.5)":
  104328. +double: 1
  104329. +float: 2
  104330. +idouble: 1
  104331. +ifloat: 2
  104332. +Test "tgamma (4)":
  104333. +float: 1
  104334. +ifloat: 1
  104335. +Test "tgamma (4.5)":
  104336. +double: 1
  104337. +float: 1
  104338. +idouble: 1
  104339. +ifloat: 1
  104340. +Test "tgamma (6)":
  104341. +float: 1
  104342. +ifloat: 1
  104343. +Test "tgamma (6.5)":
  104344. +float: 1
  104345. +ifloat: 1
  104346. +Test "tgamma (7)":
  104347. +double: 1
  104348. +idouble: 1
  104349. +Test "tgamma (7.5)":
  104350. +double: 2
  104351. +float: 1
  104352. +idouble: 2
  104353. +ifloat: 1
  104354. +Test "tgamma (8)":
  104355. +double: 1
  104356. +idouble: 1
  104357. +Test "tgamma (8.5)":
  104358. +double: 1
  104359. +float: 1
  104360. +idouble: 1
  104361. +ifloat: 1
  104362. +Test "tgamma (9)":
  104363. +double: 1
  104364. +idouble: 1
  104365. +Test "tgamma (9.5)":
  104366. +double: 1
  104367. +idouble: 1
  104368. +
  104369. +# y0
  104370. +Test "y0 (0x1.3ffp+74)":
  104371. +double: 1
  104372. +idouble: 1
  104373. +Test "y0 (0x1.ff00000000002p+840)":
  104374. +double: 1
  104375. +idouble: 1
  104376. +Test "y0 (0x1p-10)":
  104377. +double: 1
  104378. +idouble: 1
  104379. +Test "y0 (0x1p-110)":
  104380. +double: 1
  104381. +idouble: 1
  104382. +Test "y0 (0x1p-20)":
  104383. +float: 1
  104384. +ifloat: 1
  104385. +Test "y0 (0x1p-30)":
  104386. +float: 1
  104387. +ifloat: 1
  104388. +Test "y0 (0x1p-40)":
  104389. +double: 1
  104390. +float: 1
  104391. +idouble: 1
  104392. +ifloat: 1
  104393. +Test "y0 (0x1p-50)":
  104394. +float: 1
  104395. +ifloat: 1
  104396. +Test "y0 (0x1p-70)":
  104397. +double: 1
  104398. +idouble: 1
  104399. +Test "y0 (0x1p-80)":
  104400. +double: 1
  104401. +float: 1
  104402. +idouble: 1
  104403. +ifloat: 1
  104404. +Test "y0 (1.0)":
  104405. +double: 2
  104406. +float: 1
  104407. +idouble: 2
  104408. +ifloat: 1
  104409. +Test "y0 (1.5)":
  104410. +double: 2
  104411. +float: 1
  104412. +idouble: 2
  104413. +ifloat: 1
  104414. +Test "y0 (10.0)":
  104415. +float: 1
  104416. +ifloat: 1
  104417. +Test "y0 (8.0)":
  104418. +double: 1
  104419. +float: 1
  104420. +idouble: 1
  104421. +ifloat: 1
  104422. +
  104423. +# y1
  104424. +Test "y1 (0.125)":
  104425. +double: 1
  104426. +idouble: 1
  104427. +Test "y1 (0x1.27e204p+99)":
  104428. +double: 1
  104429. +idouble: 1
  104430. +Test "y1 (0x1p-10)":
  104431. +double: 1
  104432. +idouble: 1
  104433. +Test "y1 (1.5)":
  104434. +float: 1
  104435. +ifloat: 1
  104436. +Test "y1 (10.0)":
  104437. +double: 3
  104438. +float: 1
  104439. +idouble: 3
  104440. +ifloat: 1
  104441. +Test "y1 (2.0)":
  104442. +double: 1
  104443. +float: 1
  104444. +idouble: 1
  104445. +ifloat: 1
  104446. +Test "y1 (8.0)":
  104447. +double: 1
  104448. +float: 2
  104449. +idouble: 1
  104450. +ifloat: 2
  104451. +
  104452. +# yn
  104453. +Test "yn (0, 1.0)":
  104454. +double: 2
  104455. +float: 1
  104456. +idouble: 2
  104457. +ifloat: 1
  104458. +Test "yn (0, 1.5)":
  104459. +double: 2
  104460. +float: 1
  104461. +idouble: 2
  104462. +ifloat: 1
  104463. +Test "yn (0, 10.0)":
  104464. +float: 1
  104465. +ifloat: 1
  104466. +Test "yn (0, 8.0)":
  104467. +double: 1
  104468. +float: 1
  104469. +idouble: 1
  104470. +ifloat: 1
  104471. +Test "yn (1, 0.125)":
  104472. +double: 1
  104473. +idouble: 1
  104474. +Test "yn (1, 1.5)":
  104475. +float: 1
  104476. +ifloat: 1
  104477. +Test "yn (1, 10.0)":
  104478. +double: 3
  104479. +float: 1
  104480. +idouble: 3
  104481. +ifloat: 1
  104482. +Test "yn (1, 2.0)":
  104483. +double: 1
  104484. +float: 1
  104485. +idouble: 1
  104486. +ifloat: 1
  104487. +Test "yn (1, 8.0)":
  104488. +double: 1
  104489. +float: 2
  104490. +idouble: 1
  104491. +ifloat: 2
  104492. +Test "yn (10, 0.125)":
  104493. +double: 1
  104494. +idouble: 1
  104495. +Test "yn (10, 0.75)":
  104496. +double: 1
  104497. +float: 1
  104498. +idouble: 1
  104499. +ifloat: 1
  104500. +Test "yn (10, 1.0)":
  104501. +double: 1
  104502. +idouble: 1
  104503. +Test "yn (10, 10.0)":
  104504. +double: 1
  104505. +float: 1
  104506. +idouble: 1
  104507. +ifloat: 1
  104508. +Test "yn (10, 2.0)":
  104509. +double: 2
  104510. +idouble: 2
  104511. +Test "yn (3, 0.125)":
  104512. +double: 1
  104513. +idouble: 1
  104514. +Test "yn (3, 0.75)":
  104515. +double: 1
  104516. +float: 1
  104517. +idouble: 1
  104518. +ifloat: 1
  104519. +Test "yn (3, 10.0)":
  104520. +double: 1
  104521. +float: 1
  104522. +idouble: 1
  104523. +ifloat: 1
  104524. +Test "yn (3, 2.0)":
  104525. +double: 1
  104526. +idouble: 1
  104527. +
  104528. +# Maximal error of functions:
  104529. +Function: "acos_downward":
  104530. +double: 1
  104531. +float: 1
  104532. +idouble: 1
  104533. +ifloat: 1
  104534. +
  104535. +Function: "acos_towardzero":
  104536. +double: 1
  104537. +float: 1
  104538. +idouble: 1
  104539. +ifloat: 1
  104540. +
  104541. +Function: "asin_downward":
  104542. +double: 1
  104543. +float: 1
  104544. +idouble: 1
  104545. +ifloat: 1
  104546. +
  104547. +Function: "asin_towardzero":
  104548. +double: 1
  104549. +float: 1
  104550. +idouble: 1
  104551. +ifloat: 1
  104552. +
  104553. +Function: "asin_upward":
  104554. +float: 1
  104555. +ifloat: 1
  104556. +
  104557. +Function: "atan2":
  104558. +float: 1
  104559. +ifloat: 1
  104560. +
  104561. +Function: "atanh":
  104562. +float: 1
  104563. +ifloat: 1
  104564. +
  104565. +Function: Real part of "cacos":
  104566. +double: 1
  104567. +float: 2
  104568. +idouble: 1
  104569. +ifloat: 2
  104570. +
  104571. +Function: Imaginary part of "cacos":
  104572. +double: 1
  104573. +float: 2
  104574. +idouble: 1
  104575. +ifloat: 2
  104576. +
  104577. +Function: Real part of "cacosh":
  104578. +double: 1
  104579. +float: 2
  104580. +idouble: 1
  104581. +ifloat: 2
  104582. +
  104583. +Function: Imaginary part of "cacosh":
  104584. +double: 1
  104585. +float: 2
  104586. +idouble: 1
  104587. +ifloat: 2
  104588. +
  104589. +Function: Real part of "casin":
  104590. +double: 1
  104591. +float: 1
  104592. +idouble: 1
  104593. +ifloat: 1
  104594. +
  104595. +Function: Imaginary part of "casin":
  104596. +double: 1
  104597. +float: 2
  104598. +idouble: 1
  104599. +ifloat: 2
  104600. +
  104601. +Function: Real part of "casinh":
  104602. +double: 1
  104603. +float: 2
  104604. +idouble: 1
  104605. +ifloat: 2
  104606. +
  104607. +Function: Imaginary part of "casinh":
  104608. +double: 1
  104609. +float: 1
  104610. +idouble: 1
  104611. +ifloat: 1
  104612. +
  104613. +Function: Real part of "catan":
  104614. +float: 1
  104615. +ifloat: 1
  104616. +
  104617. +Function: Imaginary part of "catan":
  104618. +double: 1
  104619. +float: 1
  104620. +idouble: 1
  104621. +ifloat: 1
  104622. +
  104623. +Function: Real part of "catanh":
  104624. +double: 1
  104625. +float: 1
  104626. +idouble: 1
  104627. +ifloat: 1
  104628. +
  104629. +Function: Imaginary part of "catanh":
  104630. +float: 1
  104631. +ifloat: 1
  104632. +
  104633. +Function: "cbrt":
  104634. +double: 1
  104635. +idouble: 1
  104636. +
  104637. +Function: Real part of "ccos":
  104638. +double: 1
  104639. +float: 1
  104640. +idouble: 1
  104641. +ifloat: 1
  104642. +
  104643. +Function: Imaginary part of "ccos":
  104644. +double: 1
  104645. +float: 1
  104646. +idouble: 1
  104647. +ifloat: 1
  104648. +
  104649. +Function: Real part of "ccosh":
  104650. +double: 1
  104651. +float: 1
  104652. +idouble: 1
  104653. +ifloat: 1
  104654. +
  104655. +Function: Imaginary part of "ccosh":
  104656. +double: 1
  104657. +float: 1
  104658. +idouble: 1
  104659. +ifloat: 1
  104660. +
  104661. +Function: Real part of "cexp":
  104662. +double: 2
  104663. +float: 1
  104664. +idouble: 2
  104665. +ifloat: 1
  104666. +
  104667. +Function: Imaginary part of "cexp":
  104668. +double: 1
  104669. +float: 2
  104670. +idouble: 1
  104671. +ifloat: 2
  104672. +
  104673. +Function: Real part of "clog":
  104674. +double: 1
  104675. +float: 1
  104676. +idouble: 1
  104677. +ifloat: 1
  104678. +
  104679. +Function: Imaginary part of "clog":
  104680. +float: 1
  104681. +ifloat: 1
  104682. +
  104683. +Function: Real part of "clog10":
  104684. +double: 2
  104685. +float: 2
  104686. +idouble: 2
  104687. +ifloat: 2
  104688. +
  104689. +Function: Imaginary part of "clog10":
  104690. +double: 1
  104691. +float: 1
  104692. +idouble: 1
  104693. +ifloat: 1
  104694. +
  104695. +Function: "cos":
  104696. +double: 2
  104697. +float: 1
  104698. +idouble: 2
  104699. +ifloat: 1
  104700. +
  104701. +Function: "cos_downward":
  104702. +float: 1
  104703. +ifloat: 1
  104704. +
  104705. +Function: "cos_tonearest":
  104706. +float: 1
  104707. +ifloat: 1
  104708. +
  104709. +Function: "cos_towardzero":
  104710. +float: 1
  104711. +ifloat: 1
  104712. +
  104713. +Function: "cos_upward":
  104714. +float: 2
  104715. +ifloat: 2
  104716. +
  104717. +Function: "cosh_downward":
  104718. +float: 1
  104719. +ifloat: 1
  104720. +
  104721. +Function: "cosh_towardzero":
  104722. +float: 1
  104723. +ifloat: 1
  104724. +
  104725. +Function: Real part of "cpow":
  104726. +double: 2
  104727. +float: 4
  104728. +idouble: 2
  104729. +ifloat: 4
  104730. +
  104731. +Function: Imaginary part of "cpow":
  104732. +float: 2
  104733. +ifloat: 2
  104734. +
  104735. +Function: Real part of "csin":
  104736. +double: 1
  104737. +float: 1
  104738. +idouble: 1
  104739. +ifloat: 1
  104740. +
  104741. +Function: Real part of "csinh":
  104742. +float: 1
  104743. +ifloat: 1
  104744. +
  104745. +Function: Imaginary part of "csinh":
  104746. +double: 1
  104747. +float: 1
  104748. +idouble: 1
  104749. +ifloat: 1
  104750. +
  104751. +Function: Real part of "csqrt":
  104752. +double: 1
  104753. +float: 1
  104754. +idouble: 1
  104755. +ifloat: 1
  104756. +
  104757. +Function: Imaginary part of "csqrt":
  104758. +double: 1
  104759. +float: 1
  104760. +idouble: 1
  104761. +ifloat: 1
  104762. +
  104763. +Function: Real part of "ctan":
  104764. +double: 1
  104765. +float: 1
  104766. +idouble: 1
  104767. +ifloat: 1
  104768. +
  104769. +Function: Imaginary part of "ctan":
  104770. +double: 1
  104771. +idouble: 1
  104772. +
  104773. +Function: Real part of "ctan_downward":
  104774. +double: 2
  104775. +float: 1
  104776. +idouble: 2
  104777. +ifloat: 1
  104778. +
  104779. +Function: Imaginary part of "ctan_downward":
  104780. +float: 1
  104781. +ifloat: 1
  104782. +
  104783. +Function: Real part of "ctan_tonearest":
  104784. +float: 1
  104785. +ifloat: 1
  104786. +
  104787. +Function: Imaginary part of "ctan_tonearest":
  104788. +float: 1
  104789. +ifloat: 1
  104790. +
  104791. +Function: Real part of "ctan_towardzero":
  104792. +float: 1
  104793. +ifloat: 1
  104794. +
  104795. +Function: Imaginary part of "ctan_towardzero":
  104796. +float: 1
  104797. +ifloat: 1
  104798. +
  104799. +Function: Real part of "ctan_upward":
  104800. +double: 2
  104801. +float: 1
  104802. +idouble: 2
  104803. +ifloat: 1
  104804. +
  104805. +Function: Imaginary part of "ctan_upward":
  104806. +double: 1
  104807. +float: 2
  104808. +idouble: 1
  104809. +ifloat: 2
  104810. +
  104811. +Function: Real part of "ctanh":
  104812. +double: 1
  104813. +float: 1
  104814. +idouble: 1
  104815. +ifloat: 1
  104816. +
  104817. +Function: Imaginary part of "ctanh":
  104818. +double: 1
  104819. +float: 2
  104820. +idouble: 1
  104821. +ifloat: 2
  104822. +
  104823. +Function: Real part of "ctanh_downward":
  104824. +float: 1
  104825. +ifloat: 1
  104826. +
  104827. +Function: Imaginary part of "ctanh_downward":
  104828. +double: 2
  104829. +float: 1
  104830. +idouble: 2
  104831. +ifloat: 1
  104832. +
  104833. +Function: Real part of "ctanh_tonearest":
  104834. +float: 1
  104835. +ifloat: 1
  104836. +
  104837. +Function: Imaginary part of "ctanh_tonearest":
  104838. +float: 1
  104839. +ifloat: 1
  104840. +
  104841. +Function: Real part of "ctanh_towardzero":
  104842. +float: 1
  104843. +ifloat: 1
  104844. +
  104845. +Function: Imaginary part of "ctanh_towardzero":
  104846. +float: 1
  104847. +ifloat: 1
  104848. +
  104849. +Function: Real part of "ctanh_upward":
  104850. +double: 1
  104851. +float: 2
  104852. +idouble: 1
  104853. +ifloat: 2
  104854. +
  104855. +Function: Imaginary part of "ctanh_upward":
  104856. +double: 2
  104857. +float: 1
  104858. +idouble: 2
  104859. +ifloat: 1
  104860. +
  104861. +Function: "erf":
  104862. +double: 1
  104863. +idouble: 1
  104864. +
  104865. +Function: "erfc":
  104866. +double: 1
  104867. +float: 1
  104868. +idouble: 1
  104869. +ifloat: 1
  104870. +
  104871. +Function: "exp":
  104872. +double: 1
  104873. +idouble: 1
  104874. +
  104875. +Function: "exp10":
  104876. +double: 1
  104877. +idouble: 1
  104878. +
  104879. +Function: "exp_downward":
  104880. +float: 1
  104881. +ifloat: 1
  104882. +
  104883. +Function: "exp_towardzero":
  104884. +float: 1
  104885. +ifloat: 1
  104886. +
  104887. +Function: "exp_upward":
  104888. +float: 1
  104889. +ifloat: 1
  104890. +
  104891. +Function: "expm1":
  104892. +double: 1
  104893. +float: 1
  104894. +idouble: 1
  104895. +ifloat: 1
  104896. +
  104897. +Function: "gamma":
  104898. +double: 1
  104899. +float: 2
  104900. +idouble: 1
  104901. +ifloat: 2
  104902. +
  104903. +Function: "hypot":
  104904. +float: 1
  104905. +ifloat: 1
  104906. +
  104907. +Function: "j0":
  104908. +double: 2
  104909. +float: 2
  104910. +idouble: 2
  104911. +ifloat: 2
  104912. +
  104913. +Function: "j1":
  104914. +double: 1
  104915. +float: 2
  104916. +idouble: 1
  104917. +ifloat: 2
  104918. +
  104919. +Function: "jn":
  104920. +double: 4
  104921. +float: 5
  104922. +idouble: 4
  104923. +ifloat: 5
  104924. +
  104925. +Function: "lgamma":
  104926. +double: 1
  104927. +float: 2
  104928. +idouble: 1
  104929. +ifloat: 2
  104930. +
  104931. +Function: "log":
  104932. +float: 1
  104933. +ifloat: 1
  104934. +
  104935. +Function: "log10":
  104936. +double: 1
  104937. +float: 2
  104938. +idouble: 1
  104939. +ifloat: 2
  104940. +
  104941. +Function: "log1p":
  104942. +float: 1
  104943. +ifloat: 1
  104944. +
  104945. +Function: "pow":
  104946. +float: 1
  104947. +ifloat: 1
  104948. +
  104949. +Function: "pow10":
  104950. +double: 1
  104951. +idouble: 1
  104952. +
  104953. +Function: "pow_downward":
  104954. +float: 1
  104955. +ifloat: 1
  104956. +
  104957. +Function: "pow_towardzero":
  104958. +float: 1
  104959. +ifloat: 1
  104960. +
  104961. +Function: "pow_upward":
  104962. +float: 1
  104963. +ifloat: 1
  104964. +
  104965. +Function: "sin_downward":
  104966. +float: 1
  104967. +ifloat: 1
  104968. +
  104969. +Function: "sin_tonearest":
  104970. +float: 1
  104971. +ifloat: 1
  104972. +
  104973. +Function: "sin_towardzero":
  104974. +float: 1
  104975. +ifloat: 1
  104976. +
  104977. +Function: "sin_upward":
  104978. +float: 2
  104979. +ifloat: 2
  104980. +
  104981. +Function: "sincos":
  104982. +double: 1
  104983. +float: 1
  104984. +idouble: 1
  104985. +ifloat: 1
  104986. +
  104987. +Function: "sinh_downward":
  104988. +float: 1
  104989. +ifloat: 1
  104990. +
  104991. +Function: "sinh_towardzero":
  104992. +float: 1
  104993. +ifloat: 1
  104994. +
  104995. +Function: "tan":
  104996. +double: 1
  104997. +idouble: 1
  104998. +
  104999. +Function: "tan_downward":
  105000. +float: 1
  105001. +ifloat: 1
  105002. +
  105003. +Function: "tan_towardzero":
  105004. +float: 1
  105005. +ifloat: 1
  105006. +
  105007. +Function: "tan_upward":
  105008. +float: 1
  105009. +ifloat: 1
  105010. +
  105011. +Function: "tgamma":
  105012. +double: 4
  105013. +float: 3
  105014. +idouble: 4
  105015. +ifloat: 3
  105016. +
  105017. +Function: "y0":
  105018. +double: 2
  105019. +float: 1
  105020. +idouble: 2
  105021. +ifloat: 1
  105022. +
  105023. +Function: "y1":
  105024. +double: 3
  105025. +float: 2
  105026. +idouble: 3
  105027. +ifloat: 2
  105028. +
  105029. +Function: "yn":
  105030. +double: 3
  105031. +float: 2
  105032. +idouble: 3
  105033. +ifloat: 2
  105034. +
  105035. +# end of automatic generation
  105036. diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-mips32 uClibc-git/test/math/libm-test-ulps-mips32
  105037. --- uClibc-0.9.33.2/test/math/libm-test-ulps-mips32 1970-01-01 01:00:00.000000000 +0100
  105038. +++ uClibc-git/test/math/libm-test-ulps-mips32 2014-06-02 17:40:35.266718914 +0200
  105039. @@ -0,0 +1,4966 @@
  105040. +# Begin of automatic generation
  105041. +
  105042. +# acos_downward
  105043. +Test "acos_downward (-0)":
  105044. +float: 1
  105045. +ifloat: 1
  105046. +Test "acos_downward (-0.5)":
  105047. +double: 1
  105048. +idouble: 1
  105049. +Test "acos_downward (-1)":
  105050. +float: 1
  105051. +ifloat: 1
  105052. +Test "acos_downward (0)":
  105053. +float: 1
  105054. +ifloat: 1
  105055. +Test "acos_downward (0.5)":
  105056. +double: 1
  105057. +float: 1
  105058. +idouble: 1
  105059. +ifloat: 1
  105060. +
  105061. +# acos_towardzero
  105062. +Test "acos_towardzero (-0)":
  105063. +float: 1
  105064. +ifloat: 1
  105065. +Test "acos_towardzero (-0.5)":
  105066. +double: 1
  105067. +idouble: 1
  105068. +Test "acos_towardzero (-1)":
  105069. +float: 1
  105070. +ifloat: 1
  105071. +Test "acos_towardzero (0)":
  105072. +float: 1
  105073. +ifloat: 1
  105074. +Test "acos_towardzero (0.5)":
  105075. +double: 1
  105076. +float: 1
  105077. +idouble: 1
  105078. +ifloat: 1
  105079. +
  105080. +# asin_downward
  105081. +Test "asin_downward (-0.5)":
  105082. +double: 1
  105083. +idouble: 1
  105084. +Test "asin_downward (0.5)":
  105085. +double: 1
  105086. +idouble: 1
  105087. +Test "asin_downward (1.0)":
  105088. +float: 1
  105089. +ifloat: 1
  105090. +
  105091. +# asin_towardzero
  105092. +Test "asin_towardzero (-0.5)":
  105093. +double: 1
  105094. +idouble: 1
  105095. +Test "asin_towardzero (-1.0)":
  105096. +float: 1
  105097. +ifloat: 1
  105098. +Test "asin_towardzero (0.5)":
  105099. +double: 1
  105100. +idouble: 1
  105101. +Test "asin_towardzero (1.0)":
  105102. +float: 1
  105103. +ifloat: 1
  105104. +
  105105. +# asin_upward
  105106. +Test "asin_upward (-1.0)":
  105107. +float: 1
  105108. +ifloat: 1
  105109. +
  105110. +# atan2
  105111. +Test "atan2 (-0.75, -1.0)":
  105112. +float: 1
  105113. +ifloat: 1
  105114. +Test "atan2 (-max_value, -min_value)":
  105115. +float: 1
  105116. +ifloat: 1
  105117. +Test "atan2 (0.75, -1.0)":
  105118. +float: 1
  105119. +ifloat: 1
  105120. +Test "atan2 (1.390625, 0.9296875)":
  105121. +float: 1
  105122. +ifloat: 1
  105123. +
  105124. +# atanh
  105125. +Test "atanh (0.75)":
  105126. +float: 1
  105127. +ifloat: 1
  105128. +
  105129. +# cacos
  105130. +Test "Imaginary part of: cacos (+0 + 0.5 i)":
  105131. +float: 1
  105132. +ifloat: 1
  105133. +Test "Imaginary part of: cacos (+0 + 1.0 i)":
  105134. +double: 1
  105135. +float: 1
  105136. +idouble: 1
  105137. +ifloat: 1
  105138. +Test "Imaginary part of: cacos (+0 + 1.5 i)":
  105139. +double: 1
  105140. +idouble: 1
  105141. +Test "Imaginary part of: cacos (+0 - 0.5 i)":
  105142. +float: 1
  105143. +ifloat: 1
  105144. +Test "Imaginary part of: cacos (+0 - 1.0 i)":
  105145. +double: 1
  105146. +float: 1
  105147. +idouble: 1
  105148. +ifloat: 1
  105149. +Test "Imaginary part of: cacos (+0 - 1.5 i)":
  105150. +double: 1
  105151. +idouble: 1
  105152. +Test "Imaginary part of: cacos (-0 + 0.5 i)":
  105153. +float: 1
  105154. +ifloat: 1
  105155. +Test "Imaginary part of: cacos (-0 + 1.0 i)":
  105156. +double: 1
  105157. +float: 1
  105158. +idouble: 1
  105159. +ifloat: 1
  105160. +Test "Imaginary part of: cacos (-0 + 1.5 i)":
  105161. +double: 1
  105162. +idouble: 1
  105163. +Test "Imaginary part of: cacos (-0 - 0.5 i)":
  105164. +float: 1
  105165. +ifloat: 1
  105166. +Test "Imaginary part of: cacos (-0 - 1.0 i)":
  105167. +double: 1
  105168. +float: 1
  105169. +idouble: 1
  105170. +ifloat: 1
  105171. +Test "Imaginary part of: cacos (-0 - 1.5 i)":
  105172. +double: 1
  105173. +idouble: 1
  105174. +Test "Real part of: cacos (-0.25 + 1.0 i)":
  105175. +double: 1
  105176. +float: 1
  105177. +idouble: 1
  105178. +ifloat: 1
  105179. +Test "Imaginary part of: cacos (-0.25 + 1.0 i)":
  105180. +float: 1
  105181. +ifloat: 1
  105182. +Test "Real part of: cacos (-0.25 - 1.0 i)":
  105183. +double: 1
  105184. +float: 1
  105185. +idouble: 1
  105186. +ifloat: 1
  105187. +Test "Imaginary part of: cacos (-0.25 - 1.0 i)":
  105188. +float: 1
  105189. +ifloat: 1
  105190. +Test "Imaginary part of: cacos (-0.5 + 0x1.fp-129 i)":
  105191. +double: 1
  105192. +idouble: 1
  105193. +Test "Imaginary part of: cacos (-0.5 + 0x1p-105 i)":
  105194. +double: 1
  105195. +idouble: 1
  105196. +Test "Imaginary part of: cacos (-0.5 + 0x1p-112 i)":
  105197. +double: 1
  105198. +idouble: 1
  105199. +Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i)":
  105200. +double: 1
  105201. +idouble: 1
  105202. +Test "Real part of: cacos (-0.5 + 1.0 i)":
  105203. +float: 1
  105204. +ifloat: 1
  105205. +Test "Imaginary part of: cacos (-0.5 + 1.0 i)":
  105206. +double: 1
  105207. +idouble: 1
  105208. +Test "Imaginary part of: cacos (-0.5 - 0x1.fp-129 i)":
  105209. +double: 1
  105210. +idouble: 1
  105211. +Test "Imaginary part of: cacos (-0.5 - 0x1p-105 i)":
  105212. +double: 1
  105213. +idouble: 1
  105214. +Test "Imaginary part of: cacos (-0.5 - 0x1p-112 i)":
  105215. +double: 1
  105216. +idouble: 1
  105217. +Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i)":
  105218. +double: 1
  105219. +idouble: 1
  105220. +Test "Real part of: cacos (-0.5 - 1.0 i)":
  105221. +float: 1
  105222. +ifloat: 1
  105223. +Test "Imaginary part of: cacos (-0.5 - 1.0 i)":
  105224. +double: 1
  105225. +idouble: 1
  105226. +Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  105227. +double: 1
  105228. +idouble: 1
  105229. +Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  105230. +double: 1
  105231. +idouble: 1
  105232. +Test "Imaginary part of: cacos (-0x0.ffffffp0 + 0x1p-23 i)":
  105233. +float: 2
  105234. +ifloat: 2
  105235. +Test "Imaginary part of: cacos (-0x0.ffffffp0 - 0x1p-23 i)":
  105236. +float: 2
  105237. +ifloat: 2
  105238. +Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i)":
  105239. +float: 1
  105240. +ifloat: 1
  105241. +Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1p-23 i)":
  105242. +float: 1
  105243. +ifloat: 1
  105244. +Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i)":
  105245. +double: 1
  105246. +idouble: 1
  105247. +Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i)":
  105248. +double: 1
  105249. +idouble: 1
  105250. +Test "Real part of: cacos (-0x1.fp-100 + 1.0 i)":
  105251. +float: 1
  105252. +ifloat: 1
  105253. +Test "Imaginary part of: cacos (-0x1.fp-100 + 1.0 i)":
  105254. +double: 1
  105255. +float: 1
  105256. +idouble: 1
  105257. +ifloat: 1
  105258. +Test "Real part of: cacos (-0x1.fp-100 - 1.0 i)":
  105259. +float: 1
  105260. +ifloat: 1
  105261. +Test "Imaginary part of: cacos (-0x1.fp-100 - 1.0 i)":
  105262. +double: 1
  105263. +float: 1
  105264. +idouble: 1
  105265. +ifloat: 1
  105266. +Test "Imaginary part of: cacos (-0x1.fp-1000 + 1.0 i)":
  105267. +double: 1
  105268. +idouble: 1
  105269. +Test "Imaginary part of: cacos (-0x1.fp-1000 - 1.0 i)":
  105270. +double: 1
  105271. +idouble: 1
  105272. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.0 i)":
  105273. +double: 1
  105274. +idouble: 1
  105275. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i)":
  105276. +double: 1
  105277. +idouble: 1
  105278. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.0 i)":
  105279. +double: 1
  105280. +idouble: 1
  105281. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i)":
  105282. +double: 1
  105283. +idouble: 1
  105284. +Test "Real part of: cacos (-0x1.fp-129 + 0.5 i)":
  105285. +float: 1
  105286. +ifloat: 1
  105287. +Test "Imaginary part of: cacos (-0x1.fp-129 + 0.5 i)":
  105288. +float: 1
  105289. +ifloat: 1
  105290. +Test "Real part of: cacos (-0x1.fp-129 + 0x0.ffffffp0 i)":
  105291. +float: 1
  105292. +ifloat: 1
  105293. +Test "Real part of: cacos (-0x1.fp-129 + 0x1.000002p0 i)":
  105294. +float: 1
  105295. +ifloat: 1
  105296. +Test "Real part of: cacos (-0x1.fp-129 + 0x1.fp-129 i)":
  105297. +float: 1
  105298. +ifloat: 1
  105299. +Test "Real part of: cacos (-0x1.fp-129 + 0x1p-23 i)":
  105300. +float: 1
  105301. +ifloat: 1
  105302. +Test "Real part of: cacos (-0x1.fp-129 + 1.0 i)":
  105303. +float: 1
  105304. +ifloat: 1
  105305. +Test "Imaginary part of: cacos (-0x1.fp-129 + 1.0 i)":
  105306. +double: 1
  105307. +float: 1
  105308. +idouble: 1
  105309. +ifloat: 1
  105310. +Test "Real part of: cacos (-0x1.fp-129 + 1.5 i)":
  105311. +float: 1
  105312. +ifloat: 1
  105313. +Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i)":
  105314. +double: 1
  105315. +idouble: 1
  105316. +Test "Real part of: cacos (-0x1.fp-129 - 0.5 i)":
  105317. +float: 1
  105318. +ifloat: 1
  105319. +Test "Imaginary part of: cacos (-0x1.fp-129 - 0.5 i)":
  105320. +float: 1
  105321. +ifloat: 1
  105322. +Test "Real part of: cacos (-0x1.fp-129 - 0x0.ffffffp0 i)":
  105323. +float: 1
  105324. +ifloat: 1
  105325. +Test "Real part of: cacos (-0x1.fp-129 - 0x1.000002p0 i)":
  105326. +float: 1
  105327. +ifloat: 1
  105328. +Test "Real part of: cacos (-0x1.fp-129 - 0x1.fp-129 i)":
  105329. +float: 1
  105330. +ifloat: 1
  105331. +Test "Real part of: cacos (-0x1.fp-129 - 0x1p-23 i)":
  105332. +float: 1
  105333. +ifloat: 1
  105334. +Test "Real part of: cacos (-0x1.fp-129 - 1.0 i)":
  105335. +float: 1
  105336. +ifloat: 1
  105337. +Test "Imaginary part of: cacos (-0x1.fp-129 - 1.0 i)":
  105338. +double: 1
  105339. +float: 1
  105340. +idouble: 1
  105341. +ifloat: 1
  105342. +Test "Real part of: cacos (-0x1.fp-129 - 1.5 i)":
  105343. +float: 1
  105344. +ifloat: 1
  105345. +Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i)":
  105346. +double: 1
  105347. +idouble: 1
  105348. +Test "Real part of: cacos (-0x1.fp-30 + 1.0 i)":
  105349. +float: 1
  105350. +ifloat: 1
  105351. +Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i)":
  105352. +double: 1
  105353. +float: 1
  105354. +idouble: 1
  105355. +ifloat: 1
  105356. +Test "Real part of: cacos (-0x1.fp-30 - 1.0 i)":
  105357. +float: 1
  105358. +ifloat: 1
  105359. +Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i)":
  105360. +double: 1
  105361. +float: 1
  105362. +idouble: 1
  105363. +ifloat: 1
  105364. +Test "Real part of: cacos (-0x1p-105 + 0.0 i)":
  105365. +float: 1
  105366. +ifloat: 1
  105367. +Test "Real part of: cacos (-0x1p-105 + 0.5 i)":
  105368. +float: 1
  105369. +ifloat: 1
  105370. +Test "Imaginary part of: cacos (-0x1p-105 + 0.5 i)":
  105371. +float: 1
  105372. +ifloat: 1
  105373. +Test "Real part of: cacos (-0x1p-105 + 0x1p-105 i)":
  105374. +float: 1
  105375. +ifloat: 1
  105376. +Test "Real part of: cacos (-0x1p-105 - 0.0 i)":
  105377. +float: 1
  105378. +ifloat: 1
  105379. +Test "Real part of: cacos (-0x1p-105 - 0.5 i)":
  105380. +float: 1
  105381. +ifloat: 1
  105382. +Test "Imaginary part of: cacos (-0x1p-105 - 0.5 i)":
  105383. +float: 1
  105384. +ifloat: 1
  105385. +Test "Real part of: cacos (-0x1p-105 - 0x1p-105 i)":
  105386. +float: 1
  105387. +ifloat: 1
  105388. +Test "Real part of: cacos (-0x1p-112 + 0.0 i)":
  105389. +float: 1
  105390. +ifloat: 1
  105391. +Test "Real part of: cacos (-0x1p-112 + 0.5 i)":
  105392. +float: 1
  105393. +ifloat: 1
  105394. +Test "Imaginary part of: cacos (-0x1p-112 + 0.5 i)":
  105395. +float: 1
  105396. +ifloat: 1
  105397. +Test "Real part of: cacos (-0x1p-112 + 0x1p-112 i)":
  105398. +float: 1
  105399. +ifloat: 1
  105400. +Test "Real part of: cacos (-0x1p-112 - 0.0 i)":
  105401. +float: 1
  105402. +ifloat: 1
  105403. +Test "Real part of: cacos (-0x1p-112 - 0.5 i)":
  105404. +float: 1
  105405. +ifloat: 1
  105406. +Test "Imaginary part of: cacos (-0x1p-112 - 0.5 i)":
  105407. +float: 1
  105408. +ifloat: 1
  105409. +Test "Real part of: cacos (-0x1p-112 - 0x1p-112 i)":
  105410. +float: 1
  105411. +ifloat: 1
  105412. +Test "Real part of: cacos (-0x1p-23 + 0.0 i)":
  105413. +float: 1
  105414. +ifloat: 1
  105415. +Test "Real part of: cacos (-0x1p-23 + 0.5 i)":
  105416. +float: 1
  105417. +ifloat: 1
  105418. +Test "Imaginary part of: cacos (-0x1p-23 + 0.5 i)":
  105419. +float: 1
  105420. +ifloat: 1
  105421. +Test "Imaginary part of: cacos (-0x1p-23 + 0x0.ffffffp0 i)":
  105422. +double: 1
  105423. +idouble: 1
  105424. +Test "Real part of: cacos (-0x1p-23 + 0x1.fp-129 i)":
  105425. +float: 1
  105426. +ifloat: 1
  105427. +Test "Real part of: cacos (-0x1p-23 + 0x1p-23 i)":
  105428. +float: 1
  105429. +ifloat: 1
  105430. +Test "Real part of: cacos (-0x1p-23 - 0.0 i)":
  105431. +float: 1
  105432. +ifloat: 1
  105433. +Test "Real part of: cacos (-0x1p-23 - 0.5 i)":
  105434. +float: 1
  105435. +ifloat: 1
  105436. +Test "Imaginary part of: cacos (-0x1p-23 - 0.5 i)":
  105437. +float: 1
  105438. +ifloat: 1
  105439. +Test "Imaginary part of: cacos (-0x1p-23 - 0x0.ffffffp0 i)":
  105440. +double: 1
  105441. +idouble: 1
  105442. +Test "Real part of: cacos (-0x1p-23 - 0x1.fp-129 i)":
  105443. +float: 1
  105444. +ifloat: 1
  105445. +Test "Real part of: cacos (-0x1p-23 - 0x1p-23 i)":
  105446. +float: 1
  105447. +ifloat: 1
  105448. +Test "Real part of: cacos (-0x1p-52 + 0.0 i)":
  105449. +float: 1
  105450. +ifloat: 1
  105451. +Test "Real part of: cacos (-0x1p-52 + 0.5 i)":
  105452. +float: 1
  105453. +ifloat: 1
  105454. +Test "Imaginary part of: cacos (-0x1p-52 + 0.5 i)":
  105455. +float: 1
  105456. +ifloat: 1
  105457. +Test "Real part of: cacos (-0x1p-52 + 0x1p-52 i)":
  105458. +float: 1
  105459. +ifloat: 1
  105460. +Test "Real part of: cacos (-0x1p-52 - 0.0 i)":
  105461. +float: 1
  105462. +ifloat: 1
  105463. +Test "Real part of: cacos (-0x1p-52 - 0.5 i)":
  105464. +float: 1
  105465. +ifloat: 1
  105466. +Test "Imaginary part of: cacos (-0x1p-52 - 0.5 i)":
  105467. +float: 1
  105468. +ifloat: 1
  105469. +Test "Real part of: cacos (-0x1p-52 - 0x1p-52 i)":
  105470. +float: 1
  105471. +ifloat: 1
  105472. +Test "Real part of: cacos (-0x1p-63 + 0.0 i)":
  105473. +float: 1
  105474. +ifloat: 1
  105475. +Test "Real part of: cacos (-0x1p-63 + 0.5 i)":
  105476. +float: 1
  105477. +ifloat: 1
  105478. +Test "Imaginary part of: cacos (-0x1p-63 + 0.5 i)":
  105479. +float: 1
  105480. +ifloat: 1
  105481. +Test "Real part of: cacos (-0x1p-63 + 0x1p-63 i)":
  105482. +float: 1
  105483. +ifloat: 1
  105484. +Test "Real part of: cacos (-0x1p-63 - 0.0 i)":
  105485. +float: 1
  105486. +ifloat: 1
  105487. +Test "Real part of: cacos (-0x1p-63 - 0.5 i)":
  105488. +float: 1
  105489. +ifloat: 1
  105490. +Test "Imaginary part of: cacos (-0x1p-63 - 0.5 i)":
  105491. +float: 1
  105492. +ifloat: 1
  105493. +Test "Real part of: cacos (-0x1p-63 - 0x1p-63 i)":
  105494. +float: 1
  105495. +ifloat: 1
  105496. +Test "Imaginary part of: cacos (-1.0 + 0.5 i)":
  105497. +float: 1
  105498. +ifloat: 1
  105499. +Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i)":
  105500. +float: 1
  105501. +ifloat: 1
  105502. +Test "Real part of: cacos (-1.0 + 0x1p50 i)":
  105503. +float: 1
  105504. +ifloat: 1
  105505. +Test "Imaginary part of: cacos (-1.0 - 0.5 i)":
  105506. +float: 1
  105507. +ifloat: 1
  105508. +Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i)":
  105509. +float: 1
  105510. +ifloat: 1
  105511. +Test "Real part of: cacos (-1.0 - 0x1p50 i)":
  105512. +float: 1
  105513. +ifloat: 1
  105514. +Test "Real part of: cacos (-2 - 3 i)":
  105515. +float: 1
  105516. +ifloat: 1
  105517. +Test "Imaginary part of: cacos (0.25 + 1.0 i)":
  105518. +float: 1
  105519. +ifloat: 1
  105520. +Test "Imaginary part of: cacos (0.25 - 1.0 i)":
  105521. +float: 1
  105522. +ifloat: 1
  105523. +Test "Real part of: cacos (0.5 + +0 i)":
  105524. +double: 1
  105525. +idouble: 1
  105526. +Test "Real part of: cacos (0.5 + 0x1.fp-1025 i)":
  105527. +double: 1
  105528. +idouble: 1
  105529. +Test "Real part of: cacos (0.5 + 0x1.fp-129 i)":
  105530. +double: 1
  105531. +idouble: 1
  105532. +Test "Imaginary part of: cacos (0.5 + 0x1.fp-129 i)":
  105533. +double: 1
  105534. +idouble: 1
  105535. +Test "Real part of: cacos (0.5 + 0x1p-105 i)":
  105536. +double: 1
  105537. +idouble: 1
  105538. +Test "Imaginary part of: cacos (0.5 + 0x1p-105 i)":
  105539. +double: 1
  105540. +idouble: 1
  105541. +Test "Real part of: cacos (0.5 + 0x1p-112 i)":
  105542. +double: 1
  105543. +idouble: 1
  105544. +Test "Imaginary part of: cacos (0.5 + 0x1p-112 i)":
  105545. +double: 1
  105546. +idouble: 1
  105547. +Test "Imaginary part of: cacos (0.5 + 0x1p-23 i)":
  105548. +double: 1
  105549. +idouble: 1
  105550. +Test "Real part of: cacos (0.5 + 0x1p-52 i)":
  105551. +double: 1
  105552. +idouble: 1
  105553. +Test "Real part of: cacos (0.5 + 0x1p-63 i)":
  105554. +double: 1
  105555. +idouble: 1
  105556. +Test "Real part of: cacos (0.5 + 1.0 i)":
  105557. +float: 1
  105558. +ifloat: 1
  105559. +Test "Imaginary part of: cacos (0.5 + 1.0 i)":
  105560. +double: 1
  105561. +idouble: 1
  105562. +Test "Real part of: cacos (0.5 - 0 i)":
  105563. +double: 1
  105564. +idouble: 1
  105565. +Test "Real part of: cacos (0.5 - 0x1.fp-1025 i)":
  105566. +double: 1
  105567. +idouble: 1
  105568. +Test "Real part of: cacos (0.5 - 0x1.fp-129 i)":
  105569. +double: 1
  105570. +idouble: 1
  105571. +Test "Imaginary part of: cacos (0.5 - 0x1.fp-129 i)":
  105572. +double: 1
  105573. +idouble: 1
  105574. +Test "Real part of: cacos (0.5 - 0x1p-105 i)":
  105575. +double: 1
  105576. +idouble: 1
  105577. +Test "Imaginary part of: cacos (0.5 - 0x1p-105 i)":
  105578. +double: 1
  105579. +idouble: 1
  105580. +Test "Real part of: cacos (0.5 - 0x1p-112 i)":
  105581. +double: 1
  105582. +idouble: 1
  105583. +Test "Imaginary part of: cacos (0.5 - 0x1p-112 i)":
  105584. +double: 1
  105585. +idouble: 1
  105586. +Test "Imaginary part of: cacos (0.5 - 0x1p-23 i)":
  105587. +double: 1
  105588. +idouble: 1
  105589. +Test "Real part of: cacos (0.5 - 0x1p-52 i)":
  105590. +double: 1
  105591. +idouble: 1
  105592. +Test "Real part of: cacos (0.5 - 0x1p-63 i)":
  105593. +double: 1
  105594. +idouble: 1
  105595. +Test "Real part of: cacos (0.5 - 1.0 i)":
  105596. +float: 1
  105597. +ifloat: 1
  105598. +Test "Imaginary part of: cacos (0.5 - 1.0 i)":
  105599. +double: 1
  105600. +idouble: 1
  105601. +Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  105602. +double: 1
  105603. +idouble: 1
  105604. +Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  105605. +double: 1
  105606. +idouble: 1
  105607. +Test "Real part of: cacos (0x0.ffffffp0 + 0.0 i)":
  105608. +float: 1
  105609. +ifloat: 1
  105610. +Test "Real part of: cacos (0x0.ffffffp0 + 0x1.fp-129 i)":
  105611. +float: 1
  105612. +ifloat: 1
  105613. +Test "Real part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
  105614. +float: 2
  105615. +ifloat: 2
  105616. +Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
  105617. +float: 2
  105618. +ifloat: 2
  105619. +Test "Real part of: cacos (0x0.ffffffp0 - 0.0 i)":
  105620. +float: 1
  105621. +ifloat: 1
  105622. +Test "Real part of: cacos (0x0.ffffffp0 - 0x1.fp-129 i)":
  105623. +float: 1
  105624. +ifloat: 1
  105625. +Test "Real part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
  105626. +float: 2
  105627. +ifloat: 2
  105628. +Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
  105629. +float: 2
  105630. +ifloat: 2
  105631. +Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
  105632. +double: 1
  105633. +idouble: 1
  105634. +Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
  105635. +double: 1
  105636. +idouble: 1
  105637. +Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i)":
  105638. +float: 2
  105639. +ifloat: 2
  105640. +Test "Imaginary part of: cacos (0x1.000002p0 + 0x1p-23 i)":
  105641. +float: 1
  105642. +ifloat: 1
  105643. +Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i)":
  105644. +float: 2
  105645. +ifloat: 2
  105646. +Test "Imaginary part of: cacos (0x1.000002p0 - 0x1p-23 i)":
  105647. +float: 1
  105648. +ifloat: 1
  105649. +Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i)":
  105650. +double: 1
  105651. +idouble: 1
  105652. +Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i)":
  105653. +double: 1
  105654. +idouble: 1
  105655. +Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i)":
  105656. +double: 1
  105657. +float: 1
  105658. +idouble: 1
  105659. +ifloat: 1
  105660. +Test "Imaginary part of: cacos (0x1.fp-100 - 1.0 i)":
  105661. +double: 1
  105662. +float: 1
  105663. +idouble: 1
  105664. +ifloat: 1
  105665. +Test "Imaginary part of: cacos (0x1.fp-1000 + 1.0 i)":
  105666. +double: 1
  105667. +idouble: 1
  105668. +Test "Imaginary part of: cacos (0x1.fp-1000 - 1.0 i)":
  105669. +double: 1
  105670. +idouble: 1
  105671. +Test "Imaginary part of: cacos (0x1.fp-1025 + 1.0 i)":
  105672. +double: 1
  105673. +idouble: 1
  105674. +Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i)":
  105675. +double: 1
  105676. +idouble: 1
  105677. +Test "Imaginary part of: cacos (0x1.fp-1025 - 1.0 i)":
  105678. +double: 1
  105679. +idouble: 1
  105680. +Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i)":
  105681. +double: 1
  105682. +idouble: 1
  105683. +Test "Imaginary part of: cacos (0x1.fp-129 + 0.5 i)":
  105684. +float: 1
  105685. +ifloat: 1
  105686. +Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i)":
  105687. +double: 1
  105688. +float: 1
  105689. +idouble: 1
  105690. +ifloat: 1
  105691. +Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i)":
  105692. +double: 1
  105693. +idouble: 1
  105694. +Test "Imaginary part of: cacos (0x1.fp-129 - 0.5 i)":
  105695. +float: 1
  105696. +ifloat: 1
  105697. +Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i)":
  105698. +double: 1
  105699. +float: 1
  105700. +idouble: 1
  105701. +ifloat: 1
  105702. +Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i)":
  105703. +double: 1
  105704. +idouble: 1
  105705. +Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i)":
  105706. +double: 1
  105707. +float: 1
  105708. +idouble: 1
  105709. +ifloat: 1
  105710. +Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i)":
  105711. +double: 1
  105712. +float: 1
  105713. +idouble: 1
  105714. +ifloat: 1
  105715. +Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i)":
  105716. +double: 1
  105717. +idouble: 1
  105718. +Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
  105719. +double: 1
  105720. +idouble: 1
  105721. +Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
  105722. +float: 1
  105723. +ifloat: 1
  105724. +Test "Imaginary part of: cacos (0x1p-105 - 0.5 i)":
  105725. +float: 1
  105726. +ifloat: 1
  105727. +Test "Imaginary part of: cacos (0x1p-112 + 0.5 i)":
  105728. +float: 1
  105729. +ifloat: 1
  105730. +Test "Imaginary part of: cacos (0x1p-112 - 0.5 i)":
  105731. +float: 1
  105732. +ifloat: 1
  105733. +Test "Imaginary part of: cacos (0x1p-23 + 0.5 i)":
  105734. +float: 1
  105735. +ifloat: 1
  105736. +Test "Imaginary part of: cacos (0x1p-23 + 0x0.ffffffp0 i)":
  105737. +double: 1
  105738. +idouble: 1
  105739. +Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
  105740. +float: 1
  105741. +ifloat: 1
  105742. +Test "Imaginary part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
  105743. +double: 1
  105744. +idouble: 1
  105745. +Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
  105746. +float: 1
  105747. +ifloat: 1
  105748. +Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
  105749. +float: 1
  105750. +ifloat: 1
  105751. +Test "Imaginary part of: cacos (0x1p-63 + 0.5 i)":
  105752. +float: 1
  105753. +ifloat: 1
  105754. +Test "Imaginary part of: cacos (0x1p-63 - 0.5 i)":
  105755. +float: 1
  105756. +ifloat: 1
  105757. +Test "Real part of: cacos (1.0 + 0.25 i)":
  105758. +double: 1
  105759. +idouble: 1
  105760. +Test "Real part of: cacos (1.0 + 0.5 i)":
  105761. +float: 1
  105762. +ifloat: 1
  105763. +Test "Imaginary part of: cacos (1.0 + 0.5 i)":
  105764. +float: 1
  105765. +ifloat: 1
  105766. +Test "Real part of: cacos (1.0 + 0x1.fp-10 i)":
  105767. +float: 2
  105768. +ifloat: 2
  105769. +Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
  105770. +float: 1
  105771. +ifloat: 1
  105772. +Test "Real part of: cacos (1.0 - 0.25 i)":
  105773. +double: 1
  105774. +idouble: 1
  105775. +Test "Real part of: cacos (1.0 - 0.5 i)":
  105776. +float: 1
  105777. +ifloat: 1
  105778. +Test "Imaginary part of: cacos (1.0 - 0.5 i)":
  105779. +float: 1
  105780. +ifloat: 1
  105781. +Test "Real part of: cacos (1.0 - 0x1.fp-10 i)":
  105782. +float: 2
  105783. +ifloat: 2
  105784. +Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
  105785. +float: 1
  105786. +ifloat: 1
  105787. +
  105788. +# cacosh
  105789. +Test "Real part of: cacosh (+0 + 0.5 i)":
  105790. +float: 1
  105791. +ifloat: 1
  105792. +Test "Real part of: cacosh (+0 + 1.0 i)":
  105793. +double: 1
  105794. +float: 1
  105795. +idouble: 1
  105796. +ifloat: 1
  105797. +Test "Real part of: cacosh (+0 + 1.5 i)":
  105798. +double: 1
  105799. +idouble: 1
  105800. +Test "Real part of: cacosh (+0 - 0.5 i)":
  105801. +float: 1
  105802. +ifloat: 1
  105803. +Test "Real part of: cacosh (+0 - 1.0 i)":
  105804. +double: 1
  105805. +float: 1
  105806. +idouble: 1
  105807. +ifloat: 1
  105808. +Test "Real part of: cacosh (+0 - 1.5 i)":
  105809. +double: 1
  105810. +idouble: 1
  105811. +Test "Real part of: cacosh (-0 + 0.5 i)":
  105812. +float: 1
  105813. +ifloat: 1
  105814. +Test "Real part of: cacosh (-0 + 1.0 i)":
  105815. +double: 1
  105816. +float: 1
  105817. +idouble: 1
  105818. +ifloat: 1
  105819. +Test "Real part of: cacosh (-0 + 1.5 i)":
  105820. +double: 1
  105821. +idouble: 1
  105822. +Test "Real part of: cacosh (-0 - 0.5 i)":
  105823. +float: 1
  105824. +ifloat: 1
  105825. +Test "Real part of: cacosh (-0 - 1.0 i)":
  105826. +double: 1
  105827. +float: 1
  105828. +idouble: 1
  105829. +ifloat: 1
  105830. +Test "Real part of: cacosh (-0 - 1.5 i)":
  105831. +double: 1
  105832. +idouble: 1
  105833. +Test "Real part of: cacosh (-0.25 + 1.0 i)":
  105834. +float: 1
  105835. +ifloat: 1
  105836. +Test "Imaginary part of: cacosh (-0.25 + 1.0 i)":
  105837. +double: 1
  105838. +float: 1
  105839. +idouble: 1
  105840. +ifloat: 1
  105841. +Test "Real part of: cacosh (-0.25 - 1.0 i)":
  105842. +float: 1
  105843. +ifloat: 1
  105844. +Test "Imaginary part of: cacosh (-0.25 - 1.0 i)":
  105845. +double: 1
  105846. +float: 1
  105847. +idouble: 1
  105848. +ifloat: 1
  105849. +Test "Real part of: cacosh (-0.5 + 0x1.fp-129 i)":
  105850. +double: 1
  105851. +idouble: 1
  105852. +Test "Real part of: cacosh (-0.5 + 0x1p-105 i)":
  105853. +double: 1
  105854. +idouble: 1
  105855. +Test "Real part of: cacosh (-0.5 + 0x1p-112 i)":
  105856. +double: 1
  105857. +idouble: 1
  105858. +Test "Real part of: cacosh (-0.5 + 0x1p-23 i)":
  105859. +double: 1
  105860. +idouble: 1
  105861. +Test "Real part of: cacosh (-0.5 + 1.0 i)":
  105862. +double: 1
  105863. +idouble: 1
  105864. +Test "Imaginary part of: cacosh (-0.5 + 1.0 i)":
  105865. +float: 1
  105866. +ifloat: 1
  105867. +Test "Real part of: cacosh (-0.5 - 0x1.fp-129 i)":
  105868. +double: 1
  105869. +idouble: 1
  105870. +Test "Real part of: cacosh (-0.5 - 0x1p-105 i)":
  105871. +double: 1
  105872. +idouble: 1
  105873. +Test "Real part of: cacosh (-0.5 - 0x1p-112 i)":
  105874. +double: 1
  105875. +idouble: 1
  105876. +Test "Real part of: cacosh (-0.5 - 0x1p-23 i)":
  105877. +double: 1
  105878. +idouble: 1
  105879. +Test "Real part of: cacosh (-0.5 - 1.0 i)":
  105880. +double: 1
  105881. +idouble: 1
  105882. +Test "Imaginary part of: cacosh (-0.5 - 1.0 i)":
  105883. +float: 1
  105884. +ifloat: 1
  105885. +Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  105886. +double: 1
  105887. +idouble: 1
  105888. +Test "Real part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  105889. +double: 1
  105890. +idouble: 1
  105891. +Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i)":
  105892. +float: 2
  105893. +ifloat: 2
  105894. +Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i)":
  105895. +float: 2
  105896. +ifloat: 2
  105897. +Test "Real part of: cacosh (-0x1.000002p0 + 0x1p-23 i)":
  105898. +float: 1
  105899. +ifloat: 1
  105900. +Test "Real part of: cacosh (-0x1.000002p0 - 0x1p-23 i)":
  105901. +float: 1
  105902. +ifloat: 1
  105903. +Test "Real part of: cacosh (-0x1.fp-10 + 1.0 i)":
  105904. +double: 1
  105905. +idouble: 1
  105906. +Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i)":
  105907. +double: 1
  105908. +idouble: 1
  105909. +Test "Real part of: cacosh (-0x1.fp-100 + 1.0 i)":
  105910. +double: 1
  105911. +float: 1
  105912. +idouble: 1
  105913. +ifloat: 1
  105914. +Test "Imaginary part of: cacosh (-0x1.fp-100 + 1.0 i)":
  105915. +float: 1
  105916. +ifloat: 1
  105917. +Test "Real part of: cacosh (-0x1.fp-100 - 1.0 i)":
  105918. +double: 1
  105919. +float: 1
  105920. +idouble: 1
  105921. +ifloat: 1
  105922. +Test "Imaginary part of: cacosh (-0x1.fp-100 - 1.0 i)":
  105923. +float: 1
  105924. +ifloat: 1
  105925. +Test "Real part of: cacosh (-0x1.fp-1000 + 1.0 i)":
  105926. +double: 1
  105927. +idouble: 1
  105928. +Test "Real part of: cacosh (-0x1.fp-1000 - 1.0 i)":
  105929. +double: 1
  105930. +idouble: 1
  105931. +Test "Real part of: cacosh (-0x1.fp-1025 + 1.0 i)":
  105932. +double: 1
  105933. +idouble: 1
  105934. +Test "Real part of: cacosh (-0x1.fp-1025 + 1.5 i)":
  105935. +double: 1
  105936. +idouble: 1
  105937. +Test "Real part of: cacosh (-0x1.fp-1025 - 1.0 i)":
  105938. +double: 1
  105939. +idouble: 1
  105940. +Test "Real part of: cacosh (-0x1.fp-1025 - 1.5 i)":
  105941. +double: 1
  105942. +idouble: 1
  105943. +Test "Real part of: cacosh (-0x1.fp-129 + 0.5 i)":
  105944. +float: 1
  105945. +ifloat: 1
  105946. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0.5 i)":
  105947. +float: 1
  105948. +ifloat: 1
  105949. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x0.ffffffp0 i)":
  105950. +float: 1
  105951. +ifloat: 1
  105952. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.000002p0 i)":
  105953. +float: 1
  105954. +ifloat: 1
  105955. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.fp-129 i)":
  105956. +float: 1
  105957. +ifloat: 1
  105958. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1p-23 i)":
  105959. +float: 1
  105960. +ifloat: 1
  105961. +Test "Real part of: cacosh (-0x1.fp-129 + 1.0 i)":
  105962. +double: 1
  105963. +float: 1
  105964. +idouble: 1
  105965. +ifloat: 1
  105966. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.0 i)":
  105967. +float: 1
  105968. +ifloat: 1
  105969. +Test "Real part of: cacosh (-0x1.fp-129 + 1.5 i)":
  105970. +double: 1
  105971. +idouble: 1
  105972. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.5 i)":
  105973. +float: 1
  105974. +ifloat: 1
  105975. +Test "Real part of: cacosh (-0x1.fp-129 - 0.5 i)":
  105976. +float: 1
  105977. +ifloat: 1
  105978. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0.5 i)":
  105979. +float: 1
  105980. +ifloat: 1
  105981. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x0.ffffffp0 i)":
  105982. +float: 1
  105983. +ifloat: 1
  105984. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.000002p0 i)":
  105985. +float: 1
  105986. +ifloat: 1
  105987. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.fp-129 i)":
  105988. +float: 1
  105989. +ifloat: 1
  105990. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1p-23 i)":
  105991. +float: 1
  105992. +ifloat: 1
  105993. +Test "Real part of: cacosh (-0x1.fp-129 - 1.0 i)":
  105994. +double: 1
  105995. +float: 1
  105996. +idouble: 1
  105997. +ifloat: 1
  105998. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.0 i)":
  105999. +float: 1
  106000. +ifloat: 1
  106001. +Test "Real part of: cacosh (-0x1.fp-129 - 1.5 i)":
  106002. +double: 1
  106003. +idouble: 1
  106004. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.5 i)":
  106005. +float: 1
  106006. +ifloat: 1
  106007. +Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i)":
  106008. +double: 1
  106009. +float: 1
  106010. +idouble: 1
  106011. +ifloat: 1
  106012. +Test "Imaginary part of: cacosh (-0x1.fp-30 + 1.0 i)":
  106013. +float: 1
  106014. +ifloat: 1
  106015. +Test "Real part of: cacosh (-0x1.fp-30 - 1.0 i)":
  106016. +double: 1
  106017. +float: 1
  106018. +idouble: 1
  106019. +ifloat: 1
  106020. +Test "Imaginary part of: cacosh (-0x1.fp-30 - 1.0 i)":
  106021. +float: 1
  106022. +ifloat: 1
  106023. +Test "Imaginary part of: cacosh (-0x1p-105 + 0.0 i)":
  106024. +float: 1
  106025. +ifloat: 1
  106026. +Test "Real part of: cacosh (-0x1p-105 + 0.5 i)":
  106027. +float: 1
  106028. +ifloat: 1
  106029. +Test "Imaginary part of: cacosh (-0x1p-105 + 0.5 i)":
  106030. +float: 1
  106031. +ifloat: 1
  106032. +Test "Imaginary part of: cacosh (-0x1p-105 + 0x1p-105 i)":
  106033. +float: 1
  106034. +ifloat: 1
  106035. +Test "Imaginary part of: cacosh (-0x1p-105 - 0.0 i)":
  106036. +float: 1
  106037. +ifloat: 1
  106038. +Test "Real part of: cacosh (-0x1p-105 - 0.5 i)":
  106039. +float: 1
  106040. +ifloat: 1
  106041. +Test "Imaginary part of: cacosh (-0x1p-105 - 0.5 i)":
  106042. +float: 1
  106043. +ifloat: 1
  106044. +Test "Imaginary part of: cacosh (-0x1p-105 - 0x1p-105 i)":
  106045. +float: 1
  106046. +ifloat: 1
  106047. +Test "Imaginary part of: cacosh (-0x1p-112 + 0.0 i)":
  106048. +float: 1
  106049. +ifloat: 1
  106050. +Test "Real part of: cacosh (-0x1p-112 + 0.5 i)":
  106051. +float: 1
  106052. +ifloat: 1
  106053. +Test "Imaginary part of: cacosh (-0x1p-112 + 0.5 i)":
  106054. +float: 1
  106055. +ifloat: 1
  106056. +Test "Imaginary part of: cacosh (-0x1p-112 + 0x1p-112 i)":
  106057. +float: 1
  106058. +ifloat: 1
  106059. +Test "Imaginary part of: cacosh (-0x1p-112 - 0.0 i)":
  106060. +float: 1
  106061. +ifloat: 1
  106062. +Test "Real part of: cacosh (-0x1p-112 - 0.5 i)":
  106063. +float: 1
  106064. +ifloat: 1
  106065. +Test "Imaginary part of: cacosh (-0x1p-112 - 0.5 i)":
  106066. +float: 1
  106067. +ifloat: 1
  106068. +Test "Imaginary part of: cacosh (-0x1p-112 - 0x1p-112 i)":
  106069. +float: 1
  106070. +ifloat: 1
  106071. +Test "Imaginary part of: cacosh (-0x1p-23 + 0.0 i)":
  106072. +float: 1
  106073. +ifloat: 1
  106074. +Test "Real part of: cacosh (-0x1p-23 + 0.5 i)":
  106075. +float: 1
  106076. +ifloat: 1
  106077. +Test "Imaginary part of: cacosh (-0x1p-23 + 0.5 i)":
  106078. +float: 1
  106079. +ifloat: 1
  106080. +Test "Real part of: cacosh (-0x1p-23 + 0x0.ffffffp0 i)":
  106081. +double: 1
  106082. +idouble: 1
  106083. +Test "Imaginary part of: cacosh (-0x1p-23 + 0x1.fp-129 i)":
  106084. +float: 1
  106085. +ifloat: 1
  106086. +Test "Imaginary part of: cacosh (-0x1p-23 + 0x1p-23 i)":
  106087. +float: 1
  106088. +ifloat: 1
  106089. +Test "Imaginary part of: cacosh (-0x1p-23 - 0.0 i)":
  106090. +float: 1
  106091. +ifloat: 1
  106092. +Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
  106093. +float: 1
  106094. +ifloat: 1
  106095. +Test "Imaginary part of: cacosh (-0x1p-23 - 0.5 i)":
  106096. +float: 1
  106097. +ifloat: 1
  106098. +Test "Real part of: cacosh (-0x1p-23 - 0x0.ffffffp0 i)":
  106099. +double: 1
  106100. +idouble: 1
  106101. +Test "Imaginary part of: cacosh (-0x1p-23 - 0x1.fp-129 i)":
  106102. +float: 1
  106103. +ifloat: 1
  106104. +Test "Imaginary part of: cacosh (-0x1p-23 - 0x1p-23 i)":
  106105. +float: 1
  106106. +ifloat: 1
  106107. +Test "Imaginary part of: cacosh (-0x1p-52 + 0.0 i)":
  106108. +float: 1
  106109. +ifloat: 1
  106110. +Test "Real part of: cacosh (-0x1p-52 + 0.5 i)":
  106111. +float: 1
  106112. +ifloat: 1
  106113. +Test "Imaginary part of: cacosh (-0x1p-52 + 0.5 i)":
  106114. +float: 1
  106115. +ifloat: 1
  106116. +Test "Imaginary part of: cacosh (-0x1p-52 + 0x1p-52 i)":
  106117. +float: 1
  106118. +ifloat: 1
  106119. +Test "Imaginary part of: cacosh (-0x1p-52 - 0.0 i)":
  106120. +float: 1
  106121. +ifloat: 1
  106122. +Test "Real part of: cacosh (-0x1p-52 - 0.5 i)":
  106123. +float: 1
  106124. +ifloat: 1
  106125. +Test "Imaginary part of: cacosh (-0x1p-52 - 0.5 i)":
  106126. +float: 1
  106127. +ifloat: 1
  106128. +Test "Imaginary part of: cacosh (-0x1p-52 - 0x1p-52 i)":
  106129. +float: 1
  106130. +ifloat: 1
  106131. +Test "Imaginary part of: cacosh (-0x1p-63 + 0.0 i)":
  106132. +float: 1
  106133. +ifloat: 1
  106134. +Test "Real part of: cacosh (-0x1p-63 + 0.5 i)":
  106135. +float: 1
  106136. +ifloat: 1
  106137. +Test "Imaginary part of: cacosh (-0x1p-63 + 0.5 i)":
  106138. +float: 1
  106139. +ifloat: 1
  106140. +Test "Imaginary part of: cacosh (-0x1p-63 + 0x1p-63 i)":
  106141. +float: 1
  106142. +ifloat: 1
  106143. +Test "Imaginary part of: cacosh (-0x1p-63 - 0.0 i)":
  106144. +float: 1
  106145. +ifloat: 1
  106146. +Test "Real part of: cacosh (-0x1p-63 - 0.5 i)":
  106147. +float: 1
  106148. +ifloat: 1
  106149. +Test "Imaginary part of: cacosh (-0x1p-63 - 0.5 i)":
  106150. +float: 1
  106151. +ifloat: 1
  106152. +Test "Imaginary part of: cacosh (-0x1p-63 - 0x1p-63 i)":
  106153. +float: 1
  106154. +ifloat: 1
  106155. +Test "Real part of: cacosh (-1.0 + 0.5 i)":
  106156. +float: 1
  106157. +ifloat: 1
  106158. +Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i)":
  106159. +float: 1
  106160. +ifloat: 1
  106161. +Test "Imaginary part of: cacosh (-1.0 + 0x1p50 i)":
  106162. +float: 1
  106163. +ifloat: 1
  106164. +Test "Real part of: cacosh (-1.0 - 0.5 i)":
  106165. +float: 1
  106166. +ifloat: 1
  106167. +Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i)":
  106168. +float: 1
  106169. +ifloat: 1
  106170. +Test "Imaginary part of: cacosh (-1.0 - 0x1p50 i)":
  106171. +float: 1
  106172. +ifloat: 1
  106173. +Test "Imaginary part of: cacosh (-2 - 3 i)":
  106174. +float: 1
  106175. +ifloat: 1
  106176. +Test "Real part of: cacosh (0.25 + 1.0 i)":
  106177. +float: 1
  106178. +ifloat: 1
  106179. +Test "Real part of: cacosh (0.25 - 1.0 i)":
  106180. +float: 1
  106181. +ifloat: 1
  106182. +Test "Imaginary part of: cacosh (0.5 + +0 i)":
  106183. +double: 1
  106184. +idouble: 1
  106185. +Test "Imaginary part of: cacosh (0.5 + 0x1.fp-1025 i)":
  106186. +double: 1
  106187. +idouble: 1
  106188. +Test "Real part of: cacosh (0.5 + 0x1.fp-129 i)":
  106189. +double: 1
  106190. +idouble: 1
  106191. +Test "Imaginary part of: cacosh (0.5 + 0x1.fp-129 i)":
  106192. +double: 1
  106193. +idouble: 1
  106194. +Test "Real part of: cacosh (0.5 + 0x1p-105 i)":
  106195. +double: 1
  106196. +idouble: 1
  106197. +Test "Imaginary part of: cacosh (0.5 + 0x1p-105 i)":
  106198. +double: 1
  106199. +idouble: 1
  106200. +Test "Real part of: cacosh (0.5 + 0x1p-112 i)":
  106201. +double: 1
  106202. +idouble: 1
  106203. +Test "Imaginary part of: cacosh (0.5 + 0x1p-112 i)":
  106204. +double: 1
  106205. +idouble: 1
  106206. +Test "Real part of: cacosh (0.5 + 0x1p-23 i)":
  106207. +double: 1
  106208. +idouble: 1
  106209. +Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i)":
  106210. +double: 1
  106211. +idouble: 1
  106212. +Test "Imaginary part of: cacosh (0.5 + 0x1p-63 i)":
  106213. +double: 1
  106214. +idouble: 1
  106215. +Test "Real part of: cacosh (0.5 + 1.0 i)":
  106216. +double: 1
  106217. +idouble: 1
  106218. +Test "Imaginary part of: cacosh (0.5 + 1.0 i)":
  106219. +float: 1
  106220. +ifloat: 1
  106221. +Test "Imaginary part of: cacosh (0.5 - 0 i)":
  106222. +double: 1
  106223. +idouble: 1
  106224. +Test "Imaginary part of: cacosh (0.5 - 0x1.fp-1025 i)":
  106225. +double: 1
  106226. +idouble: 1
  106227. +Test "Real part of: cacosh (0.5 - 0x1.fp-129 i)":
  106228. +double: 1
  106229. +idouble: 1
  106230. +Test "Imaginary part of: cacosh (0.5 - 0x1.fp-129 i)":
  106231. +double: 1
  106232. +idouble: 1
  106233. +Test "Real part of: cacosh (0.5 - 0x1p-105 i)":
  106234. +double: 1
  106235. +idouble: 1
  106236. +Test "Imaginary part of: cacosh (0.5 - 0x1p-105 i)":
  106237. +double: 1
  106238. +idouble: 1
  106239. +Test "Real part of: cacosh (0.5 - 0x1p-112 i)":
  106240. +double: 1
  106241. +idouble: 1
  106242. +Test "Imaginary part of: cacosh (0.5 - 0x1p-112 i)":
  106243. +double: 1
  106244. +idouble: 1
  106245. +Test "Real part of: cacosh (0.5 - 0x1p-23 i)":
  106246. +double: 1
  106247. +idouble: 1
  106248. +Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i)":
  106249. +double: 1
  106250. +idouble: 1
  106251. +Test "Imaginary part of: cacosh (0.5 - 0x1p-63 i)":
  106252. +double: 1
  106253. +idouble: 1
  106254. +Test "Real part of: cacosh (0.5 - 1.0 i)":
  106255. +double: 1
  106256. +idouble: 1
  106257. +Test "Imaginary part of: cacosh (0.5 - 1.0 i)":
  106258. +float: 1
  106259. +ifloat: 1
  106260. +Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  106261. +double: 1
  106262. +idouble: 1
  106263. +Test "Real part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  106264. +double: 1
  106265. +idouble: 1
  106266. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0.0 i)":
  106267. +float: 1
  106268. +ifloat: 1
  106269. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1.fp-129 i)":
  106270. +float: 1
  106271. +ifloat: 1
  106272. +Test "Real part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
  106273. +float: 2
  106274. +ifloat: 2
  106275. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
  106276. +float: 2
  106277. +ifloat: 2
  106278. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0.0 i)":
  106279. +float: 1
  106280. +ifloat: 1
  106281. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1.fp-129 i)":
  106282. +float: 1
  106283. +ifloat: 1
  106284. +Test "Real part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
  106285. +float: 2
  106286. +ifloat: 2
  106287. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
  106288. +float: 2
  106289. +ifloat: 2
  106290. +Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
  106291. +double: 1
  106292. +idouble: 1
  106293. +Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
  106294. +double: 1
  106295. +idouble: 1
  106296. +Test "Real part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
  106297. +float: 1
  106298. +ifloat: 1
  106299. +Test "Imaginary part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
  106300. +float: 2
  106301. +ifloat: 2
  106302. +Test "Real part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
  106303. +float: 1
  106304. +ifloat: 1
  106305. +Test "Imaginary part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
  106306. +float: 2
  106307. +ifloat: 2
  106308. +Test "Real part of: cacosh (0x1.fp-10 + 1.0 i)":
  106309. +double: 1
  106310. +idouble: 1
  106311. +Test "Real part of: cacosh (0x1.fp-10 - 1.0 i)":
  106312. +double: 1
  106313. +idouble: 1
  106314. +Test "Real part of: cacosh (0x1.fp-100 + 1.0 i)":
  106315. +double: 1
  106316. +float: 1
  106317. +idouble: 1
  106318. +ifloat: 1
  106319. +Test "Real part of: cacosh (0x1.fp-100 - 1.0 i)":
  106320. +double: 1
  106321. +float: 1
  106322. +idouble: 1
  106323. +ifloat: 1
  106324. +Test "Real part of: cacosh (0x1.fp-1000 + 1.0 i)":
  106325. +double: 1
  106326. +idouble: 1
  106327. +Test "Real part of: cacosh (0x1.fp-1000 - 1.0 i)":
  106328. +double: 1
  106329. +idouble: 1
  106330. +Test "Real part of: cacosh (0x1.fp-1025 + 1.0 i)":
  106331. +double: 1
  106332. +idouble: 1
  106333. +Test "Real part of: cacosh (0x1.fp-1025 + 1.5 i)":
  106334. +double: 1
  106335. +idouble: 1
  106336. +Test "Real part of: cacosh (0x1.fp-1025 - 1.0 i)":
  106337. +double: 1
  106338. +idouble: 1
  106339. +Test "Real part of: cacosh (0x1.fp-1025 - 1.5 i)":
  106340. +double: 1
  106341. +idouble: 1
  106342. +Test "Real part of: cacosh (0x1.fp-129 + 0.5 i)":
  106343. +float: 1
  106344. +ifloat: 1
  106345. +Test "Real part of: cacosh (0x1.fp-129 + 1.0 i)":
  106346. +double: 1
  106347. +float: 1
  106348. +idouble: 1
  106349. +ifloat: 1
  106350. +Test "Real part of: cacosh (0x1.fp-129 + 1.5 i)":
  106351. +double: 1
  106352. +idouble: 1
  106353. +Test "Real part of: cacosh (0x1.fp-129 - 0.5 i)":
  106354. +float: 1
  106355. +ifloat: 1
  106356. +Test "Real part of: cacosh (0x1.fp-129 - 1.0 i)":
  106357. +double: 1
  106358. +float: 1
  106359. +idouble: 1
  106360. +ifloat: 1
  106361. +Test "Real part of: cacosh (0x1.fp-129 - 1.5 i)":
  106362. +double: 1
  106363. +idouble: 1
  106364. +Test "Real part of: cacosh (0x1.fp-30 + 1.0 i)":
  106365. +double: 1
  106366. +float: 1
  106367. +idouble: 1
  106368. +ifloat: 1
  106369. +Test "Real part of: cacosh (0x1.fp-30 - 1.0 i)":
  106370. +double: 1
  106371. +float: 1
  106372. +idouble: 1
  106373. +ifloat: 1
  106374. +Test "Real part of: cacosh (0x1.fp1023 + 0x1.fp1023 i)":
  106375. +double: 1
  106376. +idouble: 1
  106377. +Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i)":
  106378. +double: 1
  106379. +idouble: 1
  106380. +Test "Real part of: cacosh (0x1p-105 + 0.5 i)":
  106381. +float: 1
  106382. +ifloat: 1
  106383. +Test "Real part of: cacosh (0x1p-105 - 0.5 i)":
  106384. +float: 1
  106385. +ifloat: 1
  106386. +Test "Real part of: cacosh (0x1p-112 + 0.5 i)":
  106387. +float: 1
  106388. +ifloat: 1
  106389. +Test "Real part of: cacosh (0x1p-112 - 0.5 i)":
  106390. +float: 1
  106391. +ifloat: 1
  106392. +Test "Real part of: cacosh (0x1p-23 + 0.5 i)":
  106393. +float: 1
  106394. +ifloat: 1
  106395. +Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i)":
  106396. +double: 1
  106397. +idouble: 1
  106398. +Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
  106399. +float: 1
  106400. +ifloat: 1
  106401. +Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
  106402. +double: 1
  106403. +idouble: 1
  106404. +Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
  106405. +float: 1
  106406. +ifloat: 1
  106407. +Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
  106408. +float: 1
  106409. +ifloat: 1
  106410. +Test "Real part of: cacosh (0x1p-63 + 0.5 i)":
  106411. +float: 1
  106412. +ifloat: 1
  106413. +Test "Real part of: cacosh (0x1p-63 - 0.5 i)":
  106414. +float: 1
  106415. +ifloat: 1
  106416. +Test "Imaginary part of: cacosh (1.0 + 0.25 i)":
  106417. +double: 1
  106418. +idouble: 1
  106419. +Test "Real part of: cacosh (1.0 + 0.5 i)":
  106420. +float: 1
  106421. +ifloat: 1
  106422. +Test "Imaginary part of: cacosh (1.0 + 0.5 i)":
  106423. +float: 1
  106424. +ifloat: 1
  106425. +Test "Real part of: cacosh (1.0 + 0x1.fp-10 i)":
  106426. +float: 1
  106427. +ifloat: 1
  106428. +Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
  106429. +float: 2
  106430. +ifloat: 2
  106431. +Test "Imaginary part of: cacosh (1.0 - 0.25 i)":
  106432. +double: 1
  106433. +idouble: 1
  106434. +Test "Real part of: cacosh (1.0 - 0.5 i)":
  106435. +float: 1
  106436. +ifloat: 1
  106437. +Test "Imaginary part of: cacosh (1.0 - 0.5 i)":
  106438. +float: 1
  106439. +ifloat: 1
  106440. +Test "Real part of: cacosh (1.0 - 0x1.fp-10 i)":
  106441. +float: 1
  106442. +ifloat: 1
  106443. +Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
  106444. +float: 2
  106445. +ifloat: 2
  106446. +
  106447. +# casin
  106448. +Test "Imaginary part of: casin (+0 + 0.5 i)":
  106449. +float: 1
  106450. +ifloat: 1
  106451. +Test "Imaginary part of: casin (+0 + 1.0 i)":
  106452. +double: 1
  106453. +float: 1
  106454. +idouble: 1
  106455. +ifloat: 1
  106456. +Test "Imaginary part of: casin (+0 + 1.5 i)":
  106457. +double: 1
  106458. +idouble: 1
  106459. +Test "Imaginary part of: casin (+0 - 0.5 i)":
  106460. +float: 1
  106461. +ifloat: 1
  106462. +Test "Imaginary part of: casin (+0 - 1.0 i)":
  106463. +double: 1
  106464. +float: 1
  106465. +idouble: 1
  106466. +ifloat: 1
  106467. +Test "Imaginary part of: casin (+0 - 1.5 i)":
  106468. +double: 1
  106469. +idouble: 1
  106470. +Test "Imaginary part of: casin (-0 + 0.5 i)":
  106471. +float: 1
  106472. +ifloat: 1
  106473. +Test "Imaginary part of: casin (-0 + 1.0 i)":
  106474. +double: 1
  106475. +float: 1
  106476. +idouble: 1
  106477. +ifloat: 1
  106478. +Test "Imaginary part of: casin (-0 + 1.5 i)":
  106479. +double: 1
  106480. +idouble: 1
  106481. +Test "Imaginary part of: casin (-0 - 0.5 i)":
  106482. +float: 1
  106483. +ifloat: 1
  106484. +Test "Imaginary part of: casin (-0 - 1.0 i)":
  106485. +double: 1
  106486. +float: 1
  106487. +idouble: 1
  106488. +ifloat: 1
  106489. +Test "Imaginary part of: casin (-0 - 1.5 i)":
  106490. +double: 1
  106491. +idouble: 1
  106492. +Test "Imaginary part of: casin (-0.25 + 1.0 i)":
  106493. +float: 1
  106494. +ifloat: 1
  106495. +Test "Imaginary part of: casin (-0.25 - 1.0 i)":
  106496. +float: 1
  106497. +ifloat: 1
  106498. +Test "Imaginary part of: casin (-0.5 + 0x1.fp-129 i)":
  106499. +double: 1
  106500. +idouble: 1
  106501. +Test "Imaginary part of: casin (-0.5 + 0x1p-105 i)":
  106502. +double: 1
  106503. +idouble: 1
  106504. +Test "Imaginary part of: casin (-0.5 + 0x1p-112 i)":
  106505. +double: 1
  106506. +idouble: 1
  106507. +Test "Imaginary part of: casin (-0.5 + 0x1p-23 i)":
  106508. +double: 1
  106509. +idouble: 1
  106510. +Test "Imaginary part of: casin (-0.5 + 1.0 i)":
  106511. +double: 1
  106512. +idouble: 1
  106513. +Test "Imaginary part of: casin (-0.5 - 0x1.fp-129 i)":
  106514. +double: 1
  106515. +idouble: 1
  106516. +Test "Imaginary part of: casin (-0.5 - 0x1p-105 i)":
  106517. +double: 1
  106518. +idouble: 1
  106519. +Test "Imaginary part of: casin (-0.5 - 0x1p-112 i)":
  106520. +double: 1
  106521. +idouble: 1
  106522. +Test "Imaginary part of: casin (-0.5 - 0x1p-23 i)":
  106523. +double: 1
  106524. +idouble: 1
  106525. +Test "Imaginary part of: casin (-0.5 - 1.0 i)":
  106526. +double: 1
  106527. +idouble: 1
  106528. +Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  106529. +double: 1
  106530. +idouble: 1
  106531. +Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  106532. +double: 1
  106533. +idouble: 1
  106534. +Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
  106535. +float: 2
  106536. +ifloat: 2
  106537. +Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
  106538. +float: 2
  106539. +ifloat: 2
  106540. +Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i)":
  106541. +float: 1
  106542. +ifloat: 1
  106543. +Test "Imaginary part of: casin (-0x1.000002p0 - 0x1p-23 i)":
  106544. +float: 1
  106545. +ifloat: 1
  106546. +Test "Real part of: casin (-0x1.fp-10 + 1.0 i)":
  106547. +float: 1
  106548. +ifloat: 1
  106549. +Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i)":
  106550. +double: 1
  106551. +idouble: 1
  106552. +Test "Real part of: casin (-0x1.fp-10 - 1.0 i)":
  106553. +float: 1
  106554. +ifloat: 1
  106555. +Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i)":
  106556. +double: 1
  106557. +idouble: 1
  106558. +Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i)":
  106559. +double: 1
  106560. +float: 1
  106561. +idouble: 1
  106562. +ifloat: 1
  106563. +Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i)":
  106564. +double: 1
  106565. +float: 1
  106566. +idouble: 1
  106567. +ifloat: 1
  106568. +Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i)":
  106569. +double: 1
  106570. +idouble: 1
  106571. +Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i)":
  106572. +double: 1
  106573. +idouble: 1
  106574. +Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i)":
  106575. +double: 1
  106576. +idouble: 1
  106577. +Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i)":
  106578. +double: 1
  106579. +idouble: 1
  106580. +Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i)":
  106581. +double: 1
  106582. +idouble: 1
  106583. +Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i)":
  106584. +double: 1
  106585. +idouble: 1
  106586. +Test "Imaginary part of: casin (-0x1.fp-129 + 0.5 i)":
  106587. +float: 1
  106588. +ifloat: 1
  106589. +Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i)":
  106590. +double: 1
  106591. +float: 1
  106592. +idouble: 1
  106593. +ifloat: 1
  106594. +Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i)":
  106595. +double: 1
  106596. +idouble: 1
  106597. +Test "Imaginary part of: casin (-0x1.fp-129 - 0.5 i)":
  106598. +float: 1
  106599. +ifloat: 1
  106600. +Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i)":
  106601. +double: 1
  106602. +float: 1
  106603. +idouble: 1
  106604. +ifloat: 1
  106605. +Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i)":
  106606. +double: 1
  106607. +idouble: 1
  106608. +Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i)":
  106609. +double: 1
  106610. +float: 1
  106611. +idouble: 1
  106612. +ifloat: 1
  106613. +Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i)":
  106614. +double: 1
  106615. +float: 1
  106616. +idouble: 1
  106617. +ifloat: 1
  106618. +Test "Imaginary part of: casin (-0x1p-105 + 0.5 i)":
  106619. +float: 1
  106620. +ifloat: 1
  106621. +Test "Imaginary part of: casin (-0x1p-105 - 0.5 i)":
  106622. +float: 1
  106623. +ifloat: 1
  106624. +Test "Imaginary part of: casin (-0x1p-112 + 0.5 i)":
  106625. +float: 1
  106626. +ifloat: 1
  106627. +Test "Imaginary part of: casin (-0x1p-112 - 0.5 i)":
  106628. +float: 1
  106629. +ifloat: 1
  106630. +Test "Real part of: casin (-0x1p-23 + 0.5 i)":
  106631. +double: 1
  106632. +float: 1
  106633. +idouble: 1
  106634. +ifloat: 1
  106635. +Test "Imaginary part of: casin (-0x1p-23 + 0.5 i)":
  106636. +float: 1
  106637. +ifloat: 1
  106638. +Test "Imaginary part of: casin (-0x1p-23 + 0x0.ffffffp0 i)":
  106639. +double: 1
  106640. +idouble: 1
  106641. +Test "Real part of: casin (-0x1p-23 + 0x1.000002p0 i)":
  106642. +double: 1
  106643. +float: 1
  106644. +idouble: 1
  106645. +ifloat: 1
  106646. +Test "Real part of: casin (-0x1p-23 - 0.5 i)":
  106647. +double: 1
  106648. +float: 1
  106649. +idouble: 1
  106650. +ifloat: 1
  106651. +Test "Imaginary part of: casin (-0x1p-23 - 0.5 i)":
  106652. +float: 1
  106653. +ifloat: 1
  106654. +Test "Imaginary part of: casin (-0x1p-23 - 0x0.ffffffp0 i)":
  106655. +double: 1
  106656. +idouble: 1
  106657. +Test "Real part of: casin (-0x1p-23 - 0x1.000002p0 i)":
  106658. +double: 1
  106659. +float: 1
  106660. +idouble: 1
  106661. +ifloat: 1
  106662. +Test "Imaginary part of: casin (-0x1p-52 + 0.5 i)":
  106663. +float: 1
  106664. +ifloat: 1
  106665. +Test "Imaginary part of: casin (-0x1p-52 - 0.5 i)":
  106666. +float: 1
  106667. +ifloat: 1
  106668. +Test "Imaginary part of: casin (-0x1p-63 + 0.5 i)":
  106669. +float: 1
  106670. +ifloat: 1
  106671. +Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
  106672. +float: 1
  106673. +ifloat: 1
  106674. +Test "Real part of: casin (-1.0 + 0.25 i)":
  106675. +double: 1
  106676. +idouble: 1
  106677. +Test "Real part of: casin (-1.0 + 0.5 i)":
  106678. +float: 1
  106679. +ifloat: 1
  106680. +Test "Imaginary part of: casin (-1.0 + 0.5 i)":
  106681. +float: 1
  106682. +ifloat: 1
  106683. +Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
  106684. +float: 1
  106685. +ifloat: 1
  106686. +Test "Real part of: casin (-1.0 - 0.25 i)":
  106687. +double: 1
  106688. +idouble: 1
  106689. +Test "Real part of: casin (-1.0 - 0.5 i)":
  106690. +float: 1
  106691. +ifloat: 1
  106692. +Test "Imaginary part of: casin (-1.0 - 0.5 i)":
  106693. +float: 1
  106694. +ifloat: 1
  106695. +Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
  106696. +float: 1
  106697. +ifloat: 1
  106698. +Test "Imaginary part of: casin (0.25 + 1.0 i)":
  106699. +float: 1
  106700. +ifloat: 1
  106701. +Test "Imaginary part of: casin (0.25 - 1.0 i)":
  106702. +float: 1
  106703. +ifloat: 1
  106704. +Test "Imaginary part of: casin (0.5 + 0x1.fp-129 i)":
  106705. +double: 1
  106706. +idouble: 1
  106707. +Test "Imaginary part of: casin (0.5 + 0x1p-105 i)":
  106708. +double: 1
  106709. +idouble: 1
  106710. +Test "Imaginary part of: casin (0.5 + 0x1p-112 i)":
  106711. +double: 1
  106712. +idouble: 1
  106713. +Test "Imaginary part of: casin (0.5 + 0x1p-23 i)":
  106714. +double: 1
  106715. +idouble: 1
  106716. +Test "Imaginary part of: casin (0.5 + 1.0 i)":
  106717. +double: 1
  106718. +idouble: 1
  106719. +Test "Imaginary part of: casin (0.5 - 0x1.fp-129 i)":
  106720. +double: 1
  106721. +idouble: 1
  106722. +Test "Imaginary part of: casin (0.5 - 0x1p-105 i)":
  106723. +double: 1
  106724. +idouble: 1
  106725. +Test "Imaginary part of: casin (0.5 - 0x1p-112 i)":
  106726. +double: 1
  106727. +idouble: 1
  106728. +Test "Imaginary part of: casin (0.5 - 0x1p-23 i)":
  106729. +double: 1
  106730. +idouble: 1
  106731. +Test "Imaginary part of: casin (0.5 - 1.0 i)":
  106732. +double: 1
  106733. +idouble: 1
  106734. +Test "Real part of: casin (0.75 + 1.25 i)":
  106735. +double: 1
  106736. +float: 1
  106737. +idouble: 1
  106738. +ifloat: 1
  106739. +Test "Imaginary part of: casin (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  106740. +double: 1
  106741. +idouble: 1
  106742. +Test "Imaginary part of: casin (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  106743. +double: 1
  106744. +idouble: 1
  106745. +Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
  106746. +float: 2
  106747. +ifloat: 2
  106748. +Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
  106749. +float: 2
  106750. +ifloat: 2
  106751. +Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i)":
  106752. +float: 1
  106753. +ifloat: 1
  106754. +Test "Imaginary part of: casin (0x1.000002p0 - 0x1p-23 i)":
  106755. +float: 1
  106756. +ifloat: 1
  106757. +Test "Real part of: casin (0x1.fp-10 + 1.0 i)":
  106758. +float: 1
  106759. +ifloat: 1
  106760. +Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i)":
  106761. +double: 1
  106762. +idouble: 1
  106763. +Test "Real part of: casin (0x1.fp-10 - 1.0 i)":
  106764. +float: 1
  106765. +ifloat: 1
  106766. +Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i)":
  106767. +double: 1
  106768. +idouble: 1
  106769. +Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i)":
  106770. +double: 1
  106771. +float: 1
  106772. +idouble: 1
  106773. +ifloat: 1
  106774. +Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i)":
  106775. +double: 1
  106776. +float: 1
  106777. +idouble: 1
  106778. +ifloat: 1
  106779. +Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i)":
  106780. +double: 1
  106781. +idouble: 1
  106782. +Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i)":
  106783. +double: 1
  106784. +idouble: 1
  106785. +Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i)":
  106786. +double: 1
  106787. +idouble: 1
  106788. +Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i)":
  106789. +double: 1
  106790. +idouble: 1
  106791. +Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i)":
  106792. +double: 1
  106793. +idouble: 1
  106794. +Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i)":
  106795. +double: 1
  106796. +idouble: 1
  106797. +Test "Imaginary part of: casin (0x1.fp-129 + 0.5 i)":
  106798. +float: 1
  106799. +ifloat: 1
  106800. +Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i)":
  106801. +double: 1
  106802. +float: 1
  106803. +idouble: 1
  106804. +ifloat: 1
  106805. +Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i)":
  106806. +double: 1
  106807. +idouble: 1
  106808. +Test "Imaginary part of: casin (0x1.fp-129 - 0.5 i)":
  106809. +float: 1
  106810. +ifloat: 1
  106811. +Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i)":
  106812. +double: 1
  106813. +float: 1
  106814. +idouble: 1
  106815. +ifloat: 1
  106816. +Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i)":
  106817. +double: 1
  106818. +idouble: 1
  106819. +Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i)":
  106820. +double: 1
  106821. +float: 1
  106822. +idouble: 1
  106823. +ifloat: 1
  106824. +Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i)":
  106825. +double: 1
  106826. +float: 1
  106827. +idouble: 1
  106828. +ifloat: 1
  106829. +Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i)":
  106830. +double: 1
  106831. +idouble: 1
  106832. +Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
  106833. +double: 1
  106834. +idouble: 1
  106835. +Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
  106836. +float: 1
  106837. +ifloat: 1
  106838. +Test "Imaginary part of: casin (0x1p-105 - 0.5 i)":
  106839. +float: 1
  106840. +ifloat: 1
  106841. +Test "Imaginary part of: casin (0x1p-112 + 0.5 i)":
  106842. +float: 1
  106843. +ifloat: 1
  106844. +Test "Imaginary part of: casin (0x1p-112 - 0.5 i)":
  106845. +float: 1
  106846. +ifloat: 1
  106847. +Test "Real part of: casin (0x1p-23 + 0.5 i)":
  106848. +double: 1
  106849. +float: 1
  106850. +idouble: 1
  106851. +ifloat: 1
  106852. +Test "Imaginary part of: casin (0x1p-23 + 0.5 i)":
  106853. +float: 1
  106854. +ifloat: 1
  106855. +Test "Imaginary part of: casin (0x1p-23 + 0x0.ffffffp0 i)":
  106856. +double: 1
  106857. +idouble: 1
  106858. +Test "Real part of: casin (0x1p-23 + 0x1.000002p0 i)":
  106859. +double: 1
  106860. +float: 1
  106861. +idouble: 1
  106862. +ifloat: 1
  106863. +Test "Real part of: casin (0x1p-23 - 0.5 i)":
  106864. +double: 1
  106865. +float: 1
  106866. +idouble: 1
  106867. +ifloat: 1
  106868. +Test "Imaginary part of: casin (0x1p-23 - 0.5 i)":
  106869. +float: 1
  106870. +ifloat: 1
  106871. +Test "Imaginary part of: casin (0x1p-23 - 0x0.ffffffp0 i)":
  106872. +double: 1
  106873. +idouble: 1
  106874. +Test "Real part of: casin (0x1p-23 - 0x1.000002p0 i)":
  106875. +double: 1
  106876. +float: 1
  106877. +idouble: 1
  106878. +ifloat: 1
  106879. +Test "Imaginary part of: casin (0x1p-52 + 0.5 i)":
  106880. +float: 1
  106881. +ifloat: 1
  106882. +Test "Imaginary part of: casin (0x1p-52 - 0.5 i)":
  106883. +float: 1
  106884. +ifloat: 1
  106885. +Test "Imaginary part of: casin (0x1p-63 + 0.5 i)":
  106886. +float: 1
  106887. +ifloat: 1
  106888. +Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
  106889. +float: 1
  106890. +ifloat: 1
  106891. +Test "Real part of: casin (1.0 + 0.25 i)":
  106892. +double: 1
  106893. +idouble: 1
  106894. +Test "Real part of: casin (1.0 + 0.5 i)":
  106895. +float: 1
  106896. +ifloat: 1
  106897. +Test "Imaginary part of: casin (1.0 + 0.5 i)":
  106898. +float: 1
  106899. +ifloat: 1
  106900. +Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
  106901. +float: 1
  106902. +ifloat: 1
  106903. +Test "Real part of: casin (1.0 - 0.25 i)":
  106904. +double: 1
  106905. +idouble: 1
  106906. +Test "Real part of: casin (1.0 - 0.5 i)":
  106907. +float: 1
  106908. +ifloat: 1
  106909. +Test "Imaginary part of: casin (1.0 - 0.5 i)":
  106910. +float: 1
  106911. +ifloat: 1
  106912. +Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
  106913. +float: 1
  106914. +ifloat: 1
  106915. +
  106916. +# casinh
  106917. +Test "Imaginary part of: casinh (-0.25 + 1.0 i)":
  106918. +double: 1
  106919. +idouble: 1
  106920. +Test "Imaginary part of: casinh (-0.25 - 1.0 i)":
  106921. +double: 1
  106922. +idouble: 1
  106923. +Test "Real part of: casinh (-0.5 + +0 i)":
  106924. +float: 1
  106925. +ifloat: 1
  106926. +Test "Real part of: casinh (-0.5 + 0x1.fp-129 i)":
  106927. +float: 1
  106928. +ifloat: 1
  106929. +Test "Real part of: casinh (-0.5 + 0x1p-105 i)":
  106930. +float: 1
  106931. +ifloat: 1
  106932. +Test "Real part of: casinh (-0.5 + 0x1p-112 i)":
  106933. +float: 1
  106934. +ifloat: 1
  106935. +Test "Real part of: casinh (-0.5 + 0x1p-23 i)":
  106936. +float: 1
  106937. +ifloat: 1
  106938. +Test "Imaginary part of: casinh (-0.5 + 0x1p-23 i)":
  106939. +double: 1
  106940. +float: 1
  106941. +idouble: 1
  106942. +ifloat: 1
  106943. +Test "Real part of: casinh (-0.5 + 0x1p-52 i)":
  106944. +float: 1
  106945. +ifloat: 1
  106946. +Test "Real part of: casinh (-0.5 + 0x1p-63 i)":
  106947. +float: 1
  106948. +ifloat: 1
  106949. +Test "Real part of: casinh (-0.5 + 1.0 i)":
  106950. +float: 1
  106951. +ifloat: 1
  106952. +Test "Imaginary part of: casinh (-0.5 + 1.0 i)":
  106953. +float: 1
  106954. +ifloat: 1
  106955. +Test "Real part of: casinh (-0.5 - 0 i)":
  106956. +float: 1
  106957. +ifloat: 1
  106958. +Test "Real part of: casinh (-0.5 - 0x1.fp-129 i)":
  106959. +float: 1
  106960. +ifloat: 1
  106961. +Test "Real part of: casinh (-0.5 - 0x1p-105 i)":
  106962. +float: 1
  106963. +ifloat: 1
  106964. +Test "Real part of: casinh (-0.5 - 0x1p-112 i)":
  106965. +float: 1
  106966. +ifloat: 1
  106967. +Test "Real part of: casinh (-0.5 - 0x1p-23 i)":
  106968. +float: 1
  106969. +ifloat: 1
  106970. +Test "Imaginary part of: casinh (-0.5 - 0x1p-23 i)":
  106971. +double: 1
  106972. +float: 1
  106973. +idouble: 1
  106974. +ifloat: 1
  106975. +Test "Real part of: casinh (-0.5 - 0x1p-52 i)":
  106976. +float: 1
  106977. +ifloat: 1
  106978. +Test "Real part of: casinh (-0.5 - 0x1p-63 i)":
  106979. +float: 1
  106980. +ifloat: 1
  106981. +Test "Real part of: casinh (-0.5 - 1.0 i)":
  106982. +float: 1
  106983. +ifloat: 1
  106984. +Test "Imaginary part of: casinh (-0.5 - 1.0 i)":
  106985. +float: 1
  106986. +ifloat: 1
  106987. +Test "Real part of: casinh (-0x0.ffffffp0 + 0x1p-23 i)":
  106988. +double: 1
  106989. +idouble: 1
  106990. +Test "Real part of: casinh (-0x0.ffffffp0 - 0x1p-23 i)":
  106991. +double: 1
  106992. +idouble: 1
  106993. +Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
  106994. +double: 1
  106995. +float: 1
  106996. +idouble: 1
  106997. +ifloat: 1
  106998. +Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
  106999. +double: 1
  107000. +float: 1
  107001. +idouble: 1
  107002. +ifloat: 1
  107003. +Test "Real part of: casinh (-0x1.fp-10 + 1.0 i)":
  107004. +float: 1
  107005. +ifloat: 1
  107006. +Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
  107007. +float: 1
  107008. +ifloat: 1
  107009. +Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
  107010. +double: 1
  107011. +idouble: 1
  107012. +Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
  107013. +double: 1
  107014. +idouble: 1
  107015. +Test "Real part of: casinh (-0x1p-105 + 0.5 i)":
  107016. +double: 1
  107017. +idouble: 1
  107018. +Test "Real part of: casinh (-0x1p-105 - 0.5 i)":
  107019. +double: 1
  107020. +idouble: 1
  107021. +Test "Real part of: casinh (-0x1p-112 + 0.5 i)":
  107022. +double: 1
  107023. +idouble: 1
  107024. +Test "Real part of: casinh (-0x1p-112 - 0.5 i)":
  107025. +double: 1
  107026. +idouble: 1
  107027. +Test "Real part of: casinh (-0x1p-23 + 0.5 i)":
  107028. +double: 1
  107029. +idouble: 1
  107030. +Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
  107031. +float: 2
  107032. +ifloat: 2
  107033. +Test "Real part of: casinh (-0x1p-23 + 0x1.000002p0 i)":
  107034. +float: 1
  107035. +ifloat: 1
  107036. +Test "Real part of: casinh (-0x1p-23 - 0.5 i)":
  107037. +double: 1
  107038. +idouble: 1
  107039. +Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
  107040. +float: 2
  107041. +ifloat: 2
  107042. +Test "Real part of: casinh (-0x1p-23 - 0x1.000002p0 i)":
  107043. +float: 1
  107044. +ifloat: 1
  107045. +Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
  107046. +double: 1
  107047. +idouble: 1
  107048. +Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
  107049. +double: 1
  107050. +idouble: 1
  107051. +Test "Real part of: casinh (-1.0 + +0 i)":
  107052. +double: 1
  107053. +float: 1
  107054. +idouble: 1
  107055. +ifloat: 1
  107056. +Test "Real part of: casinh (-1.0 + 0.25 i)":
  107057. +float: 1
  107058. +ifloat: 1
  107059. +Test "Real part of: casinh (-1.0 + 0.5 i)":
  107060. +double: 1
  107061. +idouble: 1
  107062. +Test "Real part of: casinh (-1.0 + 0x1.fp-10 i)":
  107063. +double: 1
  107064. +idouble: 1
  107065. +Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10 i)":
  107066. +float: 1
  107067. +ifloat: 1
  107068. +Test "Real part of: casinh (-1.0 + 0x1.fp-100 i)":
  107069. +double: 1
  107070. +float: 1
  107071. +idouble: 1
  107072. +ifloat: 1
  107073. +Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i)":
  107074. +double: 1
  107075. +idouble: 1
  107076. +Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i)":
  107077. +double: 1
  107078. +idouble: 1
  107079. +Test "Real part of: casinh (-1.0 + 0x1.fp-129 i)":
  107080. +double: 1
  107081. +float: 1
  107082. +idouble: 1
  107083. +ifloat: 1
  107084. +Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
  107085. +double: 1
  107086. +float: 1
  107087. +idouble: 1
  107088. +ifloat: 1
  107089. +Test "Real part of: casinh (-1.0 - 0 i)":
  107090. +double: 1
  107091. +float: 1
  107092. +idouble: 1
  107093. +ifloat: 1
  107094. +Test "Real part of: casinh (-1.0 - 0.25 i)":
  107095. +float: 1
  107096. +ifloat: 1
  107097. +Test "Real part of: casinh (-1.0 - 0.5 i)":
  107098. +double: 1
  107099. +idouble: 1
  107100. +Test "Real part of: casinh (-1.0 - 0x1.fp-10 i)":
  107101. +double: 1
  107102. +idouble: 1
  107103. +Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10 i)":
  107104. +float: 1
  107105. +ifloat: 1
  107106. +Test "Real part of: casinh (-1.0 - 0x1.fp-100 i)":
  107107. +double: 1
  107108. +float: 1
  107109. +idouble: 1
  107110. +ifloat: 1
  107111. +Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i)":
  107112. +double: 1
  107113. +idouble: 1
  107114. +Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i)":
  107115. +double: 1
  107116. +idouble: 1
  107117. +Test "Real part of: casinh (-1.0 - 0x1.fp-129 i)":
  107118. +double: 1
  107119. +float: 1
  107120. +idouble: 1
  107121. +ifloat: 1
  107122. +Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
  107123. +double: 1
  107124. +float: 1
  107125. +idouble: 1
  107126. +ifloat: 1
  107127. +Test "Real part of: casinh (-1.5 + +0 i)":
  107128. +double: 1
  107129. +idouble: 1
  107130. +Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i)":
  107131. +double: 1
  107132. +idouble: 1
  107133. +Test "Real part of: casinh (-1.5 + 0x1.fp-129 i)":
  107134. +double: 1
  107135. +idouble: 1
  107136. +Test "Real part of: casinh (-1.5 - 0 i)":
  107137. +double: 1
  107138. +idouble: 1
  107139. +Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i)":
  107140. +double: 1
  107141. +idouble: 1
  107142. +Test "Real part of: casinh (-1.5 - 0x1.fp-129 i)":
  107143. +double: 1
  107144. +idouble: 1
  107145. +Test "Imaginary part of: casinh (0.25 + 1.0 i)":
  107146. +double: 1
  107147. +idouble: 1
  107148. +Test "Imaginary part of: casinh (0.25 - 1.0 i)":
  107149. +double: 1
  107150. +idouble: 1
  107151. +Test "Real part of: casinh (0.5 + +0 i)":
  107152. +float: 1
  107153. +ifloat: 1
  107154. +Test "Real part of: casinh (0.5 + 0x1.fp-129 i)":
  107155. +float: 1
  107156. +ifloat: 1
  107157. +Test "Real part of: casinh (0.5 + 0x1p-105 i)":
  107158. +float: 1
  107159. +ifloat: 1
  107160. +Test "Real part of: casinh (0.5 + 0x1p-112 i)":
  107161. +float: 1
  107162. +ifloat: 1
  107163. +Test "Real part of: casinh (0.5 + 0x1p-23 i)":
  107164. +float: 1
  107165. +ifloat: 1
  107166. +Test "Imaginary part of: casinh (0.5 + 0x1p-23 i)":
  107167. +double: 1
  107168. +float: 1
  107169. +idouble: 1
  107170. +ifloat: 1
  107171. +Test "Real part of: casinh (0.5 + 0x1p-52 i)":
  107172. +float: 1
  107173. +ifloat: 1
  107174. +Test "Real part of: casinh (0.5 + 0x1p-63 i)":
  107175. +float: 1
  107176. +ifloat: 1
  107177. +Test "Real part of: casinh (0.5 + 1.0 i)":
  107178. +float: 1
  107179. +ifloat: 1
  107180. +Test "Imaginary part of: casinh (0.5 + 1.0 i)":
  107181. +float: 1
  107182. +ifloat: 1
  107183. +Test "Real part of: casinh (0.5 - 0 i)":
  107184. +float: 1
  107185. +ifloat: 1
  107186. +Test "Real part of: casinh (0.5 - 0x1.fp-129 i)":
  107187. +float: 1
  107188. +ifloat: 1
  107189. +Test "Real part of: casinh (0.5 - 0x1p-105 i)":
  107190. +float: 1
  107191. +ifloat: 1
  107192. +Test "Real part of: casinh (0.5 - 0x1p-112 i)":
  107193. +float: 1
  107194. +ifloat: 1
  107195. +Test "Real part of: casinh (0.5 - 0x1p-23 i)":
  107196. +float: 1
  107197. +ifloat: 1
  107198. +Test "Imaginary part of: casinh (0.5 - 0x1p-23 i)":
  107199. +double: 1
  107200. +float: 1
  107201. +idouble: 1
  107202. +ifloat: 1
  107203. +Test "Real part of: casinh (0.5 - 0x1p-52 i)":
  107204. +float: 1
  107205. +ifloat: 1
  107206. +Test "Real part of: casinh (0.5 - 0x1p-63 i)":
  107207. +float: 1
  107208. +ifloat: 1
  107209. +Test "Real part of: casinh (0.5 - 1.0 i)":
  107210. +float: 1
  107211. +ifloat: 1
  107212. +Test "Imaginary part of: casinh (0.5 - 1.0 i)":
  107213. +float: 1
  107214. +ifloat: 1
  107215. +Test "Real part of: casinh (0.75 + 1.25 i)":
  107216. +float: 1
  107217. +ifloat: 1
  107218. +Test "Imaginary part of: casinh (0.75 + 1.25 i)":
  107219. +double: 1
  107220. +float: 1
  107221. +idouble: 1
  107222. +ifloat: 1
  107223. +Test "Real part of: casinh (0x0.ffffffp0 + 0x1p-23 i)":
  107224. +double: 1
  107225. +idouble: 1
  107226. +Test "Real part of: casinh (0x0.ffffffp0 - 0x1p-23 i)":
  107227. +double: 1
  107228. +idouble: 1
  107229. +Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
  107230. +double: 1
  107231. +float: 1
  107232. +idouble: 1
  107233. +ifloat: 1
  107234. +Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
  107235. +double: 1
  107236. +float: 1
  107237. +idouble: 1
  107238. +ifloat: 1
  107239. +Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
  107240. +float: 1
  107241. +ifloat: 1
  107242. +Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
  107243. +float: 1
  107244. +ifloat: 1
  107245. +Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
  107246. +double: 1
  107247. +idouble: 1
  107248. +Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
  107249. +double: 1
  107250. +idouble: 1
  107251. +Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i)":
  107252. +double: 1
  107253. +idouble: 1
  107254. +Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
  107255. +double: 1
  107256. +idouble: 1
  107257. +Test "Real part of: casinh (0x1p-105 + 0.5 i)":
  107258. +double: 1
  107259. +idouble: 1
  107260. +Test "Real part of: casinh (0x1p-105 - 0.5 i)":
  107261. +double: 1
  107262. +idouble: 1
  107263. +Test "Real part of: casinh (0x1p-112 + 0.5 i)":
  107264. +double: 1
  107265. +idouble: 1
  107266. +Test "Real part of: casinh (0x1p-112 - 0.5 i)":
  107267. +double: 1
  107268. +idouble: 1
  107269. +Test "Real part of: casinh (0x1p-23 + 0.5 i)":
  107270. +double: 1
  107271. +idouble: 1
  107272. +Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
  107273. +float: 2
  107274. +ifloat: 2
  107275. +Test "Real part of: casinh (0x1p-23 + 0x1.000002p0 i)":
  107276. +float: 1
  107277. +ifloat: 1
  107278. +Test "Real part of: casinh (0x1p-23 - 0.5 i)":
  107279. +double: 1
  107280. +idouble: 1
  107281. +Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
  107282. +float: 2
  107283. +ifloat: 2
  107284. +Test "Real part of: casinh (0x1p-23 - 0x1.000002p0 i)":
  107285. +float: 1
  107286. +ifloat: 1
  107287. +Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
  107288. +double: 1
  107289. +idouble: 1
  107290. +Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
  107291. +double: 1
  107292. +idouble: 1
  107293. +Test "Real part of: casinh (1.0 + +0 i)":
  107294. +double: 1
  107295. +float: 1
  107296. +idouble: 1
  107297. +ifloat: 1
  107298. +Test "Real part of: casinh (1.0 + 0.25 i)":
  107299. +float: 1
  107300. +ifloat: 1
  107301. +Test "Real part of: casinh (1.0 + 0.5 i)":
  107302. +double: 1
  107303. +idouble: 1
  107304. +Test "Real part of: casinh (1.0 + 0x1.fp-10 i)":
  107305. +double: 1
  107306. +idouble: 1
  107307. +Test "Imaginary part of: casinh (1.0 + 0x1.fp-10 i)":
  107308. +float: 1
  107309. +ifloat: 1
  107310. +Test "Real part of: casinh (1.0 + 0x1.fp-100 i)":
  107311. +double: 1
  107312. +float: 1
  107313. +idouble: 1
  107314. +ifloat: 1
  107315. +Test "Real part of: casinh (1.0 + 0x1.fp-1000 i)":
  107316. +double: 1
  107317. +idouble: 1
  107318. +Test "Real part of: casinh (1.0 + 0x1.fp-1025 i)":
  107319. +double: 1
  107320. +idouble: 1
  107321. +Test "Real part of: casinh (1.0 + 0x1.fp-129 i)":
  107322. +double: 1
  107323. +float: 1
  107324. +idouble: 1
  107325. +ifloat: 1
  107326. +Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
  107327. +double: 1
  107328. +float: 1
  107329. +idouble: 1
  107330. +ifloat: 1
  107331. +Test "Real part of: casinh (1.0 - 0 i)":
  107332. +double: 1
  107333. +float: 1
  107334. +idouble: 1
  107335. +ifloat: 1
  107336. +Test "Real part of: casinh (1.0 - 0.25 i)":
  107337. +float: 1
  107338. +ifloat: 1
  107339. +Test "Real part of: casinh (1.0 - 0.5 i)":
  107340. +double: 1
  107341. +idouble: 1
  107342. +Test "Real part of: casinh (1.0 - 0x1.fp-10 i)":
  107343. +double: 1
  107344. +idouble: 1
  107345. +Test "Imaginary part of: casinh (1.0 - 0x1.fp-10 i)":
  107346. +float: 1
  107347. +ifloat: 1
  107348. +Test "Real part of: casinh (1.0 - 0x1.fp-100 i)":
  107349. +double: 1
  107350. +float: 1
  107351. +idouble: 1
  107352. +ifloat: 1
  107353. +Test "Real part of: casinh (1.0 - 0x1.fp-1000 i)":
  107354. +double: 1
  107355. +idouble: 1
  107356. +Test "Real part of: casinh (1.0 - 0x1.fp-1025 i)":
  107357. +double: 1
  107358. +idouble: 1
  107359. +Test "Real part of: casinh (1.0 - 0x1.fp-129 i)":
  107360. +double: 1
  107361. +float: 1
  107362. +idouble: 1
  107363. +ifloat: 1
  107364. +Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
  107365. +double: 1
  107366. +float: 1
  107367. +idouble: 1
  107368. +ifloat: 1
  107369. +Test "Real part of: casinh (1.5 + +0 i)":
  107370. +double: 1
  107371. +idouble: 1
  107372. +Test "Real part of: casinh (1.5 + 0x1.fp-1025 i)":
  107373. +double: 1
  107374. +idouble: 1
  107375. +Test "Real part of: casinh (1.5 + 0x1.fp-129 i)":
  107376. +double: 1
  107377. +idouble: 1
  107378. +Test "Real part of: casinh (1.5 - 0 i)":
  107379. +double: 1
  107380. +idouble: 1
  107381. +Test "Real part of: casinh (1.5 - 0x1.fp-1025 i)":
  107382. +double: 1
  107383. +idouble: 1
  107384. +Test "Real part of: casinh (1.5 - 0x1.fp-129 i)":
  107385. +double: 1
  107386. +idouble: 1
  107387. +
  107388. +# catan
  107389. +Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
  107390. +double: 1
  107391. +idouble: 1
  107392. +Test "Imaginary part of: catan (-0x0.ffffffp0 + 0x1p-13 i)":
  107393. +double: 1
  107394. +float: 1
  107395. +idouble: 1
  107396. +ifloat: 1
  107397. +Test "Imaginary part of: catan (-0x1.0000000000001p0 - 0x1p-27 i)":
  107398. +double: 1
  107399. +idouble: 1
  107400. +Test "Real part of: catan (-0x1.000002p0 + 0x1p-126 i)":
  107401. +float: 1
  107402. +ifloat: 1
  107403. +Test "Real part of: catan (-0x1.000002p0 + 0x1p-13 i)":
  107404. +float: 1
  107405. +ifloat: 1
  107406. +Test "Real part of: catan (-0x1.000002p0 - 0x1p-126 i)":
  107407. +float: 1
  107408. +ifloat: 1
  107409. +Test "Real part of: catan (-0x1.000002p0 - 0x1p-13 i)":
  107410. +float: 1
  107411. +ifloat: 1
  107412. +Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i)":
  107413. +double: 1
  107414. +idouble: 1
  107415. +Test "Imaginary part of: catan (-0x1.fp1023 + 0x1.fp1023 i)":
  107416. +double: 1
  107417. +idouble: 1
  107418. +Test "Imaginary part of: catan (-0x1.fp1023 - 0x1.fp1023 i)":
  107419. +double: 1
  107420. +idouble: 1
  107421. +Test "Imaginary part of: catan (-0x1.fp127 + 0x1.fp127 i)":
  107422. +double: 1
  107423. +idouble: 1
  107424. +Test "Imaginary part of: catan (-0x1.fp127 - 0x1.fp127 i)":
  107425. +double: 1
  107426. +idouble: 1
  107427. +Test "Imaginary part of: catan (-0x1p-1020 + 1.0 i)":
  107428. +double: 1
  107429. +idouble: 1
  107430. +Test "Imaginary part of: catan (-0x1p-1020 - 1.0 i)":
  107431. +double: 1
  107432. +idouble: 1
  107433. +Test "Real part of: catan (-0x1p-13 + 0x1.000002p0 i)":
  107434. +float: 1
  107435. +ifloat: 1
  107436. +Test "Real part of: catan (-0x1p-13 + 1.0 i)":
  107437. +float: 1
  107438. +ifloat: 1
  107439. +Test "Real part of: catan (-0x1p-13 - 0x1.000002p0 i)":
  107440. +float: 1
  107441. +ifloat: 1
  107442. +Test "Imaginary part of: catan (-0x1p-13 - 0x1.000002p0 i)":
  107443. +float: 1
  107444. +ifloat: 1
  107445. +Test "Real part of: catan (-0x1p-13 - 1.0 i)":
  107446. +float: 1
  107447. +ifloat: 1
  107448. +Test "Imaginary part of: catan (-0x1p-54 + 1.0 i)":
  107449. +float: 1
  107450. +ifloat: 1
  107451. +Test "Imaginary part of: catan (-0x1p-54 - 1.0 i)":
  107452. +float: 1
  107453. +ifloat: 1
  107454. +Test "Imaginary part of: catan (-0x1p-57 + 1.0 i)":
  107455. +float: 1
  107456. +ifloat: 1
  107457. +Test "Imaginary part of: catan (-0x1p-57 - 1.0 i)":
  107458. +float: 1
  107459. +ifloat: 1
  107460. +Test "Real part of: catan (-1.0 + 0x1p-13 i)":
  107461. +float: 1
  107462. +ifloat: 1
  107463. +Test "Real part of: catan (-1.0 - 0x1p-13 i)":
  107464. +float: 1
  107465. +ifloat: 1
  107466. +Test "Imaginary part of: catan (-2 - 3 i)":
  107467. +double: 1
  107468. +float: 1
  107469. +idouble: 1
  107470. +ifloat: 1
  107471. +Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i)":
  107472. +double: 1
  107473. +idouble: 1
  107474. +Test "Imaginary part of: catan (0x0.ffffffp0 + 0x1p-13 i)":
  107475. +double: 1
  107476. +float: 1
  107477. +idouble: 1
  107478. +ifloat: 1
  107479. +Test "Imaginary part of: catan (0x1.0000000000001p0 - 0x1p-27 i)":
  107480. +double: 1
  107481. +idouble: 1
  107482. +Test "Real part of: catan (0x1.000002p0 + 0x1p-126 i)":
  107483. +float: 1
  107484. +ifloat: 1
  107485. +Test "Real part of: catan (0x1.000002p0 + 0x1p-13 i)":
  107486. +float: 1
  107487. +ifloat: 1
  107488. +Test "Real part of: catan (0x1.000002p0 - 0x1p-126 i)":
  107489. +float: 1
  107490. +ifloat: 1
  107491. +Test "Real part of: catan (0x1.000002p0 - 0x1p-13 i)":
  107492. +float: 1
  107493. +ifloat: 1
  107494. +Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i)":
  107495. +double: 1
  107496. +idouble: 1
  107497. +Test "Imaginary part of: catan (0x1.fp1023 + 0x1.fp1023 i)":
  107498. +double: 1
  107499. +idouble: 1
  107500. +Test "Imaginary part of: catan (0x1.fp1023 - 0x1.fp1023 i)":
  107501. +double: 1
  107502. +idouble: 1
  107503. +Test "Imaginary part of: catan (0x1.fp127 + 0x1.fp127 i)":
  107504. +double: 1
  107505. +idouble: 1
  107506. +Test "Imaginary part of: catan (0x1.fp127 - 0x1.fp127 i)":
  107507. +double: 1
  107508. +idouble: 1
  107509. +Test "Imaginary part of: catan (0x1p-1020 + 1.0 i)":
  107510. +double: 1
  107511. +idouble: 1
  107512. +Test "Imaginary part of: catan (0x1p-1020 - 1.0 i)":
  107513. +double: 1
  107514. +idouble: 1
  107515. +Test "Real part of: catan (0x1p-13 + 0x1.000002p0 i)":
  107516. +float: 1
  107517. +ifloat: 1
  107518. +Test "Real part of: catan (0x1p-13 + 1.0 i)":
  107519. +float: 1
  107520. +ifloat: 1
  107521. +Test "Real part of: catan (0x1p-13 - 0x1.000002p0 i)":
  107522. +float: 1
  107523. +ifloat: 1
  107524. +Test "Imaginary part of: catan (0x1p-13 - 0x1.000002p0 i)":
  107525. +float: 1
  107526. +ifloat: 1
  107527. +Test "Real part of: catan (0x1p-13 - 1.0 i)":
  107528. +float: 1
  107529. +ifloat: 1
  107530. +Test "Imaginary part of: catan (0x1p-54 + 1.0 i)":
  107531. +float: 1
  107532. +ifloat: 1
  107533. +Test "Imaginary part of: catan (0x1p-54 - 1.0 i)":
  107534. +float: 1
  107535. +ifloat: 1
  107536. +Test "Imaginary part of: catan (0x1p-57 + 1.0 i)":
  107537. +float: 1
  107538. +ifloat: 1
  107539. +Test "Imaginary part of: catan (0x1p-57 - 1.0 i)":
  107540. +float: 1
  107541. +ifloat: 1
  107542. +Test "Real part of: catan (1.0 + 0x1p-13 i)":
  107543. +float: 1
  107544. +ifloat: 1
  107545. +Test "Real part of: catan (1.0 - 0x1p-13 i)":
  107546. +float: 1
  107547. +ifloat: 1
  107548. +
  107549. +# catanh
  107550. +Test "Real part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
  107551. +float: 1
  107552. +ifloat: 1
  107553. +Test "Imaginary part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
  107554. +float: 1
  107555. +ifloat: 1
  107556. +Test "Real part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
  107557. +float: 1
  107558. +ifloat: 1
  107559. +Test "Imaginary part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
  107560. +float: 1
  107561. +ifloat: 1
  107562. +Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i)":
  107563. +double: 1
  107564. +idouble: 1
  107565. +Test "Real part of: catanh (-0x1.fp1023 - 0x1.fp1023 i)":
  107566. +double: 1
  107567. +idouble: 1
  107568. +Test "Real part of: catanh (-0x1.fp127 + 0x1.fp127 i)":
  107569. +double: 1
  107570. +idouble: 1
  107571. +Test "Real part of: catanh (-0x1.fp127 - 0x1.fp127 i)":
  107572. +double: 1
  107573. +idouble: 1
  107574. +Test "Imaginary part of: catanh (-0x1p-126 + 0x1.000002p0 i)":
  107575. +float: 1
  107576. +ifloat: 1
  107577. +Test "Imaginary part of: catanh (-0x1p-126 - 0x1.000002p0 i)":
  107578. +float: 1
  107579. +ifloat: 1
  107580. +Test "Real part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
  107581. +double: 1
  107582. +idouble: 1
  107583. +Test "Imaginary part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
  107584. +float: 1
  107585. +ifloat: 1
  107586. +Test "Imaginary part of: catanh (-0x1p-13 + 1.0 i)":
  107587. +float: 1
  107588. +ifloat: 1
  107589. +Test "Real part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
  107590. +double: 1
  107591. +idouble: 1
  107592. +Test "Imaginary part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
  107593. +float: 1
  107594. +ifloat: 1
  107595. +Test "Imaginary part of: catanh (-0x1p-13 - 1.0 i)":
  107596. +float: 1
  107597. +ifloat: 1
  107598. +Test "Real part of: catanh (-0x1p-27 + 0x1.0000000000001p0 i)":
  107599. +double: 1
  107600. +idouble: 1
  107601. +Test "Real part of: catanh (-0x1p-27 - 0x1.0000000000001p0 i)":
  107602. +double: 1
  107603. +idouble: 1
  107604. +Test "Real part of: catanh (-1.0 + 0x1p-1020 i)":
  107605. +double: 1
  107606. +idouble: 1
  107607. +Test "Imaginary part of: catanh (-1.0 + 0x1p-13 i)":
  107608. +float: 1
  107609. +ifloat: 1
  107610. +Test "Real part of: catanh (-1.0 + 0x1p-54 i)":
  107611. +float: 1
  107612. +ifloat: 1
  107613. +Test "Real part of: catanh (-1.0 + 0x1p-57 i)":
  107614. +float: 1
  107615. +ifloat: 1
  107616. +Test "Real part of: catanh (-1.0 - 0x1p-1020 i)":
  107617. +double: 1
  107618. +idouble: 1
  107619. +Test "Imaginary part of: catanh (-1.0 - 0x1p-13 i)":
  107620. +float: 1
  107621. +ifloat: 1
  107622. +Test "Real part of: catanh (-1.0 - 0x1p-54 i)":
  107623. +float: 1
  107624. +ifloat: 1
  107625. +Test "Real part of: catanh (-1.0 - 0x1p-57 i)":
  107626. +float: 1
  107627. +ifloat: 1
  107628. +Test "Real part of: catanh (-2 - 3 i)":
  107629. +double: 1
  107630. +idouble: 1
  107631. +Test "Imaginary part of: catanh (0x1.000002p0 + 0x1p-13 i)":
  107632. +float: 1
  107633. +ifloat: 1
  107634. +Test "Imaginary part of: catanh (0x1.000002p0 - 0x1p-13 i)":
  107635. +float: 1
  107636. +ifloat: 1
  107637. +Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i)":
  107638. +double: 1
  107639. +idouble: 1
  107640. +Test "Real part of: catanh (0x1.fp1023 - 0x1.fp1023 i)":
  107641. +double: 1
  107642. +idouble: 1
  107643. +Test "Real part of: catanh (0x1.fp127 + 0x1.fp127 i)":
  107644. +double: 1
  107645. +idouble: 1
  107646. +Test "Real part of: catanh (0x1.fp127 - 0x1.fp127 i)":
  107647. +double: 1
  107648. +idouble: 1
  107649. +Test "Imaginary part of: catanh (0x1p-126 + 0x1.000002p0 i)":
  107650. +float: 1
  107651. +ifloat: 1
  107652. +Test "Imaginary part of: catanh (0x1p-126 - 0x1.000002p0 i)":
  107653. +float: 1
  107654. +ifloat: 1
  107655. +Test "Real part of: catanh (0x1p-13 + 0x0.ffffffp0 i)":
  107656. +double: 1
  107657. +float: 1
  107658. +idouble: 1
  107659. +ifloat: 1
  107660. +Test "Imaginary part of: catanh (0x1p-13 + 0x1.000002p0 i)":
  107661. +float: 1
  107662. +ifloat: 1
  107663. +Test "Imaginary part of: catanh (0x1p-13 + 1.0 i)":
  107664. +float: 1
  107665. +ifloat: 1
  107666. +Test "Real part of: catanh (0x1p-13 - 0x0.ffffffp0 i)":
  107667. +double: 1
  107668. +float: 1
  107669. +idouble: 1
  107670. +ifloat: 1
  107671. +Test "Imaginary part of: catanh (0x1p-13 - 0x1.000002p0 i)":
  107672. +float: 1
  107673. +ifloat: 1
  107674. +Test "Imaginary part of: catanh (0x1p-13 - 1.0 i)":
  107675. +float: 1
  107676. +ifloat: 1
  107677. +Test "Real part of: catanh (0x1p-27 + 0x0.fffffffffffff8p0 i)":
  107678. +double: 1
  107679. +idouble: 1
  107680. +Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i)":
  107681. +double: 1
  107682. +idouble: 1
  107683. +Test "Real part of: catanh (1.0 + 0x1p-1020 i)":
  107684. +double: 1
  107685. +idouble: 1
  107686. +Test "Imaginary part of: catanh (1.0 + 0x1p-13 i)":
  107687. +float: 1
  107688. +ifloat: 1
  107689. +Test "Real part of: catanh (1.0 + 0x1p-54 i)":
  107690. +float: 1
  107691. +ifloat: 1
  107692. +Test "Real part of: catanh (1.0 + 0x1p-57 i)":
  107693. +float: 1
  107694. +ifloat: 1
  107695. +Test "Real part of: catanh (1.0 - 0x1p-1020 i)":
  107696. +double: 1
  107697. +idouble: 1
  107698. +Test "Imaginary part of: catanh (1.0 - 0x1p-13 i)":
  107699. +float: 1
  107700. +ifloat: 1
  107701. +Test "Real part of: catanh (1.0 - 0x1p-54 i)":
  107702. +float: 1
  107703. +ifloat: 1
  107704. +Test "Real part of: catanh (1.0 - 0x1p-57 i)":
  107705. +float: 1
  107706. +ifloat: 1
  107707. +
  107708. +# cbrt
  107709. +Test "cbrt (-27.0)":
  107710. +double: 1
  107711. +idouble: 1
  107712. +Test "cbrt (0.75)":
  107713. +double: 1
  107714. +idouble: 1
  107715. +Test "cbrt (0.9921875)":
  107716. +double: 1
  107717. +idouble: 1
  107718. +
  107719. +# ccos
  107720. +Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
  107721. +double: 1
  107722. +idouble: 1
  107723. +Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
  107724. +float: 1
  107725. +ifloat: 1
  107726. +Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
  107727. +double: 1
  107728. +idouble: 1
  107729. +Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
  107730. +float: 1
  107731. +ifloat: 1
  107732. +Test "Imaginary part of: ccos (-2 - 3 i)":
  107733. +float: 1
  107734. +ifloat: 1
  107735. +Test "Real part of: ccos (0.75 + 1.25 i)":
  107736. +double: 1
  107737. +float: 1
  107738. +idouble: 1
  107739. +ifloat: 1
  107740. +Test "Imaginary part of: ccos (0.75 + 1.25 i)":
  107741. +float: 1
  107742. +ifloat: 1
  107743. +Test "Imaginary part of: ccos (0.75 + 710.5 i)":
  107744. +double: 1
  107745. +idouble: 1
  107746. +Test "Imaginary part of: ccos (0.75 + 89.5 i)":
  107747. +float: 1
  107748. +ifloat: 1
  107749. +Test "Imaginary part of: ccos (0.75 - 710.5 i)":
  107750. +double: 1
  107751. +idouble: 1
  107752. +Test "Imaginary part of: ccos (0.75 - 89.5 i)":
  107753. +float: 1
  107754. +ifloat: 1
  107755. +Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
  107756. +double: 1
  107757. +idouble: 1
  107758. +
  107759. +# ccosh
  107760. +Test "Real part of: ccosh (-2 - 3 i)":
  107761. +float: 1
  107762. +ifloat: 1
  107763. +Test "Imaginary part of: ccosh (-2 - 3 i)":
  107764. +float: 1
  107765. +ifloat: 1
  107766. +Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
  107767. +double: 1
  107768. +idouble: 1
  107769. +Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
  107770. +double: 1
  107771. +idouble: 1
  107772. +Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
  107773. +float: 1
  107774. +ifloat: 1
  107775. +Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
  107776. +float: 1
  107777. +ifloat: 1
  107778. +Test "Real part of: ccosh (0.75 + 1.25 i)":
  107779. +double: 1
  107780. +float: 1
  107781. +idouble: 1
  107782. +ifloat: 1
  107783. +Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
  107784. +float: 1
  107785. +ifloat: 1
  107786. +Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
  107787. +double: 1
  107788. +idouble: 1
  107789. +Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
  107790. +double: 1
  107791. +idouble: 1
  107792. +Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
  107793. +double: 1
  107794. +idouble: 1
  107795. +Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
  107796. +float: 1
  107797. +ifloat: 1
  107798. +Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
  107799. +float: 1
  107800. +ifloat: 1
  107801. +
  107802. +# cexp
  107803. +Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
  107804. +float: 1
  107805. +ifloat: 1
  107806. +Test "Imaginary part of: cexp (-95 + 0.75 i)":
  107807. +double: 1
  107808. +idouble: 1
  107809. +Test "Real part of: cexp (0.75 + 1.25 i)":
  107810. +float: 1
  107811. +ifloat: 1
  107812. +Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
  107813. +double: 1
  107814. +idouble: 1
  107815. +Test "Real part of: cexp (50 + 0x1p127 i)":
  107816. +double: 2
  107817. +float: 1
  107818. +idouble: 2
  107819. +ifloat: 1
  107820. +Test "Imaginary part of: cexp (50 + 0x1p127 i)":
  107821. +double: 1
  107822. +idouble: 1
  107823. +Test "Real part of: cexp (500 + 0x1p1023 i)":
  107824. +double: 1
  107825. +idouble: 1
  107826. +Test "Real part of: cexp (709.8125 + 0.75 i)":
  107827. +double: 1
  107828. +idouble: 1
  107829. +Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
  107830. +double: 1
  107831. +idouble: 1
  107832. +Test "Real part of: cexp (88.75 + 0.75 i)":
  107833. +float: 1
  107834. +ifloat: 1
  107835. +Test "Imaginary part of: cexp (88.75 + 0.75 i)":
  107836. +float: 2
  107837. +ifloat: 2
  107838. +
  107839. +# clog
  107840. +Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  107841. +double: 1
  107842. +idouble: 1
  107843. +Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  107844. +double: 1
  107845. +idouble: 1
  107846. +Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
  107847. +float: 1
  107848. +ifloat: 1
  107849. +Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
  107850. +float: 1
  107851. +ifloat: 1
  107852. +Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
  107853. +float: 1
  107854. +ifloat: 1
  107855. +Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
  107856. +float: 1
  107857. +ifloat: 1
  107858. +Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
  107859. +float: 1
  107860. +ifloat: 1
  107861. +Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
  107862. +float: 1
  107863. +ifloat: 1
  107864. +Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
  107865. +float: 1
  107866. +ifloat: 1
  107867. +Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
  107868. +float: 1
  107869. +ifloat: 1
  107870. +Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
  107871. +float: 1
  107872. +ifloat: 1
  107873. +Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
  107874. +float: 1
  107875. +ifloat: 1
  107876. +Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
  107877. +float: 1
  107878. +ifloat: 1
  107879. +Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
  107880. +double: 1
  107881. +idouble: 1
  107882. +Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
  107883. +float: 1
  107884. +ifloat: 1
  107885. +Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
  107886. +float: 1
  107887. +ifloat: 1
  107888. +Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
  107889. +float: 1
  107890. +ifloat: 1
  107891. +Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
  107892. +float: 1
  107893. +ifloat: 1
  107894. +Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
  107895. +float: 1
  107896. +ifloat: 1
  107897. +
  107898. +# clog10
  107899. +Test "Imaginary part of: clog10 (-0 + inf i)":
  107900. +double: 1
  107901. +float: 1
  107902. +idouble: 1
  107903. +ifloat: 1
  107904. +Test "Imaginary part of: clog10 (-0 - inf i)":
  107905. +double: 1
  107906. +float: 1
  107907. +idouble: 1
  107908. +ifloat: 1
  107909. +Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  107910. +double: 2
  107911. +idouble: 2
  107912. +Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  107913. +double: 1
  107914. +idouble: 1
  107915. +Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  107916. +double: 2
  107917. +idouble: 2
  107918. +Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  107919. +double: 1
  107920. +idouble: 1
  107921. +Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
  107922. +double: 1
  107923. +idouble: 1
  107924. +Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
  107925. +double: 1
  107926. +idouble: 1
  107927. +Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
  107928. +double: 1
  107929. +float: 1
  107930. +idouble: 1
  107931. +ifloat: 1
  107932. +Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
  107933. +double: 1
  107934. +float: 1
  107935. +idouble: 1
  107936. +ifloat: 1
  107937. +Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
  107938. +double: 1
  107939. +idouble: 1
  107940. +Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
  107941. +double: 1
  107942. +idouble: 1
  107943. +Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
  107944. +double: 1
  107945. +idouble: 1
  107946. +Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
  107947. +double: 1
  107948. +idouble: 1
  107949. +Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
  107950. +double: 1
  107951. +idouble: 1
  107952. +Test "Imaginary part of: clog10 (-2 - 3 i)":
  107953. +double: 1
  107954. +idouble: 1
  107955. +Test "Imaginary part of: clog10 (-3 + inf i)":
  107956. +double: 1
  107957. +float: 1
  107958. +idouble: 1
  107959. +ifloat: 1
  107960. +Test "Imaginary part of: clog10 (-3 - inf i)":
  107961. +double: 1
  107962. +float: 1
  107963. +idouble: 1
  107964. +ifloat: 1
  107965. +Test "Imaginary part of: clog10 (-inf + 0 i)":
  107966. +double: 1
  107967. +float: 1
  107968. +idouble: 1
  107969. +ifloat: 1
  107970. +Test "Imaginary part of: clog10 (-inf + 1 i)":
  107971. +double: 1
  107972. +float: 1
  107973. +idouble: 1
  107974. +ifloat: 1
  107975. +Test "Imaginary part of: clog10 (-inf + inf i)":
  107976. +double: 1
  107977. +idouble: 1
  107978. +Test "Imaginary part of: clog10 (-inf - 0 i)":
  107979. +double: 1
  107980. +float: 1
  107981. +idouble: 1
  107982. +ifloat: 1
  107983. +Test "Imaginary part of: clog10 (-inf - 1 i)":
  107984. +double: 1
  107985. +float: 1
  107986. +idouble: 1
  107987. +ifloat: 1
  107988. +Test "Imaginary part of: clog10 (0 + inf i)":
  107989. +double: 1
  107990. +float: 1
  107991. +idouble: 1
  107992. +ifloat: 1
  107993. +Test "Imaginary part of: clog10 (0 - inf i)":
  107994. +double: 1
  107995. +float: 1
  107996. +idouble: 1
  107997. +ifloat: 1
  107998. +Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
  107999. +double: 1
  108000. +idouble: 1
  108001. +Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
  108002. +double: 1
  108003. +float: 2
  108004. +idouble: 1
  108005. +ifloat: 2
  108006. +Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
  108007. +float: 1
  108008. +ifloat: 1
  108009. +Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
  108010. +double: 1
  108011. +idouble: 1
  108012. +Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
  108013. +float: 1
  108014. +ifloat: 1
  108015. +Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
  108016. +float: 1
  108017. +ifloat: 1
  108018. +Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
  108019. +float: 1
  108020. +ifloat: 1
  108021. +Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
  108022. +double: 1
  108023. +float: 1
  108024. +idouble: 1
  108025. +ifloat: 1
  108026. +Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
  108027. +double: 1
  108028. +float: 1
  108029. +idouble: 1
  108030. +ifloat: 1
  108031. +Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i)":
  108032. +float: 1
  108033. +ifloat: 1
  108034. +Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  108035. +double: 1
  108036. +idouble: 1
  108037. +Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
  108038. +double: 1
  108039. +idouble: 1
  108040. +Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
  108041. +double: 1
  108042. +idouble: 1
  108043. +Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
  108044. +double: 1
  108045. +idouble: 1
  108046. +Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
  108047. +double: 1
  108048. +idouble: 1
  108049. +Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
  108050. +double: 1
  108051. +idouble: 1
  108052. +Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i)":
  108053. +double: 1
  108054. +idouble: 1
  108055. +Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i)":
  108056. +double: 1
  108057. +idouble: 1
  108058. +Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
  108059. +double: 1
  108060. +idouble: 1
  108061. +Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
  108062. +double: 1
  108063. +idouble: 1
  108064. +Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i)":
  108065. +double: 1
  108066. +idouble: 1
  108067. +Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
  108068. +double: 1
  108069. +float: 1
  108070. +idouble: 1
  108071. +ifloat: 1
  108072. +Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
  108073. +double: 1
  108074. +float: 1
  108075. +idouble: 1
  108076. +ifloat: 1
  108077. +Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
  108078. +double: 1
  108079. +float: 1
  108080. +idouble: 1
  108081. +ifloat: 1
  108082. +Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
  108083. +double: 1
  108084. +float: 1
  108085. +idouble: 1
  108086. +ifloat: 1
  108087. +Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
  108088. +double: 1
  108089. +idouble: 1
  108090. +Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
  108091. +double: 1
  108092. +idouble: 1
  108093. +Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
  108094. +double: 1
  108095. +idouble: 1
  108096. +Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
  108097. +double: 1
  108098. +float: 1
  108099. +idouble: 1
  108100. +ifloat: 1
  108101. +Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
  108102. +double: 1
  108103. +float: 1
  108104. +idouble: 1
  108105. +ifloat: 1
  108106. +Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
  108107. +double: 1
  108108. +float: 1
  108109. +idouble: 1
  108110. +ifloat: 1
  108111. +Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
  108112. +double: 1
  108113. +float: 1
  108114. +idouble: 1
  108115. +ifloat: 1
  108116. +Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
  108117. +float: 1
  108118. +ifloat: 1
  108119. +Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
  108120. +double: 1
  108121. +idouble: 1
  108122. +Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
  108123. +float: 1
  108124. +ifloat: 1
  108125. +Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
  108126. +double: 1
  108127. +idouble: 1
  108128. +Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
  108129. +double: 1
  108130. +idouble: 1
  108131. +Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
  108132. +double: 1
  108133. +idouble: 1
  108134. +Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
  108135. +double: 1
  108136. +idouble: 1
  108137. +Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
  108138. +double: 1
  108139. +idouble: 1
  108140. +Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
  108141. +double: 1
  108142. +idouble: 1
  108143. +Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
  108144. +double: 1
  108145. +idouble: 1
  108146. +Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
  108147. +double: 1
  108148. +idouble: 1
  108149. +Test "Imaginary part of: clog10 (3 + inf i)":
  108150. +double: 1
  108151. +float: 1
  108152. +idouble: 1
  108153. +ifloat: 1
  108154. +Test "Imaginary part of: clog10 (3 - inf i)":
  108155. +double: 1
  108156. +float: 1
  108157. +idouble: 1
  108158. +ifloat: 1
  108159. +Test "Imaginary part of: clog10 (inf + inf i)":
  108160. +double: 1
  108161. +float: 1
  108162. +idouble: 1
  108163. +ifloat: 1
  108164. +Test "Imaginary part of: clog10 (inf - inf i)":
  108165. +double: 1
  108166. +float: 1
  108167. +idouble: 1
  108168. +ifloat: 1
  108169. +
  108170. +# cos
  108171. +Test "cos (0x1p+120)":
  108172. +float: 1
  108173. +ifloat: 1
  108174. +Test "cos (0x1p+127)":
  108175. +float: 1
  108176. +ifloat: 1
  108177. +Test "cos (M_PI_6l * 2.0)":
  108178. +double: 1
  108179. +idouble: 1
  108180. +Test "cos (M_PI_6l * 4.0)":
  108181. +double: 2
  108182. +float: 1
  108183. +idouble: 2
  108184. +ifloat: 1
  108185. +
  108186. +# cos_downward
  108187. +Test "cos_downward (1)":
  108188. +float: 1
  108189. +ifloat: 1
  108190. +Test "cos_downward (2)":
  108191. +float: 1
  108192. +ifloat: 1
  108193. +Test "cos_downward (3)":
  108194. +float: 1
  108195. +ifloat: 1
  108196. +Test "cos_downward (4)":
  108197. +float: 1
  108198. +ifloat: 1
  108199. +Test "cos_downward (5)":
  108200. +float: 1
  108201. +ifloat: 1
  108202. +Test "cos_downward (7)":
  108203. +float: 1
  108204. +ifloat: 1
  108205. +Test "cos_downward (8)":
  108206. +float: 1
  108207. +ifloat: 1
  108208. +
  108209. +# cos_tonearest
  108210. +Test "cos_tonearest (7)":
  108211. +float: 1
  108212. +ifloat: 1
  108213. +
  108214. +# cos_towardzero
  108215. +Test "cos_towardzero (2)":
  108216. +float: 1
  108217. +ifloat: 1
  108218. +Test "cos_towardzero (3)":
  108219. +float: 1
  108220. +ifloat: 1
  108221. +Test "cos_towardzero (5)":
  108222. +float: 1
  108223. +ifloat: 1
  108224. +Test "cos_towardzero (7)":
  108225. +float: 1
  108226. +ifloat: 1
  108227. +Test "cos_towardzero (8)":
  108228. +float: 1
  108229. +ifloat: 1
  108230. +
  108231. +# cos_upward
  108232. +Test "cos_upward (10)":
  108233. +float: 1
  108234. +ifloat: 1
  108235. +Test "cos_upward (6)":
  108236. +float: 1
  108237. +ifloat: 1
  108238. +Test "cos_upward (7)":
  108239. +float: 1
  108240. +ifloat: 1
  108241. +Test "cos_upward (9)":
  108242. +float: 2
  108243. +ifloat: 2
  108244. +
  108245. +# cosh_downward
  108246. +Test "cosh_downward (22)":
  108247. +float: 1
  108248. +ifloat: 1
  108249. +Test "cosh_downward (23)":
  108250. +float: 1
  108251. +ifloat: 1
  108252. +Test "cosh_downward (24)":
  108253. +float: 1
  108254. +ifloat: 1
  108255. +
  108256. +# cosh_towardzero
  108257. +Test "cosh_towardzero (22)":
  108258. +float: 1
  108259. +ifloat: 1
  108260. +Test "cosh_towardzero (23)":
  108261. +float: 1
  108262. +ifloat: 1
  108263. +Test "cosh_towardzero (24)":
  108264. +float: 1
  108265. +ifloat: 1
  108266. +
  108267. +# cpow
  108268. +Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
  108269. +float: 1
  108270. +ifloat: 1
  108271. +Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
  108272. +double: 1
  108273. +float: 4
  108274. +idouble: 1
  108275. +ifloat: 4
  108276. +Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
  108277. +double: 2
  108278. +float: 3
  108279. +idouble: 2
  108280. +ifloat: 3
  108281. +Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
  108282. +double: 1
  108283. +float: 4
  108284. +idouble: 1
  108285. +ifloat: 4
  108286. +Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
  108287. +float: 2
  108288. +ifloat: 2
  108289. +
  108290. +# csin
  108291. +Test "Real part of: csin (-0.75 + 710.5 i)":
  108292. +double: 1
  108293. +idouble: 1
  108294. +Test "Real part of: csin (-0.75 + 89.5 i)":
  108295. +float: 1
  108296. +ifloat: 1
  108297. +Test "Real part of: csin (-0.75 - 710.5 i)":
  108298. +double: 1
  108299. +idouble: 1
  108300. +Test "Real part of: csin (-0.75 - 89.5 i)":
  108301. +float: 1
  108302. +ifloat: 1
  108303. +Test "Real part of: csin (0.75 + 710.5 i)":
  108304. +double: 1
  108305. +idouble: 1
  108306. +Test "Real part of: csin (0.75 + 89.5 i)":
  108307. +float: 1
  108308. +ifloat: 1
  108309. +Test "Real part of: csin (0.75 - 710.5 i)":
  108310. +double: 1
  108311. +idouble: 1
  108312. +Test "Real part of: csin (0.75 - 89.5 i)":
  108313. +float: 1
  108314. +ifloat: 1
  108315. +Test "Real part of: csin (0x1p-1074 + 1440 i)":
  108316. +double: 1
  108317. +idouble: 1
  108318. +
  108319. +# csinh
  108320. +Test "Imaginary part of: csinh (-2 - 3 i)":
  108321. +double: 1
  108322. +idouble: 1
  108323. +Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
  108324. +double: 1
  108325. +idouble: 1
  108326. +Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
  108327. +double: 1
  108328. +idouble: 1
  108329. +Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
  108330. +float: 1
  108331. +ifloat: 1
  108332. +Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
  108333. +float: 1
  108334. +ifloat: 1
  108335. +Test "Real part of: csinh (0.75 + 1.25 i)":
  108336. +float: 1
  108337. +ifloat: 1
  108338. +Test "Imaginary part of: csinh (0.75 + 1.25 i)":
  108339. +float: 1
  108340. +ifloat: 1
  108341. +Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
  108342. +double: 1
  108343. +idouble: 1
  108344. +Test "Imaginary part of: csinh (710.5 + 0.75 i)":
  108345. +double: 1
  108346. +idouble: 1
  108347. +Test "Imaginary part of: csinh (710.5 - 0.75 i)":
  108348. +double: 1
  108349. +idouble: 1
  108350. +Test "Imaginary part of: csinh (89.5 + 0.75 i)":
  108351. +float: 1
  108352. +ifloat: 1
  108353. +Test "Imaginary part of: csinh (89.5 - 0.75 i)":
  108354. +float: 1
  108355. +ifloat: 1
  108356. +
  108357. +# csqrt
  108358. +Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
  108359. +double: 1
  108360. +idouble: 1
  108361. +Test "Real part of: csqrt (-2 + 3 i)":
  108362. +float: 1
  108363. +ifloat: 1
  108364. +Test "Real part of: csqrt (-2 - 3 i)":
  108365. +float: 1
  108366. +ifloat: 1
  108367. +Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
  108368. +double: 1
  108369. +idouble: 1
  108370. +Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
  108371. +float: 1
  108372. +ifloat: 1
  108373. +Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  108374. +double: 1
  108375. +idouble: 1
  108376. +Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  108377. +double: 1
  108378. +idouble: 1
  108379. +Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
  108380. +double: 1
  108381. +idouble: 1
  108382. +
  108383. +# ctan
  108384. +Test "Real part of: ctan (-2 - 3 i)":
  108385. +float: 1
  108386. +ifloat: 1
  108387. +Test "Imaginary part of: ctan (-2 - 3 i)":
  108388. +double: 1
  108389. +idouble: 1
  108390. +Test "Imaginary part of: ctan (0.75 + 1.25 i)":
  108391. +double: 1
  108392. +idouble: 1
  108393. +Test "Real part of: ctan (0x1p1023 + 1 i)":
  108394. +double: 1
  108395. +idouble: 1
  108396. +Test "Imaginary part of: ctan (0x1p127 + 1 i)":
  108397. +double: 1
  108398. +idouble: 1
  108399. +Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
  108400. +float: 1
  108401. +ifloat: 1
  108402. +
  108403. +# ctan_downward
  108404. +Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
  108405. +double: 2
  108406. +float: 1
  108407. +idouble: 2
  108408. +ifloat: 1
  108409. +Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
  108410. +float: 1
  108411. +ifloat: 1
  108412. +
  108413. +# ctan_tonearest
  108414. +Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
  108415. +float: 1
  108416. +ifloat: 1
  108417. +Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
  108418. +float: 1
  108419. +ifloat: 1
  108420. +
  108421. +# ctan_towardzero
  108422. +Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
  108423. +float: 1
  108424. +ifloat: 1
  108425. +Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
  108426. +float: 1
  108427. +ifloat: 1
  108428. +
  108429. +# ctan_upward
  108430. +Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
  108431. +double: 1
  108432. +idouble: 1
  108433. +Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
  108434. +double: 2
  108435. +float: 1
  108436. +idouble: 2
  108437. +ifloat: 1
  108438. +Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
  108439. +double: 1
  108440. +float: 2
  108441. +idouble: 1
  108442. +ifloat: 2
  108443. +
  108444. +# ctanh
  108445. +Test "Real part of: ctanh (-2 - 3 i)":
  108446. +double: 1
  108447. +float: 1
  108448. +idouble: 1
  108449. +ifloat: 1
  108450. +Test "Imaginary part of: ctanh (-2 - 3 i)":
  108451. +double: 1
  108452. +float: 1
  108453. +idouble: 1
  108454. +ifloat: 1
  108455. +Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
  108456. +float: 1
  108457. +ifloat: 1
  108458. +Test "Imaginary part of: ctanh (0 + pi/4 i)":
  108459. +double: 1
  108460. +float: 1
  108461. +idouble: 1
  108462. +ifloat: 1
  108463. +Test "Real part of: ctanh (0.75 + 1.25 i)":
  108464. +double: 1
  108465. +float: 1
  108466. +idouble: 1
  108467. +ifloat: 1
  108468. +Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
  108469. +float: 2
  108470. +ifloat: 2
  108471. +Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
  108472. +double: 1
  108473. +idouble: 1
  108474. +Test "Real part of: ctanh (1 + 0x1p127 i)":
  108475. +double: 1
  108476. +idouble: 1
  108477. +
  108478. +# ctanh_downward
  108479. +Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
  108480. +float: 1
  108481. +ifloat: 1
  108482. +Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
  108483. +double: 2
  108484. +float: 1
  108485. +idouble: 2
  108486. +ifloat: 1
  108487. +
  108488. +# ctanh_tonearest
  108489. +Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
  108490. +float: 1
  108491. +ifloat: 1
  108492. +Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
  108493. +float: 1
  108494. +ifloat: 1
  108495. +
  108496. +# ctanh_towardzero
  108497. +Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
  108498. +float: 1
  108499. +ifloat: 1
  108500. +Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
  108501. +float: 1
  108502. +ifloat: 1
  108503. +
  108504. +# ctanh_upward
  108505. +Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
  108506. +double: 1
  108507. +idouble: 1
  108508. +Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
  108509. +double: 1
  108510. +float: 2
  108511. +idouble: 1
  108512. +ifloat: 2
  108513. +Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
  108514. +double: 2
  108515. +float: 1
  108516. +idouble: 2
  108517. +ifloat: 1
  108518. +
  108519. +# erf
  108520. +Test "erf (1.25)":
  108521. +double: 1
  108522. +idouble: 1
  108523. +
  108524. +# erfc
  108525. +Test "erfc (0x1.f7303cp+1)":
  108526. +double: 1
  108527. +idouble: 1
  108528. +Test "erfc (0x1.ffa002p+2)":
  108529. +float: 1
  108530. +ifloat: 1
  108531. +Test "erfc (2.0)":
  108532. +double: 1
  108533. +idouble: 1
  108534. +Test "erfc (4.125)":
  108535. +double: 1
  108536. +idouble: 1
  108537. +
  108538. +# exp10
  108539. +Test "exp10 (-1)":
  108540. +double: 1
  108541. +idouble: 1
  108542. +Test "exp10 (-305)":
  108543. +double: 1
  108544. +idouble: 1
  108545. +Test "exp10 (-36)":
  108546. +double: 1
  108547. +idouble: 1
  108548. +Test "exp10 (3)":
  108549. +double: 1
  108550. +idouble: 1
  108551. +Test "exp10 (36)":
  108552. +double: 1
  108553. +idouble: 1
  108554. +
  108555. +# exp_downward
  108556. +Test "exp_downward (2)":
  108557. +float: 1
  108558. +ifloat: 1
  108559. +Test "exp_downward (3)":
  108560. +float: 1
  108561. +ifloat: 1
  108562. +
  108563. +# exp_towardzero
  108564. +Test "exp_towardzero (2)":
  108565. +float: 1
  108566. +ifloat: 1
  108567. +Test "exp_towardzero (3)":
  108568. +float: 1
  108569. +ifloat: 1
  108570. +
  108571. +# exp_upward
  108572. +Test "exp_upward (1)":
  108573. +float: 1
  108574. +ifloat: 1
  108575. +
  108576. +# expm1
  108577. +Test "expm1 (0.75)":
  108578. +double: 1
  108579. +idouble: 1
  108580. +Test "expm1 (1)":
  108581. +float: 1
  108582. +ifloat: 1
  108583. +Test "expm1 (500.0)":
  108584. +double: 1
  108585. +idouble: 1
  108586. +
  108587. +# gamma
  108588. +Test "gamma (0.7)":
  108589. +double: 1
  108590. +float: 1
  108591. +idouble: 1
  108592. +ifloat: 1
  108593. +Test "gamma (1.2)":
  108594. +double: 1
  108595. +float: 2
  108596. +idouble: 1
  108597. +ifloat: 2
  108598. +
  108599. +# hypot
  108600. +Test "hypot (-0.7, -12.4)":
  108601. +float: 1
  108602. +ifloat: 1
  108603. +Test "hypot (-0.7, 12.4)":
  108604. +float: 1
  108605. +ifloat: 1
  108606. +Test "hypot (-12.4, -0.7)":
  108607. +float: 1
  108608. +ifloat: 1
  108609. +Test "hypot (-12.4, 0.7)":
  108610. +float: 1
  108611. +ifloat: 1
  108612. +Test "hypot (0.7, -12.4)":
  108613. +float: 1
  108614. +ifloat: 1
  108615. +Test "hypot (0.7, 12.4)":
  108616. +float: 1
  108617. +ifloat: 1
  108618. +Test "hypot (12.4, -0.7)":
  108619. +float: 1
  108620. +ifloat: 1
  108621. +Test "hypot (12.4, 0.7)":
  108622. +float: 1
  108623. +ifloat: 1
  108624. +
  108625. +# j0
  108626. +Test "j0 (-4.0)":
  108627. +double: 1
  108628. +float: 1
  108629. +idouble: 1
  108630. +ifloat: 1
  108631. +Test "j0 (0.75)":
  108632. +float: 1
  108633. +ifloat: 1
  108634. +Test "j0 (0x1.d7ce3ap+107)":
  108635. +float: 2
  108636. +ifloat: 2
  108637. +Test "j0 (10.0)":
  108638. +double: 2
  108639. +float: 1
  108640. +idouble: 2
  108641. +ifloat: 1
  108642. +Test "j0 (2.0)":
  108643. +float: 2
  108644. +ifloat: 2
  108645. +Test "j0 (4.0)":
  108646. +double: 1
  108647. +float: 1
  108648. +idouble: 1
  108649. +ifloat: 1
  108650. +Test "j0 (8.0)":
  108651. +float: 1
  108652. +ifloat: 1
  108653. +
  108654. +# j1
  108655. +Test "j1 (0x1.3ffp+74)":
  108656. +double: 1
  108657. +idouble: 1
  108658. +Test "j1 (0x1.ff00000000002p+840)":
  108659. +double: 1
  108660. +idouble: 1
  108661. +Test "j1 (10.0)":
  108662. +float: 2
  108663. +ifloat: 2
  108664. +Test "j1 (2.0)":
  108665. +double: 1
  108666. +idouble: 1
  108667. +Test "j1 (8.0)":
  108668. +double: 1
  108669. +idouble: 1
  108670. +
  108671. +# jn
  108672. +Test "jn (0, -4.0)":
  108673. +double: 1
  108674. +float: 1
  108675. +idouble: 1
  108676. +ifloat: 1
  108677. +Test "jn (0, 0.75)":
  108678. +float: 1
  108679. +ifloat: 1
  108680. +Test "jn (0, 10.0)":
  108681. +double: 2
  108682. +float: 1
  108683. +idouble: 2
  108684. +ifloat: 1
  108685. +Test "jn (0, 2.0)":
  108686. +float: 2
  108687. +ifloat: 2
  108688. +Test "jn (0, 4.0)":
  108689. +double: 1
  108690. +float: 1
  108691. +idouble: 1
  108692. +ifloat: 1
  108693. +Test "jn (0, 8.0)":
  108694. +float: 1
  108695. +ifloat: 1
  108696. +Test "jn (1, 10.0)":
  108697. +float: 2
  108698. +ifloat: 2
  108699. +Test "jn (1, 2.0)":
  108700. +double: 1
  108701. +idouble: 1
  108702. +Test "jn (1, 8.0)":
  108703. +double: 1
  108704. +idouble: 1
  108705. +Test "jn (10, 0.125)":
  108706. +double: 1
  108707. +float: 1
  108708. +idouble: 1
  108709. +ifloat: 1
  108710. +Test "jn (10, 0.75)":
  108711. +double: 1
  108712. +float: 1
  108713. +idouble: 1
  108714. +ifloat: 1
  108715. +Test "jn (10, 10.0)":
  108716. +double: 4
  108717. +float: 3
  108718. +idouble: 4
  108719. +ifloat: 3
  108720. +Test "jn (10, 2.0)":
  108721. +double: 1
  108722. +float: 2
  108723. +idouble: 1
  108724. +ifloat: 2
  108725. +Test "jn (2, 0x1.ffff62p+99)":
  108726. +double: 2
  108727. +float: 2
  108728. +idouble: 2
  108729. +ifloat: 2
  108730. +Test "jn (2, 2.4048255576957729)":
  108731. +double: 2
  108732. +float: 1
  108733. +idouble: 2
  108734. +ifloat: 1
  108735. +Test "jn (3, 0.125)":
  108736. +double: 1
  108737. +float: 1
  108738. +idouble: 1
  108739. +ifloat: 1
  108740. +Test "jn (3, 0.75)":
  108741. +double: 1
  108742. +float: 1
  108743. +idouble: 1
  108744. +ifloat: 1
  108745. +Test "jn (3, 10.0)":
  108746. +double: 3
  108747. +float: 1
  108748. +idouble: 3
  108749. +ifloat: 1
  108750. +Test "jn (3, 2.0)":
  108751. +float: 1
  108752. +ifloat: 1
  108753. +Test "jn (3, 2.4048255576957729)":
  108754. +double: 3
  108755. +idouble: 3
  108756. +Test "jn (4, 2.4048255576957729)":
  108757. +double: 1
  108758. +idouble: 1
  108759. +Test "jn (5, 2.4048255576957729)":
  108760. +double: 3
  108761. +float: 1
  108762. +idouble: 3
  108763. +ifloat: 1
  108764. +Test "jn (6, 2.4048255576957729)":
  108765. +double: 4
  108766. +float: 3
  108767. +idouble: 4
  108768. +ifloat: 3
  108769. +Test "jn (7, 2.4048255576957729)":
  108770. +double: 3
  108771. +float: 5
  108772. +idouble: 3
  108773. +ifloat: 5
  108774. +Test "jn (8, 2.4048255576957729)":
  108775. +double: 3
  108776. +float: 2
  108777. +idouble: 3
  108778. +ifloat: 2
  108779. +Test "jn (9, 2.4048255576957729)":
  108780. +double: 1
  108781. +float: 2
  108782. +idouble: 1
  108783. +ifloat: 2
  108784. +
  108785. +# lgamma
  108786. +Test "lgamma (0.7)":
  108787. +double: 1
  108788. +float: 1
  108789. +idouble: 1
  108790. +ifloat: 1
  108791. +Test "lgamma (1.2)":
  108792. +double: 1
  108793. +float: 2
  108794. +idouble: 1
  108795. +ifloat: 2
  108796. +
  108797. +# log10
  108798. +Test "log10 (0.75)":
  108799. +double: 1
  108800. +float: 2
  108801. +idouble: 1
  108802. +ifloat: 2
  108803. +Test "log10 (e)":
  108804. +float: 1
  108805. +ifloat: 1
  108806. +
  108807. +# log1p
  108808. +Test "log1p (-0.25)":
  108809. +float: 1
  108810. +ifloat: 1
  108811. +
  108812. +# pow
  108813. +Test "pow (0x0.ffffffp0, -0x1p24)":
  108814. +float: 1
  108815. +ifloat: 1
  108816. +Test "pow (0x0.ffffffp0, 0x1p24)":
  108817. +float: 1
  108818. +ifloat: 1
  108819. +Test "pow (0x1.000002p0, 0x1p24)":
  108820. +float: 1
  108821. +ifloat: 1
  108822. +
  108823. +# pow10
  108824. +Test "pow10 (-1)":
  108825. +double: 1
  108826. +idouble: 1
  108827. +Test "pow10 (-305)":
  108828. +double: 1
  108829. +idouble: 1
  108830. +Test "pow10 (-36)":
  108831. +double: 1
  108832. +idouble: 1
  108833. +Test "pow10 (3)":
  108834. +double: 1
  108835. +idouble: 1
  108836. +Test "pow10 (36)":
  108837. +double: 1
  108838. +idouble: 1
  108839. +
  108840. +# pow_downward
  108841. +Test "pow_downward (1.5, 1.03125)":
  108842. +float: 1
  108843. +ifloat: 1
  108844. +
  108845. +# pow_towardzero
  108846. +Test "pow_towardzero (1.5, 1.03125)":
  108847. +float: 1
  108848. +ifloat: 1
  108849. +
  108850. +# pow_upward
  108851. +Test "pow_upward (1.0625, 1.125)":
  108852. +float: 1
  108853. +ifloat: 1
  108854. +
  108855. +# sin_downward
  108856. +Test "sin_downward (10)":
  108857. +float: 1
  108858. +ifloat: 1
  108859. +Test "sin_downward (3)":
  108860. +float: 1
  108861. +ifloat: 1
  108862. +Test "sin_downward (5)":
  108863. +float: 1
  108864. +ifloat: 1
  108865. +Test "sin_downward (6)":
  108866. +float: 1
  108867. +ifloat: 1
  108868. +
  108869. +# sin_tonearest
  108870. +Test "sin_tonearest (1)":
  108871. +float: 1
  108872. +ifloat: 1
  108873. +
  108874. +# sin_towardzero
  108875. +Test "sin_towardzero (1)":
  108876. +float: 1
  108877. +ifloat: 1
  108878. +Test "sin_towardzero (10)":
  108879. +float: 1
  108880. +ifloat: 1
  108881. +Test "sin_towardzero (4)":
  108882. +float: 1
  108883. +ifloat: 1
  108884. +Test "sin_towardzero (5)":
  108885. +float: 1
  108886. +ifloat: 1
  108887. +Test "sin_towardzero (9)":
  108888. +float: 1
  108889. +ifloat: 1
  108890. +
  108891. +# sin_upward
  108892. +Test "sin_upward (1)":
  108893. +float: 1
  108894. +ifloat: 1
  108895. +Test "sin_upward (2)":
  108896. +float: 2
  108897. +ifloat: 2
  108898. +Test "sin_upward (4)":
  108899. +float: 1
  108900. +ifloat: 1
  108901. +Test "sin_upward (9)":
  108902. +float: 1
  108903. +ifloat: 1
  108904. +
  108905. +# sincos
  108906. +Test "sincos (0x1p+120) extra output 2":
  108907. +float: 1
  108908. +ifloat: 1
  108909. +Test "sincos (0x1p+127) extra output 2":
  108910. +float: 1
  108911. +ifloat: 1
  108912. +Test "sincos (M_PI_6l*2.0) extra output 1":
  108913. +double: 1
  108914. +float: 1
  108915. +idouble: 1
  108916. +ifloat: 1
  108917. +Test "sincos (M_PI_6l*2.0) extra output 2":
  108918. +double: 1
  108919. +idouble: 1
  108920. +Test "sincos (pi/6) extra output 2":
  108921. +float: 1
  108922. +ifloat: 1
  108923. +
  108924. +# sinh_downward
  108925. +Test "sinh_downward (22)":
  108926. +float: 1
  108927. +ifloat: 1
  108928. +Test "sinh_downward (23)":
  108929. +float: 1
  108930. +ifloat: 1
  108931. +Test "sinh_downward (24)":
  108932. +float: 1
  108933. +ifloat: 1
  108934. +
  108935. +# sinh_towardzero
  108936. +Test "sinh_towardzero (22)":
  108937. +float: 1
  108938. +ifloat: 1
  108939. +Test "sinh_towardzero (23)":
  108940. +float: 1
  108941. +ifloat: 1
  108942. +Test "sinh_towardzero (24)":
  108943. +float: 1
  108944. +ifloat: 1
  108945. +
  108946. +# tan_downward
  108947. +Test "tan_downward (1)":
  108948. +float: 1
  108949. +ifloat: 1
  108950. +Test "tan_downward (10)":
  108951. +float: 1
  108952. +ifloat: 1
  108953. +Test "tan_downward (2)":
  108954. +float: 1
  108955. +ifloat: 1
  108956. +Test "tan_downward (6)":
  108957. +float: 1
  108958. +ifloat: 1
  108959. +Test "tan_downward (8)":
  108960. +float: 1
  108961. +ifloat: 1
  108962. +Test "tan_downward (9)":
  108963. +float: 1
  108964. +ifloat: 1
  108965. +
  108966. +# tan_towardzero
  108967. +Test "tan_towardzero (10)":
  108968. +float: 1
  108969. +ifloat: 1
  108970. +Test "tan_towardzero (3)":
  108971. +float: 1
  108972. +ifloat: 1
  108973. +Test "tan_towardzero (4)":
  108974. +float: 1
  108975. +ifloat: 1
  108976. +Test "tan_towardzero (5)":
  108977. +float: 1
  108978. +ifloat: 1
  108979. +Test "tan_towardzero (9)":
  108980. +float: 1
  108981. +ifloat: 1
  108982. +
  108983. +# tan_upward
  108984. +Test "tan_upward (1)":
  108985. +float: 1
  108986. +ifloat: 1
  108987. +Test "tan_upward (10)":
  108988. +float: 1
  108989. +ifloat: 1
  108990. +Test "tan_upward (3)":
  108991. +float: 1
  108992. +ifloat: 1
  108993. +Test "tan_upward (5)":
  108994. +float: 1
  108995. +ifloat: 1
  108996. +
  108997. +# tgamma
  108998. +Test "tgamma (-0.5)":
  108999. +double: 1
  109000. +float: 1
  109001. +idouble: 1
  109002. +ifloat: 1
  109003. +Test "tgamma (-0x0.fffffffffffff8p0)":
  109004. +double: 1
  109005. +idouble: 1
  109006. +Test "tgamma (-0x0.ffffffp0)":
  109007. +float: 1
  109008. +ifloat: 1
  109009. +Test "tgamma (-0x1.000002p0)":
  109010. +double: 2
  109011. +idouble: 2
  109012. +Test "tgamma (-0x1.0a32a2p+5)":
  109013. +float: 2
  109014. +ifloat: 2
  109015. +Test "tgamma (-0x13.ffffep0)":
  109016. +float: 2
  109017. +ifloat: 2
  109018. +Test "tgamma (-0x14.000000000001p0)":
  109019. +double: 1
  109020. +idouble: 1
  109021. +Test "tgamma (-0x14.00002p0)":
  109022. +float: 1
  109023. +ifloat: 1
  109024. +Test "tgamma (-0x1d.ffffep0)":
  109025. +double: 1
  109026. +float: 1
  109027. +idouble: 1
  109028. +ifloat: 1
  109029. +Test "tgamma (-0x1e.000000000001p0)":
  109030. +double: 3
  109031. +idouble: 3
  109032. +Test "tgamma (-0x1e.00002p0)":
  109033. +double: 1
  109034. +float: 1
  109035. +idouble: 1
  109036. +ifloat: 1
  109037. +Test "tgamma (-0x2.0000000000002p0)":
  109038. +double: 1
  109039. +idouble: 1
  109040. +Test "tgamma (-0x2.000004p0)":
  109041. +double: 2
  109042. +float: 1
  109043. +idouble: 2
  109044. +ifloat: 1
  109045. +Test "tgamma (-0x2.fffffcp0)":
  109046. +double: 1
  109047. +float: 1
  109048. +idouble: 1
  109049. +ifloat: 1
  109050. +Test "tgamma (-0x27.fffffffffffep0)":
  109051. +double: 1
  109052. +idouble: 1
  109053. +Test "tgamma (-0x28.000000000002p0)":
  109054. +double: 1
  109055. +idouble: 1
  109056. +Test "tgamma (-0x28.00004p0)":
  109057. +double: 2
  109058. +idouble: 2
  109059. +Test "tgamma (-0x29.00004p0)":
  109060. +double: 1
  109061. +idouble: 1
  109062. +Test "tgamma (-0x29.ffffcp0)":
  109063. +double: 1
  109064. +idouble: 1
  109065. +Test "tgamma (-0x3.000004p0)":
  109066. +double: 2
  109067. +float: 1
  109068. +idouble: 2
  109069. +ifloat: 1
  109070. +Test "tgamma (-0x3.fffffcp0)":
  109071. +double: 1
  109072. +float: 1
  109073. +idouble: 1
  109074. +ifloat: 1
  109075. +Test "tgamma (-0x3.ffffffffffffep0)":
  109076. +double: 2
  109077. +idouble: 2
  109078. +Test "tgamma (-0x31.fffffffffffep0)":
  109079. +double: 3
  109080. +idouble: 3
  109081. +Test "tgamma (-0x4.000008p0)":
  109082. +float: 1
  109083. +ifloat: 1
  109084. +Test "tgamma (-0x4.fffff8p0)":
  109085. +double: 1
  109086. +idouble: 1
  109087. +Test "tgamma (-0x4.ffffffffffffcp0)":
  109088. +double: 1
  109089. +idouble: 1
  109090. +Test "tgamma (-0x5.000008p0)":
  109091. +double: 1
  109092. +float: 1
  109093. +idouble: 1
  109094. +ifloat: 1
  109095. +Test "tgamma (-0x5.ffffffffffffcp0)":
  109096. +double: 1
  109097. +idouble: 1
  109098. +Test "tgamma (-0x6.000008p0)":
  109099. +float: 2
  109100. +ifloat: 2
  109101. +Test "tgamma (-0x6.fffff8p0)":
  109102. +double: 2
  109103. +float: 1
  109104. +idouble: 2
  109105. +ifloat: 1
  109106. +Test "tgamma (-0x6.ffffffffffffcp0)":
  109107. +double: 4
  109108. +idouble: 4
  109109. +Test "tgamma (-0x63.fffffffffffcp0)":
  109110. +double: 2
  109111. +idouble: 2
  109112. +Test "tgamma (-0x64.000000000004p0)":
  109113. +double: 1
  109114. +idouble: 1
  109115. +Test "tgamma (-0x7.0000000000004p0)":
  109116. +double: 3
  109117. +idouble: 3
  109118. +Test "tgamma (-0x7.000008p0)":
  109119. +double: 1
  109120. +float: 1
  109121. +idouble: 1
  109122. +ifloat: 1
  109123. +Test "tgamma (-0x7.fffff8p0)":
  109124. +double: 3
  109125. +float: 1
  109126. +idouble: 3
  109127. +ifloat: 1
  109128. +Test "tgamma (-0x7.ffffffffffffcp0)":
  109129. +double: 3
  109130. +idouble: 3
  109131. +Test "tgamma (-0x8.00001p0)":
  109132. +double: 2
  109133. +idouble: 2
  109134. +Test "tgamma (-0x9.ffffffffffff8p0)":
  109135. +double: 1
  109136. +idouble: 1
  109137. +Test "tgamma (-0x9.fffffp0)":
  109138. +float: 1
  109139. +ifloat: 1
  109140. +Test "tgamma (-0x96.000000000008p0)":
  109141. +double: 1
  109142. +idouble: 1
  109143. +Test "tgamma (-0xa.00001p0)":
  109144. +double: 1
  109145. +idouble: 1
  109146. +Test "tgamma (-2.5)":
  109147. +double: 1
  109148. +float: 2
  109149. +idouble: 1
  109150. +ifloat: 2
  109151. +Test "tgamma (-3.5)":
  109152. +double: 1
  109153. +float: 1
  109154. +idouble: 1
  109155. +ifloat: 1
  109156. +Test "tgamma (-4.5)":
  109157. +double: 1
  109158. +float: 1
  109159. +idouble: 1
  109160. +ifloat: 1
  109161. +Test "tgamma (-5.5)":
  109162. +double: 1
  109163. +idouble: 1
  109164. +Test "tgamma (-6.5)":
  109165. +float: 1
  109166. +ifloat: 1
  109167. +Test "tgamma (-7.5)":
  109168. +double: 2
  109169. +float: 1
  109170. +idouble: 2
  109171. +ifloat: 1
  109172. +Test "tgamma (-8.5)":
  109173. +double: 1
  109174. +float: 1
  109175. +idouble: 1
  109176. +ifloat: 1
  109177. +Test "tgamma (-9.5)":
  109178. +double: 1
  109179. +float: 1
  109180. +idouble: 1
  109181. +ifloat: 1
  109182. +Test "tgamma (0.5)":
  109183. +float: 1
  109184. +ifloat: 1
  109185. +Test "tgamma (0.7)":
  109186. +double: 1
  109187. +float: 1
  109188. +idouble: 1
  109189. +ifloat: 1
  109190. +Test "tgamma (0x1.fffffep0)":
  109191. +float: 1
  109192. +ifloat: 1
  109193. +Test "tgamma (0x1.fffffffffffffp0)":
  109194. +double: 1
  109195. +idouble: 1
  109196. +Test "tgamma (0x1p-24)":
  109197. +float: 1
  109198. +ifloat: 1
  109199. +Test "tgamma (0x1p-53)":
  109200. +double: 1
  109201. +idouble: 1
  109202. +Test "tgamma (0x2.30a43cp+4)":
  109203. +double: 1
  109204. +float: 2
  109205. +idouble: 1
  109206. +ifloat: 2
  109207. +Test "tgamma (0x2.fffffcp0)":
  109208. +float: 3
  109209. +ifloat: 3
  109210. +Test "tgamma (0x3.fffffcp0)":
  109211. +float: 1
  109212. +ifloat: 1
  109213. +Test "tgamma (0x3.ffffffffffffep0)":
  109214. +double: 1
  109215. +idouble: 1
  109216. +Test "tgamma (0x4.0000000000004p0)":
  109217. +double: 1
  109218. +idouble: 1
  109219. +Test "tgamma (0x4.ffffffffffffcp0)":
  109220. +double: 1
  109221. +idouble: 1
  109222. +Test "tgamma (0x5.0000000000004p0)":
  109223. +double: 1
  109224. +idouble: 1
  109225. +Test "tgamma (0x5.000008p0)":
  109226. +float: 2
  109227. +ifloat: 2
  109228. +Test "tgamma (0x5.fffff8p0)":
  109229. +double: 1
  109230. +float: 1
  109231. +idouble: 1
  109232. +ifloat: 1
  109233. +Test "tgamma (0x6.0000000000004p0)":
  109234. +double: 1
  109235. +idouble: 1
  109236. +Test "tgamma (0x6.000008p0)":
  109237. +float: 2
  109238. +ifloat: 2
  109239. +Test "tgamma (0x6.fffff8p0)":
  109240. +double: 1
  109241. +idouble: 1
  109242. +Test "tgamma (0x6.ffffffffffffcp0)":
  109243. +double: 4
  109244. +idouble: 4
  109245. +Test "tgamma (0x7.0000000000004p0)":
  109246. +double: 4
  109247. +idouble: 4
  109248. +Test "tgamma (0x7.000008p0)":
  109249. +double: 1
  109250. +float: 1
  109251. +idouble: 1
  109252. +ifloat: 1
  109253. +Test "tgamma (0x7.fffff8p0)":
  109254. +double: 2
  109255. +float: 1
  109256. +idouble: 2
  109257. +ifloat: 1
  109258. +Test "tgamma (0x7.ffffffffffffcp0)":
  109259. +double: 2
  109260. +idouble: 2
  109261. +Test "tgamma (0x8.00001p0)":
  109262. +double: 2
  109263. +idouble: 2
  109264. +Test "tgamma (0xa.b9fd72b0fb238p+4)":
  109265. +double: 1
  109266. +idouble: 1
  109267. +Test "tgamma (10)":
  109268. +double: 1
  109269. +float: 1
  109270. +idouble: 1
  109271. +ifloat: 1
  109272. +Test "tgamma (18.5)":
  109273. +double: 1
  109274. +float: 1
  109275. +idouble: 1
  109276. +ifloat: 1
  109277. +Test "tgamma (19.5)":
  109278. +double: 2
  109279. +idouble: 2
  109280. +Test "tgamma (2.5)":
  109281. +float: 2
  109282. +ifloat: 2
  109283. +Test "tgamma (23.5)":
  109284. +double: 1
  109285. +float: 1
  109286. +idouble: 1
  109287. +ifloat: 1
  109288. +Test "tgamma (29.5)":
  109289. +double: 1
  109290. +float: 1
  109291. +idouble: 1
  109292. +ifloat: 1
  109293. +Test "tgamma (3)":
  109294. +float: 1
  109295. +ifloat: 1
  109296. +Test "tgamma (3.5)":
  109297. +float: 2
  109298. +ifloat: 2
  109299. +Test "tgamma (30.5)":
  109300. +float: 1
  109301. +ifloat: 1
  109302. +Test "tgamma (33.5)":
  109303. +float: 1
  109304. +ifloat: 1
  109305. +Test "tgamma (34.5)":
  109306. +double: 1
  109307. +float: 2
  109308. +idouble: 1
  109309. +ifloat: 2
  109310. +Test "tgamma (4)":
  109311. +float: 1
  109312. +ifloat: 1
  109313. +Test "tgamma (4.5)":
  109314. +double: 1
  109315. +float: 1
  109316. +idouble: 1
  109317. +ifloat: 1
  109318. +Test "tgamma (6)":
  109319. +float: 1
  109320. +ifloat: 1
  109321. +Test "tgamma (6.5)":
  109322. +float: 1
  109323. +ifloat: 1
  109324. +Test "tgamma (7)":
  109325. +double: 1
  109326. +idouble: 1
  109327. +Test "tgamma (7.5)":
  109328. +double: 2
  109329. +float: 1
  109330. +idouble: 2
  109331. +ifloat: 1
  109332. +Test "tgamma (8)":
  109333. +double: 1
  109334. +idouble: 1
  109335. +Test "tgamma (8.5)":
  109336. +double: 1
  109337. +float: 1
  109338. +idouble: 1
  109339. +ifloat: 1
  109340. +Test "tgamma (9)":
  109341. +double: 1
  109342. +idouble: 1
  109343. +Test "tgamma (9.5)":
  109344. +double: 1
  109345. +idouble: 1
  109346. +
  109347. +# y0
  109348. +Test "y0 (0x1.3ffp+74)":
  109349. +double: 1
  109350. +idouble: 1
  109351. +Test "y0 (0x1.ff00000000002p+840)":
  109352. +double: 1
  109353. +idouble: 1
  109354. +Test "y0 (0x1p-10)":
  109355. +double: 1
  109356. +idouble: 1
  109357. +Test "y0 (0x1p-110)":
  109358. +double: 1
  109359. +idouble: 1
  109360. +Test "y0 (0x1p-20)":
  109361. +float: 1
  109362. +ifloat: 1
  109363. +Test "y0 (0x1p-30)":
  109364. +float: 1
  109365. +ifloat: 1
  109366. +Test "y0 (0x1p-40)":
  109367. +double: 1
  109368. +float: 1
  109369. +idouble: 1
  109370. +ifloat: 1
  109371. +Test "y0 (0x1p-50)":
  109372. +float: 1
  109373. +ifloat: 1
  109374. +Test "y0 (0x1p-70)":
  109375. +double: 1
  109376. +idouble: 1
  109377. +Test "y0 (0x1p-80)":
  109378. +double: 1
  109379. +float: 1
  109380. +idouble: 1
  109381. +ifloat: 1
  109382. +Test "y0 (1.0)":
  109383. +double: 2
  109384. +float: 1
  109385. +idouble: 2
  109386. +ifloat: 1
  109387. +Test "y0 (1.5)":
  109388. +double: 2
  109389. +float: 1
  109390. +idouble: 2
  109391. +ifloat: 1
  109392. +Test "y0 (10.0)":
  109393. +float: 1
  109394. +ifloat: 1
  109395. +Test "y0 (8.0)":
  109396. +double: 1
  109397. +float: 1
  109398. +idouble: 1
  109399. +ifloat: 1
  109400. +
  109401. +# y1
  109402. +Test "y1 (0.125)":
  109403. +double: 1
  109404. +idouble: 1
  109405. +Test "y1 (0x1.27e204p+99)":
  109406. +double: 1
  109407. +idouble: 1
  109408. +Test "y1 (0x1p-10)":
  109409. +double: 1
  109410. +idouble: 1
  109411. +Test "y1 (1.5)":
  109412. +float: 1
  109413. +ifloat: 1
  109414. +Test "y1 (10.0)":
  109415. +double: 3
  109416. +float: 1
  109417. +idouble: 3
  109418. +ifloat: 1
  109419. +Test "y1 (2.0)":
  109420. +double: 1
  109421. +float: 1
  109422. +idouble: 1
  109423. +ifloat: 1
  109424. +Test "y1 (8.0)":
  109425. +double: 1
  109426. +float: 2
  109427. +idouble: 1
  109428. +ifloat: 2
  109429. +
  109430. +# yn
  109431. +Test "yn (0, 1.0)":
  109432. +double: 2
  109433. +float: 1
  109434. +idouble: 2
  109435. +ifloat: 1
  109436. +Test "yn (0, 1.5)":
  109437. +double: 2
  109438. +float: 1
  109439. +idouble: 2
  109440. +ifloat: 1
  109441. +Test "yn (0, 10.0)":
  109442. +float: 1
  109443. +ifloat: 1
  109444. +Test "yn (0, 8.0)":
  109445. +double: 1
  109446. +float: 1
  109447. +idouble: 1
  109448. +ifloat: 1
  109449. +Test "yn (1, 0.125)":
  109450. +double: 1
  109451. +idouble: 1
  109452. +Test "yn (1, 1.5)":
  109453. +float: 1
  109454. +ifloat: 1
  109455. +Test "yn (1, 10.0)":
  109456. +double: 3
  109457. +float: 1
  109458. +idouble: 3
  109459. +ifloat: 1
  109460. +Test "yn (1, 2.0)":
  109461. +double: 1
  109462. +float: 1
  109463. +idouble: 1
  109464. +ifloat: 1
  109465. +Test "yn (1, 8.0)":
  109466. +double: 1
  109467. +float: 2
  109468. +idouble: 1
  109469. +ifloat: 2
  109470. +Test "yn (10, 0.125)":
  109471. +double: 1
  109472. +idouble: 1
  109473. +Test "yn (10, 0.75)":
  109474. +double: 1
  109475. +float: 1
  109476. +idouble: 1
  109477. +ifloat: 1
  109478. +Test "yn (10, 1.0)":
  109479. +double: 1
  109480. +idouble: 1
  109481. +Test "yn (10, 10.0)":
  109482. +double: 1
  109483. +float: 1
  109484. +idouble: 1
  109485. +ifloat: 1
  109486. +Test "yn (10, 2.0)":
  109487. +double: 2
  109488. +idouble: 2
  109489. +Test "yn (3, 0.125)":
  109490. +double: 1
  109491. +idouble: 1
  109492. +Test "yn (3, 0.75)":
  109493. +double: 1
  109494. +float: 1
  109495. +idouble: 1
  109496. +ifloat: 1
  109497. +Test "yn (3, 10.0)":
  109498. +double: 1
  109499. +float: 1
  109500. +idouble: 1
  109501. +ifloat: 1
  109502. +Test "yn (3, 2.0)":
  109503. +double: 1
  109504. +idouble: 1
  109505. +
  109506. +# Maximal error of functions:
  109507. +Function: "acos_downward":
  109508. +double: 1
  109509. +float: 1
  109510. +idouble: 1
  109511. +ifloat: 1
  109512. +
  109513. +Function: "acos_towardzero":
  109514. +double: 1
  109515. +float: 1
  109516. +idouble: 1
  109517. +ifloat: 1
  109518. +
  109519. +Function: "asin_downward":
  109520. +double: 1
  109521. +float: 1
  109522. +idouble: 1
  109523. +ifloat: 1
  109524. +
  109525. +Function: "asin_towardzero":
  109526. +double: 1
  109527. +float: 1
  109528. +idouble: 1
  109529. +ifloat: 1
  109530. +
  109531. +Function: "asin_upward":
  109532. +float: 1
  109533. +ifloat: 1
  109534. +
  109535. +Function: "atan2":
  109536. +float: 1
  109537. +ifloat: 1
  109538. +
  109539. +Function: "atanh":
  109540. +float: 1
  109541. +ifloat: 1
  109542. +
  109543. +Function: Real part of "cacos":
  109544. +double: 1
  109545. +float: 2
  109546. +idouble: 1
  109547. +ifloat: 2
  109548. +
  109549. +Function: Imaginary part of "cacos":
  109550. +double: 1
  109551. +float: 2
  109552. +idouble: 1
  109553. +ifloat: 2
  109554. +
  109555. +Function: Real part of "cacosh":
  109556. +double: 1
  109557. +float: 2
  109558. +idouble: 1
  109559. +ifloat: 2
  109560. +
  109561. +Function: Imaginary part of "cacosh":
  109562. +double: 1
  109563. +float: 2
  109564. +idouble: 1
  109565. +ifloat: 2
  109566. +
  109567. +Function: Real part of "casin":
  109568. +double: 1
  109569. +float: 1
  109570. +idouble: 1
  109571. +ifloat: 1
  109572. +
  109573. +Function: Imaginary part of "casin":
  109574. +double: 1
  109575. +float: 2
  109576. +idouble: 1
  109577. +ifloat: 2
  109578. +
  109579. +Function: Real part of "casinh":
  109580. +double: 1
  109581. +float: 2
  109582. +idouble: 1
  109583. +ifloat: 2
  109584. +
  109585. +Function: Imaginary part of "casinh":
  109586. +double: 1
  109587. +float: 1
  109588. +idouble: 1
  109589. +ifloat: 1
  109590. +
  109591. +Function: Real part of "catan":
  109592. +float: 1
  109593. +ifloat: 1
  109594. +
  109595. +Function: Imaginary part of "catan":
  109596. +double: 1
  109597. +float: 1
  109598. +idouble: 1
  109599. +ifloat: 1
  109600. +
  109601. +Function: Real part of "catanh":
  109602. +double: 1
  109603. +float: 1
  109604. +idouble: 1
  109605. +ifloat: 1
  109606. +
  109607. +Function: Imaginary part of "catanh":
  109608. +float: 1
  109609. +ifloat: 1
  109610. +
  109611. +Function: "cbrt":
  109612. +double: 1
  109613. +idouble: 1
  109614. +
  109615. +Function: Real part of "ccos":
  109616. +double: 1
  109617. +float: 1
  109618. +idouble: 1
  109619. +ifloat: 1
  109620. +
  109621. +Function: Imaginary part of "ccos":
  109622. +double: 1
  109623. +float: 1
  109624. +idouble: 1
  109625. +ifloat: 1
  109626. +
  109627. +Function: Real part of "ccosh":
  109628. +double: 1
  109629. +float: 1
  109630. +idouble: 1
  109631. +ifloat: 1
  109632. +
  109633. +Function: Imaginary part of "ccosh":
  109634. +double: 1
  109635. +float: 1
  109636. +idouble: 1
  109637. +ifloat: 1
  109638. +
  109639. +Function: Real part of "cexp":
  109640. +double: 2
  109641. +float: 1
  109642. +idouble: 2
  109643. +ifloat: 1
  109644. +
  109645. +Function: Imaginary part of "cexp":
  109646. +double: 1
  109647. +float: 2
  109648. +idouble: 1
  109649. +ifloat: 2
  109650. +
  109651. +Function: Real part of "clog":
  109652. +double: 1
  109653. +float: 1
  109654. +idouble: 1
  109655. +ifloat: 1
  109656. +
  109657. +Function: Imaginary part of "clog":
  109658. +float: 1
  109659. +ifloat: 1
  109660. +
  109661. +Function: Real part of "clog10":
  109662. +double: 2
  109663. +float: 2
  109664. +idouble: 2
  109665. +ifloat: 2
  109666. +
  109667. +Function: Imaginary part of "clog10":
  109668. +double: 1
  109669. +float: 1
  109670. +idouble: 1
  109671. +ifloat: 1
  109672. +
  109673. +Function: "cos":
  109674. +double: 2
  109675. +float: 1
  109676. +idouble: 2
  109677. +ifloat: 1
  109678. +
  109679. +Function: "cos_downward":
  109680. +float: 1
  109681. +ifloat: 1
  109682. +
  109683. +Function: "cos_tonearest":
  109684. +float: 1
  109685. +ifloat: 1
  109686. +
  109687. +Function: "cos_towardzero":
  109688. +float: 1
  109689. +ifloat: 1
  109690. +
  109691. +Function: "cos_upward":
  109692. +float: 2
  109693. +ifloat: 2
  109694. +
  109695. +Function: "cosh_downward":
  109696. +float: 1
  109697. +ifloat: 1
  109698. +
  109699. +Function: "cosh_towardzero":
  109700. +float: 1
  109701. +ifloat: 1
  109702. +
  109703. +Function: Real part of "cpow":
  109704. +double: 2
  109705. +float: 4
  109706. +idouble: 2
  109707. +ifloat: 4
  109708. +
  109709. +Function: Imaginary part of "cpow":
  109710. +float: 2
  109711. +ifloat: 2
  109712. +
  109713. +Function: Real part of "csin":
  109714. +double: 1
  109715. +float: 1
  109716. +idouble: 1
  109717. +ifloat: 1
  109718. +
  109719. +Function: Real part of "csinh":
  109720. +float: 1
  109721. +ifloat: 1
  109722. +
  109723. +Function: Imaginary part of "csinh":
  109724. +double: 1
  109725. +float: 1
  109726. +idouble: 1
  109727. +ifloat: 1
  109728. +
  109729. +Function: Real part of "csqrt":
  109730. +double: 1
  109731. +float: 1
  109732. +idouble: 1
  109733. +ifloat: 1
  109734. +
  109735. +Function: Imaginary part of "csqrt":
  109736. +double: 1
  109737. +float: 1
  109738. +idouble: 1
  109739. +ifloat: 1
  109740. +
  109741. +Function: Real part of "ctan":
  109742. +double: 1
  109743. +float: 1
  109744. +idouble: 1
  109745. +ifloat: 1
  109746. +
  109747. +Function: Imaginary part of "ctan":
  109748. +double: 1
  109749. +idouble: 1
  109750. +
  109751. +Function: Real part of "ctan_downward":
  109752. +double: 2
  109753. +float: 1
  109754. +idouble: 2
  109755. +ifloat: 1
  109756. +
  109757. +Function: Imaginary part of "ctan_downward":
  109758. +float: 1
  109759. +ifloat: 1
  109760. +
  109761. +Function: Real part of "ctan_tonearest":
  109762. +float: 1
  109763. +ifloat: 1
  109764. +
  109765. +Function: Imaginary part of "ctan_tonearest":
  109766. +float: 1
  109767. +ifloat: 1
  109768. +
  109769. +Function: Real part of "ctan_towardzero":
  109770. +float: 1
  109771. +ifloat: 1
  109772. +
  109773. +Function: Imaginary part of "ctan_towardzero":
  109774. +float: 1
  109775. +ifloat: 1
  109776. +
  109777. +Function: Real part of "ctan_upward":
  109778. +double: 2
  109779. +float: 1
  109780. +idouble: 2
  109781. +ifloat: 1
  109782. +
  109783. +Function: Imaginary part of "ctan_upward":
  109784. +double: 1
  109785. +float: 2
  109786. +idouble: 1
  109787. +ifloat: 2
  109788. +
  109789. +Function: Real part of "ctanh":
  109790. +double: 1
  109791. +float: 1
  109792. +idouble: 1
  109793. +ifloat: 1
  109794. +
  109795. +Function: Imaginary part of "ctanh":
  109796. +double: 1
  109797. +float: 2
  109798. +idouble: 1
  109799. +ifloat: 2
  109800. +
  109801. +Function: Real part of "ctanh_downward":
  109802. +float: 1
  109803. +ifloat: 1
  109804. +
  109805. +Function: Imaginary part of "ctanh_downward":
  109806. +double: 2
  109807. +float: 1
  109808. +idouble: 2
  109809. +ifloat: 1
  109810. +
  109811. +Function: Real part of "ctanh_tonearest":
  109812. +float: 1
  109813. +ifloat: 1
  109814. +
  109815. +Function: Imaginary part of "ctanh_tonearest":
  109816. +float: 1
  109817. +ifloat: 1
  109818. +
  109819. +Function: Real part of "ctanh_towardzero":
  109820. +float: 1
  109821. +ifloat: 1
  109822. +
  109823. +Function: Imaginary part of "ctanh_towardzero":
  109824. +float: 1
  109825. +ifloat: 1
  109826. +
  109827. +Function: Real part of "ctanh_upward":
  109828. +double: 1
  109829. +float: 2
  109830. +idouble: 1
  109831. +ifloat: 2
  109832. +
  109833. +Function: Imaginary part of "ctanh_upward":
  109834. +double: 2
  109835. +float: 1
  109836. +idouble: 2
  109837. +ifloat: 1
  109838. +
  109839. +Function: "erf":
  109840. +double: 1
  109841. +idouble: 1
  109842. +
  109843. +Function: "erfc":
  109844. +double: 1
  109845. +float: 1
  109846. +idouble: 1
  109847. +ifloat: 1
  109848. +
  109849. +Function: "exp10":
  109850. +double: 1
  109851. +idouble: 1
  109852. +
  109853. +Function: "exp_downward":
  109854. +float: 1
  109855. +ifloat: 1
  109856. +
  109857. +Function: "exp_towardzero":
  109858. +float: 1
  109859. +ifloat: 1
  109860. +
  109861. +Function: "exp_upward":
  109862. +float: 1
  109863. +ifloat: 1
  109864. +
  109865. +Function: "expm1":
  109866. +double: 1
  109867. +float: 1
  109868. +idouble: 1
  109869. +ifloat: 1
  109870. +
  109871. +Function: "gamma":
  109872. +double: 1
  109873. +float: 2
  109874. +idouble: 1
  109875. +ifloat: 2
  109876. +
  109877. +Function: "hypot":
  109878. +float: 1
  109879. +ifloat: 1
  109880. +
  109881. +Function: "j0":
  109882. +double: 2
  109883. +float: 2
  109884. +idouble: 2
  109885. +ifloat: 2
  109886. +
  109887. +Function: "j1":
  109888. +double: 1
  109889. +float: 2
  109890. +idouble: 1
  109891. +ifloat: 2
  109892. +
  109893. +Function: "jn":
  109894. +double: 4
  109895. +float: 5
  109896. +idouble: 4
  109897. +ifloat: 5
  109898. +
  109899. +Function: "lgamma":
  109900. +double: 1
  109901. +float: 2
  109902. +idouble: 1
  109903. +ifloat: 2
  109904. +
  109905. +Function: "log10":
  109906. +double: 1
  109907. +float: 2
  109908. +idouble: 1
  109909. +ifloat: 2
  109910. +
  109911. +Function: "log1p":
  109912. +float: 1
  109913. +ifloat: 1
  109914. +
  109915. +Function: "pow":
  109916. +float: 1
  109917. +ifloat: 1
  109918. +
  109919. +Function: "pow10":
  109920. +double: 1
  109921. +idouble: 1
  109922. +
  109923. +Function: "pow_downward":
  109924. +float: 1
  109925. +ifloat: 1
  109926. +
  109927. +Function: "pow_towardzero":
  109928. +float: 1
  109929. +ifloat: 1
  109930. +
  109931. +Function: "pow_upward":
  109932. +float: 1
  109933. +ifloat: 1
  109934. +
  109935. +Function: "sin_downward":
  109936. +float: 1
  109937. +ifloat: 1
  109938. +
  109939. +Function: "sin_tonearest":
  109940. +float: 1
  109941. +ifloat: 1
  109942. +
  109943. +Function: "sin_towardzero":
  109944. +float: 1
  109945. +ifloat: 1
  109946. +
  109947. +Function: "sin_upward":
  109948. +float: 2
  109949. +ifloat: 2
  109950. +
  109951. +Function: "sincos":
  109952. +double: 1
  109953. +float: 1
  109954. +idouble: 1
  109955. +ifloat: 1
  109956. +
  109957. +Function: "sinh_downward":
  109958. +float: 1
  109959. +ifloat: 1
  109960. +
  109961. +Function: "sinh_towardzero":
  109962. +float: 1
  109963. +ifloat: 1
  109964. +
  109965. +Function: "tan":
  109966. +double: 1
  109967. +idouble: 1
  109968. +
  109969. +Function: "tan_downward":
  109970. +float: 1
  109971. +ifloat: 1
  109972. +
  109973. +Function: "tan_towardzero":
  109974. +float: 1
  109975. +ifloat: 1
  109976. +
  109977. +Function: "tan_upward":
  109978. +float: 1
  109979. +ifloat: 1
  109980. +
  109981. +Function: "tgamma":
  109982. +double: 4
  109983. +float: 3
  109984. +idouble: 4
  109985. +ifloat: 3
  109986. +
  109987. +Function: "y0":
  109988. +double: 2
  109989. +float: 1
  109990. +idouble: 2
  109991. +ifloat: 1
  109992. +
  109993. +Function: "y1":
  109994. +double: 3
  109995. +float: 2
  109996. +idouble: 3
  109997. +ifloat: 2
  109998. +
  109999. +Function: "yn":
  110000. +double: 3
  110001. +float: 2
  110002. +idouble: 3
  110003. +ifloat: 2
  110004. +
  110005. +# end of automatic generation
  110006. diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-mips64 uClibc-git/test/math/libm-test-ulps-mips64
  110007. --- uClibc-0.9.33.2/test/math/libm-test-ulps-mips64 1970-01-01 01:00:00.000000000 +0100
  110008. +++ uClibc-git/test/math/libm-test-ulps-mips64 2014-06-02 17:40:35.266718914 +0200
  110009. @@ -0,0 +1,9633 @@
  110010. +# Begin of automatic generation
  110011. +
  110012. +# acos_downward
  110013. +Test "acos_downward (-0)":
  110014. +float: 1
  110015. +ifloat: 1
  110016. +Test "acos_downward (-0.5)":
  110017. +double: 1
  110018. +idouble: 1
  110019. +Test "acos_downward (-1)":
  110020. +float: 1
  110021. +ifloat: 1
  110022. +Test "acos_downward (0)":
  110023. +float: 1
  110024. +ifloat: 1
  110025. +Test "acos_downward (0.5)":
  110026. +double: 1
  110027. +float: 1
  110028. +idouble: 1
  110029. +ifloat: 1
  110030. +
  110031. +# acos_towardzero
  110032. +Test "acos_towardzero (-0)":
  110033. +float: 1
  110034. +ifloat: 1
  110035. +Test "acos_towardzero (-0.5)":
  110036. +double: 1
  110037. +idouble: 1
  110038. +Test "acos_towardzero (-1)":
  110039. +float: 1
  110040. +ifloat: 1
  110041. +Test "acos_towardzero (0)":
  110042. +float: 1
  110043. +ifloat: 1
  110044. +Test "acos_towardzero (0.5)":
  110045. +double: 1
  110046. +float: 1
  110047. +idouble: 1
  110048. +ifloat: 1
  110049. +
  110050. +# asin_downward
  110051. +Test "asin_downward (-0.5)":
  110052. +double: 1
  110053. +idouble: 1
  110054. +Test "asin_downward (0.5)":
  110055. +double: 1
  110056. +idouble: 1
  110057. +Test "asin_downward (1.0)":
  110058. +float: 1
  110059. +ifloat: 1
  110060. +
  110061. +# asin_towardzero
  110062. +Test "asin_towardzero (-0.5)":
  110063. +double: 1
  110064. +idouble: 1
  110065. +Test "asin_towardzero (-1.0)":
  110066. +float: 1
  110067. +ifloat: 1
  110068. +Test "asin_towardzero (0.5)":
  110069. +double: 1
  110070. +idouble: 1
  110071. +Test "asin_towardzero (1.0)":
  110072. +float: 1
  110073. +ifloat: 1
  110074. +
  110075. +# asin_upward
  110076. +Test "asin_upward (-1.0)":
  110077. +float: 1
  110078. +ifloat: 1
  110079. +
  110080. +# atan2
  110081. +Test "atan2 (-0.00756827042671106339, -.001792735857538728036)":
  110082. +ildouble: 1
  110083. +ldouble: 1
  110084. +Test "atan2 (-0.75, -1.0)":
  110085. +float: 1
  110086. +ifloat: 1
  110087. +ildouble: 1
  110088. +ldouble: 1
  110089. +Test "atan2 (-max_value, -min_value)":
  110090. +float: 1
  110091. +ifloat: 1
  110092. +Test "atan2 (0.75, -1.0)":
  110093. +float: 1
  110094. +ifloat: 1
  110095. +ildouble: 1
  110096. +ldouble: 1
  110097. +Test "atan2 (1.390625, 0.9296875)":
  110098. +float: 1
  110099. +ifloat: 1
  110100. +ildouble: 1
  110101. +ldouble: 1
  110102. +
  110103. +# atanh
  110104. +Test "atanh (0.75)":
  110105. +float: 1
  110106. +ifloat: 1
  110107. +
  110108. +# cacos
  110109. +Test "Imaginary part of: cacos (+0 + 0.5 i)":
  110110. +float: 1
  110111. +ifloat: 1
  110112. +ildouble: 1
  110113. +ldouble: 1
  110114. +Test "Imaginary part of: cacos (+0 + 1.0 i)":
  110115. +double: 1
  110116. +float: 1
  110117. +idouble: 1
  110118. +ifloat: 1
  110119. +ildouble: 1
  110120. +ldouble: 1
  110121. +Test "Imaginary part of: cacos (+0 + 1.5 i)":
  110122. +double: 1
  110123. +idouble: 1
  110124. +ildouble: 1
  110125. +ldouble: 1
  110126. +Test "Imaginary part of: cacos (+0 - 0.5 i)":
  110127. +float: 1
  110128. +ifloat: 1
  110129. +ildouble: 1
  110130. +ldouble: 1
  110131. +Test "Imaginary part of: cacos (+0 - 1.0 i)":
  110132. +double: 1
  110133. +float: 1
  110134. +idouble: 1
  110135. +ifloat: 1
  110136. +ildouble: 1
  110137. +ldouble: 1
  110138. +Test "Imaginary part of: cacos (+0 - 1.5 i)":
  110139. +double: 1
  110140. +idouble: 1
  110141. +ildouble: 1
  110142. +ldouble: 1
  110143. +Test "Imaginary part of: cacos (-0 + 0.5 i)":
  110144. +float: 1
  110145. +ifloat: 1
  110146. +ildouble: 1
  110147. +ldouble: 1
  110148. +Test "Imaginary part of: cacos (-0 + 1.0 i)":
  110149. +double: 1
  110150. +float: 1
  110151. +idouble: 1
  110152. +ifloat: 1
  110153. +ildouble: 1
  110154. +ldouble: 1
  110155. +Test "Imaginary part of: cacos (-0 + 1.5 i)":
  110156. +double: 1
  110157. +idouble: 1
  110158. +ildouble: 1
  110159. +ldouble: 1
  110160. +Test "Imaginary part of: cacos (-0 - 0.5 i)":
  110161. +float: 1
  110162. +ifloat: 1
  110163. +ildouble: 1
  110164. +ldouble: 1
  110165. +Test "Imaginary part of: cacos (-0 - 1.0 i)":
  110166. +double: 1
  110167. +float: 1
  110168. +idouble: 1
  110169. +ifloat: 1
  110170. +ildouble: 1
  110171. +ldouble: 1
  110172. +Test "Imaginary part of: cacos (-0 - 1.5 i)":
  110173. +double: 1
  110174. +idouble: 1
  110175. +ildouble: 1
  110176. +ldouble: 1
  110177. +Test "Imaginary part of: cacos (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  110178. +ildouble: 1
  110179. +ldouble: 1
  110180. +Test "Imaginary part of: cacos (-0.0 + 0x0.ffffffffffffffffp0 i)":
  110181. +ildouble: 1
  110182. +ldouble: 1
  110183. +Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000000000000000000001p0 i)":
  110184. +ildouble: 1
  110185. +ldouble: 1
  110186. +Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000000002p0 i)":
  110187. +ildouble: 1
  110188. +ldouble: 1
  110189. +Test "Imaginary part of: cacos (-0.0 + 0x1.0000000000001p0 i)":
  110190. +ildouble: 1
  110191. +ldouble: 1
  110192. +Test "Imaginary part of: cacos (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  110193. +ildouble: 1
  110194. +ldouble: 1
  110195. +Test "Imaginary part of: cacos (-0.0 - 0x0.ffffffffffffffffp0 i)":
  110196. +ildouble: 1
  110197. +ldouble: 1
  110198. +Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000000000000000000001p0 i)":
  110199. +ildouble: 1
  110200. +ldouble: 1
  110201. +Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000000002p0 i)":
  110202. +ildouble: 1
  110203. +ldouble: 1
  110204. +Test "Imaginary part of: cacos (-0.0 - 0x1.0000000000001p0 i)":
  110205. +ildouble: 1
  110206. +ldouble: 1
  110207. +Test "Real part of: cacos (-0.25 + 1.0 i)":
  110208. +double: 1
  110209. +float: 1
  110210. +idouble: 1
  110211. +ifloat: 1
  110212. +Test "Imaginary part of: cacos (-0.25 + 1.0 i)":
  110213. +float: 1
  110214. +ifloat: 1
  110215. +ildouble: 1
  110216. +ldouble: 1
  110217. +Test "Real part of: cacos (-0.25 - 1.0 i)":
  110218. +double: 1
  110219. +float: 1
  110220. +idouble: 1
  110221. +ifloat: 1
  110222. +Test "Imaginary part of: cacos (-0.25 - 1.0 i)":
  110223. +float: 1
  110224. +ifloat: 1
  110225. +ildouble: 1
  110226. +ldouble: 1
  110227. +Test "Real part of: cacos (-0.5 + +0 i)":
  110228. +ildouble: 1
  110229. +ldouble: 1
  110230. +Test "Real part of: cacos (-0.5 + 0x1.fp-1025 i)":
  110231. +ildouble: 1
  110232. +ldouble: 1
  110233. +Test "Real part of: cacos (-0.5 + 0x1.fp-129 i)":
  110234. +ildouble: 1
  110235. +ldouble: 1
  110236. +Test "Imaginary part of: cacos (-0.5 + 0x1.fp-129 i)":
  110237. +double: 1
  110238. +idouble: 1
  110239. +Test "Real part of: cacos (-0.5 + 0x1.fp-16385 i)":
  110240. +ildouble: 1
  110241. +ldouble: 1
  110242. +Test "Real part of: cacos (-0.5 + 0x1p-105 i)":
  110243. +ildouble: 1
  110244. +ldouble: 1
  110245. +Test "Imaginary part of: cacos (-0.5 + 0x1p-105 i)":
  110246. +double: 1
  110247. +idouble: 1
  110248. +ildouble: 1
  110249. +ldouble: 1
  110250. +Test "Real part of: cacos (-0.5 + 0x1p-112 i)":
  110251. +ildouble: 1
  110252. +ldouble: 1
  110253. +Test "Imaginary part of: cacos (-0.5 + 0x1p-112 i)":
  110254. +double: 1
  110255. +idouble: 1
  110256. +ildouble: 1
  110257. +ldouble: 1
  110258. +Test "Imaginary part of: cacos (-0.5 + 0x1p-23 i)":
  110259. +double: 1
  110260. +idouble: 1
  110261. +ildouble: 1
  110262. +ldouble: 1
  110263. +Test "Real part of: cacos (-0.5 + 0x1p-52 i)":
  110264. +ildouble: 1
  110265. +ldouble: 1
  110266. +Test "Real part of: cacos (-0.5 + 0x1p-63 i)":
  110267. +ildouble: 1
  110268. +ldouble: 1
  110269. +Test "Imaginary part of: cacos (-0.5 + 0x1p-63 i)":
  110270. +ildouble: 1
  110271. +ldouble: 1
  110272. +Test "Real part of: cacos (-0.5 + 1.0 i)":
  110273. +float: 1
  110274. +ifloat: 1
  110275. +Test "Imaginary part of: cacos (-0.5 + 1.0 i)":
  110276. +double: 1
  110277. +idouble: 1
  110278. +ildouble: 1
  110279. +ldouble: 1
  110280. +Test "Real part of: cacos (-0.5 - 0 i)":
  110281. +ildouble: 1
  110282. +ldouble: 1
  110283. +Test "Real part of: cacos (-0.5 - 0x1.fp-1025 i)":
  110284. +ildouble: 1
  110285. +ldouble: 1
  110286. +Test "Real part of: cacos (-0.5 - 0x1.fp-129 i)":
  110287. +ildouble: 1
  110288. +ldouble: 1
  110289. +Test "Imaginary part of: cacos (-0.5 - 0x1.fp-129 i)":
  110290. +double: 1
  110291. +idouble: 1
  110292. +Test "Real part of: cacos (-0.5 - 0x1.fp-16385 i)":
  110293. +ildouble: 1
  110294. +ldouble: 1
  110295. +Test "Real part of: cacos (-0.5 - 0x1p-105 i)":
  110296. +ildouble: 1
  110297. +ldouble: 1
  110298. +Test "Imaginary part of: cacos (-0.5 - 0x1p-105 i)":
  110299. +double: 1
  110300. +idouble: 1
  110301. +ildouble: 1
  110302. +ldouble: 1
  110303. +Test "Real part of: cacos (-0.5 - 0x1p-112 i)":
  110304. +ildouble: 1
  110305. +ldouble: 1
  110306. +Test "Imaginary part of: cacos (-0.5 - 0x1p-112 i)":
  110307. +double: 1
  110308. +idouble: 1
  110309. +ildouble: 1
  110310. +ldouble: 1
  110311. +Test "Imaginary part of: cacos (-0.5 - 0x1p-23 i)":
  110312. +double: 1
  110313. +idouble: 1
  110314. +ildouble: 1
  110315. +ldouble: 1
  110316. +Test "Real part of: cacos (-0.5 - 0x1p-52 i)":
  110317. +ildouble: 1
  110318. +ldouble: 1
  110319. +Test "Real part of: cacos (-0.5 - 0x1p-63 i)":
  110320. +ildouble: 1
  110321. +ldouble: 1
  110322. +Test "Imaginary part of: cacos (-0.5 - 0x1p-63 i)":
  110323. +ildouble: 1
  110324. +ldouble: 1
  110325. +Test "Real part of: cacos (-0.5 - 1.0 i)":
  110326. +float: 1
  110327. +ifloat: 1
  110328. +Test "Imaginary part of: cacos (-0.5 - 1.0 i)":
  110329. +double: 1
  110330. +idouble: 1
  110331. +ildouble: 1
  110332. +ldouble: 1
  110333. +Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  110334. +double: 1
  110335. +idouble: 1
  110336. +Test "Imaginary part of: cacos (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  110337. +double: 1
  110338. +idouble: 1
  110339. +Test "Imaginary part of: cacos (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  110340. +ildouble: 1
  110341. +ldouble: 1
  110342. +Test "Imaginary part of: cacos (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  110343. +ildouble: 1
  110344. +ldouble: 1
  110345. +Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
  110346. +ildouble: 1
  110347. +ldouble: 1
  110348. +Test "Imaginary part of: cacos (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
  110349. +ildouble: 1
  110350. +ldouble: 1
  110351. +Test "Imaginary part of: cacos (-0x0.ffffffp0 + 0x1p-23 i)":
  110352. +float: 2
  110353. +ifloat: 2
  110354. +Test "Imaginary part of: cacos (-0x0.ffffffp0 - 0x1p-23 i)":
  110355. +float: 2
  110356. +ifloat: 2
  110357. +Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 + 0.0 i)":
  110358. +ildouble: 1
  110359. +ldouble: 1
  110360. +Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  110361. +ildouble: 1
  110362. +ldouble: 1
  110363. +Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  110364. +ildouble: 1
  110365. +ldouble: 1
  110366. +Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0.0 i)":
  110367. +ildouble: 1
  110368. +ldouble: 1
  110369. +Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  110370. +ildouble: 1
  110371. +ldouble: 1
  110372. +Test "Imaginary part of: cacos (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  110373. +ildouble: 1
  110374. +ldouble: 1
  110375. +Test "Imaginary part of: cacos (-0x1.000002p0 + 0x1p-23 i)":
  110376. +float: 1
  110377. +ifloat: 1
  110378. +ildouble: 1
  110379. +ldouble: 1
  110380. +Test "Imaginary part of: cacos (-0x1.000002p0 - 0x1p-23 i)":
  110381. +float: 1
  110382. +ifloat: 1
  110383. +ildouble: 1
  110384. +ldouble: 1
  110385. +Test "Imaginary part of: cacos (-0x1.fp-10 + 1.0 i)":
  110386. +double: 1
  110387. +idouble: 1
  110388. +Test "Imaginary part of: cacos (-0x1.fp-10 - 1.0 i)":
  110389. +double: 1
  110390. +idouble: 1
  110391. +Test "Real part of: cacos (-0x1.fp-100 + 1.0 i)":
  110392. +float: 1
  110393. +ifloat: 1
  110394. +Test "Imaginary part of: cacos (-0x1.fp-100 + 1.0 i)":
  110395. +double: 1
  110396. +float: 1
  110397. +idouble: 1
  110398. +ifloat: 1
  110399. +ildouble: 1
  110400. +ldouble: 1
  110401. +Test "Real part of: cacos (-0x1.fp-100 - 1.0 i)":
  110402. +float: 1
  110403. +ifloat: 1
  110404. +Test "Imaginary part of: cacos (-0x1.fp-100 - 1.0 i)":
  110405. +double: 1
  110406. +float: 1
  110407. +idouble: 1
  110408. +ifloat: 1
  110409. +ildouble: 1
  110410. +ldouble: 1
  110411. +Test "Imaginary part of: cacos (-0x1.fp-1000 + 1.0 i)":
  110412. +double: 1
  110413. +idouble: 1
  110414. +ildouble: 1
  110415. +ldouble: 1
  110416. +Test "Imaginary part of: cacos (-0x1.fp-1000 - 1.0 i)":
  110417. +double: 1
  110418. +idouble: 1
  110419. +ildouble: 1
  110420. +ldouble: 1
  110421. +Test "Imaginary part of: cacos (-0x1.fp-10000 + 1.0 i)":
  110422. +ildouble: 1
  110423. +ldouble: 1
  110424. +Test "Imaginary part of: cacos (-0x1.fp-10000 - 1.0 i)":
  110425. +ildouble: 1
  110426. +ldouble: 1
  110427. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 0.5 i)":
  110428. +ildouble: 1
  110429. +ldouble: 1
  110430. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  110431. +ildouble: 1
  110432. +ldouble: 1
  110433. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
  110434. +ildouble: 1
  110435. +ldouble: 1
  110436. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.0 i)":
  110437. +double: 1
  110438. +idouble: 1
  110439. +ildouble: 1
  110440. +ldouble: 1
  110441. +Test "Imaginary part of: cacos (-0x1.fp-1025 + 1.5 i)":
  110442. +double: 1
  110443. +idouble: 1
  110444. +ildouble: 1
  110445. +ldouble: 1
  110446. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 0.5 i)":
  110447. +ildouble: 1
  110448. +ldouble: 1
  110449. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  110450. +ildouble: 1
  110451. +ldouble: 1
  110452. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
  110453. +ildouble: 1
  110454. +ldouble: 1
  110455. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.0 i)":
  110456. +double: 1
  110457. +idouble: 1
  110458. +ildouble: 1
  110459. +ldouble: 1
  110460. +Test "Imaginary part of: cacos (-0x1.fp-1025 - 1.5 i)":
  110461. +double: 1
  110462. +idouble: 1
  110463. +ildouble: 1
  110464. +ldouble: 1
  110465. +Test "Real part of: cacos (-0x1.fp-129 + 0.5 i)":
  110466. +float: 1
  110467. +ifloat: 1
  110468. +Test "Imaginary part of: cacos (-0x1.fp-129 + 0.5 i)":
  110469. +float: 1
  110470. +ifloat: 1
  110471. +ildouble: 1
  110472. +ldouble: 1
  110473. +Test "Real part of: cacos (-0x1.fp-129 + 0x0.ffffffp0 i)":
  110474. +float: 1
  110475. +ifloat: 1
  110476. +Test "Real part of: cacos (-0x1.fp-129 + 0x1.000002p0 i)":
  110477. +float: 1
  110478. +ifloat: 1
  110479. +Test "Real part of: cacos (-0x1.fp-129 + 0x1.fp-129 i)":
  110480. +float: 1
  110481. +ifloat: 1
  110482. +Test "Real part of: cacos (-0x1.fp-129 + 0x1p-23 i)":
  110483. +float: 1
  110484. +ifloat: 1
  110485. +Test "Real part of: cacos (-0x1.fp-129 + 1.0 i)":
  110486. +float: 1
  110487. +ifloat: 1
  110488. +Test "Imaginary part of: cacos (-0x1.fp-129 + 1.0 i)":
  110489. +double: 1
  110490. +float: 1
  110491. +idouble: 1
  110492. +ifloat: 1
  110493. +ildouble: 1
  110494. +ldouble: 1
  110495. +Test "Real part of: cacos (-0x1.fp-129 + 1.5 i)":
  110496. +float: 1
  110497. +ifloat: 1
  110498. +Test "Imaginary part of: cacos (-0x1.fp-129 + 1.5 i)":
  110499. +double: 1
  110500. +idouble: 1
  110501. +ildouble: 1
  110502. +ldouble: 1
  110503. +Test "Real part of: cacos (-0x1.fp-129 - 0.5 i)":
  110504. +float: 1
  110505. +ifloat: 1
  110506. +Test "Imaginary part of: cacos (-0x1.fp-129 - 0.5 i)":
  110507. +float: 1
  110508. +ifloat: 1
  110509. +ildouble: 1
  110510. +ldouble: 1
  110511. +Test "Real part of: cacos (-0x1.fp-129 - 0x0.ffffffp0 i)":
  110512. +float: 1
  110513. +ifloat: 1
  110514. +Test "Real part of: cacos (-0x1.fp-129 - 0x1.000002p0 i)":
  110515. +float: 1
  110516. +ifloat: 1
  110517. +Test "Real part of: cacos (-0x1.fp-129 - 0x1.fp-129 i)":
  110518. +float: 1
  110519. +ifloat: 1
  110520. +Test "Real part of: cacos (-0x1.fp-129 - 0x1p-23 i)":
  110521. +float: 1
  110522. +ifloat: 1
  110523. +Test "Real part of: cacos (-0x1.fp-129 - 1.0 i)":
  110524. +float: 1
  110525. +ifloat: 1
  110526. +Test "Imaginary part of: cacos (-0x1.fp-129 - 1.0 i)":
  110527. +double: 1
  110528. +float: 1
  110529. +idouble: 1
  110530. +ifloat: 1
  110531. +ildouble: 1
  110532. +ldouble: 1
  110533. +Test "Real part of: cacos (-0x1.fp-129 - 1.5 i)":
  110534. +float: 1
  110535. +ifloat: 1
  110536. +Test "Imaginary part of: cacos (-0x1.fp-129 - 1.5 i)":
  110537. +double: 1
  110538. +idouble: 1
  110539. +ildouble: 1
  110540. +ldouble: 1
  110541. +Test "Imaginary part of: cacos (-0x1.fp-16385 + 0.5 i)":
  110542. +ildouble: 1
  110543. +ldouble: 1
  110544. +Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
  110545. +ildouble: 1
  110546. +ldouble: 1
  110547. +Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
  110548. +ildouble: 1
  110549. +ldouble: 1
  110550. +Test "Imaginary part of: cacos (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
  110551. +ildouble: 1
  110552. +ldouble: 1
  110553. +Test "Imaginary part of: cacos (-0x1.fp-16385 + 1.0 i)":
  110554. +ildouble: 1
  110555. +ldouble: 1
  110556. +Test "Imaginary part of: cacos (-0x1.fp-16385 + 1.5 i)":
  110557. +ildouble: 1
  110558. +ldouble: 1
  110559. +Test "Imaginary part of: cacos (-0x1.fp-16385 - 0.5 i)":
  110560. +ildouble: 1
  110561. +ldouble: 1
  110562. +Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
  110563. +ildouble: 1
  110564. +ldouble: 1
  110565. +Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
  110566. +ildouble: 1
  110567. +ldouble: 1
  110568. +Test "Imaginary part of: cacos (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
  110569. +ildouble: 1
  110570. +ldouble: 1
  110571. +Test "Imaginary part of: cacos (-0x1.fp-16385 - 1.0 i)":
  110572. +ildouble: 1
  110573. +ldouble: 1
  110574. +Test "Imaginary part of: cacos (-0x1.fp-16385 - 1.5 i)":
  110575. +ildouble: 1
  110576. +ldouble: 1
  110577. +Test "Real part of: cacos (-0x1.fp-30 + 1.0 i)":
  110578. +float: 1
  110579. +ifloat: 1
  110580. +Test "Imaginary part of: cacos (-0x1.fp-30 + 1.0 i)":
  110581. +double: 1
  110582. +float: 1
  110583. +idouble: 1
  110584. +ifloat: 1
  110585. +ildouble: 1
  110586. +ldouble: 1
  110587. +Test "Real part of: cacos (-0x1.fp-30 - 1.0 i)":
  110588. +float: 1
  110589. +ifloat: 1
  110590. +Test "Imaginary part of: cacos (-0x1.fp-30 - 1.0 i)":
  110591. +double: 1
  110592. +float: 1
  110593. +idouble: 1
  110594. +ifloat: 1
  110595. +ildouble: 1
  110596. +ldouble: 1
  110597. +Test "Real part of: cacos (-0x1p-105 + 0.0 i)":
  110598. +float: 1
  110599. +ifloat: 1
  110600. +Test "Real part of: cacos (-0x1p-105 + 0.5 i)":
  110601. +float: 1
  110602. +ifloat: 1
  110603. +ildouble: 1
  110604. +ldouble: 1
  110605. +Test "Imaginary part of: cacos (-0x1p-105 + 0.5 i)":
  110606. +float: 1
  110607. +ifloat: 1
  110608. +Test "Imaginary part of: cacos (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  110609. +ildouble: 1
  110610. +ldouble: 1
  110611. +Test "Real part of: cacos (-0x1p-105 + 0x1p-105 i)":
  110612. +float: 1
  110613. +ifloat: 1
  110614. +Test "Real part of: cacos (-0x1p-105 - 0.0 i)":
  110615. +float: 1
  110616. +ifloat: 1
  110617. +Test "Real part of: cacos (-0x1p-105 - 0.5 i)":
  110618. +float: 1
  110619. +ifloat: 1
  110620. +ildouble: 1
  110621. +ldouble: 1
  110622. +Test "Imaginary part of: cacos (-0x1p-105 - 0.5 i)":
  110623. +float: 1
  110624. +ifloat: 1
  110625. +Test "Imaginary part of: cacos (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  110626. +ildouble: 1
  110627. +ldouble: 1
  110628. +Test "Real part of: cacos (-0x1p-105 - 0x1p-105 i)":
  110629. +float: 1
  110630. +ifloat: 1
  110631. +Test "Real part of: cacos (-0x1p-112 + 0.0 i)":
  110632. +float: 1
  110633. +ifloat: 1
  110634. +Test "Real part of: cacos (-0x1p-112 + 0.5 i)":
  110635. +float: 1
  110636. +ifloat: 1
  110637. +Test "Imaginary part of: cacos (-0x1p-112 + 0.5 i)":
  110638. +float: 1
  110639. +ifloat: 1
  110640. +Test "Real part of: cacos (-0x1p-112 + 0x1p-112 i)":
  110641. +float: 1
  110642. +ifloat: 1
  110643. +Test "Real part of: cacos (-0x1p-112 - 0.0 i)":
  110644. +float: 1
  110645. +ifloat: 1
  110646. +Test "Real part of: cacos (-0x1p-112 - 0.5 i)":
  110647. +float: 1
  110648. +ifloat: 1
  110649. +Test "Imaginary part of: cacos (-0x1p-112 - 0.5 i)":
  110650. +float: 1
  110651. +ifloat: 1
  110652. +Test "Real part of: cacos (-0x1p-112 - 0x1p-112 i)":
  110653. +float: 1
  110654. +ifloat: 1
  110655. +Test "Real part of: cacos (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  110656. +ildouble: 1
  110657. +ldouble: 1
  110658. +Test "Imaginary part of: cacos (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  110659. +ildouble: 1
  110660. +ldouble: 1
  110661. +Test "Real part of: cacos (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  110662. +ildouble: 1
  110663. +ldouble: 1
  110664. +Test "Imaginary part of: cacos (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  110665. +ildouble: 1
  110666. +ldouble: 1
  110667. +Test "Real part of: cacos (-0x1p-23 + 0.0 i)":
  110668. +float: 1
  110669. +ifloat: 1
  110670. +ildouble: 1
  110671. +ldouble: 1
  110672. +Test "Real part of: cacos (-0x1p-23 + 0.5 i)":
  110673. +float: 1
  110674. +ifloat: 1
  110675. +Test "Imaginary part of: cacos (-0x1p-23 + 0.5 i)":
  110676. +float: 1
  110677. +ifloat: 1
  110678. +ildouble: 2
  110679. +ldouble: 2
  110680. +Test "Imaginary part of: cacos (-0x1p-23 + 0x0.ffffffp0 i)":
  110681. +double: 1
  110682. +idouble: 1
  110683. +Test "Real part of: cacos (-0x1p-23 + 0x1.fp-129 i)":
  110684. +float: 1
  110685. +ifloat: 1
  110686. +ildouble: 1
  110687. +ldouble: 1
  110688. +Test "Real part of: cacos (-0x1p-23 + 0x1p-23 i)":
  110689. +float: 1
  110690. +ifloat: 1
  110691. +ildouble: 1
  110692. +ldouble: 1
  110693. +Test "Real part of: cacos (-0x1p-23 - 0.0 i)":
  110694. +float: 1
  110695. +ifloat: 1
  110696. +ildouble: 1
  110697. +ldouble: 1
  110698. +Test "Real part of: cacos (-0x1p-23 - 0.5 i)":
  110699. +float: 1
  110700. +ifloat: 1
  110701. +Test "Imaginary part of: cacos (-0x1p-23 - 0.5 i)":
  110702. +float: 1
  110703. +ifloat: 1
  110704. +ildouble: 2
  110705. +ldouble: 2
  110706. +Test "Imaginary part of: cacos (-0x1p-23 - 0x0.ffffffp0 i)":
  110707. +double: 1
  110708. +idouble: 1
  110709. +Test "Real part of: cacos (-0x1p-23 - 0x1.fp-129 i)":
  110710. +float: 1
  110711. +ifloat: 1
  110712. +ildouble: 1
  110713. +ldouble: 1
  110714. +Test "Real part of: cacos (-0x1p-23 - 0x1p-23 i)":
  110715. +float: 1
  110716. +ifloat: 1
  110717. +ildouble: 1
  110718. +ldouble: 1
  110719. +Test "Real part of: cacos (-0x1p-52 + 0.0 i)":
  110720. +float: 1
  110721. +ifloat: 1
  110722. +Test "Real part of: cacos (-0x1p-52 + 0.5 i)":
  110723. +float: 1
  110724. +ifloat: 1
  110725. +Test "Imaginary part of: cacos (-0x1p-52 + 0.5 i)":
  110726. +float: 1
  110727. +ifloat: 1
  110728. +ildouble: 1
  110729. +ldouble: 1
  110730. +Test "Real part of: cacos (-0x1p-52 + 0x1p-52 i)":
  110731. +float: 1
  110732. +ifloat: 1
  110733. +Test "Real part of: cacos (-0x1p-52 - 0.0 i)":
  110734. +float: 1
  110735. +ifloat: 1
  110736. +Test "Real part of: cacos (-0x1p-52 - 0.5 i)":
  110737. +float: 1
  110738. +ifloat: 1
  110739. +Test "Imaginary part of: cacos (-0x1p-52 - 0.5 i)":
  110740. +float: 1
  110741. +ifloat: 1
  110742. +ildouble: 1
  110743. +ldouble: 1
  110744. +Test "Real part of: cacos (-0x1p-52 - 0x1p-52 i)":
  110745. +float: 1
  110746. +ifloat: 1
  110747. +Test "Real part of: cacos (-0x1p-63 + 0.0 i)":
  110748. +float: 1
  110749. +ifloat: 1
  110750. +Test "Real part of: cacos (-0x1p-63 + 0.5 i)":
  110751. +float: 1
  110752. +ifloat: 1
  110753. +Test "Imaginary part of: cacos (-0x1p-63 + 0.5 i)":
  110754. +float: 1
  110755. +ifloat: 1
  110756. +Test "Imaginary part of: cacos (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
  110757. +ildouble: 1
  110758. +ldouble: 1
  110759. +Test "Imaginary part of: cacos (-0x1p-63 + 0x1.0000000000000002p0 i)":
  110760. +ildouble: 1
  110761. +ldouble: 1
  110762. +Test "Real part of: cacos (-0x1p-63 + 0x1p-63 i)":
  110763. +float: 1
  110764. +ifloat: 1
  110765. +Test "Real part of: cacos (-0x1p-63 - 0.0 i)":
  110766. +float: 1
  110767. +ifloat: 1
  110768. +Test "Real part of: cacos (-0x1p-63 - 0.5 i)":
  110769. +float: 1
  110770. +ifloat: 1
  110771. +Test "Imaginary part of: cacos (-0x1p-63 - 0.5 i)":
  110772. +float: 1
  110773. +ifloat: 1
  110774. +Test "Imaginary part of: cacos (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
  110775. +ildouble: 1
  110776. +ldouble: 1
  110777. +Test "Imaginary part of: cacos (-0x1p-63 - 0x1.0000000000000002p0 i)":
  110778. +ildouble: 1
  110779. +ldouble: 1
  110780. +Test "Real part of: cacos (-0x1p-63 - 0x1p-63 i)":
  110781. +float: 1
  110782. +ifloat: 1
  110783. +Test "Imaginary part of: cacos (-0x1p500 + 1.0 i)":
  110784. +ildouble: 1
  110785. +ldouble: 1
  110786. +Test "Imaginary part of: cacos (-0x1p500 - 1.0 i)":
  110787. +ildouble: 1
  110788. +ldouble: 1
  110789. +Test "Imaginary part of: cacos (-0x1p5000 + 1.0 i)":
  110790. +ildouble: 1
  110791. +ldouble: 1
  110792. +Test "Imaginary part of: cacos (-0x1p5000 - 1.0 i)":
  110793. +ildouble: 1
  110794. +ldouble: 1
  110795. +Test "Imaginary part of: cacos (-1.0 + 0.5 i)":
  110796. +float: 1
  110797. +ifloat: 1
  110798. +Test "Imaginary part of: cacos (-1.0 + 0x1.fp-10 i)":
  110799. +float: 1
  110800. +ifloat: 1
  110801. +ildouble: 1
  110802. +ldouble: 1
  110803. +Test "Imaginary part of: cacos (-1.0 + 0x1.fp-30 i)":
  110804. +ildouble: 1
  110805. +ldouble: 1
  110806. +Test "Real part of: cacos (-1.0 + 0x1p50 i)":
  110807. +float: 1
  110808. +ifloat: 1
  110809. +Test "Imaginary part of: cacos (-1.0 + 0x1p500 i)":
  110810. +ildouble: 1
  110811. +ldouble: 1
  110812. +Test "Imaginary part of: cacos (-1.0 + 0x1p5000 i)":
  110813. +ildouble: 1
  110814. +ldouble: 1
  110815. +Test "Imaginary part of: cacos (-1.0 - 0.5 i)":
  110816. +float: 1
  110817. +ifloat: 1
  110818. +Test "Imaginary part of: cacos (-1.0 - 0x1.fp-10 i)":
  110819. +float: 1
  110820. +ifloat: 1
  110821. +ildouble: 1
  110822. +ldouble: 1
  110823. +Test "Imaginary part of: cacos (-1.0 - 0x1.fp-30 i)":
  110824. +ildouble: 1
  110825. +ldouble: 1
  110826. +Test "Real part of: cacos (-1.0 - 0x1p50 i)":
  110827. +float: 1
  110828. +ifloat: 1
  110829. +Test "Imaginary part of: cacos (-1.0 - 0x1p500 i)":
  110830. +ildouble: 1
  110831. +ldouble: 1
  110832. +Test "Imaginary part of: cacos (-1.0 - 0x1p5000 i)":
  110833. +ildouble: 1
  110834. +ldouble: 1
  110835. +Test "Real part of: cacos (-2 - 3 i)":
  110836. +float: 1
  110837. +ifloat: 1
  110838. +ildouble: 1
  110839. +ldouble: 1
  110840. +Test "Imaginary part of: cacos (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  110841. +ildouble: 1
  110842. +ldouble: 1
  110843. +Test "Imaginary part of: cacos (0.0 + 0x0.ffffffffffffffffp0 i)":
  110844. +ildouble: 1
  110845. +ldouble: 1
  110846. +Test "Imaginary part of: cacos (0.0 + 0x1.0000000000000000000000000001p0 i)":
  110847. +ildouble: 1
  110848. +ldouble: 1
  110849. +Test "Imaginary part of: cacos (0.0 + 0x1.0000000000000002p0 i)":
  110850. +ildouble: 1
  110851. +ldouble: 1
  110852. +Test "Imaginary part of: cacos (0.0 + 0x1.0000000000001p0 i)":
  110853. +ildouble: 1
  110854. +ldouble: 1
  110855. +Test "Imaginary part of: cacos (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  110856. +ildouble: 1
  110857. +ldouble: 1
  110858. +Test "Imaginary part of: cacos (0.0 - 0x0.ffffffffffffffffp0 i)":
  110859. +ildouble: 1
  110860. +ldouble: 1
  110861. +Test "Imaginary part of: cacos (0.0 - 0x1.0000000000000000000000000001p0 i)":
  110862. +ildouble: 1
  110863. +ldouble: 1
  110864. +Test "Imaginary part of: cacos (0.0 - 0x1.0000000000000002p0 i)":
  110865. +ildouble: 1
  110866. +ldouble: 1
  110867. +Test "Imaginary part of: cacos (0.0 - 0x1.0000000000001p0 i)":
  110868. +ildouble: 1
  110869. +ldouble: 1
  110870. +Test "Imaginary part of: cacos (0.25 + 1.0 i)":
  110871. +float: 1
  110872. +ifloat: 1
  110873. +ildouble: 1
  110874. +ldouble: 1
  110875. +Test "Imaginary part of: cacos (0.25 - 1.0 i)":
  110876. +float: 1
  110877. +ifloat: 1
  110878. +ildouble: 1
  110879. +ldouble: 1
  110880. +Test "Real part of: cacos (0.5 + +0 i)":
  110881. +double: 1
  110882. +idouble: 1
  110883. +Test "Real part of: cacos (0.5 + 0x1.fp-1025 i)":
  110884. +double: 1
  110885. +idouble: 1
  110886. +Test "Real part of: cacos (0.5 + 0x1.fp-129 i)":
  110887. +double: 1
  110888. +idouble: 1
  110889. +Test "Imaginary part of: cacos (0.5 + 0x1.fp-129 i)":
  110890. +double: 1
  110891. +idouble: 1
  110892. +Test "Real part of: cacos (0.5 + 0x1p-105 i)":
  110893. +double: 1
  110894. +idouble: 1
  110895. +Test "Imaginary part of: cacos (0.5 + 0x1p-105 i)":
  110896. +double: 1
  110897. +idouble: 1
  110898. +ildouble: 1
  110899. +ldouble: 1
  110900. +Test "Real part of: cacos (0.5 + 0x1p-112 i)":
  110901. +double: 1
  110902. +idouble: 1
  110903. +Test "Imaginary part of: cacos (0.5 + 0x1p-112 i)":
  110904. +double: 1
  110905. +idouble: 1
  110906. +ildouble: 1
  110907. +ldouble: 1
  110908. +Test "Imaginary part of: cacos (0.5 + 0x1p-23 i)":
  110909. +double: 1
  110910. +idouble: 1
  110911. +ildouble: 1
  110912. +ldouble: 1
  110913. +Test "Real part of: cacos (0.5 + 0x1p-52 i)":
  110914. +double: 1
  110915. +idouble: 1
  110916. +ildouble: 1
  110917. +ldouble: 1
  110918. +Test "Real part of: cacos (0.5 + 0x1p-63 i)":
  110919. +double: 1
  110920. +idouble: 1
  110921. +Test "Imaginary part of: cacos (0.5 + 0x1p-63 i)":
  110922. +ildouble: 1
  110923. +ldouble: 1
  110924. +Test "Real part of: cacos (0.5 + 1.0 i)":
  110925. +float: 1
  110926. +ifloat: 1
  110927. +Test "Imaginary part of: cacos (0.5 + 1.0 i)":
  110928. +double: 1
  110929. +idouble: 1
  110930. +ildouble: 1
  110931. +ldouble: 1
  110932. +Test "Real part of: cacos (0.5 - 0 i)":
  110933. +double: 1
  110934. +idouble: 1
  110935. +Test "Real part of: cacos (0.5 - 0x1.fp-1025 i)":
  110936. +double: 1
  110937. +idouble: 1
  110938. +Test "Real part of: cacos (0.5 - 0x1.fp-129 i)":
  110939. +double: 1
  110940. +idouble: 1
  110941. +Test "Imaginary part of: cacos (0.5 - 0x1.fp-129 i)":
  110942. +double: 1
  110943. +idouble: 1
  110944. +Test "Real part of: cacos (0.5 - 0x1p-105 i)":
  110945. +double: 1
  110946. +idouble: 1
  110947. +Test "Imaginary part of: cacos (0.5 - 0x1p-105 i)":
  110948. +double: 1
  110949. +idouble: 1
  110950. +ildouble: 1
  110951. +ldouble: 1
  110952. +Test "Real part of: cacos (0.5 - 0x1p-112 i)":
  110953. +double: 1
  110954. +idouble: 1
  110955. +Test "Imaginary part of: cacos (0.5 - 0x1p-112 i)":
  110956. +double: 1
  110957. +idouble: 1
  110958. +ildouble: 1
  110959. +ldouble: 1
  110960. +Test "Imaginary part of: cacos (0.5 - 0x1p-23 i)":
  110961. +double: 1
  110962. +idouble: 1
  110963. +ildouble: 1
  110964. +ldouble: 1
  110965. +Test "Real part of: cacos (0.5 - 0x1p-52 i)":
  110966. +double: 1
  110967. +idouble: 1
  110968. +ildouble: 1
  110969. +ldouble: 1
  110970. +Test "Real part of: cacos (0.5 - 0x1p-63 i)":
  110971. +double: 1
  110972. +idouble: 1
  110973. +Test "Imaginary part of: cacos (0.5 - 0x1p-63 i)":
  110974. +ildouble: 1
  110975. +ldouble: 1
  110976. +Test "Real part of: cacos (0.5 - 1.0 i)":
  110977. +float: 1
  110978. +ifloat: 1
  110979. +Test "Imaginary part of: cacos (0.5 - 1.0 i)":
  110980. +double: 1
  110981. +idouble: 1
  110982. +ildouble: 1
  110983. +ldouble: 1
  110984. +Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  110985. +double: 1
  110986. +idouble: 1
  110987. +Test "Imaginary part of: cacos (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  110988. +double: 1
  110989. +idouble: 1
  110990. +Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
  110991. +ildouble: 1
  110992. +ldouble: 1
  110993. +Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
  110994. +ildouble: 1
  110995. +ldouble: 1
  110996. +Test "Imaginary part of: cacos (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  110997. +ildouble: 1
  110998. +ldouble: 1
  110999. +Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
  111000. +ildouble: 1
  111001. +ldouble: 1
  111002. +Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
  111003. +ildouble: 1
  111004. +ldouble: 1
  111005. +Test "Imaginary part of: cacos (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  111006. +ildouble: 1
  111007. +ldouble: 1
  111008. +Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 + 0.0 i)":
  111009. +ildouble: 1
  111010. +ldouble: 1
  111011. +Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 + 0x1.fp-16385 i)":
  111012. +ildouble: 1
  111013. +ldouble: 1
  111014. +Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 - 0.0 i)":
  111015. +ildouble: 1
  111016. +ldouble: 1
  111017. +Test "Real part of: cacos (0x0.ffffffffffffffffffffffffffff8p0 - 0x1.fp-16385 i)":
  111018. +ildouble: 1
  111019. +ldouble: 1
  111020. +Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
  111021. +ildouble: 1
  111022. +ldouble: 1
  111023. +Test "Imaginary part of: cacos (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
  111024. +ildouble: 1
  111025. +ldouble: 1
  111026. +Test "Real part of: cacos (0x0.ffffffp0 + 0.0 i)":
  111027. +float: 1
  111028. +ifloat: 1
  111029. +ildouble: 1
  111030. +ldouble: 1
  111031. +Test "Real part of: cacos (0x0.ffffffp0 + 0x1.fp-129 i)":
  111032. +float: 1
  111033. +ifloat: 1
  111034. +ildouble: 1
  111035. +ldouble: 1
  111036. +Test "Real part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
  111037. +float: 2
  111038. +ifloat: 2
  111039. +ildouble: 1
  111040. +ldouble: 1
  111041. +Test "Imaginary part of: cacos (0x0.ffffffp0 + 0x1p-23 i)":
  111042. +float: 2
  111043. +ifloat: 2
  111044. +Test "Real part of: cacos (0x0.ffffffp0 - 0.0 i)":
  111045. +float: 1
  111046. +ifloat: 1
  111047. +ildouble: 1
  111048. +ldouble: 1
  111049. +Test "Real part of: cacos (0x0.ffffffp0 - 0x1.fp-129 i)":
  111050. +float: 1
  111051. +ifloat: 1
  111052. +ildouble: 1
  111053. +ldouble: 1
  111054. +Test "Real part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
  111055. +float: 2
  111056. +ifloat: 2
  111057. +ildouble: 1
  111058. +ldouble: 1
  111059. +Test "Imaginary part of: cacos (0x0.ffffffp0 - 0x1p-23 i)":
  111060. +float: 2
  111061. +ifloat: 2
  111062. +Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0.0 i)":
  111063. +ildouble: 1
  111064. +ldouble: 1
  111065. +Test "Real part of: cacos (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  111066. +ildouble: 1
  111067. +ldouble: 1
  111068. +Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  111069. +ildouble: 1
  111070. +ldouble: 1
  111071. +Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  111072. +ildouble: 1
  111073. +ldouble: 1
  111074. +Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0.0 i)":
  111075. +ildouble: 1
  111076. +ldouble: 1
  111077. +Test "Real part of: cacos (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  111078. +ildouble: 1
  111079. +ldouble: 1
  111080. +Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  111081. +ildouble: 1
  111082. +ldouble: 1
  111083. +Test "Imaginary part of: cacos (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  111084. +ildouble: 1
  111085. +ldouble: 1
  111086. +Test "Real part of: cacos (0x1.0000000000000002p0 + 0x1p-63 i)":
  111087. +ildouble: 2
  111088. +ldouble: 2
  111089. +Test "Real part of: cacos (0x1.0000000000000002p0 - 0x1p-63 i)":
  111090. +ildouble: 2
  111091. +ldouble: 2
  111092. +Test "Real part of: cacos (0x1.0000000000001p0 + 0x1p-52 i)":
  111093. +double: 1
  111094. +idouble: 1
  111095. +ildouble: 1
  111096. +ldouble: 1
  111097. +Test "Real part of: cacos (0x1.0000000000001p0 - 0x1p-52 i)":
  111098. +double: 1
  111099. +idouble: 1
  111100. +ildouble: 1
  111101. +ldouble: 1
  111102. +Test "Real part of: cacos (0x1.000002p0 + 0x1p-23 i)":
  111103. +float: 2
  111104. +ifloat: 2
  111105. +ildouble: 1
  111106. +ldouble: 1
  111107. +Test "Imaginary part of: cacos (0x1.000002p0 + 0x1p-23 i)":
  111108. +float: 1
  111109. +ifloat: 1
  111110. +ildouble: 1
  111111. +ldouble: 1
  111112. +Test "Real part of: cacos (0x1.000002p0 - 0x1p-23 i)":
  111113. +float: 2
  111114. +ifloat: 2
  111115. +ildouble: 1
  111116. +ldouble: 1
  111117. +Test "Imaginary part of: cacos (0x1.000002p0 - 0x1p-23 i)":
  111118. +float: 1
  111119. +ifloat: 1
  111120. +ildouble: 1
  111121. +ldouble: 1
  111122. +Test "Imaginary part of: cacos (0x1.fp-10 + 1.0 i)":
  111123. +double: 1
  111124. +idouble: 1
  111125. +Test "Imaginary part of: cacos (0x1.fp-10 - 1.0 i)":
  111126. +double: 1
  111127. +idouble: 1
  111128. +Test "Real part of: cacos (0x1.fp-100 + 1.0 i)":
  111129. +ildouble: 1
  111130. +ldouble: 1
  111131. +Test "Imaginary part of: cacos (0x1.fp-100 + 1.0 i)":
  111132. +double: 1
  111133. +float: 1
  111134. +idouble: 1
  111135. +ifloat: 1
  111136. +ildouble: 1
  111137. +ldouble: 1
  111138. +Test "Real part of: cacos (0x1.fp-100 - 1.0 i)":
  111139. +ildouble: 1
  111140. +ldouble: 1
  111141. +Test "Imaginary part of: cacos (0x1.fp-100 - 1.0 i)":
  111142. +double: 1
  111143. +float: 1
  111144. +idouble: 1
  111145. +ifloat: 1
  111146. +ildouble: 1
  111147. +ldouble: 1
  111148. +Test "Imaginary part of: cacos (0x1.fp-1000 + 1.0 i)":
  111149. +double: 1
  111150. +idouble: 1
  111151. +ildouble: 1
  111152. +ldouble: 1
  111153. +Test "Imaginary part of: cacos (0x1.fp-1000 - 1.0 i)":
  111154. +double: 1
  111155. +idouble: 1
  111156. +ildouble: 1
  111157. +ldouble: 1
  111158. +Test "Imaginary part of: cacos (0x1.fp-10000 + 1.0 i)":
  111159. +ildouble: 1
  111160. +ldouble: 1
  111161. +Test "Imaginary part of: cacos (0x1.fp-10000 - 1.0 i)":
  111162. +ildouble: 1
  111163. +ldouble: 1
  111164. +Test "Imaginary part of: cacos (0x1.fp-1025 + 0.5 i)":
  111165. +ildouble: 1
  111166. +ldouble: 1
  111167. +Test "Imaginary part of: cacos (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  111168. +ildouble: 1
  111169. +ldouble: 1
  111170. +Test "Imaginary part of: cacos (0x1.fp-1025 + 0x1.0000000000001p0 i)":
  111171. +ildouble: 1
  111172. +ldouble: 1
  111173. +Test "Imaginary part of: cacos (0x1.fp-1025 + 1.0 i)":
  111174. +double: 1
  111175. +idouble: 1
  111176. +ildouble: 1
  111177. +ldouble: 1
  111178. +Test "Imaginary part of: cacos (0x1.fp-1025 + 1.5 i)":
  111179. +double: 1
  111180. +idouble: 1
  111181. +ildouble: 1
  111182. +ldouble: 1
  111183. +Test "Imaginary part of: cacos (0x1.fp-1025 - 0.5 i)":
  111184. +ildouble: 1
  111185. +ldouble: 1
  111186. +Test "Imaginary part of: cacos (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  111187. +ildouble: 1
  111188. +ldouble: 1
  111189. +Test "Imaginary part of: cacos (0x1.fp-1025 - 0x1.0000000000001p0 i)":
  111190. +ildouble: 1
  111191. +ldouble: 1
  111192. +Test "Imaginary part of: cacos (0x1.fp-1025 - 1.0 i)":
  111193. +double: 1
  111194. +idouble: 1
  111195. +ildouble: 1
  111196. +ldouble: 1
  111197. +Test "Imaginary part of: cacos (0x1.fp-1025 - 1.5 i)":
  111198. +double: 1
  111199. +idouble: 1
  111200. +ildouble: 1
  111201. +ldouble: 1
  111202. +Test "Imaginary part of: cacos (0x1.fp-129 + 0.5 i)":
  111203. +float: 1
  111204. +ifloat: 1
  111205. +ildouble: 1
  111206. +ldouble: 1
  111207. +Test "Imaginary part of: cacos (0x1.fp-129 + 1.0 i)":
  111208. +double: 1
  111209. +float: 1
  111210. +idouble: 1
  111211. +ifloat: 1
  111212. +ildouble: 1
  111213. +ldouble: 1
  111214. +Test "Imaginary part of: cacos (0x1.fp-129 + 1.5 i)":
  111215. +double: 1
  111216. +idouble: 1
  111217. +ildouble: 1
  111218. +ldouble: 1
  111219. +Test "Imaginary part of: cacos (0x1.fp-129 - 0.5 i)":
  111220. +float: 1
  111221. +ifloat: 1
  111222. +ildouble: 1
  111223. +ldouble: 1
  111224. +Test "Imaginary part of: cacos (0x1.fp-129 - 1.0 i)":
  111225. +double: 1
  111226. +float: 1
  111227. +idouble: 1
  111228. +ifloat: 1
  111229. +ildouble: 1
  111230. +ldouble: 1
  111231. +Test "Imaginary part of: cacos (0x1.fp-129 - 1.5 i)":
  111232. +double: 1
  111233. +idouble: 1
  111234. +ildouble: 1
  111235. +ldouble: 1
  111236. +Test "Imaginary part of: cacos (0x1.fp-16385 + 0.5 i)":
  111237. +ildouble: 1
  111238. +ldouble: 1
  111239. +Test "Imaginary part of: cacos (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
  111240. +ildouble: 1
  111241. +ldouble: 1
  111242. +Test "Imaginary part of: cacos (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
  111243. +ildouble: 1
  111244. +ldouble: 1
  111245. +Test "Imaginary part of: cacos (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
  111246. +ildouble: 1
  111247. +ldouble: 1
  111248. +Test "Imaginary part of: cacos (0x1.fp-16385 + 1.0 i)":
  111249. +ildouble: 1
  111250. +ldouble: 1
  111251. +Test "Imaginary part of: cacos (0x1.fp-16385 + 1.5 i)":
  111252. +ildouble: 1
  111253. +ldouble: 1
  111254. +Test "Imaginary part of: cacos (0x1.fp-16385 - 0.5 i)":
  111255. +ildouble: 1
  111256. +ldouble: 1
  111257. +Test "Imaginary part of: cacos (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
  111258. +ildouble: 1
  111259. +ldouble: 1
  111260. +Test "Imaginary part of: cacos (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
  111261. +ildouble: 1
  111262. +ldouble: 1
  111263. +Test "Imaginary part of: cacos (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
  111264. +ildouble: 1
  111265. +ldouble: 1
  111266. +Test "Imaginary part of: cacos (0x1.fp-16385 - 1.0 i)":
  111267. +ildouble: 1
  111268. +ldouble: 1
  111269. +Test "Imaginary part of: cacos (0x1.fp-16385 - 1.5 i)":
  111270. +ildouble: 1
  111271. +ldouble: 1
  111272. +Test "Imaginary part of: cacos (0x1.fp-30 + 1.0 i)":
  111273. +double: 1
  111274. +float: 1
  111275. +idouble: 1
  111276. +ifloat: 1
  111277. +ildouble: 1
  111278. +ldouble: 1
  111279. +Test "Imaginary part of: cacos (0x1.fp-30 - 1.0 i)":
  111280. +double: 1
  111281. +float: 1
  111282. +idouble: 1
  111283. +ifloat: 1
  111284. +ildouble: 1
  111285. +ldouble: 1
  111286. +Test "Imaginary part of: cacos (0x1.fp1023 + 0x1.fp1023 i)":
  111287. +double: 1
  111288. +idouble: 1
  111289. +Test "Imaginary part of: cacos (0x1.fp127 + 0x1.fp127 i)":
  111290. +double: 1
  111291. +idouble: 1
  111292. +Test "Imaginary part of: cacos (0x1.fp16383 + 0x1.fp16383 i)":
  111293. +ildouble: 1
  111294. +ldouble: 1
  111295. +Test "Imaginary part of: cacos (0x1p-105 + 0.5 i)":
  111296. +float: 1
  111297. +ifloat: 1
  111298. +Test "Real part of: cacos (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  111299. +ildouble: 1
  111300. +ldouble: 1
  111301. +Test "Imaginary part of: cacos (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  111302. +ildouble: 1
  111303. +ldouble: 1
  111304. +Test "Imaginary part of: cacos (0x1p-105 - 0.5 i)":
  111305. +float: 1
  111306. +ifloat: 1
  111307. +Test "Real part of: cacos (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  111308. +ildouble: 1
  111309. +ldouble: 1
  111310. +Test "Imaginary part of: cacos (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  111311. +ildouble: 1
  111312. +ldouble: 1
  111313. +Test "Imaginary part of: cacos (0x1p-112 + 0.5 i)":
  111314. +float: 1
  111315. +ifloat: 1
  111316. +Test "Real part of: cacos (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
  111317. +ildouble: 1
  111318. +ldouble: 1
  111319. +Test "Imaginary part of: cacos (0x1p-112 - 0.5 i)":
  111320. +float: 1
  111321. +ifloat: 1
  111322. +Test "Real part of: cacos (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
  111323. +ildouble: 1
  111324. +ldouble: 1
  111325. +Test "Imaginary part of: cacos (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  111326. +ildouble: 1
  111327. +ldouble: 1
  111328. +Test "Imaginary part of: cacos (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  111329. +ildouble: 1
  111330. +ldouble: 1
  111331. +Test "Imaginary part of: cacos (0x1p-23 + 0.5 i)":
  111332. +float: 1
  111333. +ifloat: 1
  111334. +ildouble: 2
  111335. +ldouble: 2
  111336. +Test "Imaginary part of: cacos (0x1p-23 + 0x0.ffffffp0 i)":
  111337. +double: 1
  111338. +idouble: 1
  111339. +Test "Real part of: cacos (0x1p-23 + 0x1.000002p0 i)":
  111340. +ildouble: 1
  111341. +ldouble: 1
  111342. +Test "Imaginary part of: cacos (0x1p-23 - 0.5 i)":
  111343. +float: 1
  111344. +ifloat: 1
  111345. +ildouble: 2
  111346. +ldouble: 2
  111347. +Test "Imaginary part of: cacos (0x1p-23 - 0x0.ffffffp0 i)":
  111348. +double: 1
  111349. +idouble: 1
  111350. +Test "Real part of: cacos (0x1p-23 - 0x1.000002p0 i)":
  111351. +ildouble: 1
  111352. +ldouble: 1
  111353. +Test "Real part of: cacos (0x1p-52 + 0.5 i)":
  111354. +ildouble: 1
  111355. +ldouble: 1
  111356. +Test "Imaginary part of: cacos (0x1p-52 + 0.5 i)":
  111357. +float: 1
  111358. +ifloat: 1
  111359. +ildouble: 1
  111360. +ldouble: 1
  111361. +Test "Real part of: cacos (0x1p-52 + 0x0.fffffffffffff8p0 i)":
  111362. +ildouble: 1
  111363. +ldouble: 1
  111364. +Test "Real part of: cacos (0x1p-52 - 0.5 i)":
  111365. +ildouble: 1
  111366. +ldouble: 1
  111367. +Test "Imaginary part of: cacos (0x1p-52 - 0.5 i)":
  111368. +float: 1
  111369. +ifloat: 1
  111370. +ildouble: 1
  111371. +ldouble: 1
  111372. +Test "Real part of: cacos (0x1p-52 - 0x0.fffffffffffff8p0 i)":
  111373. +ildouble: 1
  111374. +ldouble: 1
  111375. +Test "Real part of: cacos (0x1p-63 + 0.5 i)":
  111376. +ildouble: 1
  111377. +ldouble: 1
  111378. +Test "Imaginary part of: cacos (0x1p-63 + 0.5 i)":
  111379. +float: 1
  111380. +ifloat: 1
  111381. +Test "Imaginary part of: cacos (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
  111382. +ildouble: 1
  111383. +ldouble: 1
  111384. +Test "Imaginary part of: cacos (0x1p-63 + 0x1.0000000000000002p0 i)":
  111385. +ildouble: 1
  111386. +ldouble: 1
  111387. +Test "Real part of: cacos (0x1p-63 - 0.5 i)":
  111388. +ildouble: 1
  111389. +ldouble: 1
  111390. +Test "Imaginary part of: cacos (0x1p-63 - 0.5 i)":
  111391. +float: 1
  111392. +ifloat: 1
  111393. +Test "Imaginary part of: cacos (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
  111394. +ildouble: 1
  111395. +ldouble: 1
  111396. +Test "Imaginary part of: cacos (0x1p-63 - 0x1.0000000000000002p0 i)":
  111397. +ildouble: 1
  111398. +ldouble: 1
  111399. +Test "Imaginary part of: cacos (0x1p500 + 1.0 i)":
  111400. +ildouble: 1
  111401. +ldouble: 1
  111402. +Test "Imaginary part of: cacos (0x1p500 - 1.0 i)":
  111403. +ildouble: 1
  111404. +ldouble: 1
  111405. +Test "Imaginary part of: cacos (0x1p5000 + 1.0 i)":
  111406. +ildouble: 1
  111407. +ldouble: 1
  111408. +Test "Imaginary part of: cacos (0x1p5000 - 1.0 i)":
  111409. +ildouble: 1
  111410. +ldouble: 1
  111411. +Test "Real part of: cacos (1.0 + 0.25 i)":
  111412. +double: 1
  111413. +idouble: 1
  111414. +Test "Real part of: cacos (1.0 + 0.5 i)":
  111415. +float: 1
  111416. +ifloat: 1
  111417. +Test "Imaginary part of: cacos (1.0 + 0.5 i)":
  111418. +float: 1
  111419. +ifloat: 1
  111420. +Test "Real part of: cacos (1.0 + 0x1.fp-10 i)":
  111421. +float: 2
  111422. +ifloat: 2
  111423. +Test "Imaginary part of: cacos (1.0 + 0x1.fp-10 i)":
  111424. +float: 1
  111425. +ifloat: 1
  111426. +ildouble: 1
  111427. +ldouble: 1
  111428. +Test "Real part of: cacos (1.0 + 0x1.fp-100 i)":
  111429. +ildouble: 1
  111430. +ldouble: 1
  111431. +Test "Imaginary part of: cacos (1.0 + 0x1.fp-30 i)":
  111432. +ildouble: 1
  111433. +ldouble: 1
  111434. +Test "Imaginary part of: cacos (1.0 + 0x1p500 i)":
  111435. +ildouble: 1
  111436. +ldouble: 1
  111437. +Test "Imaginary part of: cacos (1.0 + 0x1p5000 i)":
  111438. +ildouble: 1
  111439. +ldouble: 1
  111440. +Test "Real part of: cacos (1.0 - 0.25 i)":
  111441. +double: 1
  111442. +idouble: 1
  111443. +Test "Real part of: cacos (1.0 - 0.5 i)":
  111444. +float: 1
  111445. +ifloat: 1
  111446. +Test "Imaginary part of: cacos (1.0 - 0.5 i)":
  111447. +float: 1
  111448. +ifloat: 1
  111449. +Test "Real part of: cacos (1.0 - 0x1.fp-10 i)":
  111450. +float: 2
  111451. +ifloat: 2
  111452. +Test "Imaginary part of: cacos (1.0 - 0x1.fp-10 i)":
  111453. +float: 1
  111454. +ifloat: 1
  111455. +ildouble: 1
  111456. +ldouble: 1
  111457. +Test "Real part of: cacos (1.0 - 0x1.fp-100 i)":
  111458. +ildouble: 1
  111459. +ldouble: 1
  111460. +Test "Imaginary part of: cacos (1.0 - 0x1.fp-30 i)":
  111461. +ildouble: 1
  111462. +ldouble: 1
  111463. +Test "Imaginary part of: cacos (1.0 - 0x1p500 i)":
  111464. +ildouble: 1
  111465. +ldouble: 1
  111466. +Test "Imaginary part of: cacos (1.0 - 0x1p5000 i)":
  111467. +ildouble: 1
  111468. +ldouble: 1
  111469. +
  111470. +# cacosh
  111471. +Test "Real part of: cacosh (+0 + 0.5 i)":
  111472. +float: 1
  111473. +ifloat: 1
  111474. +ildouble: 1
  111475. +ldouble: 1
  111476. +Test "Real part of: cacosh (+0 + 1.0 i)":
  111477. +double: 1
  111478. +float: 1
  111479. +idouble: 1
  111480. +ifloat: 1
  111481. +ildouble: 1
  111482. +ldouble: 1
  111483. +Test "Real part of: cacosh (+0 + 1.5 i)":
  111484. +double: 1
  111485. +idouble: 1
  111486. +ildouble: 1
  111487. +ldouble: 1
  111488. +Test "Real part of: cacosh (+0 - 0.5 i)":
  111489. +float: 1
  111490. +ifloat: 1
  111491. +ildouble: 1
  111492. +ldouble: 1
  111493. +Test "Real part of: cacosh (+0 - 1.0 i)":
  111494. +double: 1
  111495. +float: 1
  111496. +idouble: 1
  111497. +ifloat: 1
  111498. +ildouble: 1
  111499. +ldouble: 1
  111500. +Test "Real part of: cacosh (+0 - 1.5 i)":
  111501. +double: 1
  111502. +idouble: 1
  111503. +ildouble: 1
  111504. +ldouble: 1
  111505. +Test "Real part of: cacosh (-0 + 0.5 i)":
  111506. +float: 1
  111507. +ifloat: 1
  111508. +ildouble: 1
  111509. +ldouble: 1
  111510. +Test "Real part of: cacosh (-0 + 1.0 i)":
  111511. +double: 1
  111512. +float: 1
  111513. +idouble: 1
  111514. +ifloat: 1
  111515. +ildouble: 1
  111516. +ldouble: 1
  111517. +Test "Real part of: cacosh (-0 + 1.5 i)":
  111518. +double: 1
  111519. +idouble: 1
  111520. +ildouble: 1
  111521. +ldouble: 1
  111522. +Test "Real part of: cacosh (-0 - 0.5 i)":
  111523. +float: 1
  111524. +ifloat: 1
  111525. +ildouble: 1
  111526. +ldouble: 1
  111527. +Test "Real part of: cacosh (-0 - 1.0 i)":
  111528. +double: 1
  111529. +float: 1
  111530. +idouble: 1
  111531. +ifloat: 1
  111532. +ildouble: 1
  111533. +ldouble: 1
  111534. +Test "Real part of: cacosh (-0 - 1.5 i)":
  111535. +double: 1
  111536. +idouble: 1
  111537. +ildouble: 1
  111538. +ldouble: 1
  111539. +Test "Real part of: cacosh (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  111540. +ildouble: 1
  111541. +ldouble: 1
  111542. +Test "Real part of: cacosh (-0.0 + 0x0.ffffffffffffffffp0 i)":
  111543. +ildouble: 1
  111544. +ldouble: 1
  111545. +Test "Real part of: cacosh (-0.0 + 0x1.0000000000000000000000000001p0 i)":
  111546. +ildouble: 1
  111547. +ldouble: 1
  111548. +Test "Real part of: cacosh (-0.0 + 0x1.0000000000000002p0 i)":
  111549. +ildouble: 1
  111550. +ldouble: 1
  111551. +Test "Real part of: cacosh (-0.0 + 0x1.0000000000001p0 i)":
  111552. +ildouble: 1
  111553. +ldouble: 1
  111554. +Test "Real part of: cacosh (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  111555. +ildouble: 1
  111556. +ldouble: 1
  111557. +Test "Real part of: cacosh (-0.0 - 0x0.ffffffffffffffffp0 i)":
  111558. +ildouble: 1
  111559. +ldouble: 1
  111560. +Test "Real part of: cacosh (-0.0 - 0x1.0000000000000000000000000001p0 i)":
  111561. +ildouble: 1
  111562. +ldouble: 1
  111563. +Test "Real part of: cacosh (-0.0 - 0x1.0000000000000002p0 i)":
  111564. +ildouble: 1
  111565. +ldouble: 1
  111566. +Test "Real part of: cacosh (-0.0 - 0x1.0000000000001p0 i)":
  111567. +ildouble: 1
  111568. +ldouble: 1
  111569. +Test "Real part of: cacosh (-0.25 + 1.0 i)":
  111570. +float: 1
  111571. +ifloat: 1
  111572. +ildouble: 1
  111573. +ldouble: 1
  111574. +Test "Imaginary part of: cacosh (-0.25 + 1.0 i)":
  111575. +double: 1
  111576. +float: 1
  111577. +idouble: 1
  111578. +ifloat: 1
  111579. +Test "Real part of: cacosh (-0.25 - 1.0 i)":
  111580. +float: 1
  111581. +ifloat: 1
  111582. +ildouble: 1
  111583. +ldouble: 1
  111584. +Test "Imaginary part of: cacosh (-0.25 - 1.0 i)":
  111585. +double: 1
  111586. +float: 1
  111587. +idouble: 1
  111588. +ifloat: 1
  111589. +Test "Imaginary part of: cacosh (-0.5 + +0 i)":
  111590. +ildouble: 1
  111591. +ldouble: 1
  111592. +Test "Imaginary part of: cacosh (-0.5 + 0x1.fp-1025 i)":
  111593. +ildouble: 1
  111594. +ldouble: 1
  111595. +Test "Real part of: cacosh (-0.5 + 0x1.fp-129 i)":
  111596. +double: 1
  111597. +idouble: 1
  111598. +Test "Imaginary part of: cacosh (-0.5 + 0x1.fp-129 i)":
  111599. +ildouble: 1
  111600. +ldouble: 1
  111601. +Test "Imaginary part of: cacosh (-0.5 + 0x1.fp-16385 i)":
  111602. +ildouble: 1
  111603. +ldouble: 1
  111604. +Test "Real part of: cacosh (-0.5 + 0x1p-105 i)":
  111605. +double: 1
  111606. +idouble: 1
  111607. +ildouble: 1
  111608. +ldouble: 1
  111609. +Test "Imaginary part of: cacosh (-0.5 + 0x1p-105 i)":
  111610. +ildouble: 1
  111611. +ldouble: 1
  111612. +Test "Real part of: cacosh (-0.5 + 0x1p-112 i)":
  111613. +double: 1
  111614. +idouble: 1
  111615. +ildouble: 1
  111616. +ldouble: 1
  111617. +Test "Imaginary part of: cacosh (-0.5 + 0x1p-112 i)":
  111618. +ildouble: 1
  111619. +ldouble: 1
  111620. +Test "Real part of: cacosh (-0.5 + 0x1p-23 i)":
  111621. +double: 1
  111622. +idouble: 1
  111623. +ildouble: 1
  111624. +ldouble: 1
  111625. +Test "Imaginary part of: cacosh (-0.5 + 0x1p-52 i)":
  111626. +ildouble: 1
  111627. +ldouble: 1
  111628. +Test "Real part of: cacosh (-0.5 + 0x1p-63 i)":
  111629. +ildouble: 1
  111630. +ldouble: 1
  111631. +Test "Imaginary part of: cacosh (-0.5 + 0x1p-63 i)":
  111632. +ildouble: 1
  111633. +ldouble: 1
  111634. +Test "Real part of: cacosh (-0.5 + 1.0 i)":
  111635. +double: 1
  111636. +idouble: 1
  111637. +ildouble: 1
  111638. +ldouble: 1
  111639. +Test "Imaginary part of: cacosh (-0.5 + 1.0 i)":
  111640. +float: 1
  111641. +ifloat: 1
  111642. +Test "Imaginary part of: cacosh (-0.5 - 0 i)":
  111643. +ildouble: 1
  111644. +ldouble: 1
  111645. +Test "Imaginary part of: cacosh (-0.5 - 0x1.fp-1025 i)":
  111646. +ildouble: 1
  111647. +ldouble: 1
  111648. +Test "Real part of: cacosh (-0.5 - 0x1.fp-129 i)":
  111649. +double: 1
  111650. +idouble: 1
  111651. +Test "Imaginary part of: cacosh (-0.5 - 0x1.fp-129 i)":
  111652. +ildouble: 1
  111653. +ldouble: 1
  111654. +Test "Imaginary part of: cacosh (-0.5 - 0x1.fp-16385 i)":
  111655. +ildouble: 1
  111656. +ldouble: 1
  111657. +Test "Real part of: cacosh (-0.5 - 0x1p-105 i)":
  111658. +double: 1
  111659. +idouble: 1
  111660. +ildouble: 1
  111661. +ldouble: 1
  111662. +Test "Imaginary part of: cacosh (-0.5 - 0x1p-105 i)":
  111663. +ildouble: 1
  111664. +ldouble: 1
  111665. +Test "Real part of: cacosh (-0.5 - 0x1p-112 i)":
  111666. +double: 1
  111667. +idouble: 1
  111668. +ildouble: 1
  111669. +ldouble: 1
  111670. +Test "Imaginary part of: cacosh (-0.5 - 0x1p-112 i)":
  111671. +ildouble: 1
  111672. +ldouble: 1
  111673. +Test "Real part of: cacosh (-0.5 - 0x1p-23 i)":
  111674. +double: 1
  111675. +idouble: 1
  111676. +ildouble: 1
  111677. +ldouble: 1
  111678. +Test "Imaginary part of: cacosh (-0.5 - 0x1p-52 i)":
  111679. +ildouble: 1
  111680. +ldouble: 1
  111681. +Test "Real part of: cacosh (-0.5 - 0x1p-63 i)":
  111682. +ildouble: 1
  111683. +ldouble: 1
  111684. +Test "Imaginary part of: cacosh (-0.5 - 0x1p-63 i)":
  111685. +ildouble: 1
  111686. +ldouble: 1
  111687. +Test "Real part of: cacosh (-0.5 - 1.0 i)":
  111688. +double: 1
  111689. +idouble: 1
  111690. +ildouble: 1
  111691. +ldouble: 1
  111692. +Test "Imaginary part of: cacosh (-0.5 - 1.0 i)":
  111693. +float: 1
  111694. +ifloat: 1
  111695. +Test "Real part of: cacosh (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  111696. +double: 1
  111697. +idouble: 1
  111698. +Test "Real part of: cacosh (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  111699. +double: 1
  111700. +idouble: 1
  111701. +Test "Real part of: cacosh (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  111702. +ildouble: 1
  111703. +ldouble: 1
  111704. +Test "Real part of: cacosh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  111705. +ildouble: 1
  111706. +ldouble: 1
  111707. +Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
  111708. +ildouble: 1
  111709. +ldouble: 1
  111710. +Test "Real part of: cacosh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
  111711. +ildouble: 1
  111712. +ldouble: 1
  111713. +Test "Real part of: cacosh (-0x0.ffffffp0 + 0x1p-23 i)":
  111714. +float: 2
  111715. +ifloat: 2
  111716. +Test "Real part of: cacosh (-0x0.ffffffp0 - 0x1p-23 i)":
  111717. +float: 2
  111718. +ifloat: 2
  111719. +Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 + 0.0 i)":
  111720. +ildouble: 1
  111721. +ldouble: 1
  111722. +Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  111723. +ildouble: 1
  111724. +ldouble: 1
  111725. +Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  111726. +ildouble: 1
  111727. +ldouble: 1
  111728. +Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0.0 i)":
  111729. +ildouble: 1
  111730. +ldouble: 1
  111731. +Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  111732. +ildouble: 1
  111733. +ldouble: 1
  111734. +Test "Real part of: cacosh (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  111735. +ildouble: 1
  111736. +ldouble: 1
  111737. +Test "Real part of: cacosh (-0x1.000002p0 + 0x1p-23 i)":
  111738. +float: 1
  111739. +ifloat: 1
  111740. +ildouble: 1
  111741. +ldouble: 1
  111742. +Test "Real part of: cacosh (-0x1.000002p0 - 0x1p-23 i)":
  111743. +float: 1
  111744. +ifloat: 1
  111745. +ildouble: 1
  111746. +ldouble: 1
  111747. +Test "Real part of: cacosh (-0x1.fp-10 + 1.0 i)":
  111748. +double: 1
  111749. +idouble: 1
  111750. +Test "Real part of: cacosh (-0x1.fp-10 - 1.0 i)":
  111751. +double: 1
  111752. +idouble: 1
  111753. +Test "Real part of: cacosh (-0x1.fp-100 + 1.0 i)":
  111754. +double: 1
  111755. +float: 1
  111756. +idouble: 1
  111757. +ifloat: 1
  111758. +ildouble: 1
  111759. +ldouble: 1
  111760. +Test "Imaginary part of: cacosh (-0x1.fp-100 + 1.0 i)":
  111761. +float: 1
  111762. +ifloat: 1
  111763. +Test "Real part of: cacosh (-0x1.fp-100 - 1.0 i)":
  111764. +double: 1
  111765. +float: 1
  111766. +idouble: 1
  111767. +ifloat: 1
  111768. +ildouble: 1
  111769. +ldouble: 1
  111770. +Test "Imaginary part of: cacosh (-0x1.fp-100 - 1.0 i)":
  111771. +float: 1
  111772. +ifloat: 1
  111773. +Test "Real part of: cacosh (-0x1.fp-1000 + 1.0 i)":
  111774. +double: 1
  111775. +idouble: 1
  111776. +ildouble: 1
  111777. +ldouble: 1
  111778. +Test "Real part of: cacosh (-0x1.fp-1000 - 1.0 i)":
  111779. +double: 1
  111780. +idouble: 1
  111781. +ildouble: 1
  111782. +ldouble: 1
  111783. +Test "Real part of: cacosh (-0x1.fp-10000 + 1.0 i)":
  111784. +ildouble: 1
  111785. +ldouble: 1
  111786. +Test "Real part of: cacosh (-0x1.fp-10000 - 1.0 i)":
  111787. +ildouble: 1
  111788. +ldouble: 1
  111789. +Test "Real part of: cacosh (-0x1.fp-1025 + 0.5 i)":
  111790. +ildouble: 1
  111791. +ldouble: 1
  111792. +Test "Real part of: cacosh (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  111793. +ildouble: 1
  111794. +ldouble: 1
  111795. +Test "Real part of: cacosh (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
  111796. +ildouble: 1
  111797. +ldouble: 1
  111798. +Test "Real part of: cacosh (-0x1.fp-1025 + 1.0 i)":
  111799. +double: 1
  111800. +idouble: 1
  111801. +ildouble: 1
  111802. +ldouble: 1
  111803. +Test "Real part of: cacosh (-0x1.fp-1025 + 1.5 i)":
  111804. +double: 1
  111805. +idouble: 1
  111806. +ildouble: 1
  111807. +ldouble: 1
  111808. +Test "Real part of: cacosh (-0x1.fp-1025 - 0.5 i)":
  111809. +ildouble: 1
  111810. +ldouble: 1
  111811. +Test "Real part of: cacosh (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  111812. +ildouble: 1
  111813. +ldouble: 1
  111814. +Test "Real part of: cacosh (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
  111815. +ildouble: 1
  111816. +ldouble: 1
  111817. +Test "Real part of: cacosh (-0x1.fp-1025 - 1.0 i)":
  111818. +double: 1
  111819. +idouble: 1
  111820. +ildouble: 1
  111821. +ldouble: 1
  111822. +Test "Real part of: cacosh (-0x1.fp-1025 - 1.5 i)":
  111823. +double: 1
  111824. +idouble: 1
  111825. +ildouble: 1
  111826. +ldouble: 1
  111827. +Test "Real part of: cacosh (-0x1.fp-129 + 0.5 i)":
  111828. +float: 1
  111829. +ifloat: 1
  111830. +ildouble: 1
  111831. +ldouble: 1
  111832. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0.5 i)":
  111833. +float: 1
  111834. +ifloat: 1
  111835. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x0.ffffffp0 i)":
  111836. +float: 1
  111837. +ifloat: 1
  111838. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.000002p0 i)":
  111839. +float: 1
  111840. +ifloat: 1
  111841. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1.fp-129 i)":
  111842. +float: 1
  111843. +ifloat: 1
  111844. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 0x1p-23 i)":
  111845. +float: 1
  111846. +ifloat: 1
  111847. +Test "Real part of: cacosh (-0x1.fp-129 + 1.0 i)":
  111848. +double: 1
  111849. +float: 1
  111850. +idouble: 1
  111851. +ifloat: 1
  111852. +ildouble: 1
  111853. +ldouble: 1
  111854. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.0 i)":
  111855. +float: 1
  111856. +ifloat: 1
  111857. +Test "Real part of: cacosh (-0x1.fp-129 + 1.5 i)":
  111858. +double: 1
  111859. +idouble: 1
  111860. +ildouble: 1
  111861. +ldouble: 1
  111862. +Test "Imaginary part of: cacosh (-0x1.fp-129 + 1.5 i)":
  111863. +float: 1
  111864. +ifloat: 1
  111865. +Test "Real part of: cacosh (-0x1.fp-129 - 0.5 i)":
  111866. +float: 1
  111867. +ifloat: 1
  111868. +ildouble: 1
  111869. +ldouble: 1
  111870. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0.5 i)":
  111871. +float: 1
  111872. +ifloat: 1
  111873. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x0.ffffffp0 i)":
  111874. +float: 1
  111875. +ifloat: 1
  111876. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.000002p0 i)":
  111877. +float: 1
  111878. +ifloat: 1
  111879. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1.fp-129 i)":
  111880. +float: 1
  111881. +ifloat: 1
  111882. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 0x1p-23 i)":
  111883. +float: 1
  111884. +ifloat: 1
  111885. +Test "Real part of: cacosh (-0x1.fp-129 - 1.0 i)":
  111886. +double: 1
  111887. +float: 1
  111888. +idouble: 1
  111889. +ifloat: 1
  111890. +ildouble: 1
  111891. +ldouble: 1
  111892. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.0 i)":
  111893. +float: 1
  111894. +ifloat: 1
  111895. +Test "Real part of: cacosh (-0x1.fp-129 - 1.5 i)":
  111896. +double: 1
  111897. +idouble: 1
  111898. +ildouble: 1
  111899. +ldouble: 1
  111900. +Test "Imaginary part of: cacosh (-0x1.fp-129 - 1.5 i)":
  111901. +float: 1
  111902. +ifloat: 1
  111903. +Test "Real part of: cacosh (-0x1.fp-16385 + 0.5 i)":
  111904. +ildouble: 1
  111905. +ldouble: 1
  111906. +Test "Real part of: cacosh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
  111907. +ildouble: 1
  111908. +ldouble: 1
  111909. +Test "Real part of: cacosh (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
  111910. +ildouble: 1
  111911. +ldouble: 1
  111912. +Test "Real part of: cacosh (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
  111913. +ildouble: 1
  111914. +ldouble: 1
  111915. +Test "Real part of: cacosh (-0x1.fp-16385 + 1.0 i)":
  111916. +ildouble: 1
  111917. +ldouble: 1
  111918. +Test "Real part of: cacosh (-0x1.fp-16385 + 1.5 i)":
  111919. +ildouble: 1
  111920. +ldouble: 1
  111921. +Test "Real part of: cacosh (-0x1.fp-16385 - 0.5 i)":
  111922. +ildouble: 1
  111923. +ldouble: 1
  111924. +Test "Real part of: cacosh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
  111925. +ildouble: 1
  111926. +ldouble: 1
  111927. +Test "Real part of: cacosh (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
  111928. +ildouble: 1
  111929. +ldouble: 1
  111930. +Test "Real part of: cacosh (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
  111931. +ildouble: 1
  111932. +ldouble: 1
  111933. +Test "Real part of: cacosh (-0x1.fp-16385 - 1.0 i)":
  111934. +ildouble: 1
  111935. +ldouble: 1
  111936. +Test "Real part of: cacosh (-0x1.fp-16385 - 1.5 i)":
  111937. +ildouble: 1
  111938. +ldouble: 1
  111939. +Test "Real part of: cacosh (-0x1.fp-30 + 1.0 i)":
  111940. +double: 1
  111941. +float: 1
  111942. +idouble: 1
  111943. +ifloat: 1
  111944. +ildouble: 1
  111945. +ldouble: 1
  111946. +Test "Imaginary part of: cacosh (-0x1.fp-30 + 1.0 i)":
  111947. +float: 1
  111948. +ifloat: 1
  111949. +Test "Real part of: cacosh (-0x1.fp-30 - 1.0 i)":
  111950. +double: 1
  111951. +float: 1
  111952. +idouble: 1
  111953. +ifloat: 1
  111954. +ildouble: 1
  111955. +ldouble: 1
  111956. +Test "Imaginary part of: cacosh (-0x1.fp-30 - 1.0 i)":
  111957. +float: 1
  111958. +ifloat: 1
  111959. +Test "Imaginary part of: cacosh (-0x1p-105 + 0.0 i)":
  111960. +float: 1
  111961. +ifloat: 1
  111962. +Test "Real part of: cacosh (-0x1p-105 + 0.5 i)":
  111963. +float: 1
  111964. +ifloat: 1
  111965. +Test "Imaginary part of: cacosh (-0x1p-105 + 0.5 i)":
  111966. +float: 1
  111967. +ifloat: 1
  111968. +ildouble: 1
  111969. +ldouble: 1
  111970. +Test "Real part of: cacosh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  111971. +ildouble: 1
  111972. +ldouble: 1
  111973. +Test "Imaginary part of: cacosh (-0x1p-105 + 0x1p-105 i)":
  111974. +float: 1
  111975. +ifloat: 1
  111976. +Test "Imaginary part of: cacosh (-0x1p-105 - 0.0 i)":
  111977. +float: 1
  111978. +ifloat: 1
  111979. +Test "Real part of: cacosh (-0x1p-105 - 0.5 i)":
  111980. +float: 1
  111981. +ifloat: 1
  111982. +Test "Imaginary part of: cacosh (-0x1p-105 - 0.5 i)":
  111983. +float: 1
  111984. +ifloat: 1
  111985. +ildouble: 1
  111986. +ldouble: 1
  111987. +Test "Real part of: cacosh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  111988. +ildouble: 1
  111989. +ldouble: 1
  111990. +Test "Imaginary part of: cacosh (-0x1p-105 - 0x1p-105 i)":
  111991. +float: 1
  111992. +ifloat: 1
  111993. +Test "Imaginary part of: cacosh (-0x1p-112 + 0.0 i)":
  111994. +float: 1
  111995. +ifloat: 1
  111996. +Test "Real part of: cacosh (-0x1p-112 + 0.5 i)":
  111997. +float: 1
  111998. +ifloat: 1
  111999. +Test "Imaginary part of: cacosh (-0x1p-112 + 0.5 i)":
  112000. +float: 1
  112001. +ifloat: 1
  112002. +Test "Imaginary part of: cacosh (-0x1p-112 + 0x1p-112 i)":
  112003. +float: 1
  112004. +ifloat: 1
  112005. +Test "Imaginary part of: cacosh (-0x1p-112 - 0.0 i)":
  112006. +float: 1
  112007. +ifloat: 1
  112008. +Test "Real part of: cacosh (-0x1p-112 - 0.5 i)":
  112009. +float: 1
  112010. +ifloat: 1
  112011. +Test "Imaginary part of: cacosh (-0x1p-112 - 0.5 i)":
  112012. +float: 1
  112013. +ifloat: 1
  112014. +Test "Imaginary part of: cacosh (-0x1p-112 - 0x1p-112 i)":
  112015. +float: 1
  112016. +ifloat: 1
  112017. +Test "Real part of: cacosh (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  112018. +ildouble: 1
  112019. +ldouble: 1
  112020. +Test "Imaginary part of: cacosh (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  112021. +ildouble: 1
  112022. +ldouble: 1
  112023. +Test "Real part of: cacosh (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  112024. +ildouble: 1
  112025. +ldouble: 1
  112026. +Test "Imaginary part of: cacosh (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  112027. +ildouble: 1
  112028. +ldouble: 1
  112029. +Test "Imaginary part of: cacosh (-0x1p-23 + 0.0 i)":
  112030. +float: 1
  112031. +ifloat: 1
  112032. +ildouble: 1
  112033. +ldouble: 1
  112034. +Test "Real part of: cacosh (-0x1p-23 + 0.5 i)":
  112035. +float: 1
  112036. +ifloat: 1
  112037. +ildouble: 2
  112038. +ldouble: 2
  112039. +Test "Imaginary part of: cacosh (-0x1p-23 + 0.5 i)":
  112040. +float: 1
  112041. +ifloat: 1
  112042. +Test "Real part of: cacosh (-0x1p-23 + 0x0.ffffffp0 i)":
  112043. +double: 1
  112044. +idouble: 1
  112045. +Test "Imaginary part of: cacosh (-0x1p-23 + 0x1.fp-129 i)":
  112046. +float: 1
  112047. +ifloat: 1
  112048. +ildouble: 1
  112049. +ldouble: 1
  112050. +Test "Imaginary part of: cacosh (-0x1p-23 + 0x1p-23 i)":
  112051. +float: 1
  112052. +ifloat: 1
  112053. +ildouble: 1
  112054. +ldouble: 1
  112055. +Test "Imaginary part of: cacosh (-0x1p-23 - 0.0 i)":
  112056. +float: 1
  112057. +ifloat: 1
  112058. +ildouble: 1
  112059. +ldouble: 1
  112060. +Test "Real part of: cacosh (-0x1p-23 - 0.5 i)":
  112061. +float: 1
  112062. +ifloat: 1
  112063. +ildouble: 2
  112064. +ldouble: 2
  112065. +Test "Imaginary part of: cacosh (-0x1p-23 - 0.5 i)":
  112066. +float: 1
  112067. +ifloat: 1
  112068. +Test "Real part of: cacosh (-0x1p-23 - 0x0.ffffffp0 i)":
  112069. +double: 1
  112070. +idouble: 1
  112071. +Test "Imaginary part of: cacosh (-0x1p-23 - 0x1.fp-129 i)":
  112072. +float: 1
  112073. +ifloat: 1
  112074. +ildouble: 1
  112075. +ldouble: 1
  112076. +Test "Imaginary part of: cacosh (-0x1p-23 - 0x1p-23 i)":
  112077. +float: 1
  112078. +ifloat: 1
  112079. +ildouble: 1
  112080. +ldouble: 1
  112081. +Test "Imaginary part of: cacosh (-0x1p-52 + 0.0 i)":
  112082. +float: 1
  112083. +ifloat: 1
  112084. +Test "Real part of: cacosh (-0x1p-52 + 0.5 i)":
  112085. +float: 1
  112086. +ifloat: 1
  112087. +ildouble: 1
  112088. +ldouble: 1
  112089. +Test "Imaginary part of: cacosh (-0x1p-52 + 0.5 i)":
  112090. +float: 1
  112091. +ifloat: 1
  112092. +Test "Imaginary part of: cacosh (-0x1p-52 + 0x1p-52 i)":
  112093. +float: 1
  112094. +ifloat: 1
  112095. +Test "Imaginary part of: cacosh (-0x1p-52 - 0.0 i)":
  112096. +float: 1
  112097. +ifloat: 1
  112098. +Test "Real part of: cacosh (-0x1p-52 - 0.5 i)":
  112099. +float: 1
  112100. +ifloat: 1
  112101. +ildouble: 1
  112102. +ldouble: 1
  112103. +Test "Imaginary part of: cacosh (-0x1p-52 - 0.5 i)":
  112104. +float: 1
  112105. +ifloat: 1
  112106. +Test "Imaginary part of: cacosh (-0x1p-52 - 0x1p-52 i)":
  112107. +float: 1
  112108. +ifloat: 1
  112109. +Test "Imaginary part of: cacosh (-0x1p-63 + 0.0 i)":
  112110. +float: 1
  112111. +ifloat: 1
  112112. +Test "Real part of: cacosh (-0x1p-63 + 0.5 i)":
  112113. +float: 1
  112114. +ifloat: 1
  112115. +Test "Imaginary part of: cacosh (-0x1p-63 + 0.5 i)":
  112116. +float: 1
  112117. +ifloat: 1
  112118. +Test "Real part of: cacosh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
  112119. +ildouble: 1
  112120. +ldouble: 1
  112121. +Test "Real part of: cacosh (-0x1p-63 + 0x1.0000000000000002p0 i)":
  112122. +ildouble: 1
  112123. +ldouble: 1
  112124. +Test "Imaginary part of: cacosh (-0x1p-63 + 0x1p-63 i)":
  112125. +float: 1
  112126. +ifloat: 1
  112127. +Test "Imaginary part of: cacosh (-0x1p-63 - 0.0 i)":
  112128. +float: 1
  112129. +ifloat: 1
  112130. +Test "Real part of: cacosh (-0x1p-63 - 0.5 i)":
  112131. +float: 1
  112132. +ifloat: 1
  112133. +Test "Imaginary part of: cacosh (-0x1p-63 - 0.5 i)":
  112134. +float: 1
  112135. +ifloat: 1
  112136. +Test "Real part of: cacosh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
  112137. +ildouble: 1
  112138. +ldouble: 1
  112139. +Test "Real part of: cacosh (-0x1p-63 - 0x1.0000000000000002p0 i)":
  112140. +ildouble: 1
  112141. +ldouble: 1
  112142. +Test "Imaginary part of: cacosh (-0x1p-63 - 0x1p-63 i)":
  112143. +float: 1
  112144. +ifloat: 1
  112145. +Test "Real part of: cacosh (-0x1p500 + 1.0 i)":
  112146. +ildouble: 1
  112147. +ldouble: 1
  112148. +Test "Real part of: cacosh (-0x1p500 - 1.0 i)":
  112149. +ildouble: 1
  112150. +ldouble: 1
  112151. +Test "Real part of: cacosh (-0x1p5000 + 1.0 i)":
  112152. +ildouble: 1
  112153. +ldouble: 1
  112154. +Test "Real part of: cacosh (-0x1p5000 - 1.0 i)":
  112155. +ildouble: 1
  112156. +ldouble: 1
  112157. +Test "Real part of: cacosh (-1.0 + 0.5 i)":
  112158. +float: 1
  112159. +ifloat: 1
  112160. +Test "Real part of: cacosh (-1.0 + 0x1.fp-10 i)":
  112161. +float: 1
  112162. +ifloat: 1
  112163. +ildouble: 1
  112164. +ldouble: 1
  112165. +Test "Real part of: cacosh (-1.0 + 0x1.fp-30 i)":
  112166. +ildouble: 1
  112167. +ldouble: 1
  112168. +Test "Imaginary part of: cacosh (-1.0 + 0x1p50 i)":
  112169. +float: 1
  112170. +ifloat: 1
  112171. +Test "Real part of: cacosh (-1.0 + 0x1p500 i)":
  112172. +ildouble: 1
  112173. +ldouble: 1
  112174. +Test "Real part of: cacosh (-1.0 + 0x1p5000 i)":
  112175. +ildouble: 1
  112176. +ldouble: 1
  112177. +Test "Real part of: cacosh (-1.0 - 0.5 i)":
  112178. +float: 1
  112179. +ifloat: 1
  112180. +Test "Real part of: cacosh (-1.0 - 0x1.fp-10 i)":
  112181. +float: 1
  112182. +ifloat: 1
  112183. +ildouble: 1
  112184. +ldouble: 1
  112185. +Test "Real part of: cacosh (-1.0 - 0x1.fp-30 i)":
  112186. +ildouble: 1
  112187. +ldouble: 1
  112188. +Test "Imaginary part of: cacosh (-1.0 - 0x1p50 i)":
  112189. +float: 1
  112190. +ifloat: 1
  112191. +Test "Real part of: cacosh (-1.0 - 0x1p500 i)":
  112192. +ildouble: 1
  112193. +ldouble: 1
  112194. +Test "Real part of: cacosh (-1.0 - 0x1p5000 i)":
  112195. +ildouble: 1
  112196. +ldouble: 1
  112197. +Test "Imaginary part of: cacosh (-2 - 3 i)":
  112198. +float: 1
  112199. +ifloat: 1
  112200. +ildouble: 1
  112201. +ldouble: 1
  112202. +Test "Real part of: cacosh (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  112203. +ildouble: 1
  112204. +ldouble: 1
  112205. +Test "Real part of: cacosh (0.0 + 0x0.ffffffffffffffffp0 i)":
  112206. +ildouble: 1
  112207. +ldouble: 1
  112208. +Test "Real part of: cacosh (0.0 + 0x1.0000000000000000000000000001p0 i)":
  112209. +ildouble: 1
  112210. +ldouble: 1
  112211. +Test "Real part of: cacosh (0.0 + 0x1.0000000000000002p0 i)":
  112212. +ildouble: 1
  112213. +ldouble: 1
  112214. +Test "Real part of: cacosh (0.0 + 0x1.0000000000001p0 i)":
  112215. +ildouble: 1
  112216. +ldouble: 1
  112217. +Test "Real part of: cacosh (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  112218. +ildouble: 1
  112219. +ldouble: 1
  112220. +Test "Real part of: cacosh (0.0 - 0x0.ffffffffffffffffp0 i)":
  112221. +ildouble: 1
  112222. +ldouble: 1
  112223. +Test "Real part of: cacosh (0.0 - 0x1.0000000000000000000000000001p0 i)":
  112224. +ildouble: 1
  112225. +ldouble: 1
  112226. +Test "Real part of: cacosh (0.0 - 0x1.0000000000000002p0 i)":
  112227. +ildouble: 1
  112228. +ldouble: 1
  112229. +Test "Real part of: cacosh (0.0 - 0x1.0000000000001p0 i)":
  112230. +ildouble: 1
  112231. +ldouble: 1
  112232. +Test "Real part of: cacosh (0.25 + 1.0 i)":
  112233. +float: 1
  112234. +ifloat: 1
  112235. +ildouble: 1
  112236. +ldouble: 1
  112237. +Test "Real part of: cacosh (0.25 - 1.0 i)":
  112238. +float: 1
  112239. +ifloat: 1
  112240. +ildouble: 1
  112241. +ldouble: 1
  112242. +Test "Imaginary part of: cacosh (0.5 + +0 i)":
  112243. +double: 1
  112244. +idouble: 1
  112245. +Test "Imaginary part of: cacosh (0.5 + 0x1.fp-1025 i)":
  112246. +double: 1
  112247. +idouble: 1
  112248. +Test "Real part of: cacosh (0.5 + 0x1.fp-129 i)":
  112249. +double: 1
  112250. +idouble: 1
  112251. +Test "Imaginary part of: cacosh (0.5 + 0x1.fp-129 i)":
  112252. +double: 1
  112253. +idouble: 1
  112254. +Test "Real part of: cacosh (0.5 + 0x1p-105 i)":
  112255. +double: 1
  112256. +idouble: 1
  112257. +ildouble: 1
  112258. +ldouble: 1
  112259. +Test "Imaginary part of: cacosh (0.5 + 0x1p-105 i)":
  112260. +double: 1
  112261. +idouble: 1
  112262. +Test "Real part of: cacosh (0.5 + 0x1p-112 i)":
  112263. +double: 1
  112264. +idouble: 1
  112265. +ildouble: 1
  112266. +ldouble: 1
  112267. +Test "Imaginary part of: cacosh (0.5 + 0x1p-112 i)":
  112268. +double: 1
  112269. +idouble: 1
  112270. +Test "Real part of: cacosh (0.5 + 0x1p-23 i)":
  112271. +double: 1
  112272. +idouble: 1
  112273. +ildouble: 1
  112274. +ldouble: 1
  112275. +Test "Imaginary part of: cacosh (0.5 + 0x1p-52 i)":
  112276. +double: 1
  112277. +idouble: 1
  112278. +ildouble: 1
  112279. +ldouble: 1
  112280. +Test "Real part of: cacosh (0.5 + 0x1p-63 i)":
  112281. +ildouble: 1
  112282. +ldouble: 1
  112283. +Test "Imaginary part of: cacosh (0.5 + 0x1p-63 i)":
  112284. +double: 1
  112285. +idouble: 1
  112286. +Test "Real part of: cacosh (0.5 + 1.0 i)":
  112287. +double: 1
  112288. +idouble: 1
  112289. +ildouble: 1
  112290. +ldouble: 1
  112291. +Test "Imaginary part of: cacosh (0.5 + 1.0 i)":
  112292. +float: 1
  112293. +ifloat: 1
  112294. +Test "Imaginary part of: cacosh (0.5 - 0 i)":
  112295. +double: 1
  112296. +idouble: 1
  112297. +Test "Imaginary part of: cacosh (0.5 - 0x1.fp-1025 i)":
  112298. +double: 1
  112299. +idouble: 1
  112300. +Test "Real part of: cacosh (0.5 - 0x1.fp-129 i)":
  112301. +double: 1
  112302. +idouble: 1
  112303. +Test "Imaginary part of: cacosh (0.5 - 0x1.fp-129 i)":
  112304. +double: 1
  112305. +idouble: 1
  112306. +Test "Real part of: cacosh (0.5 - 0x1p-105 i)":
  112307. +double: 1
  112308. +idouble: 1
  112309. +ildouble: 1
  112310. +ldouble: 1
  112311. +Test "Imaginary part of: cacosh (0.5 - 0x1p-105 i)":
  112312. +double: 1
  112313. +idouble: 1
  112314. +Test "Real part of: cacosh (0.5 - 0x1p-112 i)":
  112315. +double: 1
  112316. +idouble: 1
  112317. +ildouble: 1
  112318. +ldouble: 1
  112319. +Test "Imaginary part of: cacosh (0.5 - 0x1p-112 i)":
  112320. +double: 1
  112321. +idouble: 1
  112322. +Test "Real part of: cacosh (0.5 - 0x1p-23 i)":
  112323. +double: 1
  112324. +idouble: 1
  112325. +ildouble: 1
  112326. +ldouble: 1
  112327. +Test "Imaginary part of: cacosh (0.5 - 0x1p-52 i)":
  112328. +double: 1
  112329. +idouble: 1
  112330. +ildouble: 1
  112331. +ldouble: 1
  112332. +Test "Real part of: cacosh (0.5 - 0x1p-63 i)":
  112333. +ildouble: 1
  112334. +ldouble: 1
  112335. +Test "Imaginary part of: cacosh (0.5 - 0x1p-63 i)":
  112336. +double: 1
  112337. +idouble: 1
  112338. +Test "Real part of: cacosh (0.5 - 1.0 i)":
  112339. +double: 1
  112340. +idouble: 1
  112341. +ildouble: 1
  112342. +ldouble: 1
  112343. +Test "Imaginary part of: cacosh (0.5 - 1.0 i)":
  112344. +float: 1
  112345. +ifloat: 1
  112346. +Test "Real part of: cacosh (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  112347. +double: 1
  112348. +idouble: 1
  112349. +Test "Real part of: cacosh (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  112350. +double: 1
  112351. +idouble: 1
  112352. +Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
  112353. +ildouble: 1
  112354. +ldouble: 1
  112355. +Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
  112356. +ildouble: 1
  112357. +ldouble: 1
  112358. +Test "Real part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  112359. +ildouble: 1
  112360. +ldouble: 1
  112361. +Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
  112362. +ildouble: 1
  112363. +ldouble: 1
  112364. +Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
  112365. +ildouble: 1
  112366. +ldouble: 1
  112367. +Test "Real part of: cacosh (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  112368. +ildouble: 1
  112369. +ldouble: 1
  112370. +Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 + 0.0 i)":
  112371. +ildouble: 1
  112372. +ldouble: 1
  112373. +Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 + 0x1.fp-16385 i)":
  112374. +ildouble: 1
  112375. +ldouble: 1
  112376. +Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 - 0.0 i)":
  112377. +ildouble: 1
  112378. +ldouble: 1
  112379. +Test "Imaginary part of: cacosh (0x0.ffffffffffffffffffffffffffff8p0 - 0x1.fp-16385 i)":
  112380. +ildouble: 1
  112381. +ldouble: 1
  112382. +Test "Real part of: cacosh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
  112383. +ildouble: 1
  112384. +ldouble: 1
  112385. +Test "Real part of: cacosh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
  112386. +ildouble: 1
  112387. +ldouble: 1
  112388. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0.0 i)":
  112389. +float: 1
  112390. +ifloat: 1
  112391. +ildouble: 1
  112392. +ldouble: 1
  112393. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1.fp-129 i)":
  112394. +float: 1
  112395. +ifloat: 1
  112396. +ildouble: 1
  112397. +ldouble: 1
  112398. +Test "Real part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
  112399. +float: 2
  112400. +ifloat: 2
  112401. +Test "Imaginary part of: cacosh (0x0.ffffffp0 + 0x1p-23 i)":
  112402. +float: 2
  112403. +ifloat: 2
  112404. +ildouble: 1
  112405. +ldouble: 1
  112406. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0.0 i)":
  112407. +float: 1
  112408. +ifloat: 1
  112409. +ildouble: 1
  112410. +ldouble: 1
  112411. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1.fp-129 i)":
  112412. +float: 1
  112413. +ifloat: 1
  112414. +ildouble: 1
  112415. +ldouble: 1
  112416. +Test "Real part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
  112417. +float: 2
  112418. +ifloat: 2
  112419. +Test "Imaginary part of: cacosh (0x0.ffffffp0 - 0x1p-23 i)":
  112420. +float: 2
  112421. +ifloat: 2
  112422. +ildouble: 1
  112423. +ldouble: 1
  112424. +Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0.0 i)":
  112425. +ildouble: 1
  112426. +ldouble: 1
  112427. +Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  112428. +ildouble: 1
  112429. +ldouble: 1
  112430. +Test "Imaginary part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  112431. +ildouble: 1
  112432. +ldouble: 1
  112433. +Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  112434. +ildouble: 1
  112435. +ldouble: 1
  112436. +Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0.0 i)":
  112437. +ildouble: 1
  112438. +ldouble: 1
  112439. +Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  112440. +ildouble: 1
  112441. +ldouble: 1
  112442. +Test "Imaginary part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  112443. +ildouble: 1
  112444. +ldouble: 1
  112445. +Test "Real part of: cacosh (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  112446. +ildouble: 1
  112447. +ldouble: 1
  112448. +Test "Imaginary part of: cacosh (0x1.0000000000000002p0 + 0x1p-63 i)":
  112449. +ildouble: 2
  112450. +ldouble: 2
  112451. +Test "Imaginary part of: cacosh (0x1.0000000000000002p0 - 0x1p-63 i)":
  112452. +ildouble: 2
  112453. +ldouble: 2
  112454. +Test "Imaginary part of: cacosh (0x1.0000000000001p0 + 0x1p-52 i)":
  112455. +double: 1
  112456. +idouble: 1
  112457. +ildouble: 1
  112458. +ldouble: 1
  112459. +Test "Imaginary part of: cacosh (0x1.0000000000001p0 - 0x1p-52 i)":
  112460. +double: 1
  112461. +idouble: 1
  112462. +ildouble: 1
  112463. +ldouble: 1
  112464. +Test "Real part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
  112465. +float: 1
  112466. +ifloat: 1
  112467. +ildouble: 1
  112468. +ldouble: 1
  112469. +Test "Imaginary part of: cacosh (0x1.000002p0 + 0x1p-23 i)":
  112470. +float: 2
  112471. +ifloat: 2
  112472. +ildouble: 1
  112473. +ldouble: 1
  112474. +Test "Real part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
  112475. +float: 1
  112476. +ifloat: 1
  112477. +ildouble: 1
  112478. +ldouble: 1
  112479. +Test "Imaginary part of: cacosh (0x1.000002p0 - 0x1p-23 i)":
  112480. +float: 2
  112481. +ifloat: 2
  112482. +ildouble: 1
  112483. +ldouble: 1
  112484. +Test "Real part of: cacosh (0x1.fp-10 + 1.0 i)":
  112485. +double: 1
  112486. +idouble: 1
  112487. +Test "Real part of: cacosh (0x1.fp-10 - 1.0 i)":
  112488. +double: 1
  112489. +idouble: 1
  112490. +Test "Real part of: cacosh (0x1.fp-100 + 1.0 i)":
  112491. +double: 1
  112492. +float: 1
  112493. +idouble: 1
  112494. +ifloat: 1
  112495. +ildouble: 1
  112496. +ldouble: 1
  112497. +Test "Imaginary part of: cacosh (0x1.fp-100 + 1.0 i)":
  112498. +ildouble: 1
  112499. +ldouble: 1
  112500. +Test "Real part of: cacosh (0x1.fp-100 - 1.0 i)":
  112501. +double: 1
  112502. +float: 1
  112503. +idouble: 1
  112504. +ifloat: 1
  112505. +ildouble: 1
  112506. +ldouble: 1
  112507. +Test "Imaginary part of: cacosh (0x1.fp-100 - 1.0 i)":
  112508. +ildouble: 1
  112509. +ldouble: 1
  112510. +Test "Real part of: cacosh (0x1.fp-1000 + 1.0 i)":
  112511. +double: 1
  112512. +idouble: 1
  112513. +ildouble: 1
  112514. +ldouble: 1
  112515. +Test "Real part of: cacosh (0x1.fp-1000 - 1.0 i)":
  112516. +double: 1
  112517. +idouble: 1
  112518. +ildouble: 1
  112519. +ldouble: 1
  112520. +Test "Real part of: cacosh (0x1.fp-10000 + 1.0 i)":
  112521. +ildouble: 1
  112522. +ldouble: 1
  112523. +Test "Real part of: cacosh (0x1.fp-10000 - 1.0 i)":
  112524. +ildouble: 1
  112525. +ldouble: 1
  112526. +Test "Real part of: cacosh (0x1.fp-1025 + 0.5 i)":
  112527. +ildouble: 1
  112528. +ldouble: 1
  112529. +Test "Real part of: cacosh (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  112530. +ildouble: 1
  112531. +ldouble: 1
  112532. +Test "Real part of: cacosh (0x1.fp-1025 + 0x1.0000000000001p0 i)":
  112533. +ildouble: 1
  112534. +ldouble: 1
  112535. +Test "Real part of: cacosh (0x1.fp-1025 + 1.0 i)":
  112536. +double: 1
  112537. +idouble: 1
  112538. +ildouble: 1
  112539. +ldouble: 1
  112540. +Test "Real part of: cacosh (0x1.fp-1025 + 1.5 i)":
  112541. +double: 1
  112542. +idouble: 1
  112543. +ildouble: 1
  112544. +ldouble: 1
  112545. +Test "Real part of: cacosh (0x1.fp-1025 - 0.5 i)":
  112546. +ildouble: 1
  112547. +ldouble: 1
  112548. +Test "Real part of: cacosh (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  112549. +ildouble: 1
  112550. +ldouble: 1
  112551. +Test "Real part of: cacosh (0x1.fp-1025 - 0x1.0000000000001p0 i)":
  112552. +ildouble: 1
  112553. +ldouble: 1
  112554. +Test "Real part of: cacosh (0x1.fp-1025 - 1.0 i)":
  112555. +double: 1
  112556. +idouble: 1
  112557. +ildouble: 1
  112558. +ldouble: 1
  112559. +Test "Real part of: cacosh (0x1.fp-1025 - 1.5 i)":
  112560. +double: 1
  112561. +idouble: 1
  112562. +ildouble: 1
  112563. +ldouble: 1
  112564. +Test "Real part of: cacosh (0x1.fp-129 + 0.5 i)":
  112565. +float: 1
  112566. +ifloat: 1
  112567. +ildouble: 1
  112568. +ldouble: 1
  112569. +Test "Real part of: cacosh (0x1.fp-129 + 1.0 i)":
  112570. +double: 1
  112571. +float: 1
  112572. +idouble: 1
  112573. +ifloat: 1
  112574. +ildouble: 1
  112575. +ldouble: 1
  112576. +Test "Real part of: cacosh (0x1.fp-129 + 1.5 i)":
  112577. +double: 1
  112578. +idouble: 1
  112579. +ildouble: 1
  112580. +ldouble: 1
  112581. +Test "Real part of: cacosh (0x1.fp-129 - 0.5 i)":
  112582. +float: 1
  112583. +ifloat: 1
  112584. +ildouble: 1
  112585. +ldouble: 1
  112586. +Test "Real part of: cacosh (0x1.fp-129 - 1.0 i)":
  112587. +double: 1
  112588. +float: 1
  112589. +idouble: 1
  112590. +ifloat: 1
  112591. +ildouble: 1
  112592. +ldouble: 1
  112593. +Test "Real part of: cacosh (0x1.fp-129 - 1.5 i)":
  112594. +double: 1
  112595. +idouble: 1
  112596. +ildouble: 1
  112597. +ldouble: 1
  112598. +Test "Real part of: cacosh (0x1.fp-16385 + 0.5 i)":
  112599. +ildouble: 1
  112600. +ldouble: 1
  112601. +Test "Real part of: cacosh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
  112602. +ildouble: 1
  112603. +ldouble: 1
  112604. +Test "Real part of: cacosh (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
  112605. +ildouble: 1
  112606. +ldouble: 1
  112607. +Test "Real part of: cacosh (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
  112608. +ildouble: 1
  112609. +ldouble: 1
  112610. +Test "Real part of: cacosh (0x1.fp-16385 + 1.0 i)":
  112611. +ildouble: 1
  112612. +ldouble: 1
  112613. +Test "Real part of: cacosh (0x1.fp-16385 + 1.5 i)":
  112614. +ildouble: 1
  112615. +ldouble: 1
  112616. +Test "Real part of: cacosh (0x1.fp-16385 - 0.5 i)":
  112617. +ildouble: 1
  112618. +ldouble: 1
  112619. +Test "Real part of: cacosh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
  112620. +ildouble: 1
  112621. +ldouble: 1
  112622. +Test "Real part of: cacosh (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
  112623. +ildouble: 1
  112624. +ldouble: 1
  112625. +Test "Real part of: cacosh (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
  112626. +ildouble: 1
  112627. +ldouble: 1
  112628. +Test "Real part of: cacosh (0x1.fp-16385 - 1.0 i)":
  112629. +ildouble: 1
  112630. +ldouble: 1
  112631. +Test "Real part of: cacosh (0x1.fp-16385 - 1.5 i)":
  112632. +ildouble: 1
  112633. +ldouble: 1
  112634. +Test "Real part of: cacosh (0x1.fp-30 + 1.0 i)":
  112635. +double: 1
  112636. +float: 1
  112637. +idouble: 1
  112638. +ifloat: 1
  112639. +ildouble: 1
  112640. +ldouble: 1
  112641. +Test "Real part of: cacosh (0x1.fp-30 - 1.0 i)":
  112642. +double: 1
  112643. +float: 1
  112644. +idouble: 1
  112645. +ifloat: 1
  112646. +ildouble: 1
  112647. +ldouble: 1
  112648. +Test "Real part of: cacosh (0x1.fp1023 + 0x1.fp1023 i)":
  112649. +double: 1
  112650. +idouble: 1
  112651. +Test "Real part of: cacosh (0x1.fp127 + 0x1.fp127 i)":
  112652. +double: 1
  112653. +idouble: 1
  112654. +Test "Real part of: cacosh (0x1.fp16383 + 0x1.fp16383 i)":
  112655. +ildouble: 1
  112656. +ldouble: 1
  112657. +Test "Real part of: cacosh (0x1p-105 + 0.5 i)":
  112658. +float: 1
  112659. +ifloat: 1
  112660. +Test "Real part of: cacosh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  112661. +ildouble: 1
  112662. +ldouble: 1
  112663. +Test "Imaginary part of: cacosh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  112664. +ildouble: 1
  112665. +ldouble: 1
  112666. +Test "Real part of: cacosh (0x1p-105 - 0.5 i)":
  112667. +float: 1
  112668. +ifloat: 1
  112669. +Test "Real part of: cacosh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  112670. +ildouble: 1
  112671. +ldouble: 1
  112672. +Test "Imaginary part of: cacosh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  112673. +ildouble: 1
  112674. +ldouble: 1
  112675. +Test "Real part of: cacosh (0x1p-112 + 0.5 i)":
  112676. +float: 1
  112677. +ifloat: 1
  112678. +Test "Imaginary part of: cacosh (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
  112679. +ildouble: 1
  112680. +ldouble: 1
  112681. +Test "Real part of: cacosh (0x1p-112 - 0.5 i)":
  112682. +float: 1
  112683. +ifloat: 1
  112684. +Test "Imaginary part of: cacosh (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
  112685. +ildouble: 1
  112686. +ldouble: 1
  112687. +Test "Real part of: cacosh (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  112688. +ildouble: 1
  112689. +ldouble: 1
  112690. +Test "Real part of: cacosh (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  112691. +ildouble: 1
  112692. +ldouble: 1
  112693. +Test "Real part of: cacosh (0x1p-23 + 0.5 i)":
  112694. +float: 1
  112695. +ifloat: 1
  112696. +ildouble: 2
  112697. +ldouble: 2
  112698. +Test "Real part of: cacosh (0x1p-23 + 0x0.ffffffp0 i)":
  112699. +double: 1
  112700. +idouble: 1
  112701. +Test "Imaginary part of: cacosh (0x1p-23 + 0x1.000002p0 i)":
  112702. +ildouble: 1
  112703. +ldouble: 1
  112704. +Test "Real part of: cacosh (0x1p-23 - 0.5 i)":
  112705. +float: 1
  112706. +ifloat: 1
  112707. +ildouble: 2
  112708. +ldouble: 2
  112709. +Test "Real part of: cacosh (0x1p-23 - 0x0.ffffffp0 i)":
  112710. +double: 1
  112711. +idouble: 1
  112712. +Test "Imaginary part of: cacosh (0x1p-23 - 0x1.000002p0 i)":
  112713. +ildouble: 1
  112714. +ldouble: 1
  112715. +Test "Real part of: cacosh (0x1p-52 + 0.5 i)":
  112716. +float: 1
  112717. +ifloat: 1
  112718. +ildouble: 1
  112719. +ldouble: 1
  112720. +Test "Imaginary part of: cacosh (0x1p-52 + 0.5 i)":
  112721. +ildouble: 1
  112722. +ldouble: 1
  112723. +Test "Imaginary part of: cacosh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
  112724. +ildouble: 1
  112725. +ldouble: 1
  112726. +Test "Real part of: cacosh (0x1p-52 - 0.5 i)":
  112727. +float: 1
  112728. +ifloat: 1
  112729. +ildouble: 1
  112730. +ldouble: 1
  112731. +Test "Imaginary part of: cacosh (0x1p-52 - 0.5 i)":
  112732. +ildouble: 1
  112733. +ldouble: 1
  112734. +Test "Imaginary part of: cacosh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
  112735. +ildouble: 1
  112736. +ldouble: 1
  112737. +Test "Real part of: cacosh (0x1p-63 + 0.5 i)":
  112738. +float: 1
  112739. +ifloat: 1
  112740. +Test "Imaginary part of: cacosh (0x1p-63 + 0.5 i)":
  112741. +ildouble: 1
  112742. +ldouble: 1
  112743. +Test "Real part of: cacosh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
  112744. +ildouble: 1
  112745. +ldouble: 1
  112746. +Test "Real part of: cacosh (0x1p-63 + 0x1.0000000000000002p0 i)":
  112747. +ildouble: 1
  112748. +ldouble: 1
  112749. +Test "Real part of: cacosh (0x1p-63 - 0.5 i)":
  112750. +float: 1
  112751. +ifloat: 1
  112752. +Test "Imaginary part of: cacosh (0x1p-63 - 0.5 i)":
  112753. +ildouble: 1
  112754. +ldouble: 1
  112755. +Test "Real part of: cacosh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
  112756. +ildouble: 1
  112757. +ldouble: 1
  112758. +Test "Real part of: cacosh (0x1p-63 - 0x1.0000000000000002p0 i)":
  112759. +ildouble: 1
  112760. +ldouble: 1
  112761. +Test "Real part of: cacosh (0x1p500 + 1.0 i)":
  112762. +ildouble: 1
  112763. +ldouble: 1
  112764. +Test "Real part of: cacosh (0x1p500 - 1.0 i)":
  112765. +ildouble: 1
  112766. +ldouble: 1
  112767. +Test "Real part of: cacosh (0x1p5000 + 1.0 i)":
  112768. +ildouble: 1
  112769. +ldouble: 1
  112770. +Test "Real part of: cacosh (0x1p5000 - 1.0 i)":
  112771. +ildouble: 1
  112772. +ldouble: 1
  112773. +Test "Imaginary part of: cacosh (1.0 + 0.25 i)":
  112774. +double: 1
  112775. +idouble: 1
  112776. +Test "Real part of: cacosh (1.0 + 0.5 i)":
  112777. +float: 1
  112778. +ifloat: 1
  112779. +Test "Imaginary part of: cacosh (1.0 + 0.5 i)":
  112780. +float: 1
  112781. +ifloat: 1
  112782. +Test "Real part of: cacosh (1.0 + 0x1.fp-10 i)":
  112783. +float: 1
  112784. +ifloat: 1
  112785. +ildouble: 1
  112786. +ldouble: 1
  112787. +Test "Imaginary part of: cacosh (1.0 + 0x1.fp-10 i)":
  112788. +float: 2
  112789. +ifloat: 2
  112790. +Test "Imaginary part of: cacosh (1.0 + 0x1.fp-100 i)":
  112791. +ildouble: 1
  112792. +ldouble: 1
  112793. +Test "Real part of: cacosh (1.0 + 0x1.fp-30 i)":
  112794. +ildouble: 1
  112795. +ldouble: 1
  112796. +Test "Real part of: cacosh (1.0 + 0x1p500 i)":
  112797. +ildouble: 1
  112798. +ldouble: 1
  112799. +Test "Real part of: cacosh (1.0 + 0x1p5000 i)":
  112800. +ildouble: 1
  112801. +ldouble: 1
  112802. +Test "Imaginary part of: cacosh (1.0 - 0.25 i)":
  112803. +double: 1
  112804. +idouble: 1
  112805. +Test "Real part of: cacosh (1.0 - 0.5 i)":
  112806. +float: 1
  112807. +ifloat: 1
  112808. +Test "Imaginary part of: cacosh (1.0 - 0.5 i)":
  112809. +float: 1
  112810. +ifloat: 1
  112811. +Test "Real part of: cacosh (1.0 - 0x1.fp-10 i)":
  112812. +float: 1
  112813. +ifloat: 1
  112814. +ildouble: 1
  112815. +ldouble: 1
  112816. +Test "Imaginary part of: cacosh (1.0 - 0x1.fp-10 i)":
  112817. +float: 2
  112818. +ifloat: 2
  112819. +Test "Imaginary part of: cacosh (1.0 - 0x1.fp-100 i)":
  112820. +ildouble: 1
  112821. +ldouble: 1
  112822. +Test "Real part of: cacosh (1.0 - 0x1.fp-30 i)":
  112823. +ildouble: 1
  112824. +ldouble: 1
  112825. +Test "Real part of: cacosh (1.0 - 0x1p500 i)":
  112826. +ildouble: 1
  112827. +ldouble: 1
  112828. +Test "Real part of: cacosh (1.0 - 0x1p5000 i)":
  112829. +ildouble: 1
  112830. +ldouble: 1
  112831. +
  112832. +# casin
  112833. +Test "Imaginary part of: casin (+0 + 0.5 i)":
  112834. +float: 1
  112835. +ifloat: 1
  112836. +ildouble: 1
  112837. +ldouble: 1
  112838. +Test "Imaginary part of: casin (+0 + 1.0 i)":
  112839. +double: 1
  112840. +float: 1
  112841. +idouble: 1
  112842. +ifloat: 1
  112843. +ildouble: 1
  112844. +ldouble: 1
  112845. +Test "Imaginary part of: casin (+0 + 1.5 i)":
  112846. +double: 1
  112847. +idouble: 1
  112848. +ildouble: 1
  112849. +ldouble: 1
  112850. +Test "Imaginary part of: casin (+0 - 0.5 i)":
  112851. +float: 1
  112852. +ifloat: 1
  112853. +ildouble: 1
  112854. +ldouble: 1
  112855. +Test "Imaginary part of: casin (+0 - 1.0 i)":
  112856. +double: 1
  112857. +float: 1
  112858. +idouble: 1
  112859. +ifloat: 1
  112860. +ildouble: 1
  112861. +ldouble: 1
  112862. +Test "Imaginary part of: casin (+0 - 1.5 i)":
  112863. +double: 1
  112864. +idouble: 1
  112865. +ildouble: 1
  112866. +ldouble: 1
  112867. +Test "Imaginary part of: casin (-0 + 0.5 i)":
  112868. +float: 1
  112869. +ifloat: 1
  112870. +ildouble: 1
  112871. +ldouble: 1
  112872. +Test "Imaginary part of: casin (-0 + 1.0 i)":
  112873. +double: 1
  112874. +float: 1
  112875. +idouble: 1
  112876. +ifloat: 1
  112877. +ildouble: 1
  112878. +ldouble: 1
  112879. +Test "Imaginary part of: casin (-0 + 1.5 i)":
  112880. +double: 1
  112881. +idouble: 1
  112882. +ildouble: 1
  112883. +ldouble: 1
  112884. +Test "Imaginary part of: casin (-0 - 0.5 i)":
  112885. +float: 1
  112886. +ifloat: 1
  112887. +ildouble: 1
  112888. +ldouble: 1
  112889. +Test "Imaginary part of: casin (-0 - 1.0 i)":
  112890. +double: 1
  112891. +float: 1
  112892. +idouble: 1
  112893. +ifloat: 1
  112894. +ildouble: 1
  112895. +ldouble: 1
  112896. +Test "Imaginary part of: casin (-0 - 1.5 i)":
  112897. +double: 1
  112898. +idouble: 1
  112899. +ildouble: 1
  112900. +ldouble: 1
  112901. +Test "Imaginary part of: casin (-0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  112902. +ildouble: 1
  112903. +ldouble: 1
  112904. +Test "Imaginary part of: casin (-0.0 + 0x0.ffffffffffffffffp0 i)":
  112905. +ildouble: 1
  112906. +ldouble: 1
  112907. +Test "Imaginary part of: casin (-0.0 + 0x1.0000000000000000000000000001p0 i)":
  112908. +ildouble: 1
  112909. +ldouble: 1
  112910. +Test "Imaginary part of: casin (-0.0 + 0x1.0000000000000002p0 i)":
  112911. +ildouble: 1
  112912. +ldouble: 1
  112913. +Test "Imaginary part of: casin (-0.0 + 0x1.0000000000001p0 i)":
  112914. +ildouble: 1
  112915. +ldouble: 1
  112916. +Test "Imaginary part of: casin (-0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  112917. +ildouble: 1
  112918. +ldouble: 1
  112919. +Test "Imaginary part of: casin (-0.0 - 0x0.ffffffffffffffffp0 i)":
  112920. +ildouble: 1
  112921. +ldouble: 1
  112922. +Test "Imaginary part of: casin (-0.0 - 0x1.0000000000000000000000000001p0 i)":
  112923. +ildouble: 1
  112924. +ldouble: 1
  112925. +Test "Imaginary part of: casin (-0.0 - 0x1.0000000000000002p0 i)":
  112926. +ildouble: 1
  112927. +ldouble: 1
  112928. +Test "Imaginary part of: casin (-0.0 - 0x1.0000000000001p0 i)":
  112929. +ildouble: 1
  112930. +ldouble: 1
  112931. +Test "Imaginary part of: casin (-0.25 + 1.0 i)":
  112932. +float: 1
  112933. +ifloat: 1
  112934. +ildouble: 1
  112935. +ldouble: 1
  112936. +Test "Imaginary part of: casin (-0.25 - 1.0 i)":
  112937. +float: 1
  112938. +ifloat: 1
  112939. +ildouble: 1
  112940. +ldouble: 1
  112941. +Test "Imaginary part of: casin (-0.5 + 0x1.fp-129 i)":
  112942. +double: 1
  112943. +idouble: 1
  112944. +Test "Imaginary part of: casin (-0.5 + 0x1p-105 i)":
  112945. +double: 1
  112946. +idouble: 1
  112947. +ildouble: 1
  112948. +ldouble: 1
  112949. +Test "Real part of: casin (-0.5 + 0x1p-112 i)":
  112950. +ildouble: 1
  112951. +ldouble: 1
  112952. +Test "Imaginary part of: casin (-0.5 + 0x1p-112 i)":
  112953. +double: 1
  112954. +idouble: 1
  112955. +ildouble: 1
  112956. +ldouble: 1
  112957. +Test "Real part of: casin (-0.5 + 0x1p-23 i)":
  112958. +ildouble: 1
  112959. +ldouble: 1
  112960. +Test "Imaginary part of: casin (-0.5 + 0x1p-23 i)":
  112961. +double: 1
  112962. +idouble: 1
  112963. +ildouble: 1
  112964. +ldouble: 1
  112965. +Test "Imaginary part of: casin (-0.5 + 0x1p-63 i)":
  112966. +ildouble: 1
  112967. +ldouble: 1
  112968. +Test "Real part of: casin (-0.5 + 1.0 i)":
  112969. +ildouble: 1
  112970. +ldouble: 1
  112971. +Test "Imaginary part of: casin (-0.5 + 1.0 i)":
  112972. +double: 1
  112973. +idouble: 1
  112974. +ildouble: 1
  112975. +ldouble: 1
  112976. +Test "Imaginary part of: casin (-0.5 - 0x1.fp-129 i)":
  112977. +double: 1
  112978. +idouble: 1
  112979. +Test "Imaginary part of: casin (-0.5 - 0x1p-105 i)":
  112980. +double: 1
  112981. +idouble: 1
  112982. +ildouble: 1
  112983. +ldouble: 1
  112984. +Test "Real part of: casin (-0.5 - 0x1p-112 i)":
  112985. +ildouble: 1
  112986. +ldouble: 1
  112987. +Test "Imaginary part of: casin (-0.5 - 0x1p-112 i)":
  112988. +double: 1
  112989. +idouble: 1
  112990. +ildouble: 1
  112991. +ldouble: 1
  112992. +Test "Real part of: casin (-0.5 - 0x1p-23 i)":
  112993. +ildouble: 1
  112994. +ldouble: 1
  112995. +Test "Imaginary part of: casin (-0.5 - 0x1p-23 i)":
  112996. +double: 1
  112997. +idouble: 1
  112998. +ildouble: 1
  112999. +ldouble: 1
  113000. +Test "Imaginary part of: casin (-0.5 - 0x1p-63 i)":
  113001. +ildouble: 1
  113002. +ldouble: 1
  113003. +Test "Real part of: casin (-0.5 - 1.0 i)":
  113004. +ildouble: 1
  113005. +ldouble: 1
  113006. +Test "Imaginary part of: casin (-0.5 - 1.0 i)":
  113007. +double: 1
  113008. +idouble: 1
  113009. +ildouble: 1
  113010. +ldouble: 1
  113011. +Test "Real part of: casin (-0x0.fffffffffffff8p0 + 0.0 i)":
  113012. +ildouble: 1
  113013. +ldouble: 1
  113014. +Test "Real part of: casin (-0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
  113015. +ildouble: 1
  113016. +ldouble: 1
  113017. +Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 + 0x1p-52 i)":
  113018. +double: 1
  113019. +idouble: 1
  113020. +Test "Real part of: casin (-0x0.fffffffffffff8p0 - 0.0 i)":
  113021. +ildouble: 1
  113022. +ldouble: 1
  113023. +Test "Real part of: casin (-0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
  113024. +ildouble: 1
  113025. +ldouble: 1
  113026. +Test "Imaginary part of: casin (-0x0.fffffffffffff8p0 - 0x1p-52 i)":
  113027. +double: 1
  113028. +idouble: 1
  113029. +Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  113030. +ildouble: 1
  113031. +ldouble: 1
  113032. +Test "Imaginary part of: casin (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  113033. +ildouble: 1
  113034. +ldouble: 1
  113035. +Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  113036. +ildouble: 1
  113037. +ldouble: 1
  113038. +Test "Imaginary part of: casin (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  113039. +ildouble: 1
  113040. +ldouble: 1
  113041. +Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-112 i)":
  113042. +ildouble: 1
  113043. +ldouble: 1
  113044. +Test "Real part of: casin (-0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-112 i)":
  113045. +ildouble: 1
  113046. +ldouble: 1
  113047. +Test "Real part of: casin (-0x0.ffffffffffffffffp0 + 0.0 i)":
  113048. +ildouble: 1
  113049. +ldouble: 1
  113050. +Test "Real part of: casin (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
  113051. +ildouble: 1
  113052. +ldouble: 1
  113053. +Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
  113054. +ildouble: 1
  113055. +ldouble: 1
  113056. +Test "Real part of: casin (-0x0.ffffffffffffffffp0 - 0.0 i)":
  113057. +ildouble: 1
  113058. +ldouble: 1
  113059. +Test "Real part of: casin (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
  113060. +ildouble: 1
  113061. +ldouble: 1
  113062. +Test "Imaginary part of: casin (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
  113063. +ildouble: 1
  113064. +ldouble: 1
  113065. +Test "Real part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
  113066. +ildouble: 1
  113067. +ldouble: 1
  113068. +Test "Imaginary part of: casin (-0x0.ffffffp0 + 0x1p-23 i)":
  113069. +float: 2
  113070. +ifloat: 2
  113071. +Test "Real part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
  113072. +ildouble: 1
  113073. +ldouble: 1
  113074. +Test "Imaginary part of: casin (-0x0.ffffffp0 - 0x1p-23 i)":
  113075. +float: 2
  113076. +ifloat: 2
  113077. +Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0.0 i)":
  113078. +ildouble: 1
  113079. +ldouble: 1
  113080. +Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  113081. +ildouble: 1
  113082. +ldouble: 1
  113083. +Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  113084. +ildouble: 1
  113085. +ldouble: 1
  113086. +Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0.0 i)":
  113087. +ildouble: 1
  113088. +ldouble: 1
  113089. +Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  113090. +ildouble: 1
  113091. +ldouble: 1
  113092. +Test "Imaginary part of: casin (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  113093. +ildouble: 1
  113094. +ldouble: 1
  113095. +Test "Imaginary part of: casin (-0x1.000002p0 + 0x1p-23 i)":
  113096. +float: 1
  113097. +ifloat: 1
  113098. +ildouble: 1
  113099. +ldouble: 1
  113100. +Test "Imaginary part of: casin (-0x1.000002p0 - 0x1p-23 i)":
  113101. +float: 1
  113102. +ifloat: 1
  113103. +ildouble: 1
  113104. +ldouble: 1
  113105. +Test "Real part of: casin (-0x1.fp-10 + 1.0 i)":
  113106. +float: 1
  113107. +ifloat: 1
  113108. +ildouble: 1
  113109. +ldouble: 1
  113110. +Test "Imaginary part of: casin (-0x1.fp-10 + 1.0 i)":
  113111. +double: 1
  113112. +idouble: 1
  113113. +Test "Real part of: casin (-0x1.fp-10 - 1.0 i)":
  113114. +float: 1
  113115. +ifloat: 1
  113116. +ildouble: 1
  113117. +ldouble: 1
  113118. +Test "Imaginary part of: casin (-0x1.fp-10 - 1.0 i)":
  113119. +double: 1
  113120. +idouble: 1
  113121. +Test "Imaginary part of: casin (-0x1.fp-100 + 1.0 i)":
  113122. +double: 1
  113123. +float: 1
  113124. +idouble: 1
  113125. +ifloat: 1
  113126. +ildouble: 1
  113127. +ldouble: 1
  113128. +Test "Imaginary part of: casin (-0x1.fp-100 - 1.0 i)":
  113129. +double: 1
  113130. +float: 1
  113131. +idouble: 1
  113132. +ifloat: 1
  113133. +ildouble: 1
  113134. +ldouble: 1
  113135. +Test "Imaginary part of: casin (-0x1.fp-1000 + 1.0 i)":
  113136. +double: 1
  113137. +idouble: 1
  113138. +ildouble: 1
  113139. +ldouble: 1
  113140. +Test "Imaginary part of: casin (-0x1.fp-1000 - 1.0 i)":
  113141. +double: 1
  113142. +idouble: 1
  113143. +ildouble: 1
  113144. +ldouble: 1
  113145. +Test "Imaginary part of: casin (-0x1.fp-10000 + 1.0 i)":
  113146. +ildouble: 1
  113147. +ldouble: 1
  113148. +Test "Imaginary part of: casin (-0x1.fp-10000 - 1.0 i)":
  113149. +ildouble: 1
  113150. +ldouble: 1
  113151. +Test "Imaginary part of: casin (-0x1.fp-1025 + 0.5 i)":
  113152. +ildouble: 1
  113153. +ldouble: 1
  113154. +Test "Real part of: casin (-0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
  113155. +ildouble: 1
  113156. +ldouble: 1
  113157. +Test "Imaginary part of: casin (-0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  113158. +ildouble: 1
  113159. +ldouble: 1
  113160. +Test "Imaginary part of: casin (-0x1.fp-1025 + 0x1.0000000000001p0 i)":
  113161. +ildouble: 1
  113162. +ldouble: 1
  113163. +Test "Imaginary part of: casin (-0x1.fp-1025 + 1.0 i)":
  113164. +double: 1
  113165. +idouble: 1
  113166. +ildouble: 1
  113167. +ldouble: 1
  113168. +Test "Imaginary part of: casin (-0x1.fp-1025 + 1.5 i)":
  113169. +double: 1
  113170. +idouble: 1
  113171. +ildouble: 1
  113172. +ldouble: 1
  113173. +Test "Imaginary part of: casin (-0x1.fp-1025 - 0.5 i)":
  113174. +ildouble: 1
  113175. +ldouble: 1
  113176. +Test "Real part of: casin (-0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
  113177. +ildouble: 1
  113178. +ldouble: 1
  113179. +Test "Imaginary part of: casin (-0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  113180. +ildouble: 1
  113181. +ldouble: 1
  113182. +Test "Imaginary part of: casin (-0x1.fp-1025 - 0x1.0000000000001p0 i)":
  113183. +ildouble: 1
  113184. +ldouble: 1
  113185. +Test "Imaginary part of: casin (-0x1.fp-1025 - 1.0 i)":
  113186. +double: 1
  113187. +idouble: 1
  113188. +ildouble: 1
  113189. +ldouble: 1
  113190. +Test "Imaginary part of: casin (-0x1.fp-1025 - 1.5 i)":
  113191. +double: 1
  113192. +idouble: 1
  113193. +ildouble: 1
  113194. +ldouble: 1
  113195. +Test "Imaginary part of: casin (-0x1.fp-129 + 0.5 i)":
  113196. +float: 1
  113197. +ifloat: 1
  113198. +ildouble: 1
  113199. +ldouble: 1
  113200. +Test "Imaginary part of: casin (-0x1.fp-129 + 1.0 i)":
  113201. +double: 1
  113202. +float: 1
  113203. +idouble: 1
  113204. +ifloat: 1
  113205. +ildouble: 1
  113206. +ldouble: 1
  113207. +Test "Imaginary part of: casin (-0x1.fp-129 + 1.5 i)":
  113208. +double: 1
  113209. +idouble: 1
  113210. +ildouble: 1
  113211. +ldouble: 1
  113212. +Test "Imaginary part of: casin (-0x1.fp-129 - 0.5 i)":
  113213. +float: 1
  113214. +ifloat: 1
  113215. +ildouble: 1
  113216. +ldouble: 1
  113217. +Test "Imaginary part of: casin (-0x1.fp-129 - 1.0 i)":
  113218. +double: 1
  113219. +float: 1
  113220. +idouble: 1
  113221. +ifloat: 1
  113222. +ildouble: 1
  113223. +ldouble: 1
  113224. +Test "Imaginary part of: casin (-0x1.fp-129 - 1.5 i)":
  113225. +double: 1
  113226. +idouble: 1
  113227. +ildouble: 1
  113228. +ldouble: 1
  113229. +Test "Imaginary part of: casin (-0x1.fp-16385 + 0.5 i)":
  113230. +ildouble: 1
  113231. +ldouble: 1
  113232. +Test "Imaginary part of: casin (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
  113233. +ildouble: 1
  113234. +ldouble: 1
  113235. +Test "Imaginary part of: casin (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
  113236. +ildouble: 1
  113237. +ldouble: 1
  113238. +Test "Imaginary part of: casin (-0x1.fp-16385 + 0x1.0000000000000002p0 i)":
  113239. +ildouble: 1
  113240. +ldouble: 1
  113241. +Test "Imaginary part of: casin (-0x1.fp-16385 + 1.0 i)":
  113242. +ildouble: 1
  113243. +ldouble: 1
  113244. +Test "Imaginary part of: casin (-0x1.fp-16385 + 1.5 i)":
  113245. +ildouble: 1
  113246. +ldouble: 1
  113247. +Test "Imaginary part of: casin (-0x1.fp-16385 - 0.5 i)":
  113248. +ildouble: 1
  113249. +ldouble: 1
  113250. +Test "Imaginary part of: casin (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
  113251. +ildouble: 1
  113252. +ldouble: 1
  113253. +Test "Imaginary part of: casin (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
  113254. +ildouble: 1
  113255. +ldouble: 1
  113256. +Test "Imaginary part of: casin (-0x1.fp-16385 - 0x1.0000000000000002p0 i)":
  113257. +ildouble: 1
  113258. +ldouble: 1
  113259. +Test "Imaginary part of: casin (-0x1.fp-16385 - 1.0 i)":
  113260. +ildouble: 1
  113261. +ldouble: 1
  113262. +Test "Imaginary part of: casin (-0x1.fp-16385 - 1.5 i)":
  113263. +ildouble: 1
  113264. +ldouble: 1
  113265. +Test "Real part of: casin (-0x1.fp-30 + 1.0 i)":
  113266. +ildouble: 1
  113267. +ldouble: 1
  113268. +Test "Imaginary part of: casin (-0x1.fp-30 + 1.0 i)":
  113269. +double: 1
  113270. +float: 1
  113271. +idouble: 1
  113272. +ifloat: 1
  113273. +ildouble: 1
  113274. +ldouble: 1
  113275. +Test "Real part of: casin (-0x1.fp-30 - 1.0 i)":
  113276. +ildouble: 1
  113277. +ldouble: 1
  113278. +Test "Imaginary part of: casin (-0x1.fp-30 - 1.0 i)":
  113279. +double: 1
  113280. +float: 1
  113281. +idouble: 1
  113282. +ifloat: 1
  113283. +ildouble: 1
  113284. +ldouble: 1
  113285. +Test "Imaginary part of: casin (-0x1p-105 + 0.5 i)":
  113286. +float: 1
  113287. +ifloat: 1
  113288. +Test "Imaginary part of: casin (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  113289. +ildouble: 1
  113290. +ldouble: 1
  113291. +Test "Imaginary part of: casin (-0x1p-105 - 0.5 i)":
  113292. +float: 1
  113293. +ifloat: 1
  113294. +Test "Imaginary part of: casin (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  113295. +ildouble: 1
  113296. +ldouble: 1
  113297. +Test "Imaginary part of: casin (-0x1p-112 + 0.5 i)":
  113298. +float: 1
  113299. +ifloat: 1
  113300. +Test "Imaginary part of: casin (-0x1p-112 - 0.5 i)":
  113301. +float: 1
  113302. +ifloat: 1
  113303. +Test "Real part of: casin (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  113304. +ildouble: 1
  113305. +ldouble: 1
  113306. +Test "Imaginary part of: casin (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  113307. +ildouble: 1
  113308. +ldouble: 1
  113309. +Test "Real part of: casin (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  113310. +ildouble: 1
  113311. +ldouble: 1
  113312. +Test "Imaginary part of: casin (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  113313. +ildouble: 1
  113314. +ldouble: 1
  113315. +Test "Real part of: casin (-0x1p-23 + 0.5 i)":
  113316. +double: 1
  113317. +float: 1
  113318. +idouble: 1
  113319. +ifloat: 1
  113320. +ildouble: 2
  113321. +ldouble: 2
  113322. +Test "Imaginary part of: casin (-0x1p-23 + 0.5 i)":
  113323. +float: 1
  113324. +ifloat: 1
  113325. +ildouble: 2
  113326. +ldouble: 2
  113327. +Test "Imaginary part of: casin (-0x1p-23 + 0x0.ffffffp0 i)":
  113328. +double: 1
  113329. +idouble: 1
  113330. +Test "Real part of: casin (-0x1p-23 + 0x1.000002p0 i)":
  113331. +double: 1
  113332. +float: 1
  113333. +idouble: 1
  113334. +ifloat: 1
  113335. +ildouble: 1
  113336. +ldouble: 1
  113337. +Test "Real part of: casin (-0x1p-23 - 0.5 i)":
  113338. +double: 1
  113339. +float: 1
  113340. +idouble: 1
  113341. +ifloat: 1
  113342. +ildouble: 2
  113343. +ldouble: 2
  113344. +Test "Imaginary part of: casin (-0x1p-23 - 0.5 i)":
  113345. +float: 1
  113346. +ifloat: 1
  113347. +ildouble: 2
  113348. +ldouble: 2
  113349. +Test "Imaginary part of: casin (-0x1p-23 - 0x0.ffffffp0 i)":
  113350. +double: 1
  113351. +idouble: 1
  113352. +Test "Real part of: casin (-0x1p-23 - 0x1.000002p0 i)":
  113353. +double: 1
  113354. +float: 1
  113355. +idouble: 1
  113356. +ifloat: 1
  113357. +ildouble: 1
  113358. +ldouble: 1
  113359. +Test "Real part of: casin (-0x1p-52 + 0.5 i)":
  113360. +ildouble: 1
  113361. +ldouble: 1
  113362. +Test "Imaginary part of: casin (-0x1p-52 + 0.5 i)":
  113363. +float: 1
  113364. +ifloat: 1
  113365. +ildouble: 1
  113366. +ldouble: 1
  113367. +Test "Real part of: casin (-0x1p-52 + 0x1.0000000000001p0 i)":
  113368. +ildouble: 1
  113369. +ldouble: 1
  113370. +Test "Real part of: casin (-0x1p-52 - 0.5 i)":
  113371. +ildouble: 1
  113372. +ldouble: 1
  113373. +Test "Imaginary part of: casin (-0x1p-52 - 0.5 i)":
  113374. +float: 1
  113375. +ifloat: 1
  113376. +ildouble: 1
  113377. +ldouble: 1
  113378. +Test "Real part of: casin (-0x1p-52 - 0x1.0000000000001p0 i)":
  113379. +ildouble: 1
  113380. +ldouble: 1
  113381. +Test "Imaginary part of: casin (-0x1p-63 + 0.5 i)":
  113382. +float: 1
  113383. +ifloat: 1
  113384. +Test "Imaginary part of: casin (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
  113385. +ildouble: 1
  113386. +ldouble: 1
  113387. +Test "Real part of: casin (-0x1p-63 + 0x1.0000000000000002p0 i)":
  113388. +ildouble: 1
  113389. +ldouble: 1
  113390. +Test "Imaginary part of: casin (-0x1p-63 + 0x1.0000000000000002p0 i)":
  113391. +ildouble: 1
  113392. +ldouble: 1
  113393. +Test "Imaginary part of: casin (-0x1p-63 - 0.5 i)":
  113394. +float: 1
  113395. +ifloat: 1
  113396. +Test "Imaginary part of: casin (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
  113397. +ildouble: 1
  113398. +ldouble: 1
  113399. +Test "Real part of: casin (-0x1p-63 - 0x1.0000000000000002p0 i)":
  113400. +ildouble: 1
  113401. +ldouble: 1
  113402. +Test "Imaginary part of: casin (-0x1p-63 - 0x1.0000000000000002p0 i)":
  113403. +ildouble: 1
  113404. +ldouble: 1
  113405. +Test "Imaginary part of: casin (-0x1p500 + 1.0 i)":
  113406. +ildouble: 1
  113407. +ldouble: 1
  113408. +Test "Imaginary part of: casin (-0x1p500 - 1.0 i)":
  113409. +ildouble: 1
  113410. +ldouble: 1
  113411. +Test "Imaginary part of: casin (-0x1p5000 + 1.0 i)":
  113412. +ildouble: 1
  113413. +ldouble: 1
  113414. +Test "Imaginary part of: casin (-0x1p5000 - 1.0 i)":
  113415. +ildouble: 1
  113416. +ldouble: 1
  113417. +Test "Real part of: casin (-1.0 + 0.25 i)":
  113418. +double: 1
  113419. +idouble: 1
  113420. +ildouble: 1
  113421. +ldouble: 1
  113422. +Test "Real part of: casin (-1.0 + 0.5 i)":
  113423. +float: 1
  113424. +ifloat: 1
  113425. +Test "Imaginary part of: casin (-1.0 + 0.5 i)":
  113426. +float: 1
  113427. +ifloat: 1
  113428. +Test "Imaginary part of: casin (-1.0 + 0x1.fp-10 i)":
  113429. +float: 1
  113430. +ifloat: 1
  113431. +ildouble: 1
  113432. +ldouble: 1
  113433. +Test "Real part of: casin (-1.0 + 0x1.fp-129 i)":
  113434. +ildouble: 1
  113435. +ldouble: 1
  113436. +Test "Imaginary part of: casin (-1.0 + 0x1.fp-30 i)":
  113437. +ildouble: 1
  113438. +ldouble: 1
  113439. +Test "Imaginary part of: casin (-1.0 + 0x1p500 i)":
  113440. +ildouble: 1
  113441. +ldouble: 1
  113442. +Test "Imaginary part of: casin (-1.0 + 0x1p5000 i)":
  113443. +ildouble: 1
  113444. +ldouble: 1
  113445. +Test "Real part of: casin (-1.0 - 0.25 i)":
  113446. +double: 1
  113447. +idouble: 1
  113448. +ildouble: 1
  113449. +ldouble: 1
  113450. +Test "Real part of: casin (-1.0 - 0.5 i)":
  113451. +float: 1
  113452. +ifloat: 1
  113453. +Test "Imaginary part of: casin (-1.0 - 0.5 i)":
  113454. +float: 1
  113455. +ifloat: 1
  113456. +Test "Imaginary part of: casin (-1.0 - 0x1.fp-10 i)":
  113457. +float: 1
  113458. +ifloat: 1
  113459. +ildouble: 1
  113460. +ldouble: 1
  113461. +Test "Real part of: casin (-1.0 - 0x1.fp-129 i)":
  113462. +ildouble: 1
  113463. +ldouble: 1
  113464. +Test "Imaginary part of: casin (-1.0 - 0x1.fp-30 i)":
  113465. +ildouble: 1
  113466. +ldouble: 1
  113467. +Test "Imaginary part of: casin (-1.0 - 0x1p500 i)":
  113468. +ildouble: 1
  113469. +ldouble: 1
  113470. +Test "Imaginary part of: casin (-1.0 - 0x1p5000 i)":
  113471. +ildouble: 1
  113472. +ldouble: 1
  113473. +Test "Imaginary part of: casin (0.0 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  113474. +ildouble: 1
  113475. +ldouble: 1
  113476. +Test "Imaginary part of: casin (0.0 + 0x0.ffffffffffffffffp0 i)":
  113477. +ildouble: 1
  113478. +ldouble: 1
  113479. +Test "Imaginary part of: casin (0.0 + 0x1.0000000000000000000000000001p0 i)":
  113480. +ildouble: 1
  113481. +ldouble: 1
  113482. +Test "Imaginary part of: casin (0.0 + 0x1.0000000000000002p0 i)":
  113483. +ildouble: 1
  113484. +ldouble: 1
  113485. +Test "Imaginary part of: casin (0.0 + 0x1.0000000000001p0 i)":
  113486. +ildouble: 1
  113487. +ldouble: 1
  113488. +Test "Imaginary part of: casin (0.0 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  113489. +ildouble: 1
  113490. +ldouble: 1
  113491. +Test "Imaginary part of: casin (0.0 - 0x0.ffffffffffffffffp0 i)":
  113492. +ildouble: 1
  113493. +ldouble: 1
  113494. +Test "Imaginary part of: casin (0.0 - 0x1.0000000000000000000000000001p0 i)":
  113495. +ildouble: 1
  113496. +ldouble: 1
  113497. +Test "Imaginary part of: casin (0.0 - 0x1.0000000000000002p0 i)":
  113498. +ildouble: 1
  113499. +ldouble: 1
  113500. +Test "Imaginary part of: casin (0.0 - 0x1.0000000000001p0 i)":
  113501. +ildouble: 1
  113502. +ldouble: 1
  113503. +Test "Imaginary part of: casin (0.25 + 1.0 i)":
  113504. +float: 1
  113505. +ifloat: 1
  113506. +ildouble: 1
  113507. +ldouble: 1
  113508. +Test "Imaginary part of: casin (0.25 - 1.0 i)":
  113509. +float: 1
  113510. +ifloat: 1
  113511. +ildouble: 1
  113512. +ldouble: 1
  113513. +Test "Imaginary part of: casin (0.5 + 0x1.fp-129 i)":
  113514. +double: 1
  113515. +idouble: 1
  113516. +Test "Imaginary part of: casin (0.5 + 0x1p-105 i)":
  113517. +double: 1
  113518. +idouble: 1
  113519. +ildouble: 1
  113520. +ldouble: 1
  113521. +Test "Real part of: casin (0.5 + 0x1p-112 i)":
  113522. +ildouble: 1
  113523. +ldouble: 1
  113524. +Test "Imaginary part of: casin (0.5 + 0x1p-112 i)":
  113525. +double: 1
  113526. +idouble: 1
  113527. +ildouble: 1
  113528. +ldouble: 1
  113529. +Test "Real part of: casin (0.5 + 0x1p-23 i)":
  113530. +ildouble: 1
  113531. +ldouble: 1
  113532. +Test "Imaginary part of: casin (0.5 + 0x1p-23 i)":
  113533. +double: 1
  113534. +idouble: 1
  113535. +ildouble: 1
  113536. +ldouble: 1
  113537. +Test "Imaginary part of: casin (0.5 + 0x1p-63 i)":
  113538. +ildouble: 1
  113539. +ldouble: 1
  113540. +Test "Real part of: casin (0.5 + 1.0 i)":
  113541. +ildouble: 1
  113542. +ldouble: 1
  113543. +Test "Imaginary part of: casin (0.5 + 1.0 i)":
  113544. +double: 1
  113545. +idouble: 1
  113546. +ildouble: 1
  113547. +ldouble: 1
  113548. +Test "Imaginary part of: casin (0.5 - 0x1.fp-129 i)":
  113549. +double: 1
  113550. +idouble: 1
  113551. +Test "Imaginary part of: casin (0.5 - 0x1p-105 i)":
  113552. +double: 1
  113553. +idouble: 1
  113554. +ildouble: 1
  113555. +ldouble: 1
  113556. +Test "Real part of: casin (0.5 - 0x1p-112 i)":
  113557. +ildouble: 1
  113558. +ldouble: 1
  113559. +Test "Imaginary part of: casin (0.5 - 0x1p-112 i)":
  113560. +double: 1
  113561. +idouble: 1
  113562. +ildouble: 1
  113563. +ldouble: 1
  113564. +Test "Real part of: casin (0.5 - 0x1p-23 i)":
  113565. +ildouble: 1
  113566. +ldouble: 1
  113567. +Test "Imaginary part of: casin (0.5 - 0x1p-23 i)":
  113568. +double: 1
  113569. +idouble: 1
  113570. +ildouble: 1
  113571. +ldouble: 1
  113572. +Test "Imaginary part of: casin (0.5 - 0x1p-63 i)":
  113573. +ildouble: 1
  113574. +ldouble: 1
  113575. +Test "Real part of: casin (0.5 - 1.0 i)":
  113576. +ildouble: 1
  113577. +ldouble: 1
  113578. +Test "Imaginary part of: casin (0.5 - 1.0 i)":
  113579. +double: 1
  113580. +idouble: 1
  113581. +ildouble: 1
  113582. +ldouble: 1
  113583. +Test "Real part of: casin (0.75 + 1.25 i)":
  113584. +double: 1
  113585. +float: 1
  113586. +idouble: 1
  113587. +ifloat: 1
  113588. +Test "Real part of: casin (0x0.fffffffffffff8p0 + 0.0 i)":
  113589. +ildouble: 1
  113590. +ldouble: 1
  113591. +Test "Real part of: casin (0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
  113592. +ildouble: 1
  113593. +ldouble: 1
  113594. +Test "Imaginary part of: casin (0x0.fffffffffffff8p0 + 0x1p-52 i)":
  113595. +double: 1
  113596. +idouble: 1
  113597. +Test "Real part of: casin (0x0.fffffffffffff8p0 - 0.0 i)":
  113598. +ildouble: 1
  113599. +ldouble: 1
  113600. +Test "Real part of: casin (0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
  113601. +ildouble: 1
  113602. +ldouble: 1
  113603. +Test "Imaginary part of: casin (0x0.fffffffffffff8p0 - 0x1p-52 i)":
  113604. +double: 1
  113605. +idouble: 1
  113606. +Test "Real part of: casin (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  113607. +ildouble: 1
  113608. +ldouble: 1
  113609. +Test "Imaginary part of: casin (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  113610. +ildouble: 1
  113611. +ldouble: 1
  113612. +Test "Real part of: casin (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  113613. +ildouble: 1
  113614. +ldouble: 1
  113615. +Test "Imaginary part of: casin (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  113616. +ildouble: 1
  113617. +ldouble: 1
  113618. +Test "Real part of: casin (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-112 i)":
  113619. +ildouble: 1
  113620. +ldouble: 1
  113621. +Test "Real part of: casin (0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-112 i)":
  113622. +ildouble: 1
  113623. +ldouble: 1
  113624. +Test "Real part of: casin (0x0.ffffffffffffffffp0 + 0.0 i)":
  113625. +ildouble: 1
  113626. +ldouble: 1
  113627. +Test "Real part of: casin (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
  113628. +ildouble: 1
  113629. +ldouble: 1
  113630. +Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
  113631. +ildouble: 1
  113632. +ldouble: 1
  113633. +Test "Real part of: casin (0x0.ffffffffffffffffp0 - 0.0 i)":
  113634. +ildouble: 1
  113635. +ldouble: 1
  113636. +Test "Real part of: casin (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
  113637. +ildouble: 1
  113638. +ldouble: 1
  113639. +Test "Imaginary part of: casin (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
  113640. +ildouble: 1
  113641. +ldouble: 1
  113642. +Test "Real part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
  113643. +ildouble: 1
  113644. +ldouble: 1
  113645. +Test "Imaginary part of: casin (0x0.ffffffp0 + 0x1p-23 i)":
  113646. +float: 2
  113647. +ifloat: 2
  113648. +Test "Real part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
  113649. +ildouble: 1
  113650. +ldouble: 1
  113651. +Test "Imaginary part of: casin (0x0.ffffffp0 - 0x1p-23 i)":
  113652. +float: 2
  113653. +ifloat: 2
  113654. +Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0.0 i)":
  113655. +ildouble: 1
  113656. +ldouble: 1
  113657. +Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  113658. +ildouble: 1
  113659. +ldouble: 1
  113660. +Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  113661. +ildouble: 1
  113662. +ldouble: 1
  113663. +Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0.0 i)":
  113664. +ildouble: 1
  113665. +ldouble: 1
  113666. +Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  113667. +ildouble: 1
  113668. +ldouble: 1
  113669. +Test "Imaginary part of: casin (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  113670. +ildouble: 1
  113671. +ldouble: 1
  113672. +Test "Imaginary part of: casin (0x1.000002p0 + 0x1p-23 i)":
  113673. +float: 1
  113674. +ifloat: 1
  113675. +ildouble: 1
  113676. +ldouble: 1
  113677. +Test "Imaginary part of: casin (0x1.000002p0 - 0x1p-23 i)":
  113678. +float: 1
  113679. +ifloat: 1
  113680. +ildouble: 1
  113681. +ldouble: 1
  113682. +Test "Real part of: casin (0x1.fp-10 + 1.0 i)":
  113683. +float: 1
  113684. +ifloat: 1
  113685. +ildouble: 1
  113686. +ldouble: 1
  113687. +Test "Imaginary part of: casin (0x1.fp-10 + 1.0 i)":
  113688. +double: 1
  113689. +idouble: 1
  113690. +Test "Real part of: casin (0x1.fp-10 - 1.0 i)":
  113691. +float: 1
  113692. +ifloat: 1
  113693. +ildouble: 1
  113694. +ldouble: 1
  113695. +Test "Imaginary part of: casin (0x1.fp-10 - 1.0 i)":
  113696. +double: 1
  113697. +idouble: 1
  113698. +Test "Imaginary part of: casin (0x1.fp-100 + 1.0 i)":
  113699. +double: 1
  113700. +float: 1
  113701. +idouble: 1
  113702. +ifloat: 1
  113703. +ildouble: 1
  113704. +ldouble: 1
  113705. +Test "Imaginary part of: casin (0x1.fp-100 - 1.0 i)":
  113706. +double: 1
  113707. +float: 1
  113708. +idouble: 1
  113709. +ifloat: 1
  113710. +ildouble: 1
  113711. +ldouble: 1
  113712. +Test "Imaginary part of: casin (0x1.fp-1000 + 1.0 i)":
  113713. +double: 1
  113714. +idouble: 1
  113715. +ildouble: 1
  113716. +ldouble: 1
  113717. +Test "Imaginary part of: casin (0x1.fp-1000 - 1.0 i)":
  113718. +double: 1
  113719. +idouble: 1
  113720. +ildouble: 1
  113721. +ldouble: 1
  113722. +Test "Imaginary part of: casin (0x1.fp-10000 + 1.0 i)":
  113723. +ildouble: 1
  113724. +ldouble: 1
  113725. +Test "Imaginary part of: casin (0x1.fp-10000 - 1.0 i)":
  113726. +ildouble: 1
  113727. +ldouble: 1
  113728. +Test "Imaginary part of: casin (0x1.fp-1025 + 0.5 i)":
  113729. +ildouble: 1
  113730. +ldouble: 1
  113731. +Test "Real part of: casin (0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
  113732. +ildouble: 1
  113733. +ldouble: 1
  113734. +Test "Imaginary part of: casin (0x1.fp-1025 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  113735. +ildouble: 1
  113736. +ldouble: 1
  113737. +Test "Imaginary part of: casin (0x1.fp-1025 + 0x1.0000000000001p0 i)":
  113738. +ildouble: 1
  113739. +ldouble: 1
  113740. +Test "Imaginary part of: casin (0x1.fp-1025 + 1.0 i)":
  113741. +double: 1
  113742. +idouble: 1
  113743. +ildouble: 1
  113744. +ldouble: 1
  113745. +Test "Imaginary part of: casin (0x1.fp-1025 + 1.5 i)":
  113746. +double: 1
  113747. +idouble: 1
  113748. +ildouble: 1
  113749. +ldouble: 1
  113750. +Test "Imaginary part of: casin (0x1.fp-1025 - 0.5 i)":
  113751. +ildouble: 1
  113752. +ldouble: 1
  113753. +Test "Real part of: casin (0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
  113754. +ildouble: 1
  113755. +ldouble: 1
  113756. +Test "Imaginary part of: casin (0x1.fp-1025 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  113757. +ildouble: 1
  113758. +ldouble: 1
  113759. +Test "Imaginary part of: casin (0x1.fp-1025 - 0x1.0000000000001p0 i)":
  113760. +ildouble: 1
  113761. +ldouble: 1
  113762. +Test "Imaginary part of: casin (0x1.fp-1025 - 1.0 i)":
  113763. +double: 1
  113764. +idouble: 1
  113765. +ildouble: 1
  113766. +ldouble: 1
  113767. +Test "Imaginary part of: casin (0x1.fp-1025 - 1.5 i)":
  113768. +double: 1
  113769. +idouble: 1
  113770. +ildouble: 1
  113771. +ldouble: 1
  113772. +Test "Imaginary part of: casin (0x1.fp-129 + 0.5 i)":
  113773. +float: 1
  113774. +ifloat: 1
  113775. +ildouble: 1
  113776. +ldouble: 1
  113777. +Test "Imaginary part of: casin (0x1.fp-129 + 1.0 i)":
  113778. +double: 1
  113779. +float: 1
  113780. +idouble: 1
  113781. +ifloat: 1
  113782. +ildouble: 1
  113783. +ldouble: 1
  113784. +Test "Imaginary part of: casin (0x1.fp-129 + 1.5 i)":
  113785. +double: 1
  113786. +idouble: 1
  113787. +ildouble: 1
  113788. +ldouble: 1
  113789. +Test "Imaginary part of: casin (0x1.fp-129 - 0.5 i)":
  113790. +float: 1
  113791. +ifloat: 1
  113792. +ildouble: 1
  113793. +ldouble: 1
  113794. +Test "Imaginary part of: casin (0x1.fp-129 - 1.0 i)":
  113795. +double: 1
  113796. +float: 1
  113797. +idouble: 1
  113798. +ifloat: 1
  113799. +ildouble: 1
  113800. +ldouble: 1
  113801. +Test "Imaginary part of: casin (0x1.fp-129 - 1.5 i)":
  113802. +double: 1
  113803. +idouble: 1
  113804. +ildouble: 1
  113805. +ldouble: 1
  113806. +Test "Imaginary part of: casin (0x1.fp-16385 + 0.5 i)":
  113807. +ildouble: 1
  113808. +ldouble: 1
  113809. +Test "Imaginary part of: casin (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
  113810. +ildouble: 1
  113811. +ldouble: 1
  113812. +Test "Imaginary part of: casin (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
  113813. +ildouble: 1
  113814. +ldouble: 1
  113815. +Test "Imaginary part of: casin (0x1.fp-16385 + 0x1.0000000000000002p0 i)":
  113816. +ildouble: 1
  113817. +ldouble: 1
  113818. +Test "Imaginary part of: casin (0x1.fp-16385 + 1.0 i)":
  113819. +ildouble: 1
  113820. +ldouble: 1
  113821. +Test "Imaginary part of: casin (0x1.fp-16385 + 1.5 i)":
  113822. +ildouble: 1
  113823. +ldouble: 1
  113824. +Test "Imaginary part of: casin (0x1.fp-16385 - 0.5 i)":
  113825. +ildouble: 1
  113826. +ldouble: 1
  113827. +Test "Imaginary part of: casin (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
  113828. +ildouble: 1
  113829. +ldouble: 1
  113830. +Test "Imaginary part of: casin (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
  113831. +ildouble: 1
  113832. +ldouble: 1
  113833. +Test "Imaginary part of: casin (0x1.fp-16385 - 0x1.0000000000000002p0 i)":
  113834. +ildouble: 1
  113835. +ldouble: 1
  113836. +Test "Imaginary part of: casin (0x1.fp-16385 - 1.0 i)":
  113837. +ildouble: 1
  113838. +ldouble: 1
  113839. +Test "Imaginary part of: casin (0x1.fp-16385 - 1.5 i)":
  113840. +ildouble: 1
  113841. +ldouble: 1
  113842. +Test "Real part of: casin (0x1.fp-30 + 1.0 i)":
  113843. +ildouble: 1
  113844. +ldouble: 1
  113845. +Test "Imaginary part of: casin (0x1.fp-30 + 1.0 i)":
  113846. +double: 1
  113847. +float: 1
  113848. +idouble: 1
  113849. +ifloat: 1
  113850. +ildouble: 1
  113851. +ldouble: 1
  113852. +Test "Real part of: casin (0x1.fp-30 - 1.0 i)":
  113853. +ildouble: 1
  113854. +ldouble: 1
  113855. +Test "Imaginary part of: casin (0x1.fp-30 - 1.0 i)":
  113856. +double: 1
  113857. +float: 1
  113858. +idouble: 1
  113859. +ifloat: 1
  113860. +ildouble: 1
  113861. +ldouble: 1
  113862. +Test "Imaginary part of: casin (0x1.fp1023 + 0x1.fp1023 i)":
  113863. +double: 1
  113864. +idouble: 1
  113865. +Test "Imaginary part of: casin (0x1.fp127 + 0x1.fp127 i)":
  113866. +double: 1
  113867. +idouble: 1
  113868. +Test "Imaginary part of: casin (0x1.fp16383 + 0x1.fp16383 i)":
  113869. +ildouble: 1
  113870. +ldouble: 1
  113871. +Test "Imaginary part of: casin (0x1p-105 + 0.5 i)":
  113872. +float: 1
  113873. +ifloat: 1
  113874. +Test "Imaginary part of: casin (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  113875. +ildouble: 1
  113876. +ldouble: 1
  113877. +Test "Imaginary part of: casin (0x1p-105 - 0.5 i)":
  113878. +float: 1
  113879. +ifloat: 1
  113880. +Test "Imaginary part of: casin (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  113881. +ildouble: 1
  113882. +ldouble: 1
  113883. +Test "Imaginary part of: casin (0x1p-112 + 0.5 i)":
  113884. +float: 1
  113885. +ifloat: 1
  113886. +Test "Imaginary part of: casin (0x1p-112 - 0.5 i)":
  113887. +float: 1
  113888. +ifloat: 1
  113889. +Test "Real part of: casin (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  113890. +ildouble: 1
  113891. +ldouble: 1
  113892. +Test "Imaginary part of: casin (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  113893. +ildouble: 1
  113894. +ldouble: 1
  113895. +Test "Real part of: casin (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  113896. +ildouble: 1
  113897. +ldouble: 1
  113898. +Test "Imaginary part of: casin (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  113899. +ildouble: 1
  113900. +ldouble: 1
  113901. +Test "Real part of: casin (0x1p-23 + 0.5 i)":
  113902. +double: 1
  113903. +float: 1
  113904. +idouble: 1
  113905. +ifloat: 1
  113906. +ildouble: 2
  113907. +ldouble: 2
  113908. +Test "Imaginary part of: casin (0x1p-23 + 0.5 i)":
  113909. +float: 1
  113910. +ifloat: 1
  113911. +ildouble: 2
  113912. +ldouble: 2
  113913. +Test "Imaginary part of: casin (0x1p-23 + 0x0.ffffffp0 i)":
  113914. +double: 1
  113915. +idouble: 1
  113916. +Test "Real part of: casin (0x1p-23 + 0x1.000002p0 i)":
  113917. +double: 1
  113918. +float: 1
  113919. +idouble: 1
  113920. +ifloat: 1
  113921. +ildouble: 1
  113922. +ldouble: 1
  113923. +Test "Real part of: casin (0x1p-23 - 0.5 i)":
  113924. +double: 1
  113925. +float: 1
  113926. +idouble: 1
  113927. +ifloat: 1
  113928. +ildouble: 2
  113929. +ldouble: 2
  113930. +Test "Imaginary part of: casin (0x1p-23 - 0.5 i)":
  113931. +float: 1
  113932. +ifloat: 1
  113933. +ildouble: 2
  113934. +ldouble: 2
  113935. +Test "Imaginary part of: casin (0x1p-23 - 0x0.ffffffp0 i)":
  113936. +double: 1
  113937. +idouble: 1
  113938. +Test "Real part of: casin (0x1p-23 - 0x1.000002p0 i)":
  113939. +double: 1
  113940. +float: 1
  113941. +idouble: 1
  113942. +ifloat: 1
  113943. +ildouble: 1
  113944. +ldouble: 1
  113945. +Test "Real part of: casin (0x1p-52 + 0.5 i)":
  113946. +ildouble: 1
  113947. +ldouble: 1
  113948. +Test "Imaginary part of: casin (0x1p-52 + 0.5 i)":
  113949. +float: 1
  113950. +ifloat: 1
  113951. +ildouble: 1
  113952. +ldouble: 1
  113953. +Test "Real part of: casin (0x1p-52 + 0x1.0000000000001p0 i)":
  113954. +ildouble: 1
  113955. +ldouble: 1
  113956. +Test "Real part of: casin (0x1p-52 - 0.5 i)":
  113957. +ildouble: 1
  113958. +ldouble: 1
  113959. +Test "Imaginary part of: casin (0x1p-52 - 0.5 i)":
  113960. +float: 1
  113961. +ifloat: 1
  113962. +ildouble: 1
  113963. +ldouble: 1
  113964. +Test "Real part of: casin (0x1p-52 - 0x1.0000000000001p0 i)":
  113965. +ildouble: 1
  113966. +ldouble: 1
  113967. +Test "Imaginary part of: casin (0x1p-63 + 0.5 i)":
  113968. +float: 1
  113969. +ifloat: 1
  113970. +Test "Imaginary part of: casin (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
  113971. +ildouble: 1
  113972. +ldouble: 1
  113973. +Test "Real part of: casin (0x1p-63 + 0x1.0000000000000002p0 i)":
  113974. +ildouble: 1
  113975. +ldouble: 1
  113976. +Test "Imaginary part of: casin (0x1p-63 + 0x1.0000000000000002p0 i)":
  113977. +ildouble: 1
  113978. +ldouble: 1
  113979. +Test "Imaginary part of: casin (0x1p-63 - 0.5 i)":
  113980. +float: 1
  113981. +ifloat: 1
  113982. +Test "Imaginary part of: casin (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
  113983. +ildouble: 1
  113984. +ldouble: 1
  113985. +Test "Real part of: casin (0x1p-63 - 0x1.0000000000000002p0 i)":
  113986. +ildouble: 1
  113987. +ldouble: 1
  113988. +Test "Imaginary part of: casin (0x1p-63 - 0x1.0000000000000002p0 i)":
  113989. +ildouble: 1
  113990. +ldouble: 1
  113991. +Test "Imaginary part of: casin (0x1p500 + 1.0 i)":
  113992. +ildouble: 1
  113993. +ldouble: 1
  113994. +Test "Imaginary part of: casin (0x1p500 - 1.0 i)":
  113995. +ildouble: 1
  113996. +ldouble: 1
  113997. +Test "Imaginary part of: casin (0x1p5000 + 1.0 i)":
  113998. +ildouble: 1
  113999. +ldouble: 1
  114000. +Test "Imaginary part of: casin (0x1p5000 - 1.0 i)":
  114001. +ildouble: 1
  114002. +ldouble: 1
  114003. +Test "Real part of: casin (1.0 + 0.25 i)":
  114004. +double: 1
  114005. +idouble: 1
  114006. +ildouble: 1
  114007. +ldouble: 1
  114008. +Test "Real part of: casin (1.0 + 0.5 i)":
  114009. +float: 1
  114010. +ifloat: 1
  114011. +Test "Imaginary part of: casin (1.0 + 0.5 i)":
  114012. +float: 1
  114013. +ifloat: 1
  114014. +Test "Imaginary part of: casin (1.0 + 0x1.fp-10 i)":
  114015. +float: 1
  114016. +ifloat: 1
  114017. +ildouble: 1
  114018. +ldouble: 1
  114019. +Test "Real part of: casin (1.0 + 0x1.fp-129 i)":
  114020. +ildouble: 1
  114021. +ldouble: 1
  114022. +Test "Imaginary part of: casin (1.0 + 0x1.fp-30 i)":
  114023. +ildouble: 1
  114024. +ldouble: 1
  114025. +Test "Imaginary part of: casin (1.0 + 0x1p500 i)":
  114026. +ildouble: 1
  114027. +ldouble: 1
  114028. +Test "Imaginary part of: casin (1.0 + 0x1p5000 i)":
  114029. +ildouble: 1
  114030. +ldouble: 1
  114031. +Test "Real part of: casin (1.0 - 0.25 i)":
  114032. +double: 1
  114033. +idouble: 1
  114034. +ildouble: 1
  114035. +ldouble: 1
  114036. +Test "Real part of: casin (1.0 - 0.5 i)":
  114037. +float: 1
  114038. +ifloat: 1
  114039. +Test "Imaginary part of: casin (1.0 - 0.5 i)":
  114040. +float: 1
  114041. +ifloat: 1
  114042. +Test "Imaginary part of: casin (1.0 - 0x1.fp-10 i)":
  114043. +float: 1
  114044. +ifloat: 1
  114045. +ildouble: 1
  114046. +ldouble: 1
  114047. +Test "Real part of: casin (1.0 - 0x1.fp-129 i)":
  114048. +ildouble: 1
  114049. +ldouble: 1
  114050. +Test "Imaginary part of: casin (1.0 - 0x1.fp-30 i)":
  114051. +ildouble: 1
  114052. +ldouble: 1
  114053. +Test "Imaginary part of: casin (1.0 - 0x1p500 i)":
  114054. +ildouble: 1
  114055. +ldouble: 1
  114056. +Test "Imaginary part of: casin (1.0 - 0x1p5000 i)":
  114057. +ildouble: 1
  114058. +ldouble: 1
  114059. +
  114060. +# casinh
  114061. +Test "Imaginary part of: casinh (-0.0 + 0x0.fffffffffffff8p0 i)":
  114062. +ildouble: 1
  114063. +ldouble: 1
  114064. +Test "Imaginary part of: casinh (-0.0 + 0x0.ffffffffffffffffp0 i)":
  114065. +ildouble: 1
  114066. +ldouble: 1
  114067. +Test "Real part of: casinh (-0.0 + 0x1.0000000000000000000000000001p0 i)":
  114068. +ildouble: 1
  114069. +ldouble: 1
  114070. +Test "Imaginary part of: casinh (-0.0 - 0x0.fffffffffffff8p0 i)":
  114071. +ildouble: 1
  114072. +ldouble: 1
  114073. +Test "Imaginary part of: casinh (-0.0 - 0x0.ffffffffffffffffp0 i)":
  114074. +ildouble: 1
  114075. +ldouble: 1
  114076. +Test "Real part of: casinh (-0.0 - 0x1.0000000000000000000000000001p0 i)":
  114077. +ildouble: 1
  114078. +ldouble: 1
  114079. +Test "Imaginary part of: casinh (-0.25 + 1.0 i)":
  114080. +double: 1
  114081. +idouble: 1
  114082. +ildouble: 1
  114083. +ldouble: 1
  114084. +Test "Imaginary part of: casinh (-0.25 - 1.0 i)":
  114085. +double: 1
  114086. +idouble: 1
  114087. +ildouble: 1
  114088. +ldouble: 1
  114089. +Test "Real part of: casinh (-0.5 + +0 i)":
  114090. +float: 1
  114091. +ifloat: 1
  114092. +ildouble: 1
  114093. +ldouble: 1
  114094. +Test "Real part of: casinh (-0.5 + 0x1.fp-1025 i)":
  114095. +ildouble: 1
  114096. +ldouble: 1
  114097. +Test "Real part of: casinh (-0.5 + 0x1.fp-129 i)":
  114098. +float: 1
  114099. +ifloat: 1
  114100. +ildouble: 1
  114101. +ldouble: 1
  114102. +Test "Real part of: casinh (-0.5 + 0x1.fp-16385 i)":
  114103. +ildouble: 1
  114104. +ldouble: 1
  114105. +Test "Real part of: casinh (-0.5 + 0x1p-105 i)":
  114106. +float: 1
  114107. +ifloat: 1
  114108. +Test "Real part of: casinh (-0.5 + 0x1p-112 i)":
  114109. +float: 1
  114110. +ifloat: 1
  114111. +Test "Real part of: casinh (-0.5 + 0x1p-23 i)":
  114112. +float: 1
  114113. +ifloat: 1
  114114. +ildouble: 2
  114115. +ldouble: 2
  114116. +Test "Imaginary part of: casinh (-0.5 + 0x1p-23 i)":
  114117. +double: 1
  114118. +float: 1
  114119. +idouble: 1
  114120. +ifloat: 1
  114121. +ildouble: 2
  114122. +ldouble: 2
  114123. +Test "Real part of: casinh (-0.5 + 0x1p-52 i)":
  114124. +float: 1
  114125. +ifloat: 1
  114126. +ildouble: 1
  114127. +ldouble: 1
  114128. +Test "Imaginary part of: casinh (-0.5 + 0x1p-52 i)":
  114129. +ildouble: 1
  114130. +ldouble: 1
  114131. +Test "Real part of: casinh (-0.5 + 0x1p-63 i)":
  114132. +float: 1
  114133. +ifloat: 1
  114134. +Test "Real part of: casinh (-0.5 + 1.0 i)":
  114135. +float: 1
  114136. +ifloat: 1
  114137. +Test "Imaginary part of: casinh (-0.5 + 1.0 i)":
  114138. +float: 1
  114139. +ifloat: 1
  114140. +Test "Real part of: casinh (-0.5 - 0 i)":
  114141. +float: 1
  114142. +ifloat: 1
  114143. +ildouble: 1
  114144. +ldouble: 1
  114145. +Test "Real part of: casinh (-0.5 - 0x1.fp-1025 i)":
  114146. +ildouble: 1
  114147. +ldouble: 1
  114148. +Test "Real part of: casinh (-0.5 - 0x1.fp-129 i)":
  114149. +float: 1
  114150. +ifloat: 1
  114151. +ildouble: 1
  114152. +ldouble: 1
  114153. +Test "Real part of: casinh (-0.5 - 0x1.fp-16385 i)":
  114154. +ildouble: 1
  114155. +ldouble: 1
  114156. +Test "Real part of: casinh (-0.5 - 0x1p-105 i)":
  114157. +float: 1
  114158. +ifloat: 1
  114159. +Test "Real part of: casinh (-0.5 - 0x1p-112 i)":
  114160. +float: 1
  114161. +ifloat: 1
  114162. +Test "Real part of: casinh (-0.5 - 0x1p-23 i)":
  114163. +float: 1
  114164. +ifloat: 1
  114165. +ildouble: 2
  114166. +ldouble: 2
  114167. +Test "Imaginary part of: casinh (-0.5 - 0x1p-23 i)":
  114168. +double: 1
  114169. +float: 1
  114170. +idouble: 1
  114171. +ifloat: 1
  114172. +ildouble: 2
  114173. +ldouble: 2
  114174. +Test "Real part of: casinh (-0.5 - 0x1p-52 i)":
  114175. +float: 1
  114176. +ifloat: 1
  114177. +ildouble: 1
  114178. +ldouble: 1
  114179. +Test "Imaginary part of: casinh (-0.5 - 0x1p-52 i)":
  114180. +ildouble: 1
  114181. +ldouble: 1
  114182. +Test "Real part of: casinh (-0.5 - 0x1p-63 i)":
  114183. +float: 1
  114184. +ifloat: 1
  114185. +Test "Real part of: casinh (-0.5 - 1.0 i)":
  114186. +float: 1
  114187. +ifloat: 1
  114188. +Test "Imaginary part of: casinh (-0.5 - 1.0 i)":
  114189. +float: 1
  114190. +ifloat: 1
  114191. +Test "Imaginary part of: casinh (-0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
  114192. +ildouble: 1
  114193. +ldouble: 1
  114194. +Test "Imaginary part of: casinh (-0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
  114195. +ildouble: 1
  114196. +ldouble: 1
  114197. +Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
  114198. +ildouble: 1
  114199. +ldouble: 1
  114200. +Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
  114201. +ildouble: 1
  114202. +ldouble: 1
  114203. +Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  114204. +ildouble: 1
  114205. +ldouble: 1
  114206. +Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
  114207. +ildouble: 1
  114208. +ldouble: 1
  114209. +Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
  114210. +ildouble: 1
  114211. +ldouble: 1
  114212. +Test "Real part of: casinh (-0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  114213. +ildouble: 1
  114214. +ldouble: 1
  114215. +Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0.0 i)":
  114216. +ildouble: 1
  114217. +ldouble: 1
  114218. +Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
  114219. +ildouble: 1
  114220. +ldouble: 1
  114221. +Test "Real part of: casinh (-0x0.ffffffffffffffffp0 + 0x1p-63 i)":
  114222. +ildouble: 1
  114223. +ldouble: 1
  114224. +Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0.0 i)":
  114225. +ildouble: 1
  114226. +ldouble: 1
  114227. +Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
  114228. +ildouble: 1
  114229. +ldouble: 1
  114230. +Test "Real part of: casinh (-0x0.ffffffffffffffffp0 - 0x1p-63 i)":
  114231. +ildouble: 1
  114232. +ldouble: 1
  114233. +Test "Real part of: casinh (-0x0.ffffffp0 + 0x1p-23 i)":
  114234. +double: 1
  114235. +idouble: 1
  114236. +Test "Real part of: casinh (-0x0.ffffffp0 - 0x1p-23 i)":
  114237. +double: 1
  114238. +idouble: 1
  114239. +Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0.0 i)":
  114240. +ildouble: 1
  114241. +ldouble: 1
  114242. +Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  114243. +ildouble: 1
  114244. +ldouble: 1
  114245. +Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  114246. +ildouble: 1
  114247. +ldouble: 1
  114248. +Test "Imaginary part of: casinh (-0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  114249. +ildouble: 1
  114250. +ldouble: 1
  114251. +Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0.0 i)":
  114252. +ildouble: 1
  114253. +ldouble: 1
  114254. +Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  114255. +ildouble: 1
  114256. +ldouble: 1
  114257. +Test "Real part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  114258. +ildouble: 1
  114259. +ldouble: 1
  114260. +Test "Imaginary part of: casinh (-0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  114261. +ildouble: 1
  114262. +ldouble: 1
  114263. +Test "Real part of: casinh (-0x1.0000000000000002p0 + 0.0 i)":
  114264. +ildouble: 1
  114265. +ldouble: 1
  114266. +Test "Real part of: casinh (-0x1.0000000000000002p0 + 0x1.fp-16385 i)":
  114267. +ildouble: 1
  114268. +ldouble: 1
  114269. +Test "Real part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i)":
  114270. +ildouble: 1
  114271. +ldouble: 1
  114272. +Test "Imaginary part of: casinh (-0x1.0000000000000002p0 + 0x1p-63 i)":
  114273. +ildouble: 1
  114274. +ldouble: 1
  114275. +Test "Real part of: casinh (-0x1.0000000000000002p0 - 0.0 i)":
  114276. +ildouble: 1
  114277. +ldouble: 1
  114278. +Test "Real part of: casinh (-0x1.0000000000000002p0 - 0x1.fp-16385 i)":
  114279. +ildouble: 1
  114280. +ldouble: 1
  114281. +Test "Real part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i)":
  114282. +ildouble: 1
  114283. +ldouble: 1
  114284. +Test "Imaginary part of: casinh (-0x1.0000000000000002p0 - 0x1p-63 i)":
  114285. +ildouble: 1
  114286. +ldouble: 1
  114287. +Test "Real part of: casinh (-0x1.0000000000001p0 + 0.0 i)":
  114288. +ildouble: 1
  114289. +ldouble: 1
  114290. +Test "Real part of: casinh (-0x1.0000000000001p0 + 0x1.fp-1025 i)":
  114291. +ildouble: 1
  114292. +ldouble: 1
  114293. +Test "Imaginary part of: casinh (-0x1.0000000000001p0 + 0x1p-52 i)":
  114294. +ildouble: 1
  114295. +ldouble: 1
  114296. +Test "Real part of: casinh (-0x1.0000000000001p0 - 0.0 i)":
  114297. +ildouble: 1
  114298. +ldouble: 1
  114299. +Test "Real part of: casinh (-0x1.0000000000001p0 - 0x1.fp-1025 i)":
  114300. +ildouble: 1
  114301. +ldouble: 1
  114302. +Test "Imaginary part of: casinh (-0x1.0000000000001p0 - 0x1p-52 i)":
  114303. +ildouble: 1
  114304. +ldouble: 1
  114305. +Test "Imaginary part of: casinh (-0x1.000002p0 + 0x1p-23 i)":
  114306. +double: 1
  114307. +float: 1
  114308. +idouble: 1
  114309. +ifloat: 1
  114310. +ildouble: 1
  114311. +ldouble: 1
  114312. +Test "Imaginary part of: casinh (-0x1.000002p0 - 0x1p-23 i)":
  114313. +double: 1
  114314. +float: 1
  114315. +idouble: 1
  114316. +ifloat: 1
  114317. +ildouble: 1
  114318. +ldouble: 1
  114319. +Test "Real part of: casinh (-0x1.fp-10 + 1.0 i)":
  114320. +float: 1
  114321. +ifloat: 1
  114322. +ildouble: 1
  114323. +ldouble: 1
  114324. +Test "Real part of: casinh (-0x1.fp-10 - 1.0 i)":
  114325. +float: 1
  114326. +ifloat: 1
  114327. +ildouble: 1
  114328. +ldouble: 1
  114329. +Test "Imaginary part of: casinh (-0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
  114330. +ildouble: 1
  114331. +ldouble: 1
  114332. +Test "Imaginary part of: casinh (-0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
  114333. +ildouble: 1
  114334. +ldouble: 1
  114335. +Test "Real part of: casinh (-0x1.fp-129 + 0.5 i)":
  114336. +double: 1
  114337. +idouble: 1
  114338. +Test "Imaginary part of: casinh (-0x1.fp-129 + 1.0 i)":
  114339. +ildouble: 1
  114340. +ldouble: 1
  114341. +Test "Real part of: casinh (-0x1.fp-129 - 0.5 i)":
  114342. +double: 1
  114343. +idouble: 1
  114344. +Test "Imaginary part of: casinh (-0x1.fp-129 - 1.0 i)":
  114345. +ildouble: 1
  114346. +ldouble: 1
  114347. +Test "Imaginary part of: casinh (-0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
  114348. +ildouble: 1
  114349. +ldouble: 1
  114350. +Test "Real part of: casinh (-0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
  114351. +ildouble: 1
  114352. +ldouble: 1
  114353. +Test "Imaginary part of: casinh (-0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
  114354. +ildouble: 1
  114355. +ldouble: 1
  114356. +Test "Real part of: casinh (-0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
  114357. +ildouble: 1
  114358. +ldouble: 1
  114359. +Test "Real part of: casinh (-0x1.fp-30 + 1.0 i)":
  114360. +ildouble: 1
  114361. +ldouble: 1
  114362. +Test "Real part of: casinh (-0x1.fp-30 - 1.0 i)":
  114363. +ildouble: 1
  114364. +ldouble: 1
  114365. +Test "Real part of: casinh (-0x1p-105 + 0.5 i)":
  114366. +double: 1
  114367. +idouble: 1
  114368. +ildouble: 1
  114369. +ldouble: 1
  114370. +Test "Real part of: casinh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  114371. +ildouble: 1
  114372. +ldouble: 1
  114373. +Test "Imaginary part of: casinh (-0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  114374. +ildouble: 1
  114375. +ldouble: 1
  114376. +Test "Real part of: casinh (-0x1p-105 - 0.5 i)":
  114377. +double: 1
  114378. +idouble: 1
  114379. +ildouble: 1
  114380. +ldouble: 1
  114381. +Test "Real part of: casinh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  114382. +ildouble: 1
  114383. +ldouble: 1
  114384. +Test "Imaginary part of: casinh (-0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  114385. +ildouble: 1
  114386. +ldouble: 1
  114387. +Test "Real part of: casinh (-0x1p-112 + 0.5 i)":
  114388. +double: 1
  114389. +idouble: 1
  114390. +ildouble: 1
  114391. +ldouble: 1
  114392. +Test "Imaginary part of: casinh (-0x1p-112 + 0.5 i)":
  114393. +ildouble: 1
  114394. +ldouble: 1
  114395. +Test "Imaginary part of: casinh (-0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
  114396. +ildouble: 1
  114397. +ldouble: 1
  114398. +Test "Real part of: casinh (-0x1p-112 - 0.5 i)":
  114399. +double: 1
  114400. +idouble: 1
  114401. +ildouble: 1
  114402. +ldouble: 1
  114403. +Test "Imaginary part of: casinh (-0x1p-112 - 0.5 i)":
  114404. +ildouble: 1
  114405. +ldouble: 1
  114406. +Test "Imaginary part of: casinh (-0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
  114407. +ildouble: 1
  114408. +ldouble: 1
  114409. +Test "Real part of: casinh (-0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  114410. +ildouble: 1
  114411. +ldouble: 1
  114412. +Test "Real part of: casinh (-0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  114413. +ildouble: 1
  114414. +ldouble: 1
  114415. +Test "Real part of: casinh (-0x1p-23 + 0.5 i)":
  114416. +double: 1
  114417. +idouble: 1
  114418. +ildouble: 1
  114419. +ldouble: 1
  114420. +Test "Imaginary part of: casinh (-0x1p-23 + 0.5 i)":
  114421. +ildouble: 1
  114422. +ldouble: 1
  114423. +Test "Real part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
  114424. +float: 2
  114425. +ifloat: 2
  114426. +Test "Imaginary part of: casinh (-0x1p-23 + 0x0.ffffffp0 i)":
  114427. +ildouble: 1
  114428. +ldouble: 1
  114429. +Test "Real part of: casinh (-0x1p-23 + 0x1.000002p0 i)":
  114430. +float: 1
  114431. +ifloat: 1
  114432. +ildouble: 1
  114433. +ldouble: 1
  114434. +Test "Real part of: casinh (-0x1p-23 - 0.5 i)":
  114435. +double: 1
  114436. +idouble: 1
  114437. +ildouble: 1
  114438. +ldouble: 1
  114439. +Test "Imaginary part of: casinh (-0x1p-23 - 0.5 i)":
  114440. +ildouble: 1
  114441. +ldouble: 1
  114442. +Test "Real part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
  114443. +float: 2
  114444. +ifloat: 2
  114445. +Test "Imaginary part of: casinh (-0x1p-23 - 0x0.ffffffp0 i)":
  114446. +ildouble: 1
  114447. +ldouble: 1
  114448. +Test "Real part of: casinh (-0x1p-23 - 0x1.000002p0 i)":
  114449. +float: 1
  114450. +ifloat: 1
  114451. +ildouble: 1
  114452. +ldouble: 1
  114453. +Test "Real part of: casinh (-0x1p-52 + 0x0.fffffffffffff8p0 i)":
  114454. +double: 1
  114455. +idouble: 1
  114456. +Test "Real part of: casinh (-0x1p-52 - 0x0.fffffffffffff8p0 i)":
  114457. +double: 1
  114458. +idouble: 1
  114459. +Test "Real part of: casinh (-0x1p-63 + 0.5 i)":
  114460. +ildouble: 1
  114461. +ldouble: 1
  114462. +Test "Real part of: casinh (-0x1p-63 + 0x0.ffffffffffffffffp0 i)":
  114463. +ildouble: 1
  114464. +ldouble: 1
  114465. +Test "Real part of: casinh (-0x1p-63 - 0.5 i)":
  114466. +ildouble: 1
  114467. +ldouble: 1
  114468. +Test "Real part of: casinh (-0x1p-63 - 0x0.ffffffffffffffffp0 i)":
  114469. +ildouble: 1
  114470. +ldouble: 1
  114471. +Test "Real part of: casinh (-0x1p500 + 1.0 i)":
  114472. +ildouble: 1
  114473. +ldouble: 1
  114474. +Test "Real part of: casinh (-0x1p500 - 1.0 i)":
  114475. +ildouble: 1
  114476. +ldouble: 1
  114477. +Test "Real part of: casinh (-0x1p5000 + 1.0 i)":
  114478. +ildouble: 1
  114479. +ldouble: 1
  114480. +Test "Real part of: casinh (-0x1p5000 - 1.0 i)":
  114481. +ildouble: 1
  114482. +ldouble: 1
  114483. +Test "Real part of: casinh (-1.0 + +0 i)":
  114484. +double: 1
  114485. +float: 1
  114486. +idouble: 1
  114487. +ifloat: 1
  114488. +ildouble: 1
  114489. +ldouble: 1
  114490. +Test "Real part of: casinh (-1.0 + 0.25 i)":
  114491. +float: 1
  114492. +ifloat: 1
  114493. +ildouble: 1
  114494. +ldouble: 1
  114495. +Test "Real part of: casinh (-1.0 + 0.5 i)":
  114496. +double: 1
  114497. +idouble: 1
  114498. +ildouble: 1
  114499. +ldouble: 1
  114500. +Test "Imaginary part of: casinh (-1.0 + 0.5 i)":
  114501. +ildouble: 1
  114502. +ldouble: 1
  114503. +Test "Real part of: casinh (-1.0 + 0x1.fp-10 i)":
  114504. +double: 1
  114505. +idouble: 1
  114506. +Test "Imaginary part of: casinh (-1.0 + 0x1.fp-10 i)":
  114507. +float: 1
  114508. +ifloat: 1
  114509. +ildouble: 1
  114510. +ldouble: 1
  114511. +Test "Real part of: casinh (-1.0 + 0x1.fp-100 i)":
  114512. +double: 1
  114513. +float: 1
  114514. +idouble: 1
  114515. +ifloat: 1
  114516. +ildouble: 1
  114517. +ldouble: 1
  114518. +Test "Real part of: casinh (-1.0 + 0x1.fp-1000 i)":
  114519. +double: 1
  114520. +idouble: 1
  114521. +ildouble: 1
  114522. +ldouble: 1
  114523. +Test "Real part of: casinh (-1.0 + 0x1.fp-10000 i)":
  114524. +ildouble: 1
  114525. +ldouble: 1
  114526. +Test "Real part of: casinh (-1.0 + 0x1.fp-1025 i)":
  114527. +double: 1
  114528. +idouble: 1
  114529. +ildouble: 1
  114530. +ldouble: 1
  114531. +Test "Real part of: casinh (-1.0 + 0x1.fp-129 i)":
  114532. +double: 1
  114533. +float: 1
  114534. +idouble: 1
  114535. +ifloat: 1
  114536. +ildouble: 1
  114537. +ldouble: 1
  114538. +Test "Real part of: casinh (-1.0 + 0x1.fp-16385 i)":
  114539. +ildouble: 1
  114540. +ldouble: 1
  114541. +Test "Real part of: casinh (-1.0 + 0x1.fp-30 i)":
  114542. +double: 1
  114543. +float: 1
  114544. +idouble: 1
  114545. +ifloat: 1
  114546. +ildouble: 1
  114547. +ldouble: 1
  114548. +Test "Imaginary part of: casinh (-1.0 + 0x1.fp-30 i)":
  114549. +ildouble: 1
  114550. +ldouble: 1
  114551. +Test "Real part of: casinh (-1.0 + 0x1p500 i)":
  114552. +ildouble: 1
  114553. +ldouble: 1
  114554. +Test "Real part of: casinh (-1.0 + 0x1p5000 i)":
  114555. +ildouble: 1
  114556. +ldouble: 1
  114557. +Test "Real part of: casinh (-1.0 - 0 i)":
  114558. +double: 1
  114559. +float: 1
  114560. +idouble: 1
  114561. +ifloat: 1
  114562. +ildouble: 1
  114563. +ldouble: 1
  114564. +Test "Real part of: casinh (-1.0 - 0.25 i)":
  114565. +float: 1
  114566. +ifloat: 1
  114567. +ildouble: 1
  114568. +ldouble: 1
  114569. +Test "Real part of: casinh (-1.0 - 0.5 i)":
  114570. +double: 1
  114571. +idouble: 1
  114572. +ildouble: 1
  114573. +ldouble: 1
  114574. +Test "Imaginary part of: casinh (-1.0 - 0.5 i)":
  114575. +ildouble: 1
  114576. +ldouble: 1
  114577. +Test "Real part of: casinh (-1.0 - 0x1.fp-10 i)":
  114578. +double: 1
  114579. +idouble: 1
  114580. +Test "Imaginary part of: casinh (-1.0 - 0x1.fp-10 i)":
  114581. +float: 1
  114582. +ifloat: 1
  114583. +ildouble: 1
  114584. +ldouble: 1
  114585. +Test "Real part of: casinh (-1.0 - 0x1.fp-100 i)":
  114586. +double: 1
  114587. +float: 1
  114588. +idouble: 1
  114589. +ifloat: 1
  114590. +ildouble: 1
  114591. +ldouble: 1
  114592. +Test "Real part of: casinh (-1.0 - 0x1.fp-1000 i)":
  114593. +double: 1
  114594. +idouble: 1
  114595. +ildouble: 1
  114596. +ldouble: 1
  114597. +Test "Real part of: casinh (-1.0 - 0x1.fp-10000 i)":
  114598. +ildouble: 1
  114599. +ldouble: 1
  114600. +Test "Real part of: casinh (-1.0 - 0x1.fp-1025 i)":
  114601. +double: 1
  114602. +idouble: 1
  114603. +ildouble: 1
  114604. +ldouble: 1
  114605. +Test "Real part of: casinh (-1.0 - 0x1.fp-129 i)":
  114606. +double: 1
  114607. +float: 1
  114608. +idouble: 1
  114609. +ifloat: 1
  114610. +ildouble: 1
  114611. +ldouble: 1
  114612. +Test "Real part of: casinh (-1.0 - 0x1.fp-16385 i)":
  114613. +ildouble: 1
  114614. +ldouble: 1
  114615. +Test "Real part of: casinh (-1.0 - 0x1.fp-30 i)":
  114616. +double: 1
  114617. +float: 1
  114618. +idouble: 1
  114619. +ifloat: 1
  114620. +ildouble: 1
  114621. +ldouble: 1
  114622. +Test "Imaginary part of: casinh (-1.0 - 0x1.fp-30 i)":
  114623. +ildouble: 1
  114624. +ldouble: 1
  114625. +Test "Real part of: casinh (-1.0 - 0x1p500 i)":
  114626. +ildouble: 1
  114627. +ldouble: 1
  114628. +Test "Real part of: casinh (-1.0 - 0x1p5000 i)":
  114629. +ildouble: 1
  114630. +ldouble: 1
  114631. +Test "Real part of: casinh (-1.5 + +0 i)":
  114632. +double: 1
  114633. +idouble: 1
  114634. +ildouble: 1
  114635. +ldouble: 1
  114636. +Test "Real part of: casinh (-1.5 + 0x1.fp-1025 i)":
  114637. +double: 1
  114638. +idouble: 1
  114639. +ildouble: 1
  114640. +ldouble: 1
  114641. +Test "Real part of: casinh (-1.5 + 0x1.fp-129 i)":
  114642. +double: 1
  114643. +idouble: 1
  114644. +ildouble: 1
  114645. +ldouble: 1
  114646. +Test "Real part of: casinh (-1.5 + 0x1.fp-16385 i)":
  114647. +ildouble: 1
  114648. +ldouble: 1
  114649. +Test "Real part of: casinh (-1.5 - 0 i)":
  114650. +double: 1
  114651. +idouble: 1
  114652. +ildouble: 1
  114653. +ldouble: 1
  114654. +Test "Real part of: casinh (-1.5 - 0x1.fp-1025 i)":
  114655. +double: 1
  114656. +idouble: 1
  114657. +ildouble: 1
  114658. +ldouble: 1
  114659. +Test "Real part of: casinh (-1.5 - 0x1.fp-129 i)":
  114660. +double: 1
  114661. +idouble: 1
  114662. +ildouble: 1
  114663. +ldouble: 1
  114664. +Test "Real part of: casinh (-1.5 - 0x1.fp-16385 i)":
  114665. +ildouble: 1
  114666. +ldouble: 1
  114667. +Test "Imaginary part of: casinh (0.0 + 0x0.fffffffffffff8p0 i)":
  114668. +ildouble: 1
  114669. +ldouble: 1
  114670. +Test "Imaginary part of: casinh (0.0 + 0x0.ffffffffffffffffp0 i)":
  114671. +ildouble: 1
  114672. +ldouble: 1
  114673. +Test "Real part of: casinh (0.0 + 0x1.0000000000000000000000000001p0 i)":
  114674. +ildouble: 1
  114675. +ldouble: 1
  114676. +Test "Imaginary part of: casinh (0.0 - 0x0.fffffffffffff8p0 i)":
  114677. +ildouble: 1
  114678. +ldouble: 1
  114679. +Test "Imaginary part of: casinh (0.0 - 0x0.ffffffffffffffffp0 i)":
  114680. +ildouble: 1
  114681. +ldouble: 1
  114682. +Test "Real part of: casinh (0.0 - 0x1.0000000000000000000000000001p0 i)":
  114683. +ildouble: 1
  114684. +ldouble: 1
  114685. +Test "Imaginary part of: casinh (0.25 + 1.0 i)":
  114686. +double: 1
  114687. +idouble: 1
  114688. +ildouble: 1
  114689. +ldouble: 1
  114690. +Test "Imaginary part of: casinh (0.25 - 1.0 i)":
  114691. +double: 1
  114692. +idouble: 1
  114693. +ildouble: 1
  114694. +ldouble: 1
  114695. +Test "Real part of: casinh (0.5 + +0 i)":
  114696. +float: 1
  114697. +ifloat: 1
  114698. +ildouble: 1
  114699. +ldouble: 1
  114700. +Test "Real part of: casinh (0.5 + 0x1.fp-1025 i)":
  114701. +ildouble: 1
  114702. +ldouble: 1
  114703. +Test "Real part of: casinh (0.5 + 0x1.fp-129 i)":
  114704. +float: 1
  114705. +ifloat: 1
  114706. +ildouble: 1
  114707. +ldouble: 1
  114708. +Test "Real part of: casinh (0.5 + 0x1.fp-16385 i)":
  114709. +ildouble: 1
  114710. +ldouble: 1
  114711. +Test "Real part of: casinh (0.5 + 0x1p-105 i)":
  114712. +float: 1
  114713. +ifloat: 1
  114714. +Test "Real part of: casinh (0.5 + 0x1p-112 i)":
  114715. +float: 1
  114716. +ifloat: 1
  114717. +Test "Real part of: casinh (0.5 + 0x1p-23 i)":
  114718. +float: 1
  114719. +ifloat: 1
  114720. +ildouble: 2
  114721. +ldouble: 2
  114722. +Test "Imaginary part of: casinh (0.5 + 0x1p-23 i)":
  114723. +double: 1
  114724. +float: 1
  114725. +idouble: 1
  114726. +ifloat: 1
  114727. +ildouble: 2
  114728. +ldouble: 2
  114729. +Test "Real part of: casinh (0.5 + 0x1p-52 i)":
  114730. +float: 1
  114731. +ifloat: 1
  114732. +ildouble: 1
  114733. +ldouble: 1
  114734. +Test "Imaginary part of: casinh (0.5 + 0x1p-52 i)":
  114735. +ildouble: 1
  114736. +ldouble: 1
  114737. +Test "Real part of: casinh (0.5 + 0x1p-63 i)":
  114738. +float: 1
  114739. +ifloat: 1
  114740. +Test "Real part of: casinh (0.5 + 1.0 i)":
  114741. +float: 1
  114742. +ifloat: 1
  114743. +Test "Imaginary part of: casinh (0.5 + 1.0 i)":
  114744. +float: 1
  114745. +ifloat: 1
  114746. +Test "Real part of: casinh (0.5 - 0 i)":
  114747. +float: 1
  114748. +ifloat: 1
  114749. +ildouble: 1
  114750. +ldouble: 1
  114751. +Test "Real part of: casinh (0.5 - 0x1.fp-1025 i)":
  114752. +ildouble: 1
  114753. +ldouble: 1
  114754. +Test "Real part of: casinh (0.5 - 0x1.fp-129 i)":
  114755. +float: 1
  114756. +ifloat: 1
  114757. +ildouble: 1
  114758. +ldouble: 1
  114759. +Test "Real part of: casinh (0.5 - 0x1.fp-16385 i)":
  114760. +ildouble: 1
  114761. +ldouble: 1
  114762. +Test "Real part of: casinh (0.5 - 0x1p-105 i)":
  114763. +float: 1
  114764. +ifloat: 1
  114765. +Test "Real part of: casinh (0.5 - 0x1p-112 i)":
  114766. +float: 1
  114767. +ifloat: 1
  114768. +Test "Real part of: casinh (0.5 - 0x1p-23 i)":
  114769. +float: 1
  114770. +ifloat: 1
  114771. +ildouble: 2
  114772. +ldouble: 2
  114773. +Test "Imaginary part of: casinh (0.5 - 0x1p-23 i)":
  114774. +double: 1
  114775. +float: 1
  114776. +idouble: 1
  114777. +ifloat: 1
  114778. +ildouble: 2
  114779. +ldouble: 2
  114780. +Test "Real part of: casinh (0.5 - 0x1p-52 i)":
  114781. +float: 1
  114782. +ifloat: 1
  114783. +ildouble: 1
  114784. +ldouble: 1
  114785. +Test "Imaginary part of: casinh (0.5 - 0x1p-52 i)":
  114786. +ildouble: 1
  114787. +ldouble: 1
  114788. +Test "Real part of: casinh (0.5 - 0x1p-63 i)":
  114789. +float: 1
  114790. +ifloat: 1
  114791. +Test "Real part of: casinh (0.5 - 1.0 i)":
  114792. +float: 1
  114793. +ifloat: 1
  114794. +Test "Imaginary part of: casinh (0.5 - 1.0 i)":
  114795. +float: 1
  114796. +ifloat: 1
  114797. +Test "Real part of: casinh (0.75 + 1.25 i)":
  114798. +float: 1
  114799. +ifloat: 1
  114800. +ildouble: 1
  114801. +ldouble: 1
  114802. +Test "Imaginary part of: casinh (0.75 + 1.25 i)":
  114803. +double: 1
  114804. +float: 1
  114805. +idouble: 1
  114806. +ifloat: 1
  114807. +ildouble: 1
  114808. +ldouble: 1
  114809. +Test "Imaginary part of: casinh (0x0.fffffffffffff8p0 + 0x1.fp-1025 i)":
  114810. +ildouble: 1
  114811. +ldouble: 1
  114812. +Test "Imaginary part of: casinh (0x0.fffffffffffff8p0 - 0x1.fp-1025 i)":
  114813. +ildouble: 1
  114814. +ldouble: 1
  114815. +Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0.0 i)":
  114816. +ildouble: 1
  114817. +ldouble: 1
  114818. +Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0x1.fp-1025 i)":
  114819. +ildouble: 1
  114820. +ldouble: 1
  114821. +Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 + 0x1p-105 i)":
  114822. +ildouble: 1
  114823. +ldouble: 1
  114824. +Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0.0 i)":
  114825. +ildouble: 1
  114826. +ldouble: 1
  114827. +Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0x1.fp-1025 i)":
  114828. +ildouble: 1
  114829. +ldouble: 1
  114830. +Test "Real part of: casinh (0x0.ffffffffffffffffffffffffffcp0 - 0x1p-105 i)":
  114831. +ildouble: 1
  114832. +ldouble: 1
  114833. +Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0.0 i)":
  114834. +ildouble: 1
  114835. +ldouble: 1
  114836. +Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1.fp-16385 i)":
  114837. +ildouble: 1
  114838. +ldouble: 1
  114839. +Test "Real part of: casinh (0x0.ffffffffffffffffp0 + 0x1p-63 i)":
  114840. +ildouble: 1
  114841. +ldouble: 1
  114842. +Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0.0 i)":
  114843. +ildouble: 1
  114844. +ldouble: 1
  114845. +Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1.fp-16385 i)":
  114846. +ildouble: 1
  114847. +ldouble: 1
  114848. +Test "Real part of: casinh (0x0.ffffffffffffffffp0 - 0x1p-63 i)":
  114849. +ildouble: 1
  114850. +ldouble: 1
  114851. +Test "Real part of: casinh (0x0.ffffffp0 + 0x1p-23 i)":
  114852. +double: 1
  114853. +idouble: 1
  114854. +Test "Real part of: casinh (0x0.ffffffp0 - 0x1p-23 i)":
  114855. +double: 1
  114856. +idouble: 1
  114857. +Test "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0.0 i)":
  114858. +ildouble: 1
  114859. +ldouble: 1
  114860. +Test "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0x1.fp-16385 i)":
  114861. +ildouble: 1
  114862. +ldouble: 1
  114863. +Test "Real part of: casinh (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  114864. +ildouble: 1
  114865. +ldouble: 1
  114866. +Test "Imaginary part of: casinh (0x1.0000000000000000000000000001p0 + 0x1p-113 i)":
  114867. +ildouble: 1
  114868. +ldouble: 1
  114869. +Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0.0 i)":
  114870. +ildouble: 1
  114871. +ldouble: 1
  114872. +Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0x1.fp-16385 i)":
  114873. +ildouble: 1
  114874. +ldouble: 1
  114875. +Test "Real part of: casinh (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  114876. +ildouble: 1
  114877. +ldouble: 1
  114878. +Test "Imaginary part of: casinh (0x1.0000000000000000000000000001p0 - 0x1p-113 i)":
  114879. +ildouble: 1
  114880. +ldouble: 1
  114881. +Test "Real part of: casinh (0x1.0000000000000002p0 + 0.0 i)":
  114882. +ildouble: 1
  114883. +ldouble: 1
  114884. +Test "Real part of: casinh (0x1.0000000000000002p0 + 0x1.fp-16385 i)":
  114885. +ildouble: 1
  114886. +ldouble: 1
  114887. +Test "Real part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i)":
  114888. +ildouble: 1
  114889. +ldouble: 1
  114890. +Test "Imaginary part of: casinh (0x1.0000000000000002p0 + 0x1p-63 i)":
  114891. +ildouble: 1
  114892. +ldouble: 1
  114893. +Test "Real part of: casinh (0x1.0000000000000002p0 - 0.0 i)":
  114894. +ildouble: 1
  114895. +ldouble: 1
  114896. +Test "Real part of: casinh (0x1.0000000000000002p0 - 0x1.fp-16385 i)":
  114897. +ildouble: 1
  114898. +ldouble: 1
  114899. +Test "Real part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i)":
  114900. +ildouble: 1
  114901. +ldouble: 1
  114902. +Test "Imaginary part of: casinh (0x1.0000000000000002p0 - 0x1p-63 i)":
  114903. +ildouble: 1
  114904. +ldouble: 1
  114905. +Test "Real part of: casinh (0x1.0000000000001p0 + 0.0 i)":
  114906. +ildouble: 1
  114907. +ldouble: 1
  114908. +Test "Real part of: casinh (0x1.0000000000001p0 + 0x1.fp-1025 i)":
  114909. +ildouble: 1
  114910. +ldouble: 1
  114911. +Test "Imaginary part of: casinh (0x1.0000000000001p0 + 0x1p-52 i)":
  114912. +ildouble: 1
  114913. +ldouble: 1
  114914. +Test "Real part of: casinh (0x1.0000000000001p0 - 0.0 i)":
  114915. +ildouble: 1
  114916. +ldouble: 1
  114917. +Test "Real part of: casinh (0x1.0000000000001p0 - 0x1.fp-1025 i)":
  114918. +ildouble: 1
  114919. +ldouble: 1
  114920. +Test "Imaginary part of: casinh (0x1.0000000000001p0 - 0x1p-52 i)":
  114921. +ildouble: 1
  114922. +ldouble: 1
  114923. +Test "Imaginary part of: casinh (0x1.000002p0 + 0x1p-23 i)":
  114924. +double: 1
  114925. +float: 1
  114926. +idouble: 1
  114927. +ifloat: 1
  114928. +ildouble: 1
  114929. +ldouble: 1
  114930. +Test "Imaginary part of: casinh (0x1.000002p0 - 0x1p-23 i)":
  114931. +double: 1
  114932. +float: 1
  114933. +idouble: 1
  114934. +ifloat: 1
  114935. +ildouble: 1
  114936. +ldouble: 1
  114937. +Test "Real part of: casinh (0x1.fp-10 + 1.0 i)":
  114938. +float: 1
  114939. +ifloat: 1
  114940. +ildouble: 1
  114941. +ldouble: 1
  114942. +Test "Real part of: casinh (0x1.fp-10 - 1.0 i)":
  114943. +float: 1
  114944. +ifloat: 1
  114945. +ildouble: 1
  114946. +ldouble: 1
  114947. +Test "Imaginary part of: casinh (0x1.fp-1025 + 0x0.fffffffffffff8p0 i)":
  114948. +ildouble: 1
  114949. +ldouble: 1
  114950. +Test "Imaginary part of: casinh (0x1.fp-1025 - 0x0.fffffffffffff8p0 i)":
  114951. +ildouble: 1
  114952. +ldouble: 1
  114953. +Test "Real part of: casinh (0x1.fp-129 + 0.5 i)":
  114954. +double: 1
  114955. +idouble: 1
  114956. +Test "Imaginary part of: casinh (0x1.fp-129 + 1.0 i)":
  114957. +ildouble: 1
  114958. +ldouble: 1
  114959. +Test "Real part of: casinh (0x1.fp-129 - 0.5 i)":
  114960. +double: 1
  114961. +idouble: 1
  114962. +Test "Imaginary part of: casinh (0x1.fp-129 - 1.0 i)":
  114963. +ildouble: 1
  114964. +ldouble: 1
  114965. +Test "Imaginary part of: casinh (0x1.fp-16385 + 0x0.ffffffffffffffffp0 i)":
  114966. +ildouble: 1
  114967. +ldouble: 1
  114968. +Test "Real part of: casinh (0x1.fp-16385 + 0x1.0000000000000000000000000001p0 i)":
  114969. +ildouble: 1
  114970. +ldouble: 1
  114971. +Test "Imaginary part of: casinh (0x1.fp-16385 - 0x0.ffffffffffffffffp0 i)":
  114972. +ildouble: 1
  114973. +ldouble: 1
  114974. +Test "Real part of: casinh (0x1.fp-16385 - 0x1.0000000000000000000000000001p0 i)":
  114975. +ildouble: 1
  114976. +ldouble: 1
  114977. +Test "Real part of: casinh (0x1.fp-30 + 1.0 i)":
  114978. +ildouble: 1
  114979. +ldouble: 1
  114980. +Test "Real part of: casinh (0x1.fp-30 - 1.0 i)":
  114981. +ildouble: 1
  114982. +ldouble: 1
  114983. +Test "Real part of: casinh (0x1.fp1023 + 0x1.fp1023 i)":
  114984. +double: 1
  114985. +idouble: 1
  114986. +Test "Real part of: casinh (0x1.fp127 + 0x1.fp127 i)":
  114987. +double: 1
  114988. +idouble: 1
  114989. +Test "Real part of: casinh (0x1.fp16383 + 0x1.fp16383 i)":
  114990. +ildouble: 1
  114991. +ldouble: 1
  114992. +Test "Real part of: casinh (0x1p-105 + 0.5 i)":
  114993. +double: 1
  114994. +idouble: 1
  114995. +ildouble: 1
  114996. +ldouble: 1
  114997. +Test "Real part of: casinh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  114998. +ildouble: 1
  114999. +ldouble: 1
  115000. +Test "Imaginary part of: casinh (0x1p-105 + 0x0.ffffffffffffffffffffffffffcp0 i)":
  115001. +ildouble: 1
  115002. +ldouble: 1
  115003. +Test "Real part of: casinh (0x1p-105 - 0.5 i)":
  115004. +double: 1
  115005. +idouble: 1
  115006. +ildouble: 1
  115007. +ldouble: 1
  115008. +Test "Real part of: casinh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  115009. +ildouble: 1
  115010. +ldouble: 1
  115011. +Test "Imaginary part of: casinh (0x1p-105 - 0x0.ffffffffffffffffffffffffffcp0 i)":
  115012. +ildouble: 1
  115013. +ldouble: 1
  115014. +Test "Real part of: casinh (0x1p-112 + 0.5 i)":
  115015. +double: 1
  115016. +idouble: 1
  115017. +ildouble: 1
  115018. +ldouble: 1
  115019. +Test "Imaginary part of: casinh (0x1p-112 + 0.5 i)":
  115020. +ildouble: 1
  115021. +ldouble: 1
  115022. +Test "Imaginary part of: casinh (0x1p-112 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
  115023. +ildouble: 1
  115024. +ldouble: 1
  115025. +Test "Real part of: casinh (0x1p-112 - 0.5 i)":
  115026. +double: 1
  115027. +idouble: 1
  115028. +ildouble: 1
  115029. +ldouble: 1
  115030. +Test "Imaginary part of: casinh (0x1p-112 - 0.5 i)":
  115031. +ildouble: 1
  115032. +ldouble: 1
  115033. +Test "Imaginary part of: casinh (0x1p-112 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
  115034. +ildouble: 1
  115035. +ldouble: 1
  115036. +Test "Real part of: casinh (0x1p-113 + 0x1.0000000000000000000000000001p0 i)":
  115037. +ildouble: 1
  115038. +ldouble: 1
  115039. +Test "Real part of: casinh (0x1p-113 - 0x1.0000000000000000000000000001p0 i)":
  115040. +ildouble: 1
  115041. +ldouble: 1
  115042. +Test "Real part of: casinh (0x1p-23 + 0.5 i)":
  115043. +double: 1
  115044. +idouble: 1
  115045. +ildouble: 1
  115046. +ldouble: 1
  115047. +Test "Imaginary part of: casinh (0x1p-23 + 0.5 i)":
  115048. +ildouble: 1
  115049. +ldouble: 1
  115050. +Test "Real part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
  115051. +float: 2
  115052. +ifloat: 2
  115053. +Test "Imaginary part of: casinh (0x1p-23 + 0x0.ffffffp0 i)":
  115054. +ildouble: 1
  115055. +ldouble: 1
  115056. +Test "Real part of: casinh (0x1p-23 + 0x1.000002p0 i)":
  115057. +float: 1
  115058. +ifloat: 1
  115059. +ildouble: 1
  115060. +ldouble: 1
  115061. +Test "Real part of: casinh (0x1p-23 - 0.5 i)":
  115062. +double: 1
  115063. +idouble: 1
  115064. +ildouble: 1
  115065. +ldouble: 1
  115066. +Test "Imaginary part of: casinh (0x1p-23 - 0.5 i)":
  115067. +ildouble: 1
  115068. +ldouble: 1
  115069. +Test "Real part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
  115070. +float: 2
  115071. +ifloat: 2
  115072. +Test "Imaginary part of: casinh (0x1p-23 - 0x0.ffffffp0 i)":
  115073. +ildouble: 1
  115074. +ldouble: 1
  115075. +Test "Real part of: casinh (0x1p-23 - 0x1.000002p0 i)":
  115076. +float: 1
  115077. +ifloat: 1
  115078. +ildouble: 1
  115079. +ldouble: 1
  115080. +Test "Real part of: casinh (0x1p-52 + 0x0.fffffffffffff8p0 i)":
  115081. +double: 1
  115082. +idouble: 1
  115083. +Test "Real part of: casinh (0x1p-52 - 0x0.fffffffffffff8p0 i)":
  115084. +double: 1
  115085. +idouble: 1
  115086. +Test "Real part of: casinh (0x1p-63 + 0.5 i)":
  115087. +ildouble: 1
  115088. +ldouble: 1
  115089. +Test "Real part of: casinh (0x1p-63 + 0x0.ffffffffffffffffp0 i)":
  115090. +ildouble: 1
  115091. +ldouble: 1
  115092. +Test "Real part of: casinh (0x1p-63 - 0.5 i)":
  115093. +ildouble: 1
  115094. +ldouble: 1
  115095. +Test "Real part of: casinh (0x1p-63 - 0x0.ffffffffffffffffp0 i)":
  115096. +ildouble: 1
  115097. +ldouble: 1
  115098. +Test "Real part of: casinh (0x1p500 + 1.0 i)":
  115099. +ildouble: 1
  115100. +ldouble: 1
  115101. +Test "Real part of: casinh (0x1p500 - 1.0 i)":
  115102. +ildouble: 1
  115103. +ldouble: 1
  115104. +Test "Real part of: casinh (0x1p5000 + 1.0 i)":
  115105. +ildouble: 1
  115106. +ldouble: 1
  115107. +Test "Real part of: casinh (0x1p5000 - 1.0 i)":
  115108. +ildouble: 1
  115109. +ldouble: 1
  115110. +Test "Real part of: casinh (1.0 + +0 i)":
  115111. +double: 1
  115112. +float: 1
  115113. +idouble: 1
  115114. +ifloat: 1
  115115. +ildouble: 1
  115116. +ldouble: 1
  115117. +Test "Real part of: casinh (1.0 + 0.25 i)":
  115118. +float: 1
  115119. +ifloat: 1
  115120. +ildouble: 1
  115121. +ldouble: 1
  115122. +Test "Real part of: casinh (1.0 + 0.5 i)":
  115123. +double: 1
  115124. +idouble: 1
  115125. +ildouble: 1
  115126. +ldouble: 1
  115127. +Test "Imaginary part of: casinh (1.0 + 0.5 i)":
  115128. +ildouble: 1
  115129. +ldouble: 1
  115130. +Test "Real part of: casinh (1.0 + 0x1.fp-10 i)":
  115131. +double: 1
  115132. +idouble: 1
  115133. +Test "Imaginary part of: casinh (1.0 + 0x1.fp-10 i)":
  115134. +float: 1
  115135. +ifloat: 1
  115136. +ildouble: 1
  115137. +ldouble: 1
  115138. +Test "Real part of: casinh (1.0 + 0x1.fp-100 i)":
  115139. +double: 1
  115140. +float: 1
  115141. +idouble: 1
  115142. +ifloat: 1
  115143. +ildouble: 1
  115144. +ldouble: 1
  115145. +Test "Real part of: casinh (1.0 + 0x1.fp-1000 i)":
  115146. +double: 1
  115147. +idouble: 1
  115148. +ildouble: 1
  115149. +ldouble: 1
  115150. +Test "Real part of: casinh (1.0 + 0x1.fp-10000 i)":
  115151. +ildouble: 1
  115152. +ldouble: 1
  115153. +Test "Real part of: casinh (1.0 + 0x1.fp-1025 i)":
  115154. +double: 1
  115155. +idouble: 1
  115156. +ildouble: 1
  115157. +ldouble: 1
  115158. +Test "Real part of: casinh (1.0 + 0x1.fp-129 i)":
  115159. +double: 1
  115160. +float: 1
  115161. +idouble: 1
  115162. +ifloat: 1
  115163. +ildouble: 1
  115164. +ldouble: 1
  115165. +Test "Real part of: casinh (1.0 + 0x1.fp-16385 i)":
  115166. +ildouble: 1
  115167. +ldouble: 1
  115168. +Test "Real part of: casinh (1.0 + 0x1.fp-30 i)":
  115169. +double: 1
  115170. +float: 1
  115171. +idouble: 1
  115172. +ifloat: 1
  115173. +ildouble: 1
  115174. +ldouble: 1
  115175. +Test "Imaginary part of: casinh (1.0 + 0x1.fp-30 i)":
  115176. +ildouble: 1
  115177. +ldouble: 1
  115178. +Test "Real part of: casinh (1.0 + 0x1p500 i)":
  115179. +ildouble: 1
  115180. +ldouble: 1
  115181. +Test "Real part of: casinh (1.0 + 0x1p5000 i)":
  115182. +ildouble: 1
  115183. +ldouble: 1
  115184. +Test "Real part of: casinh (1.0 - 0 i)":
  115185. +double: 1
  115186. +float: 1
  115187. +idouble: 1
  115188. +ifloat: 1
  115189. +ildouble: 1
  115190. +ldouble: 1
  115191. +Test "Real part of: casinh (1.0 - 0.25 i)":
  115192. +float: 1
  115193. +ifloat: 1
  115194. +ildouble: 1
  115195. +ldouble: 1
  115196. +Test "Real part of: casinh (1.0 - 0.5 i)":
  115197. +double: 1
  115198. +idouble: 1
  115199. +ildouble: 1
  115200. +ldouble: 1
  115201. +Test "Imaginary part of: casinh (1.0 - 0.5 i)":
  115202. +ildouble: 1
  115203. +ldouble: 1
  115204. +Test "Real part of: casinh (1.0 - 0x1.fp-10 i)":
  115205. +double: 1
  115206. +idouble: 1
  115207. +Test "Imaginary part of: casinh (1.0 - 0x1.fp-10 i)":
  115208. +float: 1
  115209. +ifloat: 1
  115210. +ildouble: 1
  115211. +ldouble: 1
  115212. +Test "Real part of: casinh (1.0 - 0x1.fp-100 i)":
  115213. +double: 1
  115214. +float: 1
  115215. +idouble: 1
  115216. +ifloat: 1
  115217. +ildouble: 1
  115218. +ldouble: 1
  115219. +Test "Real part of: casinh (1.0 - 0x1.fp-1000 i)":
  115220. +double: 1
  115221. +idouble: 1
  115222. +ildouble: 1
  115223. +ldouble: 1
  115224. +Test "Real part of: casinh (1.0 - 0x1.fp-10000 i)":
  115225. +ildouble: 1
  115226. +ldouble: 1
  115227. +Test "Real part of: casinh (1.0 - 0x1.fp-1025 i)":
  115228. +double: 1
  115229. +idouble: 1
  115230. +ildouble: 1
  115231. +ldouble: 1
  115232. +Test "Real part of: casinh (1.0 - 0x1.fp-129 i)":
  115233. +double: 1
  115234. +float: 1
  115235. +idouble: 1
  115236. +ifloat: 1
  115237. +ildouble: 1
  115238. +ldouble: 1
  115239. +Test "Real part of: casinh (1.0 - 0x1.fp-16385 i)":
  115240. +ildouble: 1
  115241. +ldouble: 1
  115242. +Test "Real part of: casinh (1.0 - 0x1.fp-30 i)":
  115243. +double: 1
  115244. +float: 1
  115245. +idouble: 1
  115246. +ifloat: 1
  115247. +ildouble: 1
  115248. +ldouble: 1
  115249. +Test "Imaginary part of: casinh (1.0 - 0x1.fp-30 i)":
  115250. +ildouble: 1
  115251. +ldouble: 1
  115252. +Test "Real part of: casinh (1.0 - 0x1p500 i)":
  115253. +ildouble: 1
  115254. +ldouble: 1
  115255. +Test "Real part of: casinh (1.0 - 0x1p5000 i)":
  115256. +ildouble: 1
  115257. +ldouble: 1
  115258. +Test "Real part of: casinh (1.5 + +0 i)":
  115259. +double: 1
  115260. +idouble: 1
  115261. +ildouble: 1
  115262. +ldouble: 1
  115263. +Test "Real part of: casinh (1.5 + 0x1.fp-1025 i)":
  115264. +double: 1
  115265. +idouble: 1
  115266. +ildouble: 1
  115267. +ldouble: 1
  115268. +Test "Real part of: casinh (1.5 + 0x1.fp-129 i)":
  115269. +double: 1
  115270. +idouble: 1
  115271. +ildouble: 1
  115272. +ldouble: 1
  115273. +Test "Real part of: casinh (1.5 + 0x1.fp-16385 i)":
  115274. +ildouble: 1
  115275. +ldouble: 1
  115276. +Test "Real part of: casinh (1.5 - 0 i)":
  115277. +double: 1
  115278. +idouble: 1
  115279. +ildouble: 1
  115280. +ldouble: 1
  115281. +Test "Real part of: casinh (1.5 - 0x1.fp-1025 i)":
  115282. +double: 1
  115283. +idouble: 1
  115284. +ildouble: 1
  115285. +ldouble: 1
  115286. +Test "Real part of: casinh (1.5 - 0x1.fp-129 i)":
  115287. +double: 1
  115288. +idouble: 1
  115289. +ildouble: 1
  115290. +ldouble: 1
  115291. +Test "Real part of: casinh (1.5 - 0x1.fp-16385 i)":
  115292. +ildouble: 1
  115293. +ldouble: 1
  115294. +
  115295. +# catan
  115296. +Test "Imaginary part of: catan (-0x0.fffffffffffff8p0 + 0x1p-27 i)":
  115297. +double: 1
  115298. +idouble: 1
  115299. +Test "Real part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-16382 i)":
  115300. +ildouble: 1
  115301. +ldouble: 1
  115302. +Test "Imaginary part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-57 i)":
  115303. +ildouble: 1
  115304. +ldouble: 1
  115305. +Test "Real part of: catan (-0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-16382 i)":
  115306. +ildouble: 1
  115307. +ldouble: 1
  115308. +Test "Real part of: catan (-0x0.ffffffp0 + 0x1p-126 i)":
  115309. +ildouble: 1
  115310. +ldouble: 1
  115311. +Test "Imaginary part of: catan (-0x0.ffffffp0 + 0x1p-13 i)":
  115312. +double: 1
  115313. +float: 1
  115314. +idouble: 1
  115315. +ifloat: 1
  115316. +ildouble: 1
  115317. +ldouble: 1
  115318. +Test "Real part of: catan (-0x0.ffffffp0 - 0x1p-126 i)":
  115319. +ildouble: 1
  115320. +ldouble: 1
  115321. +Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 + 0x1p-16382 i)":
  115322. +ildouble: 1
  115323. +ldouble: 1
  115324. +Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 - 0x1p-16382 i)":
  115325. +ildouble: 1
  115326. +ldouble: 1
  115327. +Test "Imaginary part of: catan (-0x1.0000000000000000000000000001p0 - 0x1p-57 i)":
  115328. +ildouble: 1
  115329. +ldouble: 1
  115330. +Test "Imaginary part of: catan (-0x1.0000000000001p0 - 0x1p-27 i)":
  115331. +double: 1
  115332. +idouble: 1
  115333. +Test "Real part of: catan (-0x1.000002p0 + 0x1p-126 i)":
  115334. +float: 1
  115335. +ifloat: 1
  115336. +ildouble: 1
  115337. +ldouble: 1
  115338. +Test "Real part of: catan (-0x1.000002p0 + 0x1p-13 i)":
  115339. +float: 1
  115340. +ifloat: 1
  115341. +Test "Real part of: catan (-0x1.000002p0 - 0x1p-126 i)":
  115342. +float: 1
  115343. +ifloat: 1
  115344. +ildouble: 1
  115345. +ldouble: 1
  115346. +Test "Real part of: catan (-0x1.000002p0 - 0x1p-13 i)":
  115347. +float: 1
  115348. +ifloat: 1
  115349. +Test "Imaginary part of: catan (-0x1.000002p0 - 0x1p-13 i)":
  115350. +double: 1
  115351. +idouble: 1
  115352. +Test "Imaginary part of: catan (-0x1.fp1023 + 0x1.fp1023 i)":
  115353. +double: 1
  115354. +idouble: 1
  115355. +Test "Imaginary part of: catan (-0x1.fp1023 - 0x1.fp1023 i)":
  115356. +double: 1
  115357. +idouble: 1
  115358. +Test "Imaginary part of: catan (-0x1.fp127 + 0x1.fp127 i)":
  115359. +double: 1
  115360. +idouble: 1
  115361. +Test "Imaginary part of: catan (-0x1.fp127 - 0x1.fp127 i)":
  115362. +double: 1
  115363. +idouble: 1
  115364. +Test "Imaginary part of: catan (-0x1.fp16383 + 0x1.fp16383 i)":
  115365. +ildouble: 1
  115366. +ldouble: 1
  115367. +Test "Imaginary part of: catan (-0x1.fp16383 - 0x1.fp16383 i)":
  115368. +ildouble: 1
  115369. +ldouble: 1
  115370. +Test "Imaginary part of: catan (-0x1p-1020 + 1.0 i)":
  115371. +double: 1
  115372. +idouble: 1
  115373. +Test "Imaginary part of: catan (-0x1p-1020 - 1.0 i)":
  115374. +double: 1
  115375. +idouble: 1
  115376. +Test "Real part of: catan (-0x1p-13 + 0x1.000002p0 i)":
  115377. +float: 1
  115378. +ifloat: 1
  115379. +Test "Real part of: catan (-0x1p-13 + 1.0 i)":
  115380. +float: 1
  115381. +ifloat: 1
  115382. +Test "Real part of: catan (-0x1p-13 - 0x1.000002p0 i)":
  115383. +float: 1
  115384. +ifloat: 1
  115385. +Test "Imaginary part of: catan (-0x1p-13 - 0x1.000002p0 i)":
  115386. +float: 1
  115387. +ifloat: 1
  115388. +Test "Real part of: catan (-0x1p-13 - 1.0 i)":
  115389. +float: 1
  115390. +ifloat: 1
  115391. +Test "Imaginary part of: catan (-0x1p-16380 + 1.0 i)":
  115392. +ildouble: 1
  115393. +ldouble: 1
  115394. +Test "Imaginary part of: catan (-0x1p-16380 - 1.0 i)":
  115395. +ildouble: 1
  115396. +ldouble: 1
  115397. +Test "Real part of: catan (-0x1p-33 + 0x0.ffffffffffffffffp0 i)":
  115398. +ildouble: 1
  115399. +ldouble: 1
  115400. +Test "Real part of: catan (-0x1p-33 + 0x1.0000000000000002p0 i)":
  115401. +ildouble: 1
  115402. +ldouble: 1
  115403. +Test "Real part of: catan (-0x1p-33 - 0x0.ffffffffffffffffp0 i)":
  115404. +ildouble: 1
  115405. +ldouble: 1
  115406. +Test "Real part of: catan (-0x1p-33 - 0x1.0000000000000002p0 i)":
  115407. +ildouble: 1
  115408. +ldouble: 1
  115409. +Test "Imaginary part of: catan (-0x1p-54 + 1.0 i)":
  115410. +float: 1
  115411. +ifloat: 1
  115412. +Test "Imaginary part of: catan (-0x1p-54 - 1.0 i)":
  115413. +float: 1
  115414. +ifloat: 1
  115415. +Test "Imaginary part of: catan (-0x1p-57 + 1.0 i)":
  115416. +float: 1
  115417. +ifloat: 1
  115418. +Test "Imaginary part of: catan (-0x1p-57 - 1.0 i)":
  115419. +float: 1
  115420. +ifloat: 1
  115421. +Test "Real part of: catan (-1.0 + 0x1p-13 i)":
  115422. +float: 1
  115423. +ifloat: 1
  115424. +ildouble: 1
  115425. +ldouble: 1
  115426. +Test "Real part of: catan (-1.0 - 0x1p-13 i)":
  115427. +float: 1
  115428. +ifloat: 1
  115429. +ildouble: 1
  115430. +ldouble: 1
  115431. +Test "Imaginary part of: catan (-2 - 3 i)":
  115432. +double: 1
  115433. +float: 1
  115434. +idouble: 1
  115435. +ifloat: 1
  115436. +Test "Imaginary part of: catan (0.75 + 1.25 i)":
  115437. +ildouble: 1
  115438. +ldouble: 1
  115439. +Test "Imaginary part of: catan (0x0.fffffffffffff8p0 + 0x1p-27 i)":
  115440. +double: 1
  115441. +idouble: 1
  115442. +Test "Real part of: catan (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-16382 i)":
  115443. +ildouble: 1
  115444. +ldouble: 1
  115445. +Test "Imaginary part of: catan (0x0.ffffffffffffffffffffffffffff8p0 + 0x1p-57 i)":
  115446. +ildouble: 1
  115447. +ldouble: 1
  115448. +Test "Real part of: catan (0x0.ffffffffffffffffffffffffffff8p0 - 0x1p-16382 i)":
  115449. +ildouble: 1
  115450. +ldouble: 1
  115451. +Test "Real part of: catan (0x0.ffffffp0 + 0x1p-126 i)":
  115452. +ildouble: 1
  115453. +ldouble: 1
  115454. +Test "Imaginary part of: catan (0x0.ffffffp0 + 0x1p-13 i)":
  115455. +double: 1
  115456. +float: 1
  115457. +idouble: 1
  115458. +ifloat: 1
  115459. +ildouble: 1
  115460. +ldouble: 1
  115461. +Test "Real part of: catan (0x0.ffffffp0 - 0x1p-126 i)":
  115462. +ildouble: 1
  115463. +ldouble: 1
  115464. +Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 + 0x1p-16382 i)":
  115465. +ildouble: 1
  115466. +ldouble: 1
  115467. +Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 - 0x1p-16382 i)":
  115468. +ildouble: 1
  115469. +ldouble: 1
  115470. +Test "Imaginary part of: catan (0x1.0000000000000000000000000001p0 - 0x1p-57 i)":
  115471. +ildouble: 1
  115472. +ldouble: 1
  115473. +Test "Imaginary part of: catan (0x1.0000000000001p0 - 0x1p-27 i)":
  115474. +double: 1
  115475. +idouble: 1
  115476. +Test "Real part of: catan (0x1.000002p0 + 0x1p-126 i)":
  115477. +float: 1
  115478. +ifloat: 1
  115479. +ildouble: 1
  115480. +ldouble: 1
  115481. +Test "Real part of: catan (0x1.000002p0 + 0x1p-13 i)":
  115482. +float: 1
  115483. +ifloat: 1
  115484. +Test "Real part of: catan (0x1.000002p0 - 0x1p-126 i)":
  115485. +float: 1
  115486. +ifloat: 1
  115487. +ildouble: 1
  115488. +ldouble: 1
  115489. +Test "Real part of: catan (0x1.000002p0 - 0x1p-13 i)":
  115490. +float: 1
  115491. +ifloat: 1
  115492. +Test "Imaginary part of: catan (0x1.000002p0 - 0x1p-13 i)":
  115493. +double: 1
  115494. +idouble: 1
  115495. +Test "Imaginary part of: catan (0x1.fp1023 + 0x1.fp1023 i)":
  115496. +double: 1
  115497. +idouble: 1
  115498. +Test "Imaginary part of: catan (0x1.fp1023 - 0x1.fp1023 i)":
  115499. +double: 1
  115500. +idouble: 1
  115501. +Test "Imaginary part of: catan (0x1.fp127 + 0x1.fp127 i)":
  115502. +double: 1
  115503. +idouble: 1
  115504. +Test "Imaginary part of: catan (0x1.fp127 - 0x1.fp127 i)":
  115505. +double: 1
  115506. +idouble: 1
  115507. +Test "Imaginary part of: catan (0x1.fp16383 + 0x1.fp16383 i)":
  115508. +ildouble: 1
  115509. +ldouble: 1
  115510. +Test "Imaginary part of: catan (0x1.fp16383 - 0x1.fp16383 i)":
  115511. +ildouble: 1
  115512. +ldouble: 1
  115513. +Test "Imaginary part of: catan (0x1p-1020 + 1.0 i)":
  115514. +double: 1
  115515. +idouble: 1
  115516. +Test "Imaginary part of: catan (0x1p-1020 - 1.0 i)":
  115517. +double: 1
  115518. +idouble: 1
  115519. +Test "Real part of: catan (0x1p-13 + 0x1.000002p0 i)":
  115520. +float: 1
  115521. +ifloat: 1
  115522. +Test "Real part of: catan (0x1p-13 + 1.0 i)":
  115523. +float: 1
  115524. +ifloat: 1
  115525. +Test "Real part of: catan (0x1p-13 - 0x1.000002p0 i)":
  115526. +float: 1
  115527. +ifloat: 1
  115528. +Test "Imaginary part of: catan (0x1p-13 - 0x1.000002p0 i)":
  115529. +float: 1
  115530. +ifloat: 1
  115531. +Test "Real part of: catan (0x1p-13 - 1.0 i)":
  115532. +float: 1
  115533. +ifloat: 1
  115534. +Test "Imaginary part of: catan (0x1p-16380 + 1.0 i)":
  115535. +ildouble: 1
  115536. +ldouble: 1
  115537. +Test "Imaginary part of: catan (0x1p-16380 - 1.0 i)":
  115538. +ildouble: 1
  115539. +ldouble: 1
  115540. +Test "Real part of: catan (0x1p-33 + 0x0.ffffffffffffffffp0 i)":
  115541. +ildouble: 1
  115542. +ldouble: 1
  115543. +Test "Real part of: catan (0x1p-33 + 0x1.0000000000000002p0 i)":
  115544. +ildouble: 1
  115545. +ldouble: 1
  115546. +Test "Real part of: catan (0x1p-33 - 0x0.ffffffffffffffffp0 i)":
  115547. +ildouble: 1
  115548. +ldouble: 1
  115549. +Test "Real part of: catan (0x1p-33 - 0x1.0000000000000002p0 i)":
  115550. +ildouble: 1
  115551. +ldouble: 1
  115552. +Test "Imaginary part of: catan (0x1p-54 + 1.0 i)":
  115553. +float: 1
  115554. +ifloat: 1
  115555. +Test "Imaginary part of: catan (0x1p-54 - 1.0 i)":
  115556. +float: 1
  115557. +ifloat: 1
  115558. +Test "Imaginary part of: catan (0x1p-57 + 1.0 i)":
  115559. +float: 1
  115560. +ifloat: 1
  115561. +Test "Imaginary part of: catan (0x1p-57 - 1.0 i)":
  115562. +float: 1
  115563. +ifloat: 1
  115564. +Test "Real part of: catan (1.0 + 0x1p-13 i)":
  115565. +float: 1
  115566. +ifloat: 1
  115567. +ildouble: 1
  115568. +ldouble: 1
  115569. +Test "Real part of: catan (1.0 - 0x1p-13 i)":
  115570. +float: 1
  115571. +ifloat: 1
  115572. +ildouble: 1
  115573. +ldouble: 1
  115574. +
  115575. +# catanh
  115576. +Test "Imaginary part of: catanh (-0x0.ffffffffffffffffp0 + 0x1p-33 i)":
  115577. +ildouble: 1
  115578. +ldouble: 1
  115579. +Test "Imaginary part of: catanh (-0x0.ffffffffffffffffp0 - 0x1p-33 i)":
  115580. +ildouble: 1
  115581. +ldouble: 1
  115582. +Test "Imaginary part of: catanh (-0x1.0000000000000002p0 + 0x1p-33 i)":
  115583. +ildouble: 1
  115584. +ldouble: 1
  115585. +Test "Imaginary part of: catanh (-0x1.0000000000000002p0 - 0x1p-33 i)":
  115586. +ildouble: 1
  115587. +ldouble: 1
  115588. +Test "Real part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
  115589. +float: 1
  115590. +ifloat: 1
  115591. +Test "Imaginary part of: catanh (-0x1.000002p0 + 0x1p-13 i)":
  115592. +float: 1
  115593. +ifloat: 1
  115594. +Test "Real part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
  115595. +float: 1
  115596. +ifloat: 1
  115597. +Test "Imaginary part of: catanh (-0x1.000002p0 - 0x1p-13 i)":
  115598. +float: 1
  115599. +ifloat: 1
  115600. +Test "Real part of: catanh (-0x1.fp1023 + 0x1.fp1023 i)":
  115601. +double: 1
  115602. +idouble: 1
  115603. +Test "Real part of: catanh (-0x1.fp1023 - 0x1.fp1023 i)":
  115604. +double: 1
  115605. +idouble: 1
  115606. +Test "Real part of: catanh (-0x1.fp127 + 0x1.fp127 i)":
  115607. +double: 1
  115608. +idouble: 1
  115609. +Test "Real part of: catanh (-0x1.fp127 - 0x1.fp127 i)":
  115610. +double: 1
  115611. +idouble: 1
  115612. +Test "Real part of: catanh (-0x1.fp16383 + 0x1.fp16383 i)":
  115613. +ildouble: 1
  115614. +ldouble: 1
  115615. +Test "Real part of: catanh (-0x1.fp16383 - 0x1.fp16383 i)":
  115616. +ildouble: 1
  115617. +ldouble: 1
  115618. +Test "Imaginary part of: catanh (-0x1p-126 + 0x0.ffffffp0 i)":
  115619. +ildouble: 1
  115620. +ldouble: 1
  115621. +Test "Imaginary part of: catanh (-0x1p-126 + 0x1.000002p0 i)":
  115622. +float: 1
  115623. +ifloat: 1
  115624. +ildouble: 1
  115625. +ldouble: 1
  115626. +Test "Imaginary part of: catanh (-0x1p-126 - 0x0.ffffffp0 i)":
  115627. +ildouble: 1
  115628. +ldouble: 1
  115629. +Test "Imaginary part of: catanh (-0x1p-126 - 0x1.000002p0 i)":
  115630. +float: 1
  115631. +ifloat: 1
  115632. +ildouble: 1
  115633. +ldouble: 1
  115634. +Test "Real part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
  115635. +double: 1
  115636. +idouble: 1
  115637. +Test "Imaginary part of: catanh (-0x1p-13 + 0x1.000002p0 i)":
  115638. +float: 1
  115639. +ifloat: 1
  115640. +Test "Imaginary part of: catanh (-0x1p-13 + 1.0 i)":
  115641. +float: 1
  115642. +ifloat: 1
  115643. +ildouble: 1
  115644. +ldouble: 1
  115645. +Test "Real part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
  115646. +double: 1
  115647. +idouble: 1
  115648. +Test "Imaginary part of: catanh (-0x1p-13 - 0x1.000002p0 i)":
  115649. +float: 1
  115650. +ifloat: 1
  115651. +Test "Imaginary part of: catanh (-0x1p-13 - 1.0 i)":
  115652. +float: 1
  115653. +ifloat: 1
  115654. +ildouble: 1
  115655. +ldouble: 1
  115656. +Test "Imaginary part of: catanh (-0x1p-16382 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
  115657. +ildouble: 1
  115658. +ldouble: 1
  115659. +Test "Real part of: catanh (-0x1p-16382 + 0x1.0000000000000000000000000001p0 i)":
  115660. +ildouble: 1
  115661. +ldouble: 1
  115662. +Test "Imaginary part of: catanh (-0x1p-16382 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
  115663. +ildouble: 1
  115664. +ldouble: 1
  115665. +Test "Real part of: catanh (-0x1p-16382 - 0x1.0000000000000000000000000001p0 i)":
  115666. +ildouble: 1
  115667. +ldouble: 1
  115668. +Test "Real part of: catanh (-0x1p-27 + 0x1.0000000000001p0 i)":
  115669. +double: 1
  115670. +idouble: 1
  115671. +Test "Real part of: catanh (-0x1p-27 - 0x1.0000000000001p0 i)":
  115672. +double: 1
  115673. +idouble: 1
  115674. +Test "Real part of: catanh (-0x1p-57 + 0x1.0000000000000000000000000001p0 i)":
  115675. +ildouble: 1
  115676. +ldouble: 1
  115677. +Test "Real part of: catanh (-0x1p-57 - 0x1.0000000000000000000000000001p0 i)":
  115678. +ildouble: 1
  115679. +ldouble: 1
  115680. +Test "Real part of: catanh (-1.0 + 0x1p-1020 i)":
  115681. +double: 1
  115682. +idouble: 1
  115683. +Test "Imaginary part of: catanh (-1.0 + 0x1p-13 i)":
  115684. +float: 1
  115685. +ifloat: 1
  115686. +Test "Real part of: catanh (-1.0 + 0x1p-16380 i)":
  115687. +ildouble: 1
  115688. +ldouble: 1
  115689. +Test "Real part of: catanh (-1.0 + 0x1p-54 i)":
  115690. +float: 1
  115691. +ifloat: 1
  115692. +Test "Real part of: catanh (-1.0 + 0x1p-57 i)":
  115693. +float: 1
  115694. +ifloat: 1
  115695. +Test "Real part of: catanh (-1.0 - 0x1p-1020 i)":
  115696. +double: 1
  115697. +idouble: 1
  115698. +Test "Imaginary part of: catanh (-1.0 - 0x1p-13 i)":
  115699. +float: 1
  115700. +ifloat: 1
  115701. +Test "Real part of: catanh (-1.0 - 0x1p-16380 i)":
  115702. +ildouble: 1
  115703. +ldouble: 1
  115704. +Test "Real part of: catanh (-1.0 - 0x1p-54 i)":
  115705. +float: 1
  115706. +ifloat: 1
  115707. +Test "Real part of: catanh (-1.0 - 0x1p-57 i)":
  115708. +float: 1
  115709. +ifloat: 1
  115710. +Test "Real part of: catanh (-2 - 3 i)":
  115711. +double: 1
  115712. +idouble: 1
  115713. +ildouble: 1
  115714. +ldouble: 1
  115715. +Test "Real part of: catanh (0.75 + 1.25 i)":
  115716. +ildouble: 1
  115717. +ldouble: 1
  115718. +Test "Imaginary part of: catanh (0.75 + 1.25 i)":
  115719. +ildouble: 1
  115720. +ldouble: 1
  115721. +Test "Imaginary part of: catanh (0x0.ffffffffffffffffp0 + 0x1p-33 i)":
  115722. +ildouble: 1
  115723. +ldouble: 1
  115724. +Test "Imaginary part of: catanh (0x0.ffffffffffffffffp0 - 0x1p-33 i)":
  115725. +ildouble: 1
  115726. +ldouble: 1
  115727. +Test "Imaginary part of: catanh (0x1.0000000000000002p0 + 0x1p-33 i)":
  115728. +ildouble: 1
  115729. +ldouble: 1
  115730. +Test "Imaginary part of: catanh (0x1.0000000000000002p0 - 0x1p-33 i)":
  115731. +ildouble: 1
  115732. +ldouble: 1
  115733. +Test "Imaginary part of: catanh (0x1.000002p0 + 0x1p-13 i)":
  115734. +float: 1
  115735. +ifloat: 1
  115736. +Test "Imaginary part of: catanh (0x1.000002p0 - 0x1p-13 i)":
  115737. +float: 1
  115738. +ifloat: 1
  115739. +Test "Real part of: catanh (0x1.fp1023 + 0x1.fp1023 i)":
  115740. +double: 1
  115741. +idouble: 1
  115742. +Test "Real part of: catanh (0x1.fp1023 - 0x1.fp1023 i)":
  115743. +double: 1
  115744. +idouble: 1
  115745. +Test "Real part of: catanh (0x1.fp127 + 0x1.fp127 i)":
  115746. +double: 1
  115747. +idouble: 1
  115748. +Test "Real part of: catanh (0x1.fp127 - 0x1.fp127 i)":
  115749. +double: 1
  115750. +idouble: 1
  115751. +Test "Real part of: catanh (0x1.fp16383 + 0x1.fp16383 i)":
  115752. +ildouble: 1
  115753. +ldouble: 1
  115754. +Test "Real part of: catanh (0x1.fp16383 - 0x1.fp16383 i)":
  115755. +ildouble: 1
  115756. +ldouble: 1
  115757. +Test "Imaginary part of: catanh (0x1p-126 + 0x0.ffffffp0 i)":
  115758. +ildouble: 1
  115759. +ldouble: 1
  115760. +Test "Imaginary part of: catanh (0x1p-126 + 0x1.000002p0 i)":
  115761. +float: 1
  115762. +ifloat: 1
  115763. +ildouble: 1
  115764. +ldouble: 1
  115765. +Test "Imaginary part of: catanh (0x1p-126 - 0x0.ffffffp0 i)":
  115766. +ildouble: 1
  115767. +ldouble: 1
  115768. +Test "Imaginary part of: catanh (0x1p-126 - 0x1.000002p0 i)":
  115769. +float: 1
  115770. +ifloat: 1
  115771. +ildouble: 1
  115772. +ldouble: 1
  115773. +Test "Real part of: catanh (0x1p-13 + 0x0.ffffffp0 i)":
  115774. +double: 1
  115775. +float: 1
  115776. +idouble: 1
  115777. +ifloat: 1
  115778. +ildouble: 1
  115779. +ldouble: 1
  115780. +Test "Imaginary part of: catanh (0x1p-13 + 0x1.000002p0 i)":
  115781. +float: 1
  115782. +ifloat: 1
  115783. +Test "Imaginary part of: catanh (0x1p-13 + 1.0 i)":
  115784. +float: 1
  115785. +ifloat: 1
  115786. +ildouble: 1
  115787. +ldouble: 1
  115788. +Test "Real part of: catanh (0x1p-13 - 0x0.ffffffp0 i)":
  115789. +double: 1
  115790. +float: 1
  115791. +idouble: 1
  115792. +ifloat: 1
  115793. +ildouble: 1
  115794. +ldouble: 1
  115795. +Test "Imaginary part of: catanh (0x1p-13 - 0x1.000002p0 i)":
  115796. +float: 1
  115797. +ifloat: 1
  115798. +Test "Imaginary part of: catanh (0x1p-13 - 1.0 i)":
  115799. +float: 1
  115800. +ifloat: 1
  115801. +ildouble: 1
  115802. +ldouble: 1
  115803. +Test "Imaginary part of: catanh (0x1p-16382 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
  115804. +ildouble: 1
  115805. +ldouble: 1
  115806. +Test "Real part of: catanh (0x1p-16382 + 0x1.0000000000000000000000000001p0 i)":
  115807. +ildouble: 1
  115808. +ldouble: 1
  115809. +Test "Imaginary part of: catanh (0x1p-16382 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
  115810. +ildouble: 1
  115811. +ldouble: 1
  115812. +Test "Real part of: catanh (0x1p-16382 - 0x1.0000000000000000000000000001p0 i)":
  115813. +ildouble: 1
  115814. +ldouble: 1
  115815. +Test "Real part of: catanh (0x1p-27 + 0x0.fffffffffffff8p0 i)":
  115816. +double: 1
  115817. +idouble: 1
  115818. +Test "Real part of: catanh (0x1p-27 - 0x0.fffffffffffff8p0 i)":
  115819. +double: 1
  115820. +idouble: 1
  115821. +Test "Real part of: catanh (0x1p-57 + 0x0.ffffffffffffffffffffffffffff8p0 i)":
  115822. +ildouble: 1
  115823. +ldouble: 1
  115824. +Test "Real part of: catanh (0x1p-57 - 0x0.ffffffffffffffffffffffffffff8p0 i)":
  115825. +ildouble: 1
  115826. +ldouble: 1
  115827. +Test "Real part of: catanh (1.0 + 0x1p-1020 i)":
  115828. +double: 1
  115829. +idouble: 1
  115830. +Test "Imaginary part of: catanh (1.0 + 0x1p-13 i)":
  115831. +float: 1
  115832. +ifloat: 1
  115833. +Test "Real part of: catanh (1.0 + 0x1p-16380 i)":
  115834. +ildouble: 1
  115835. +ldouble: 1
  115836. +Test "Real part of: catanh (1.0 + 0x1p-54 i)":
  115837. +float: 1
  115838. +ifloat: 1
  115839. +Test "Real part of: catanh (1.0 + 0x1p-57 i)":
  115840. +float: 1
  115841. +ifloat: 1
  115842. +Test "Real part of: catanh (1.0 - 0x1p-1020 i)":
  115843. +double: 1
  115844. +idouble: 1
  115845. +Test "Imaginary part of: catanh (1.0 - 0x1p-13 i)":
  115846. +float: 1
  115847. +ifloat: 1
  115848. +Test "Real part of: catanh (1.0 - 0x1p-16380 i)":
  115849. +ildouble: 1
  115850. +ldouble: 1
  115851. +Test "Real part of: catanh (1.0 - 0x1p-54 i)":
  115852. +float: 1
  115853. +ifloat: 1
  115854. +Test "Real part of: catanh (1.0 - 0x1p-57 i)":
  115855. +float: 1
  115856. +ifloat: 1
  115857. +
  115858. +# cbrt
  115859. +Test "cbrt (-0.001)":
  115860. +ildouble: 1
  115861. +ldouble: 1
  115862. +Test "cbrt (-27.0)":
  115863. +double: 1
  115864. +idouble: 1
  115865. +Test "cbrt (0.75)":
  115866. +double: 1
  115867. +idouble: 1
  115868. +Test "cbrt (0.9921875)":
  115869. +double: 1
  115870. +idouble: 1
  115871. +
  115872. +# ccos
  115873. +Test "Imaginary part of: ccos (-0.75 + 11357.25 i)":
  115874. +ildouble: 1
  115875. +ldouble: 1
  115876. +Test "Imaginary part of: ccos (-0.75 + 710.5 i)":
  115877. +double: 1
  115878. +idouble: 1
  115879. +ildouble: 1
  115880. +ldouble: 1
  115881. +Test "Real part of: ccos (-0.75 + 89.5 i)":
  115882. +ildouble: 1
  115883. +ldouble: 1
  115884. +Test "Imaginary part of: ccos (-0.75 + 89.5 i)":
  115885. +float: 1
  115886. +ifloat: 1
  115887. +ildouble: 1
  115888. +ldouble: 1
  115889. +Test "Imaginary part of: ccos (-0.75 - 11357.25 i)":
  115890. +ildouble: 1
  115891. +ldouble: 1
  115892. +Test "Imaginary part of: ccos (-0.75 - 710.5 i)":
  115893. +double: 1
  115894. +idouble: 1
  115895. +ildouble: 1
  115896. +ldouble: 1
  115897. +Test "Real part of: ccos (-0.75 - 89.5 i)":
  115898. +ildouble: 1
  115899. +ldouble: 1
  115900. +Test "Imaginary part of: ccos (-0.75 - 89.5 i)":
  115901. +float: 1
  115902. +ifloat: 1
  115903. +ildouble: 1
  115904. +ldouble: 1
  115905. +Test "Real part of: ccos (-2 - 3 i)":
  115906. +ildouble: 1
  115907. +ldouble: 1
  115908. +Test "Imaginary part of: ccos (-2 - 3 i)":
  115909. +float: 1
  115910. +ifloat: 1
  115911. +ildouble: 1
  115912. +ldouble: 1
  115913. +Test "Real part of: ccos (0.75 + 1.25 i)":
  115914. +double: 1
  115915. +float: 1
  115916. +idouble: 1
  115917. +ifloat: 1
  115918. +Test "Imaginary part of: ccos (0.75 + 1.25 i)":
  115919. +float: 1
  115920. +ifloat: 1
  115921. +Test "Imaginary part of: ccos (0.75 + 11357.25 i)":
  115922. +ildouble: 1
  115923. +ldouble: 1
  115924. +Test "Imaginary part of: ccos (0.75 + 710.5 i)":
  115925. +double: 1
  115926. +idouble: 1
  115927. +ildouble: 1
  115928. +ldouble: 1
  115929. +Test "Real part of: ccos (0.75 + 89.5 i)":
  115930. +ildouble: 1
  115931. +ldouble: 1
  115932. +Test "Imaginary part of: ccos (0.75 + 89.5 i)":
  115933. +float: 1
  115934. +ifloat: 1
  115935. +ildouble: 1
  115936. +ldouble: 1
  115937. +Test "Imaginary part of: ccos (0.75 - 11357.25 i)":
  115938. +ildouble: 1
  115939. +ldouble: 1
  115940. +Test "Imaginary part of: ccos (0.75 - 710.5 i)":
  115941. +double: 1
  115942. +idouble: 1
  115943. +ildouble: 1
  115944. +ldouble: 1
  115945. +Test "Real part of: ccos (0.75 - 89.5 i)":
  115946. +ildouble: 1
  115947. +ldouble: 1
  115948. +Test "Imaginary part of: ccos (0.75 - 89.5 i)":
  115949. +float: 1
  115950. +ifloat: 1
  115951. +ildouble: 1
  115952. +ldouble: 1
  115953. +Test "Imaginary part of: ccos (0x1p-1074 + 1440 i)":
  115954. +double: 1
  115955. +idouble: 1
  115956. +Test "Imaginary part of: ccos (0x1p-16434 + 22730 i)":
  115957. +ildouble: 1
  115958. +ldouble: 1
  115959. +
  115960. +# ccosh
  115961. +Test "Imaginary part of: ccosh (-11357.25 + 0.75 i)":
  115962. +ildouble: 1
  115963. +ldouble: 1
  115964. +Test "Imaginary part of: ccosh (-11357.25 - 0.75 i)":
  115965. +ildouble: 1
  115966. +ldouble: 1
  115967. +Test "Real part of: ccosh (-2 - 3 i)":
  115968. +float: 1
  115969. +ifloat: 1
  115970. +ildouble: 1
  115971. +ldouble: 1
  115972. +Test "Imaginary part of: ccosh (-2 - 3 i)":
  115973. +float: 1
  115974. +ifloat: 1
  115975. +ildouble: 1
  115976. +ldouble: 1
  115977. +Test "Imaginary part of: ccosh (-710.5 + 0.75 i)":
  115978. +double: 1
  115979. +idouble: 1
  115980. +ildouble: 1
  115981. +ldouble: 1
  115982. +Test "Imaginary part of: ccosh (-710.5 - 0.75 i)":
  115983. +double: 1
  115984. +idouble: 1
  115985. +ildouble: 1
  115986. +ldouble: 1
  115987. +Test "Real part of: ccosh (-89.5 + 0.75 i)":
  115988. +ildouble: 1
  115989. +ldouble: 1
  115990. +Test "Imaginary part of: ccosh (-89.5 + 0.75 i)":
  115991. +float: 1
  115992. +ifloat: 1
  115993. +ildouble: 1
  115994. +ldouble: 1
  115995. +Test "Real part of: ccosh (-89.5 - 0.75 i)":
  115996. +ildouble: 1
  115997. +ldouble: 1
  115998. +Test "Imaginary part of: ccosh (-89.5 - 0.75 i)":
  115999. +float: 1
  116000. +ifloat: 1
  116001. +ildouble: 1
  116002. +ldouble: 1
  116003. +Test "Real part of: ccosh (0.75 + 1.25 i)":
  116004. +double: 1
  116005. +float: 1
  116006. +idouble: 1
  116007. +ifloat: 1
  116008. +Test "Imaginary part of: ccosh (0.75 + 1.25 i)":
  116009. +float: 1
  116010. +ifloat: 1
  116011. +Test "Imaginary part of: ccosh (11357.25 + 0.75 i)":
  116012. +ildouble: 1
  116013. +ldouble: 1
  116014. +Test "Imaginary part of: ccosh (11357.25 - 0.75 i)":
  116015. +ildouble: 1
  116016. +ldouble: 1
  116017. +Test "Imaginary part of: ccosh (1440 + 0x1p-1074 i)":
  116018. +double: 1
  116019. +idouble: 1
  116020. +Test "Imaginary part of: ccosh (22730 + 0x1p-16434 i)":
  116021. +ildouble: 1
  116022. +ldouble: 1
  116023. +Test "Imaginary part of: ccosh (710.5 + 0.75 i)":
  116024. +double: 1
  116025. +idouble: 1
  116026. +ildouble: 1
  116027. +ldouble: 1
  116028. +Test "Imaginary part of: ccosh (710.5 - 0.75 i)":
  116029. +double: 1
  116030. +idouble: 1
  116031. +ildouble: 1
  116032. +ldouble: 1
  116033. +Test "Real part of: ccosh (89.5 + 0.75 i)":
  116034. +ildouble: 1
  116035. +ldouble: 1
  116036. +Test "Imaginary part of: ccosh (89.5 + 0.75 i)":
  116037. +float: 1
  116038. +ifloat: 1
  116039. +ildouble: 1
  116040. +ldouble: 1
  116041. +Test "Real part of: ccosh (89.5 - 0.75 i)":
  116042. +ildouble: 1
  116043. +ldouble: 1
  116044. +Test "Imaginary part of: ccosh (89.5 - 0.75 i)":
  116045. +float: 1
  116046. +ifloat: 1
  116047. +ildouble: 1
  116048. +ldouble: 1
  116049. +
  116050. +# cexp
  116051. +Test "Imaginary part of: cexp (-10000 + 0x1p16383 i)":
  116052. +ildouble: 1
  116053. +ldouble: 1
  116054. +Test "Real part of: cexp (-2.0 - 3.0 i)":
  116055. +ildouble: 1
  116056. +ldouble: 1
  116057. +Test "Imaginary part of: cexp (-2.0 - 3.0 i)":
  116058. +float: 1
  116059. +ifloat: 1
  116060. +ildouble: 1
  116061. +ldouble: 1
  116062. +Test "Imaginary part of: cexp (-720 + 0.75 i)":
  116063. +ildouble: 1
  116064. +ldouble: 1
  116065. +Test "Imaginary part of: cexp (-95 + 0.75 i)":
  116066. +double: 1
  116067. +idouble: 1
  116068. +Test "Real part of: cexp (0.75 + 1.25 i)":
  116069. +float: 1
  116070. +ifloat: 1
  116071. +Test "Imaginary part of: cexp (0.75 + 1.25 i)":
  116072. +ildouble: 1
  116073. +ldouble: 1
  116074. +Test "Imaginary part of: cexp (1440 + 0x1p-1074 i)":
  116075. +double: 1
  116076. +idouble: 1
  116077. +Test "Imaginary part of: cexp (22730 + 0x1p-16434 i)":
  116078. +ildouble: 1
  116079. +ldouble: 1
  116080. +Test "Real part of: cexp (50 + 0x1p127 i)":
  116081. +double: 2
  116082. +float: 1
  116083. +idouble: 2
  116084. +ifloat: 1
  116085. +ildouble: 1
  116086. +ldouble: 1
  116087. +Test "Imaginary part of: cexp (50 + 0x1p127 i)":
  116088. +double: 1
  116089. +idouble: 1
  116090. +Test "Real part of: cexp (500 + 0x1p1023 i)":
  116091. +double: 1
  116092. +idouble: 1
  116093. +Test "Real part of: cexp (709.8125 + 0.75 i)":
  116094. +double: 1
  116095. +idouble: 1
  116096. +Test "Imaginary part of: cexp (709.8125 + 0.75 i)":
  116097. +double: 1
  116098. +idouble: 1
  116099. +ildouble: 1
  116100. +ldouble: 1
  116101. +Test "Real part of: cexp (88.75 + 0.75 i)":
  116102. +float: 1
  116103. +ifloat: 1
  116104. +ildouble: 1
  116105. +ldouble: 1
  116106. +Test "Imaginary part of: cexp (88.75 + 0.75 i)":
  116107. +float: 2
  116108. +ifloat: 2
  116109. +ildouble: 1
  116110. +ldouble: 1
  116111. +
  116112. +# clog
  116113. +Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  116114. +double: 1
  116115. +idouble: 1
  116116. +Test "Real part of: clog (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  116117. +double: 1
  116118. +idouble: 1
  116119. +Test "Imaginary part of: clog (-0x1.234566p-40 - 1.0 i)":
  116120. +float: 1
  116121. +ifloat: 1
  116122. +Test "Real part of: clog (-0x1.fp+127 + 0x1p-149 i)":
  116123. +float: 1
  116124. +ifloat: 1
  116125. +Test "Real part of: clog (-0x1.fp+127 - 0x1p-149 i)":
  116126. +float: 1
  116127. +ifloat: 1
  116128. +Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16445 i)":
  116129. +ildouble: 1
  116130. +ldouble: 1
  116131. +Test "Real part of: clog (-0x1.fp+16383 + 0x1p-16494 i)":
  116132. +ildouble: 1
  116133. +ldouble: 1
  116134. +Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16445 i)":
  116135. +ildouble: 1
  116136. +ldouble: 1
  116137. +Test "Real part of: clog (-0x1.fp+16383 - 0x1p-16494 i)":
  116138. +ildouble: 1
  116139. +ldouble: 1
  116140. +Test "Real part of: clog (-0x1p-149 + 0x1.fp+127 i)":
  116141. +float: 1
  116142. +ifloat: 1
  116143. +Test "Imaginary part of: clog (-0x1p-149 + 0x1.fp+127 i)":
  116144. +float: 1
  116145. +ifloat: 1
  116146. +Test "Real part of: clog (-0x1p-149 - 0x1.fp+127 i)":
  116147. +float: 1
  116148. +ifloat: 1
  116149. +Test "Imaginary part of: clog (-0x1p-149 - 0x1.fp+127 i)":
  116150. +float: 1
  116151. +ifloat: 1
  116152. +Test "Real part of: clog (-0x1p-16445 + 0x1.fp+16383 i)":
  116153. +ildouble: 1
  116154. +ldouble: 1
  116155. +Test "Real part of: clog (-0x1p-16445 - 0x1.fp+16383 i)":
  116156. +ildouble: 1
  116157. +ldouble: 1
  116158. +Test "Real part of: clog (-0x1p-16494 + 0x1.fp+16383 i)":
  116159. +ildouble: 1
  116160. +ldouble: 1
  116161. +Test "Real part of: clog (-0x1p-16494 - 0x1.fp+16383 i)":
  116162. +ildouble: 1
  116163. +ldouble: 1
  116164. +Test "Real part of: clog (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
  116165. +float: 1
  116166. +ifloat: 1
  116167. +Test "Real part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
  116168. +float: 1
  116169. +ifloat: 1
  116170. +Test "Imaginary part of: clog (0x1.000566p0 + 0x1.234p-10 i)":
  116171. +ildouble: 1
  116172. +ldouble: 1
  116173. +Test "Real part of: clog (0x1.fp+127 + 0x1p-149 i)":
  116174. +float: 1
  116175. +ifloat: 1
  116176. +Test "Real part of: clog (0x1.fp+127 - 0x1p-149 i)":
  116177. +float: 1
  116178. +ifloat: 1
  116179. +Test "Real part of: clog (0x1.fp+16383 + 0x1.fp+16383 i)":
  116180. +ildouble: 1
  116181. +ldouble: 1
  116182. +Test "Real part of: clog (0x1.fp+16383 + 0x1p-16445 i)":
  116183. +ildouble: 1
  116184. +ldouble: 1
  116185. +Test "Real part of: clog (0x1.fp+16383 + 0x1p-16494 i)":
  116186. +ildouble: 1
  116187. +ldouble: 1
  116188. +Test "Real part of: clog (0x1.fp+16383 - 0x1p-16445 i)":
  116189. +ildouble: 1
  116190. +ldouble: 1
  116191. +Test "Real part of: clog (0x1.fp+16383 - 0x1p-16494 i)":
  116192. +ildouble: 1
  116193. +ldouble: 1
  116194. +Test "Imaginary part of: clog (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
  116195. +ildouble: 1
  116196. +ldouble: 1
  116197. +Test "Real part of: clog (0x1p-1074 + 0x1p-1074 i)":
  116198. +double: 1
  116199. +idouble: 1
  116200. +Test "Real part of: clog (0x1p-147 + 0x1p-147 i)":
  116201. +float: 1
  116202. +ifloat: 1
  116203. +Test "Real part of: clog (0x1p-149 + 0x1.fp+127 i)":
  116204. +float: 1
  116205. +ifloat: 1
  116206. +Test "Real part of: clog (0x1p-149 - 0x1.fp+127 i)":
  116207. +float: 1
  116208. +ifloat: 1
  116209. +Test "Real part of: clog (0x1p-16445 + 0x1.fp+16383 i)":
  116210. +ildouble: 1
  116211. +ldouble: 1
  116212. +Test "Real part of: clog (0x1p-16445 - 0x1.fp+16383 i)":
  116213. +ildouble: 1
  116214. +ldouble: 1
  116215. +Test "Real part of: clog (0x1p-16494 + 0x1.fp+16383 i)":
  116216. +ildouble: 1
  116217. +ldouble: 1
  116218. +Test "Real part of: clog (0x1p-16494 - 0x1.fp+16383 i)":
  116219. +ildouble: 1
  116220. +ldouble: 1
  116221. +Test "Imaginary part of: clog (0x2818p-15 + 0x798fp-15 i)":
  116222. +float: 1
  116223. +ifloat: 1
  116224. +ildouble: 1
  116225. +ldouble: 1
  116226. +Test "Imaginary part of: clog (0x298c62cb546588a7p-63 + 0x7911b1dfcc4ecdaep-63 i)":
  116227. +ildouble: 1
  116228. +ldouble: 1
  116229. +Test "Imaginary part of: clog (0x2ede88p-23 + 0x771c3fp-23 i)":
  116230. +ildouble: 1
  116231. +ldouble: 1
  116232. +Test "Imaginary part of: clog (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i)":
  116233. +ildouble: 1
  116234. +ldouble: 1
  116235. +Test "Imaginary part of: clog (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
  116236. +ildouble: 1
  116237. +ldouble: 1
  116238. +Test "Imaginary part of: clog (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
  116239. +ildouble: 1
  116240. +ldouble: 1
  116241. +Test "Imaginary part of: clog (0x659feap-24 + 0xeaf6f9p-24 i)":
  116242. +ildouble: 1
  116243. +ldouble: 1
  116244. +Test "Imaginary part of: clog (0x6771f22c64ed551b857c128b4cp-105 + 0x1f570e7a13cc3cf2f44fd793ea1p-105 i)":
  116245. +ildouble: 1
  116246. +ldouble: 1
  116247. +Test "Imaginary part of: clog (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
  116248. +ildouble: 1
  116249. +ldouble: 1
  116250. +Test "Real part of: clog (0x8ecbf810c4ae6p-52 + 0xd479468b09a37p-52 i)":
  116251. +ildouble: 1
  116252. +ldouble: 1
  116253. +Test "Imaginary part of: clog (0x9b57bp-20 + 0xcb7b4p-20 i)":
  116254. +ildouble: 1
  116255. +ldouble: 1
  116256. +Test "Imaginary part of: clog (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
  116257. +ildouble: 1
  116258. +ldouble: 1
  116259. +Test "Imaginary part of: clog (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
  116260. +ildouble: 1
  116261. +ldouble: 1
  116262. +Test "Imaginary part of: clog (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
  116263. +ildouble: 1
  116264. +ldouble: 1
  116265. +Test "Real part of: clog (1.0 + 0x1.234566p-10 i)":
  116266. +float: 1
  116267. +ifloat: 1
  116268. +
  116269. +# clog10
  116270. +Test "Imaginary part of: clog10 (-0 + inf i)":
  116271. +double: 1
  116272. +float: 1
  116273. +idouble: 1
  116274. +ifloat: 1
  116275. +Test "Imaginary part of: clog10 (-0 - inf i)":
  116276. +double: 1
  116277. +float: 1
  116278. +idouble: 1
  116279. +ifloat: 1
  116280. +Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  116281. +double: 2
  116282. +idouble: 2
  116283. +ildouble: 1
  116284. +ldouble: 1
  116285. +Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-1000 i)":
  116286. +double: 1
  116287. +idouble: 1
  116288. +Test "Real part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  116289. +double: 2
  116290. +idouble: 2
  116291. +ildouble: 1
  116292. +ldouble: 1
  116293. +Test "Imaginary part of: clog10 (-0x1.0000000123456p0 + 0x1.2345678p-30 i)":
  116294. +double: 1
  116295. +idouble: 1
  116296. +Test "Imaginary part of: clog10 (-0x1.fp+1023 + 0x1p-1074 i)":
  116297. +double: 1
  116298. +idouble: 1
  116299. +Test "Imaginary part of: clog10 (-0x1.fp+1023 - 0x1p-1074 i)":
  116300. +double: 1
  116301. +idouble: 1
  116302. +Test "Imaginary part of: clog10 (-0x1.fp+127 + 0x1p-149 i)":
  116303. +double: 1
  116304. +float: 1
  116305. +idouble: 1
  116306. +ifloat: 1
  116307. +Test "Imaginary part of: clog10 (-0x1.fp+127 - 0x1p-149 i)":
  116308. +double: 1
  116309. +float: 1
  116310. +idouble: 1
  116311. +ifloat: 1
  116312. +Test "Imaginary part of: clog10 (-0x1p-1074 + 0x1.fp+1023 i)":
  116313. +double: 1
  116314. +idouble: 1
  116315. +Test "Imaginary part of: clog10 (-0x1p-1074 - 0x1.fp+1023 i)":
  116316. +double: 1
  116317. +idouble: 1
  116318. +Test "Imaginary part of: clog10 (-0x1p-149 + 0x1.fp+127 i)":
  116319. +double: 1
  116320. +idouble: 1
  116321. +Test "Imaginary part of: clog10 (-0x1p-149 - 0x1.fp+127 i)":
  116322. +double: 1
  116323. +idouble: 1
  116324. +Test "Imaginary part of: clog10 (-1.0 + 0x1.234566p-20 i)":
  116325. +double: 1
  116326. +idouble: 1
  116327. +Test "Real part of: clog10 (-2 - 3 i)":
  116328. +ildouble: 1
  116329. +ldouble: 1
  116330. +Test "Imaginary part of: clog10 (-2 - 3 i)":
  116331. +double: 1
  116332. +idouble: 1
  116333. +ildouble: 1
  116334. +ldouble: 1
  116335. +Test "Imaginary part of: clog10 (-3 + inf i)":
  116336. +double: 1
  116337. +float: 1
  116338. +idouble: 1
  116339. +ifloat: 1
  116340. +Test "Imaginary part of: clog10 (-3 - inf i)":
  116341. +double: 1
  116342. +float: 1
  116343. +idouble: 1
  116344. +ifloat: 1
  116345. +Test "Imaginary part of: clog10 (-inf + 0 i)":
  116346. +double: 1
  116347. +float: 1
  116348. +idouble: 1
  116349. +ifloat: 1
  116350. +Test "Imaginary part of: clog10 (-inf + 1 i)":
  116351. +double: 1
  116352. +float: 1
  116353. +idouble: 1
  116354. +ifloat: 1
  116355. +Test "Imaginary part of: clog10 (-inf + inf i)":
  116356. +double: 1
  116357. +idouble: 1
  116358. +Test "Imaginary part of: clog10 (-inf - 0 i)":
  116359. +double: 1
  116360. +float: 1
  116361. +idouble: 1
  116362. +ifloat: 1
  116363. +Test "Imaginary part of: clog10 (-inf - 1 i)":
  116364. +double: 1
  116365. +float: 1
  116366. +idouble: 1
  116367. +ifloat: 1
  116368. +Test "Imaginary part of: clog10 (0 + inf i)":
  116369. +double: 1
  116370. +float: 1
  116371. +idouble: 1
  116372. +ifloat: 1
  116373. +Test "Imaginary part of: clog10 (0 - inf i)":
  116374. +double: 1
  116375. +float: 1
  116376. +idouble: 1
  116377. +ifloat: 1
  116378. +Test "Imaginary part of: clog10 (0.75 + 1.25 i)":
  116379. +ildouble: 1
  116380. +ldouble: 1
  116381. +Test "Real part of: clog10 (0x0.fffffffffffff8p0 + 0x0.fffffffffffff8p-1000 i)":
  116382. +double: 1
  116383. +idouble: 1
  116384. +Test "Real part of: clog10 (0x0.ffffffp0 + 0x0.ffffffp-100 i)":
  116385. +double: 1
  116386. +float: 2
  116387. +idouble: 1
  116388. +ifloat: 2
  116389. +ildouble: 1
  116390. +ldouble: 1
  116391. +Test "Real part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i)":
  116392. +ildouble: 1
  116393. +ldouble: 1
  116394. +Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-1000 i)":
  116395. +ildouble: 1
  116396. +ldouble: 1
  116397. +Test "Imaginary part of: clog10 (0x1.00000000000000123456789abcp0 + 0x1.23456789p-60 i)":
  116398. +ildouble: 1
  116399. +ldouble: 1
  116400. +Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
  116401. +float: 1
  116402. +ifloat: 1
  116403. +Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-10 i)":
  116404. +double: 1
  116405. +idouble: 1
  116406. +ildouble: 2
  116407. +ldouble: 2
  116408. +Test "Real part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
  116409. +float: 1
  116410. +ifloat: 1
  116411. +Test "Imaginary part of: clog10 (0x1.000566p0 + 0x1.234p-100 i)":
  116412. +ildouble: 1
  116413. +ldouble: 1
  116414. +Test "Imaginary part of: clog10 (0x1.234566p-30 + 1.0 i)":
  116415. +float: 1
  116416. +ifloat: 1
  116417. +Test "Real part of: clog10 (0x1.234566p-50 + 1.0 i)":
  116418. +ildouble: 1
  116419. +ldouble: 1
  116420. +Test "Imaginary part of: clog10 (0x1.234566p-50 + 1.0 i)":
  116421. +float: 1
  116422. +ifloat: 1
  116423. +Test "Real part of: clog10 (0x1.234566p-60 + 1.0 i)":
  116424. +ildouble: 1
  116425. +ldouble: 1
  116426. +Test "Imaginary part of: clog10 (0x1.234566p-60 + 1.0 i)":
  116427. +double: 1
  116428. +float: 1
  116429. +idouble: 1
  116430. +ifloat: 1
  116431. +Test "Imaginary part of: clog10 (0x1.fffffep+127 + 0x1.fffffep+127 i)":
  116432. +double: 1
  116433. +float: 1
  116434. +idouble: 1
  116435. +ifloat: 1
  116436. +Test "Real part of: clog10 (0x1.fffffep+127 + 1.0 i)":
  116437. +float: 1
  116438. +ifloat: 1
  116439. +Test "Imaginary part of: clog10 (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  116440. +double: 1
  116441. +idouble: 1
  116442. +Test "Real part of: clog10 (0x1.fp+16383 + 0x1.fp+16383 i)":
  116443. +ildouble: 1
  116444. +ldouble: 1
  116445. +Test "Real part of: clog10 (0x1.fp+16383 + 0x1p+16383 i)":
  116446. +ildouble: 1
  116447. +ldouble: 1
  116448. +Test "Real part of: clog10 (0x10673dd0f2481p-51 + 0x7ef1d17cefbd2p-51 i)":
  116449. +double: 1
  116450. +idouble: 1
  116451. +ildouble: 1
  116452. +ldouble: 1
  116453. +Test "Real part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
  116454. +double: 1
  116455. +idouble: 1
  116456. +ildouble: 1
  116457. +ldouble: 1
  116458. +Test "Imaginary part of: clog10 (0x1367a310575591p-54 + 0x3cfcc0a0541f60p-54 i)":
  116459. +double: 1
  116460. +idouble: 1
  116461. +Test "Real part of: clog10 (0x1415bcaf2105940d49a636e98ae59p-115 + 0x7e6a150adfcd1b0921d44b31f40f4p-115 i)":
  116462. +ildouble: 1
  116463. +ldouble: 1
  116464. +Test "Imaginary part of: clog10 (0x15cfbd1990d1ffp-53 + 0x176a3973e09a9ap-53 i)":
  116465. +ildouble: 1
  116466. +ldouble: 1
  116467. +Test "Imaginary part of: clog10 (0x164c74eea876p-45 + 0x16f393482f77p-45 i)":
  116468. +double: 1
  116469. +idouble: 1
  116470. +Test "Imaginary part of: clog10 (0x1a6p-10 + 0x3a5p-10 i)":
  116471. +double: 1
  116472. +idouble: 1
  116473. +Test "Real part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
  116474. +ildouble: 1
  116475. +ldouble: 1
  116476. +Test "Imaginary part of: clog10 (0x1df515eb171a808b9e400266p-95 + 0x7c71eb0cd4688dfe98581c77p-95 i)":
  116477. +ildouble: 1
  116478. +ldouble: 1
  116479. +Test "Imaginary part of: clog10 (0x1p-1073 + 0x1p-1073 i)":
  116480. +double: 1
  116481. +idouble: 1
  116482. +Test "Imaginary part of: clog10 (0x1p-1074 + 0x1.fp+1023 i)":
  116483. +double: 1
  116484. +idouble: 1
  116485. +Test "Real part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
  116486. +double: 1
  116487. +idouble: 1
  116488. +Test "Imaginary part of: clog10 (0x1p-1074 + 0x1p-1074 i)":
  116489. +double: 1
  116490. +idouble: 1
  116491. +Test "Imaginary part of: clog10 (0x1p-1074 - 0x1.fp+1023 i)":
  116492. +double: 1
  116493. +idouble: 1
  116494. +Test "Imaginary part of: clog10 (0x1p-147 + 0x1p-147 i)":
  116495. +double: 1
  116496. +float: 1
  116497. +idouble: 1
  116498. +ifloat: 1
  116499. +Test "Imaginary part of: clog10 (0x1p-149 + 0x1.fp+127 i)":
  116500. +double: 1
  116501. +float: 1
  116502. +idouble: 1
  116503. +ifloat: 1
  116504. +Test "Imaginary part of: clog10 (0x1p-149 + 0x1p-149 i)":
  116505. +double: 1
  116506. +float: 1
  116507. +idouble: 1
  116508. +ifloat: 1
  116509. +Test "Imaginary part of: clog10 (0x1p-149 - 0x1.fp+127 i)":
  116510. +double: 1
  116511. +float: 1
  116512. +idouble: 1
  116513. +ifloat: 1
  116514. +Test "Imaginary part of: clog10 (0x1p-509 + 1.0 i)":
  116515. +double: 1
  116516. +idouble: 1
  116517. +Test "Imaginary part of: clog10 (0x1p-510 + 1.0 i)":
  116518. +double: 1
  116519. +idouble: 1
  116520. +Test "Imaginary part of: clog10 (0x1p-511 + 1.0 i)":
  116521. +double: 1
  116522. +idouble: 1
  116523. +Test "Imaginary part of: clog10 (0x1p-61 + 1.0 i)":
  116524. +double: 1
  116525. +float: 1
  116526. +idouble: 1
  116527. +ifloat: 1
  116528. +Test "Imaginary part of: clog10 (0x1p-62 + 1.0 i)":
  116529. +double: 1
  116530. +float: 1
  116531. +idouble: 1
  116532. +ifloat: 1
  116533. +Test "Imaginary part of: clog10 (0x1p-63 + 1.0 i)":
  116534. +double: 1
  116535. +float: 1
  116536. +idouble: 1
  116537. +ifloat: 1
  116538. +Test "Real part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
  116539. +double: 1
  116540. +float: 1
  116541. +idouble: 1
  116542. +ifloat: 1
  116543. +ildouble: 1
  116544. +ldouble: 1
  116545. +Test "Imaginary part of: clog10 (0x2818p-15 + 0x798fp-15 i)":
  116546. +float: 1
  116547. +ifloat: 1
  116548. +ildouble: 1
  116549. +ldouble: 1
  116550. +Test "Real part of: clog10 (0x2dd46725bp-35 + 0x7783a1284p-35 i)":
  116551. +double: 1
  116552. +idouble: 1
  116553. +ildouble: 1
  116554. +ldouble: 1
  116555. +Test "Real part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
  116556. +float: 1
  116557. +ifloat: 1
  116558. +Test "Imaginary part of: clog10 (0x2ede88p-23 + 0x771c3fp-23 i)":
  116559. +double: 1
  116560. +idouble: 1
  116561. +ildouble: 1
  116562. +ldouble: 1
  116563. +Test "Imaginary part of: clog10 (0x3f96469050f650869c2p-75 + 0x6f16b2c9c8b05988335p-75 i)":
  116564. +ildouble: 1
  116565. +ldouble: 1
  116566. +Test "Real part of: clog10 (0x4447d7175p-35 + 0x6c445e00ap-35 i)":
  116567. +double: 1
  116568. +idouble: 1
  116569. +Test "Real part of: clog10 (0x4d4ep-15 + 0x6605p-15 i)":
  116570. +ildouble: 1
  116571. +ldouble: 1
  116572. +Test "Real part of: clog10 (0x4d9c37e2b5cb4533p-63 + 0x65c98be2385a042ep-63 i)":
  116573. +ildouble: 1
  116574. +ldouble: 1
  116575. +Test "Real part of: clog10 (0x55cb6d0c83af5p-55 + 0x7fe33c0c7c4e90p-55 i)":
  116576. +ildouble: 1
  116577. +ldouble: 1
  116578. +Test "Imaginary part of: clog10 (0x5b06b680ea2ccp-52 + 0xef452b965da9fp-52 i)":
  116579. +double: 1
  116580. +idouble: 1
  116581. +ildouble: 1
  116582. +ldouble: 1
  116583. +Test "Real part of: clog10 (0x602fd5037c4792efp-64 + 0xed3e2086dcca80b8p-64 i)":
  116584. +ildouble: 1
  116585. +ldouble: 1
  116586. +Test "Real part of: clog10 (0x6241ef0da53f539f02fad67dabp-106 + 0x3fb46641182f7efd9caa769dac0p-106 i)":
  116587. +ildouble: 1
  116588. +ldouble: 1
  116589. +Test "Real part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
  116590. +ildouble: 1
  116591. +ldouble: 1
  116592. +Test "Imaginary part of: clog10 (0x659feap-24 + 0xeaf6f9p-24 i)":
  116593. +ildouble: 1
  116594. +ldouble: 1
  116595. +Test "Imaginary part of: clog10 (0x6b10b4f3520217b6p-64 + 0xe8893cbb449253a1p-64 i)":
  116596. +ildouble: 1
  116597. +ldouble: 1
  116598. +Test "Imaginary part of: clog10 (0x9b57bp-20 + 0xcb7b4p-20 i)":
  116599. +double: 1
  116600. +idouble: 1
  116601. +ildouble: 1
  116602. +ldouble: 1
  116603. +Test "Real part of: clog10 (0xdb85c467ee2aadd5f425fe0f4b8dp-114 + 0x3e83162a0f95f1dcbf97dddf410eap-114 i)":
  116604. +ildouble: 1
  116605. +ldouble: 1
  116606. +Test "Real part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
  116607. +double: 1
  116608. +idouble: 1
  116609. +Test "Imaginary part of: clog10 (0xf2p-10 + 0x3e3p-10 i)":
  116610. +double: 1
  116611. +idouble: 1
  116612. +Test "Imaginary part of: clog10 (0xfd95243681c055c2632286921092p-113 + 0x1bccabcd29ca2152860ec29e34ef7p-113 i)":
  116613. +ildouble: 2
  116614. +ldouble: 2
  116615. +Test "Imaginary part of: clog10 (0xfe961079616p-45 + 0x1bc37e09e6d1p-45 i)":
  116616. +double: 1
  116617. +idouble: 1
  116618. +ildouble: 1
  116619. +ldouble: 1
  116620. +Test "Imaginary part of: clog10 (1.0 + 0x1.234566p-10 i)":
  116621. +double: 1
  116622. +idouble: 1
  116623. +Test "Imaginary part of: clog10 (3 + inf i)":
  116624. +double: 1
  116625. +float: 1
  116626. +idouble: 1
  116627. +ifloat: 1
  116628. +Test "Imaginary part of: clog10 (3 - inf i)":
  116629. +double: 1
  116630. +float: 1
  116631. +idouble: 1
  116632. +ifloat: 1
  116633. +Test "Imaginary part of: clog10 (inf + inf i)":
  116634. +double: 1
  116635. +float: 1
  116636. +idouble: 1
  116637. +ifloat: 1
  116638. +Test "Imaginary part of: clog10 (inf - inf i)":
  116639. +double: 1
  116640. +float: 1
  116641. +idouble: 1
  116642. +ifloat: 1
  116643. +
  116644. +# cos
  116645. +Test "cos (0x1p+120)":
  116646. +float: 1
  116647. +ifloat: 1
  116648. +Test "cos (0x1p+127)":
  116649. +float: 1
  116650. +ifloat: 1
  116651. +Test "cos (M_PI_6l * 2.0)":
  116652. +double: 1
  116653. +idouble: 1
  116654. +Test "cos (M_PI_6l * 4.0)":
  116655. +double: 2
  116656. +float: 1
  116657. +idouble: 2
  116658. +ifloat: 1
  116659. +ildouble: 1
  116660. +ldouble: 1
  116661. +
  116662. +# cos_downward
  116663. +Test "cos_downward (1)":
  116664. +float: 1
  116665. +ifloat: 1
  116666. +Test "cos_downward (2)":
  116667. +float: 1
  116668. +ifloat: 1
  116669. +Test "cos_downward (3)":
  116670. +float: 1
  116671. +ifloat: 1
  116672. +Test "cos_downward (4)":
  116673. +float: 1
  116674. +ifloat: 1
  116675. +Test "cos_downward (5)":
  116676. +float: 1
  116677. +ifloat: 1
  116678. +Test "cos_downward (7)":
  116679. +float: 1
  116680. +ifloat: 1
  116681. +Test "cos_downward (8)":
  116682. +float: 1
  116683. +ifloat: 1
  116684. +
  116685. +# cos_tonearest
  116686. +Test "cos_tonearest (7)":
  116687. +float: 1
  116688. +ifloat: 1
  116689. +
  116690. +# cos_towardzero
  116691. +Test "cos_towardzero (2)":
  116692. +float: 1
  116693. +ifloat: 1
  116694. +Test "cos_towardzero (3)":
  116695. +float: 1
  116696. +ifloat: 1
  116697. +Test "cos_towardzero (5)":
  116698. +float: 1
  116699. +ifloat: 1
  116700. +Test "cos_towardzero (7)":
  116701. +float: 1
  116702. +ifloat: 1
  116703. +Test "cos_towardzero (8)":
  116704. +float: 1
  116705. +ifloat: 1
  116706. +
  116707. +# cos_upward
  116708. +Test "cos_upward (10)":
  116709. +float: 1
  116710. +ifloat: 1
  116711. +Test "cos_upward (6)":
  116712. +float: 1
  116713. +ifloat: 1
  116714. +Test "cos_upward (7)":
  116715. +float: 1
  116716. +ifloat: 1
  116717. +Test "cos_upward (9)":
  116718. +float: 2
  116719. +ifloat: 2
  116720. +
  116721. +# cosh_downward
  116722. +Test "cosh_downward (22)":
  116723. +float: 1
  116724. +ifloat: 1
  116725. +Test "cosh_downward (23)":
  116726. +float: 1
  116727. +ifloat: 1
  116728. +Test "cosh_downward (24)":
  116729. +float: 1
  116730. +ifloat: 1
  116731. +
  116732. +# cosh_tonearest
  116733. +Test "cosh_tonearest (22)":
  116734. +ildouble: 1
  116735. +ldouble: 1
  116736. +
  116737. +# cosh_towardzero
  116738. +Test "cosh_towardzero (22)":
  116739. +float: 1
  116740. +ifloat: 1
  116741. +Test "cosh_towardzero (23)":
  116742. +float: 1
  116743. +ifloat: 1
  116744. +Test "cosh_towardzero (24)":
  116745. +float: 1
  116746. +ifloat: 1
  116747. +
  116748. +# cpow
  116749. +Test "Real part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
  116750. +float: 1
  116751. +ifloat: 1
  116752. +Test "Imaginary part of: cpow (0.75 + 1.25 i, 0.0 + 1.0 i)":
  116753. +ildouble: 1
  116754. +ldouble: 1
  116755. +Test "Real part of: cpow (0.75 + 1.25 i, 0.75 + 1.25 i)":
  116756. +double: 1
  116757. +float: 4
  116758. +idouble: 1
  116759. +ifloat: 4
  116760. +ildouble: 4
  116761. +ldouble: 4
  116762. +Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 0.0 i)":
  116763. +ildouble: 1
  116764. +ldouble: 1
  116765. +Test "Real part of: cpow (0.75 + 1.25 i, 1.0 + 1.0 i)":
  116766. +double: 2
  116767. +float: 3
  116768. +idouble: 2
  116769. +ifloat: 3
  116770. +ildouble: 2
  116771. +ldouble: 2
  116772. +Test "Real part of: cpow (2 + 0 i, 10 + 0 i)":
  116773. +ildouble: 2
  116774. +ldouble: 2
  116775. +Test "Real part of: cpow (2 + 3 i, 4 + 0 i)":
  116776. +double: 1
  116777. +float: 4
  116778. +idouble: 1
  116779. +ifloat: 4
  116780. +ildouble: 2
  116781. +ldouble: 2
  116782. +Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i)":
  116783. +float: 2
  116784. +ifloat: 2
  116785. +
  116786. +# csin
  116787. +Test "Real part of: csin (-0.75 + 11357.25 i)":
  116788. +ildouble: 1
  116789. +ldouble: 1
  116790. +Test "Real part of: csin (-0.75 + 710.5 i)":
  116791. +double: 1
  116792. +idouble: 1
  116793. +ildouble: 1
  116794. +ldouble: 1
  116795. +Test "Real part of: csin (-0.75 + 89.5 i)":
  116796. +float: 1
  116797. +ifloat: 1
  116798. +ildouble: 1
  116799. +ldouble: 1
  116800. +Test "Imaginary part of: csin (-0.75 + 89.5 i)":
  116801. +ildouble: 1
  116802. +ldouble: 1
  116803. +Test "Real part of: csin (-0.75 - 11357.25 i)":
  116804. +ildouble: 1
  116805. +ldouble: 1
  116806. +Test "Real part of: csin (-0.75 - 710.5 i)":
  116807. +double: 1
  116808. +idouble: 1
  116809. +ildouble: 1
  116810. +ldouble: 1
  116811. +Test "Real part of: csin (-0.75 - 89.5 i)":
  116812. +float: 1
  116813. +ifloat: 1
  116814. +ildouble: 1
  116815. +ldouble: 1
  116816. +Test "Imaginary part of: csin (-0.75 - 89.5 i)":
  116817. +ildouble: 1
  116818. +ldouble: 1
  116819. +Test "Imaginary part of: csin (-2 - 3 i)":
  116820. +ildouble: 1
  116821. +ldouble: 1
  116822. +Test "Real part of: csin (0.75 + 1.25 i)":
  116823. +ildouble: 1
  116824. +ldouble: 1
  116825. +Test "Real part of: csin (0.75 + 11357.25 i)":
  116826. +ildouble: 1
  116827. +ldouble: 1
  116828. +Test "Real part of: csin (0.75 + 710.5 i)":
  116829. +double: 1
  116830. +idouble: 1
  116831. +ildouble: 1
  116832. +ldouble: 1
  116833. +Test "Real part of: csin (0.75 + 89.5 i)":
  116834. +float: 1
  116835. +ifloat: 1
  116836. +ildouble: 1
  116837. +ldouble: 1
  116838. +Test "Imaginary part of: csin (0.75 + 89.5 i)":
  116839. +ildouble: 1
  116840. +ldouble: 1
  116841. +Test "Real part of: csin (0.75 - 11357.25 i)":
  116842. +ildouble: 1
  116843. +ldouble: 1
  116844. +Test "Real part of: csin (0.75 - 710.5 i)":
  116845. +double: 1
  116846. +idouble: 1
  116847. +ildouble: 1
  116848. +ldouble: 1
  116849. +Test "Real part of: csin (0.75 - 89.5 i)":
  116850. +float: 1
  116851. +ifloat: 1
  116852. +ildouble: 1
  116853. +ldouble: 1
  116854. +Test "Imaginary part of: csin (0.75 - 89.5 i)":
  116855. +ildouble: 1
  116856. +ldouble: 1
  116857. +Test "Real part of: csin (0x1p-1074 + 1440 i)":
  116858. +double: 1
  116859. +idouble: 1
  116860. +Test "Real part of: csin (0x1p-16434 + 22730 i)":
  116861. +ildouble: 1
  116862. +ldouble: 1
  116863. +
  116864. +# csinh
  116865. +Test "Imaginary part of: csinh (-11357.25 + 0.75 i)":
  116866. +ildouble: 1
  116867. +ldouble: 1
  116868. +Test "Imaginary part of: csinh (-11357.25 - 0.75 i)":
  116869. +ildouble: 1
  116870. +ldouble: 1
  116871. +Test "Real part of: csinh (-2 - 3 i)":
  116872. +ildouble: 1
  116873. +ldouble: 1
  116874. +Test "Imaginary part of: csinh (-2 - 3 i)":
  116875. +double: 1
  116876. +idouble: 1
  116877. +Test "Imaginary part of: csinh (-710.5 + 0.75 i)":
  116878. +double: 1
  116879. +idouble: 1
  116880. +ildouble: 1
  116881. +ldouble: 1
  116882. +Test "Imaginary part of: csinh (-710.5 - 0.75 i)":
  116883. +double: 1
  116884. +idouble: 1
  116885. +ildouble: 1
  116886. +ldouble: 1
  116887. +Test "Real part of: csinh (-89.5 + 0.75 i)":
  116888. +ildouble: 1
  116889. +ldouble: 1
  116890. +Test "Imaginary part of: csinh (-89.5 + 0.75 i)":
  116891. +float: 1
  116892. +ifloat: 1
  116893. +ildouble: 1
  116894. +ldouble: 1
  116895. +Test "Real part of: csinh (-89.5 - 0.75 i)":
  116896. +ildouble: 1
  116897. +ldouble: 1
  116898. +Test "Imaginary part of: csinh (-89.5 - 0.75 i)":
  116899. +float: 1
  116900. +ifloat: 1
  116901. +ildouble: 1
  116902. +ldouble: 1
  116903. +Test "Real part of: csinh (0.75 + 1.25 i)":
  116904. +float: 1
  116905. +ifloat: 1
  116906. +Test "Imaginary part of: csinh (0.75 + 1.25 i)":
  116907. +float: 1
  116908. +ifloat: 1
  116909. +Test "Imaginary part of: csinh (11357.25 + 0.75 i)":
  116910. +ildouble: 1
  116911. +ldouble: 1
  116912. +Test "Imaginary part of: csinh (11357.25 - 0.75 i)":
  116913. +ildouble: 1
  116914. +ldouble: 1
  116915. +Test "Imaginary part of: csinh (1440 + 0x1p-1074 i)":
  116916. +double: 1
  116917. +idouble: 1
  116918. +Test "Imaginary part of: csinh (22730 + 0x1p-16434 i)":
  116919. +ildouble: 1
  116920. +ldouble: 1
  116921. +Test "Imaginary part of: csinh (710.5 + 0.75 i)":
  116922. +double: 1
  116923. +idouble: 1
  116924. +ildouble: 1
  116925. +ldouble: 1
  116926. +Test "Imaginary part of: csinh (710.5 - 0.75 i)":
  116927. +double: 1
  116928. +idouble: 1
  116929. +ildouble: 1
  116930. +ldouble: 1
  116931. +Test "Real part of: csinh (89.5 + 0.75 i)":
  116932. +ildouble: 1
  116933. +ldouble: 1
  116934. +Test "Imaginary part of: csinh (89.5 + 0.75 i)":
  116935. +float: 1
  116936. +ifloat: 1
  116937. +ildouble: 1
  116938. +ldouble: 1
  116939. +Test "Real part of: csinh (89.5 - 0.75 i)":
  116940. +ildouble: 1
  116941. +ldouble: 1
  116942. +Test "Imaginary part of: csinh (89.5 - 0.75 i)":
  116943. +float: 1
  116944. +ifloat: 1
  116945. +ildouble: 1
  116946. +ldouble: 1
  116947. +
  116948. +# csqrt
  116949. +Test "Real part of: csqrt (-0x1.0000000000000000000000000001p-16382 - 0x1.0000000000000000000000000001p-16382 i)":
  116950. +ildouble: 1
  116951. +ldouble: 1
  116952. +Test "Real part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
  116953. +ildouble: 1
  116954. +ldouble: 1
  116955. +Test "Imaginary part of: csqrt (-0x1.0000000000000002p-16382 - 0x1.0000000000000002p-16382 i)":
  116956. +ildouble: 1
  116957. +ldouble: 1
  116958. +Test "Real part of: csqrt (-0x1.0000000000001p-1022 - 0x1.0000000000001p-1022 i)":
  116959. +ildouble: 1
  116960. +ldouble: 1
  116961. +Test "Real part of: csqrt (-0x1.000002p-126 - 0x1.000002p-126 i)":
  116962. +double: 1
  116963. +idouble: 1
  116964. +Test "Real part of: csqrt (-2 + 3 i)":
  116965. +float: 1
  116966. +ifloat: 1
  116967. +ildouble: 1
  116968. +ldouble: 1
  116969. +Test "Real part of: csqrt (-2 - 3 i)":
  116970. +float: 1
  116971. +ifloat: 1
  116972. +ildouble: 1
  116973. +ldouble: 1
  116974. +Test "Imaginary part of: csqrt (0.75 + 1.25 i)":
  116975. +ildouble: 1
  116976. +ldouble: 1
  116977. +Test "Imaginary part of: csqrt (0x1.0000000000000000000000000001p-16382 + 0x1.0000000000000000000000000001p-16382 i)":
  116978. +ildouble: 1
  116979. +ldouble: 1
  116980. +Test "Real part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
  116981. +ildouble: 1
  116982. +ldouble: 1
  116983. +Test "Imaginary part of: csqrt (0x1.0000000000000002p-16382 + 0x1.0000000000000002p-16382 i)":
  116984. +ildouble: 1
  116985. +ldouble: 1
  116986. +Test "Imaginary part of: csqrt (0x1.0000000000001p-1022 + 0x1.0000000000001p-1022 i)":
  116987. +ildouble: 1
  116988. +ldouble: 1
  116989. +Test "Imaginary part of: csqrt (0x1.000002p-126 + 0x1.000002p-126 i)":
  116990. +double: 1
  116991. +idouble: 1
  116992. +Test "Imaginary part of: csqrt (0x1.fffffep+127 + 1.0 i)":
  116993. +float: 1
  116994. +ifloat: 1
  116995. +Test "Real part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  116996. +double: 1
  116997. +idouble: 1
  116998. +Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1.fffffffffffffp+1023 i)":
  116999. +double: 1
  117000. +idouble: 1
  117001. +ildouble: 1
  117002. +ldouble: 1
  117003. +Test "Imaginary part of: csqrt (0x1.fffffffffffffp+1023 + 0x1p+1023 i)":
  117004. +double: 1
  117005. +idouble: 1
  117006. +ildouble: 1
  117007. +ldouble: 1
  117008. +Test "Real part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
  117009. +ildouble: 1
  117010. +ldouble: 1
  117011. +Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1.fp+16383 i)":
  117012. +ildouble: 1
  117013. +ldouble: 1
  117014. +Test "Imaginary part of: csqrt (0x1.fp+16383 + 0x1p+16383 i)":
  117015. +ildouble: 1
  117016. +ldouble: 1
  117017. +Test "Imaginary part of: csqrt (0x1p-16440 + 0x1p-16441 i)":
  117018. +ildouble: 1
  117019. +ldouble: 1
  117020. +
  117021. +# ctan
  117022. +Test "Real part of: ctan (-2 - 3 i)":
  117023. +float: 1
  117024. +ifloat: 1
  117025. +Test "Imaginary part of: ctan (-2 - 3 i)":
  117026. +double: 1
  117027. +idouble: 1
  117028. +ildouble: 1
  117029. +ldouble: 1
  117030. +Test "Real part of: ctan (0.75 + 1.25 i)":
  117031. +ildouble: 1
  117032. +ldouble: 1
  117033. +Test "Imaginary part of: ctan (0.75 + 1.25 i)":
  117034. +double: 1
  117035. +idouble: 1
  117036. +ildouble: 2
  117037. +ldouble: 2
  117038. +Test "Real part of: ctan (0x1p1023 + 1 i)":
  117039. +double: 1
  117040. +idouble: 1
  117041. +Test "Imaginary part of: ctan (0x1p1023 + 1 i)":
  117042. +ildouble: 2
  117043. +ldouble: 2
  117044. +Test "Real part of: ctan (0x1p127 + 1 i)":
  117045. +ildouble: 2
  117046. +ldouble: 2
  117047. +Test "Imaginary part of: ctan (0x1p127 + 1 i)":
  117048. +double: 1
  117049. +idouble: 1
  117050. +ildouble: 1
  117051. +ldouble: 1
  117052. +Test "Real part of: ctan (0x1p16383 + 1 i)":
  117053. +ildouble: 1
  117054. +ldouble: 1
  117055. +Test "Imaginary part of: ctan (0x1p16383 + 1 i)":
  117056. +ildouble: 2
  117057. +ldouble: 2
  117058. +Test "Real part of: ctan (0x3.243f6cp-1 + 0 i)":
  117059. +float: 1
  117060. +ifloat: 1
  117061. +ildouble: 1
  117062. +ldouble: 1
  117063. +Test "Real part of: ctan (1 + 355 i)":
  117064. +ildouble: 2
  117065. +ldouble: 2
  117066. +Test "Real part of: ctan (1 + 365 i)":
  117067. +ildouble: 1
  117068. +ldouble: 1
  117069. +Test "Real part of: ctan (1 + 45 i)":
  117070. +ildouble: 2
  117071. +ldouble: 2
  117072. +Test "Real part of: ctan (1 + 47 i)":
  117073. +ildouble: 1
  117074. +ldouble: 1
  117075. +
  117076. +# ctan_downward
  117077. +Test "Real part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
  117078. +double: 2
  117079. +float: 1
  117080. +idouble: 2
  117081. +ifloat: 1
  117082. +Test "Imaginary part of: ctan_downward (0x1.921fb6p+0 + 0x1p-149 i)":
  117083. +float: 1
  117084. +ifloat: 1
  117085. +
  117086. +# ctan_tonearest
  117087. +Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d1846ap+0 + 0x1p-16445 i)":
  117088. +ildouble: 1
  117089. +ldouble: 1
  117090. +Test "Real part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
  117091. +ildouble: 3
  117092. +ldouble: 3
  117093. +Test "Imaginary part of: ctan_tonearest (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
  117094. +ildouble: 3
  117095. +ldouble: 3
  117096. +Test "Real part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
  117097. +float: 1
  117098. +ifloat: 1
  117099. +ildouble: 1
  117100. +ldouble: 1
  117101. +Test "Imaginary part of: ctan_tonearest (0x1.921fb6p+0 + 0x1p-149 i)":
  117102. +float: 1
  117103. +ifloat: 1
  117104. +ildouble: 2
  117105. +ldouble: 2
  117106. +
  117107. +# ctan_towardzero
  117108. +Test "Real part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
  117109. +float: 1
  117110. +ifloat: 1
  117111. +Test "Imaginary part of: ctan_towardzero (0x1.921fb6p+0 + 0x1p-149 i)":
  117112. +float: 1
  117113. +ifloat: 1
  117114. +
  117115. +# ctan_upward
  117116. +Test "Real part of: ctan_upward (0x1.921fb54442d18p+0 + 0x1p-1074 i)":
  117117. +double: 1
  117118. +idouble: 1
  117119. +Test "Real part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
  117120. +double: 2
  117121. +float: 1
  117122. +idouble: 2
  117123. +ifloat: 1
  117124. +Test "Imaginary part of: ctan_upward (0x1.921fb6p+0 + 0x1p-149 i)":
  117125. +double: 1
  117126. +float: 2
  117127. +idouble: 1
  117128. +ifloat: 2
  117129. +
  117130. +# ctanh
  117131. +Test "Real part of: ctanh (-2 - 3 i)":
  117132. +double: 1
  117133. +float: 1
  117134. +idouble: 1
  117135. +ifloat: 1
  117136. +Test "Imaginary part of: ctanh (-2 - 3 i)":
  117137. +double: 1
  117138. +float: 1
  117139. +idouble: 1
  117140. +ifloat: 1
  117141. +Test "Imaginary part of: ctanh (0 + 0x3.243f6cp-1 i)":
  117142. +float: 1
  117143. +ifloat: 1
  117144. +ildouble: 1
  117145. +ldouble: 1
  117146. +Test "Imaginary part of: ctanh (0 + pi/4 i)":
  117147. +double: 1
  117148. +float: 1
  117149. +idouble: 1
  117150. +ifloat: 1
  117151. +ildouble: 1
  117152. +ldouble: 1
  117153. +Test "Real part of: ctanh (0.75 + 1.25 i)":
  117154. +double: 1
  117155. +float: 1
  117156. +idouble: 1
  117157. +ifloat: 1
  117158. +Test "Imaginary part of: ctanh (0.75 + 1.25 i)":
  117159. +float: 2
  117160. +ifloat: 2
  117161. +Test "Real part of: ctanh (1 + 0x1p1023 i)":
  117162. +ildouble: 2
  117163. +ldouble: 2
  117164. +Test "Imaginary part of: ctanh (1 + 0x1p1023 i)":
  117165. +double: 1
  117166. +idouble: 1
  117167. +Test "Real part of: ctanh (1 + 0x1p127 i)":
  117168. +double: 1
  117169. +idouble: 1
  117170. +ildouble: 1
  117171. +ldouble: 1
  117172. +Test "Imaginary part of: ctanh (1 + 0x1p127 i)":
  117173. +ildouble: 2
  117174. +ldouble: 2
  117175. +Test "Real part of: ctanh (1 + 0x1p16383 i)":
  117176. +ildouble: 2
  117177. +ldouble: 2
  117178. +Test "Imaginary part of: ctanh (1 + 0x1p16383 i)":
  117179. +ildouble: 1
  117180. +ldouble: 1
  117181. +Test "Imaginary part of: ctanh (355 + 1 i)":
  117182. +ildouble: 2
  117183. +ldouble: 2
  117184. +Test "Imaginary part of: ctanh (365 + 1 i)":
  117185. +ildouble: 1
  117186. +ldouble: 1
  117187. +Test "Imaginary part of: ctanh (45 + 1 i)":
  117188. +ildouble: 2
  117189. +ldouble: 2
  117190. +Test "Imaginary part of: ctanh (47 + 1 i)":
  117191. +ildouble: 1
  117192. +ldouble: 1
  117193. +
  117194. +# ctanh_downward
  117195. +Test "Real part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
  117196. +float: 1
  117197. +ifloat: 1
  117198. +Test "Imaginary part of: ctanh_downward (0x1p-149 + 0x1.921fb6p+0 i)":
  117199. +double: 2
  117200. +float: 1
  117201. +idouble: 2
  117202. +ifloat: 1
  117203. +
  117204. +# ctanh_tonearest
  117205. +Test "Real part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
  117206. +ildouble: 3
  117207. +ldouble: 3
  117208. +Test "Imaginary part of: ctanh_tonearest (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
  117209. +ildouble: 3
  117210. +ldouble: 3
  117211. +Test "Real part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
  117212. +float: 1
  117213. +ifloat: 1
  117214. +ildouble: 2
  117215. +ldouble: 2
  117216. +Test "Imaginary part of: ctanh_tonearest (0x1p-149 + 0x1.921fb6p+0 i)":
  117217. +float: 1
  117218. +ifloat: 1
  117219. +ildouble: 1
  117220. +ldouble: 1
  117221. +Test "Real part of: ctanh_tonearest (0x1p-16445 + 0x1.921fb54442d1846ap+0 i)":
  117222. +ildouble: 1
  117223. +ldouble: 1
  117224. +
  117225. +# ctanh_towardzero
  117226. +Test "Real part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
  117227. +float: 1
  117228. +ifloat: 1
  117229. +Test "Imaginary part of: ctanh_towardzero (0x1p-149 + 0x1.921fb6p+0 i)":
  117230. +float: 1
  117231. +ifloat: 1
  117232. +
  117233. +# ctanh_upward
  117234. +Test "Imaginary part of: ctanh_upward (0x1p-1074 + 0x1.921fb54442d18p+0 i)":
  117235. +double: 1
  117236. +idouble: 1
  117237. +Test "Real part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
  117238. +double: 1
  117239. +float: 2
  117240. +idouble: 1
  117241. +ifloat: 2
  117242. +Test "Imaginary part of: ctanh_upward (0x1p-149 + 0x1.921fb6p+0 i)":
  117243. +double: 2
  117244. +float: 1
  117245. +idouble: 2
  117246. +ifloat: 1
  117247. +
  117248. +# erf
  117249. +Test "erf (1.25)":
  117250. +double: 1
  117251. +idouble: 1
  117252. +
  117253. +# erfc
  117254. +Test "erfc (0x1.f7303cp+1)":
  117255. +double: 1
  117256. +idouble: 1
  117257. +Test "erfc (0x1.ffa002p+2)":
  117258. +float: 1
  117259. +ifloat: 1
  117260. +ildouble: 1
  117261. +ldouble: 1
  117262. +Test "erfc (0x1.ffffc8p+2)":
  117263. +ildouble: 1
  117264. +ldouble: 1
  117265. +Test "erfc (2.0)":
  117266. +double: 1
  117267. +idouble: 1
  117268. +Test "erfc (27.0)":
  117269. +ildouble: 1
  117270. +ldouble: 1
  117271. +Test "erfc (4.125)":
  117272. +double: 1
  117273. +idouble: 1
  117274. +
  117275. +# exp10
  117276. +Test "exp10 (-1)":
  117277. +double: 1
  117278. +idouble: 1
  117279. +Test "exp10 (-305)":
  117280. +double: 1
  117281. +idouble: 1
  117282. +Test "exp10 (-36)":
  117283. +double: 1
  117284. +idouble: 1
  117285. +ildouble: 1
  117286. +ldouble: 1
  117287. +Test "exp10 (3)":
  117288. +double: 1
  117289. +idouble: 1
  117290. +Test "exp10 (36)":
  117291. +double: 1
  117292. +idouble: 1
  117293. +Test "exp10 (4932)":
  117294. +ildouble: 1
  117295. +ldouble: 1
  117296. +
  117297. +# exp2
  117298. +Test "exp2 (100.5)":
  117299. +ildouble: 1
  117300. +ldouble: 1
  117301. +
  117302. +# exp_downward
  117303. +Test "exp_downward (2)":
  117304. +float: 1
  117305. +ifloat: 1
  117306. +Test "exp_downward (3)":
  117307. +float: 1
  117308. +ifloat: 1
  117309. +
  117310. +# exp_towardzero
  117311. +Test "exp_towardzero (2)":
  117312. +float: 1
  117313. +ifloat: 1
  117314. +Test "exp_towardzero (3)":
  117315. +float: 1
  117316. +ifloat: 1
  117317. +
  117318. +# exp_upward
  117319. +Test "exp_upward (1)":
  117320. +float: 1
  117321. +ifloat: 1
  117322. +
  117323. +# expm1
  117324. +Test "expm1 (-79.0)":
  117325. +ildouble: 1
  117326. +ldouble: 1
  117327. +Test "expm1 (0.75)":
  117328. +double: 1
  117329. +idouble: 1
  117330. +Test "expm1 (1)":
  117331. +double: 1
  117332. +float: 1
  117333. +idouble: 1
  117334. +ifloat: 1
  117335. +ildouble: 1
  117336. +ldouble: 1
  117337. +Test "expm1 (500.0)":
  117338. +double: 1
  117339. +idouble: 1
  117340. +
  117341. +# gamma
  117342. +Test "gamma (-0.5)":
  117343. +ildouble: 1
  117344. +ldouble: 1
  117345. +Test "gamma (0.7)":
  117346. +double: 1
  117347. +float: 1
  117348. +idouble: 1
  117349. +ifloat: 1
  117350. +ildouble: 1
  117351. +ldouble: 1
  117352. +Test "gamma (1.2)":
  117353. +double: 1
  117354. +float: 2
  117355. +idouble: 1
  117356. +ifloat: 2
  117357. +ildouble: 1
  117358. +ldouble: 1
  117359. +
  117360. +# hypot
  117361. +Test "hypot (-0.7, -12.4)":
  117362. +float: 1
  117363. +ifloat: 1
  117364. +Test "hypot (-0.7, 12.4)":
  117365. +float: 1
  117366. +ifloat: 1
  117367. +Test "hypot (-12.4, -0.7)":
  117368. +float: 1
  117369. +ifloat: 1
  117370. +Test "hypot (-12.4, 0.7)":
  117371. +float: 1
  117372. +ifloat: 1
  117373. +Test "hypot (0.7, -12.4)":
  117374. +float: 1
  117375. +ifloat: 1
  117376. +Test "hypot (0.7, 12.4)":
  117377. +float: 1
  117378. +ifloat: 1
  117379. +Test "hypot (12.4, -0.7)":
  117380. +float: 1
  117381. +ifloat: 1
  117382. +Test "hypot (12.4, 0.7)":
  117383. +float: 1
  117384. +ifloat: 1
  117385. +
  117386. +# j0
  117387. +Test "j0 (-0x1.001000001p+593)":
  117388. +ildouble: 1
  117389. +ldouble: 1
  117390. +Test "j0 (-4.0)":
  117391. +double: 1
  117392. +float: 1
  117393. +idouble: 1
  117394. +ifloat: 1
  117395. +Test "j0 (0.75)":
  117396. +float: 1
  117397. +ifloat: 1
  117398. +Test "j0 (0x1.d7ce3ap+107)":
  117399. +float: 2
  117400. +ifloat: 2
  117401. +ildouble: 1
  117402. +ldouble: 1
  117403. +Test "j0 (0x1p1023)":
  117404. +ildouble: 1
  117405. +ldouble: 1
  117406. +Test "j0 (0x1p16383)":
  117407. +ildouble: 2
  117408. +ldouble: 2
  117409. +Test "j0 (10.0)":
  117410. +double: 2
  117411. +float: 1
  117412. +idouble: 2
  117413. +ifloat: 1
  117414. +ildouble: 2
  117415. +ldouble: 2
  117416. +Test "j0 (2.0)":
  117417. +float: 2
  117418. +ifloat: 2
  117419. +ildouble: 2
  117420. +ldouble: 2
  117421. +Test "j0 (4.0)":
  117422. +double: 1
  117423. +float: 1
  117424. +idouble: 1
  117425. +ifloat: 1
  117426. +Test "j0 (8.0)":
  117427. +float: 1
  117428. +ifloat: 1
  117429. +ildouble: 1
  117430. +ldouble: 1
  117431. +
  117432. +# j1
  117433. +Test "j1 (-1.0)":
  117434. +ildouble: 1
  117435. +ldouble: 1
  117436. +Test "j1 (0.75)":
  117437. +ildouble: 1
  117438. +ldouble: 1
  117439. +Test "j1 (0x1.3ffp+74)":
  117440. +double: 1
  117441. +idouble: 1
  117442. +ildouble: 1
  117443. +ldouble: 1
  117444. +Test "j1 (0x1.ff00000000002p+840)":
  117445. +double: 1
  117446. +idouble: 1
  117447. +ildouble: 1
  117448. +ldouble: 1
  117449. +Test "j1 (0x1p1023)":
  117450. +ildouble: 1
  117451. +ldouble: 1
  117452. +Test "j1 (0x1p16382)":
  117453. +ildouble: 1
  117454. +ldouble: 1
  117455. +Test "j1 (0x1p16383)":
  117456. +ildouble: 2
  117457. +ldouble: 2
  117458. +Test "j1 (1.0)":
  117459. +ildouble: 1
  117460. +ldouble: 1
  117461. +Test "j1 (10.0)":
  117462. +float: 2
  117463. +ifloat: 2
  117464. +ildouble: 2
  117465. +ldouble: 2
  117466. +Test "j1 (2.0)":
  117467. +double: 1
  117468. +idouble: 1
  117469. +Test "j1 (8.0)":
  117470. +double: 1
  117471. +idouble: 1
  117472. +ildouble: 4
  117473. +ldouble: 4
  117474. +
  117475. +# jn
  117476. +Test "jn (0, -4.0)":
  117477. +double: 1
  117478. +float: 1
  117479. +idouble: 1
  117480. +ifloat: 1
  117481. +Test "jn (0, 0.75)":
  117482. +float: 1
  117483. +ifloat: 1
  117484. +Test "jn (0, 10.0)":
  117485. +double: 2
  117486. +float: 1
  117487. +idouble: 2
  117488. +ifloat: 1
  117489. +ildouble: 2
  117490. +ldouble: 2
  117491. +Test "jn (0, 2.0)":
  117492. +float: 2
  117493. +ifloat: 2
  117494. +ildouble: 2
  117495. +ldouble: 2
  117496. +Test "jn (0, 4.0)":
  117497. +double: 1
  117498. +float: 1
  117499. +idouble: 1
  117500. +ifloat: 1
  117501. +Test "jn (0, 8.0)":
  117502. +float: 1
  117503. +ifloat: 1
  117504. +ildouble: 1
  117505. +ldouble: 1
  117506. +Test "jn (1, -1.0)":
  117507. +ildouble: 1
  117508. +ldouble: 1
  117509. +Test "jn (1, 0.75)":
  117510. +ildouble: 1
  117511. +ldouble: 1
  117512. +Test "jn (1, 1.0)":
  117513. +ildouble: 1
  117514. +ldouble: 1
  117515. +Test "jn (1, 10.0)":
  117516. +float: 2
  117517. +ifloat: 2
  117518. +ildouble: 2
  117519. +ldouble: 2
  117520. +Test "jn (1, 2.0)":
  117521. +double: 1
  117522. +idouble: 1
  117523. +Test "jn (1, 8.0)":
  117524. +double: 1
  117525. +idouble: 1
  117526. +ildouble: 4
  117527. +ldouble: 4
  117528. +Test "jn (10, -1.0)":
  117529. +ildouble: 1
  117530. +ldouble: 1
  117531. +Test "jn (10, 0.125)":
  117532. +double: 1
  117533. +float: 1
  117534. +idouble: 1
  117535. +ifloat: 1
  117536. +ildouble: 1
  117537. +ldouble: 1
  117538. +Test "jn (10, 0.75)":
  117539. +double: 1
  117540. +float: 1
  117541. +idouble: 1
  117542. +ifloat: 1
  117543. +ildouble: 1
  117544. +ldouble: 1
  117545. +Test "jn (10, 1.0)":
  117546. +ildouble: 1
  117547. +ldouble: 1
  117548. +Test "jn (10, 10.0)":
  117549. +double: 4
  117550. +float: 3
  117551. +idouble: 4
  117552. +ifloat: 3
  117553. +ildouble: 2
  117554. +ldouble: 2
  117555. +Test "jn (10, 2.0)":
  117556. +double: 1
  117557. +float: 2
  117558. +idouble: 1
  117559. +ifloat: 2
  117560. +Test "jn (2, 0x1.ffff62p+99)":
  117561. +double: 2
  117562. +float: 2
  117563. +idouble: 2
  117564. +ifloat: 2
  117565. +Test "jn (2, 2.4048255576957729)":
  117566. +double: 2
  117567. +float: 1
  117568. +idouble: 2
  117569. +ifloat: 1
  117570. +ildouble: 1
  117571. +ldouble: 1
  117572. +Test "jn (3, 0.125)":
  117573. +double: 1
  117574. +float: 1
  117575. +idouble: 1
  117576. +ifloat: 1
  117577. +Test "jn (3, 0.75)":
  117578. +double: 1
  117579. +float: 1
  117580. +idouble: 1
  117581. +ifloat: 1
  117582. +Test "jn (3, 10.0)":
  117583. +double: 3
  117584. +float: 1
  117585. +idouble: 3
  117586. +ifloat: 1
  117587. +ildouble: 2
  117588. +ldouble: 2
  117589. +Test "jn (3, 2.0)":
  117590. +float: 1
  117591. +ifloat: 1
  117592. +Test "jn (3, 2.4048255576957729)":
  117593. +double: 3
  117594. +idouble: 3
  117595. +ildouble: 1
  117596. +ldouble: 1
  117597. +Test "jn (4, 2.4048255576957729)":
  117598. +double: 1
  117599. +idouble: 1
  117600. +ildouble: 1
  117601. +ldouble: 1
  117602. +Test "jn (5, 2.4048255576957729)":
  117603. +double: 3
  117604. +float: 1
  117605. +idouble: 3
  117606. +ifloat: 1
  117607. +ildouble: 2
  117608. +ldouble: 2
  117609. +Test "jn (6, 2.4048255576957729)":
  117610. +double: 4
  117611. +float: 3
  117612. +idouble: 4
  117613. +ifloat: 3
  117614. +ildouble: 5
  117615. +ldouble: 5
  117616. +Test "jn (7, 2.4048255576957729)":
  117617. +double: 3
  117618. +float: 5
  117619. +idouble: 3
  117620. +ifloat: 5
  117621. +ildouble: 3
  117622. +ldouble: 3
  117623. +Test "jn (8, 2.4048255576957729)":
  117624. +double: 3
  117625. +float: 2
  117626. +idouble: 3
  117627. +ifloat: 2
  117628. +ildouble: 8
  117629. +ldouble: 8
  117630. +Test "jn (9, 2.4048255576957729)":
  117631. +double: 1
  117632. +float: 2
  117633. +idouble: 1
  117634. +ifloat: 2
  117635. +ildouble: 3
  117636. +ldouble: 3
  117637. +
  117638. +# lgamma
  117639. +Test "lgamma (-0.5)":
  117640. +ildouble: 1
  117641. +ldouble: 1
  117642. +Test "lgamma (0.7)":
  117643. +double: 1
  117644. +float: 1
  117645. +idouble: 1
  117646. +ifloat: 1
  117647. +ildouble: 1
  117648. +ldouble: 1
  117649. +Test "lgamma (1.2)":
  117650. +double: 1
  117651. +float: 2
  117652. +idouble: 1
  117653. +ifloat: 2
  117654. +ildouble: 1
  117655. +ldouble: 1
  117656. +
  117657. +# log10
  117658. +Test "log10 (0.75)":
  117659. +double: 1
  117660. +float: 2
  117661. +idouble: 1
  117662. +ifloat: 2
  117663. +Test "log10 (e)":
  117664. +float: 1
  117665. +ifloat: 1
  117666. +ildouble: 1
  117667. +ldouble: 1
  117668. +
  117669. +# log1p
  117670. +Test "log1p (-0.25)":
  117671. +float: 1
  117672. +ifloat: 1
  117673. +
  117674. +# log2
  117675. +Test "log2 (0.75)":
  117676. +ildouble: 1
  117677. +ldouble: 1
  117678. +
  117679. +# pow
  117680. +Test "pow (0x0.fffffffffffff8p0, -0x1.23456789abcdfp62)":
  117681. +ildouble: 1
  117682. +ldouble: 1
  117683. +Test "pow (0x0.ffffffp0, -0x1p24)":
  117684. +float: 1
  117685. +ifloat: 1
  117686. +ildouble: 1
  117687. +ldouble: 1
  117688. +Test "pow (0x0.ffffffp0, 0x1p24)":
  117689. +float: 1
  117690. +ifloat: 1
  117691. +Test "pow (0x1.000002p0, 0x1p24)":
  117692. +float: 1
  117693. +ifloat: 1
  117694. +Test "pow (10.0, -4930.0)":
  117695. +ildouble: 1
  117696. +ldouble: 1
  117697. +Test "pow (10.0, 4929.0)":
  117698. +ildouble: 1
  117699. +ldouble: 1
  117700. +Test "pow (10.0, 4930.0)":
  117701. +ildouble: 1
  117702. +ldouble: 1
  117703. +Test "pow (10.0, 4931.0)":
  117704. +ildouble: 1
  117705. +ldouble: 1
  117706. +Test "pow (10.0, 4932.0)":
  117707. +ildouble: 1
  117708. +ldouble: 1
  117709. +Test "pow (1e4932, 0.75)":
  117710. +ildouble: 1
  117711. +ldouble: 1
  117712. +
  117713. +# pow10
  117714. +Test "pow10 (-1)":
  117715. +double: 1
  117716. +idouble: 1
  117717. +Test "pow10 (-305)":
  117718. +double: 1
  117719. +idouble: 1
  117720. +Test "pow10 (-36)":
  117721. +double: 1
  117722. +idouble: 1
  117723. +ildouble: 1
  117724. +ldouble: 1
  117725. +Test "pow10 (3)":
  117726. +double: 1
  117727. +idouble: 1
  117728. +Test "pow10 (36)":
  117729. +double: 1
  117730. +idouble: 1
  117731. +Test "pow10 (4932)":
  117732. +ildouble: 1
  117733. +ldouble: 1
  117734. +
  117735. +# pow_downward
  117736. +Test "pow_downward (1.5, 1.03125)":
  117737. +float: 1
  117738. +ifloat: 1
  117739. +
  117740. +# pow_towardzero
  117741. +Test "pow_towardzero (1.5, 1.03125)":
  117742. +float: 1
  117743. +ifloat: 1
  117744. +
  117745. +# pow_upward
  117746. +Test "pow_upward (1.0625, 1.125)":
  117747. +float: 1
  117748. +ifloat: 1
  117749. +
  117750. +# sin_downward
  117751. +Test "sin_downward (10)":
  117752. +float: 1
  117753. +ifloat: 1
  117754. +Test "sin_downward (3)":
  117755. +float: 1
  117756. +ifloat: 1
  117757. +Test "sin_downward (5)":
  117758. +float: 1
  117759. +ifloat: 1
  117760. +Test "sin_downward (6)":
  117761. +float: 1
  117762. +ifloat: 1
  117763. +
  117764. +# sin_tonearest
  117765. +Test "sin_tonearest (1)":
  117766. +float: 1
  117767. +ifloat: 1
  117768. +Test "sin_tonearest (3)":
  117769. +ildouble: 1
  117770. +ldouble: 1
  117771. +
  117772. +# sin_towardzero
  117773. +Test "sin_towardzero (1)":
  117774. +float: 1
  117775. +ifloat: 1
  117776. +Test "sin_towardzero (10)":
  117777. +float: 1
  117778. +ifloat: 1
  117779. +Test "sin_towardzero (4)":
  117780. +float: 1
  117781. +ifloat: 1
  117782. +Test "sin_towardzero (5)":
  117783. +float: 1
  117784. +ifloat: 1
  117785. +Test "sin_towardzero (9)":
  117786. +float: 1
  117787. +ifloat: 1
  117788. +
  117789. +# sin_upward
  117790. +Test "sin_upward (1)":
  117791. +float: 1
  117792. +ifloat: 1
  117793. +Test "sin_upward (2)":
  117794. +float: 2
  117795. +ifloat: 2
  117796. +Test "sin_upward (4)":
  117797. +float: 1
  117798. +ifloat: 1
  117799. +Test "sin_upward (9)":
  117800. +float: 1
  117801. +ifloat: 1
  117802. +
  117803. +# sincos
  117804. +Test "sincos (0x1p+120) extra output 2":
  117805. +float: 1
  117806. +ifloat: 1
  117807. +Test "sincos (0x1p+127) extra output 2":
  117808. +float: 1
  117809. +ifloat: 1
  117810. +Test "sincos (M_PI_6l*2.0) extra output 1":
  117811. +double: 1
  117812. +float: 1
  117813. +idouble: 1
  117814. +ifloat: 1
  117815. +Test "sincos (M_PI_6l*2.0) extra output 2":
  117816. +double: 1
  117817. +idouble: 1
  117818. +Test "sincos (pi/6) extra output 2":
  117819. +float: 1
  117820. +ifloat: 1
  117821. +
  117822. +# sinh_downward
  117823. +Test "sinh_downward (22)":
  117824. +float: 1
  117825. +ifloat: 1
  117826. +Test "sinh_downward (23)":
  117827. +float: 1
  117828. +ifloat: 1
  117829. +Test "sinh_downward (24)":
  117830. +float: 1
  117831. +ifloat: 1
  117832. +
  117833. +# sinh_towardzero
  117834. +Test "sinh_towardzero (22)":
  117835. +float: 1
  117836. +ifloat: 1
  117837. +Test "sinh_towardzero (23)":
  117838. +float: 1
  117839. +ifloat: 1
  117840. +Test "sinh_towardzero (24)":
  117841. +float: 1
  117842. +ifloat: 1
  117843. +
  117844. +# tan_downward
  117845. +Test "tan_downward (1)":
  117846. +float: 1
  117847. +ifloat: 1
  117848. +Test "tan_downward (10)":
  117849. +float: 1
  117850. +ifloat: 1
  117851. +Test "tan_downward (2)":
  117852. +float: 1
  117853. +ifloat: 1
  117854. +Test "tan_downward (6)":
  117855. +float: 1
  117856. +ifloat: 1
  117857. +Test "tan_downward (8)":
  117858. +float: 1
  117859. +ifloat: 1
  117860. +Test "tan_downward (9)":
  117861. +float: 1
  117862. +ifloat: 1
  117863. +
  117864. +# tan_towardzero
  117865. +Test "tan_towardzero (10)":
  117866. +float: 1
  117867. +ifloat: 1
  117868. +Test "tan_towardzero (3)":
  117869. +float: 1
  117870. +ifloat: 1
  117871. +Test "tan_towardzero (4)":
  117872. +float: 1
  117873. +ifloat: 1
  117874. +Test "tan_towardzero (5)":
  117875. +float: 1
  117876. +ifloat: 1
  117877. +Test "tan_towardzero (9)":
  117878. +float: 1
  117879. +ifloat: 1
  117880. +
  117881. +# tan_upward
  117882. +Test "tan_upward (1)":
  117883. +float: 1
  117884. +ifloat: 1
  117885. +Test "tan_upward (10)":
  117886. +float: 1
  117887. +ifloat: 1
  117888. +Test "tan_upward (3)":
  117889. +float: 1
  117890. +ifloat: 1
  117891. +Test "tan_upward (5)":
  117892. +float: 1
  117893. +ifloat: 1
  117894. +
  117895. +# tanh
  117896. +Test "tanh (-0.75)":
  117897. +ildouble: 1
  117898. +ldouble: 1
  117899. +Test "tanh (-1.0)":
  117900. +ildouble: 1
  117901. +ldouble: 1
  117902. +Test "tanh (0.75)":
  117903. +ildouble: 1
  117904. +ldouble: 1
  117905. +Test "tanh (1.0)":
  117906. +ildouble: 1
  117907. +ldouble: 1
  117908. +
  117909. +# tgamma
  117910. +Test "tgamma (-0.5)":
  117911. +double: 1
  117912. +float: 1
  117913. +idouble: 1
  117914. +ifloat: 1
  117915. +Test "tgamma (-0x0.fffffffffffff8p0)":
  117916. +double: 1
  117917. +idouble: 1
  117918. +Test "tgamma (-0x0.ffffffffffffffffffffffffffff8p0)":
  117919. +ildouble: 1
  117920. +ldouble: 1
  117921. +Test "tgamma (-0x0.ffffffp0)":
  117922. +float: 1
  117923. +ifloat: 1
  117924. +ildouble: 1
  117925. +ldouble: 1
  117926. +Test "tgamma (-0x1.0000000000000002p0)":
  117927. +ildouble: 1
  117928. +ldouble: 1
  117929. +Test "tgamma (-0x1.0000000000001p0)":
  117930. +ildouble: 1
  117931. +ldouble: 1
  117932. +Test "tgamma (-0x1.000002p0)":
  117933. +double: 2
  117934. +idouble: 2
  117935. +Test "tgamma (-0x1.0a32a2p+5)":
  117936. +float: 2
  117937. +ifloat: 2
  117938. +ildouble: 2
  117939. +ldouble: 2
  117940. +Test "tgamma (-0x1.5800000080001p+7)":
  117941. +ildouble: 1
  117942. +ldouble: 1
  117943. +Test "tgamma (-0x1.fffffffffffffffep0)":
  117944. +ildouble: 1
  117945. +ldouble: 1
  117946. +Test "tgamma (-0x1.fffffffffffffp0)":
  117947. +ildouble: 1
  117948. +ldouble: 1
  117949. +Test "tgamma (-0x13.ffffep0)":
  117950. +float: 2
  117951. +ifloat: 2
  117952. +ildouble: 1
  117953. +ldouble: 1
  117954. +Test "tgamma (-0x13.ffffffffffffffep0)":
  117955. +ildouble: 1
  117956. +ldouble: 1
  117957. +Test "tgamma (-0x13.fffffffffffffffffffffffff8p0)":
  117958. +ildouble: 1
  117959. +ldouble: 1
  117960. +Test "tgamma (-0x13.ffffffffffffp0)":
  117961. +ildouble: 2
  117962. +ldouble: 2
  117963. +Test "tgamma (-0x14.000000000000000000000000001p0)":
  117964. +ildouble: 1
  117965. +ldouble: 1
  117966. +Test "tgamma (-0x14.000000000001p0)":
  117967. +double: 1
  117968. +idouble: 1
  117969. +ildouble: 1
  117970. +ldouble: 1
  117971. +Test "tgamma (-0x14.00002p0)":
  117972. +float: 1
  117973. +ifloat: 1
  117974. +ildouble: 4
  117975. +ldouble: 4
  117976. +Test "tgamma (-0x1d.ffffep0)":
  117977. +double: 1
  117978. +float: 1
  117979. +idouble: 1
  117980. +ifloat: 1
  117981. +ildouble: 1
  117982. +ldouble: 1
  117983. +Test "tgamma (-0x1d.fffffffffffffffffffffffff8p0)":
  117984. +ildouble: 1
  117985. +ldouble: 1
  117986. +Test "tgamma (-0x1d.ffffffffffffp0)":
  117987. +ildouble: 1
  117988. +ldouble: 1
  117989. +Test "tgamma (-0x1e.000000000000000000000000001p0)":
  117990. +ildouble: 2
  117991. +ldouble: 2
  117992. +Test "tgamma (-0x1e.00000000000000000000000008p0)":
  117993. +ildouble: 1
  117994. +ldouble: 1
  117995. +Test "tgamma (-0x1e.000000000000002p0)":
  117996. +ildouble: 1
  117997. +ldouble: 1
  117998. +Test "tgamma (-0x1e.000000000001p0)":
  117999. +double: 3
  118000. +idouble: 3
  118001. +Test "tgamma (-0x1e.00002p0)":
  118002. +double: 1
  118003. +float: 1
  118004. +idouble: 1
  118005. +ifloat: 1
  118006. +ildouble: 1
  118007. +ldouble: 1
  118008. +Test "tgamma (-0x1f3.ffffffffffffffffffffffffffp0)":
  118009. +ildouble: 1
  118010. +ldouble: 1
  118011. +Test "tgamma (-0x1p-24)":
  118012. +ildouble: 1
  118013. +ldouble: 1
  118014. +Test "tgamma (-0x2.0000000000000000000000000002p0)":
  118015. +ildouble: 1
  118016. +ldouble: 1
  118017. +Test "tgamma (-0x2.0000000000002p0)":
  118018. +double: 1
  118019. +idouble: 1
  118020. +ildouble: 1
  118021. +ldouble: 1
  118022. +Test "tgamma (-0x2.000004p0)":
  118023. +double: 2
  118024. +float: 1
  118025. +idouble: 2
  118026. +ifloat: 1
  118027. +ildouble: 1
  118028. +ldouble: 1
  118029. +Test "tgamma (-0x2.fffffcp0)":
  118030. +double: 1
  118031. +float: 1
  118032. +idouble: 1
  118033. +ifloat: 1
  118034. +Test "tgamma (-0x2.ffffffffffffep0)":
  118035. +ildouble: 1
  118036. +ldouble: 1
  118037. +Test "tgamma (-0x27.fffffffffffep0)":
  118038. +double: 1
  118039. +idouble: 1
  118040. +ildouble: 1
  118041. +ldouble: 1
  118042. +Test "tgamma (-0x27.ffffffffffffffcp0)":
  118043. +ildouble: 1
  118044. +ldouble: 1
  118045. +Test "tgamma (-0x27.ffffffffffffffffffffffffffep0)":
  118046. +ildouble: 2
  118047. +ldouble: 2
  118048. +Test "tgamma (-0x27.fffffffffffffffffffffffffp0)":
  118049. +ildouble: 1
  118050. +ldouble: 1
  118051. +Test "tgamma (-0x28.0000000000000000000000001p0)":
  118052. +ildouble: 1
  118053. +ldouble: 1
  118054. +Test "tgamma (-0x28.000000000002p0)":
  118055. +double: 1
  118056. +idouble: 1
  118057. +ildouble: 1
  118058. +ldouble: 1
  118059. +Test "tgamma (-0x28.00004p0)":
  118060. +double: 2
  118061. +idouble: 2
  118062. +ildouble: 2
  118063. +ldouble: 2
  118064. +Test "tgamma (-0x28.ffffffffffffffcp0)":
  118065. +ildouble: 1
  118066. +ldouble: 1
  118067. +Test "tgamma (-0x28.ffffffffffffffffffffffffffep0)":
  118068. +ildouble: 1
  118069. +ldouble: 1
  118070. +Test "tgamma (-0x28.fffffffffffffffffffffffffp0)":
  118071. +ildouble: 1
  118072. +ldouble: 1
  118073. +Test "tgamma (-0x29.000000000000000000000000002p0)":
  118074. +ildouble: 1
  118075. +ldouble: 1
  118076. +Test "tgamma (-0x29.0000000000000000000000001p0)":
  118077. +ildouble: 2
  118078. +ldouble: 2
  118079. +Test "tgamma (-0x29.00004p0)":
  118080. +double: 1
  118081. +idouble: 1
  118082. +Test "tgamma (-0x29.ffffcp0)":
  118083. +double: 1
  118084. +idouble: 1
  118085. +Test "tgamma (-0x29.fffffffffffep0)":
  118086. +ildouble: 1
  118087. +ldouble: 1
  118088. +Test "tgamma (-0x29.ffffffffffffffcp0)":
  118089. +ildouble: 1
  118090. +ldouble: 1
  118091. +Test "tgamma (-0x29.ffffffffffffffffffffffffffep0)":
  118092. +ildouble: 1
  118093. +ldouble: 1
  118094. +Test "tgamma (-0x29.fffffffffffffffffffffffffp0)":
  118095. +ildouble: 1
  118096. +ldouble: 1
  118097. +Test "tgamma (-0x2a.000000000000000000000000002p0)":
  118098. +ildouble: 1
  118099. +ldouble: 1
  118100. +Test "tgamma (-0x2a.0000000000000000000000001p0)":
  118101. +ildouble: 1
  118102. +ldouble: 1
  118103. +Test "tgamma (-0x2a.000000000000004p0)":
  118104. +ildouble: 1
  118105. +ldouble: 1
  118106. +Test "tgamma (-0x2a.000000000002p0)":
  118107. +ildouble: 1
  118108. +ldouble: 1
  118109. +Test "tgamma (-0x2ed.fffffffffffffffffffffffffep0)":
  118110. +ildouble: 1
  118111. +ldouble: 1
  118112. +Test "tgamma (-0x2ee.00000000000004p0)":
  118113. +ildouble: 1
  118114. +ldouble: 1
  118115. +Test "tgamma (-0x3.00000000000000000000000001p0)":
  118116. +ildouble: 1
  118117. +ldouble: 1
  118118. +Test "tgamma (-0x3.000004p0)":
  118119. +double: 2
  118120. +float: 1
  118121. +idouble: 2
  118122. +ifloat: 1
  118123. +Test "tgamma (-0x3.fffffcp0)":
  118124. +double: 1
  118125. +float: 1
  118126. +idouble: 1
  118127. +ifloat: 1
  118128. +Test "tgamma (-0x3.ffffffffffffep0)":
  118129. +double: 2
  118130. +idouble: 2
  118131. +Test "tgamma (-0x3.fffffffffffffffcp0)":
  118132. +ildouble: 1
  118133. +ldouble: 1
  118134. +Test "tgamma (-0x3.fffffffffffffffffffffffffffep0)":
  118135. +ildouble: 2
  118136. +ldouble: 2
  118137. +Test "tgamma (-0x31.fffffffffffep0)":
  118138. +double: 3
  118139. +idouble: 3
  118140. +ildouble: 2
  118141. +ldouble: 2
  118142. +Test "tgamma (-0x31.ffffffffffffffcp0)":
  118143. +ildouble: 1
  118144. +ldouble: 1
  118145. +Test "tgamma (-0x31.ffffffffffffffffffffffffffep0)":
  118146. +ildouble: 1
  118147. +ldouble: 1
  118148. +Test "tgamma (-0x31.fffffffffffffffffffffffffp0)":
  118149. +ildouble: 2
  118150. +ldouble: 2
  118151. +Test "tgamma (-0x32.000000000000000000000000002p0)":
  118152. +ildouble: 1
  118153. +ldouble: 1
  118154. +Test "tgamma (-0x32.0000000000000000000000001p0)":
  118155. +ildouble: 1
  118156. +ldouble: 1
  118157. +Test "tgamma (-0x32.000000000000004p0)":
  118158. +ildouble: 1
  118159. +ldouble: 1
  118160. +Test "tgamma (-0x3e7.fffffffffffffcp0)":
  118161. +ildouble: 1
  118162. +ldouble: 1
  118163. +Test "tgamma (-0x3e7.fffffffffffffffffffffffffep0)":
  118164. +ildouble: 1
  118165. +ldouble: 1
  118166. +Test "tgamma (-0x3e8.00000000000000000000000002p0)":
  118167. +ildouble: 2
  118168. +ldouble: 2
  118169. +Test "tgamma (-0x3e8.00000000000004p0)":
  118170. +ildouble: 1
  118171. +ldouble: 1
  118172. +Test "tgamma (-0x4.0000000000004p0)":
  118173. +ildouble: 1
  118174. +ldouble: 1
  118175. +Test "tgamma (-0x4.000008p0)":
  118176. +float: 1
  118177. +ifloat: 1
  118178. +ildouble: 1
  118179. +ldouble: 1
  118180. +Test "tgamma (-0x4.fffff8p0)":
  118181. +double: 1
  118182. +idouble: 1
  118183. +Test "tgamma (-0x4.ffffffffffffcp0)":
  118184. +double: 1
  118185. +idouble: 1
  118186. +ildouble: 1
  118187. +ldouble: 1
  118188. +Test "tgamma (-0x4.fffffffffffffffffffffffffep0)":
  118189. +ildouble: 1
  118190. +ldouble: 1
  118191. +Test "tgamma (-0x4.fffffffffffffffffffffffffffcp0)":
  118192. +ildouble: 1
  118193. +ldouble: 1
  118194. +Test "tgamma (-0x5.0000000000000008p0)":
  118195. +ildouble: 1
  118196. +ldouble: 1
  118197. +Test "tgamma (-0x5.0000000000004p0)":
  118198. +ildouble: 1
  118199. +ldouble: 1
  118200. +Test "tgamma (-0x5.000008p0)":
  118201. +double: 1
  118202. +float: 1
  118203. +idouble: 1
  118204. +ifloat: 1
  118205. +Test "tgamma (-0x5.fffff8p0)":
  118206. +ildouble: 1
  118207. +ldouble: 1
  118208. +Test "tgamma (-0x5.ffffffffffffcp0)":
  118209. +double: 1
  118210. +idouble: 1
  118211. +ildouble: 1
  118212. +ldouble: 1
  118213. +Test "tgamma (-0x5.fffffffffffffff8p0)":
  118214. +ildouble: 2
  118215. +ldouble: 2
  118216. +Test "tgamma (-0x5.fffffffffffffffffffffffffep0)":
  118217. +ildouble: 1
  118218. +ldouble: 1
  118219. +Test "tgamma (-0x5.fffffffffffffffffffffffffffcp0)":
  118220. +ildouble: 1
  118221. +ldouble: 1
  118222. +Test "tgamma (-0x5db.fffffffffffff8p0)":
  118223. +ildouble: 1
  118224. +ldouble: 1
  118225. +Test "tgamma (-0x5db.fffffffffffffffffffffffffcp0)":
  118226. +ildouble: 1
  118227. +ldouble: 1
  118228. +Test "tgamma (-0x5dc.00000000000000000000000004p0)":
  118229. +ildouble: 2
  118230. +ldouble: 2
  118231. +Test "tgamma (-0x6.0000000000000000000000000004p0)":
  118232. +ildouble: 1
  118233. +ldouble: 1
  118234. +Test "tgamma (-0x6.00000000000000000000000002p0)":
  118235. +ildouble: 1
  118236. +ldouble: 1
  118237. +Test "tgamma (-0x6.0000000000004p0)":
  118238. +ildouble: 1
  118239. +ldouble: 1
  118240. +Test "tgamma (-0x6.000008p0)":
  118241. +float: 2
  118242. +ifloat: 2
  118243. +ildouble: 2
  118244. +ldouble: 2
  118245. +Test "tgamma (-0x6.fffff8p0)":
  118246. +double: 2
  118247. +float: 1
  118248. +idouble: 2
  118249. +ifloat: 1
  118250. +ildouble: 1
  118251. +ldouble: 1
  118252. +Test "tgamma (-0x6.ffffffffffffcp0)":
  118253. +double: 4
  118254. +idouble: 4
  118255. +ildouble: 1
  118256. +ldouble: 1
  118257. +Test "tgamma (-0x6.fffffffffffffff8p0)":
  118258. +ildouble: 1
  118259. +ldouble: 1
  118260. +Test "tgamma (-0x6.fffffffffffffffffffffffffffcp0)":
  118261. +ildouble: 1
  118262. +ldouble: 1
  118263. +Test "tgamma (-0x63.fffffffffffcp0)":
  118264. +double: 2
  118265. +idouble: 2
  118266. +Test "tgamma (-0x63.ffffffffffffff8p0)":
  118267. +ildouble: 2
  118268. +ldouble: 2
  118269. +Test "tgamma (-0x63.ffffffffffffffffffffffffep0)":
  118270. +ildouble: 2
  118271. +ldouble: 2
  118272. +Test "tgamma (-0x64.000000000000000000000000004p0)":
  118273. +ildouble: 2
  118274. +ldouble: 2
  118275. +Test "tgamma (-0x64.0000000000000000000000002p0)":
  118276. +ildouble: 1
  118277. +ldouble: 1
  118278. +Test "tgamma (-0x64.000000000004p0)":
  118279. +double: 1
  118280. +idouble: 1
  118281. +ildouble: 1
  118282. +ldouble: 1
  118283. +Test "tgamma (-0x6d5.fffffffffffff8p0)":
  118284. +ildouble: 1
  118285. +ldouble: 1
  118286. +Test "tgamma (-0x6d6.00000000000000000000000004p0)":
  118287. +ildouble: 1
  118288. +ldouble: 1
  118289. +Test "tgamma (-0x6e3.00000000000000000000000004p0)":
  118290. +ildouble: 2
  118291. +ldouble: 2
  118292. +Test "tgamma (-0x7.0000000000000008p0)":
  118293. +ildouble: 1
  118294. +ldouble: 1
  118295. +Test "tgamma (-0x7.0000000000004p0)":
  118296. +double: 3
  118297. +idouble: 3
  118298. +Test "tgamma (-0x7.000008p0)":
  118299. +double: 1
  118300. +float: 1
  118301. +idouble: 1
  118302. +ifloat: 1
  118303. +Test "tgamma (-0x7.fffff8p0)":
  118304. +double: 3
  118305. +float: 1
  118306. +idouble: 3
  118307. +ifloat: 1
  118308. +Test "tgamma (-0x7.ffffffffffffcp0)":
  118309. +double: 3
  118310. +idouble: 3
  118311. +Test "tgamma (-0x7.fffffffffffffff8p0)":
  118312. +ildouble: 1
  118313. +ldouble: 1
  118314. +Test "tgamma (-0x7.fffffffffffffffffffffffffep0)":
  118315. +ildouble: 1
  118316. +ldouble: 1
  118317. +Test "tgamma (-0x7.fffffffffffffffffffffffffffcp0)":
  118318. +ildouble: 1
  118319. +ldouble: 1
  118320. +Test "tgamma (-0x8.0000000000000000000000000008p0)":
  118321. +ildouble: 1
  118322. +ldouble: 1
  118323. +Test "tgamma (-0x8.00000000000000000000000004p0)":
  118324. +ildouble: 1
  118325. +ldouble: 1
  118326. +Test "tgamma (-0x8.0000000000008p0)":
  118327. +ildouble: 1
  118328. +ldouble: 1
  118329. +Test "tgamma (-0x8.00001p0)":
  118330. +double: 2
  118331. +idouble: 2
  118332. +ildouble: 1
  118333. +ldouble: 1
  118334. +Test "tgamma (-0x9.ffffffffffff8p0)":
  118335. +double: 1
  118336. +idouble: 1
  118337. +Test "tgamma (-0x9.fffffffffffffffffffffffffff8p0)":
  118338. +ildouble: 1
  118339. +ldouble: 1
  118340. +Test "tgamma (-0x9.fffffp0)":
  118341. +float: 1
  118342. +ifloat: 1
  118343. +Test "tgamma (-0x95.ffffffffffffffp0)":
  118344. +ildouble: 1
  118345. +ldouble: 1
  118346. +Test "tgamma (-0x96.000000000000000000000000008p0)":
  118347. +ildouble: 1
  118348. +ldouble: 1
  118349. +Test "tgamma (-0x96.0000000000000000000000004p0)":
  118350. +ildouble: 1
  118351. +ldouble: 1
  118352. +Test "tgamma (-0x96.00000000000001p0)":
  118353. +ildouble: 2
  118354. +ldouble: 2
  118355. +Test "tgamma (-0x96.000000000008p0)":
  118356. +double: 1
  118357. +idouble: 1
  118358. +Test "tgamma (-0xa.0000000000008p0)":
  118359. +ildouble: 1
  118360. +ldouble: 1
  118361. +Test "tgamma (-0xa.00001p0)":
  118362. +double: 1
  118363. +idouble: 1
  118364. +ildouble: 1
  118365. +ldouble: 1
  118366. +Test "tgamma (-0xb4.ffffffffffffffffffffffffcp0)":
  118367. +ildouble: 1
  118368. +ldouble: 1
  118369. +Test "tgamma (-0xb4.ffffffffffffffp0)":
  118370. +ildouble: 1
  118371. +ldouble: 1
  118372. +Test "tgamma (-0xb5.0000000000000000000000004p0)":
  118373. +ildouble: 1
  118374. +ldouble: 1
  118375. +Test "tgamma (-0xb5.00000000000001p0)":
  118376. +ildouble: 2
  118377. +ldouble: 2
  118378. +Test "tgamma (-0xb5.000000000008p0)":
  118379. +ildouble: 1
  118380. +ldouble: 1
  118381. +Test "tgamma (-0xb5.ffffffffffffffffffffffffff8p0)":
  118382. +ildouble: 1
  118383. +ldouble: 1
  118384. +Test "tgamma (-0xb6.00000000000001p0)":
  118385. +ildouble: 1
  118386. +ldouble: 1
  118387. +Test "tgamma (-0xb6.000000000008p0)":
  118388. +ildouble: 1
  118389. +ldouble: 1
  118390. +Test "tgamma (-0xb6.fffffffffff8p0)":
  118391. +ildouble: 1
  118392. +ldouble: 1
  118393. +Test "tgamma (-0xb6.ffffffffffffffffffffffffff8p0)":
  118394. +ildouble: 3
  118395. +ldouble: 3
  118396. +Test "tgamma (-0xb7.000000000000000000000000008p0)":
  118397. +ildouble: 1
  118398. +ldouble: 1
  118399. +Test "tgamma (-0xb7.00000000000001p0)":
  118400. +ildouble: 2
  118401. +ldouble: 2
  118402. +Test "tgamma (-0xb7.000000000008p0)":
  118403. +ildouble: 1
  118404. +ldouble: 1
  118405. +Test "tgamma (-0xb7.ffffffffffffffffffffffffcp0)":
  118406. +ildouble: 1
  118407. +ldouble: 1
  118408. +Test "tgamma (-0xb7.ffffffffffffffffffffffffff8p0)":
  118409. +ildouble: 1
  118410. +ldouble: 1
  118411. +Test "tgamma (-0xb8.00000000000001p0)":
  118412. +ildouble: 1
  118413. +ldouble: 1
  118414. +Test "tgamma (-0xbb.ffffffffffffffffffffffffcp0)":
  118415. +ildouble: 3
  118416. +ldouble: 3
  118417. +Test "tgamma (-0xbb.ffffffffffffffffffffffffff8p0)":
  118418. +ildouble: 4
  118419. +ldouble: 4
  118420. +Test "tgamma (-0xbc.000000000000000000000000008p0)":
  118421. +ildouble: 1
  118422. +ldouble: 1
  118423. +Test "tgamma (-0xbc.0000000000000000000000004p0)":
  118424. +ildouble: 2
  118425. +ldouble: 2
  118426. +Test "tgamma (-0xbc.00000000000001p0)":
  118427. +ildouble: 2
  118428. +ldouble: 2
  118429. +Test "tgamma (-0xbc.ffffffffffffffp0)":
  118430. +ildouble: 1
  118431. +ldouble: 1
  118432. +Test "tgamma (-0xbd.000000000000000000000000008p0)":
  118433. +ildouble: 1
  118434. +ldouble: 1
  118435. +Test "tgamma (-0xbd.00000000000001p0)":
  118436. +ildouble: 2
  118437. +ldouble: 2
  118438. +Test "tgamma (-0xbd.ffffffffffffffp0)":
  118439. +ildouble: 2
  118440. +ldouble: 2
  118441. +Test "tgamma (-0xbe.000000000000000000000000008p0)":
  118442. +ildouble: 1
  118443. +ldouble: 1
  118444. +Test "tgamma (-0xbe.0000000000000000000000004p0)":
  118445. +ildouble: 1
  118446. +ldouble: 1
  118447. +Test "tgamma (-0xbe.ffffffffffffffffffffffffcp0)":
  118448. +ildouble: 1
  118449. +ldouble: 1
  118450. +Test "tgamma (-0xbe.ffffffffffffffp0)":
  118451. +ildouble: 1
  118452. +ldouble: 1
  118453. +Test "tgamma (-0xbf.000000000000000000000000008p0)":
  118454. +ildouble: 1
  118455. +ldouble: 1
  118456. +Test "tgamma (-0xbf.0000000000000000000000004p0)":
  118457. +ildouble: 1
  118458. +ldouble: 1
  118459. +Test "tgamma (-0xbf.00000000000001p0)":
  118460. +ildouble: 1
  118461. +ldouble: 1
  118462. +Test "tgamma (-0xf9.ffffffffffffffp0)":
  118463. +ildouble: 1
  118464. +ldouble: 1
  118465. +Test "tgamma (-0xfa.000000000000000000000000008p0)":
  118466. +ildouble: 1
  118467. +ldouble: 1
  118468. +Test "tgamma (-2.5)":
  118469. +double: 1
  118470. +float: 2
  118471. +idouble: 1
  118472. +ifloat: 2
  118473. +ildouble: 1
  118474. +ldouble: 1
  118475. +Test "tgamma (-3.5)":
  118476. +double: 1
  118477. +float: 1
  118478. +idouble: 1
  118479. +ifloat: 1
  118480. +ildouble: 1
  118481. +ldouble: 1
  118482. +Test "tgamma (-4.5)":
  118483. +double: 1
  118484. +float: 1
  118485. +idouble: 1
  118486. +ifloat: 1
  118487. +Test "tgamma (-5.5)":
  118488. +double: 1
  118489. +idouble: 1
  118490. +Test "tgamma (-6.5)":
  118491. +float: 1
  118492. +ifloat: 1
  118493. +ildouble: 1
  118494. +ldouble: 1
  118495. +Test "tgamma (-7.5)":
  118496. +double: 2
  118497. +float: 1
  118498. +idouble: 2
  118499. +ifloat: 1
  118500. +Test "tgamma (-8.5)":
  118501. +double: 1
  118502. +float: 1
  118503. +idouble: 1
  118504. +ifloat: 1
  118505. +Test "tgamma (-9.5)":
  118506. +double: 1
  118507. +float: 1
  118508. +idouble: 1
  118509. +ifloat: 1
  118510. +Test "tgamma (0.5)":
  118511. +float: 1
  118512. +ifloat: 1
  118513. +Test "tgamma (0.7)":
  118514. +double: 1
  118515. +float: 1
  118516. +idouble: 1
  118517. +ifloat: 1
  118518. +Test "tgamma (0x1.fffffep0)":
  118519. +float: 1
  118520. +ifloat: 1
  118521. +Test "tgamma (0x1.fffffffffffffffep0)":
  118522. +ildouble: 1
  118523. +ldouble: 1
  118524. +Test "tgamma (0x1.ffffffffffffffffffffffffffffp0)":
  118525. +ildouble: 1
  118526. +ldouble: 1
  118527. +Test "tgamma (0x1.fffffffffffffp0)":
  118528. +double: 1
  118529. +idouble: 1
  118530. +ildouble: 1
  118531. +ldouble: 1
  118532. +Test "tgamma (0x1p-113)":
  118533. +ildouble: 1
  118534. +ldouble: 1
  118535. +Test "tgamma (0x1p-24)":
  118536. +float: 1
  118537. +ifloat: 1
  118538. +Test "tgamma (0x1p-53)":
  118539. +double: 1
  118540. +idouble: 1
  118541. +Test "tgamma (0x2.30a43cp+4)":
  118542. +double: 1
  118543. +float: 2
  118544. +idouble: 1
  118545. +ifloat: 2
  118546. +ildouble: 2
  118547. +ldouble: 2
  118548. +Test "tgamma (0x2.fffffcp0)":
  118549. +float: 3
  118550. +ifloat: 3
  118551. +Test "tgamma (0x2.ffffffffffffep0)":
  118552. +ildouble: 1
  118553. +ldouble: 1
  118554. +Test "tgamma (0x3.0000000000002p0)":
  118555. +ildouble: 1
  118556. +ldouble: 1
  118557. +Test "tgamma (0x3.fffffcp0)":
  118558. +float: 1
  118559. +ifloat: 1
  118560. +Test "tgamma (0x3.ffffffffffffep0)":
  118561. +double: 1
  118562. +idouble: 1
  118563. +ildouble: 1
  118564. +ldouble: 1
  118565. +Test "tgamma (0x3.fffffffffffffffcp0)":
  118566. +ildouble: 1
  118567. +ldouble: 1
  118568. +Test "tgamma (0x3.fffffffffffffffffffffffffffep0)":
  118569. +ildouble: 1
  118570. +ldouble: 1
  118571. +Test "tgamma (0x4.0000000000000000000000000004p0)":
  118572. +ildouble: 1
  118573. +ldouble: 1
  118574. +Test "tgamma (0x4.0000000000004p0)":
  118575. +double: 1
  118576. +idouble: 1
  118577. +Test "tgamma (0x4.000008p0)":
  118578. +ildouble: 1
  118579. +ldouble: 1
  118580. +Test "tgamma (0x4.ffffffffffffcp0)":
  118581. +double: 1
  118582. +idouble: 1
  118583. +Test "tgamma (0x4.fffffffffffffffffffffffffep0)":
  118584. +ildouble: 1
  118585. +ldouble: 1
  118586. +Test "tgamma (0x4.fffffffffffffffffffffffffffcp0)":
  118587. +ildouble: 1
  118588. +ldouble: 1
  118589. +Test "tgamma (0x5.0000000000000000000000000004p0)":
  118590. +ildouble: 1
  118591. +ldouble: 1
  118592. +Test "tgamma (0x5.0000000000004p0)":
  118593. +double: 1
  118594. +idouble: 1
  118595. +Test "tgamma (0x5.000008p0)":
  118596. +float: 2
  118597. +ifloat: 2
  118598. +Test "tgamma (0x5.fffff8p0)":
  118599. +double: 1
  118600. +float: 1
  118601. +idouble: 1
  118602. +ifloat: 1
  118603. +Test "tgamma (0x5.ffffffffffffcp0)":
  118604. +ildouble: 1
  118605. +ldouble: 1
  118606. +Test "tgamma (0x5.fffffffffffffff8p0)":
  118607. +ildouble: 1
  118608. +ldouble: 1
  118609. +Test "tgamma (0x5.fffffffffffffffffffffffffep0)":
  118610. +ildouble: 1
  118611. +ldouble: 1
  118612. +Test "tgamma (0x6.0000000000000000000000000004p0)":
  118613. +ildouble: 1
  118614. +ldouble: 1
  118615. +Test "tgamma (0x6.0000000000000008p0)":
  118616. +ildouble: 1
  118617. +ldouble: 1
  118618. +Test "tgamma (0x6.0000000000004p0)":
  118619. +double: 1
  118620. +idouble: 1
  118621. +Test "tgamma (0x6.000008p0)":
  118622. +float: 2
  118623. +ifloat: 2
  118624. +ildouble: 1
  118625. +ldouble: 1
  118626. +Test "tgamma (0x6.fffff8p0)":
  118627. +double: 1
  118628. +idouble: 1
  118629. +ildouble: 1
  118630. +ldouble: 1
  118631. +Test "tgamma (0x6.ffffffffffffcp0)":
  118632. +double: 4
  118633. +idouble: 4
  118634. +Test "tgamma (0x6.fffffffffffffff8p0)":
  118635. +ildouble: 1
  118636. +ldouble: 1
  118637. +Test "tgamma (0x7.0000000000000000000000000004p0)":
  118638. +ildouble: 1
  118639. +ldouble: 1
  118640. +Test "tgamma (0x7.0000000000000008p0)":
  118641. +ildouble: 1
  118642. +ldouble: 1
  118643. +Test "tgamma (0x7.0000000000004p0)":
  118644. +double: 4
  118645. +idouble: 4
  118646. +Test "tgamma (0x7.000008p0)":
  118647. +double: 1
  118648. +float: 1
  118649. +idouble: 1
  118650. +ifloat: 1
  118651. +Test "tgamma (0x7.fffff8p0)":
  118652. +double: 2
  118653. +float: 1
  118654. +idouble: 2
  118655. +ifloat: 1
  118656. +Test "tgamma (0x7.ffffffffffffcp0)":
  118657. +double: 2
  118658. +idouble: 2
  118659. +ildouble: 1
  118660. +ldouble: 1
  118661. +Test "tgamma (0x7.fffffffffffffffffffffffffffcp0)":
  118662. +ildouble: 1
  118663. +ldouble: 1
  118664. +Test "tgamma (0x8.0000000000000000000000000008p0)":
  118665. +ildouble: 1
  118666. +ldouble: 1
  118667. +Test "tgamma (0x8.0000000000008p0)":
  118668. +ildouble: 1
  118669. +ldouble: 1
  118670. +Test "tgamma (0x8.00001p0)":
  118671. +double: 2
  118672. +idouble: 2
  118673. +Test "tgamma (0xa.b9fd72b0fb238p+4)":
  118674. +double: 1
  118675. +idouble: 1
  118676. +ildouble: 1
  118677. +ldouble: 1
  118678. +Test "tgamma (0xa.b9fd72b0fb23a9ddbf0d3804f8p+4)":
  118679. +ildouble: 2
  118680. +ldouble: 2
  118681. +Test "tgamma (10)":
  118682. +double: 1
  118683. +float: 1
  118684. +idouble: 1
  118685. +ifloat: 1
  118686. +Test "tgamma (18.5)":
  118687. +double: 1
  118688. +float: 1
  118689. +idouble: 1
  118690. +ifloat: 1
  118691. +Test "tgamma (19.5)":
  118692. +double: 2
  118693. +idouble: 2
  118694. +ildouble: 1
  118695. +ldouble: 1
  118696. +Test "tgamma (2.5)":
  118697. +float: 2
  118698. +ifloat: 2
  118699. +Test "tgamma (23.5)":
  118700. +double: 1
  118701. +float: 1
  118702. +idouble: 1
  118703. +ifloat: 1
  118704. +Test "tgamma (29.5)":
  118705. +double: 1
  118706. +float: 1
  118707. +idouble: 1
  118708. +ifloat: 1
  118709. +Test "tgamma (3)":
  118710. +float: 1
  118711. +ifloat: 1
  118712. +Test "tgamma (3.5)":
  118713. +float: 2
  118714. +ifloat: 2
  118715. +ildouble: 1
  118716. +ldouble: 1
  118717. +Test "tgamma (30.5)":
  118718. +float: 1
  118719. +ifloat: 1
  118720. +Test "tgamma (32.5)":
  118721. +ildouble: 1
  118722. +ldouble: 1
  118723. +Test "tgamma (33.5)":
  118724. +float: 1
  118725. +ifloat: 1
  118726. +ildouble: 1
  118727. +ldouble: 1
  118728. +Test "tgamma (34.5)":
  118729. +double: 1
  118730. +float: 2
  118731. +idouble: 1
  118732. +ifloat: 2
  118733. +Test "tgamma (4)":
  118734. +float: 1
  118735. +ifloat: 1
  118736. +Test "tgamma (4.5)":
  118737. +double: 1
  118738. +float: 1
  118739. +idouble: 1
  118740. +ifloat: 1
  118741. +Test "tgamma (6)":
  118742. +float: 1
  118743. +ifloat: 1
  118744. +Test "tgamma (6.5)":
  118745. +float: 1
  118746. +ifloat: 1
  118747. +Test "tgamma (7)":
  118748. +double: 1
  118749. +idouble: 1
  118750. +Test "tgamma (7.5)":
  118751. +double: 2
  118752. +float: 1
  118753. +idouble: 2
  118754. +ifloat: 1
  118755. +Test "tgamma (8)":
  118756. +double: 1
  118757. +idouble: 1
  118758. +Test "tgamma (8.5)":
  118759. +double: 1
  118760. +float: 1
  118761. +idouble: 1
  118762. +ifloat: 1
  118763. +Test "tgamma (9)":
  118764. +double: 1
  118765. +idouble: 1
  118766. +Test "tgamma (9.5)":
  118767. +double: 1
  118768. +idouble: 1
  118769. +ildouble: 1
  118770. +ldouble: 1
  118771. +
  118772. +# y0
  118773. +Test "y0 (0x1.3ffp+74)":
  118774. +double: 1
  118775. +idouble: 1
  118776. +ildouble: 1
  118777. +ldouble: 1
  118778. +Test "y0 (0x1.ff00000000002p+840)":
  118779. +double: 1
  118780. +idouble: 1
  118781. +ildouble: 1
  118782. +ldouble: 1
  118783. +Test "y0 (0x1p-10)":
  118784. +double: 1
  118785. +idouble: 1
  118786. +ildouble: 1
  118787. +ldouble: 1
  118788. +Test "y0 (0x1p-110)":
  118789. +double: 1
  118790. +idouble: 1
  118791. +ildouble: 1
  118792. +ldouble: 1
  118793. +Test "y0 (0x1p-20)":
  118794. +float: 1
  118795. +ifloat: 1
  118796. +Test "y0 (0x1p-30)":
  118797. +float: 1
  118798. +ifloat: 1
  118799. +ildouble: 2
  118800. +ldouble: 2
  118801. +Test "y0 (0x1p-40)":
  118802. +double: 1
  118803. +float: 1
  118804. +idouble: 1
  118805. +ifloat: 1
  118806. +Test "y0 (0x1p-50)":
  118807. +float: 1
  118808. +ifloat: 1
  118809. +Test "y0 (0x1p-60)":
  118810. +ildouble: 1
  118811. +ldouble: 1
  118812. +Test "y0 (0x1p-70)":
  118813. +double: 1
  118814. +idouble: 1
  118815. +Test "y0 (0x1p-80)":
  118816. +double: 1
  118817. +float: 1
  118818. +idouble: 1
  118819. +ifloat: 1
  118820. +Test "y0 (0x1p1023)":
  118821. +ildouble: 1
  118822. +ldouble: 1
  118823. +Test "y0 (0x1p16382)":
  118824. +ildouble: 1
  118825. +ldouble: 1
  118826. +Test "y0 (0x1p16383)":
  118827. +ildouble: 2
  118828. +ldouble: 2
  118829. +Test "y0 (1.0)":
  118830. +double: 2
  118831. +float: 1
  118832. +idouble: 2
  118833. +ifloat: 1
  118834. +Test "y0 (1.5)":
  118835. +double: 2
  118836. +float: 1
  118837. +idouble: 2
  118838. +ifloat: 1
  118839. +Test "y0 (10.0)":
  118840. +float: 1
  118841. +ifloat: 1
  118842. +ildouble: 3
  118843. +ldouble: 3
  118844. +Test "y0 (8.0)":
  118845. +double: 1
  118846. +float: 1
  118847. +idouble: 1
  118848. +ifloat: 1
  118849. +ildouble: 3
  118850. +ldouble: 3
  118851. +
  118852. +# y1
  118853. +Test "y1 (0.125)":
  118854. +double: 1
  118855. +idouble: 1
  118856. +Test "y1 (0.75)":
  118857. +ildouble: 1
  118858. +ldouble: 1
  118859. +Test "y1 (0x1.001000001p+593)":
  118860. +ildouble: 1
  118861. +ldouble: 1
  118862. +Test "y1 (0x1.27e204p+99)":
  118863. +double: 1
  118864. +idouble: 1
  118865. +Test "y1 (0x1p-10)":
  118866. +double: 1
  118867. +idouble: 1
  118868. +ildouble: 1
  118869. +ldouble: 1
  118870. +Test "y1 (0x1p-30)":
  118871. +ildouble: 1
  118872. +ldouble: 1
  118873. +Test "y1 (0x1p1023)":
  118874. +ildouble: 1
  118875. +ldouble: 1
  118876. +Test "y1 (0x1p16383)":
  118877. +ildouble: 2
  118878. +ldouble: 2
  118879. +Test "y1 (1.5)":
  118880. +float: 1
  118881. +ifloat: 1
  118882. +ildouble: 1
  118883. +ldouble: 1
  118884. +Test "y1 (10.0)":
  118885. +double: 3
  118886. +float: 1
  118887. +idouble: 3
  118888. +ifloat: 1
  118889. +Test "y1 (2.0)":
  118890. +double: 1
  118891. +float: 1
  118892. +idouble: 1
  118893. +ifloat: 1
  118894. +ildouble: 1
  118895. +ldouble: 1
  118896. +Test "y1 (8.0)":
  118897. +double: 1
  118898. +float: 2
  118899. +idouble: 1
  118900. +ifloat: 2
  118901. +ildouble: 1
  118902. +ldouble: 1
  118903. +
  118904. +# yn
  118905. +Test "yn (0, 1.0)":
  118906. +double: 2
  118907. +float: 1
  118908. +idouble: 2
  118909. +ifloat: 1
  118910. +Test "yn (0, 1.5)":
  118911. +double: 2
  118912. +float: 1
  118913. +idouble: 2
  118914. +ifloat: 1
  118915. +Test "yn (0, 10.0)":
  118916. +float: 1
  118917. +ifloat: 1
  118918. +ildouble: 3
  118919. +ldouble: 3
  118920. +Test "yn (0, 8.0)":
  118921. +double: 1
  118922. +float: 1
  118923. +idouble: 1
  118924. +ifloat: 1
  118925. +ildouble: 3
  118926. +ldouble: 3
  118927. +Test "yn (1, 0.125)":
  118928. +double: 1
  118929. +idouble: 1
  118930. +Test "yn (1, 0.75)":
  118931. +ildouble: 1
  118932. +ldouble: 1
  118933. +Test "yn (1, 1.5)":
  118934. +float: 1
  118935. +ifloat: 1
  118936. +ildouble: 1
  118937. +ldouble: 1
  118938. +Test "yn (1, 10.0)":
  118939. +double: 3
  118940. +float: 1
  118941. +idouble: 3
  118942. +ifloat: 1
  118943. +Test "yn (1, 2.0)":
  118944. +double: 1
  118945. +float: 1
  118946. +idouble: 1
  118947. +ifloat: 1
  118948. +ildouble: 1
  118949. +ldouble: 1
  118950. +Test "yn (1, 8.0)":
  118951. +double: 1
  118952. +float: 2
  118953. +idouble: 1
  118954. +ifloat: 2
  118955. +ildouble: 1
  118956. +ldouble: 1
  118957. +Test "yn (10, 0.125)":
  118958. +double: 1
  118959. +idouble: 1
  118960. +ildouble: 2
  118961. +ldouble: 2
  118962. +Test "yn (10, 0.75)":
  118963. +double: 1
  118964. +float: 1
  118965. +idouble: 1
  118966. +ifloat: 1
  118967. +ildouble: 5
  118968. +ldouble: 5
  118969. +Test "yn (10, 1.0)":
  118970. +double: 1
  118971. +idouble: 1
  118972. +ildouble: 1
  118973. +ldouble: 1
  118974. +Test "yn (10, 10.0)":
  118975. +double: 1
  118976. +float: 1
  118977. +idouble: 1
  118978. +ifloat: 1
  118979. +ildouble: 2
  118980. +ldouble: 2
  118981. +Test "yn (10, 2.0)":
  118982. +double: 2
  118983. +idouble: 2
  118984. +ildouble: 2
  118985. +ldouble: 2
  118986. +Test "yn (3, 0.125)":
  118987. +double: 1
  118988. +idouble: 1
  118989. +Test "yn (3, 0.75)":
  118990. +double: 1
  118991. +float: 1
  118992. +idouble: 1
  118993. +ifloat: 1
  118994. +ildouble: 2
  118995. +ldouble: 2
  118996. +Test "yn (3, 10.0)":
  118997. +double: 1
  118998. +float: 1
  118999. +idouble: 1
  119000. +ifloat: 1
  119001. +ildouble: 1
  119002. +ldouble: 1
  119003. +Test "yn (3, 2.0)":
  119004. +double: 1
  119005. +idouble: 1
  119006. +
  119007. +# Maximal error of functions:
  119008. +Function: "acos_downward":
  119009. +double: 1
  119010. +float: 1
  119011. +idouble: 1
  119012. +ifloat: 1
  119013. +
  119014. +Function: "acos_towardzero":
  119015. +double: 1
  119016. +float: 1
  119017. +idouble: 1
  119018. +ifloat: 1
  119019. +
  119020. +Function: "asin_downward":
  119021. +double: 1
  119022. +float: 1
  119023. +idouble: 1
  119024. +ifloat: 1
  119025. +
  119026. +Function: "asin_towardzero":
  119027. +double: 1
  119028. +float: 1
  119029. +idouble: 1
  119030. +ifloat: 1
  119031. +
  119032. +Function: "asin_upward":
  119033. +float: 1
  119034. +ifloat: 1
  119035. +
  119036. +Function: "atan2":
  119037. +float: 1
  119038. +ifloat: 1
  119039. +ildouble: 1
  119040. +ldouble: 1
  119041. +
  119042. +Function: "atanh":
  119043. +float: 1
  119044. +ifloat: 1
  119045. +
  119046. +Function: Real part of "cacos":
  119047. +double: 1
  119048. +float: 2
  119049. +idouble: 1
  119050. +ifloat: 2
  119051. +ildouble: 2
  119052. +ldouble: 2
  119053. +
  119054. +Function: Imaginary part of "cacos":
  119055. +double: 1
  119056. +float: 2
  119057. +idouble: 1
  119058. +ifloat: 2
  119059. +ildouble: 2
  119060. +ldouble: 2
  119061. +
  119062. +Function: Real part of "cacosh":
  119063. +double: 1
  119064. +float: 2
  119065. +idouble: 1
  119066. +ifloat: 2
  119067. +ildouble: 2
  119068. +ldouble: 2
  119069. +
  119070. +Function: Imaginary part of "cacosh":
  119071. +double: 1
  119072. +float: 2
  119073. +idouble: 1
  119074. +ifloat: 2
  119075. +ildouble: 2
  119076. +ldouble: 2
  119077. +
  119078. +Function: Real part of "casin":
  119079. +double: 1
  119080. +float: 1
  119081. +idouble: 1
  119082. +ifloat: 1
  119083. +ildouble: 2
  119084. +ldouble: 2
  119085. +
  119086. +Function: Imaginary part of "casin":
  119087. +double: 1
  119088. +float: 2
  119089. +idouble: 1
  119090. +ifloat: 2
  119091. +ildouble: 2
  119092. +ldouble: 2
  119093. +
  119094. +Function: Real part of "casinh":
  119095. +double: 1
  119096. +float: 2
  119097. +idouble: 1
  119098. +ifloat: 2
  119099. +ildouble: 2
  119100. +ldouble: 2
  119101. +
  119102. +Function: Imaginary part of "casinh":
  119103. +double: 1
  119104. +float: 1
  119105. +idouble: 1
  119106. +ifloat: 1
  119107. +ildouble: 2
  119108. +ldouble: 2
  119109. +
  119110. +Function: Real part of "catan":
  119111. +float: 1
  119112. +ifloat: 1
  119113. +ildouble: 1
  119114. +ldouble: 1
  119115. +
  119116. +Function: Imaginary part of "catan":
  119117. +double: 1
  119118. +float: 1
  119119. +idouble: 1
  119120. +ifloat: 1
  119121. +ildouble: 1
  119122. +ldouble: 1
  119123. +
  119124. +Function: Real part of "catanh":
  119125. +double: 1
  119126. +float: 1
  119127. +idouble: 1
  119128. +ifloat: 1
  119129. +ildouble: 1
  119130. +ldouble: 1
  119131. +
  119132. +Function: Imaginary part of "catanh":
  119133. +float: 1
  119134. +ifloat: 1
  119135. +ildouble: 1
  119136. +ldouble: 1
  119137. +
  119138. +Function: "cbrt":
  119139. +double: 1
  119140. +idouble: 1
  119141. +ildouble: 1
  119142. +ldouble: 1
  119143. +
  119144. +Function: Real part of "ccos":
  119145. +double: 1
  119146. +float: 1
  119147. +idouble: 1
  119148. +ifloat: 1
  119149. +ildouble: 1
  119150. +ldouble: 1
  119151. +
  119152. +Function: Imaginary part of "ccos":
  119153. +double: 1
  119154. +float: 1
  119155. +idouble: 1
  119156. +ifloat: 1
  119157. +ildouble: 1
  119158. +ldouble: 1
  119159. +
  119160. +Function: Real part of "ccosh":
  119161. +double: 1
  119162. +float: 1
  119163. +idouble: 1
  119164. +ifloat: 1
  119165. +ildouble: 1
  119166. +ldouble: 1
  119167. +
  119168. +Function: Imaginary part of "ccosh":
  119169. +double: 1
  119170. +float: 1
  119171. +idouble: 1
  119172. +ifloat: 1
  119173. +ildouble: 1
  119174. +ldouble: 1
  119175. +
  119176. +Function: Real part of "cexp":
  119177. +double: 2
  119178. +float: 1
  119179. +idouble: 2
  119180. +ifloat: 1
  119181. +ildouble: 1
  119182. +ldouble: 1
  119183. +
  119184. +Function: Imaginary part of "cexp":
  119185. +double: 1
  119186. +float: 2
  119187. +idouble: 1
  119188. +ifloat: 2
  119189. +ildouble: 1
  119190. +ldouble: 1
  119191. +
  119192. +Function: Real part of "clog":
  119193. +double: 1
  119194. +float: 1
  119195. +idouble: 1
  119196. +ifloat: 1
  119197. +ildouble: 1
  119198. +ldouble: 1
  119199. +
  119200. +Function: Imaginary part of "clog":
  119201. +float: 1
  119202. +ifloat: 1
  119203. +ildouble: 1
  119204. +ldouble: 1
  119205. +
  119206. +Function: Real part of "clog10":
  119207. +double: 2
  119208. +float: 2
  119209. +idouble: 2
  119210. +ifloat: 2
  119211. +ildouble: 1
  119212. +ldouble: 1
  119213. +
  119214. +Function: Imaginary part of "clog10":
  119215. +double: 1
  119216. +float: 1
  119217. +idouble: 1
  119218. +ifloat: 1
  119219. +ildouble: 2
  119220. +ldouble: 2
  119221. +
  119222. +Function: "cos":
  119223. +double: 2
  119224. +float: 1
  119225. +idouble: 2
  119226. +ifloat: 1
  119227. +ildouble: 1
  119228. +ldouble: 1
  119229. +
  119230. +Function: "cos_downward":
  119231. +float: 1
  119232. +ifloat: 1
  119233. +
  119234. +Function: "cos_tonearest":
  119235. +float: 1
  119236. +ifloat: 1
  119237. +
  119238. +Function: "cos_towardzero":
  119239. +float: 1
  119240. +ifloat: 1
  119241. +
  119242. +Function: "cos_upward":
  119243. +float: 2
  119244. +ifloat: 2
  119245. +
  119246. +Function: "cosh_downward":
  119247. +float: 1
  119248. +ifloat: 1
  119249. +
  119250. +Function: "cosh_tonearest":
  119251. +ildouble: 1
  119252. +ldouble: 1
  119253. +
  119254. +Function: "cosh_towardzero":
  119255. +float: 1
  119256. +ifloat: 1
  119257. +
  119258. +Function: Real part of "cpow":
  119259. +double: 2
  119260. +float: 4
  119261. +idouble: 2
  119262. +ifloat: 4
  119263. +ildouble: 4
  119264. +ldouble: 4
  119265. +
  119266. +Function: Imaginary part of "cpow":
  119267. +float: 2
  119268. +ifloat: 2
  119269. +ildouble: 1
  119270. +ldouble: 1
  119271. +
  119272. +Function: Real part of "csin":
  119273. +double: 1
  119274. +float: 1
  119275. +idouble: 1
  119276. +ifloat: 1
  119277. +ildouble: 1
  119278. +ldouble: 1
  119279. +
  119280. +Function: Imaginary part of "csin":
  119281. +ildouble: 1
  119282. +ldouble: 1
  119283. +
  119284. +Function: Real part of "csinh":
  119285. +float: 1
  119286. +ifloat: 1
  119287. +ildouble: 1
  119288. +ldouble: 1
  119289. +
  119290. +Function: Imaginary part of "csinh":
  119291. +double: 1
  119292. +float: 1
  119293. +idouble: 1
  119294. +ifloat: 1
  119295. +ildouble: 1
  119296. +ldouble: 1
  119297. +
  119298. +Function: Real part of "csqrt":
  119299. +double: 1
  119300. +float: 1
  119301. +idouble: 1
  119302. +ifloat: 1
  119303. +ildouble: 1
  119304. +ldouble: 1
  119305. +
  119306. +Function: Imaginary part of "csqrt":
  119307. +double: 1
  119308. +float: 1
  119309. +idouble: 1
  119310. +ifloat: 1
  119311. +ildouble: 1
  119312. +ldouble: 1
  119313. +
  119314. +Function: Real part of "ctan":
  119315. +double: 1
  119316. +float: 1
  119317. +idouble: 1
  119318. +ifloat: 1
  119319. +ildouble: 2
  119320. +ldouble: 2
  119321. +
  119322. +Function: Imaginary part of "ctan":
  119323. +double: 1
  119324. +idouble: 1
  119325. +ildouble: 2
  119326. +ldouble: 2
  119327. +
  119328. +Function: Real part of "ctan_downward":
  119329. +double: 2
  119330. +float: 1
  119331. +idouble: 2
  119332. +ifloat: 1
  119333. +
  119334. +Function: Imaginary part of "ctan_downward":
  119335. +float: 1
  119336. +ifloat: 1
  119337. +
  119338. +Function: Real part of "ctan_tonearest":
  119339. +float: 1
  119340. +ifloat: 1
  119341. +ildouble: 3
  119342. +ldouble: 3
  119343. +
  119344. +Function: Imaginary part of "ctan_tonearest":
  119345. +float: 1
  119346. +ifloat: 1
  119347. +ildouble: 3
  119348. +ldouble: 3
  119349. +
  119350. +Function: Real part of "ctan_towardzero":
  119351. +float: 1
  119352. +ifloat: 1
  119353. +
  119354. +Function: Imaginary part of "ctan_towardzero":
  119355. +float: 1
  119356. +ifloat: 1
  119357. +
  119358. +Function: Real part of "ctan_upward":
  119359. +double: 2
  119360. +float: 1
  119361. +idouble: 2
  119362. +ifloat: 1
  119363. +
  119364. +Function: Imaginary part of "ctan_upward":
  119365. +double: 1
  119366. +float: 2
  119367. +idouble: 1
  119368. +ifloat: 2
  119369. +
  119370. +Function: Real part of "ctanh":
  119371. +double: 1
  119372. +float: 1
  119373. +idouble: 1
  119374. +ifloat: 1
  119375. +ildouble: 2
  119376. +ldouble: 2
  119377. +
  119378. +Function: Imaginary part of "ctanh":
  119379. +double: 1
  119380. +float: 2
  119381. +idouble: 1
  119382. +ifloat: 2
  119383. +ildouble: 2
  119384. +ldouble: 2
  119385. +
  119386. +Function: Real part of "ctanh_downward":
  119387. +float: 1
  119388. +ifloat: 1
  119389. +
  119390. +Function: Imaginary part of "ctanh_downward":
  119391. +double: 2
  119392. +float: 1
  119393. +idouble: 2
  119394. +ifloat: 1
  119395. +
  119396. +Function: Real part of "ctanh_tonearest":
  119397. +float: 1
  119398. +ifloat: 1
  119399. +ildouble: 3
  119400. +ldouble: 3
  119401. +
  119402. +Function: Imaginary part of "ctanh_tonearest":
  119403. +float: 1
  119404. +ifloat: 1
  119405. +ildouble: 3
  119406. +ldouble: 3
  119407. +
  119408. +Function: Real part of "ctanh_towardzero":
  119409. +float: 1
  119410. +ifloat: 1
  119411. +
  119412. +Function: Imaginary part of "ctanh_towardzero":
  119413. +float: 1
  119414. +ifloat: 1
  119415. +
  119416. +Function: Real part of "ctanh_upward":
  119417. +double: 1
  119418. +float: 2
  119419. +idouble: 1
  119420. +ifloat: 2
  119421. +
  119422. +Function: Imaginary part of "ctanh_upward":
  119423. +double: 2
  119424. +float: 1
  119425. +idouble: 2
  119426. +ifloat: 1
  119427. +
  119428. +Function: "erf":
  119429. +double: 1
  119430. +idouble: 1
  119431. +
  119432. +Function: "erfc":
  119433. +double: 1
  119434. +float: 1
  119435. +idouble: 1
  119436. +ifloat: 1
  119437. +ildouble: 1
  119438. +ldouble: 1
  119439. +
  119440. +Function: "exp10":
  119441. +double: 1
  119442. +idouble: 1
  119443. +ildouble: 1
  119444. +ldouble: 1
  119445. +
  119446. +Function: "exp2":
  119447. +ildouble: 1
  119448. +ldouble: 1
  119449. +
  119450. +Function: "exp_downward":
  119451. +float: 1
  119452. +ifloat: 1
  119453. +
  119454. +Function: "exp_towardzero":
  119455. +float: 1
  119456. +ifloat: 1
  119457. +
  119458. +Function: "exp_upward":
  119459. +float: 1
  119460. +ifloat: 1
  119461. +
  119462. +Function: "expm1":
  119463. +double: 1
  119464. +float: 1
  119465. +idouble: 1
  119466. +ifloat: 1
  119467. +ildouble: 1
  119468. +ldouble: 1
  119469. +
  119470. +Function: "gamma":
  119471. +double: 1
  119472. +float: 2
  119473. +idouble: 1
  119474. +ifloat: 2
  119475. +ildouble: 1
  119476. +ldouble: 1
  119477. +
  119478. +Function: "hypot":
  119479. +float: 1
  119480. +ifloat: 1
  119481. +
  119482. +Function: "j0":
  119483. +double: 2
  119484. +float: 2
  119485. +idouble: 2
  119486. +ifloat: 2
  119487. +ildouble: 2
  119488. +ldouble: 2
  119489. +
  119490. +Function: "j1":
  119491. +double: 1
  119492. +float: 2
  119493. +idouble: 1
  119494. +ifloat: 2
  119495. +ildouble: 4
  119496. +ldouble: 4
  119497. +
  119498. +Function: "jn":
  119499. +double: 4
  119500. +float: 5
  119501. +idouble: 4
  119502. +ifloat: 5
  119503. +ildouble: 8
  119504. +ldouble: 8
  119505. +
  119506. +Function: "lgamma":
  119507. +double: 1
  119508. +float: 2
  119509. +idouble: 1
  119510. +ifloat: 2
  119511. +ildouble: 1
  119512. +ldouble: 1
  119513. +
  119514. +Function: "log10":
  119515. +double: 1
  119516. +float: 2
  119517. +idouble: 1
  119518. +ifloat: 2
  119519. +ildouble: 1
  119520. +ldouble: 1
  119521. +
  119522. +Function: "log1p":
  119523. +float: 1
  119524. +ifloat: 1
  119525. +ildouble: 1
  119526. +ldouble: 1
  119527. +
  119528. +Function: "log2":
  119529. +ildouble: 1
  119530. +ldouble: 1
  119531. +
  119532. +Function: "pow":
  119533. +float: 1
  119534. +ifloat: 1
  119535. +ildouble: 1
  119536. +ldouble: 1
  119537. +
  119538. +Function: "pow10":
  119539. +double: 1
  119540. +idouble: 1
  119541. +ildouble: 1
  119542. +ldouble: 1
  119543. +
  119544. +Function: "pow_downward":
  119545. +float: 1
  119546. +ifloat: 1
  119547. +
  119548. +Function: "pow_towardzero":
  119549. +float: 1
  119550. +ifloat: 1
  119551. +
  119552. +Function: "pow_upward":
  119553. +float: 1
  119554. +ifloat: 1
  119555. +
  119556. +Function: "sin_downward":
  119557. +float: 1
  119558. +ifloat: 1
  119559. +
  119560. +Function: "sin_tonearest":
  119561. +float: 1
  119562. +ifloat: 1
  119563. +ildouble: 1
  119564. +ldouble: 1
  119565. +
  119566. +Function: "sin_towardzero":
  119567. +float: 1
  119568. +ifloat: 1
  119569. +
  119570. +Function: "sin_upward":
  119571. +float: 2
  119572. +ifloat: 2
  119573. +
  119574. +Function: "sincos":
  119575. +double: 1
  119576. +float: 1
  119577. +idouble: 1
  119578. +ifloat: 1
  119579. +ildouble: 1
  119580. +ldouble: 1
  119581. +
  119582. +Function: "sinh_downward":
  119583. +float: 1
  119584. +ifloat: 1
  119585. +
  119586. +Function: "sinh_towardzero":
  119587. +float: 1
  119588. +ifloat: 1
  119589. +
  119590. +Function: "tan":
  119591. +double: 1
  119592. +idouble: 1
  119593. +
  119594. +Function: "tan_downward":
  119595. +float: 1
  119596. +ifloat: 1
  119597. +
  119598. +Function: "tan_towardzero":
  119599. +float: 1
  119600. +ifloat: 1
  119601. +
  119602. +Function: "tan_upward":
  119603. +float: 1
  119604. +ifloat: 1
  119605. +
  119606. +Function: "tanh":
  119607. +ildouble: 1
  119608. +ldouble: 1
  119609. +
  119610. +Function: "tgamma":
  119611. +double: 4
  119612. +float: 3
  119613. +idouble: 4
  119614. +ifloat: 3
  119615. +ildouble: 4
  119616. +ldouble: 4
  119617. +
  119618. +Function: "y0":
  119619. +double: 2
  119620. +float: 1
  119621. +idouble: 2
  119622. +ifloat: 1
  119623. +ildouble: 3
  119624. +ldouble: 3
  119625. +
  119626. +Function: "y1":
  119627. +double: 3
  119628. +float: 2
  119629. +idouble: 3
  119630. +ifloat: 2
  119631. +ildouble: 2
  119632. +ldouble: 2
  119633. +
  119634. +Function: "yn":
  119635. +double: 3
  119636. +float: 2
  119637. +idouble: 3
  119638. +ifloat: 2
  119639. +ildouble: 5
  119640. +ldouble: 5
  119641. +
  119642. +# end of automatic generation
  119643. diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-sh uClibc-git/test/math/libm-test-ulps-sh
  119644. --- uClibc-0.9.33.2/test/math/libm-test-ulps-sh 1970-01-01 01:00:00.000000000 +0100
  119645. +++ uClibc-git/test/math/libm-test-ulps-sh 2014-06-02 17:40:35.270718936 +0200
  119646. @@ -0,0 +1,1094 @@
  119647. +# Begin of automatic generation
  119648. +
  119649. +# asin
  119650. +Test "asin (-0.5) == -pi/6":
  119651. +float: 2
  119652. +ifloat: 2
  119653. +Test "asin (0.5) == pi/6":
  119654. +float: 2
  119655. +ifloat: 2
  119656. +Test "asin (0.7) == 0.7753974966107530637":
  119657. +double: 1
  119658. +float: 2
  119659. +idouble: 1
  119660. +ifloat: 2
  119661. +
  119662. +# atan2
  119663. +Test "atan2 (0.7, -1.0) == 2.530866689200584621918884506789267":
  119664. +float: 3
  119665. +ifloat: 3
  119666. +Test "atan2 (-0.7, -1.0) == -2.530866689200584621918884506789267":
  119667. +float: 3
  119668. +ifloat: 3
  119669. +Test "atan2 (1.4, -0.93) == 2.1571487668237843754887415992772736":
  119670. +float: 4
  119671. +ifloat: 4
  119672. +
  119673. +# atanh
  119674. +Test "atanh (0.7) == 0.8673005276940531944":
  119675. +double: 1
  119676. +idouble: 1
  119677. +
  119678. +# cabs
  119679. +Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
  119680. +float: 1
  119681. +ifloat: 1
  119682. +Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
  119683. +float: 1
  119684. +ifloat: 1
  119685. +Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
  119686. +float: 1
  119687. +ifloat: 1
  119688. +Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
  119689. +float: 1
  119690. +ifloat: 1
  119691. +Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
  119692. +double: 1
  119693. +idouble: 1
  119694. +Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
  119695. +float: 1
  119696. +ifloat: 1
  119697. +
  119698. +# cacos
  119699. +Test "Real part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i":
  119700. +double: 1
  119701. +float: 1
  119702. +idouble: 1
  119703. +ifloat: 1
  119704. +Test "Imaginary part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i":
  119705. +float: 1
  119706. +ifloat: 1
  119707. +
  119708. +# cacosh
  119709. +Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
  119710. +double: 1
  119711. +float: 7
  119712. +idouble: 1
  119713. +ifloat: 7
  119714. +Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
  119715. +double: 1
  119716. +float: 3
  119717. +idouble: 1
  119718. +ifloat: 3
  119719. +Test "Real part of: cacosh (0.7 + 1.2 i) == 1.0927647857577371459105272080819308 + 1.1351827477151551088992008271819053 i":
  119720. +double: 1
  119721. +float: 1
  119722. +idouble: 1
  119723. +ifloat: 1
  119724. +
  119725. +# casin
  119726. +Test "Real part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i":
  119727. +double: 3
  119728. +float: 2
  119729. +idouble: 3
  119730. +ifloat: 2
  119731. +Test "Imaginary part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i":
  119732. +float: 1
  119733. +ifloat: 1
  119734. +
  119735. +# casinh
  119736. +Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
  119737. +double: 5
  119738. +float: 1
  119739. +idouble: 5
  119740. +ifloat: 1
  119741. +Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
  119742. +double: 3
  119743. +float: 6
  119744. +idouble: 3
  119745. +ifloat: 6
  119746. +Test "Real part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
  119747. +double: 1
  119748. +idouble: 1
  119749. +Test "Imaginary part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
  119750. +float: 1
  119751. +ifloat: 1
  119752. +
  119753. +# catan
  119754. +Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
  119755. +float: 3
  119756. +ifloat: 3
  119757. +Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
  119758. +double: 1
  119759. +float: 1
  119760. +idouble: 1
  119761. +ifloat: 1
  119762. +Test "Real part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
  119763. +float: 4
  119764. +ifloat: 4
  119765. +Test "Imaginary part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
  119766. +double: 1
  119767. +idouble: 1
  119768. +
  119769. +# catanh
  119770. +Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
  119771. +double: 4
  119772. +idouble: 4
  119773. +Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
  119774. +float: 4
  119775. +ifloat: 4
  119776. +Test "Real part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
  119777. +float: 1
  119778. +ifloat: 1
  119779. +Test "Imaginary part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
  119780. +double: 1
  119781. +float: 6
  119782. +idouble: 1
  119783. +ifloat: 6
  119784. +
  119785. +# cbrt
  119786. +Test "cbrt (-27.0) == -3.0":
  119787. +double: 1
  119788. +idouble: 1
  119789. +Test "cbrt (0.970299) == 0.99":
  119790. +double: 1
  119791. +idouble: 1
  119792. +
  119793. +# ccos
  119794. +Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
  119795. +float: 1
  119796. +ifloat: 1
  119797. +Test "Real part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i":
  119798. +double: 1
  119799. +idouble: 1
  119800. +Test "Imaginary part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i":
  119801. +double: 1
  119802. +idouble: 1
  119803. +
  119804. +# ccosh
  119805. +Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
  119806. +float: 1
  119807. +ifloat: 1
  119808. +Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
  119809. +float: 1
  119810. +ifloat: 1
  119811. +Test "Real part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i":
  119812. +double: 1
  119813. +float: 1
  119814. +idouble: 1
  119815. +ifloat: 1
  119816. +Test "Imaginary part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i":
  119817. +double: 1
  119818. +idouble: 1
  119819. +
  119820. +# cexp
  119821. +Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
  119822. +float: 1
  119823. +ifloat: 1
  119824. +Test "Real part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
  119825. +double: 1
  119826. +float: 1
  119827. +idouble: 1
  119828. +ifloat: 1
  119829. +Test "Imaginary part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
  119830. +float: 1
  119831. +ifloat: 1
  119832. +
  119833. +# clog
  119834. +Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i":
  119835. +double: 1
  119836. +float: 3
  119837. +idouble: 1
  119838. +ifloat: 3
  119839. +
  119840. +# clog10
  119841. +Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
  119842. +float: 1
  119843. +ifloat: 1
  119844. +Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
  119845. +float: 1
  119846. +ifloat: 1
  119847. +Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
  119848. +double: 1
  119849. +float: 5
  119850. +idouble: 1
  119851. +ifloat: 5
  119852. +Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
  119853. +float: 1
  119854. +ifloat: 1
  119855. +Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
  119856. +float: 1
  119857. +ifloat: 1
  119858. +Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
  119859. +float: 1
  119860. +ifloat: 1
  119861. +Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
  119862. +float: 1
  119863. +ifloat: 1
  119864. +Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
  119865. +float: 1
  119866. +ifloat: 1
  119867. +Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
  119868. +float: 1
  119869. +ifloat: 1
  119870. +Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
  119871. +float: 1
  119872. +ifloat: 1
  119873. +Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
  119874. +float: 1
  119875. +ifloat: 1
  119876. +Test "Real part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i":
  119877. +double: 1
  119878. +float: 1
  119879. +idouble: 1
  119880. +ifloat: 1
  119881. +Test "Imaginary part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i":
  119882. +double: 1
  119883. +idouble: 1
  119884. +Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
  119885. +float: 1
  119886. +ifloat: 1
  119887. +Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
  119888. +float: 1
  119889. +ifloat: 1
  119890. +Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
  119891. +float: 1
  119892. +ifloat: 1
  119893. +Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
  119894. +float: 1
  119895. +ifloat: 1
  119896. +
  119897. +# cos
  119898. +Test "cos (0.7) == 0.7648421872844884262":
  119899. +double: 1
  119900. +float: 1
  119901. +idouble: 1
  119902. +ifloat: 1
  119903. +Test "cos (M_PI_6l * 2.0) == 0.5":
  119904. +double: 1
  119905. +float: 0.5
  119906. +idouble: 1
  119907. +ifloat: 0.5
  119908. +Test "cos (M_PI_6l * 4.0) == -0.5":
  119909. +double: 2
  119910. +float: 1
  119911. +idouble: 2
  119912. +ifloat: 1
  119913. +Test "cos (pi/2) == 0":
  119914. +double: 0.2758
  119915. +float: 0.3667
  119916. +idouble: 0.2758
  119917. +ifloat: 0.3667
  119918. +
  119919. +# cpow
  119920. +Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
  119921. +double: 1
  119922. +float: 4
  119923. +idouble: 1
  119924. +ifloat: 4
  119925. +Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
  119926. +float: 2
  119927. +ifloat: 2
  119928. +Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
  119929. +double: 1.1031
  119930. +float: 1.5
  119931. +idouble: 1.1031
  119932. +ifloat: 1.5
  119933. +
  119934. +# csin
  119935. +Test "Imaginary part of: csin (0.7 + 1.2 i) == 1.1664563419657581376 + 1.1544997246948547371 i":
  119936. +float: 1
  119937. +ifloat: 1
  119938. +
  119939. +# csinh
  119940. +Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
  119941. +double: 1
  119942. +idouble: 1
  119943. +Test "Real part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
  119944. +float: 1
  119945. +ifloat: 1
  119946. +Test "Imaginary part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
  119947. +float: 1
  119948. +ifloat: 1
  119949. +
  119950. +# csqrt
  119951. +Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
  119952. +float: 1
  119953. +ifloat: 1
  119954. +Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
  119955. +float: 1
  119956. +ifloat: 1
  119957. +Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
  119958. +double: 1
  119959. +float: 1
  119960. +idouble: 1
  119961. +ifloat: 1
  119962. +Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
  119963. +float: 1
  119964. +ifloat: 1
  119965. +
  119966. +# ctan
  119967. +Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
  119968. +double: 1
  119969. +idouble: 1
  119970. +Test "Real part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i":
  119971. +float: 1
  119972. +ifloat: 1
  119973. +Test "Imaginary part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i":
  119974. +double: 1
  119975. +float: 1
  119976. +idouble: 1
  119977. +ifloat: 1
  119978. +
  119979. +# ctanh
  119980. +Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
  119981. +double: 1
  119982. +float: 2
  119983. +idouble: 1
  119984. +ifloat: 2
  119985. +Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
  119986. +float: 1
  119987. +ifloat: 1
  119988. +Test "Real part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i":
  119989. +double: 2
  119990. +float: 1
  119991. +idouble: 2
  119992. +ifloat: 1
  119993. +Test "Imaginary part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i":
  119994. +double: 2
  119995. +float: 1
  119996. +idouble: 2
  119997. +ifloat: 1
  119998. +
  119999. +# erfc
  120000. +Test "erfc (0.7) == 0.32219880616258152702":
  120001. +double: 1
  120002. +idouble: 1
  120003. +Test "erfc (1.2) == 0.089686021770364619762":
  120004. +double: 2
  120005. +float: 2
  120006. +idouble: 2
  120007. +ifloat: 2
  120008. +Test "erfc (2.0) == 0.0046777349810472658379":
  120009. +double: 1
  120010. +idouble: 1
  120011. +Test "erfc (4.1) == 0.67000276540848983727e-8":
  120012. +double: 24
  120013. +float: 12
  120014. +idouble: 24
  120015. +ifloat: 12
  120016. +
  120017. +# exp10
  120018. +Test "exp10 (-1) == 0.1":
  120019. +double: 2
  120020. +float: 1
  120021. +idouble: 2
  120022. +ifloat: 1
  120023. +Test "exp10 (0.7) == 5.0118723362727228500":
  120024. +float: 1
  120025. +ifloat: 1
  120026. +Test "exp10 (3) == 1000":
  120027. +double: 6
  120028. +float: 2
  120029. +idouble: 6
  120030. +ifloat: 2
  120031. +
  120032. +# expm1
  120033. +Test "expm1 (1) == M_El - 1.0":
  120034. +float: 1
  120035. +ifloat: 1
  120036. +
  120037. +# fmod
  120038. +Test "fmod (-6.5, -2.3) == -1.9":
  120039. +double: 2
  120040. +float: 1
  120041. +idouble: 2
  120042. +ifloat: 1
  120043. +Test "fmod (-6.5, 2.3) == -1.9":
  120044. +double: 2
  120045. +float: 1
  120046. +idouble: 2
  120047. +ifloat: 1
  120048. +Test "fmod (6.5, -2.3) == 1.9":
  120049. +double: 2
  120050. +float: 1
  120051. +idouble: 2
  120052. +ifloat: 1
  120053. +Test "fmod (6.5, 2.3) == 1.9":
  120054. +double: 2
  120055. +float: 1
  120056. +idouble: 2
  120057. +ifloat: 1
  120058. +
  120059. +# hypot
  120060. +Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
  120061. +float: 1
  120062. +ifloat: 1
  120063. +Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
  120064. +float: 1
  120065. +ifloat: 1
  120066. +Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
  120067. +float: 1
  120068. +ifloat: 1
  120069. +Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
  120070. +float: 1
  120071. +ifloat: 1
  120072. +Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
  120073. +float: 1
  120074. +ifloat: 1
  120075. +Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
  120076. +double: 1
  120077. +idouble: 1
  120078. +Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
  120079. +float: 1
  120080. +ifloat: 1
  120081. +Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
  120082. +float: 1
  120083. +ifloat: 1
  120084. +Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
  120085. +float: 1
  120086. +ifloat: 1
  120087. +
  120088. +# j0
  120089. +Test "j0 (10.0) == -0.24593576445134833520":
  120090. +double: 2
  120091. +float: 1
  120092. +idouble: 2
  120093. +ifloat: 1
  120094. +Test "j0 (2.0) == 0.22389077914123566805":
  120095. +float: 2
  120096. +ifloat: 2
  120097. +Test "j0 (8.0) == 0.17165080713755390609":
  120098. +float: 1
  120099. +ifloat: 1
  120100. +
  120101. +# j1
  120102. +Test "j1 (10.0) == 0.043472746168861436670":
  120103. +float: 2
  120104. +ifloat: 2
  120105. +Test "j1 (2.0) == 0.57672480775687338720":
  120106. +double: 1
  120107. +idouble: 1
  120108. +Test "j1 (8.0) == 0.23463634685391462438":
  120109. +double: 1
  120110. +idouble: 1
  120111. +
  120112. +# jn
  120113. +Test "jn (0, 10.0) == -0.24593576445134833520":
  120114. +double: 2
  120115. +float: 1
  120116. +idouble: 2
  120117. +ifloat: 1
  120118. +Test "jn (0, 2.0) == 0.22389077914123566805":
  120119. +float: 2
  120120. +ifloat: 2
  120121. +Test "jn (0, 8.0) == 0.17165080713755390609":
  120122. +float: 1
  120123. +ifloat: 1
  120124. +Test "jn (1, 10.0) == 0.043472746168861436670":
  120125. +float: 2
  120126. +ifloat: 2
  120127. +Test "jn (1, 2.0) == 0.57672480775687338720":
  120128. +double: 1
  120129. +idouble: 1
  120130. +Test "jn (1, 8.0) == 0.23463634685391462438":
  120131. +double: 1
  120132. +idouble: 1
  120133. +Test "jn (10, 0.1) == 0.26905328954342155795e-19":
  120134. +double: 6
  120135. +float: 4
  120136. +idouble: 6
  120137. +ifloat: 4
  120138. +Test "jn (10, 0.7) == 0.75175911502153953928e-11":
  120139. +double: 3
  120140. +float: 1
  120141. +idouble: 3
  120142. +ifloat: 1
  120143. +Test "jn (10, 10.0) == 0.20748610663335885770":
  120144. +double: 4
  120145. +float: 3
  120146. +idouble: 4
  120147. +ifloat: 3
  120148. +Test "jn (10, 2.0) == 0.25153862827167367096e-6":
  120149. +float: 4
  120150. +ifloat: 4
  120151. +Test "jn (3, 0.1) == 0.000020820315754756261429":
  120152. +double: 1
  120153. +idouble: 1
  120154. +Test "jn (3, 0.7) == 0.0069296548267508408077":
  120155. +float: 1
  120156. +ifloat: 1
  120157. +Test "jn (3, 10.0) == 0.058379379305186812343":
  120158. +double: 3
  120159. +float: 1
  120160. +idouble: 3
  120161. +ifloat: 1
  120162. +Test "jn (3, 2.0) == 0.12894324947440205110":
  120163. +double: 1
  120164. +float: 2
  120165. +idouble: 1
  120166. +ifloat: 2
  120167. +
  120168. +# lgamma
  120169. +Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
  120170. +double: 1
  120171. +float: 1
  120172. +idouble: 1
  120173. +ifloat: 1
  120174. +Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
  120175. +double: 1
  120176. +float: 2
  120177. +idouble: 1
  120178. +ifloat: 2
  120179. +
  120180. +# log
  120181. +Test "log (0.7) == -0.35667494393873237891263871124118447":
  120182. +double: 1
  120183. +float: 1
  120184. +idouble: 1
  120185. +ifloat: 1
  120186. +
  120187. +# log10
  120188. +Test "log10 (0.7) == -0.15490195998574316929":
  120189. +double: 1
  120190. +float: 1
  120191. +idouble: 1
  120192. +ifloat: 1
  120193. +Test "log10 (e) == log10(e)":
  120194. +float: 1
  120195. +ifloat: 1
  120196. +
  120197. +# log1p
  120198. +Test "log1p (-0.3) == -0.35667494393873237891263871124118447":
  120199. +double: 1
  120200. +float: 1
  120201. +idouble: 1
  120202. +ifloat: 1
  120203. +
  120204. +# log2
  120205. +Test "log2 (0.7) == -0.51457317282975824043":
  120206. +double: 1
  120207. +float: 1
  120208. +idouble: 1
  120209. +ifloat: 1
  120210. +
  120211. +# sincos
  120212. +Test "sincos (0.7, &sin_res, &cos_res) puts 0.76484218728448842626 in cos_res":
  120213. +double: 1
  120214. +float: 1
  120215. +idouble: 1
  120216. +ifloat: 1
  120217. +Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
  120218. +double: 1
  120219. +float: 0.5
  120220. +idouble: 1
  120221. +ifloat: 0.5
  120222. +Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.866025403784438646764 in sin_res":
  120223. +double: 1
  120224. +float: 1
  120225. +idouble: 1
  120226. +ifloat: 1
  120227. +Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
  120228. +double: 0.2758
  120229. +float: 0.3667
  120230. +idouble: 0.2758
  120231. +ifloat: 0.3667
  120232. +Test "sincos (pi/6, &sin_res, &cos_res) puts 0.866025403784438646764 in cos_res":
  120233. +float: 1
  120234. +ifloat: 1
  120235. +
  120236. +# sinh
  120237. +Test "sinh (0.7) == 0.75858370183953350346":
  120238. +double: 1
  120239. +float: 1
  120240. +idouble: 1
  120241. +ifloat: 1
  120242. +
  120243. +# tan
  120244. +Test "tan (pi/4) == 1":
  120245. +double: 0.5
  120246. +idouble: 0.5
  120247. +
  120248. +# tanh
  120249. +Test "tanh (0.7) == 0.60436777711716349631":
  120250. +double: 1
  120251. +float: 1
  120252. +idouble: 1
  120253. +ifloat: 1
  120254. +
  120255. +# tgamma
  120256. +Test "tgamma (-0.5) == -2 sqrt (pi)":
  120257. +double: 1
  120258. +float: 1
  120259. +idouble: 1
  120260. +ifloat: 1
  120261. +Test "tgamma (0.5) == sqrt (pi)":
  120262. +float: 1
  120263. +ifloat: 1
  120264. +Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
  120265. +double: 1
  120266. +float: 1
  120267. +idouble: 1
  120268. +ifloat: 1
  120269. +
  120270. +# y0
  120271. +Test "y0 (0.7) == -0.19066492933739506743":
  120272. +double: 2
  120273. +float: 1
  120274. +idouble: 2
  120275. +ifloat: 1
  120276. +Test "y0 (1.0) == 0.088256964215676957983":
  120277. +double: 2
  120278. +float: 1
  120279. +idouble: 2
  120280. +ifloat: 1
  120281. +Test "y0 (1.5) == 0.38244892379775884396":
  120282. +double: 2
  120283. +float: 1
  120284. +idouble: 2
  120285. +ifloat: 1
  120286. +Test "y0 (10.0) == 0.055671167283599391424":
  120287. +float: 1
  120288. +ifloat: 1
  120289. +Test "y0 (8.0) == 0.22352148938756622053":
  120290. +double: 1
  120291. +float: 1
  120292. +idouble: 1
  120293. +ifloat: 1
  120294. +
  120295. +# y1
  120296. +Test "y1 (0.1) == -6.4589510947020269877":
  120297. +double: 1
  120298. +idouble: 1
  120299. +Test "y1 (0.7) == -1.1032498719076333697":
  120300. +double: 1
  120301. +float: 1
  120302. +idouble: 1
  120303. +ifloat: 1
  120304. +Test "y1 (1.5) == -0.41230862697391129595":
  120305. +float: 1
  120306. +ifloat: 1
  120307. +Test "y1 (10.0) == 0.24901542420695388392":
  120308. +double: 3
  120309. +float: 1
  120310. +idouble: 3
  120311. +ifloat: 1
  120312. +Test "y1 (2.0) == -0.10703243154093754689":
  120313. +double: 1
  120314. +float: 1
  120315. +idouble: 1
  120316. +ifloat: 1
  120317. +Test "y1 (8.0) == -0.15806046173124749426":
  120318. +double: 1
  120319. +float: 2
  120320. +idouble: 1
  120321. +ifloat: 2
  120322. +
  120323. +# yn
  120324. +Test "yn (0, 0.7) == -0.19066492933739506743":
  120325. +double: 2
  120326. +float: 1
  120327. +idouble: 2
  120328. +ifloat: 1
  120329. +Test "yn (0, 1.0) == 0.088256964215676957983":
  120330. +double: 2
  120331. +float: 1
  120332. +idouble: 2
  120333. +ifloat: 1
  120334. +Test "yn (0, 1.5) == 0.38244892379775884396":
  120335. +double: 2
  120336. +float: 1
  120337. +idouble: 2
  120338. +ifloat: 1
  120339. +Test "yn (0, 10.0) == 0.055671167283599391424":
  120340. +float: 1
  120341. +ifloat: 1
  120342. +Test "yn (0, 8.0) == 0.22352148938756622053":
  120343. +double: 1
  120344. +float: 1
  120345. +idouble: 1
  120346. +ifloat: 1
  120347. +Test "yn (1, 0.1) == -6.4589510947020269877":
  120348. +double: 1
  120349. +idouble: 1
  120350. +Test "yn (1, 0.7) == -1.1032498719076333697":
  120351. +double: 1
  120352. +float: 1
  120353. +idouble: 1
  120354. +ifloat: 1
  120355. +Test "yn (1, 1.5) == -0.41230862697391129595":
  120356. +float: 1
  120357. +ifloat: 1
  120358. +Test "yn (1, 10.0) == 0.24901542420695388392":
  120359. +double: 3
  120360. +float: 1
  120361. +idouble: 3
  120362. +ifloat: 1
  120363. +Test "yn (1, 2.0) == -0.10703243154093754689":
  120364. +double: 1
  120365. +float: 1
  120366. +idouble: 1
  120367. +ifloat: 1
  120368. +Test "yn (1, 8.0) == -0.15806046173124749426":
  120369. +double: 1
  120370. +float: 2
  120371. +idouble: 1
  120372. +ifloat: 2
  120373. +Test "yn (10, 0.1) == -0.11831335132045197885e19":
  120374. +double: 2
  120375. +float: 2
  120376. +idouble: 2
  120377. +ifloat: 2
  120378. +Test "yn (10, 0.7) == -0.42447194260703866924e10":
  120379. +double: 3
  120380. +idouble: 3
  120381. +Test "yn (10, 1.0) == -0.12161801427868918929e9":
  120382. +double: 1
  120383. +idouble: 1
  120384. +Test "yn (10, 10.0) == -0.35981415218340272205":
  120385. +double: 1
  120386. +float: 1
  120387. +idouble: 1
  120388. +ifloat: 1
  120389. +Test "yn (10, 2.0) == -129184.54220803928264":
  120390. +double: 2
  120391. +idouble: 2
  120392. +Test "yn (3, 0.1) == -5099.3323786129048894":
  120393. +double: 1
  120394. +float: 1
  120395. +idouble: 1
  120396. +ifloat: 1
  120397. +Test "yn (3, 0.7) == -15.819479052819633505":
  120398. +double: 3
  120399. +float: 1
  120400. +idouble: 3
  120401. +ifloat: 1
  120402. +Test "yn (3, 10.0) == -0.25136265718383732978":
  120403. +double: 1
  120404. +float: 1
  120405. +idouble: 1
  120406. +ifloat: 1
  120407. +Test "yn (3, 2.0) == -1.1277837768404277861":
  120408. +double: 1
  120409. +idouble: 1
  120410. +
  120411. +# Maximal error of functions:
  120412. +Function: "asin":
  120413. +double: 1
  120414. +float: 2
  120415. +idouble: 1
  120416. +ifloat: 2
  120417. +
  120418. +Function: "atan2":
  120419. +float: 4
  120420. +ifloat: 4
  120421. +
  120422. +Function: "atanh":
  120423. +double: 1
  120424. +idouble: 1
  120425. +
  120426. +Function: "cabs":
  120427. +double: 1
  120428. +float: 1
  120429. +idouble: 1
  120430. +ifloat: 1
  120431. +
  120432. +Function: Real part of "cacos":
  120433. +double: 1
  120434. +float: 1
  120435. +idouble: 1
  120436. +ifloat: 1
  120437. +
  120438. +Function: Imaginary part of "cacos":
  120439. +float: 1
  120440. +ifloat: 1
  120441. +
  120442. +Function: Real part of "cacosh":
  120443. +double: 1
  120444. +float: 7
  120445. +idouble: 1
  120446. +ifloat: 7
  120447. +
  120448. +Function: Imaginary part of "cacosh":
  120449. +double: 1
  120450. +float: 3
  120451. +idouble: 1
  120452. +ifloat: 3
  120453. +
  120454. +Function: Real part of "casin":
  120455. +double: 3
  120456. +float: 2
  120457. +idouble: 3
  120458. +ifloat: 2
  120459. +
  120460. +Function: Imaginary part of "casin":
  120461. +float: 1
  120462. +ifloat: 1
  120463. +
  120464. +Function: Real part of "casinh":
  120465. +double: 5
  120466. +float: 1
  120467. +idouble: 5
  120468. +ifloat: 1
  120469. +
  120470. +Function: Imaginary part of "casinh":
  120471. +double: 3
  120472. +float: 6
  120473. +idouble: 3
  120474. +ifloat: 6
  120475. +
  120476. +Function: Real part of "catan":
  120477. +float: 4
  120478. +ifloat: 4
  120479. +
  120480. +Function: Imaginary part of "catan":
  120481. +double: 1
  120482. +float: 1
  120483. +idouble: 1
  120484. +ifloat: 1
  120485. +
  120486. +Function: Real part of "catanh":
  120487. +double: 4
  120488. +float: 1
  120489. +idouble: 4
  120490. +ifloat: 1
  120491. +
  120492. +Function: Imaginary part of "catanh":
  120493. +double: 1
  120494. +float: 6
  120495. +idouble: 1
  120496. +ifloat: 6
  120497. +
  120498. +Function: "cbrt":
  120499. +double: 1
  120500. +idouble: 1
  120501. +
  120502. +Function: Real part of "ccos":
  120503. +double: 1
  120504. +idouble: 1
  120505. +
  120506. +Function: Imaginary part of "ccos":
  120507. +double: 1
  120508. +float: 1
  120509. +idouble: 1
  120510. +ifloat: 1
  120511. +
  120512. +Function: Real part of "ccosh":
  120513. +double: 1
  120514. +float: 1
  120515. +idouble: 1
  120516. +ifloat: 1
  120517. +
  120518. +Function: Imaginary part of "ccosh":
  120519. +double: 1
  120520. +float: 1
  120521. +idouble: 1
  120522. +ifloat: 1
  120523. +
  120524. +Function: Real part of "cexp":
  120525. +double: 1
  120526. +float: 1
  120527. +idouble: 1
  120528. +ifloat: 1
  120529. +
  120530. +Function: Imaginary part of "cexp":
  120531. +float: 1
  120532. +ifloat: 1
  120533. +
  120534. +Function: Imaginary part of "clog":
  120535. +double: 1
  120536. +float: 3
  120537. +idouble: 1
  120538. +ifloat: 3
  120539. +
  120540. +Function: Real part of "clog10":
  120541. +double: 1
  120542. +float: 1
  120543. +idouble: 1
  120544. +ifloat: 1
  120545. +
  120546. +Function: Imaginary part of "clog10":
  120547. +double: 1
  120548. +float: 5
  120549. +idouble: 1
  120550. +ifloat: 5
  120551. +
  120552. +Function: "cos":
  120553. +double: 2
  120554. +float: 1
  120555. +idouble: 2
  120556. +ifloat: 1
  120557. +
  120558. +Function: Real part of "cpow":
  120559. +double: 1
  120560. +float: 4
  120561. +idouble: 1
  120562. +ifloat: 4
  120563. +
  120564. +Function: Imaginary part of "cpow":
  120565. +double: 1.1031
  120566. +float: 2
  120567. +idouble: 1.1031
  120568. +ifloat: 2
  120569. +
  120570. +Function: Imaginary part of "csin":
  120571. +float: 1
  120572. +ifloat: 1
  120573. +
  120574. +Function: Real part of "csinh":
  120575. +float: 1
  120576. +ifloat: 1
  120577. +
  120578. +Function: Imaginary part of "csinh":
  120579. +double: 1
  120580. +float: 1
  120581. +idouble: 1
  120582. +ifloat: 1
  120583. +
  120584. +Function: Real part of "csqrt":
  120585. +double: 1
  120586. +float: 1
  120587. +idouble: 1
  120588. +ifloat: 1
  120589. +
  120590. +Function: Imaginary part of "csqrt":
  120591. +float: 1
  120592. +ifloat: 1
  120593. +
  120594. +Function: Real part of "ctan":
  120595. +double: 1
  120596. +float: 1
  120597. +idouble: 1
  120598. +ifloat: 1
  120599. +
  120600. +Function: Imaginary part of "ctan":
  120601. +double: 1
  120602. +float: 1
  120603. +idouble: 1
  120604. +ifloat: 1
  120605. +
  120606. +Function: Real part of "ctanh":
  120607. +double: 2
  120608. +float: 2
  120609. +idouble: 2
  120610. +ifloat: 2
  120611. +
  120612. +Function: Imaginary part of "ctanh":
  120613. +double: 2
  120614. +float: 1
  120615. +idouble: 2
  120616. +ifloat: 1
  120617. +
  120618. +Function: "erfc":
  120619. +double: 24
  120620. +float: 12
  120621. +idouble: 24
  120622. +ifloat: 12
  120623. +
  120624. +Function: "exp10":
  120625. +double: 6
  120626. +float: 2
  120627. +idouble: 6
  120628. +ifloat: 2
  120629. +
  120630. +Function: "expm1":
  120631. +float: 1
  120632. +ifloat: 1
  120633. +
  120634. +Function: "fmod":
  120635. +double: 2
  120636. +float: 1
  120637. +idouble: 2
  120638. +ifloat: 1
  120639. +
  120640. +Function: "hypot":
  120641. +double: 1
  120642. +float: 1
  120643. +idouble: 1
  120644. +ifloat: 1
  120645. +
  120646. +Function: "j0":
  120647. +double: 2
  120648. +float: 2
  120649. +idouble: 2
  120650. +ifloat: 2
  120651. +
  120652. +Function: "j1":
  120653. +double: 1
  120654. +float: 2
  120655. +idouble: 1
  120656. +ifloat: 2
  120657. +
  120658. +Function: "jn":
  120659. +double: 6
  120660. +float: 4
  120661. +idouble: 6
  120662. +ifloat: 4
  120663. +
  120664. +Function: "lgamma":
  120665. +double: 1
  120666. +float: 2
  120667. +idouble: 1
  120668. +ifloat: 2
  120669. +
  120670. +Function: "log":
  120671. +double: 1
  120672. +float: 1
  120673. +idouble: 1
  120674. +ifloat: 1
  120675. +
  120676. +Function: "log10":
  120677. +double: 1
  120678. +float: 1
  120679. +idouble: 1
  120680. +ifloat: 1
  120681. +
  120682. +Function: "log1p":
  120683. +double: 1
  120684. +float: 1
  120685. +idouble: 1
  120686. +ifloat: 1
  120687. +
  120688. +Function: "log2":
  120689. +double: 1
  120690. +float: 1
  120691. +idouble: 1
  120692. +ifloat: 1
  120693. +
  120694. +Function: "sincos":
  120695. +double: 1
  120696. +float: 1
  120697. +idouble: 1
  120698. +ifloat: 1
  120699. +
  120700. +Function: "sinh":
  120701. +double: 1
  120702. +float: 1
  120703. +idouble: 1
  120704. +ifloat: 1
  120705. +
  120706. +Function: "tan":
  120707. +double: 0.5
  120708. +idouble: 0.5
  120709. +
  120710. +Function: "tanh":
  120711. +double: 1
  120712. +float: 1
  120713. +idouble: 1
  120714. +ifloat: 1
  120715. +
  120716. +Function: "tgamma":
  120717. +double: 1
  120718. +float: 1
  120719. +idouble: 1
  120720. +ifloat: 1
  120721. +
  120722. +Function: "y0":
  120723. +double: 2
  120724. +float: 1
  120725. +idouble: 2
  120726. +ifloat: 1
  120727. +
  120728. +Function: "y1":
  120729. +double: 3
  120730. +float: 2
  120731. +idouble: 3
  120732. +ifloat: 2
  120733. +
  120734. +Function: "yn":
  120735. +double: 3
  120736. +float: 2
  120737. +idouble: 3
  120738. +ifloat: 2
  120739. +
  120740. +# end of automatic generation
  120741. diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-sh4 uClibc-git/test/math/libm-test-ulps-sh4
  120742. --- uClibc-0.9.33.2/test/math/libm-test-ulps-sh4 2012-05-15 09:20:09.000000000 +0200
  120743. +++ uClibc-git/test/math/libm-test-ulps-sh4 1970-01-01 01:00:00.000000000 +0100
  120744. @@ -1,1094 +0,0 @@
  120745. -# Begin of automatic generation
  120746. -
  120747. -# asin
  120748. -Test "asin (-0.5) == -pi/6":
  120749. -float: 2
  120750. -ifloat: 2
  120751. -Test "asin (0.5) == pi/6":
  120752. -float: 2
  120753. -ifloat: 2
  120754. -Test "asin (0.7) == 0.7753974966107530637":
  120755. -double: 1
  120756. -float: 2
  120757. -idouble: 1
  120758. -ifloat: 2
  120759. -
  120760. -# atan2
  120761. -Test "atan2 (0.7, -1.0) == 2.530866689200584621918884506789267":
  120762. -float: 3
  120763. -ifloat: 3
  120764. -Test "atan2 (-0.7, -1.0) == -2.530866689200584621918884506789267":
  120765. -float: 3
  120766. -ifloat: 3
  120767. -Test "atan2 (1.4, -0.93) == 2.1571487668237843754887415992772736":
  120768. -float: 4
  120769. -ifloat: 4
  120770. -
  120771. -# atanh
  120772. -Test "atanh (0.7) == 0.8673005276940531944":
  120773. -double: 1
  120774. -idouble: 1
  120775. -
  120776. -# cabs
  120777. -Test "cabs (-0.7 + 12.4 i) == 12.419742348374220601176836866763271":
  120778. -float: 1
  120779. -ifloat: 1
  120780. -Test "cabs (-0.7 - 12.4 i) == 12.419742348374220601176836866763271":
  120781. -float: 1
  120782. -ifloat: 1
  120783. -Test "cabs (-12.4 + 0.7 i) == 12.419742348374220601176836866763271":
  120784. -float: 1
  120785. -ifloat: 1
  120786. -Test "cabs (-12.4 - 0.7 i) == 12.419742348374220601176836866763271":
  120787. -float: 1
  120788. -ifloat: 1
  120789. -Test "cabs (0.7 + 1.2 i) == 1.3892443989449804508432547041028554":
  120790. -double: 1
  120791. -idouble: 1
  120792. -Test "cabs (0.7 + 12.4 i) == 12.419742348374220601176836866763271":
  120793. -float: 1
  120794. -ifloat: 1
  120795. -
  120796. -# cacos
  120797. -Test "Real part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i":
  120798. -double: 1
  120799. -float: 1
  120800. -idouble: 1
  120801. -ifloat: 1
  120802. -Test "Imaginary part of: cacos (0.7 + 1.2 i) == 1.1351827477151551088992008271819053 - 1.0927647857577371459105272080819308 i":
  120803. -float: 1
  120804. -ifloat: 1
  120805. -
  120806. -# cacosh
  120807. -Test "Real part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
  120808. -double: 1
  120809. -float: 7
  120810. -idouble: 1
  120811. -ifloat: 7
  120812. -Test "Imaginary part of: cacosh (-2 - 3 i) == 1.9833870299165354323470769028940395 - 2.1414491111159960199416055713254211 i":
  120813. -double: 1
  120814. -float: 3
  120815. -idouble: 1
  120816. -ifloat: 3
  120817. -Test "Real part of: cacosh (0.7 + 1.2 i) == 1.0927647857577371459105272080819308 + 1.1351827477151551088992008271819053 i":
  120818. -double: 1
  120819. -float: 1
  120820. -idouble: 1
  120821. -ifloat: 1
  120822. -
  120823. -# casin
  120824. -Test "Real part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i":
  120825. -double: 3
  120826. -float: 2
  120827. -idouble: 3
  120828. -ifloat: 2
  120829. -Test "Imaginary part of: casin (0.7 + 1.2 i) == 0.4356135790797415103321208644578462 + 1.0927647857577371459105272080819308 i":
  120830. -float: 1
  120831. -ifloat: 1
  120832. -
  120833. -# casinh
  120834. -Test "Real part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
  120835. -double: 5
  120836. -float: 1
  120837. -idouble: 5
  120838. -ifloat: 1
  120839. -Test "Imaginary part of: casinh (-2 - 3 i) == -1.9686379257930962917886650952454982 - 0.96465850440760279204541105949953237 i":
  120840. -double: 3
  120841. -float: 6
  120842. -idouble: 3
  120843. -ifloat: 6
  120844. -Test "Real part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
  120845. -double: 1
  120846. -idouble: 1
  120847. -Test "Imaginary part of: casinh (0.7 + 1.2 i) == 0.97865459559367387689317593222160964 + 0.91135418953156011567903546856170941 i":
  120848. -float: 1
  120849. -ifloat: 1
  120850. -
  120851. -# catan
  120852. -Test "Real part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
  120853. -float: 3
  120854. -ifloat: 3
  120855. -Test "Imaginary part of: catan (-2 - 3 i) == -1.4099210495965755225306193844604208 - 0.22907268296853876629588180294200276 i":
  120856. -double: 1
  120857. -float: 1
  120858. -idouble: 1
  120859. -ifloat: 1
  120860. -Test "Real part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
  120861. -float: 4
  120862. -ifloat: 4
  120863. -Test "Imaginary part of: catan (0.7 + 1.2 i) == 1.0785743834118921877443707996386368 + 0.57705737765343067644394541889341712 i":
  120864. -double: 1
  120865. -idouble: 1
  120866. -
  120867. -# catanh
  120868. -Test "Real part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
  120869. -double: 4
  120870. -idouble: 4
  120871. -Test "Imaginary part of: catanh (-2 - 3 i) == -0.14694666622552975204743278515471595 - 1.3389725222944935611241935759091443 i":
  120872. -float: 4
  120873. -ifloat: 4
  120874. -Test "Real part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
  120875. -float: 1
  120876. -ifloat: 1
  120877. -Test "Imaginary part of: catanh (0.7 + 1.2 i) == 0.2600749516525135959200648705635915 + 0.97024030779509898497385130162655963 i":
  120878. -double: 1
  120879. -float: 6
  120880. -idouble: 1
  120881. -ifloat: 6
  120882. -
  120883. -# cbrt
  120884. -Test "cbrt (-27.0) == -3.0":
  120885. -double: 1
  120886. -idouble: 1
  120887. -Test "cbrt (0.970299) == 0.99":
  120888. -double: 1
  120889. -idouble: 1
  120890. -
  120891. -# ccos
  120892. -Test "Imaginary part of: ccos (-2 - 3 i) == -4.18962569096880723013255501961597373 - 9.10922789375533659797919726277886212 i":
  120893. -float: 1
  120894. -ifloat: 1
  120895. -Test "Real part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i":
  120896. -double: 1
  120897. -idouble: 1
  120898. -Test "Imaginary part of: ccos (0.7 + 1.2 i) == 1.3848657645312111080 - 0.97242170335830028619 i":
  120899. -double: 1
  120900. -idouble: 1
  120901. -
  120902. -# ccosh
  120903. -Test "Real part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
  120904. -float: 1
  120905. -ifloat: 1
  120906. -Test "Imaginary part of: ccosh (-2 - 3 i) == -3.72454550491532256547397070325597253 + 0.511822569987384608834463849801875634 i":
  120907. -float: 1
  120908. -ifloat: 1
  120909. -Test "Real part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i":
  120910. -double: 1
  120911. -float: 1
  120912. -idouble: 1
  120913. -ifloat: 1
  120914. -Test "Imaginary part of: ccosh (0.7 + 1.2 i) == 0.4548202223691477654 + 0.7070296600921537682 i":
  120915. -double: 1
  120916. -idouble: 1
  120917. -
  120918. -# cexp
  120919. -Test "Imaginary part of: cexp (-2.0 - 3.0 i) == -0.13398091492954261346140525546115575 - 0.019098516261135196432576240858800925 i":
  120920. -float: 1
  120921. -ifloat: 1
  120922. -Test "Real part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
  120923. -double: 1
  120924. -float: 1
  120925. -idouble: 1
  120926. -ifloat: 1
  120927. -Test "Imaginary part of: cexp (0.7 + 1.2 i) == 0.7296989091503236012 + 1.8768962328348102821 i":
  120928. -float: 1
  120929. -ifloat: 1
  120930. -
  120931. -# clog
  120932. -Test "Imaginary part of: clog (-2 - 3 i) == 1.2824746787307683680267437207826593 - 2.1587989303424641704769327722648368 i":
  120933. -double: 1
  120934. -float: 3
  120935. -idouble: 1
  120936. -ifloat: 3
  120937. -
  120938. -# clog10
  120939. -Test "Imaginary part of: clog10 (-0 + inf i) == inf + pi/2*log10(e) i":
  120940. -float: 1
  120941. -ifloat: 1
  120942. -Test "Imaginary part of: clog10 (-0 - inf i) == inf - pi/2*log10(e) i":
  120943. -float: 1
  120944. -ifloat: 1
  120945. -Test "Imaginary part of: clog10 (-2 - 3 i) == 0.556971676153418384603252578971164214 - 0.937554462986374708541507952140189646 i":
  120946. -double: 1
  120947. -float: 5
  120948. -idouble: 1
  120949. -ifloat: 5
  120950. -Test "Imaginary part of: clog10 (-3 + inf i) == inf + pi/2*log10(e) i":
  120951. -float: 1
  120952. -ifloat: 1
  120953. -Test "Imaginary part of: clog10 (-3 - inf i) == inf - pi/2*log10(e) i":
  120954. -float: 1
  120955. -ifloat: 1
  120956. -Test "Imaginary part of: clog10 (-inf + 0 i) == inf + pi*log10(e) i":
  120957. -float: 1
  120958. -ifloat: 1
  120959. -Test "Imaginary part of: clog10 (-inf + 1 i) == inf + pi*log10(e) i":
  120960. -float: 1
  120961. -ifloat: 1
  120962. -Test "Imaginary part of: clog10 (-inf - 0 i) == inf - pi*log10(e) i":
  120963. -float: 1
  120964. -ifloat: 1
  120965. -Test "Imaginary part of: clog10 (-inf - 1 i) == inf - pi*log10(e) i":
  120966. -float: 1
  120967. -ifloat: 1
  120968. -Test "Imaginary part of: clog10 (0 + inf i) == inf + pi/2*log10(e) i":
  120969. -float: 1
  120970. -ifloat: 1
  120971. -Test "Imaginary part of: clog10 (0 - inf i) == inf - pi/2*log10(e) i":
  120972. -float: 1
  120973. -ifloat: 1
  120974. -Test "Real part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i":
  120975. -double: 1
  120976. -float: 1
  120977. -idouble: 1
  120978. -ifloat: 1
  120979. -Test "Imaginary part of: clog10 (0.7 + 1.2 i) == 0.1427786545038868803 + 0.4528483579352493248 i":
  120980. -double: 1
  120981. -idouble: 1
  120982. -Test "Imaginary part of: clog10 (3 + inf i) == inf + pi/2*log10(e) i":
  120983. -float: 1
  120984. -ifloat: 1
  120985. -Test "Imaginary part of: clog10 (3 - inf i) == inf - pi/2*log10(e) i":
  120986. -float: 1
  120987. -ifloat: 1
  120988. -Test "Imaginary part of: clog10 (inf + inf i) == inf + pi/4*log10(e) i":
  120989. -float: 1
  120990. -ifloat: 1
  120991. -Test "Imaginary part of: clog10 (inf - inf i) == inf - pi/4*log10(e) i":
  120992. -float: 1
  120993. -ifloat: 1
  120994. -
  120995. -# cos
  120996. -Test "cos (0.7) == 0.7648421872844884262":
  120997. -double: 1
  120998. -float: 1
  120999. -idouble: 1
  121000. -ifloat: 1
  121001. -Test "cos (M_PI_6l * 2.0) == 0.5":
  121002. -double: 1
  121003. -float: 0.5
  121004. -idouble: 1
  121005. -ifloat: 0.5
  121006. -Test "cos (M_PI_6l * 4.0) == -0.5":
  121007. -double: 2
  121008. -float: 1
  121009. -idouble: 2
  121010. -ifloat: 1
  121011. -Test "cos (pi/2) == 0":
  121012. -double: 0.2758
  121013. -float: 0.3667
  121014. -idouble: 0.2758
  121015. -ifloat: 0.3667
  121016. -
  121017. -# cpow
  121018. -Test "Real part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
  121019. -double: 1
  121020. -float: 4
  121021. -idouble: 1
  121022. -ifloat: 4
  121023. -Test "Imaginary part of: cpow (2 + 3 i, 4 + 0 i) == -119.0 - 120.0 i":
  121024. -float: 2
  121025. -ifloat: 2
  121026. -Test "Imaginary part of: cpow (e + 0 i, 0 + 2 * M_PIl i) == 1.0 + 0.0 i":
  121027. -double: 1.1031
  121028. -float: 1.5
  121029. -idouble: 1.1031
  121030. -ifloat: 1.5
  121031. -
  121032. -# csin
  121033. -Test "Imaginary part of: csin (0.7 + 1.2 i) == 1.1664563419657581376 + 1.1544997246948547371 i":
  121034. -float: 1
  121035. -ifloat: 1
  121036. -
  121037. -# csinh
  121038. -Test "Imaginary part of: csinh (-2 - 3 i) == 3.59056458998577995201256544779481679 - 0.530921086248519805267040090660676560 i":
  121039. -double: 1
  121040. -idouble: 1
  121041. -Test "Real part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
  121042. -float: 1
  121043. -ifloat: 1
  121044. -Test "Imaginary part of: csinh (0.7 + 1.2 i) == 0.27487868678117583582 + 1.1698665727426565139 i":
  121045. -float: 1
  121046. -ifloat: 1
  121047. -
  121048. -# csqrt
  121049. -Test "Real part of: csqrt (-2 + 3 i) == 0.89597747612983812471573375529004348 + 1.6741492280355400404480393008490519 i":
  121050. -float: 1
  121051. -ifloat: 1
  121052. -Test "Real part of: csqrt (-2 - 3 i) == 0.89597747612983812471573375529004348 - 1.6741492280355400404480393008490519 i":
  121053. -float: 1
  121054. -ifloat: 1
  121055. -Test "Real part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
  121056. -double: 1
  121057. -float: 1
  121058. -idouble: 1
  121059. -ifloat: 1
  121060. -Test "Imaginary part of: csqrt (0.7 + 1.2 i) == 1.022067610030026450706487883081139 + 0.58704531296356521154977678719838035 i":
  121061. -float: 1
  121062. -ifloat: 1
  121063. -
  121064. -# ctan
  121065. -Test "Real part of: ctan (-2 - 3 i) == 0.376402564150424829275122113032269084e-2 - 1.00323862735360980144635859782192726 i":
  121066. -double: 1
  121067. -idouble: 1
  121068. -Test "Real part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i":
  121069. -float: 1
  121070. -ifloat: 1
  121071. -Test "Imaginary part of: ctan (0.7 + 1.2 i) == 0.1720734197630349001 + 0.9544807059989405538 i":
  121072. -double: 1
  121073. -float: 1
  121074. -idouble: 1
  121075. -ifloat: 1
  121076. -
  121077. -# ctanh
  121078. -Test "Real part of: ctanh (-2 - 3 i) == -0.965385879022133124278480269394560686 + 0.988437503832249372031403430350121098e-2 i":
  121079. -double: 1
  121080. -float: 2
  121081. -idouble: 1
  121082. -ifloat: 2
  121083. -Test "Imaginary part of: ctanh (0 + pi/4 i) == 0.0 + 1.0 i":
  121084. -float: 1
  121085. -ifloat: 1
  121086. -Test "Real part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i":
  121087. -double: 2
  121088. -float: 1
  121089. -idouble: 2
  121090. -ifloat: 1
  121091. -Test "Imaginary part of: ctanh (0.7 + 1.2 i) == 1.3472197399061191630 + 0.4778641038326365540 i":
  121092. -double: 2
  121093. -float: 1
  121094. -idouble: 2
  121095. -ifloat: 1
  121096. -
  121097. -# erfc
  121098. -Test "erfc (0.7) == 0.32219880616258152702":
  121099. -double: 1
  121100. -idouble: 1
  121101. -Test "erfc (1.2) == 0.089686021770364619762":
  121102. -double: 2
  121103. -float: 2
  121104. -idouble: 2
  121105. -ifloat: 2
  121106. -Test "erfc (2.0) == 0.0046777349810472658379":
  121107. -double: 1
  121108. -idouble: 1
  121109. -Test "erfc (4.1) == 0.67000276540848983727e-8":
  121110. -double: 24
  121111. -float: 12
  121112. -idouble: 24
  121113. -ifloat: 12
  121114. -
  121115. -# exp10
  121116. -Test "exp10 (-1) == 0.1":
  121117. -double: 2
  121118. -float: 1
  121119. -idouble: 2
  121120. -ifloat: 1
  121121. -Test "exp10 (0.7) == 5.0118723362727228500":
  121122. -float: 1
  121123. -ifloat: 1
  121124. -Test "exp10 (3) == 1000":
  121125. -double: 6
  121126. -float: 2
  121127. -idouble: 6
  121128. -ifloat: 2
  121129. -
  121130. -# expm1
  121131. -Test "expm1 (1) == M_El - 1.0":
  121132. -float: 1
  121133. -ifloat: 1
  121134. -
  121135. -# fmod
  121136. -Test "fmod (-6.5, -2.3) == -1.9":
  121137. -double: 2
  121138. -float: 1
  121139. -idouble: 2
  121140. -ifloat: 1
  121141. -Test "fmod (-6.5, 2.3) == -1.9":
  121142. -double: 2
  121143. -float: 1
  121144. -idouble: 2
  121145. -ifloat: 1
  121146. -Test "fmod (6.5, -2.3) == 1.9":
  121147. -double: 2
  121148. -float: 1
  121149. -idouble: 2
  121150. -ifloat: 1
  121151. -Test "fmod (6.5, 2.3) == 1.9":
  121152. -double: 2
  121153. -float: 1
  121154. -idouble: 2
  121155. -ifloat: 1
  121156. -
  121157. -# hypot
  121158. -Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
  121159. -float: 1
  121160. -ifloat: 1
  121161. -Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
  121162. -float: 1
  121163. -ifloat: 1
  121164. -Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
  121165. -float: 1
  121166. -ifloat: 1
  121167. -Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
  121168. -float: 1
  121169. -ifloat: 1
  121170. -Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
  121171. -float: 1
  121172. -ifloat: 1
  121173. -Test "hypot (0.7, 1.2) == 1.3892443989449804508432547041028554":
  121174. -double: 1
  121175. -idouble: 1
  121176. -Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
  121177. -float: 1
  121178. -ifloat: 1
  121179. -Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
  121180. -float: 1
  121181. -ifloat: 1
  121182. -Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
  121183. -float: 1
  121184. -ifloat: 1
  121185. -
  121186. -# j0
  121187. -Test "j0 (10.0) == -0.24593576445134833520":
  121188. -double: 2
  121189. -float: 1
  121190. -idouble: 2
  121191. -ifloat: 1
  121192. -Test "j0 (2.0) == 0.22389077914123566805":
  121193. -float: 2
  121194. -ifloat: 2
  121195. -Test "j0 (8.0) == 0.17165080713755390609":
  121196. -float: 1
  121197. -ifloat: 1
  121198. -
  121199. -# j1
  121200. -Test "j1 (10.0) == 0.043472746168861436670":
  121201. -float: 2
  121202. -ifloat: 2
  121203. -Test "j1 (2.0) == 0.57672480775687338720":
  121204. -double: 1
  121205. -idouble: 1
  121206. -Test "j1 (8.0) == 0.23463634685391462438":
  121207. -double: 1
  121208. -idouble: 1
  121209. -
  121210. -# jn
  121211. -Test "jn (0, 10.0) == -0.24593576445134833520":
  121212. -double: 2
  121213. -float: 1
  121214. -idouble: 2
  121215. -ifloat: 1
  121216. -Test "jn (0, 2.0) == 0.22389077914123566805":
  121217. -float: 2
  121218. -ifloat: 2
  121219. -Test "jn (0, 8.0) == 0.17165080713755390609":
  121220. -float: 1
  121221. -ifloat: 1
  121222. -Test "jn (1, 10.0) == 0.043472746168861436670":
  121223. -float: 2
  121224. -ifloat: 2
  121225. -Test "jn (1, 2.0) == 0.57672480775687338720":
  121226. -double: 1
  121227. -idouble: 1
  121228. -Test "jn (1, 8.0) == 0.23463634685391462438":
  121229. -double: 1
  121230. -idouble: 1
  121231. -Test "jn (10, 0.1) == 0.26905328954342155795e-19":
  121232. -double: 6
  121233. -float: 4
  121234. -idouble: 6
  121235. -ifloat: 4
  121236. -Test "jn (10, 0.7) == 0.75175911502153953928e-11":
  121237. -double: 3
  121238. -float: 1
  121239. -idouble: 3
  121240. -ifloat: 1
  121241. -Test "jn (10, 10.0) == 0.20748610663335885770":
  121242. -double: 4
  121243. -float: 3
  121244. -idouble: 4
  121245. -ifloat: 3
  121246. -Test "jn (10, 2.0) == 0.25153862827167367096e-6":
  121247. -float: 4
  121248. -ifloat: 4
  121249. -Test "jn (3, 0.1) == 0.000020820315754756261429":
  121250. -double: 1
  121251. -idouble: 1
  121252. -Test "jn (3, 0.7) == 0.0069296548267508408077":
  121253. -float: 1
  121254. -ifloat: 1
  121255. -Test "jn (3, 10.0) == 0.058379379305186812343":
  121256. -double: 3
  121257. -float: 1
  121258. -idouble: 3
  121259. -ifloat: 1
  121260. -Test "jn (3, 2.0) == 0.12894324947440205110":
  121261. -double: 1
  121262. -float: 2
  121263. -idouble: 1
  121264. -ifloat: 2
  121265. -
  121266. -# lgamma
  121267. -Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
  121268. -double: 1
  121269. -float: 1
  121270. -idouble: 1
  121271. -ifloat: 1
  121272. -Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
  121273. -double: 1
  121274. -float: 2
  121275. -idouble: 1
  121276. -ifloat: 2
  121277. -
  121278. -# log
  121279. -Test "log (0.7) == -0.35667494393873237891263871124118447":
  121280. -double: 1
  121281. -float: 1
  121282. -idouble: 1
  121283. -ifloat: 1
  121284. -
  121285. -# log10
  121286. -Test "log10 (0.7) == -0.15490195998574316929":
  121287. -double: 1
  121288. -float: 1
  121289. -idouble: 1
  121290. -ifloat: 1
  121291. -Test "log10 (e) == log10(e)":
  121292. -float: 1
  121293. -ifloat: 1
  121294. -
  121295. -# log1p
  121296. -Test "log1p (-0.3) == -0.35667494393873237891263871124118447":
  121297. -double: 1
  121298. -float: 1
  121299. -idouble: 1
  121300. -ifloat: 1
  121301. -
  121302. -# log2
  121303. -Test "log2 (0.7) == -0.51457317282975824043":
  121304. -double: 1
  121305. -float: 1
  121306. -idouble: 1
  121307. -ifloat: 1
  121308. -
  121309. -# sincos
  121310. -Test "sincos (0.7, &sin_res, &cos_res) puts 0.76484218728448842626 in cos_res":
  121311. -double: 1
  121312. -float: 1
  121313. -idouble: 1
  121314. -ifloat: 1
  121315. -Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.5 in cos_res":
  121316. -double: 1
  121317. -float: 0.5
  121318. -idouble: 1
  121319. -ifloat: 0.5
  121320. -Test "sincos (M_PI_6l*2.0, &sin_res, &cos_res) puts 0.866025403784438646764 in sin_res":
  121321. -double: 1
  121322. -float: 1
  121323. -idouble: 1
  121324. -ifloat: 1
  121325. -Test "sincos (pi/2, &sin_res, &cos_res) puts 0 in cos_res":
  121326. -double: 0.2758
  121327. -float: 0.3667
  121328. -idouble: 0.2758
  121329. -ifloat: 0.3667
  121330. -Test "sincos (pi/6, &sin_res, &cos_res) puts 0.866025403784438646764 in cos_res":
  121331. -float: 1
  121332. -ifloat: 1
  121333. -
  121334. -# sinh
  121335. -Test "sinh (0.7) == 0.75858370183953350346":
  121336. -double: 1
  121337. -float: 1
  121338. -idouble: 1
  121339. -ifloat: 1
  121340. -
  121341. -# tan
  121342. -Test "tan (pi/4) == 1":
  121343. -double: 0.5
  121344. -idouble: 0.5
  121345. -
  121346. -# tanh
  121347. -Test "tanh (0.7) == 0.60436777711716349631":
  121348. -double: 1
  121349. -float: 1
  121350. -idouble: 1
  121351. -ifloat: 1
  121352. -
  121353. -# tgamma
  121354. -Test "tgamma (-0.5) == -2 sqrt (pi)":
  121355. -double: 1
  121356. -float: 1
  121357. -idouble: 1
  121358. -ifloat: 1
  121359. -Test "tgamma (0.5) == sqrt (pi)":
  121360. -float: 1
  121361. -ifloat: 1
  121362. -Test "tgamma (0.7) == 1.29805533264755778568117117915281162":
  121363. -double: 1
  121364. -float: 1
  121365. -idouble: 1
  121366. -ifloat: 1
  121367. -
  121368. -# y0
  121369. -Test "y0 (0.7) == -0.19066492933739506743":
  121370. -double: 2
  121371. -float: 1
  121372. -idouble: 2
  121373. -ifloat: 1
  121374. -Test "y0 (1.0) == 0.088256964215676957983":
  121375. -double: 2
  121376. -float: 1
  121377. -idouble: 2
  121378. -ifloat: 1
  121379. -Test "y0 (1.5) == 0.38244892379775884396":
  121380. -double: 2
  121381. -float: 1
  121382. -idouble: 2
  121383. -ifloat: 1
  121384. -Test "y0 (10.0) == 0.055671167283599391424":
  121385. -float: 1
  121386. -ifloat: 1
  121387. -Test "y0 (8.0) == 0.22352148938756622053":
  121388. -double: 1
  121389. -float: 1
  121390. -idouble: 1
  121391. -ifloat: 1
  121392. -
  121393. -# y1
  121394. -Test "y1 (0.1) == -6.4589510947020269877":
  121395. -double: 1
  121396. -idouble: 1
  121397. -Test "y1 (0.7) == -1.1032498719076333697":
  121398. -double: 1
  121399. -float: 1
  121400. -idouble: 1
  121401. -ifloat: 1
  121402. -Test "y1 (1.5) == -0.41230862697391129595":
  121403. -float: 1
  121404. -ifloat: 1
  121405. -Test "y1 (10.0) == 0.24901542420695388392":
  121406. -double: 3
  121407. -float: 1
  121408. -idouble: 3
  121409. -ifloat: 1
  121410. -Test "y1 (2.0) == -0.10703243154093754689":
  121411. -double: 1
  121412. -float: 1
  121413. -idouble: 1
  121414. -ifloat: 1
  121415. -Test "y1 (8.0) == -0.15806046173124749426":
  121416. -double: 1
  121417. -float: 2
  121418. -idouble: 1
  121419. -ifloat: 2
  121420. -
  121421. -# yn
  121422. -Test "yn (0, 0.7) == -0.19066492933739506743":
  121423. -double: 2
  121424. -float: 1
  121425. -idouble: 2
  121426. -ifloat: 1
  121427. -Test "yn (0, 1.0) == 0.088256964215676957983":
  121428. -double: 2
  121429. -float: 1
  121430. -idouble: 2
  121431. -ifloat: 1
  121432. -Test "yn (0, 1.5) == 0.38244892379775884396":
  121433. -double: 2
  121434. -float: 1
  121435. -idouble: 2
  121436. -ifloat: 1
  121437. -Test "yn (0, 10.0) == 0.055671167283599391424":
  121438. -float: 1
  121439. -ifloat: 1
  121440. -Test "yn (0, 8.0) == 0.22352148938756622053":
  121441. -double: 1
  121442. -float: 1
  121443. -idouble: 1
  121444. -ifloat: 1
  121445. -Test "yn (1, 0.1) == -6.4589510947020269877":
  121446. -double: 1
  121447. -idouble: 1
  121448. -Test "yn (1, 0.7) == -1.1032498719076333697":
  121449. -double: 1
  121450. -float: 1
  121451. -idouble: 1
  121452. -ifloat: 1
  121453. -Test "yn (1, 1.5) == -0.41230862697391129595":
  121454. -float: 1
  121455. -ifloat: 1
  121456. -Test "yn (1, 10.0) == 0.24901542420695388392":
  121457. -double: 3
  121458. -float: 1
  121459. -idouble: 3
  121460. -ifloat: 1
  121461. -Test "yn (1, 2.0) == -0.10703243154093754689":
  121462. -double: 1
  121463. -float: 1
  121464. -idouble: 1
  121465. -ifloat: 1
  121466. -Test "yn (1, 8.0) == -0.15806046173124749426":
  121467. -double: 1
  121468. -float: 2
  121469. -idouble: 1
  121470. -ifloat: 2
  121471. -Test "yn (10, 0.1) == -0.11831335132045197885e19":
  121472. -double: 2
  121473. -float: 2
  121474. -idouble: 2
  121475. -ifloat: 2
  121476. -Test "yn (10, 0.7) == -0.42447194260703866924e10":
  121477. -double: 3
  121478. -idouble: 3
  121479. -Test "yn (10, 1.0) == -0.12161801427868918929e9":
  121480. -double: 1
  121481. -idouble: 1
  121482. -Test "yn (10, 10.0) == -0.35981415218340272205":
  121483. -double: 1
  121484. -float: 1
  121485. -idouble: 1
  121486. -ifloat: 1
  121487. -Test "yn (10, 2.0) == -129184.54220803928264":
  121488. -double: 2
  121489. -idouble: 2
  121490. -Test "yn (3, 0.1) == -5099.3323786129048894":
  121491. -double: 1
  121492. -float: 1
  121493. -idouble: 1
  121494. -ifloat: 1
  121495. -Test "yn (3, 0.7) == -15.819479052819633505":
  121496. -double: 3
  121497. -float: 1
  121498. -idouble: 3
  121499. -ifloat: 1
  121500. -Test "yn (3, 10.0) == -0.25136265718383732978":
  121501. -double: 1
  121502. -float: 1
  121503. -idouble: 1
  121504. -ifloat: 1
  121505. -Test "yn (3, 2.0) == -1.1277837768404277861":
  121506. -double: 1
  121507. -idouble: 1
  121508. -
  121509. -# Maximal error of functions:
  121510. -Function: "asin":
  121511. -double: 1
  121512. -float: 2
  121513. -idouble: 1
  121514. -ifloat: 2
  121515. -
  121516. -Function: "atan2":
  121517. -float: 4
  121518. -ifloat: 4
  121519. -
  121520. -Function: "atanh":
  121521. -double: 1
  121522. -idouble: 1
  121523. -
  121524. -Function: "cabs":
  121525. -double: 1
  121526. -float: 1
  121527. -idouble: 1
  121528. -ifloat: 1
  121529. -
  121530. -Function: Real part of "cacos":
  121531. -double: 1
  121532. -float: 1
  121533. -idouble: 1
  121534. -ifloat: 1
  121535. -
  121536. -Function: Imaginary part of "cacos":
  121537. -float: 1
  121538. -ifloat: 1
  121539. -
  121540. -Function: Real part of "cacosh":
  121541. -double: 1
  121542. -float: 7
  121543. -idouble: 1
  121544. -ifloat: 7
  121545. -
  121546. -Function: Imaginary part of "cacosh":
  121547. -double: 1
  121548. -float: 3
  121549. -idouble: 1
  121550. -ifloat: 3
  121551. -
  121552. -Function: Real part of "casin":
  121553. -double: 3
  121554. -float: 2
  121555. -idouble: 3
  121556. -ifloat: 2
  121557. -
  121558. -Function: Imaginary part of "casin":
  121559. -float: 1
  121560. -ifloat: 1
  121561. -
  121562. -Function: Real part of "casinh":
  121563. -double: 5
  121564. -float: 1
  121565. -idouble: 5
  121566. -ifloat: 1
  121567. -
  121568. -Function: Imaginary part of "casinh":
  121569. -double: 3
  121570. -float: 6
  121571. -idouble: 3
  121572. -ifloat: 6
  121573. -
  121574. -Function: Real part of "catan":
  121575. -float: 4
  121576. -ifloat: 4
  121577. -
  121578. -Function: Imaginary part of "catan":
  121579. -double: 1
  121580. -float: 1
  121581. -idouble: 1
  121582. -ifloat: 1
  121583. -
  121584. -Function: Real part of "catanh":
  121585. -double: 4
  121586. -float: 1
  121587. -idouble: 4
  121588. -ifloat: 1
  121589. -
  121590. -Function: Imaginary part of "catanh":
  121591. -double: 1
  121592. -float: 6
  121593. -idouble: 1
  121594. -ifloat: 6
  121595. -
  121596. -Function: "cbrt":
  121597. -double: 1
  121598. -idouble: 1
  121599. -
  121600. -Function: Real part of "ccos":
  121601. -double: 1
  121602. -idouble: 1
  121603. -
  121604. -Function: Imaginary part of "ccos":
  121605. -double: 1
  121606. -float: 1
  121607. -idouble: 1
  121608. -ifloat: 1
  121609. -
  121610. -Function: Real part of "ccosh":
  121611. -double: 1
  121612. -float: 1
  121613. -idouble: 1
  121614. -ifloat: 1
  121615. -
  121616. -Function: Imaginary part of "ccosh":
  121617. -double: 1
  121618. -float: 1
  121619. -idouble: 1
  121620. -ifloat: 1
  121621. -
  121622. -Function: Real part of "cexp":
  121623. -double: 1
  121624. -float: 1
  121625. -idouble: 1
  121626. -ifloat: 1
  121627. -
  121628. -Function: Imaginary part of "cexp":
  121629. -float: 1
  121630. -ifloat: 1
  121631. -
  121632. -Function: Imaginary part of "clog":
  121633. -double: 1
  121634. -float: 3
  121635. -idouble: 1
  121636. -ifloat: 3
  121637. -
  121638. -Function: Real part of "clog10":
  121639. -double: 1
  121640. -float: 1
  121641. -idouble: 1
  121642. -ifloat: 1
  121643. -
  121644. -Function: Imaginary part of "clog10":
  121645. -double: 1
  121646. -float: 5
  121647. -idouble: 1
  121648. -ifloat: 5
  121649. -
  121650. -Function: "cos":
  121651. -double: 2
  121652. -float: 1
  121653. -idouble: 2
  121654. -ifloat: 1
  121655. -
  121656. -Function: Real part of "cpow":
  121657. -double: 1
  121658. -float: 4
  121659. -idouble: 1
  121660. -ifloat: 4
  121661. -
  121662. -Function: Imaginary part of "cpow":
  121663. -double: 1.1031
  121664. -float: 2
  121665. -idouble: 1.1031
  121666. -ifloat: 2
  121667. -
  121668. -Function: Imaginary part of "csin":
  121669. -float: 1
  121670. -ifloat: 1
  121671. -
  121672. -Function: Real part of "csinh":
  121673. -float: 1
  121674. -ifloat: 1
  121675. -
  121676. -Function: Imaginary part of "csinh":
  121677. -double: 1
  121678. -float: 1
  121679. -idouble: 1
  121680. -ifloat: 1
  121681. -
  121682. -Function: Real part of "csqrt":
  121683. -double: 1
  121684. -float: 1
  121685. -idouble: 1
  121686. -ifloat: 1
  121687. -
  121688. -Function: Imaginary part of "csqrt":
  121689. -float: 1
  121690. -ifloat: 1
  121691. -
  121692. -Function: Real part of "ctan":
  121693. -double: 1
  121694. -float: 1
  121695. -idouble: 1
  121696. -ifloat: 1
  121697. -
  121698. -Function: Imaginary part of "ctan":
  121699. -double: 1
  121700. -float: 1
  121701. -idouble: 1
  121702. -ifloat: 1
  121703. -
  121704. -Function: Real part of "ctanh":
  121705. -double: 2
  121706. -float: 2
  121707. -idouble: 2
  121708. -ifloat: 2
  121709. -
  121710. -Function: Imaginary part of "ctanh":
  121711. -double: 2
  121712. -float: 1
  121713. -idouble: 2
  121714. -ifloat: 1
  121715. -
  121716. -Function: "erfc":
  121717. -double: 24
  121718. -float: 12
  121719. -idouble: 24
  121720. -ifloat: 12
  121721. -
  121722. -Function: "exp10":
  121723. -double: 6
  121724. -float: 2
  121725. -idouble: 6
  121726. -ifloat: 2
  121727. -
  121728. -Function: "expm1":
  121729. -float: 1
  121730. -ifloat: 1
  121731. -
  121732. -Function: "fmod":
  121733. -double: 2
  121734. -float: 1
  121735. -idouble: 2
  121736. -ifloat: 1
  121737. -
  121738. -Function: "hypot":
  121739. -double: 1
  121740. -float: 1
  121741. -idouble: 1
  121742. -ifloat: 1
  121743. -
  121744. -Function: "j0":
  121745. -double: 2
  121746. -float: 2
  121747. -idouble: 2
  121748. -ifloat: 2
  121749. -
  121750. -Function: "j1":
  121751. -double: 1
  121752. -float: 2
  121753. -idouble: 1
  121754. -ifloat: 2
  121755. -
  121756. -Function: "jn":
  121757. -double: 6
  121758. -float: 4
  121759. -idouble: 6
  121760. -ifloat: 4
  121761. -
  121762. -Function: "lgamma":
  121763. -double: 1
  121764. -float: 2
  121765. -idouble: 1
  121766. -ifloat: 2
  121767. -
  121768. -Function: "log":
  121769. -double: 1
  121770. -float: 1
  121771. -idouble: 1
  121772. -ifloat: 1
  121773. -
  121774. -Function: "log10":
  121775. -double: 1
  121776. -float: 1
  121777. -idouble: 1
  121778. -ifloat: 1
  121779. -
  121780. -Function: "log1p":
  121781. -double: 1
  121782. -float: 1
  121783. -idouble: 1
  121784. -ifloat: 1
  121785. -
  121786. -Function: "log2":
  121787. -double: 1
  121788. -float: 1
  121789. -idouble: 1
  121790. -ifloat: 1
  121791. -
  121792. -Function: "sincos":
  121793. -double: 1
  121794. -float: 1
  121795. -idouble: 1
  121796. -ifloat: 1
  121797. -
  121798. -Function: "sinh":
  121799. -double: 1
  121800. -float: 1
  121801. -idouble: 1
  121802. -ifloat: 1
  121803. -
  121804. -Function: "tan":
  121805. -double: 0.5
  121806. -idouble: 0.5
  121807. -
  121808. -Function: "tanh":
  121809. -double: 1
  121810. -float: 1
  121811. -idouble: 1
  121812. -ifloat: 1
  121813. -
  121814. -Function: "tgamma":
  121815. -double: 1
  121816. -float: 1
  121817. -idouble: 1
  121818. -ifloat: 1
  121819. -
  121820. -Function: "y0":
  121821. -double: 2
  121822. -float: 1
  121823. -idouble: 2
  121824. -ifloat: 1
  121825. -
  121826. -Function: "y1":
  121827. -double: 3
  121828. -float: 2
  121829. -idouble: 3
  121830. -ifloat: 2
  121831. -
  121832. -Function: "yn":
  121833. -double: 3
  121834. -float: 2
  121835. -idouble: 3
  121836. -ifloat: 2
  121837. -
  121838. -# end of automatic generation
  121839. diff -Nur uClibc-0.9.33.2/test/math/libm-test-ulps-xtensa uClibc-git/test/math/libm-test-ulps-xtensa
  121840. --- uClibc-0.9.33.2/test/math/libm-test-ulps-xtensa 1970-01-01 01:00:00.000000000 +0100
  121841. +++ uClibc-git/test/math/libm-test-ulps-xtensa 2014-06-02 17:40:35.270718936 +0200
  121842. @@ -0,0 +1,129 @@
  121843. +# Begin of automatic generation
  121844. +
  121845. +# cos
  121846. +Test "cos (M_PI_6l * 2.0) == 0.5":
  121847. +double: 1
  121848. +idouble: 1
  121849. +Test "cos (M_PI_6l * 4.0) == -0.5":
  121850. +double: 2
  121851. +float: 1
  121852. +idouble: 2
  121853. +ifloat: 1
  121854. +
  121855. +# erf
  121856. +Test "erf (0.75) == 0.711155633653515131598937834591410777":
  121857. +double: 1
  121858. +idouble: 1
  121859. +Test "erf (1.25) == 0.922900128256458230136523481197281140":
  121860. +double: 1
  121861. +idouble: 1
  121862. +
  121863. +# erfc
  121864. +Test "erfc (4.125) == 0.542340079956506600531223408575531062e-8":
  121865. +double: 1
  121866. +idouble: 1
  121867. +
  121868. +# exp
  121869. +Test "exp (1) == e":
  121870. +double: 1
  121871. +idouble: 1
  121872. +
  121873. +# expm1
  121874. +Test "expm1 (0.75) == 1.11700001661267466854536981983709561":
  121875. +double: 1
  121876. +idouble: 1
  121877. +
  121878. +# hypot
  121879. +Test "hypot (-0.7, -12.4) == 12.419742348374220601176836866763271":
  121880. +float: 1
  121881. +ifloat: 1
  121882. +Test "hypot (-0.7, 12.4) == 12.419742348374220601176836866763271":
  121883. +float: 1
  121884. +ifloat: 1
  121885. +Test "hypot (-12.4, -0.7) == 12.419742348374220601176836866763271":
  121886. +float: 1
  121887. +ifloat: 1
  121888. +Test "hypot (-12.4, 0.7) == 12.419742348374220601176836866763271":
  121889. +float: 1
  121890. +ifloat: 1
  121891. +Test "hypot (0.7, -12.4) == 12.419742348374220601176836866763271":
  121892. +float: 1
  121893. +ifloat: 1
  121894. +Test "hypot (0.7, 12.4) == 12.419742348374220601176836866763271":
  121895. +float: 1
  121896. +ifloat: 1
  121897. +Test "hypot (12.4, -0.7) == 12.419742348374220601176836866763271":
  121898. +float: 1
  121899. +ifloat: 1
  121900. +Test "hypot (12.4, 0.7) == 12.419742348374220601176836866763271":
  121901. +float: 1
  121902. +ifloat: 1
  121903. +
  121904. +# lgamma
  121905. +Test "lgamma (0.7) == 0.260867246531666514385732417016759578":
  121906. +double: 1
  121907. +float: 1
  121908. +idouble: 1
  121909. +ifloat: 1
  121910. +Test "lgamma (1.2) == -0.853740900033158497197028392998854470e-1":
  121911. +double: 1
  121912. +float: 2
  121913. +idouble: 1
  121914. +ifloat: 2
  121915. +
  121916. +# log10
  121917. +Test "log10 (0.75) == -0.124938736608299953132449886193870744":
  121918. +double: 1
  121919. +idouble: 1
  121920. +Test "log10 (e) == log10(e)":
  121921. +float: 1
  121922. +ifloat: 1
  121923. +
  121924. +# Maximal error of functions:
  121925. +Function: "cos":
  121926. +double: 2
  121927. +float: 1
  121928. +idouble: 2
  121929. +ifloat: 1
  121930. +
  121931. +Function: "erf":
  121932. +double: 1
  121933. +idouble: 1
  121934. +
  121935. +Function: "erfc":
  121936. +double: 1
  121937. +idouble: 1
  121938. +
  121939. +Function: "exp":
  121940. +double: 1
  121941. +idouble: 1
  121942. +
  121943. +Function: "expm1":
  121944. +double: 1
  121945. +idouble: 1
  121946. +
  121947. +Function: "hypot":
  121948. +float: 1
  121949. +ifloat: 1
  121950. +
  121951. +Function: "lgamma":
  121952. +double: 1
  121953. +float: 2
  121954. +idouble: 1
  121955. +ifloat: 2
  121956. +
  121957. +Function: "log":
  121958. +float: 1
  121959. +ifloat: 1
  121960. +
  121961. +Function: "log10":
  121962. +double: 1
  121963. +float: 1
  121964. +idouble: 1
  121965. +ifloat: 1
  121966. +
  121967. +Function: "tan":
  121968. +double: 1
  121969. +idouble: 1
  121970. +
  121971. +# end of automatic generation
  121972. diff -Nur uClibc-0.9.33.2/test/math/Makefile uClibc-git/test/math/Makefile
  121973. --- uClibc-0.9.33.2/test/math/Makefile 2012-05-15 09:20:09.000000000 +0200
  121974. +++ uClibc-git/test/math/Makefile 2014-06-02 17:40:35.266718914 +0200
  121975. @@ -2,6 +2,7 @@
  121976. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  121977. top_builddir=../../
  121978. +top_srcdir=../../
  121979. include ../Rules.mak
  121980. -include Makefile.in
  121981. include ../Test.mak
  121982. diff -Nur uClibc-0.9.33.2/test/math/Makefile.in uClibc-git/test/math/Makefile.in
  121983. --- uClibc-0.9.33.2/test/math/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  121984. +++ uClibc-git/test/math/Makefile.in 2014-06-02 17:40:35.266718914 +0200
  121985. @@ -1,14 +1,19 @@
  121986. # uClibc math tests
  121987. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  121988. -TESTS := basic-test tst-definitions test-fpucw test-float test-ifloat test-double test-idouble \
  121989. - rint signgam ilogb
  121990. +# libm-test.c is a generated file used by the tests internally so skip it
  121991. +TESTS_DISABLED := libm-test
  121992. +
  121993. # gamma (removed from TESTS, need to add "small errors are ok" machinery there)
  121994. -ifeq ($(UCLIBC_HAS_LONG_DOUBLE_MATH),y)
  121995. -TESTS += test-ldouble test-ildoubl compile_test c99_test
  121996. +TESTS_DISABLED += gamma
  121997. +ifeq ($(UCLIBC_HAS_LONG_DOUBLE_MATH),)
  121998. +TESTS_DISABLED += test-ldouble test-ildoubl compile_test c99_test
  121999. else
  122000. CFLAGS_basic-test := -DNO_LONG_DOUBLE
  122001. endif
  122002. +ifeq ($(DO_C99_MATH),)
  122003. +TESTS_DISABLED += test-float test-ifloat test-double test-idouble rint signgam ilogb
  122004. +endif
  122005. DODIFF_rint := 1
  122006. DODIFF_signgam := 1
  122007. @@ -23,9 +28,17 @@
  122008. PERL := /usr/bin/perl
  122009. -$(TESTS): libm-test.c
  122010. +MDEPS := $(wildcard test-*.c)
  122011. +$(MDEPS): libm-test.c
  122012. +
  122013. +TARGET_ULP := $(TARGET_ARCH)
  122014. +ULP_SUFFIX :=
  122015. +ifeq ($(TARGET_ARCH),mips)
  122016. +ULP_SUFFIX:=$(if $(CONFIG_MIPS_ISA_MIPS64R1)$(CONFIG_MIPS_ISA_MIPS64R2),64,32)
  122017. +endif
  122018. +TARGET_ULP:=$(TARGET_ULP)$(ULP_SUFFIX)
  122019. -libm-test.c: libm-test-ulps-$(TARGET_ARCH) libm-test.inc gen-libm-test.pl
  122020. - $(Q)$(PERL) ./gen-libm-test.pl -u libm-test-ulps-$(TARGET_ARCH) ./libm-test.inc -o "." 2>&1 > /dev/null
  122021. +libm-test.c: libm-test-ulps-$(TARGET_ULP) libm-test.inc gen-libm-test.pl
  122022. + $(Q)$(PERL) ./gen-libm-test.pl -u libm-test-ulps-$(TARGET_ULP) ./libm-test.inc -o "." 2>&1 > /dev/null
  122023. EXTRA_CLEAN := libm-test.c libm-test-ulps.h
  122024. diff -Nur uClibc-0.9.33.2/test/math/test-double.c uClibc-git/test/math/test-double.c
  122025. --- uClibc-0.9.33.2/test/math/test-double.c 2012-05-15 09:20:09.000000000 +0200
  122026. +++ uClibc-git/test/math/test-double.c 2014-06-02 17:40:35.270718936 +0200
  122027. @@ -13,9 +13,8 @@
  122028. Lesser General Public License for more details.
  122029. You should have received a copy of the GNU Lesser General Public
  122030. - License along with the GNU C Library; if not, write to the Free
  122031. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122032. - 02111-1307 USA. */
  122033. + License along with the GNU C Library; if not, see
  122034. + <http://www.gnu.org/licenses/>. */
  122035. #define FUNC(function) function
  122036. #define FLOAT double
  122037. diff -Nur uClibc-0.9.33.2/test/math/test-float.c uClibc-git/test/math/test-float.c
  122038. --- uClibc-0.9.33.2/test/math/test-float.c 2012-05-15 09:20:09.000000000 +0200
  122039. +++ uClibc-git/test/math/test-float.c 2014-06-02 17:40:35.270718936 +0200
  122040. @@ -13,9 +13,8 @@
  122041. Lesser General Public License for more details.
  122042. You should have received a copy of the GNU Lesser General Public
  122043. - License along with the GNU C Library; if not, write to the Free
  122044. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122045. - 02111-1307 USA. */
  122046. + License along with the GNU C Library; if not, see
  122047. + <http://www.gnu.org/licenses/>. */
  122048. #define FUNC(function) function ## f
  122049. #define FLOAT float
  122050. diff -Nur uClibc-0.9.33.2/test/math/test-fpucw.c uClibc-git/test/math/test-fpucw.c
  122051. --- uClibc-0.9.33.2/test/math/test-fpucw.c 2012-05-15 09:20:09.000000000 +0200
  122052. +++ uClibc-git/test/math/test-fpucw.c 2014-06-02 17:40:35.270718936 +0200
  122053. @@ -13,9 +13,8 @@
  122054. Lesser General Public License for more details.
  122055. You should have received a copy of the GNU Lesser General Public
  122056. - License along with the GNU C Library; if not, write to the Free
  122057. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122058. - 02111-1307 USA. */
  122059. + License along with the GNU C Library; if not, see
  122060. + <http://www.gnu.org/licenses/>. */
  122061. #include <fpu_control.h>
  122062. #include <stdio.h>
  122063. diff -Nur uClibc-0.9.33.2/test/math/test-idouble.c uClibc-git/test/math/test-idouble.c
  122064. --- uClibc-0.9.33.2/test/math/test-idouble.c 2012-05-15 09:20:09.000000000 +0200
  122065. +++ uClibc-git/test/math/test-idouble.c 2014-06-02 17:40:35.270718936 +0200
  122066. @@ -13,9 +13,8 @@
  122067. Lesser General Public License for more details.
  122068. You should have received a copy of the GNU Lesser General Public
  122069. - License along with the GNU C Library; if not, write to the Free
  122070. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122071. - 02111-1307 USA. */
  122072. + License along with the GNU C Library; if not, see
  122073. + <http://www.gnu.org/licenses/>. */
  122074. #define FUNC(function) function
  122075. #define FLOAT double
  122076. diff -Nur uClibc-0.9.33.2/test/math/test-ifloat.c uClibc-git/test/math/test-ifloat.c
  122077. --- uClibc-0.9.33.2/test/math/test-ifloat.c 2012-05-15 09:20:09.000000000 +0200
  122078. +++ uClibc-git/test/math/test-ifloat.c 2014-06-02 17:40:35.270718936 +0200
  122079. @@ -13,9 +13,8 @@
  122080. Lesser General Public License for more details.
  122081. You should have received a copy of the GNU Lesser General Public
  122082. - License along with the GNU C Library; if not, write to the Free
  122083. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122084. - 02111-1307 USA. */
  122085. + License along with the GNU C Library; if not, see
  122086. + <http://www.gnu.org/licenses/>. */
  122087. #define FUNC(function) function ## f
  122088. #define FLOAT float
  122089. diff -Nur uClibc-0.9.33.2/test/math/test-ildoubl.c uClibc-git/test/math/test-ildoubl.c
  122090. --- uClibc-0.9.33.2/test/math/test-ildoubl.c 2012-05-15 09:20:09.000000000 +0200
  122091. +++ uClibc-git/test/math/test-ildoubl.c 2014-06-02 17:40:35.270718936 +0200
  122092. @@ -13,9 +13,8 @@
  122093. Lesser General Public License for more details.
  122094. You should have received a copy of the GNU Lesser General Public
  122095. - License along with the GNU C Library; if not, write to the Free
  122096. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122097. - 02111-1307 USA. */
  122098. + License along with the GNU C Library; if not, see
  122099. + <http://www.gnu.org/licenses/>. */
  122100. #define FUNC(function) function##l
  122101. #define FLOAT long double
  122102. diff -Nur uClibc-0.9.33.2/test/math/test-ldouble.c uClibc-git/test/math/test-ldouble.c
  122103. --- uClibc-0.9.33.2/test/math/test-ldouble.c 2012-05-15 09:20:09.000000000 +0200
  122104. +++ uClibc-git/test/math/test-ldouble.c 2014-06-02 17:40:35.270718936 +0200
  122105. @@ -13,9 +13,8 @@
  122106. Lesser General Public License for more details.
  122107. You should have received a copy of the GNU Lesser General Public
  122108. - License along with the GNU C Library; if not, write to the Free
  122109. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122110. - 02111-1307 USA. */
  122111. + License along with the GNU C Library; if not, see
  122112. + <http://www.gnu.org/licenses/>. */
  122113. #define FUNC(function) function##l
  122114. #define FLOAT long double
  122115. diff -Nur uClibc-0.9.33.2/test/math/tst-definitions.c uClibc-git/test/math/tst-definitions.c
  122116. --- uClibc-0.9.33.2/test/math/tst-definitions.c 2012-05-15 09:20:09.000000000 +0200
  122117. +++ uClibc-git/test/math/tst-definitions.c 2014-06-02 17:40:35.270718936 +0200
  122118. @@ -13,9 +13,8 @@
  122119. Lesser General Public License for more details.
  122120. You should have received a copy of the GNU Lesser General Public
  122121. - License along with the GNU C Library; if not, write to the Free
  122122. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122123. - 02111-1307 USA. */
  122124. + License along with the GNU C Library; if not, see
  122125. + <http://www.gnu.org/licenses/>. */
  122126. #include <limits.h>
  122127. #include <math.h>
  122128. diff -Nur uClibc-0.9.33.2/test/misc/bug-glob2.c uClibc-git/test/misc/bug-glob2.c
  122129. --- uClibc-0.9.33.2/test/misc/bug-glob2.c 2012-05-15 09:20:09.000000000 +0200
  122130. +++ uClibc-git/test/misc/bug-glob2.c 2014-06-02 17:40:35.270718936 +0200
  122131. @@ -14,9 +14,8 @@
  122132. Lesser General Public License for more details.
  122133. You should have received a copy of the GNU Lesser General Public
  122134. - License along with the GNU C Library; if not, write to the Free
  122135. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122136. - 02111-1307 USA. */
  122137. + License along with the GNU C Library; if not, see
  122138. + <http://www.gnu.org/licenses/>. */
  122139. #include <errno.h>
  122140. #include <error.h>
  122141. diff -Nur uClibc-0.9.33.2/test/misc/Makefile uClibc-git/test/misc/Makefile
  122142. --- uClibc-0.9.33.2/test/misc/Makefile 2012-05-15 09:20:09.000000000 +0200
  122143. +++ uClibc-git/test/misc/Makefile 2014-06-02 17:40:35.270718936 +0200
  122144. @@ -2,6 +2,7 @@
  122145. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  122146. top_builddir=../../
  122147. +top_srcdir=../../
  122148. include ../Rules.mak
  122149. -include Makefile.in
  122150. include ../Test.mak
  122151. diff -Nur uClibc-0.9.33.2/test/misc/Makefile.in uClibc-git/test/misc/Makefile.in
  122152. --- uClibc-0.9.33.2/test/misc/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  122153. +++ uClibc-git/test/misc/Makefile.in 2014-06-02 17:40:35.270718936 +0200
  122154. @@ -4,11 +4,18 @@
  122155. TESTS_DISABLED := outb tst-fnmatch bug-glob1 tst-gnuglob
  122156. ifeq ($(UCLIBC_HAS_LFS),)
  122157. TESTS_DISABLED += dirent64
  122158. +TESTS_DISABLED += tst-statfs # assuming host has LFS on
  122159. endif
  122160. CFLAGS_dirent64 := -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
  122161. DODIFF_dirent := 1
  122162. DODIFF_dirent64 := 1
  122163. +DODIFF_tst-statfs := 1
  122164. +DODIFF_tst-statvfs := 1
  122165. OPTS_bug-glob1 := $(PWD)
  122166. OPTS_tst-fnmatch := < tst-fnmatch.input
  122167. +
  122168. +MNTENTS = $(shell mount | while read dev on mp rest; do echo $$mp; done)
  122169. +OPTS_tst-statfs := $(MNTENTS)
  122170. +OPTS_tst-statvfs := $(MNTENTS)
  122171. diff -Nur uClibc-0.9.33.2/test/misc/opendir-tst1.c uClibc-git/test/misc/opendir-tst1.c
  122172. --- uClibc-0.9.33.2/test/misc/opendir-tst1.c 2012-05-15 09:20:09.000000000 +0200
  122173. +++ uClibc-git/test/misc/opendir-tst1.c 2014-06-02 17:40:35.274718958 +0200
  122174. @@ -13,9 +13,8 @@
  122175. Lesser General Public License for more details.
  122176. You should have received a copy of the GNU Lesser General Public
  122177. - License along with the GNU C Library; if not, write to the Free
  122178. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122179. - 02111-1307 USA. */
  122180. + License along with the GNU C Library; if not, see
  122181. + <http://www.gnu.org/licenses/>. */
  122182. #include <dirent.h>
  122183. #include <errno.h>
  122184. diff -Nur uClibc-0.9.33.2/test/misc/tst-fnmatch.c uClibc-git/test/misc/tst-fnmatch.c
  122185. --- uClibc-0.9.33.2/test/misc/tst-fnmatch.c 2012-05-15 09:20:09.000000000 +0200
  122186. +++ uClibc-git/test/misc/tst-fnmatch.c 2014-06-02 17:40:35.278718981 +0200
  122187. @@ -13,9 +13,8 @@
  122188. Lesser General Public License for more details.
  122189. You should have received a copy of the GNU Lesser General Public
  122190. - License along with the GNU C Library; if not, write to the Free
  122191. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122192. - 02111-1307 USA. */
  122193. + License along with the GNU C Library; if not, see
  122194. + <http://www.gnu.org/licenses/>. */
  122195. #include <errno.h>
  122196. #include <error.h>
  122197. diff -Nur uClibc-0.9.33.2/test/misc/tst-fnmatch.input uClibc-git/test/misc/tst-fnmatch.input
  122198. --- uClibc-0.9.33.2/test/misc/tst-fnmatch.input 2012-05-15 09:20:09.000000000 +0200
  122199. +++ uClibc-git/test/misc/tst-fnmatch.input 2014-06-02 17:40:35.286719024 +0200
  122200. @@ -15,9 +15,8 @@
  122201. # Lesser General Public License for more details.
  122202. # You should have received a copy of the GNU Lesser General Public
  122203. -# License along with the GNU C Library; if not, write to the Free
  122204. -# Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122205. -# 02111-1307 USA.
  122206. +# License along with the GNU C Library; see the file COPYING.LIB. If
  122207. +# not, see <http://www.gnu.org/licenses/>.
  122208. # Derived from the IEEE 2003.2 text. The standard only contains some
  122209. diff -Nur uClibc-0.9.33.2/test/misc/tst-gnuglob.c uClibc-git/test/misc/tst-gnuglob.c
  122210. --- uClibc-0.9.33.2/test/misc/tst-gnuglob.c 2012-05-15 09:20:09.000000000 +0200
  122211. +++ uClibc-git/test/misc/tst-gnuglob.c 2014-06-02 17:40:35.286719024 +0200
  122212. @@ -15,9 +15,8 @@
  122213. Lesser General Public License for more details.
  122214. You should have received a copy of the GNU Lesser General Public
  122215. - License along with the GNU C Library; if not, write to the Free
  122216. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122217. - 02111-1307 USA. */
  122218. + License along with the GNU C Library; if not, see
  122219. + <http://www.gnu.org/licenses/>. */
  122220. #include <dirent.h>
  122221. #include <errno.h>
  122222. diff -Nur uClibc-0.9.33.2/test/misc/tst-inotify.c uClibc-git/test/misc/tst-inotify.c
  122223. --- uClibc-0.9.33.2/test/misc/tst-inotify.c 1970-01-01 01:00:00.000000000 +0100
  122224. +++ uClibc-git/test/misc/tst-inotify.c 2014-06-02 17:40:35.286719024 +0200
  122225. @@ -0,0 +1,66 @@
  122226. +/* vi: set sw=4 ts=4 sts=4: */
  122227. +/*
  122228. + * inotify test for uClibc
  122229. + * Copyright (C) 2012 by Kevin Cernekee <cernekee@gmail.com>
  122230. + *
  122231. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  122232. + */
  122233. +
  122234. +#include <stdio.h>
  122235. +#include <stdlib.h>
  122236. +#include <string.h>
  122237. +#include <unistd.h>
  122238. +#include <errno.h>
  122239. +#include <error.h>
  122240. +#include <inttypes.h>
  122241. +#include <sys/inotify.h>
  122242. +#include <sys/fcntl.h>
  122243. +
  122244. +static int
  122245. +do_test(void)
  122246. +{
  122247. + int ifd, fd, ret, result = 0;
  122248. + struct inotify_event e;
  122249. + char tfile[] = "/tmp/inotify.XXXXXX";
  122250. +
  122251. + fd = mkstemp(tfile);
  122252. + close(fd);
  122253. +
  122254. + ifd = inotify_init1(IN_NONBLOCK);
  122255. + if (ifd < 0) {
  122256. + perror("inotify_init1()");
  122257. + result = 1;
  122258. + }
  122259. + if (inotify_add_watch(ifd, tfile, IN_DELETE_SELF) < 0) {
  122260. + perror("inotify_add_watch()");
  122261. + result = 1;
  122262. + }
  122263. +
  122264. + /* nonblocking inotify should return immediately with no events */
  122265. + ret = read(ifd, &e, sizeof(e));
  122266. + if (ret != -1 || errno != EAGAIN) {
  122267. + error(0, 0, "first read() returned %d", ret);
  122268. + result = 1;
  122269. + }
  122270. +
  122271. + /* generate an event */
  122272. + unlink(tfile);
  122273. +
  122274. + /* now check whether our event was seen */
  122275. + ret = read(ifd, &e, sizeof(e));
  122276. + if (ret != sizeof(e)) {
  122277. + error(0, 0, "second read() returned %d", ret);
  122278. + result = 1;
  122279. + }
  122280. +
  122281. + if (!(e.mask & IN_DELETE_SELF)) {
  122282. + error(0, 0, "incorrect event mask: %" PRIx32, e.mask);
  122283. + result = 1;
  122284. + }
  122285. +
  122286. + return result;
  122287. +}
  122288. +
  122289. +#define TIMEOUT 5
  122290. +#define TEST_FUNCTION do_test ()
  122291. +#include "../test-skeleton.c"
  122292. diff -Nur uClibc-0.9.33.2/test/misc/tst-statfs.c uClibc-git/test/misc/tst-statfs.c
  122293. --- uClibc-0.9.33.2/test/misc/tst-statfs.c 1970-01-01 01:00:00.000000000 +0100
  122294. +++ uClibc-git/test/misc/tst-statfs.c 2014-06-02 17:40:35.286719024 +0200
  122295. @@ -0,0 +1,31 @@
  122296. +#include <sys/vfs.h>
  122297. +#include <errno.h>
  122298. +#include <stdio.h>
  122299. +#include <stdlib.h>
  122300. +#include <string.h>
  122301. +
  122302. +int
  122303. +main(int argc, char* argv[])
  122304. +{
  122305. + struct statfs s;
  122306. + int ret = 0, i;
  122307. +
  122308. + for (i = 1; i < argc; i++) {
  122309. + if (statfs(argv[i], &s) != 0) {
  122310. + fprintf(stderr, "%s: %s: statfs failed. %s\n",
  122311. + *argv, argv[i], strerror(errno));
  122312. + exit(EXIT_FAILURE);
  122313. + }
  122314. + ++ret;
  122315. + printf("statfs %s:\n\tblocks=%lld\n\tblkfree=%lld\n\tbsize=%d\n",
  122316. + argv[i], s.f_blocks, s.f_bfree, s.f_bsize);
  122317. +#ifdef _STATFS_F_FRSIZE
  122318. + printf("\tfrsize=%lld\n", s.f_frsize);
  122319. +#elif defined __mips__
  122320. + printf("\tfrsize=mips, unsupported?\n");
  122321. +#else
  122322. +# error no _STATFS_F_FRSIZE
  122323. +#endif
  122324. + }
  122325. + exit(ret ? EXIT_SUCCESS : EXIT_FAILURE);
  122326. +}
  122327. diff -Nur uClibc-0.9.33.2/test/misc/tst-statvfs.c uClibc-git/test/misc/tst-statvfs.c
  122328. --- uClibc-0.9.33.2/test/misc/tst-statvfs.c 1970-01-01 01:00:00.000000000 +0100
  122329. +++ uClibc-git/test/misc/tst-statvfs.c 2014-06-02 17:40:35.286719024 +0200
  122330. @@ -0,0 +1,26 @@
  122331. +#include <sys/statvfs.h>
  122332. +#include <errno.h>
  122333. +#include <stdio.h>
  122334. +#include <stdlib.h>
  122335. +#include <string.h>
  122336. +
  122337. +int
  122338. +main(int argc, char* argv[])
  122339. +{
  122340. + struct statvfs s;
  122341. + int i;
  122342. +
  122343. + for (i = 1; i < argc; i++) {
  122344. + if (statvfs(argv[i], &s) != 0) {
  122345. + fprintf(stderr, "%s: %s: statvfs failed. %s\n",
  122346. + *argv, argv[i], strerror(errno));
  122347. + exit(EXIT_FAILURE);
  122348. + }
  122349. + printf("statvfs %s:\n\tblocks=%lld\n\tblkfree=%lld\n\tbsize=%d\n",
  122350. + argv[i], s.f_blocks, s.f_bfree, s.f_bsize);
  122351. +#if 1 // def _STATFS_F_FRSIZE
  122352. + printf("\tfrsize=%lld\n", s.f_frsize);
  122353. +#endif
  122354. + }
  122355. + exit(EXIT_SUCCESS);
  122356. +}
  122357. diff -Nur uClibc-0.9.33.2/test/misc/tst-utmp.c uClibc-git/test/misc/tst-utmp.c
  122358. --- uClibc-0.9.33.2/test/misc/tst-utmp.c 2012-05-15 09:20:09.000000000 +0200
  122359. +++ uClibc-git/test/misc/tst-utmp.c 2014-06-02 17:40:35.286719024 +0200
  122360. @@ -14,9 +14,8 @@
  122361. Lesser General Public License for more details.
  122362. You should have received a copy of the GNU Lesser General Public
  122363. - License along with the GNU C Library; if not, write to the Free
  122364. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122365. - 02111-1307 USA. */
  122366. + License along with the GNU C Library; if not, see
  122367. + <http://www.gnu.org/licenses/>. */
  122368. #include <errno.h>
  122369. #include <error.h>
  122370. diff -Nur uClibc-0.9.33.2/test/mmap/Makefile uClibc-git/test/mmap/Makefile
  122371. --- uClibc-0.9.33.2/test/mmap/Makefile 2012-05-15 09:20:09.000000000 +0200
  122372. +++ uClibc-git/test/mmap/Makefile 2014-06-02 17:40:35.286719024 +0200
  122373. @@ -2,6 +2,7 @@
  122374. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  122375. top_builddir=../../
  122376. +top_srcdir=../../
  122377. include ../Rules.mak
  122378. -include Makefile.in
  122379. include ../Test.mak
  122380. diff -Nur uClibc-0.9.33.2/test/nptl/eintr.c uClibc-git/test/nptl/eintr.c
  122381. --- uClibc-0.9.33.2/test/nptl/eintr.c 2012-05-15 09:20:09.000000000 +0200
  122382. +++ uClibc-git/test/nptl/eintr.c 2014-06-02 17:40:35.290719047 +0200
  122383. @@ -13,9 +13,8 @@
  122384. Lesser General Public License for more details.
  122385. You should have received a copy of the GNU Lesser General Public
  122386. - License along with the GNU C Library; if not, write to the Free
  122387. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122388. - 02111-1307 USA. */
  122389. + License along with the GNU C Library; if not, see
  122390. + <http://www.gnu.org/licenses/>. */
  122391. #include <pthread.h>
  122392. #include <signal.h>
  122393. diff -Nur uClibc-0.9.33.2/test/nptl/Makefile.in uClibc-git/test/nptl/Makefile.in
  122394. --- uClibc-0.9.33.2/test/nptl/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  122395. +++ uClibc-git/test/nptl/Makefile.in 2014-06-02 17:40:35.290719047 +0200
  122396. @@ -73,21 +73,11 @@
  122397. GLIBC_TESTS_DISABLED += tst-tls3_glibc tst-tls4_glibc tst-tls5_glibc
  122398. endif
  122399. -PTDIR := $(top_builddir)libpthread/nptl
  122400. -SYSDEPS_DIR := $(top_srcdir)libc/sysdeps
  122401. -
  122402. EXTRA_CFLAGS := -DNOT_IN_libc=1 -D_LIBC -D__USE_GNU -std=gnu99 \
  122403. - -I$(SYSDEPS_DIR)/linux \
  122404. - -I$(SYSDEPS_DIR)/linux/$(TARGET_ARCH) \
  122405. - -I$(PTDIR) -I$(PTDIR)/sysdeps/unix/sysv/linux/$(TARGET_ARCH) \
  122406. - -I$(PTDIR)/sysdeps/$(TARGET_ARCH) \
  122407. - -I$(PTDIR)/sysdeps/unix/sysv/linux \
  122408. - -I$(PTDIR)/sysdeps/pthread \
  122409. - -I$(PTDIR)/sysdeps/pthread/bits \
  122410. - -I$(PTDIR)/sysdeps/generic \
  122411. - -I$(top_builddir)ldso/include \
  122412. - -I$(top_builddir)ldso/ldso/$(TARGET_ARCH) \
  122413. - -I$(top_builddir)include \
  122414. + $(PTINC) \
  122415. + -I$(top_srcdir)libc/sysdeps/linux/$(TARGET_ARCH) \
  122416. + -I$(top_srcdir)libc/sysdeps/linux \
  122417. + -I$(top_builddir)include \
  122418. -include $(top_builddir)include/libc-symbols.h
  122419. ifeq ($(TARGET_ARCH),i386)
  122420. diff -Nur uClibc-0.9.33.2/test/nptl/tst-align2.c uClibc-git/test/nptl/tst-align2.c
  122421. --- uClibc-0.9.33.2/test/nptl/tst-align2.c 2012-05-15 09:20:09.000000000 +0200
  122422. +++ uClibc-git/test/nptl/tst-align2.c 2014-06-02 17:40:35.290719047 +0200
  122423. @@ -12,9 +12,8 @@
  122424. Lesser General Public License for more details.
  122425. You should have received a copy of the GNU Lesser General Public
  122426. - License along with the GNU C Library; if not, write to the Free
  122427. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122428. - 02111-1307 USA. */
  122429. + License along with the GNU C Library; if not, see
  122430. + <http://www.gnu.org/licenses/>. */
  122431. #include <sched.h>
  122432. #include <stdbool.h>
  122433. diff -Nur uClibc-0.9.33.2/test/nptl/tst-align3.c uClibc-git/test/nptl/tst-align3.c
  122434. --- uClibc-0.9.33.2/test/nptl/tst-align3.c 2012-05-15 09:20:09.000000000 +0200
  122435. +++ uClibc-git/test/nptl/tst-align3.c 2014-06-02 17:40:35.290719047 +0200
  122436. @@ -13,9 +13,8 @@
  122437. Lesser General Public License for more details.
  122438. You should have received a copy of the GNU Lesser General Public
  122439. - License along with the GNU C Library; if not, write to the Free
  122440. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122441. - 02111-1307 USA. */
  122442. + License along with the GNU C Library; if not, see
  122443. + <http://www.gnu.org/licenses/>. */
  122444. #include <pthread.h>
  122445. #include <stdbool.h>
  122446. diff -Nur uClibc-0.9.33.2/test/nptl/tst-align.c uClibc-git/test/nptl/tst-align.c
  122447. --- uClibc-0.9.33.2/test/nptl/tst-align.c 2012-05-15 09:20:09.000000000 +0200
  122448. +++ uClibc-git/test/nptl/tst-align.c 2014-06-02 17:40:35.290719047 +0200
  122449. @@ -13,9 +13,8 @@
  122450. Lesser General Public License for more details.
  122451. You should have received a copy of the GNU Lesser General Public
  122452. - License along with the GNU C Library; if not, write to the Free
  122453. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122454. - 02111-1307 USA. */
  122455. + License along with the GNU C Library; if not, see
  122456. + <http://www.gnu.org/licenses/>. */
  122457. #include <pthread.h>
  122458. #include <stdbool.h>
  122459. diff -Nur uClibc-0.9.33.2/test/nptl/tst-atfork1.c uClibc-git/test/nptl/tst-atfork1.c
  122460. --- uClibc-0.9.33.2/test/nptl/tst-atfork1.c 2012-05-15 09:20:09.000000000 +0200
  122461. +++ uClibc-git/test/nptl/tst-atfork1.c 2014-06-02 17:40:35.290719047 +0200
  122462. @@ -13,9 +13,8 @@
  122463. Lesser General Public License for more details.
  122464. You should have received a copy of the GNU Lesser General Public
  122465. - License along with the GNU C Library; if not, write to the Free
  122466. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122467. - 02111-1307 USA. */
  122468. + License along with the GNU C Library; if not, see
  122469. + <http://www.gnu.org/licenses/>. */
  122470. #include <errno.h>
  122471. #include <pthread.h>
  122472. diff -Nur uClibc-0.9.33.2/test/nptl/tst-attr1.c uClibc-git/test/nptl/tst-attr1.c
  122473. --- uClibc-0.9.33.2/test/nptl/tst-attr1.c 2012-05-15 09:20:09.000000000 +0200
  122474. +++ uClibc-git/test/nptl/tst-attr1.c 2014-06-02 17:40:35.290719047 +0200
  122475. @@ -13,9 +13,8 @@
  122476. Lesser General Public License for more details.
  122477. You should have received a copy of the GNU Lesser General Public
  122478. - License along with the GNU C Library; if not, write to the Free
  122479. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122480. - 02111-1307 USA. */
  122481. + License along with the GNU C Library; if not, see
  122482. + <http://www.gnu.org/licenses/>. */
  122483. #include <errno.h>
  122484. #include <pthread.h>
  122485. diff -Nur uClibc-0.9.33.2/test/nptl/tst-attr2.c uClibc-git/test/nptl/tst-attr2.c
  122486. --- uClibc-0.9.33.2/test/nptl/tst-attr2.c 2012-05-15 09:20:09.000000000 +0200
  122487. +++ uClibc-git/test/nptl/tst-attr2.c 2014-06-02 17:40:35.290719047 +0200
  122488. @@ -13,9 +13,8 @@
  122489. Lesser General Public License for more details.
  122490. You should have received a copy of the GNU Lesser General Public
  122491. - License along with the GNU C Library; if not, write to the Free
  122492. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122493. - 02111-1307 USA. */
  122494. + License along with the GNU C Library; if not, see
  122495. + <http://www.gnu.org/licenses/>. */
  122496. #include <errno.h>
  122497. #include <pthread.h>
  122498. diff -Nur uClibc-0.9.33.2/test/nptl/tst-attr3.c uClibc-git/test/nptl/tst-attr3.c
  122499. --- uClibc-0.9.33.2/test/nptl/tst-attr3.c 2012-05-15 09:20:09.000000000 +0200
  122500. +++ uClibc-git/test/nptl/tst-attr3.c 2014-06-02 17:40:35.290719047 +0200
  122501. @@ -14,9 +14,8 @@
  122502. Lesser General Public License for more details.
  122503. You should have received a copy of the GNU Lesser General Public
  122504. - License along with the GNU C Library; if not, write to the Free
  122505. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122506. - 02111-1307 USA. */
  122507. + License along with the GNU C Library; if not, see
  122508. + <http://www.gnu.org/licenses/>. */
  122509. #include <errno.h>
  122510. #include <error.h>
  122511. diff -Nur uClibc-0.9.33.2/test/nptl/tst-barrier1.c uClibc-git/test/nptl/tst-barrier1.c
  122512. --- uClibc-0.9.33.2/test/nptl/tst-barrier1.c 2012-05-15 09:20:09.000000000 +0200
  122513. +++ uClibc-git/test/nptl/tst-barrier1.c 2014-06-02 17:40:35.290719047 +0200
  122514. @@ -13,9 +13,8 @@
  122515. Lesser General Public License for more details.
  122516. You should have received a copy of the GNU Lesser General Public
  122517. - License along with the GNU C Library; if not, write to the Free
  122518. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122519. - 02111-1307 USA. */
  122520. + License along with the GNU C Library; if not, see
  122521. + <http://www.gnu.org/licenses/>. */
  122522. #include <errno.h>
  122523. #include <pthread.h>
  122524. diff -Nur uClibc-0.9.33.2/test/nptl/tst-barrier2.c uClibc-git/test/nptl/tst-barrier2.c
  122525. --- uClibc-0.9.33.2/test/nptl/tst-barrier2.c 2012-05-15 09:20:09.000000000 +0200
  122526. +++ uClibc-git/test/nptl/tst-barrier2.c 2014-06-02 17:40:35.290719047 +0200
  122527. @@ -13,9 +13,8 @@
  122528. Lesser General Public License for more details.
  122529. You should have received a copy of the GNU Lesser General Public
  122530. - License along with the GNU C Library; if not, write to the Free
  122531. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122532. - 02111-1307 USA. */
  122533. + License along with the GNU C Library; if not, see
  122534. + <http://www.gnu.org/licenses/>. */
  122535. #include <errno.h>
  122536. #include <pthread.h>
  122537. diff -Nur uClibc-0.9.33.2/test/nptl/tst-barrier3.c uClibc-git/test/nptl/tst-barrier3.c
  122538. --- uClibc-0.9.33.2/test/nptl/tst-barrier3.c 2012-05-15 09:20:09.000000000 +0200
  122539. +++ uClibc-git/test/nptl/tst-barrier3.c 2014-06-02 17:40:35.290719047 +0200
  122540. @@ -13,9 +13,8 @@
  122541. Lesser General Public License for more details.
  122542. You should have received a copy of the GNU Lesser General Public
  122543. - License along with the GNU C Library; if not, write to the Free
  122544. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122545. - 02111-1307 USA. */
  122546. + License along with the GNU C Library; if not, see
  122547. + <http://www.gnu.org/licenses/>. */
  122548. /* Test of POSIX barriers. */
  122549. diff -Nur uClibc-0.9.33.2/test/nptl/tst-barrier4.c uClibc-git/test/nptl/tst-barrier4.c
  122550. --- uClibc-0.9.33.2/test/nptl/tst-barrier4.c 2012-05-15 09:20:09.000000000 +0200
  122551. +++ uClibc-git/test/nptl/tst-barrier4.c 2014-06-02 17:40:35.290719047 +0200
  122552. @@ -13,9 +13,8 @@
  122553. Lesser General Public License for more details.
  122554. You should have received a copy of the GNU Lesser General Public
  122555. - License along with the GNU C Library; if not, write to the Free
  122556. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122557. - 02111-1307 USA. */
  122558. + License along with the GNU C Library; if not, see
  122559. + <http://www.gnu.org/licenses/>. */
  122560. /* This is a test for behavior not guaranteed by POSIX. */
  122561. #include <errno.h>
  122562. diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic1.c uClibc-git/test/nptl/tst-basic1.c
  122563. --- uClibc-0.9.33.2/test/nptl/tst-basic1.c 2012-05-15 09:20:09.000000000 +0200
  122564. +++ uClibc-git/test/nptl/tst-basic1.c 2014-06-02 17:40:35.290719047 +0200
  122565. @@ -13,9 +13,8 @@
  122566. Lesser General Public License for more details.
  122567. You should have received a copy of the GNU Lesser General Public
  122568. - License along with the GNU C Library; if not, write to the Free
  122569. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122570. - 02111-1307 USA. */
  122571. + License along with the GNU C Library; if not, see
  122572. + <http://www.gnu.org/licenses/>. */
  122573. #include <pthread.h>
  122574. #include <stdio.h>
  122575. diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic2.c uClibc-git/test/nptl/tst-basic2.c
  122576. --- uClibc-0.9.33.2/test/nptl/tst-basic2.c 2012-05-15 09:20:09.000000000 +0200
  122577. +++ uClibc-git/test/nptl/tst-basic2.c 2014-06-02 17:40:35.290719047 +0200
  122578. @@ -13,9 +13,8 @@
  122579. Lesser General Public License for more details.
  122580. You should have received a copy of the GNU Lesser General Public
  122581. - License along with the GNU C Library; if not, write to the Free
  122582. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122583. - 02111-1307 USA. */
  122584. + License along with the GNU C Library; if not, see
  122585. + <http://www.gnu.org/licenses/>. */
  122586. #include <pthread.h>
  122587. #include <stdio.h>
  122588. diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic3.c uClibc-git/test/nptl/tst-basic3.c
  122589. --- uClibc-0.9.33.2/test/nptl/tst-basic3.c 2012-05-15 09:20:09.000000000 +0200
  122590. +++ uClibc-git/test/nptl/tst-basic3.c 2014-06-02 17:40:35.290719047 +0200
  122591. @@ -13,9 +13,8 @@
  122592. Lesser General Public License for more details.
  122593. You should have received a copy of the GNU Lesser General Public
  122594. - License along with the GNU C Library; if not, write to the Free
  122595. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122596. - 02111-1307 USA. */
  122597. + License along with the GNU C Library; if not, see
  122598. + <http://www.gnu.org/licenses/>. */
  122599. #include <pthread.h>
  122600. #include <signal.h>
  122601. diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic4.c uClibc-git/test/nptl/tst-basic4.c
  122602. --- uClibc-0.9.33.2/test/nptl/tst-basic4.c 2012-05-15 09:20:09.000000000 +0200
  122603. +++ uClibc-git/test/nptl/tst-basic4.c 2014-06-02 17:40:35.290719047 +0200
  122604. @@ -13,9 +13,8 @@
  122605. Lesser General Public License for more details.
  122606. You should have received a copy of the GNU Lesser General Public
  122607. - License along with the GNU C Library; if not, write to the Free
  122608. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122609. - 02111-1307 USA. */
  122610. + License along with the GNU C Library; if not, see
  122611. + <http://www.gnu.org/licenses/>. */
  122612. #include <errno.h>
  122613. #include <pthread.h>
  122614. diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic5.c uClibc-git/test/nptl/tst-basic5.c
  122615. --- uClibc-0.9.33.2/test/nptl/tst-basic5.c 2012-05-15 09:20:09.000000000 +0200
  122616. +++ uClibc-git/test/nptl/tst-basic5.c 2014-06-02 17:40:35.290719047 +0200
  122617. @@ -13,9 +13,8 @@
  122618. Lesser General Public License for more details.
  122619. You should have received a copy of the GNU Lesser General Public
  122620. - License along with the GNU C Library; if not, write to the Free
  122621. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122622. - 02111-1307 USA. */
  122623. + License along with the GNU C Library; if not, see
  122624. + <http://www.gnu.org/licenses/>. */
  122625. #include <errno.h>
  122626. #include <pthread.h>
  122627. diff -Nur uClibc-0.9.33.2/test/nptl/tst-basic6.c uClibc-git/test/nptl/tst-basic6.c
  122628. --- uClibc-0.9.33.2/test/nptl/tst-basic6.c 2012-05-15 09:20:09.000000000 +0200
  122629. +++ uClibc-git/test/nptl/tst-basic6.c 2014-06-02 17:40:35.290719047 +0200
  122630. @@ -13,9 +13,8 @@
  122631. Lesser General Public License for more details.
  122632. You should have received a copy of the GNU Lesser General Public
  122633. - License along with the GNU C Library; if not, write to the Free
  122634. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122635. - 02111-1307 USA. */
  122636. + License along with the GNU C Library; if not, see
  122637. + <http://www.gnu.org/licenses/>. */
  122638. #include <pthread.h>
  122639. #include <stdio.h>
  122640. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel10.c uClibc-git/test/nptl/tst-cancel10.c
  122641. --- uClibc-0.9.33.2/test/nptl/tst-cancel10.c 2012-05-15 09:20:09.000000000 +0200
  122642. +++ uClibc-git/test/nptl/tst-cancel10.c 2014-06-02 17:40:35.290719047 +0200
  122643. @@ -13,9 +13,8 @@
  122644. Lesser General Public License for more details.
  122645. You should have received a copy of the GNU Lesser General Public
  122646. - License along with the GNU C Library; if not, write to the Free
  122647. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122648. - 02111-1307 USA. */
  122649. + License along with the GNU C Library; if not, see
  122650. + <http://www.gnu.org/licenses/>. */
  122651. #include <pthread.h>
  122652. #include <stdio.h>
  122653. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel11.c uClibc-git/test/nptl/tst-cancel11.c
  122654. --- uClibc-0.9.33.2/test/nptl/tst-cancel11.c 2012-05-15 09:20:09.000000000 +0200
  122655. +++ uClibc-git/test/nptl/tst-cancel11.c 2014-06-02 17:40:35.290719047 +0200
  122656. @@ -13,9 +13,8 @@
  122657. Lesser General Public License for more details.
  122658. You should have received a copy of the GNU Lesser General Public
  122659. - License along with the GNU C Library; if not, write to the Free
  122660. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122661. - 02111-1307 USA. */
  122662. + License along with the GNU C Library; if not, see
  122663. + <http://www.gnu.org/licenses/>. */
  122664. #include <errno.h>
  122665. #include <pthread.h>
  122666. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel12.c uClibc-git/test/nptl/tst-cancel12.c
  122667. --- uClibc-0.9.33.2/test/nptl/tst-cancel12.c 2012-05-15 09:20:09.000000000 +0200
  122668. +++ uClibc-git/test/nptl/tst-cancel12.c 2014-06-02 17:40:35.290719047 +0200
  122669. @@ -13,9 +13,8 @@
  122670. Lesser General Public License for more details.
  122671. You should have received a copy of the GNU Lesser General Public
  122672. - License along with the GNU C Library; if not, write to the Free
  122673. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122674. - 02111-1307 USA. */
  122675. + License along with the GNU C Library; if not, see
  122676. + <http://www.gnu.org/licenses/>. */
  122677. #include <errno.h>
  122678. #include <pthread.h>
  122679. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel13.c uClibc-git/test/nptl/tst-cancel13.c
  122680. --- uClibc-0.9.33.2/test/nptl/tst-cancel13.c 2012-05-15 09:20:09.000000000 +0200
  122681. +++ uClibc-git/test/nptl/tst-cancel13.c 2014-06-02 17:40:35.290719047 +0200
  122682. @@ -13,9 +13,8 @@
  122683. Lesser General Public License for more details.
  122684. You should have received a copy of the GNU Lesser General Public
  122685. - License along with the GNU C Library; if not, write to the Free
  122686. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122687. - 02111-1307 USA. */
  122688. + License along with the GNU C Library; if not, see
  122689. + <http://www.gnu.org/licenses/>. */
  122690. #include <errno.h>
  122691. #include <pthread.h>
  122692. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel14.c uClibc-git/test/nptl/tst-cancel14.c
  122693. --- uClibc-0.9.33.2/test/nptl/tst-cancel14.c 2012-05-15 09:20:09.000000000 +0200
  122694. +++ uClibc-git/test/nptl/tst-cancel14.c 2014-06-02 17:40:35.290719047 +0200
  122695. @@ -13,9 +13,8 @@
  122696. Lesser General Public License for more details.
  122697. You should have received a copy of the GNU Lesser General Public
  122698. - License along with the GNU C Library; if not, write to the Free
  122699. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122700. - 02111-1307 USA. */
  122701. + License along with the GNU C Library; if not, see
  122702. + <http://www.gnu.org/licenses/>. */
  122703. #include <errno.h>
  122704. #include <pthread.h>
  122705. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel15.c uClibc-git/test/nptl/tst-cancel15.c
  122706. --- uClibc-0.9.33.2/test/nptl/tst-cancel15.c 2012-05-15 09:20:09.000000000 +0200
  122707. +++ uClibc-git/test/nptl/tst-cancel15.c 2014-06-02 17:40:35.290719047 +0200
  122708. @@ -13,9 +13,8 @@
  122709. Lesser General Public License for more details.
  122710. You should have received a copy of the GNU Lesser General Public
  122711. - License along with the GNU C Library; if not, write to the Free
  122712. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122713. - 02111-1307 USA. */
  122714. + License along with the GNU C Library; if not, see
  122715. + <http://www.gnu.org/licenses/>. */
  122716. #include <errno.h>
  122717. #include <pthread.h>
  122718. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel16.c uClibc-git/test/nptl/tst-cancel16.c
  122719. --- uClibc-0.9.33.2/test/nptl/tst-cancel16.c 2012-05-15 09:20:09.000000000 +0200
  122720. +++ uClibc-git/test/nptl/tst-cancel16.c 2014-06-02 17:40:35.290719047 +0200
  122721. @@ -13,9 +13,8 @@
  122722. Lesser General Public License for more details.
  122723. You should have received a copy of the GNU Lesser General Public
  122724. - License along with the GNU C Library; if not, write to the Free
  122725. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122726. - 02111-1307 USA. */
  122727. + License along with the GNU C Library; if not, see
  122728. + <http://www.gnu.org/licenses/>. */
  122729. #include <errno.h>
  122730. #include <pthread.h>
  122731. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel18.c uClibc-git/test/nptl/tst-cancel18.c
  122732. --- uClibc-0.9.33.2/test/nptl/tst-cancel18.c 2012-05-15 09:20:09.000000000 +0200
  122733. +++ uClibc-git/test/nptl/tst-cancel18.c 2014-06-02 17:40:35.290719047 +0200
  122734. @@ -13,9 +13,8 @@
  122735. Lesser General Public License for more details.
  122736. You should have received a copy of the GNU Lesser General Public
  122737. - License along with the GNU C Library; if not, write to the Free
  122738. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122739. - 02111-1307 USA. */
  122740. + License along with the GNU C Library; if not, see
  122741. + <http://www.gnu.org/licenses/>. */
  122742. #include <errno.h>
  122743. #include <pthread.h>
  122744. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel19.c uClibc-git/test/nptl/tst-cancel19.c
  122745. --- uClibc-0.9.33.2/test/nptl/tst-cancel19.c 2012-05-15 09:20:09.000000000 +0200
  122746. +++ uClibc-git/test/nptl/tst-cancel19.c 2014-06-02 17:40:35.290719047 +0200
  122747. @@ -13,9 +13,8 @@
  122748. Lesser General Public License for more details.
  122749. You should have received a copy of the GNU Lesser General Public
  122750. - License along with the GNU C Library; if not, write to the Free
  122751. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122752. - 02111-1307 USA. */
  122753. + License along with the GNU C Library; if not, see
  122754. + <http://www.gnu.org/licenses/>. */
  122755. #include <errno.h>
  122756. #include <error.h>
  122757. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel1.c uClibc-git/test/nptl/tst-cancel1.c
  122758. --- uClibc-0.9.33.2/test/nptl/tst-cancel1.c 2012-05-15 09:20:09.000000000 +0200
  122759. +++ uClibc-git/test/nptl/tst-cancel1.c 2014-06-02 17:40:35.290719047 +0200
  122760. @@ -13,9 +13,8 @@
  122761. Lesser General Public License for more details.
  122762. You should have received a copy of the GNU Lesser General Public
  122763. - License along with the GNU C Library; if not, write to the Free
  122764. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122765. - 02111-1307 USA. */
  122766. + License along with the GNU C Library; if not, see
  122767. + <http://www.gnu.org/licenses/>. */
  122768. #include <pthread.h>
  122769. #include <signal.h>
  122770. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel20.c uClibc-git/test/nptl/tst-cancel20.c
  122771. --- uClibc-0.9.33.2/test/nptl/tst-cancel20.c 2012-05-15 09:20:09.000000000 +0200
  122772. +++ uClibc-git/test/nptl/tst-cancel20.c 2014-06-02 17:40:35.290719047 +0200
  122773. @@ -13,9 +13,8 @@
  122774. Lesser General Public License for more details.
  122775. You should have received a copy of the GNU Lesser General Public
  122776. - License along with the GNU C Library; if not, write to the Free
  122777. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122778. - 02111-1307 USA. */
  122779. + License along with the GNU C Library; if not, see
  122780. + <http://www.gnu.org/licenses/>. */
  122781. #include <errno.h>
  122782. #include <pthread.h>
  122783. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel21.c uClibc-git/test/nptl/tst-cancel21.c
  122784. --- uClibc-0.9.33.2/test/nptl/tst-cancel21.c 2012-05-15 09:20:09.000000000 +0200
  122785. +++ uClibc-git/test/nptl/tst-cancel21.c 2014-06-02 17:40:35.290719047 +0200
  122786. @@ -13,9 +13,8 @@
  122787. Lesser General Public License for more details.
  122788. You should have received a copy of the GNU Lesser General Public
  122789. - License along with the GNU C Library; if not, write to the Free
  122790. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122791. - 02111-1307 USA. */
  122792. + License along with the GNU C Library; if not, see
  122793. + <http://www.gnu.org/licenses/>. */
  122794. #include <errno.h>
  122795. #include <pthread.h>
  122796. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel22.c uClibc-git/test/nptl/tst-cancel22.c
  122797. --- uClibc-0.9.33.2/test/nptl/tst-cancel22.c 2012-05-15 09:20:09.000000000 +0200
  122798. +++ uClibc-git/test/nptl/tst-cancel22.c 2014-06-02 17:40:35.290719047 +0200
  122799. @@ -13,9 +13,8 @@
  122800. Lesser General Public License for more details.
  122801. You should have received a copy of the GNU Lesser General Public
  122802. - License along with the GNU C Library; if not, write to the Free
  122803. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122804. - 02111-1307 USA. */
  122805. + License along with the GNU C Library; if not, see
  122806. + <http://www.gnu.org/licenses/>. */
  122807. #include <errno.h>
  122808. #include <pthread.h>
  122809. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel2.c uClibc-git/test/nptl/tst-cancel2.c
  122810. --- uClibc-0.9.33.2/test/nptl/tst-cancel2.c 2012-05-15 09:20:09.000000000 +0200
  122811. +++ uClibc-git/test/nptl/tst-cancel2.c 2014-06-02 17:40:35.290719047 +0200
  122812. @@ -13,9 +13,8 @@
  122813. Lesser General Public License for more details.
  122814. You should have received a copy of the GNU Lesser General Public
  122815. - License along with the GNU C Library; if not, write to the Free
  122816. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122817. - 02111-1307 USA. */
  122818. + License along with the GNU C Library; if not, see
  122819. + <http://www.gnu.org/licenses/>. */
  122820. #include <pthread.h>
  122821. #include <signal.h>
  122822. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel3.c uClibc-git/test/nptl/tst-cancel3.c
  122823. --- uClibc-0.9.33.2/test/nptl/tst-cancel3.c 2012-05-15 09:20:09.000000000 +0200
  122824. +++ uClibc-git/test/nptl/tst-cancel3.c 2014-06-02 17:40:35.290719047 +0200
  122825. @@ -13,9 +13,8 @@
  122826. Lesser General Public License for more details.
  122827. You should have received a copy of the GNU Lesser General Public
  122828. - License along with the GNU C Library; if not, write to the Free
  122829. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122830. - 02111-1307 USA. */
  122831. + License along with the GNU C Library; if not, see
  122832. + <http://www.gnu.org/licenses/>. */
  122833. #include <pthread.h>
  122834. #include <signal.h>
  122835. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel4.c uClibc-git/test/nptl/tst-cancel4.c
  122836. --- uClibc-0.9.33.2/test/nptl/tst-cancel4.c 2012-05-15 09:20:09.000000000 +0200
  122837. +++ uClibc-git/test/nptl/tst-cancel4.c 2014-06-02 17:40:35.290719047 +0200
  122838. @@ -13,9 +13,8 @@
  122839. Lesser General Public License for more details.
  122840. You should have received a copy of the GNU Lesser General Public
  122841. - License along with the GNU C Library; if not, write to the Free
  122842. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122843. - 02111-1307 USA. */
  122844. + License along with the GNU C Library; if not, see
  122845. + <http://www.gnu.org/licenses/>. */
  122846. /* NOTE: this tests functionality beyond POSIX. POSIX does not allow
  122847. exit to be called more than once. */
  122848. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel6.c uClibc-git/test/nptl/tst-cancel6.c
  122849. --- uClibc-0.9.33.2/test/nptl/tst-cancel6.c 2012-05-15 09:20:09.000000000 +0200
  122850. +++ uClibc-git/test/nptl/tst-cancel6.c 2014-06-02 17:40:35.290719047 +0200
  122851. @@ -13,9 +13,8 @@
  122852. Lesser General Public License for more details.
  122853. You should have received a copy of the GNU Lesser General Public
  122854. - License along with the GNU C Library; if not, write to the Free
  122855. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122856. - 02111-1307 USA. */
  122857. + License along with the GNU C Library; if not, see
  122858. + <http://www.gnu.org/licenses/>. */
  122859. #include <pthread.h>
  122860. #include <stdio.h>
  122861. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel7.c uClibc-git/test/nptl/tst-cancel7.c
  122862. --- uClibc-0.9.33.2/test/nptl/tst-cancel7.c 2012-05-15 09:20:09.000000000 +0200
  122863. +++ uClibc-git/test/nptl/tst-cancel7.c 2014-06-02 17:40:35.290719047 +0200
  122864. @@ -13,9 +13,8 @@
  122865. Lesser General Public License for more details.
  122866. You should have received a copy of the GNU Lesser General Public
  122867. - License along with the GNU C Library; if not, write to the Free
  122868. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122869. - 02111-1307 USA. */
  122870. + License along with the GNU C Library; if not, see
  122871. + <http://www.gnu.org/licenses/>. */
  122872. #include <errno.h>
  122873. #include <fcntl.h>
  122874. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel8.c uClibc-git/test/nptl/tst-cancel8.c
  122875. --- uClibc-0.9.33.2/test/nptl/tst-cancel8.c 2012-05-15 09:20:09.000000000 +0200
  122876. +++ uClibc-git/test/nptl/tst-cancel8.c 2014-06-02 17:40:35.290719047 +0200
  122877. @@ -13,9 +13,8 @@
  122878. Lesser General Public License for more details.
  122879. You should have received a copy of the GNU Lesser General Public
  122880. - License along with the GNU C Library; if not, write to the Free
  122881. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122882. - 02111-1307 USA. */
  122883. + License along with the GNU C Library; if not, see
  122884. + <http://www.gnu.org/licenses/>. */
  122885. #include <pthread.h>
  122886. #include <stdio.h>
  122887. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cancel9.c uClibc-git/test/nptl/tst-cancel9.c
  122888. --- uClibc-0.9.33.2/test/nptl/tst-cancel9.c 2012-05-15 09:20:09.000000000 +0200
  122889. +++ uClibc-git/test/nptl/tst-cancel9.c 2014-06-02 17:40:35.290719047 +0200
  122890. @@ -13,9 +13,8 @@
  122891. Lesser General Public License for more details.
  122892. You should have received a copy of the GNU Lesser General Public
  122893. - License along with the GNU C Library; if not, write to the Free
  122894. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122895. - 02111-1307 USA. */
  122896. + License along with the GNU C Library; if not, see
  122897. + <http://www.gnu.org/licenses/>. */
  122898. #include <fcntl.h>
  122899. #include <pthread.h>
  122900. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup0.c uClibc-git/test/nptl/tst-cleanup0.c
  122901. --- uClibc-0.9.33.2/test/nptl/tst-cleanup0.c 2012-05-15 09:20:09.000000000 +0200
  122902. +++ uClibc-git/test/nptl/tst-cleanup0.c 2014-06-02 17:40:35.294719069 +0200
  122903. @@ -13,9 +13,8 @@
  122904. Lesser General Public License for more details.
  122905. You should have received a copy of the GNU Lesser General Public
  122906. - License along with the GNU C Library; if not, write to the Free
  122907. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122908. - 02111-1307 USA. */
  122909. + License along with the GNU C Library; if not, see
  122910. + <http://www.gnu.org/licenses/>. */
  122911. #include <pthread.h>
  122912. #include <stdio.h>
  122913. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup1.c uClibc-git/test/nptl/tst-cleanup1.c
  122914. --- uClibc-0.9.33.2/test/nptl/tst-cleanup1.c 2012-05-15 09:20:09.000000000 +0200
  122915. +++ uClibc-git/test/nptl/tst-cleanup1.c 2014-06-02 17:40:35.294719069 +0200
  122916. @@ -13,9 +13,8 @@
  122917. Lesser General Public License for more details.
  122918. You should have received a copy of the GNU Lesser General Public
  122919. - License along with the GNU C Library; if not, write to the Free
  122920. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122921. - 02111-1307 USA. */
  122922. + License along with the GNU C Library; if not, see
  122923. + <http://www.gnu.org/licenses/>. */
  122924. #include <pthread.h>
  122925. #include <stdio.h>
  122926. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup2.c uClibc-git/test/nptl/tst-cleanup2.c
  122927. --- uClibc-0.9.33.2/test/nptl/tst-cleanup2.c 2012-05-15 09:20:09.000000000 +0200
  122928. +++ uClibc-git/test/nptl/tst-cleanup2.c 2014-06-02 17:40:35.294719069 +0200
  122929. @@ -13,9 +13,8 @@
  122930. Lesser General Public License for more details.
  122931. You should have received a copy of the GNU Lesser General Public
  122932. - License along with the GNU C Library; if not, write to the Free
  122933. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122934. - 02111-1307 USA. */
  122935. + License along with the GNU C Library; if not, see
  122936. + <http://www.gnu.org/licenses/>. */
  122937. #include <setjmp.h>
  122938. #include <signal.h>
  122939. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup3.c uClibc-git/test/nptl/tst-cleanup3.c
  122940. --- uClibc-0.9.33.2/test/nptl/tst-cleanup3.c 2012-05-15 09:20:09.000000000 +0200
  122941. +++ uClibc-git/test/nptl/tst-cleanup3.c 2014-06-02 17:40:35.294719069 +0200
  122942. @@ -13,9 +13,8 @@
  122943. Lesser General Public License for more details.
  122944. You should have received a copy of the GNU Lesser General Public
  122945. - License along with the GNU C Library; if not, write to the Free
  122946. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122947. - 02111-1307 USA. */
  122948. + License along with the GNU C Library; if not, see
  122949. + <http://www.gnu.org/licenses/>. */
  122950. #include <pthread.h>
  122951. #include <stdio.h>
  122952. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup4aux.c uClibc-git/test/nptl/tst-cleanup4aux.c
  122953. --- uClibc-0.9.33.2/test/nptl/tst-cleanup4aux.c 2012-05-15 09:20:09.000000000 +0200
  122954. +++ uClibc-git/test/nptl/tst-cleanup4aux.c 2014-06-02 17:40:35.294719069 +0200
  122955. @@ -13,9 +13,8 @@
  122956. Lesser General Public License for more details.
  122957. You should have received a copy of the GNU Lesser General Public
  122958. - License along with the GNU C Library; if not, write to the Free
  122959. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122960. - 02111-1307 USA. */
  122961. + License along with the GNU C Library; if not, see
  122962. + <http://www.gnu.org/licenses/>. */
  122963. #include <pthread.h>
  122964. #include <stdio.h>
  122965. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cleanup4.c uClibc-git/test/nptl/tst-cleanup4.c
  122966. --- uClibc-0.9.33.2/test/nptl/tst-cleanup4.c 2012-05-15 09:20:09.000000000 +0200
  122967. +++ uClibc-git/test/nptl/tst-cleanup4.c 2014-06-02 17:40:35.294719069 +0200
  122968. @@ -13,9 +13,8 @@
  122969. Lesser General Public License for more details.
  122970. You should have received a copy of the GNU Lesser General Public
  122971. - License along with the GNU C Library; if not, write to the Free
  122972. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122973. - 02111-1307 USA. */
  122974. + License along with the GNU C Library; if not, see
  122975. + <http://www.gnu.org/licenses/>. */
  122976. #include <pthread.h>
  122977. #include <stdio.h>
  122978. diff -Nur uClibc-0.9.33.2/test/nptl/tst-clock1.c uClibc-git/test/nptl/tst-clock1.c
  122979. --- uClibc-0.9.33.2/test/nptl/tst-clock1.c 2012-05-15 09:20:09.000000000 +0200
  122980. +++ uClibc-git/test/nptl/tst-clock1.c 2014-06-02 17:40:35.294719069 +0200
  122981. @@ -13,9 +13,8 @@
  122982. Lesser General Public License for more details.
  122983. You should have received a copy of the GNU Lesser General Public
  122984. - License along with the GNU C Library; if not, write to the Free
  122985. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122986. - 02111-1307 USA. */
  122987. + License along with the GNU C Library; if not, see
  122988. + <http://www.gnu.org/licenses/>. */
  122989. #include <pthread.h>
  122990. #include <stdio.h>
  122991. diff -Nur uClibc-0.9.33.2/test/nptl/tst-clock2.c uClibc-git/test/nptl/tst-clock2.c
  122992. --- uClibc-0.9.33.2/test/nptl/tst-clock2.c 2012-05-15 09:20:09.000000000 +0200
  122993. +++ uClibc-git/test/nptl/tst-clock2.c 2014-06-02 17:40:35.294719069 +0200
  122994. @@ -13,9 +13,8 @@
  122995. Lesser General Public License for more details.
  122996. You should have received a copy of the GNU Lesser General Public
  122997. - License along with the GNU C Library; if not, write to the Free
  122998. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  122999. - 02111-1307 USA. */
  123000. + License along with the GNU C Library; if not, see
  123001. + <http://www.gnu.org/licenses/>. */
  123002. #include <errno.h>
  123003. #include <pthread.h>
  123004. diff -Nur uClibc-0.9.33.2/test/nptl/tst-clock.c uClibc-git/test/nptl/tst-clock.c
  123005. --- uClibc-0.9.33.2/test/nptl/tst-clock.c 2012-05-15 09:20:09.000000000 +0200
  123006. +++ uClibc-git/test/nptl/tst-clock.c 2014-06-02 17:40:35.294719069 +0200
  123007. @@ -14,9 +14,8 @@
  123008. Lesser General Public License for more details.
  123009. You should have received a copy of the GNU Lesser General Public
  123010. - License along with the GNU C Library; if not, write to the Free
  123011. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123012. - 02111-1307 USA. */
  123013. + License along with the GNU C Library; if not, see
  123014. + <http://www.gnu.org/licenses/>. */
  123015. #include <stdio.h>
  123016. #include <string.h>
  123017. diff -Nur uClibc-0.9.33.2/test/nptl/tst-clock_nanosleep.c uClibc-git/test/nptl/tst-clock_nanosleep.c
  123018. --- uClibc-0.9.33.2/test/nptl/tst-clock_nanosleep.c 2012-05-15 09:20:09.000000000 +0200
  123019. +++ uClibc-git/test/nptl/tst-clock_nanosleep.c 2014-06-02 17:40:35.294719069 +0200
  123020. @@ -12,9 +12,8 @@
  123021. Lesser General Public License for more details.
  123022. You should have received a copy of the GNU Lesser General Public
  123023. - License along with the GNU C Library; if not, write to the Free
  123024. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123025. - 02111-1307 USA. */
  123026. + License along with the GNU C Library; if not, see
  123027. + <http://www.gnu.org/licenses/>. */
  123028. #include <errno.h>
  123029. #include <stdio.h>
  123030. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond10.c uClibc-git/test/nptl/tst-cond10.c
  123031. --- uClibc-0.9.33.2/test/nptl/tst-cond10.c 2012-05-15 09:20:09.000000000 +0200
  123032. +++ uClibc-git/test/nptl/tst-cond10.c 2014-06-02 17:40:35.294719069 +0200
  123033. @@ -13,9 +13,8 @@
  123034. Lesser General Public License for more details.
  123035. You should have received a copy of the GNU Lesser General Public
  123036. - License along with the GNU C Library; if not, write to the Free
  123037. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123038. - 02111-1307 USA. */
  123039. + License along with the GNU C Library; if not, see
  123040. + <http://www.gnu.org/licenses/>. */
  123041. #include <error.h>
  123042. #include <pthread.h>
  123043. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond11.c uClibc-git/test/nptl/tst-cond11.c
  123044. --- uClibc-0.9.33.2/test/nptl/tst-cond11.c 2012-05-15 09:20:09.000000000 +0200
  123045. +++ uClibc-git/test/nptl/tst-cond11.c 2014-06-02 17:40:35.294719069 +0200
  123046. @@ -13,9 +13,8 @@
  123047. Lesser General Public License for more details.
  123048. You should have received a copy of the GNU Lesser General Public
  123049. - License along with the GNU C Library; if not, write to the Free
  123050. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123051. - 02111-1307 USA. */
  123052. + License along with the GNU C Library; if not, see
  123053. + <http://www.gnu.org/licenses/>. */
  123054. #include <errno.h>
  123055. #include <pthread.h>
  123056. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond12.c uClibc-git/test/nptl/tst-cond12.c
  123057. --- uClibc-0.9.33.2/test/nptl/tst-cond12.c 2012-05-15 09:20:09.000000000 +0200
  123058. +++ uClibc-git/test/nptl/tst-cond12.c 2014-06-02 17:40:35.294719069 +0200
  123059. @@ -13,9 +13,8 @@
  123060. Lesser General Public License for more details.
  123061. You should have received a copy of the GNU Lesser General Public
  123062. - License along with the GNU C Library; if not, write to the Free
  123063. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123064. - 02111-1307 USA. */
  123065. + License along with the GNU C Library; if not, see
  123066. + <http://www.gnu.org/licenses/>. */
  123067. #include <errno.h>
  123068. #include <pthread.h>
  123069. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond14.c uClibc-git/test/nptl/tst-cond14.c
  123070. --- uClibc-0.9.33.2/test/nptl/tst-cond14.c 2012-05-15 09:20:09.000000000 +0200
  123071. +++ uClibc-git/test/nptl/tst-cond14.c 2014-06-02 17:40:35.294719069 +0200
  123072. @@ -13,9 +13,8 @@
  123073. Lesser General Public License for more details.
  123074. You should have received a copy of the GNU Lesser General Public
  123075. - License along with the GNU C Library; if not, write to the Free
  123076. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123077. - 02111-1307 USA. */
  123078. + License along with the GNU C Library; if not, see
  123079. + <http://www.gnu.org/licenses/>. */
  123080. #include <pthread.h>
  123081. #include <stdio.h>
  123082. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond15.c uClibc-git/test/nptl/tst-cond15.c
  123083. --- uClibc-0.9.33.2/test/nptl/tst-cond15.c 2012-05-15 09:20:09.000000000 +0200
  123084. +++ uClibc-git/test/nptl/tst-cond15.c 2014-06-02 17:40:35.294719069 +0200
  123085. @@ -13,9 +13,8 @@
  123086. Lesser General Public License for more details.
  123087. You should have received a copy of the GNU Lesser General Public
  123088. - License along with the GNU C Library; if not, write to the Free
  123089. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123090. - 02111-1307 USA. */
  123091. + License along with the GNU C Library; if not, see
  123092. + <http://www.gnu.org/licenses/>. */
  123093. #include <errno.h>
  123094. #include <pthread.h>
  123095. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond16.c uClibc-git/test/nptl/tst-cond16.c
  123096. --- uClibc-0.9.33.2/test/nptl/tst-cond16.c 2012-05-15 09:20:09.000000000 +0200
  123097. +++ uClibc-git/test/nptl/tst-cond16.c 2014-06-02 17:40:35.294719069 +0200
  123098. @@ -13,9 +13,8 @@
  123099. Lesser General Public License for more details.
  123100. You should have received a copy of the GNU Lesser General Public
  123101. - License along with the GNU C Library; if not, write to the Free
  123102. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123103. - 02111-1307 USA. */
  123104. + License along with the GNU C Library; if not, see
  123105. + <http://www.gnu.org/licenses/>. */
  123106. #include <errno.h>
  123107. #include <pthread.h>
  123108. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond18.c uClibc-git/test/nptl/tst-cond18.c
  123109. --- uClibc-0.9.33.2/test/nptl/tst-cond18.c 2012-05-15 09:20:09.000000000 +0200
  123110. +++ uClibc-git/test/nptl/tst-cond18.c 2014-06-02 17:40:35.294719069 +0200
  123111. @@ -13,9 +13,8 @@
  123112. Lesser General Public License for more details.
  123113. You should have received a copy of the GNU Lesser General Public
  123114. - License along with the GNU C Library; if not, write to the Free
  123115. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123116. - 02111-1307 USA. */
  123117. + License along with the GNU C Library; if not, see
  123118. + <http://www.gnu.org/licenses/>. */
  123119. #include <errno.h>
  123120. #include <fcntl.h>
  123121. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond19.c uClibc-git/test/nptl/tst-cond19.c
  123122. --- uClibc-0.9.33.2/test/nptl/tst-cond19.c 2012-05-15 09:20:09.000000000 +0200
  123123. +++ uClibc-git/test/nptl/tst-cond19.c 2014-06-02 17:40:35.294719069 +0200
  123124. @@ -13,9 +13,8 @@
  123125. Lesser General Public License for more details.
  123126. You should have received a copy of the GNU Lesser General Public
  123127. - License along with the GNU C Library; if not, write to the Free
  123128. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123129. - 02111-1307 USA. */
  123130. + License along with the GNU C Library; if not, see
  123131. + <http://www.gnu.org/licenses/>. */
  123132. #include <errno.h>
  123133. #include <pthread.h>
  123134. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond1.c uClibc-git/test/nptl/tst-cond1.c
  123135. --- uClibc-0.9.33.2/test/nptl/tst-cond1.c 2012-05-15 09:20:09.000000000 +0200
  123136. +++ uClibc-git/test/nptl/tst-cond1.c 2014-06-02 17:40:35.294719069 +0200
  123137. @@ -13,9 +13,8 @@
  123138. Lesser General Public License for more details.
  123139. You should have received a copy of the GNU Lesser General Public
  123140. - License along with the GNU C Library; if not, write to the Free
  123141. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123142. - 02111-1307 USA. */
  123143. + License along with the GNU C Library; if not, see
  123144. + <http://www.gnu.org/licenses/>. */
  123145. #include <error.h>
  123146. #include <pthread.h>
  123147. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond20.c uClibc-git/test/nptl/tst-cond20.c
  123148. --- uClibc-0.9.33.2/test/nptl/tst-cond20.c 2012-05-15 09:20:09.000000000 +0200
  123149. +++ uClibc-git/test/nptl/tst-cond20.c 2014-06-02 17:40:35.294719069 +0200
  123150. @@ -13,9 +13,8 @@
  123151. Lesser General Public License for more details.
  123152. You should have received a copy of the GNU Lesser General Public
  123153. - License along with the GNU C Library; if not, write to the Free
  123154. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123155. - 02111-1307 USA. */
  123156. + License along with the GNU C Library; if not, see
  123157. + <http://www.gnu.org/licenses/>. */
  123158. #include <pthread.h>
  123159. #include <stdio.h>
  123160. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond23.c uClibc-git/test/nptl/tst-cond23.c
  123161. --- uClibc-0.9.33.2/test/nptl/tst-cond23.c 2012-05-15 09:20:09.000000000 +0200
  123162. +++ uClibc-git/test/nptl/tst-cond23.c 2014-06-02 17:40:35.294719069 +0200
  123163. @@ -13,9 +13,8 @@
  123164. Lesser General Public License for more details.
  123165. You should have received a copy of the GNU Lesser General Public
  123166. - License along with the GNU C Library; if not, write to the Free
  123167. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123168. - 02111-1307 USA. */
  123169. + License along with the GNU C Library; if not, see
  123170. + <http://www.gnu.org/licenses/>. */
  123171. #include <errno.h>
  123172. #include <pthread.h>
  123173. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond2.c uClibc-git/test/nptl/tst-cond2.c
  123174. --- uClibc-0.9.33.2/test/nptl/tst-cond2.c 2012-05-15 09:20:09.000000000 +0200
  123175. +++ uClibc-git/test/nptl/tst-cond2.c 2014-06-02 17:40:35.294719069 +0200
  123176. @@ -13,9 +13,8 @@
  123177. Lesser General Public License for more details.
  123178. You should have received a copy of the GNU Lesser General Public
  123179. - License along with the GNU C Library; if not, write to the Free
  123180. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123181. - 02111-1307 USA. */
  123182. + License along with the GNU C Library; if not, see
  123183. + <http://www.gnu.org/licenses/>. */
  123184. #include <error.h>
  123185. #include <pthread.h>
  123186. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond3.c uClibc-git/test/nptl/tst-cond3.c
  123187. --- uClibc-0.9.33.2/test/nptl/tst-cond3.c 2012-05-15 09:20:09.000000000 +0200
  123188. +++ uClibc-git/test/nptl/tst-cond3.c 2014-06-02 17:40:35.294719069 +0200
  123189. @@ -13,9 +13,8 @@
  123190. Lesser General Public License for more details.
  123191. You should have received a copy of the GNU Lesser General Public
  123192. - License along with the GNU C Library; if not, write to the Free
  123193. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123194. - 02111-1307 USA. */
  123195. + License along with the GNU C Library; if not, see
  123196. + <http://www.gnu.org/licenses/>. */
  123197. #include <pthread.h>
  123198. #include <stdio.h>
  123199. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond4.c uClibc-git/test/nptl/tst-cond4.c
  123200. --- uClibc-0.9.33.2/test/nptl/tst-cond4.c 2012-05-15 09:20:09.000000000 +0200
  123201. +++ uClibc-git/test/nptl/tst-cond4.c 2014-06-02 17:40:35.294719069 +0200
  123202. @@ -13,9 +13,8 @@
  123203. Lesser General Public License for more details.
  123204. You should have received a copy of the GNU Lesser General Public
  123205. - License along with the GNU C Library; if not, write to the Free
  123206. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123207. - 02111-1307 USA. */
  123208. + License along with the GNU C Library; if not, see
  123209. + <http://www.gnu.org/licenses/>. */
  123210. #include <errno.h>
  123211. #include <pthread.h>
  123212. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond5.c uClibc-git/test/nptl/tst-cond5.c
  123213. --- uClibc-0.9.33.2/test/nptl/tst-cond5.c 2012-05-15 09:20:09.000000000 +0200
  123214. +++ uClibc-git/test/nptl/tst-cond5.c 2014-06-02 17:40:35.294719069 +0200
  123215. @@ -13,9 +13,8 @@
  123216. Lesser General Public License for more details.
  123217. You should have received a copy of the GNU Lesser General Public
  123218. - License along with the GNU C Library; if not, write to the Free
  123219. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123220. - 02111-1307 USA. */
  123221. + License along with the GNU C Library; if not, see
  123222. + <http://www.gnu.org/licenses/>. */
  123223. #include <errno.h>
  123224. #include <pthread.h>
  123225. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond6.c uClibc-git/test/nptl/tst-cond6.c
  123226. --- uClibc-0.9.33.2/test/nptl/tst-cond6.c 2012-05-15 09:20:09.000000000 +0200
  123227. +++ uClibc-git/test/nptl/tst-cond6.c 2014-06-02 17:40:35.294719069 +0200
  123228. @@ -13,9 +13,8 @@
  123229. Lesser General Public License for more details.
  123230. You should have received a copy of the GNU Lesser General Public
  123231. - License along with the GNU C Library; if not, write to the Free
  123232. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123233. - 02111-1307 USA. */
  123234. + License along with the GNU C Library; if not, see
  123235. + <http://www.gnu.org/licenses/>. */
  123236. #include <errno.h>
  123237. #include <pthread.h>
  123238. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond7.c uClibc-git/test/nptl/tst-cond7.c
  123239. --- uClibc-0.9.33.2/test/nptl/tst-cond7.c 2012-05-15 09:20:09.000000000 +0200
  123240. +++ uClibc-git/test/nptl/tst-cond7.c 2014-06-02 17:40:35.294719069 +0200
  123241. @@ -13,9 +13,8 @@
  123242. Lesser General Public License for more details.
  123243. You should have received a copy of the GNU Lesser General Public
  123244. - License along with the GNU C Library; if not, write to the Free
  123245. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123246. - 02111-1307 USA. */
  123247. + License along with the GNU C Library; if not, see
  123248. + <http://www.gnu.org/licenses/>. */
  123249. #include <errno.h>
  123250. #include <pthread.h>
  123251. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond8.c uClibc-git/test/nptl/tst-cond8.c
  123252. --- uClibc-0.9.33.2/test/nptl/tst-cond8.c 2012-05-15 09:20:09.000000000 +0200
  123253. +++ uClibc-git/test/nptl/tst-cond8.c 2014-06-02 17:40:35.294719069 +0200
  123254. @@ -13,9 +13,8 @@
  123255. Lesser General Public License for more details.
  123256. You should have received a copy of the GNU Lesser General Public
  123257. - License along with the GNU C Library; if not, write to the Free
  123258. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123259. - 02111-1307 USA. */
  123260. + License along with the GNU C Library; if not, see
  123261. + <http://www.gnu.org/licenses/>. */
  123262. #include <errno.h>
  123263. #include <pthread.h>
  123264. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cond9.c uClibc-git/test/nptl/tst-cond9.c
  123265. --- uClibc-0.9.33.2/test/nptl/tst-cond9.c 2012-05-15 09:20:09.000000000 +0200
  123266. +++ uClibc-git/test/nptl/tst-cond9.c 2014-06-02 17:40:35.294719069 +0200
  123267. @@ -13,9 +13,8 @@
  123268. Lesser General Public License for more details.
  123269. You should have received a copy of the GNU Lesser General Public
  123270. - License along with the GNU C Library; if not, write to the Free
  123271. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123272. - 02111-1307 USA. */
  123273. + License along with the GNU C Library; if not, see
  123274. + <http://www.gnu.org/licenses/>. */
  123275. #include <errno.h>
  123276. #include <pthread.h>
  123277. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cpuclock1.c uClibc-git/test/nptl/tst-cpuclock1.c
  123278. --- uClibc-0.9.33.2/test/nptl/tst-cpuclock1.c 2012-05-15 09:20:09.000000000 +0200
  123279. +++ uClibc-git/test/nptl/tst-cpuclock1.c 2014-06-02 17:40:35.294719069 +0200
  123280. @@ -13,9 +13,8 @@
  123281. Lesser General Public License for more details.
  123282. You should have received a copy of the GNU Lesser General Public
  123283. - License along with the GNU C Library; if not, write to the Free
  123284. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123285. - 02111-1307 USA. */
  123286. + License along with the GNU C Library; if not, see
  123287. + <http://www.gnu.org/licenses/>. */
  123288. #include <stdio.h>
  123289. #include <stdlib.h>
  123290. diff -Nur uClibc-0.9.33.2/test/nptl/tst-cpuclock2.c uClibc-git/test/nptl/tst-cpuclock2.c
  123291. --- uClibc-0.9.33.2/test/nptl/tst-cpuclock2.c 2012-05-15 09:20:09.000000000 +0200
  123292. +++ uClibc-git/test/nptl/tst-cpuclock2.c 2014-06-02 17:40:35.294719069 +0200
  123293. @@ -13,9 +13,8 @@
  123294. Lesser General Public License for more details.
  123295. You should have received a copy of the GNU Lesser General Public
  123296. - License along with the GNU C Library; if not, write to the Free
  123297. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123298. - 02111-1307 USA. */
  123299. + License along with the GNU C Library; if not, see
  123300. + <http://www.gnu.org/licenses/>. */
  123301. #include <unistd.h>
  123302. diff -Nur uClibc-0.9.33.2/test/nptl/tst-detach1.c uClibc-git/test/nptl/tst-detach1.c
  123303. --- uClibc-0.9.33.2/test/nptl/tst-detach1.c 2012-05-15 09:20:09.000000000 +0200
  123304. +++ uClibc-git/test/nptl/tst-detach1.c 2014-06-02 17:40:35.298719091 +0200
  123305. @@ -13,9 +13,8 @@
  123306. Lesser General Public License for more details.
  123307. You should have received a copy of the GNU Lesser General Public
  123308. - License along with the GNU C Library; if not, write to the Free
  123309. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123310. - 02111-1307 USA. */
  123311. + License along with the GNU C Library; if not, see
  123312. + <http://www.gnu.org/licenses/>. */
  123313. #include <pthread.h>
  123314. #include <stdio.h>
  123315. diff -Nur uClibc-0.9.33.2/test/nptl/tst-eintr1.c uClibc-git/test/nptl/tst-eintr1.c
  123316. --- uClibc-0.9.33.2/test/nptl/tst-eintr1.c 2012-05-15 09:20:09.000000000 +0200
  123317. +++ uClibc-git/test/nptl/tst-eintr1.c 2014-06-02 17:40:35.298719091 +0200
  123318. @@ -13,9 +13,8 @@
  123319. Lesser General Public License for more details.
  123320. You should have received a copy of the GNU Lesser General Public
  123321. - License along with the GNU C Library; if not, write to the Free
  123322. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123323. - 02111-1307 USA. */
  123324. + License along with the GNU C Library; if not, see
  123325. + <http://www.gnu.org/licenses/>. */
  123326. #include <errno.h>
  123327. #include <pthread.h>
  123328. diff -Nur uClibc-0.9.33.2/test/nptl/tst-eintr2.c uClibc-git/test/nptl/tst-eintr2.c
  123329. --- uClibc-0.9.33.2/test/nptl/tst-eintr2.c 2012-05-15 09:20:09.000000000 +0200
  123330. +++ uClibc-git/test/nptl/tst-eintr2.c 2014-06-02 17:40:35.298719091 +0200
  123331. @@ -13,9 +13,8 @@
  123332. Lesser General Public License for more details.
  123333. You should have received a copy of the GNU Lesser General Public
  123334. - License along with the GNU C Library; if not, write to the Free
  123335. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123336. - 02111-1307 USA. */
  123337. + License along with the GNU C Library; if not, see
  123338. + <http://www.gnu.org/licenses/>. */
  123339. #include <errno.h>
  123340. #include <pthread.h>
  123341. diff -Nur uClibc-0.9.33.2/test/nptl/tst-eintr3.c uClibc-git/test/nptl/tst-eintr3.c
  123342. --- uClibc-0.9.33.2/test/nptl/tst-eintr3.c 2012-05-15 09:20:09.000000000 +0200
  123343. +++ uClibc-git/test/nptl/tst-eintr3.c 2014-06-02 17:40:35.298719091 +0200
  123344. @@ -13,9 +13,8 @@
  123345. Lesser General Public License for more details.
  123346. You should have received a copy of the GNU Lesser General Public
  123347. - License along with the GNU C Library; if not, write to the Free
  123348. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123349. - 02111-1307 USA. */
  123350. + License along with the GNU C Library; if not, see
  123351. + <http://www.gnu.org/licenses/>. */
  123352. #include <errno.h>
  123353. #include <pthread.h>
  123354. diff -Nur uClibc-0.9.33.2/test/nptl/tst-eintr4.c uClibc-git/test/nptl/tst-eintr4.c
  123355. --- uClibc-0.9.33.2/test/nptl/tst-eintr4.c 2012-05-15 09:20:09.000000000 +0200
  123356. +++ uClibc-git/test/nptl/tst-eintr4.c 2014-06-02 17:40:35.298719091 +0200
  123357. @@ -13,9 +13,8 @@
  123358. Lesser General Public License for more details.
  123359. You should have received a copy of the GNU Lesser General Public
  123360. - License along with the GNU C Library; if not, write to the Free
  123361. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123362. - 02111-1307 USA. */
  123363. + License along with the GNU C Library; if not, see
  123364. + <http://www.gnu.org/licenses/>. */
  123365. #include <errno.h>
  123366. #include <pthread.h>
  123367. diff -Nur uClibc-0.9.33.2/test/nptl/tst-eintr5.c uClibc-git/test/nptl/tst-eintr5.c
  123368. --- uClibc-0.9.33.2/test/nptl/tst-eintr5.c 2012-05-15 09:20:09.000000000 +0200
  123369. +++ uClibc-git/test/nptl/tst-eintr5.c 2014-06-02 17:40:35.298719091 +0200
  123370. @@ -13,9 +13,8 @@
  123371. Lesser General Public License for more details.
  123372. You should have received a copy of the GNU Lesser General Public
  123373. - License along with the GNU C Library; if not, write to the Free
  123374. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123375. - 02111-1307 USA. */
  123376. + License along with the GNU C Library; if not, see
  123377. + <http://www.gnu.org/licenses/>. */
  123378. #include <errno.h>
  123379. #include <pthread.h>
  123380. diff -Nur uClibc-0.9.33.2/test/nptl/tst-exec2.c uClibc-git/test/nptl/tst-exec2.c
  123381. --- uClibc-0.9.33.2/test/nptl/tst-exec2.c 2012-05-15 09:20:09.000000000 +0200
  123382. +++ uClibc-git/test/nptl/tst-exec2.c 2014-06-02 17:40:35.298719091 +0200
  123383. @@ -14,9 +14,8 @@
  123384. Lesser General Public License for more details.
  123385. You should have received a copy of the GNU Lesser General Public
  123386. - License along with the GNU C Library; if not, write to the Free
  123387. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123388. - 02111-1307 USA. */
  123389. + License along with the GNU C Library; if not, see
  123390. + <http://www.gnu.org/licenses/>. */
  123391. #include <errno.h>
  123392. #include <paths.h>
  123393. diff -Nur uClibc-0.9.33.2/test/nptl/tst-exec3.c uClibc-git/test/nptl/tst-exec3.c
  123394. --- uClibc-0.9.33.2/test/nptl/tst-exec3.c 2012-05-15 09:20:09.000000000 +0200
  123395. +++ uClibc-git/test/nptl/tst-exec3.c 2014-06-02 17:40:35.298719091 +0200
  123396. @@ -14,9 +14,8 @@
  123397. Lesser General Public License for more details.
  123398. You should have received a copy of the GNU Lesser General Public
  123399. - License along with the GNU C Library; if not, write to the Free
  123400. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123401. - 02111-1307 USA. */
  123402. + License along with the GNU C Library; if not, see
  123403. + <http://www.gnu.org/licenses/>. */
  123404. #include <errno.h>
  123405. #include <paths.h>
  123406. diff -Nur uClibc-0.9.33.2/test/nptl/tst-exec4.c uClibc-git/test/nptl/tst-exec4.c
  123407. --- uClibc-0.9.33.2/test/nptl/tst-exec4.c 2012-05-15 09:20:09.000000000 +0200
  123408. +++ uClibc-git/test/nptl/tst-exec4.c 2014-06-02 17:40:35.298719091 +0200
  123409. @@ -14,9 +14,8 @@
  123410. Lesser General Public License for more details.
  123411. You should have received a copy of the GNU Lesser General Public
  123412. - License along with the GNU C Library; if not, write to the Free
  123413. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123414. - 02111-1307 USA. */
  123415. + License along with the GNU C Library; if not, see
  123416. + <http://www.gnu.org/licenses/>. */
  123417. #include <pthread.h>
  123418. #include <signal.h>
  123419. diff -Nur uClibc-0.9.33.2/test/nptl/tst-exit1.c uClibc-git/test/nptl/tst-exit1.c
  123420. --- uClibc-0.9.33.2/test/nptl/tst-exit1.c 2012-05-15 09:20:09.000000000 +0200
  123421. +++ uClibc-git/test/nptl/tst-exit1.c 2014-06-02 17:40:35.298719091 +0200
  123422. @@ -13,9 +13,8 @@
  123423. Lesser General Public License for more details.
  123424. You should have received a copy of the GNU Lesser General Public
  123425. - License along with the GNU C Library; if not, write to the Free
  123426. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123427. - 02111-1307 USA. */
  123428. + License along with the GNU C Library; if not, see
  123429. + <http://www.gnu.org/licenses/>. */
  123430. /* NOTE: this tests functionality beyond POSIX. POSIX does not allow
  123431. exit to be called more than once. */
  123432. diff -Nur uClibc-0.9.33.2/test/nptl/tst-fini1.c uClibc-git/test/nptl/tst-fini1.c
  123433. --- uClibc-0.9.33.2/test/nptl/tst-fini1.c 2012-05-15 09:20:09.000000000 +0200
  123434. +++ uClibc-git/test/nptl/tst-fini1.c 2014-06-02 17:40:35.298719091 +0200
  123435. @@ -13,9 +13,8 @@
  123436. Lesser General Public License for more details.
  123437. You should have received a copy of the GNU Lesser General Public
  123438. - License along with the GNU C Library; if not, write to the Free
  123439. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123440. - 02111-1307 USA. */
  123441. + License along with the GNU C Library; if not, see
  123442. + <http://www.gnu.org/licenses/>. */
  123443. #include <unistd.h>
  123444. diff -Nur uClibc-0.9.33.2/test/nptl/tst-fini1mod.c uClibc-git/test/nptl/tst-fini1mod.c
  123445. --- uClibc-0.9.33.2/test/nptl/tst-fini1mod.c 2012-05-15 09:20:09.000000000 +0200
  123446. +++ uClibc-git/test/nptl/tst-fini1mod.c 2014-06-02 17:40:35.298719091 +0200
  123447. @@ -13,9 +13,8 @@
  123448. Lesser General Public License for more details.
  123449. You should have received a copy of the GNU Lesser General Public
  123450. - License along with the GNU C Library; if not, write to the Free
  123451. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123452. - 02111-1307 USA. */
  123453. + License along with the GNU C Library; if not, see
  123454. + <http://www.gnu.org/licenses/>. */
  123455. #include <pthread.h>
  123456. #include <stdio.h>
  123457. diff -Nur uClibc-0.9.33.2/test/nptl/tst-flock1.c uClibc-git/test/nptl/tst-flock1.c
  123458. --- uClibc-0.9.33.2/test/nptl/tst-flock1.c 2012-05-15 09:20:09.000000000 +0200
  123459. +++ uClibc-git/test/nptl/tst-flock1.c 2014-06-02 17:40:35.298719091 +0200
  123460. @@ -13,9 +13,8 @@
  123461. Lesser General Public License for more details.
  123462. You should have received a copy of the GNU Lesser General Public
  123463. - License along with the GNU C Library; if not, write to the Free
  123464. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123465. - 02111-1307 USA. */
  123466. + License along with the GNU C Library; if not, see
  123467. + <http://www.gnu.org/licenses/>. */
  123468. #include <pthread.h>
  123469. #include <stdio.h>
  123470. diff -Nur uClibc-0.9.33.2/test/nptl/tst-flock2.c uClibc-git/test/nptl/tst-flock2.c
  123471. --- uClibc-0.9.33.2/test/nptl/tst-flock2.c 2012-05-15 09:20:09.000000000 +0200
  123472. +++ uClibc-git/test/nptl/tst-flock2.c 2014-06-02 17:40:35.298719091 +0200
  123473. @@ -13,9 +13,8 @@
  123474. Lesser General Public License for more details.
  123475. You should have received a copy of the GNU Lesser General Public
  123476. - License along with the GNU C Library; if not, write to the Free
  123477. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123478. - 02111-1307 USA. */
  123479. + License along with the GNU C Library; if not, see
  123480. + <http://www.gnu.org/licenses/>. */
  123481. #include <errno.h>
  123482. #include <pthread.h>
  123483. diff -Nur uClibc-0.9.33.2/test/nptl/tst-fork1.c uClibc-git/test/nptl/tst-fork1.c
  123484. --- uClibc-0.9.33.2/test/nptl/tst-fork1.c 2012-05-15 09:20:09.000000000 +0200
  123485. +++ uClibc-git/test/nptl/tst-fork1.c 2014-06-02 17:40:35.298719091 +0200
  123486. @@ -13,9 +13,8 @@
  123487. Lesser General Public License for more details.
  123488. You should have received a copy of the GNU Lesser General Public
  123489. - License along with the GNU C Library; if not, write to the Free
  123490. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123491. - 02111-1307 USA. */
  123492. + License along with the GNU C Library; if not, see
  123493. + <http://www.gnu.org/licenses/>. */
  123494. #include <errno.h>
  123495. #include <pthread.h>
  123496. diff -Nur uClibc-0.9.33.2/test/nptl/tst-fork2.c uClibc-git/test/nptl/tst-fork2.c
  123497. --- uClibc-0.9.33.2/test/nptl/tst-fork2.c 2012-05-15 09:20:09.000000000 +0200
  123498. +++ uClibc-git/test/nptl/tst-fork2.c 2014-06-02 17:40:35.298719091 +0200
  123499. @@ -13,9 +13,8 @@
  123500. Lesser General Public License for more details.
  123501. You should have received a copy of the GNU Lesser General Public
  123502. - License along with the GNU C Library; if not, write to the Free
  123503. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123504. - 02111-1307 USA. */
  123505. + License along with the GNU C Library; if not, see
  123506. + <http://www.gnu.org/licenses/>. */
  123507. #include <errno.h>
  123508. #include <pthread.h>
  123509. diff -Nur uClibc-0.9.33.2/test/nptl/tst-fork3.c uClibc-git/test/nptl/tst-fork3.c
  123510. --- uClibc-0.9.33.2/test/nptl/tst-fork3.c 2012-05-15 09:20:09.000000000 +0200
  123511. +++ uClibc-git/test/nptl/tst-fork3.c 2014-06-02 17:40:35.298719091 +0200
  123512. @@ -13,9 +13,8 @@
  123513. Lesser General Public License for more details.
  123514. You should have received a copy of the GNU Lesser General Public
  123515. - License along with the GNU C Library; if not, write to the Free
  123516. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123517. - 02111-1307 USA. */
  123518. + License along with the GNU C Library; if not, see
  123519. + <http://www.gnu.org/licenses/>. */
  123520. #include <errno.h>
  123521. #include <pthread.h>
  123522. diff -Nur uClibc-0.9.33.2/test/nptl/tst-fork4.c uClibc-git/test/nptl/tst-fork4.c
  123523. --- uClibc-0.9.33.2/test/nptl/tst-fork4.c 2012-05-15 09:20:09.000000000 +0200
  123524. +++ uClibc-git/test/nptl/tst-fork4.c 2014-06-02 17:40:35.298719091 +0200
  123525. @@ -13,9 +13,8 @@
  123526. Lesser General Public License for more details.
  123527. You should have received a copy of the GNU Lesser General Public
  123528. - License along with the GNU C Library; if not, write to the Free
  123529. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123530. - 02111-1307 USA. */
  123531. + License along with the GNU C Library; if not, see
  123532. + <http://www.gnu.org/licenses/>. */
  123533. #include <errno.h>
  123534. #include <pthread.h>
  123535. diff -Nur uClibc-0.9.33.2/test/nptl/tst-initializers1.c uClibc-git/test/nptl/tst-initializers1.c
  123536. --- uClibc-0.9.33.2/test/nptl/tst-initializers1.c 2012-05-15 09:20:09.000000000 +0200
  123537. +++ uClibc-git/test/nptl/tst-initializers1.c 2014-06-02 17:40:35.298719091 +0200
  123538. @@ -13,9 +13,8 @@
  123539. Lesser General Public License for more details.
  123540. You should have received a copy of the GNU Lesser General Public
  123541. - License along with the GNU C Library; if not, write to the Free
  123542. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123543. - 02111-1307 USA. */
  123544. + License along with the GNU C Library; if not, see
  123545. + <http://www.gnu.org/licenses/>. */
  123546. #include <pthread.h>
  123547. diff -Nur uClibc-0.9.33.2/test/nptl/tst-join1.c uClibc-git/test/nptl/tst-join1.c
  123548. --- uClibc-0.9.33.2/test/nptl/tst-join1.c 2012-05-15 09:20:09.000000000 +0200
  123549. +++ uClibc-git/test/nptl/tst-join1.c 2014-06-02 17:40:35.298719091 +0200
  123550. @@ -13,9 +13,8 @@
  123551. Lesser General Public License for more details.
  123552. You should have received a copy of the GNU Lesser General Public
  123553. - License along with the GNU C Library; if not, write to the Free
  123554. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123555. - 02111-1307 USA. */
  123556. + License along with the GNU C Library; if not, see
  123557. + <http://www.gnu.org/licenses/>. */
  123558. #include <pthread.h>
  123559. #include <stdio.h>
  123560. diff -Nur uClibc-0.9.33.2/test/nptl/tst-join2.c uClibc-git/test/nptl/tst-join2.c
  123561. --- uClibc-0.9.33.2/test/nptl/tst-join2.c 2012-05-15 09:20:09.000000000 +0200
  123562. +++ uClibc-git/test/nptl/tst-join2.c 2014-06-02 17:40:35.298719091 +0200
  123563. @@ -13,9 +13,8 @@
  123564. Lesser General Public License for more details.
  123565. You should have received a copy of the GNU Lesser General Public
  123566. - License along with the GNU C Library; if not, write to the Free
  123567. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123568. - 02111-1307 USA. */
  123569. + License along with the GNU C Library; if not, see
  123570. + <http://www.gnu.org/licenses/>. */
  123571. #include <errno.h>
  123572. #include <pthread.h>
  123573. diff -Nur uClibc-0.9.33.2/test/nptl/tst-join3.c uClibc-git/test/nptl/tst-join3.c
  123574. --- uClibc-0.9.33.2/test/nptl/tst-join3.c 2012-05-15 09:20:09.000000000 +0200
  123575. +++ uClibc-git/test/nptl/tst-join3.c 2014-06-02 17:40:35.298719091 +0200
  123576. @@ -13,9 +13,8 @@
  123577. Lesser General Public License for more details.
  123578. You should have received a copy of the GNU Lesser General Public
  123579. - License along with the GNU C Library; if not, write to the Free
  123580. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123581. - 02111-1307 USA. */
  123582. + License along with the GNU C Library; if not, see
  123583. + <http://www.gnu.org/licenses/>. */
  123584. #include <errno.h>
  123585. #include <pthread.h>
  123586. diff -Nur uClibc-0.9.33.2/test/nptl/tst-join4.c uClibc-git/test/nptl/tst-join4.c
  123587. --- uClibc-0.9.33.2/test/nptl/tst-join4.c 2012-05-15 09:20:09.000000000 +0200
  123588. +++ uClibc-git/test/nptl/tst-join4.c 2014-06-02 17:40:35.298719091 +0200
  123589. @@ -13,9 +13,8 @@
  123590. Lesser General Public License for more details.
  123591. You should have received a copy of the GNU Lesser General Public
  123592. - License along with the GNU C Library; if not, write to the Free
  123593. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123594. - 02111-1307 USA. */
  123595. + License along with the GNU C Library; if not, see
  123596. + <http://www.gnu.org/licenses/>. */
  123597. #include <errno.h>
  123598. #include <pthread.h>
  123599. diff -Nur uClibc-0.9.33.2/test/nptl/tst-join5.c uClibc-git/test/nptl/tst-join5.c
  123600. --- uClibc-0.9.33.2/test/nptl/tst-join5.c 2012-05-15 09:20:09.000000000 +0200
  123601. +++ uClibc-git/test/nptl/tst-join5.c 2014-06-02 17:40:35.298719091 +0200
  123602. @@ -13,9 +13,8 @@
  123603. Lesser General Public License for more details.
  123604. You should have received a copy of the GNU Lesser General Public
  123605. - License along with the GNU C Library; if not, write to the Free
  123606. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123607. - 02111-1307 USA. */
  123608. + License along with the GNU C Library; if not, see
  123609. + <http://www.gnu.org/licenses/>. */
  123610. #include <errno.h>
  123611. #include <pthread.h>
  123612. diff -Nur uClibc-0.9.33.2/test/nptl/tst-key1.c uClibc-git/test/nptl/tst-key1.c
  123613. --- uClibc-0.9.33.2/test/nptl/tst-key1.c 2012-05-15 09:20:09.000000000 +0200
  123614. +++ uClibc-git/test/nptl/tst-key1.c 2014-06-02 17:40:35.298719091 +0200
  123615. @@ -13,9 +13,8 @@
  123616. Lesser General Public License for more details.
  123617. You should have received a copy of the GNU Lesser General Public
  123618. - License along with the GNU C Library; if not, write to the Free
  123619. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123620. - 02111-1307 USA. */
  123621. + License along with the GNU C Library; if not, see
  123622. + <http://www.gnu.org/licenses/>. */
  123623. #include <limits.h>
  123624. #include <pthread.h>
  123625. diff -Nur uClibc-0.9.33.2/test/nptl/tst-key2.c uClibc-git/test/nptl/tst-key2.c
  123626. --- uClibc-0.9.33.2/test/nptl/tst-key2.c 2012-05-15 09:20:09.000000000 +0200
  123627. +++ uClibc-git/test/nptl/tst-key2.c 2014-06-02 17:40:35.298719091 +0200
  123628. @@ -13,9 +13,8 @@
  123629. Lesser General Public License for more details.
  123630. You should have received a copy of the GNU Lesser General Public
  123631. - License along with the GNU C Library; if not, write to the Free
  123632. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123633. - 02111-1307 USA. */
  123634. + License along with the GNU C Library; if not, see
  123635. + <http://www.gnu.org/licenses/>. */
  123636. #include <pthread.h>
  123637. #include <stdio.h>
  123638. diff -Nur uClibc-0.9.33.2/test/nptl/tst-key3.c uClibc-git/test/nptl/tst-key3.c
  123639. --- uClibc-0.9.33.2/test/nptl/tst-key3.c 2012-05-15 09:20:09.000000000 +0200
  123640. +++ uClibc-git/test/nptl/tst-key3.c 2014-06-02 17:40:35.302719114 +0200
  123641. @@ -13,9 +13,8 @@
  123642. Lesser General Public License for more details.
  123643. You should have received a copy of the GNU Lesser General Public
  123644. - License along with the GNU C Library; if not, write to the Free
  123645. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123646. - 02111-1307 USA. */
  123647. + License along with the GNU C Library; if not, see
  123648. + <http://www.gnu.org/licenses/>. */
  123649. #include <pthread.h>
  123650. #include <stdio.h>
  123651. diff -Nur uClibc-0.9.33.2/test/nptl/tst-key4.c uClibc-git/test/nptl/tst-key4.c
  123652. --- uClibc-0.9.33.2/test/nptl/tst-key4.c 2012-05-15 09:20:09.000000000 +0200
  123653. +++ uClibc-git/test/nptl/tst-key4.c 2014-06-02 17:40:35.302719114 +0200
  123654. @@ -13,9 +13,8 @@
  123655. Lesser General Public License for more details.
  123656. You should have received a copy of the GNU Lesser General Public
  123657. - License along with the GNU C Library; if not, write to the Free
  123658. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123659. - 02111-1307 USA. */
  123660. + License along with the GNU C Library; if not, see
  123661. + <http://www.gnu.org/licenses/>. */
  123662. #include <limits.h>
  123663. #include <pthread.h>
  123664. diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill1.c uClibc-git/test/nptl/tst-kill1.c
  123665. --- uClibc-0.9.33.2/test/nptl/tst-kill1.c 2012-05-15 09:20:09.000000000 +0200
  123666. +++ uClibc-git/test/nptl/tst-kill1.c 2014-06-02 17:40:35.302719114 +0200
  123667. @@ -13,9 +13,8 @@
  123668. Lesser General Public License for more details.
  123669. You should have received a copy of the GNU Lesser General Public
  123670. - License along with the GNU C Library; if not, write to the Free
  123671. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123672. - 02111-1307 USA. */
  123673. + License along with the GNU C Library; if not, see
  123674. + <http://www.gnu.org/licenses/>. */
  123675. #include <pthread.h>
  123676. #include <signal.h>
  123677. diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill2.c uClibc-git/test/nptl/tst-kill2.c
  123678. --- uClibc-0.9.33.2/test/nptl/tst-kill2.c 2012-05-15 09:20:09.000000000 +0200
  123679. +++ uClibc-git/test/nptl/tst-kill2.c 2014-06-02 17:40:35.302719114 +0200
  123680. @@ -13,9 +13,8 @@
  123681. Lesser General Public License for more details.
  123682. You should have received a copy of the GNU Lesser General Public
  123683. - License along with the GNU C Library; if not, write to the Free
  123684. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123685. - 02111-1307 USA. */
  123686. + License along with the GNU C Library; if not, see
  123687. + <http://www.gnu.org/licenses/>. */
  123688. #include <errno.h>
  123689. #include <pthread.h>
  123690. diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill3.c uClibc-git/test/nptl/tst-kill3.c
  123691. --- uClibc-0.9.33.2/test/nptl/tst-kill3.c 2012-05-15 09:20:09.000000000 +0200
  123692. +++ uClibc-git/test/nptl/tst-kill3.c 2014-06-02 17:40:35.302719114 +0200
  123693. @@ -13,9 +13,8 @@
  123694. Lesser General Public License for more details.
  123695. You should have received a copy of the GNU Lesser General Public
  123696. - License along with the GNU C Library; if not, write to the Free
  123697. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123698. - 02111-1307 USA. */
  123699. + License along with the GNU C Library; if not, see
  123700. + <http://www.gnu.org/licenses/>. */
  123701. #include <errno.h>
  123702. #include <pthread.h>
  123703. diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill4.c uClibc-git/test/nptl/tst-kill4.c
  123704. --- uClibc-0.9.33.2/test/nptl/tst-kill4.c 2012-05-15 09:20:09.000000000 +0200
  123705. +++ uClibc-git/test/nptl/tst-kill4.c 2014-06-02 17:40:35.302719114 +0200
  123706. @@ -13,9 +13,8 @@
  123707. Lesser General Public License for more details.
  123708. You should have received a copy of the GNU Lesser General Public
  123709. - License along with the GNU C Library; if not, write to the Free
  123710. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123711. - 02111-1307 USA. */
  123712. + License along with the GNU C Library; if not, see
  123713. + <http://www.gnu.org/licenses/>. */
  123714. #include <errno.h>
  123715. #include <pthread.h>
  123716. diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill5.c uClibc-git/test/nptl/tst-kill5.c
  123717. --- uClibc-0.9.33.2/test/nptl/tst-kill5.c 2012-05-15 09:20:09.000000000 +0200
  123718. +++ uClibc-git/test/nptl/tst-kill5.c 2014-06-02 17:40:35.302719114 +0200
  123719. @@ -13,9 +13,8 @@
  123720. Lesser General Public License for more details.
  123721. You should have received a copy of the GNU Lesser General Public
  123722. - License along with the GNU C Library; if not, write to the Free
  123723. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123724. - 02111-1307 USA. */
  123725. + License along with the GNU C Library; if not, see
  123726. + <http://www.gnu.org/licenses/>. */
  123727. #include <errno.h>
  123728. #include <pthread.h>
  123729. diff -Nur uClibc-0.9.33.2/test/nptl/tst-kill6.c uClibc-git/test/nptl/tst-kill6.c
  123730. --- uClibc-0.9.33.2/test/nptl/tst-kill6.c 2012-05-15 09:20:09.000000000 +0200
  123731. +++ uClibc-git/test/nptl/tst-kill6.c 2014-06-02 17:40:35.302719114 +0200
  123732. @@ -13,9 +13,8 @@
  123733. Lesser General Public License for more details.
  123734. You should have received a copy of the GNU Lesser General Public
  123735. - License along with the GNU C Library; if not, write to the Free
  123736. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123737. - 02111-1307 USA. */
  123738. + License along with the GNU C Library; if not, see
  123739. + <http://www.gnu.org/licenses/>. */
  123740. #include <errno.h>
  123741. #include <pthread.h>
  123742. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue1.c uClibc-git/test/nptl/tst-mqueue1.c
  123743. --- uClibc-0.9.33.2/test/nptl/tst-mqueue1.c 2012-05-15 09:20:09.000000000 +0200
  123744. +++ uClibc-git/test/nptl/tst-mqueue1.c 2014-06-02 17:40:35.302719114 +0200
  123745. @@ -14,9 +14,8 @@
  123746. Lesser General Public License for more details.
  123747. You should have received a copy of the GNU Lesser General Public
  123748. - License along with the GNU C Library; if not, write to the Free
  123749. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123750. - 02111-1307 USA. */
  123751. + License along with the GNU C Library; if not, see
  123752. + <http://www.gnu.org/licenses/>. */
  123753. #include <errno.h>
  123754. #include <fcntl.h>
  123755. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue2.c uClibc-git/test/nptl/tst-mqueue2.c
  123756. --- uClibc-0.9.33.2/test/nptl/tst-mqueue2.c 2012-05-15 09:20:09.000000000 +0200
  123757. +++ uClibc-git/test/nptl/tst-mqueue2.c 2014-06-02 17:40:35.302719114 +0200
  123758. @@ -14,9 +14,8 @@
  123759. Lesser General Public License for more details.
  123760. You should have received a copy of the GNU Lesser General Public
  123761. - License along with the GNU C Library; if not, write to the Free
  123762. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123763. - 02111-1307 USA. */
  123764. + License along with the GNU C Library; if not, see
  123765. + <http://www.gnu.org/licenses/>. */
  123766. #include <errno.h>
  123767. #include <fcntl.h>
  123768. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue3.c uClibc-git/test/nptl/tst-mqueue3.c
  123769. --- uClibc-0.9.33.2/test/nptl/tst-mqueue3.c 2012-05-15 09:20:09.000000000 +0200
  123770. +++ uClibc-git/test/nptl/tst-mqueue3.c 2014-06-02 17:40:35.302719114 +0200
  123771. @@ -14,9 +14,8 @@
  123772. Lesser General Public License for more details.
  123773. You should have received a copy of the GNU Lesser General Public
  123774. - License along with the GNU C Library; if not, write to the Free
  123775. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123776. - 02111-1307 USA. */
  123777. + License along with the GNU C Library; if not, see
  123778. + <http://www.gnu.org/licenses/>. */
  123779. #include <errno.h>
  123780. #include <mqueue.h>
  123781. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue4.c uClibc-git/test/nptl/tst-mqueue4.c
  123782. --- uClibc-0.9.33.2/test/nptl/tst-mqueue4.c 2012-05-15 09:20:09.000000000 +0200
  123783. +++ uClibc-git/test/nptl/tst-mqueue4.c 2014-06-02 17:40:35.302719114 +0200
  123784. @@ -14,9 +14,8 @@
  123785. Lesser General Public License for more details.
  123786. You should have received a copy of the GNU Lesser General Public
  123787. - License along with the GNU C Library; if not, write to the Free
  123788. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123789. - 02111-1307 USA. */
  123790. + License along with the GNU C Library; if not, see
  123791. + <http://www.gnu.org/licenses/>. */
  123792. #include <errno.h>
  123793. #include <fcntl.h>
  123794. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue5.c uClibc-git/test/nptl/tst-mqueue5.c
  123795. --- uClibc-0.9.33.2/test/nptl/tst-mqueue5.c 2012-05-15 09:20:09.000000000 +0200
  123796. +++ uClibc-git/test/nptl/tst-mqueue5.c 2014-06-02 17:40:35.302719114 +0200
  123797. @@ -14,9 +14,8 @@
  123798. Lesser General Public License for more details.
  123799. You should have received a copy of the GNU Lesser General Public
  123800. - License along with the GNU C Library; if not, write to the Free
  123801. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123802. - 02111-1307 USA. */
  123803. + License along with the GNU C Library; if not, see
  123804. + <http://www.gnu.org/licenses/>. */
  123805. #include <errno.h>
  123806. #include <fcntl.h>
  123807. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue6.c uClibc-git/test/nptl/tst-mqueue6.c
  123808. --- uClibc-0.9.33.2/test/nptl/tst-mqueue6.c 2012-05-15 09:20:09.000000000 +0200
  123809. +++ uClibc-git/test/nptl/tst-mqueue6.c 2014-06-02 17:40:35.302719114 +0200
  123810. @@ -14,9 +14,8 @@
  123811. Lesser General Public License for more details.
  123812. You should have received a copy of the GNU Lesser General Public
  123813. - License along with the GNU C Library; if not, write to the Free
  123814. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123815. - 02111-1307 USA. */
  123816. + License along with the GNU C Library; if not, see
  123817. + <http://www.gnu.org/licenses/>. */
  123818. #include <errno.h>
  123819. #include <fcntl.h>
  123820. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue7.c uClibc-git/test/nptl/tst-mqueue7.c
  123821. --- uClibc-0.9.33.2/test/nptl/tst-mqueue7.c 2012-05-15 09:20:09.000000000 +0200
  123822. +++ uClibc-git/test/nptl/tst-mqueue7.c 2014-06-02 17:40:35.302719114 +0200
  123823. @@ -14,9 +14,8 @@
  123824. Lesser General Public License for more details.
  123825. You should have received a copy of the GNU Lesser General Public
  123826. - License along with the GNU C Library; if not, write to the Free
  123827. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123828. - 02111-1307 USA. */
  123829. + License along with the GNU C Library; if not, see
  123830. + <http://www.gnu.org/licenses/>. */
  123831. #include <errno.h>
  123832. #include <fcntl.h>
  123833. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue8.c uClibc-git/test/nptl/tst-mqueue8.c
  123834. --- uClibc-0.9.33.2/test/nptl/tst-mqueue8.c 2012-05-15 09:20:09.000000000 +0200
  123835. +++ uClibc-git/test/nptl/tst-mqueue8.c 2014-06-02 17:40:35.302719114 +0200
  123836. @@ -13,9 +13,8 @@
  123837. Lesser General Public License for more details.
  123838. You should have received a copy of the GNU Lesser General Public
  123839. - License along with the GNU C Library; if not, write to the Free
  123840. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123841. - 02111-1307 USA. */
  123842. + License along with the GNU C Library; if not, see
  123843. + <http://www.gnu.org/licenses/>. */
  123844. #include <errno.h>
  123845. #include <mqueue.h>
  123846. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue9.c uClibc-git/test/nptl/tst-mqueue9.c
  123847. --- uClibc-0.9.33.2/test/nptl/tst-mqueue9.c 2012-05-15 09:20:09.000000000 +0200
  123848. +++ uClibc-git/test/nptl/tst-mqueue9.c 2014-06-02 17:40:35.302719114 +0200
  123849. @@ -13,9 +13,8 @@
  123850. Lesser General Public License for more details.
  123851. You should have received a copy of the GNU Lesser General Public
  123852. - License along with the GNU C Library; if not, write to the Free
  123853. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123854. - 02111-1307 USA. */
  123855. + License along with the GNU C Library; if not, see
  123856. + <http://www.gnu.org/licenses/>. */
  123857. #include <errno.h>
  123858. #include <mqueue.h>
  123859. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mqueue.h uClibc-git/test/nptl/tst-mqueue.h
  123860. --- uClibc-0.9.33.2/test/nptl/tst-mqueue.h 2012-05-15 09:20:09.000000000 +0200
  123861. +++ uClibc-git/test/nptl/tst-mqueue.h 2014-06-02 17:40:35.302719114 +0200
  123862. @@ -14,9 +14,8 @@
  123863. Lesser General Public License for more details.
  123864. You should have received a copy of the GNU Lesser General Public
  123865. - License along with the GNU C Library; if not, write to the Free
  123866. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123867. - 02111-1307 USA. */
  123868. + License along with the GNU C Library; if not, see
  123869. + <http://www.gnu.org/licenses/>. */
  123870. #include <mqueue.h>
  123871. #include <search.h>
  123872. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex1.c uClibc-git/test/nptl/tst-mutex1.c
  123873. --- uClibc-0.9.33.2/test/nptl/tst-mutex1.c 2012-05-15 09:20:09.000000000 +0200
  123874. +++ uClibc-git/test/nptl/tst-mutex1.c 2014-06-02 17:40:35.302719114 +0200
  123875. @@ -13,9 +13,8 @@
  123876. Lesser General Public License for more details.
  123877. You should have received a copy of the GNU Lesser General Public
  123878. - License along with the GNU C Library; if not, write to the Free
  123879. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123880. - 02111-1307 USA. */
  123881. + License along with the GNU C Library; if not, see
  123882. + <http://www.gnu.org/licenses/>. */
  123883. #include <pthread.h>
  123884. #include <stdio.h>
  123885. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex2.c uClibc-git/test/nptl/tst-mutex2.c
  123886. --- uClibc-0.9.33.2/test/nptl/tst-mutex2.c 2012-05-15 09:20:09.000000000 +0200
  123887. +++ uClibc-git/test/nptl/tst-mutex2.c 2014-06-02 17:40:35.302719114 +0200
  123888. @@ -13,9 +13,8 @@
  123889. Lesser General Public License for more details.
  123890. You should have received a copy of the GNU Lesser General Public
  123891. - License along with the GNU C Library; if not, write to the Free
  123892. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123893. - 02111-1307 USA. */
  123894. + License along with the GNU C Library; if not, see
  123895. + <http://www.gnu.org/licenses/>. */
  123896. #include <errno.h>
  123897. #include <pthread.h>
  123898. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex3.c uClibc-git/test/nptl/tst-mutex3.c
  123899. --- uClibc-0.9.33.2/test/nptl/tst-mutex3.c 2012-05-15 09:20:09.000000000 +0200
  123900. +++ uClibc-git/test/nptl/tst-mutex3.c 2014-06-02 17:40:35.302719114 +0200
  123901. @@ -13,9 +13,8 @@
  123902. Lesser General Public License for more details.
  123903. You should have received a copy of the GNU Lesser General Public
  123904. - License along with the GNU C Library; if not, write to the Free
  123905. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123906. - 02111-1307 USA. */
  123907. + License along with the GNU C Library; if not, see
  123908. + <http://www.gnu.org/licenses/>. */
  123909. #include <errno.h>
  123910. #include <pthread.h>
  123911. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex4.c uClibc-git/test/nptl/tst-mutex4.c
  123912. --- uClibc-0.9.33.2/test/nptl/tst-mutex4.c 2012-05-15 09:20:09.000000000 +0200
  123913. +++ uClibc-git/test/nptl/tst-mutex4.c 2014-06-02 17:40:35.302719114 +0200
  123914. @@ -13,9 +13,8 @@
  123915. Lesser General Public License for more details.
  123916. You should have received a copy of the GNU Lesser General Public
  123917. - License along with the GNU C Library; if not, write to the Free
  123918. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123919. - 02111-1307 USA. */
  123920. + License along with the GNU C Library; if not, see
  123921. + <http://www.gnu.org/licenses/>. */
  123922. #include <errno.h>
  123923. #include <pthread.h>
  123924. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex5.c uClibc-git/test/nptl/tst-mutex5.c
  123925. --- uClibc-0.9.33.2/test/nptl/tst-mutex5.c 2012-05-15 09:20:09.000000000 +0200
  123926. +++ uClibc-git/test/nptl/tst-mutex5.c 2014-06-02 17:40:35.302719114 +0200
  123927. @@ -13,9 +13,8 @@
  123928. Lesser General Public License for more details.
  123929. You should have received a copy of the GNU Lesser General Public
  123930. - License along with the GNU C Library; if not, write to the Free
  123931. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123932. - 02111-1307 USA. */
  123933. + License along with the GNU C Library; if not, see
  123934. + <http://www.gnu.org/licenses/>. */
  123935. #include <errno.h>
  123936. #include <pthread.h>
  123937. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex6.c uClibc-git/test/nptl/tst-mutex6.c
  123938. --- uClibc-0.9.33.2/test/nptl/tst-mutex6.c 2012-05-15 09:20:09.000000000 +0200
  123939. +++ uClibc-git/test/nptl/tst-mutex6.c 2014-06-02 17:40:35.302719114 +0200
  123940. @@ -13,9 +13,8 @@
  123941. Lesser General Public License for more details.
  123942. You should have received a copy of the GNU Lesser General Public
  123943. - License along with the GNU C Library; if not, write to the Free
  123944. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123945. - 02111-1307 USA. */
  123946. + License along with the GNU C Library; if not, see
  123947. + <http://www.gnu.org/licenses/>. */
  123948. #include <pthread.h>
  123949. #include <signal.h>
  123950. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex7.c uClibc-git/test/nptl/tst-mutex7.c
  123951. --- uClibc-0.9.33.2/test/nptl/tst-mutex7.c 2012-05-15 09:20:09.000000000 +0200
  123952. +++ uClibc-git/test/nptl/tst-mutex7.c 2014-06-02 17:40:35.302719114 +0200
  123953. @@ -13,9 +13,8 @@
  123954. Lesser General Public License for more details.
  123955. You should have received a copy of the GNU Lesser General Public
  123956. - License along with the GNU C Library; if not, write to the Free
  123957. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123958. - 02111-1307 USA. */
  123959. + License along with the GNU C Library; if not, see
  123960. + <http://www.gnu.org/licenses/>. */
  123961. #include <pthread.h>
  123962. #include <stdio.h>
  123963. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex8.c uClibc-git/test/nptl/tst-mutex8.c
  123964. --- uClibc-0.9.33.2/test/nptl/tst-mutex8.c 2012-05-15 09:20:09.000000000 +0200
  123965. +++ uClibc-git/test/nptl/tst-mutex8.c 2014-06-02 17:40:35.302719114 +0200
  123966. @@ -13,9 +13,8 @@
  123967. Lesser General Public License for more details.
  123968. You should have received a copy of the GNU Lesser General Public
  123969. - License along with the GNU C Library; if not, write to the Free
  123970. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123971. - 02111-1307 USA. */
  123972. + License along with the GNU C Library; if not, see
  123973. + <http://www.gnu.org/licenses/>. */
  123974. /* This test checks behavior not required by POSIX. */
  123975. #include <errno.h>
  123976. diff -Nur uClibc-0.9.33.2/test/nptl/tst-mutex9.c uClibc-git/test/nptl/tst-mutex9.c
  123977. --- uClibc-0.9.33.2/test/nptl/tst-mutex9.c 2012-05-15 09:20:09.000000000 +0200
  123978. +++ uClibc-git/test/nptl/tst-mutex9.c 2014-06-02 17:40:35.302719114 +0200
  123979. @@ -13,9 +13,8 @@
  123980. Lesser General Public License for more details.
  123981. You should have received a copy of the GNU Lesser General Public
  123982. - License along with the GNU C Library; if not, write to the Free
  123983. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123984. - 02111-1307 USA. */
  123985. + License along with the GNU C Library; if not, see
  123986. + <http://www.gnu.org/licenses/>. */
  123987. #include <errno.h>
  123988. #include <pthread.h>
  123989. diff -Nur uClibc-0.9.33.2/test/nptl/tst-once1.c uClibc-git/test/nptl/tst-once1.c
  123990. --- uClibc-0.9.33.2/test/nptl/tst-once1.c 2012-05-15 09:20:09.000000000 +0200
  123991. +++ uClibc-git/test/nptl/tst-once1.c 2014-06-02 17:40:35.302719114 +0200
  123992. @@ -13,9 +13,8 @@
  123993. Lesser General Public License for more details.
  123994. You should have received a copy of the GNU Lesser General Public
  123995. - License along with the GNU C Library; if not, write to the Free
  123996. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  123997. - 02111-1307 USA. */
  123998. + License along with the GNU C Library; if not, see
  123999. + <http://www.gnu.org/licenses/>. */
  124000. #include <pthread.h>
  124001. #include <stdio.h>
  124002. diff -Nur uClibc-0.9.33.2/test/nptl/tst-once2.c uClibc-git/test/nptl/tst-once2.c
  124003. --- uClibc-0.9.33.2/test/nptl/tst-once2.c 2012-05-15 09:20:09.000000000 +0200
  124004. +++ uClibc-git/test/nptl/tst-once2.c 2014-06-02 17:40:35.302719114 +0200
  124005. @@ -13,9 +13,8 @@
  124006. Lesser General Public License for more details.
  124007. You should have received a copy of the GNU Lesser General Public
  124008. - License along with the GNU C Library; if not, write to the Free
  124009. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124010. - 02111-1307 USA. */
  124011. + License along with the GNU C Library; if not, see
  124012. + <http://www.gnu.org/licenses/>. */
  124013. #include <pthread.h>
  124014. #include <stdio.h>
  124015. diff -Nur uClibc-0.9.33.2/test/nptl/tst-once3.c uClibc-git/test/nptl/tst-once3.c
  124016. --- uClibc-0.9.33.2/test/nptl/tst-once3.c 2012-05-15 09:20:09.000000000 +0200
  124017. +++ uClibc-git/test/nptl/tst-once3.c 2014-06-02 17:40:35.302719114 +0200
  124018. @@ -13,9 +13,8 @@
  124019. Lesser General Public License for more details.
  124020. You should have received a copy of the GNU Lesser General Public
  124021. - License along with the GNU C Library; if not, write to the Free
  124022. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124023. - 02111-1307 USA. */
  124024. + License along with the GNU C Library; if not, see
  124025. + <http://www.gnu.org/licenses/>. */
  124026. #include <pthread.h>
  124027. #include <stdio.h>
  124028. diff -Nur uClibc-0.9.33.2/test/nptl/tst-once4.c uClibc-git/test/nptl/tst-once4.c
  124029. --- uClibc-0.9.33.2/test/nptl/tst-once4.c 2012-05-15 09:20:09.000000000 +0200
  124030. +++ uClibc-git/test/nptl/tst-once4.c 2014-06-02 17:40:35.302719114 +0200
  124031. @@ -13,9 +13,8 @@
  124032. Lesser General Public License for more details.
  124033. You should have received a copy of the GNU Lesser General Public
  124034. - License along with the GNU C Library; if not, write to the Free
  124035. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124036. - 02111-1307 USA. */
  124037. + License along with the GNU C Library; if not, see
  124038. + <http://www.gnu.org/licenses/>. */
  124039. #include <pthread.h>
  124040. #include <stdio.h>
  124041. diff -Nur uClibc-0.9.33.2/test/nptl/tst-popen1.c uClibc-git/test/nptl/tst-popen1.c
  124042. --- uClibc-0.9.33.2/test/nptl/tst-popen1.c 2012-05-15 09:20:09.000000000 +0200
  124043. +++ uClibc-git/test/nptl/tst-popen1.c 2014-06-02 17:40:35.302719114 +0200
  124044. @@ -13,9 +13,8 @@
  124045. Lesser General Public License for more details.
  124046. You should have received a copy of the GNU Lesser General Public
  124047. - License along with the GNU C Library; if not, write to the Free
  124048. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124049. - 02111-1307 USA. */
  124050. + License along with the GNU C Library; if not, see
  124051. + <http://www.gnu.org/licenses/>. */
  124052. #include <errno.h>
  124053. #include <error.h>
  124054. diff -Nur uClibc-0.9.33.2/test/nptl/tst-raise1.c uClibc-git/test/nptl/tst-raise1.c
  124055. --- uClibc-0.9.33.2/test/nptl/tst-raise1.c 2012-05-15 09:20:09.000000000 +0200
  124056. +++ uClibc-git/test/nptl/tst-raise1.c 2014-06-02 17:40:35.302719114 +0200
  124057. @@ -13,9 +13,8 @@
  124058. Lesser General Public License for more details.
  124059. You should have received a copy of the GNU Lesser General Public
  124060. - License along with the GNU C Library; if not, write to the Free
  124061. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124062. - 02111-1307 USA. */
  124063. + License along with the GNU C Library; if not, see
  124064. + <http://www.gnu.org/licenses/>. */
  124065. #include <errno.h>
  124066. #include <error.h>
  124067. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock10.c uClibc-git/test/nptl/tst-rwlock10.c
  124068. --- uClibc-0.9.33.2/test/nptl/tst-rwlock10.c 2012-05-15 09:20:09.000000000 +0200
  124069. +++ uClibc-git/test/nptl/tst-rwlock10.c 2014-06-02 17:40:35.302719114 +0200
  124070. @@ -13,9 +13,8 @@
  124071. Lesser General Public License for more details.
  124072. You should have received a copy of the GNU Lesser General Public
  124073. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  124074. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  124075. - Boston, MA 02111-1307, USA. */
  124076. + License along with the GNU C Library; see the file COPYING.LIB. If
  124077. + not, see <http://www.gnu.org/licenses/>. */
  124078. #define INIT PTHREAD_RWLOCK_INITIALIZER
  124079. #include "tst-rwlock8.c"
  124080. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock11.c uClibc-git/test/nptl/tst-rwlock11.c
  124081. --- uClibc-0.9.33.2/test/nptl/tst-rwlock11.c 2012-05-15 09:20:09.000000000 +0200
  124082. +++ uClibc-git/test/nptl/tst-rwlock11.c 2014-06-02 17:40:35.302719114 +0200
  124083. @@ -13,9 +13,8 @@
  124084. Lesser General Public License for more details.
  124085. You should have received a copy of the GNU Lesser General Public
  124086. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  124087. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  124088. - Boston, MA 02111-1307, USA. */
  124089. + License along with the GNU C Library; see the file COPYING.LIB. If
  124090. + not, see <http://www.gnu.org/licenses/>. */
  124091. #define INIT PTHREAD_RWLOCK_INITIALIZER
  124092. #include "tst-rwlock9.c"
  124093. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock12.c uClibc-git/test/nptl/tst-rwlock12.c
  124094. --- uClibc-0.9.33.2/test/nptl/tst-rwlock12.c 2012-05-15 09:20:09.000000000 +0200
  124095. +++ uClibc-git/test/nptl/tst-rwlock12.c 2014-06-02 17:40:35.302719114 +0200
  124096. @@ -13,9 +13,8 @@
  124097. Lesser General Public License for more details.
  124098. You should have received a copy of the GNU Lesser General Public
  124099. - License along with the GNU C Library; if not, write to the Free
  124100. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124101. - 02111-1307 USA. */
  124102. + License along with the GNU C Library; if not, see
  124103. + <http://www.gnu.org/licenses/>. */
  124104. #include <errno.h>
  124105. #include <pthread.h>
  124106. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock13.c uClibc-git/test/nptl/tst-rwlock13.c
  124107. --- uClibc-0.9.33.2/test/nptl/tst-rwlock13.c 2012-05-15 09:20:09.000000000 +0200
  124108. +++ uClibc-git/test/nptl/tst-rwlock13.c 2014-06-02 17:40:35.302719114 +0200
  124109. @@ -12,9 +12,8 @@
  124110. Lesser General Public License for more details.
  124111. You should have received a copy of the GNU Lesser General Public
  124112. - License along with the GNU C Library; if not, write to the Free
  124113. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124114. - 02111-1307 USA. */
  124115. + License along with the GNU C Library; if not, see
  124116. + <http://www.gnu.org/licenses/>. */
  124117. #include <pthread.h>
  124118. #include <stdio.h>
  124119. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock14.c uClibc-git/test/nptl/tst-rwlock14.c
  124120. --- uClibc-0.9.33.2/test/nptl/tst-rwlock14.c 2012-05-15 09:20:09.000000000 +0200
  124121. +++ uClibc-git/test/nptl/tst-rwlock14.c 2014-06-02 17:40:35.302719114 +0200
  124122. @@ -13,9 +13,8 @@
  124123. Lesser General Public License for more details.
  124124. You should have received a copy of the GNU Lesser General Public
  124125. - License along with the GNU C Library; if not, write to the Free
  124126. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124127. - 02111-1307 USA. */
  124128. + License along with the GNU C Library; if not, see
  124129. + <http://www.gnu.org/licenses/>. */
  124130. #include <errno.h>
  124131. #include <pthread.h>
  124132. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock1.c uClibc-git/test/nptl/tst-rwlock1.c
  124133. --- uClibc-0.9.33.2/test/nptl/tst-rwlock1.c 2012-05-15 09:20:09.000000000 +0200
  124134. +++ uClibc-git/test/nptl/tst-rwlock1.c 2014-06-02 17:40:35.302719114 +0200
  124135. @@ -13,9 +13,8 @@
  124136. Lesser General Public License for more details.
  124137. You should have received a copy of the GNU Lesser General Public
  124138. - License along with the GNU C Library; if not, write to the Free
  124139. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124140. - 02111-1307 USA. */
  124141. + License along with the GNU C Library; if not, see
  124142. + <http://www.gnu.org/licenses/>. */
  124143. #include <pthread.h>
  124144. #include <stdio.h>
  124145. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock2.c uClibc-git/test/nptl/tst-rwlock2.c
  124146. --- uClibc-0.9.33.2/test/nptl/tst-rwlock2.c 2012-05-15 09:20:09.000000000 +0200
  124147. +++ uClibc-git/test/nptl/tst-rwlock2.c 2014-06-02 17:40:35.302719114 +0200
  124148. @@ -13,9 +13,8 @@
  124149. Lesser General Public License for more details.
  124150. You should have received a copy of the GNU Lesser General Public
  124151. - License along with the GNU C Library; if not, write to the Free
  124152. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124153. - 02111-1307 USA. */
  124154. + License along with the GNU C Library; if not, see
  124155. + <http://www.gnu.org/licenses/>. */
  124156. #include <errno.h>
  124157. #include <pthread.h>
  124158. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock3.c uClibc-git/test/nptl/tst-rwlock3.c
  124159. --- uClibc-0.9.33.2/test/nptl/tst-rwlock3.c 2012-05-15 09:20:09.000000000 +0200
  124160. +++ uClibc-git/test/nptl/tst-rwlock3.c 2014-06-02 17:40:35.302719114 +0200
  124161. @@ -13,9 +13,8 @@
  124162. Lesser General Public License for more details.
  124163. You should have received a copy of the GNU Lesser General Public
  124164. - License along with the GNU C Library; if not, write to the Free
  124165. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124166. - 02111-1307 USA. */
  124167. + License along with the GNU C Library; if not, see
  124168. + <http://www.gnu.org/licenses/>. */
  124169. /* This test case checks more than standard compliance. An
  124170. implementation may provide this service but it is not required to
  124171. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock4.c uClibc-git/test/nptl/tst-rwlock4.c
  124172. --- uClibc-0.9.33.2/test/nptl/tst-rwlock4.c 2012-05-15 09:20:09.000000000 +0200
  124173. +++ uClibc-git/test/nptl/tst-rwlock4.c 2014-06-02 17:40:35.302719114 +0200
  124174. @@ -13,9 +13,8 @@
  124175. Lesser General Public License for more details.
  124176. You should have received a copy of the GNU Lesser General Public
  124177. - License along with the GNU C Library; if not, write to the Free
  124178. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124179. - 02111-1307 USA. */
  124180. + License along with the GNU C Library; if not, see
  124181. + <http://www.gnu.org/licenses/>. */
  124182. #include <errno.h>
  124183. #include <pthread.h>
  124184. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock5.c uClibc-git/test/nptl/tst-rwlock5.c
  124185. --- uClibc-0.9.33.2/test/nptl/tst-rwlock5.c 2012-05-15 09:20:09.000000000 +0200
  124186. +++ uClibc-git/test/nptl/tst-rwlock5.c 2014-06-02 17:40:35.302719114 +0200
  124187. @@ -13,9 +13,8 @@
  124188. Lesser General Public License for more details.
  124189. You should have received a copy of the GNU Lesser General Public
  124190. - License along with the GNU C Library; if not, write to the Free
  124191. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124192. - 02111-1307 USA. */
  124193. + License along with the GNU C Library; if not, see
  124194. + <http://www.gnu.org/licenses/>. */
  124195. #include <pthread.h>
  124196. #include <signal.h>
  124197. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock6.c uClibc-git/test/nptl/tst-rwlock6.c
  124198. --- uClibc-0.9.33.2/test/nptl/tst-rwlock6.c 2012-05-15 09:20:09.000000000 +0200
  124199. +++ uClibc-git/test/nptl/tst-rwlock6.c 2014-06-02 17:40:35.302719114 +0200
  124200. @@ -13,9 +13,8 @@
  124201. Lesser General Public License for more details.
  124202. You should have received a copy of the GNU Lesser General Public
  124203. - License along with the GNU C Library; if not, write to the Free
  124204. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124205. - 02111-1307 USA. */
  124206. + License along with the GNU C Library; if not, see
  124207. + <http://www.gnu.org/licenses/>. */
  124208. #include <errno.h>
  124209. #include <pthread.h>
  124210. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock7.c uClibc-git/test/nptl/tst-rwlock7.c
  124211. --- uClibc-0.9.33.2/test/nptl/tst-rwlock7.c 2012-05-15 09:20:09.000000000 +0200
  124212. +++ uClibc-git/test/nptl/tst-rwlock7.c 2014-06-02 17:40:35.302719114 +0200
  124213. @@ -13,9 +13,8 @@
  124214. Lesser General Public License for more details.
  124215. You should have received a copy of the GNU Lesser General Public
  124216. - License along with the GNU C Library; if not, write to the Free
  124217. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124218. - 02111-1307 USA. */
  124219. + License along with the GNU C Library; if not, see
  124220. + <http://www.gnu.org/licenses/>. */
  124221. #include <errno.h>
  124222. #include <pthread.h>
  124223. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock8.c uClibc-git/test/nptl/tst-rwlock8.c
  124224. --- uClibc-0.9.33.2/test/nptl/tst-rwlock8.c 2012-05-15 09:20:09.000000000 +0200
  124225. +++ uClibc-git/test/nptl/tst-rwlock8.c 2014-06-02 17:40:35.302719114 +0200
  124226. @@ -13,9 +13,8 @@
  124227. Lesser General Public License for more details.
  124228. You should have received a copy of the GNU Lesser General Public
  124229. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  124230. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  124231. - Boston, MA 02111-1307, USA. */
  124232. + License along with the GNU C Library; see the file COPYING.LIB. If
  124233. + not, see <http://www.gnu.org/licenses/>. */
  124234. #include <errno.h>
  124235. #include <error.h>
  124236. diff -Nur uClibc-0.9.33.2/test/nptl/tst-rwlock9.c uClibc-git/test/nptl/tst-rwlock9.c
  124237. --- uClibc-0.9.33.2/test/nptl/tst-rwlock9.c 2012-05-15 09:20:09.000000000 +0200
  124238. +++ uClibc-git/test/nptl/tst-rwlock9.c 2014-06-02 17:40:35.302719114 +0200
  124239. @@ -13,9 +13,8 @@
  124240. Lesser General Public License for more details.
  124241. You should have received a copy of the GNU Lesser General Public
  124242. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  124243. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  124244. - Boston, MA 02111-1307, USA. */
  124245. + License along with the GNU C Library; see the file COPYING.LIB. If
  124246. + not, see <http://www.gnu.org/licenses/>. */
  124247. #include <errno.h>
  124248. #include <error.h>
  124249. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sched1.c uClibc-git/test/nptl/tst-sched1.c
  124250. --- uClibc-0.9.33.2/test/nptl/tst-sched1.c 2012-05-15 09:20:09.000000000 +0200
  124251. +++ uClibc-git/test/nptl/tst-sched1.c 2014-06-02 17:40:35.302719114 +0200
  124252. @@ -13,9 +13,8 @@
  124253. Lesser General Public License for more details.
  124254. You should have received a copy of the GNU Lesser General Public
  124255. - License along with the GNU C Library; if not, write to the Free
  124256. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124257. - 02111-1307 USA. */
  124258. + License along with the GNU C Library; if not, see
  124259. + <http://www.gnu.org/licenses/>. */
  124260. #include <pthread.h>
  124261. #include <stdio.h>
  124262. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem10.c uClibc-git/test/nptl/tst-sem10.c
  124263. --- uClibc-0.9.33.2/test/nptl/tst-sem10.c 2012-05-15 09:20:09.000000000 +0200
  124264. +++ uClibc-git/test/nptl/tst-sem10.c 2014-06-02 17:40:35.302719114 +0200
  124265. @@ -13,9 +13,8 @@
  124266. Lesser General Public License for more details.
  124267. You should have received a copy of the GNU Lesser General Public
  124268. - License along with the GNU C Library; if not, write to the Free
  124269. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124270. - 02111-1307 USA. */
  124271. + License along with the GNU C Library; if not, see
  124272. + <http://www.gnu.org/licenses/>. */
  124273. #include <errno.h>
  124274. #include <pthread.h>
  124275. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem1.c uClibc-git/test/nptl/tst-sem1.c
  124276. --- uClibc-0.9.33.2/test/nptl/tst-sem1.c 2012-05-15 09:20:09.000000000 +0200
  124277. +++ uClibc-git/test/nptl/tst-sem1.c 2014-06-02 17:40:35.302719114 +0200
  124278. @@ -13,9 +13,8 @@
  124279. Lesser General Public License for more details.
  124280. You should have received a copy of the GNU Lesser General Public
  124281. - License along with the GNU C Library; if not, write to the Free
  124282. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124283. - 02111-1307 USA. */
  124284. + License along with the GNU C Library; if not, see
  124285. + <http://www.gnu.org/licenses/>. */
  124286. #include <errno.h>
  124287. #include <semaphore.h>
  124288. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem2.c uClibc-git/test/nptl/tst-sem2.c
  124289. --- uClibc-0.9.33.2/test/nptl/tst-sem2.c 2012-05-15 09:20:09.000000000 +0200
  124290. +++ uClibc-git/test/nptl/tst-sem2.c 2014-06-02 17:40:35.306719136 +0200
  124291. @@ -13,9 +13,8 @@
  124292. Lesser General Public License for more details.
  124293. You should have received a copy of the GNU Lesser General Public
  124294. - License along with the GNU C Library; if not, write to the Free
  124295. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124296. - 02111-1307 USA. */
  124297. + License along with the GNU C Library; if not, see
  124298. + <http://www.gnu.org/licenses/>. */
  124299. #include <errno.h>
  124300. #include <semaphore.h>
  124301. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem3.c uClibc-git/test/nptl/tst-sem3.c
  124302. --- uClibc-0.9.33.2/test/nptl/tst-sem3.c 2012-05-15 09:20:09.000000000 +0200
  124303. +++ uClibc-git/test/nptl/tst-sem3.c 2014-06-02 17:40:35.306719136 +0200
  124304. @@ -13,9 +13,8 @@
  124305. Lesser General Public License for more details.
  124306. You should have received a copy of the GNU Lesser General Public
  124307. - License along with the GNU C Library; if not, write to the Free
  124308. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124309. - 02111-1307 USA. */
  124310. + License along with the GNU C Library; if not, see
  124311. + <http://www.gnu.org/licenses/>. */
  124312. #include <errno.h>
  124313. #include <semaphore.h>
  124314. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem4.c uClibc-git/test/nptl/tst-sem4.c
  124315. --- uClibc-0.9.33.2/test/nptl/tst-sem4.c 2012-05-15 09:20:09.000000000 +0200
  124316. +++ uClibc-git/test/nptl/tst-sem4.c 2014-06-02 17:40:35.306719136 +0200
  124317. @@ -13,9 +13,8 @@
  124318. Lesser General Public License for more details.
  124319. You should have received a copy of the GNU Lesser General Public
  124320. - License along with the GNU C Library; if not, write to the Free
  124321. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124322. - 02111-1307 USA. */
  124323. + License along with the GNU C Library; if not, see
  124324. + <http://www.gnu.org/licenses/>. */
  124325. #include <errno.h>
  124326. #include <fcntl.h>
  124327. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem5.c uClibc-git/test/nptl/tst-sem5.c
  124328. --- uClibc-0.9.33.2/test/nptl/tst-sem5.c 2012-05-15 09:20:09.000000000 +0200
  124329. +++ uClibc-git/test/nptl/tst-sem5.c 2014-06-02 17:40:35.306719136 +0200
  124330. @@ -13,9 +13,8 @@
  124331. Lesser General Public License for more details.
  124332. You should have received a copy of the GNU Lesser General Public
  124333. - License along with the GNU C Library; if not, write to the Free
  124334. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124335. - 02111-1307 USA. */
  124336. + License along with the GNU C Library; if not, see
  124337. + <http://www.gnu.org/licenses/>. */
  124338. #include <errno.h>
  124339. #include <semaphore.h>
  124340. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem6.c uClibc-git/test/nptl/tst-sem6.c
  124341. --- uClibc-0.9.33.2/test/nptl/tst-sem6.c 2012-05-15 09:20:09.000000000 +0200
  124342. +++ uClibc-git/test/nptl/tst-sem6.c 2014-06-02 17:40:35.306719136 +0200
  124343. @@ -13,9 +13,8 @@
  124344. Lesser General Public License for more details.
  124345. You should have received a copy of the GNU Lesser General Public
  124346. - License along with the GNU C Library; if not, write to the Free
  124347. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124348. - 02111-1307 USA. */
  124349. + License along with the GNU C Library; if not, see
  124350. + <http://www.gnu.org/licenses/>. */
  124351. #include <errno.h>
  124352. #include <semaphore.h>
  124353. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem7.c uClibc-git/test/nptl/tst-sem7.c
  124354. --- uClibc-0.9.33.2/test/nptl/tst-sem7.c 2012-05-15 09:20:09.000000000 +0200
  124355. +++ uClibc-git/test/nptl/tst-sem7.c 2014-06-02 17:40:35.306719136 +0200
  124356. @@ -13,9 +13,8 @@
  124357. Lesser General Public License for more details.
  124358. You should have received a copy of the GNU Lesser General Public
  124359. - License along with the GNU C Library; if not, write to the Free
  124360. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124361. - 02111-1307 USA. */
  124362. + License along with the GNU C Library; if not, see
  124363. + <http://www.gnu.org/licenses/>. */
  124364. #include <errno.h>
  124365. #include <fcntl.h>
  124366. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem8.c uClibc-git/test/nptl/tst-sem8.c
  124367. --- uClibc-0.9.33.2/test/nptl/tst-sem8.c 2012-05-15 09:20:09.000000000 +0200
  124368. +++ uClibc-git/test/nptl/tst-sem8.c 2014-06-02 17:40:35.306719136 +0200
  124369. @@ -13,9 +13,8 @@
  124370. Lesser General Public License for more details.
  124371. You should have received a copy of the GNU Lesser General Public
  124372. - License along with the GNU C Library; if not, write to the Free
  124373. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124374. - 02111-1307 USA. */
  124375. + License along with the GNU C Library; if not, see
  124376. + <http://www.gnu.org/licenses/>. */
  124377. #include <errno.h>
  124378. #include <fcntl.h>
  124379. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sem9.c uClibc-git/test/nptl/tst-sem9.c
  124380. --- uClibc-0.9.33.2/test/nptl/tst-sem9.c 2012-05-15 09:20:09.000000000 +0200
  124381. +++ uClibc-git/test/nptl/tst-sem9.c 2014-06-02 17:40:35.306719136 +0200
  124382. @@ -13,9 +13,8 @@
  124383. Lesser General Public License for more details.
  124384. You should have received a copy of the GNU Lesser General Public
  124385. - License along with the GNU C Library; if not, write to the Free
  124386. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124387. - 02111-1307 USA. */
  124388. + License along with the GNU C Library; if not, see
  124389. + <http://www.gnu.org/licenses/>. */
  124390. #include <errno.h>
  124391. #include <fcntl.h>
  124392. diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal1.c uClibc-git/test/nptl/tst-signal1.c
  124393. --- uClibc-0.9.33.2/test/nptl/tst-signal1.c 2012-05-15 09:20:09.000000000 +0200
  124394. +++ uClibc-git/test/nptl/tst-signal1.c 2014-06-02 17:40:35.306719136 +0200
  124395. @@ -13,9 +13,8 @@
  124396. Lesser General Public License for more details.
  124397. You should have received a copy of the GNU Lesser General Public
  124398. - License along with the GNU C Library; if not, write to the Free
  124399. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124400. - 02111-1307 USA. */
  124401. + License along with the GNU C Library; if not, see
  124402. + <http://www.gnu.org/licenses/>. */
  124403. #include <errno.h>
  124404. #include <pthread.h>
  124405. diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal2.c uClibc-git/test/nptl/tst-signal2.c
  124406. --- uClibc-0.9.33.2/test/nptl/tst-signal2.c 2012-05-15 09:20:09.000000000 +0200
  124407. +++ uClibc-git/test/nptl/tst-signal2.c 2014-06-02 17:40:35.306719136 +0200
  124408. @@ -13,9 +13,8 @@
  124409. Lesser General Public License for more details.
  124410. You should have received a copy of the GNU Lesser General Public
  124411. - License along with the GNU C Library; if not, write to the Free
  124412. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124413. - 02111-1307 USA. */
  124414. + License along with the GNU C Library; if not, see
  124415. + <http://www.gnu.org/licenses/>. */
  124416. #include <errno.h>
  124417. #include <pthread.h>
  124418. diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal3.c uClibc-git/test/nptl/tst-signal3.c
  124419. --- uClibc-0.9.33.2/test/nptl/tst-signal3.c 2012-05-15 09:20:09.000000000 +0200
  124420. +++ uClibc-git/test/nptl/tst-signal3.c 2014-06-02 17:40:35.306719136 +0200
  124421. @@ -13,9 +13,8 @@
  124422. Lesser General Public License for more details.
  124423. You should have received a copy of the GNU Lesser General Public
  124424. - License along with the GNU C Library; if not, write to the Free
  124425. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124426. - 02111-1307 USA. */
  124427. + License along with the GNU C Library; if not, see
  124428. + <http://www.gnu.org/licenses/>. */
  124429. #include <errno.h>
  124430. #include <pthread.h>
  124431. diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal4.c uClibc-git/test/nptl/tst-signal4.c
  124432. --- uClibc-0.9.33.2/test/nptl/tst-signal4.c 2012-05-15 09:20:09.000000000 +0200
  124433. +++ uClibc-git/test/nptl/tst-signal4.c 2014-06-02 17:40:35.306719136 +0200
  124434. @@ -13,9 +13,8 @@
  124435. Lesser General Public License for more details.
  124436. You should have received a copy of the GNU Lesser General Public
  124437. - License along with the GNU C Library; if not, write to the Free
  124438. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124439. - 02111-1307 USA. */
  124440. + License along with the GNU C Library; if not, see
  124441. + <http://www.gnu.org/licenses/>. */
  124442. #include <errno.h>
  124443. #include <pthread.h>
  124444. diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal5.c uClibc-git/test/nptl/tst-signal5.c
  124445. --- uClibc-0.9.33.2/test/nptl/tst-signal5.c 2012-05-15 09:20:09.000000000 +0200
  124446. +++ uClibc-git/test/nptl/tst-signal5.c 2014-06-02 17:40:35.306719136 +0200
  124447. @@ -13,9 +13,8 @@
  124448. Lesser General Public License for more details.
  124449. You should have received a copy of the GNU Lesser General Public
  124450. - License along with the GNU C Library; if not, write to the Free
  124451. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124452. - 02111-1307 USA. */
  124453. + License along with the GNU C Library; if not, see
  124454. + <http://www.gnu.org/licenses/>. */
  124455. #include <errno.h>
  124456. #include <pthread.h>
  124457. diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal6.c uClibc-git/test/nptl/tst-signal6.c
  124458. --- uClibc-0.9.33.2/test/nptl/tst-signal6.c 2012-05-15 09:20:09.000000000 +0200
  124459. +++ uClibc-git/test/nptl/tst-signal6.c 2014-06-02 17:40:35.306719136 +0200
  124460. @@ -13,9 +13,8 @@
  124461. Lesser General Public License for more details.
  124462. You should have received a copy of the GNU Lesser General Public
  124463. - License along with the GNU C Library; if not, write to the Free
  124464. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124465. - 02111-1307 USA. */
  124466. + License along with the GNU C Library; if not, see
  124467. + <http://www.gnu.org/licenses/>. */
  124468. #include <pthread.h>
  124469. #include <signal.h>
  124470. diff -Nur uClibc-0.9.33.2/test/nptl/tst-signal7.c uClibc-git/test/nptl/tst-signal7.c
  124471. --- uClibc-0.9.33.2/test/nptl/tst-signal7.c 2012-05-15 09:20:09.000000000 +0200
  124472. +++ uClibc-git/test/nptl/tst-signal7.c 2014-06-02 17:40:35.306719136 +0200
  124473. @@ -13,9 +13,8 @@
  124474. Lesser General Public License for more details.
  124475. You should have received a copy of the GNU Lesser General Public
  124476. - License along with the GNU C Library; if not, write to the Free
  124477. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124478. - 02111-1307 USA. */
  124479. + License along with the GNU C Library; if not, see
  124480. + <http://www.gnu.org/licenses/>. */
  124481. #include <errno.h>
  124482. #include <pthreadP.h>
  124483. diff -Nur uClibc-0.9.33.2/test/nptl/tst-spin1.c uClibc-git/test/nptl/tst-spin1.c
  124484. --- uClibc-0.9.33.2/test/nptl/tst-spin1.c 2012-05-15 09:20:09.000000000 +0200
  124485. +++ uClibc-git/test/nptl/tst-spin1.c 2014-06-02 17:40:35.306719136 +0200
  124486. @@ -13,9 +13,8 @@
  124487. Lesser General Public License for more details.
  124488. You should have received a copy of the GNU Lesser General Public
  124489. - License along with the GNU C Library; if not, write to the Free
  124490. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124491. - 02111-1307 USA. */
  124492. + License along with the GNU C Library; if not, see
  124493. + <http://www.gnu.org/licenses/>. */
  124494. #include <pthread.h>
  124495. #include <stdio.h>
  124496. diff -Nur uClibc-0.9.33.2/test/nptl/tst-spin2.c uClibc-git/test/nptl/tst-spin2.c
  124497. --- uClibc-0.9.33.2/test/nptl/tst-spin2.c 2012-05-15 09:20:09.000000000 +0200
  124498. +++ uClibc-git/test/nptl/tst-spin2.c 2014-06-02 17:40:35.306719136 +0200
  124499. @@ -13,9 +13,8 @@
  124500. Lesser General Public License for more details.
  124501. You should have received a copy of the GNU Lesser General Public
  124502. - License along with the GNU C Library; if not, write to the Free
  124503. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124504. - 02111-1307 USA. */
  124505. + License along with the GNU C Library; if not, see
  124506. + <http://www.gnu.org/licenses/>. */
  124507. #include <errno.h>
  124508. #include <pthread.h>
  124509. diff -Nur uClibc-0.9.33.2/test/nptl/tst-spin3.c uClibc-git/test/nptl/tst-spin3.c
  124510. --- uClibc-0.9.33.2/test/nptl/tst-spin3.c 2012-05-15 09:20:09.000000000 +0200
  124511. +++ uClibc-git/test/nptl/tst-spin3.c 2014-06-02 17:40:35.306719136 +0200
  124512. @@ -13,9 +13,8 @@
  124513. Lesser General Public License for more details.
  124514. You should have received a copy of the GNU Lesser General Public
  124515. - License along with the GNU C Library; if not, write to the Free
  124516. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124517. - 02111-1307 USA. */
  124518. + License along with the GNU C Library; if not, see
  124519. + <http://www.gnu.org/licenses/>. */
  124520. #include <pthread.h>
  124521. #include <signal.h>
  124522. diff -Nur uClibc-0.9.33.2/test/nptl/tst-stack1.c uClibc-git/test/nptl/tst-stack1.c
  124523. --- uClibc-0.9.33.2/test/nptl/tst-stack1.c 2012-05-15 09:20:09.000000000 +0200
  124524. +++ uClibc-git/test/nptl/tst-stack1.c 2014-06-02 17:40:35.306719136 +0200
  124525. @@ -13,9 +13,8 @@
  124526. Lesser General Public License for more details.
  124527. You should have received a copy of the GNU Lesser General Public
  124528. - License along with the GNU C Library; if not, write to the Free
  124529. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124530. - 02111-1307 USA. */
  124531. + License along with the GNU C Library; if not, see
  124532. + <http://www.gnu.org/licenses/>. */
  124533. #include <limits.h>
  124534. #include <pthread.h>
  124535. diff -Nur uClibc-0.9.33.2/test/nptl/tst-stack2.c uClibc-git/test/nptl/tst-stack2.c
  124536. --- uClibc-0.9.33.2/test/nptl/tst-stack2.c 2012-05-15 09:20:09.000000000 +0200
  124537. +++ uClibc-git/test/nptl/tst-stack2.c 2014-06-02 17:40:35.306719136 +0200
  124538. @@ -13,9 +13,8 @@
  124539. Lesser General Public License for more details.
  124540. You should have received a copy of the GNU Lesser General Public
  124541. - License along with the GNU C Library; if not, write to the Free
  124542. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124543. - 02111-1307 USA. */
  124544. + License along with the GNU C Library; if not, see
  124545. + <http://www.gnu.org/licenses/>. */
  124546. /* Test whether it is possible to create a thread with PTHREAD_STACK_MIN
  124547. stack size. */
  124548. diff -Nur uClibc-0.9.33.2/test/nptl/tst-stack-align.h uClibc-git/test/nptl/tst-stack-align.h
  124549. --- uClibc-0.9.33.2/test/nptl/tst-stack-align.h 2012-05-15 09:20:09.000000000 +0200
  124550. +++ uClibc-git/test/nptl/tst-stack-align.h 2014-06-02 17:40:35.306719136 +0200
  124551. @@ -12,9 +12,8 @@
  124552. Lesser General Public License for more details.
  124553. You should have received a copy of the GNU Lesser General Public
  124554. - License along with the GNU C Library; if not, write to the Free
  124555. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124556. - 02111-1307 USA. */
  124557. + License along with the GNU C Library; if not, see
  124558. + <http://www.gnu.org/licenses/>. */
  124559. #include <stdio.h>
  124560. #include <stdint.h>
  124561. diff -Nur uClibc-0.9.33.2/test/nptl/tst-stdio1.c uClibc-git/test/nptl/tst-stdio1.c
  124562. --- uClibc-0.9.33.2/test/nptl/tst-stdio1.c 2012-05-15 09:20:09.000000000 +0200
  124563. +++ uClibc-git/test/nptl/tst-stdio1.c 2014-06-02 17:40:35.306719136 +0200
  124564. @@ -13,9 +13,8 @@
  124565. Lesser General Public License for more details.
  124566. You should have received a copy of the GNU Lesser General Public
  124567. - License along with the GNU C Library; if not, write to the Free
  124568. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124569. - 02111-1307 USA. */
  124570. + License along with the GNU C Library; if not, see
  124571. + <http://www.gnu.org/licenses/>. */
  124572. #include <pthread.h>
  124573. #include <signal.h>
  124574. diff -Nur uClibc-0.9.33.2/test/nptl/tst-stdio2.c uClibc-git/test/nptl/tst-stdio2.c
  124575. --- uClibc-0.9.33.2/test/nptl/tst-stdio2.c 2012-05-15 09:20:09.000000000 +0200
  124576. +++ uClibc-git/test/nptl/tst-stdio2.c 2014-06-02 17:40:35.306719136 +0200
  124577. @@ -13,9 +13,8 @@
  124578. Lesser General Public License for more details.
  124579. You should have received a copy of the GNU Lesser General Public
  124580. - License along with the GNU C Library; if not, write to the Free
  124581. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124582. - 02111-1307 USA. */
  124583. + License along with the GNU C Library; if not, see
  124584. + <http://www.gnu.org/licenses/>. */
  124585. #include <pthread.h>
  124586. #include <signal.h>
  124587. diff -Nur uClibc-0.9.33.2/test/nptl/tst-sysconf.c uClibc-git/test/nptl/tst-sysconf.c
  124588. --- uClibc-0.9.33.2/test/nptl/tst-sysconf.c 2012-05-15 09:20:09.000000000 +0200
  124589. +++ uClibc-git/test/nptl/tst-sysconf.c 2014-06-02 17:40:35.306719136 +0200
  124590. @@ -13,9 +13,8 @@
  124591. Lesser General Public License for more details.
  124592. You should have received a copy of the GNU Lesser General Public
  124593. - License along with the GNU C Library; if not, write to the Free
  124594. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124595. - 02111-1307 USA. */
  124596. + License along with the GNU C Library; if not, see
  124597. + <http://www.gnu.org/licenses/>. */
  124598. #include <pthread.h>
  124599. #include <stdio.h>
  124600. diff -Nur uClibc-0.9.33.2/test/nptl/tst-timer4.c uClibc-git/test/nptl/tst-timer4.c
  124601. --- uClibc-0.9.33.2/test/nptl/tst-timer4.c 2012-05-15 09:20:09.000000000 +0200
  124602. +++ uClibc-git/test/nptl/tst-timer4.c 2014-06-02 17:40:35.306719136 +0200
  124603. @@ -14,9 +14,8 @@
  124604. Lesser General Public License for more details.
  124605. You should have received a copy of the GNU Lesser General Public
  124606. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  124607. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  124608. - Boston, MA 02111-1307, USA. */
  124609. + License along with the GNU C Library; see the file COPYING.LIB. If
  124610. + not, see <http://www.gnu.org/licenses/>. */
  124611. #include <errno.h>
  124612. #include <signal.h>
  124613. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls1.c uClibc-git/test/nptl/tst-tls1.c
  124614. --- uClibc-0.9.33.2/test/nptl/tst-tls1.c 2012-05-15 09:20:09.000000000 +0200
  124615. +++ uClibc-git/test/nptl/tst-tls1.c 2014-06-02 17:40:35.306719136 +0200
  124616. @@ -13,9 +13,8 @@
  124617. Lesser General Public License for more details.
  124618. You should have received a copy of the GNU Lesser General Public
  124619. - License along with the GNU C Library; if not, write to the Free
  124620. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124621. - 02111-1307 USA. */
  124622. + License along with the GNU C Library; if not, see
  124623. + <http://www.gnu.org/licenses/>. */
  124624. #include <pthread.h>
  124625. #include <stdio.h>
  124626. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls2.c uClibc-git/test/nptl/tst-tls2.c
  124627. --- uClibc-0.9.33.2/test/nptl/tst-tls2.c 2012-05-15 09:20:09.000000000 +0200
  124628. +++ uClibc-git/test/nptl/tst-tls2.c 2014-06-02 17:40:35.306719136 +0200
  124629. @@ -13,9 +13,8 @@
  124630. Lesser General Public License for more details.
  124631. You should have received a copy of the GNU Lesser General Public
  124632. - License along with the GNU C Library; if not, write to the Free
  124633. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124634. - 02111-1307 USA. */
  124635. + License along with the GNU C Library; if not, see
  124636. + <http://www.gnu.org/licenses/>. */
  124637. #include <errno.h>
  124638. #include <pthread.h>
  124639. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls3.c uClibc-git/test/nptl/tst-tls3.c
  124640. --- uClibc-0.9.33.2/test/nptl/tst-tls3.c 2012-05-15 09:20:09.000000000 +0200
  124641. +++ uClibc-git/test/nptl/tst-tls3.c 2014-06-02 17:40:35.306719136 +0200
  124642. @@ -13,9 +13,8 @@
  124643. Lesser General Public License for more details.
  124644. You should have received a copy of the GNU Lesser General Public
  124645. - License along with the GNU C Library; if not, write to the Free
  124646. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124647. - 02111-1307 USA. */
  124648. + License along with the GNU C Library; if not, see
  124649. + <http://www.gnu.org/licenses/>. */
  124650. #include <dlfcn.h>
  124651. #include <errno.h>
  124652. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls3mod.c uClibc-git/test/nptl/tst-tls3mod.c
  124653. --- uClibc-0.9.33.2/test/nptl/tst-tls3mod.c 2012-05-15 09:20:09.000000000 +0200
  124654. +++ uClibc-git/test/nptl/tst-tls3mod.c 2014-06-02 17:40:35.306719136 +0200
  124655. @@ -13,9 +13,8 @@
  124656. Lesser General Public License for more details.
  124657. You should have received a copy of the GNU Lesser General Public
  124658. - License along with the GNU C Library; if not, write to the Free
  124659. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124660. - 02111-1307 USA. */
  124661. + License along with the GNU C Library; if not, see
  124662. + <http://www.gnu.org/licenses/>. */
  124663. #include <pthread.h>
  124664. #include <semaphore.h>
  124665. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls4.c uClibc-git/test/nptl/tst-tls4.c
  124666. --- uClibc-0.9.33.2/test/nptl/tst-tls4.c 2012-05-15 09:20:09.000000000 +0200
  124667. +++ uClibc-git/test/nptl/tst-tls4.c 2014-06-02 17:40:35.306719136 +0200
  124668. @@ -13,9 +13,8 @@
  124669. Lesser General Public License for more details.
  124670. You should have received a copy of the GNU Lesser General Public
  124671. - License along with the GNU C Library; if not, write to the Free
  124672. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124673. - 02111-1307 USA. */
  124674. + License along with the GNU C Library; if not, see
  124675. + <http://www.gnu.org/licenses/>. */
  124676. #include <dlfcn.h>
  124677. #include <errno.h>
  124678. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls4moda.c uClibc-git/test/nptl/tst-tls4moda.c
  124679. --- uClibc-0.9.33.2/test/nptl/tst-tls4moda.c 2012-05-15 09:20:09.000000000 +0200
  124680. +++ uClibc-git/test/nptl/tst-tls4moda.c 2014-06-02 17:40:35.306719136 +0200
  124681. @@ -13,9 +13,8 @@
  124682. Lesser General Public License for more details.
  124683. You should have received a copy of the GNU Lesser General Public
  124684. - License along with the GNU C Library; if not, write to the Free
  124685. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124686. - 02111-1307 USA. */
  124687. + License along with the GNU C Library; if not, see
  124688. + <http://www.gnu.org/licenses/>. */
  124689. #include <stdio.h>
  124690. #include <stdlib.h>
  124691. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls4modb.c uClibc-git/test/nptl/tst-tls4modb.c
  124692. --- uClibc-0.9.33.2/test/nptl/tst-tls4modb.c 2012-05-15 09:20:09.000000000 +0200
  124693. +++ uClibc-git/test/nptl/tst-tls4modb.c 2014-06-02 17:40:35.306719136 +0200
  124694. @@ -13,9 +13,8 @@
  124695. Lesser General Public License for more details.
  124696. You should have received a copy of the GNU Lesser General Public
  124697. - License along with the GNU C Library; if not, write to the Free
  124698. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124699. - 02111-1307 USA. */
  124700. + License along with the GNU C Library; if not, see
  124701. + <http://www.gnu.org/licenses/>. */
  124702. #include <stdio.h>
  124703. #include <stdlib.h>
  124704. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tls5.c uClibc-git/test/nptl/tst-tls5.c
  124705. --- uClibc-0.9.33.2/test/nptl/tst-tls5.c 2012-05-15 09:20:09.000000000 +0200
  124706. +++ uClibc-git/test/nptl/tst-tls5.c 2014-06-02 17:40:35.306719136 +0200
  124707. @@ -13,9 +13,8 @@
  124708. Lesser General Public License for more details.
  124709. You should have received a copy of the GNU Lesser General Public
  124710. - License along with the GNU C Library; if not, write to the Free
  124711. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124712. - 02111-1307 USA. */
  124713. + License along with the GNU C Library; if not, see
  124714. + <http://www.gnu.org/licenses/>. */
  124715. /* Check alignment, overlapping and layout of TLS variables. */
  124716. #include <stdint.h>
  124717. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tsd1.c uClibc-git/test/nptl/tst-tsd1.c
  124718. --- uClibc-0.9.33.2/test/nptl/tst-tsd1.c 2012-05-15 09:20:09.000000000 +0200
  124719. +++ uClibc-git/test/nptl/tst-tsd1.c 2014-06-02 17:40:35.306719136 +0200
  124720. @@ -13,9 +13,8 @@
  124721. Lesser General Public License for more details.
  124722. You should have received a copy of the GNU Lesser General Public
  124723. - License along with the GNU C Library; if not, write to the Free
  124724. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124725. - 02111-1307 USA. */
  124726. + License along with the GNU C Library; if not, see
  124727. + <http://www.gnu.org/licenses/>. */
  124728. #include <pthread.h>
  124729. #include <stdio.h>
  124730. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tsd2.c uClibc-git/test/nptl/tst-tsd2.c
  124731. --- uClibc-0.9.33.2/test/nptl/tst-tsd2.c 2012-05-15 09:20:09.000000000 +0200
  124732. +++ uClibc-git/test/nptl/tst-tsd2.c 2014-06-02 17:40:35.306719136 +0200
  124733. @@ -13,9 +13,8 @@
  124734. Lesser General Public License for more details.
  124735. You should have received a copy of the GNU Lesser General Public
  124736. - License along with the GNU C Library; if not, write to the Free
  124737. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124738. - 02111-1307 USA. */
  124739. + License along with the GNU C Library; if not, see
  124740. + <http://www.gnu.org/licenses/>. */
  124741. #include <pthread.h>
  124742. #include <stdio.h>
  124743. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tsd3.c uClibc-git/test/nptl/tst-tsd3.c
  124744. --- uClibc-0.9.33.2/test/nptl/tst-tsd3.c 2012-05-15 09:20:09.000000000 +0200
  124745. +++ uClibc-git/test/nptl/tst-tsd3.c 2014-06-02 17:40:35.306719136 +0200
  124746. @@ -13,9 +13,8 @@
  124747. Lesser General Public License for more details.
  124748. You should have received a copy of the GNU Lesser General Public
  124749. - License along with the GNU C Library; if not, write to the Free
  124750. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124751. - 02111-1307 USA. */
  124752. + License along with the GNU C Library; if not, see
  124753. + <http://www.gnu.org/licenses/>. */
  124754. #include <limits.h>
  124755. #include <pthread.h>
  124756. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tsd4.c uClibc-git/test/nptl/tst-tsd4.c
  124757. --- uClibc-0.9.33.2/test/nptl/tst-tsd4.c 2012-05-15 09:20:09.000000000 +0200
  124758. +++ uClibc-git/test/nptl/tst-tsd4.c 2014-06-02 17:40:35.306719136 +0200
  124759. @@ -13,9 +13,8 @@
  124760. Lesser General Public License for more details.
  124761. You should have received a copy of the GNU Lesser General Public
  124762. - License along with the GNU C Library; if not, write to the Free
  124763. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124764. - 02111-1307 USA. */
  124765. + License along with the GNU C Library; if not, see
  124766. + <http://www.gnu.org/licenses/>. */
  124767. #include <limits.h>
  124768. #include <pthread.h>
  124769. diff -Nur uClibc-0.9.33.2/test/nptl/tst-tsd5.c uClibc-git/test/nptl/tst-tsd5.c
  124770. --- uClibc-0.9.33.2/test/nptl/tst-tsd5.c 2012-05-15 09:20:09.000000000 +0200
  124771. +++ uClibc-git/test/nptl/tst-tsd5.c 2014-06-02 17:40:35.306719136 +0200
  124772. @@ -13,9 +13,8 @@
  124773. Lesser General Public License for more details.
  124774. You should have received a copy of the GNU Lesser General Public
  124775. - License along with the GNU C Library; if not, write to the Free
  124776. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124777. - 02111-1307 USA. */
  124778. + License along with the GNU C Library; if not, see
  124779. + <http://www.gnu.org/licenses/>. */
  124780. #include <pthread.h>
  124781. #include <stdio.h>
  124782. diff -Nur uClibc-0.9.33.2/test/nptl/tst-typesizes.c uClibc-git/test/nptl/tst-typesizes.c
  124783. --- uClibc-0.9.33.2/test/nptl/tst-typesizes.c 2012-05-15 09:20:09.000000000 +0200
  124784. +++ uClibc-git/test/nptl/tst-typesizes.c 2014-06-02 17:40:35.306719136 +0200
  124785. @@ -13,9 +13,8 @@
  124786. Lesser General Public License for more details.
  124787. You should have received a copy of the GNU Lesser General Public
  124788. - License along with the GNU C Library; if not, write to the Free
  124789. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124790. - 02111-1307 USA. */
  124791. + License along with the GNU C Library; if not, see
  124792. + <http://www.gnu.org/licenses/>. */
  124793. #include <stdio.h>
  124794. #include <pthreadP.h>
  124795. diff -Nur uClibc-0.9.33.2/test/nptl/tst-umask1.c uClibc-git/test/nptl/tst-umask1.c
  124796. --- uClibc-0.9.33.2/test/nptl/tst-umask1.c 2012-05-15 09:20:09.000000000 +0200
  124797. +++ uClibc-git/test/nptl/tst-umask1.c 2014-06-02 17:40:35.306719136 +0200
  124798. @@ -13,9 +13,8 @@
  124799. Lesser General Public License for more details.
  124800. You should have received a copy of the GNU Lesser General Public
  124801. - License along with the GNU C Library; if not, write to the Free
  124802. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124803. - 02111-1307 USA. */
  124804. + License along with the GNU C Library; if not, see
  124805. + <http://www.gnu.org/licenses/>. */
  124806. #include <fcntl.h>
  124807. #include <pthread.h>
  124808. diff -Nur uClibc-0.9.33.2/test/nptl/tst-unload.c uClibc-git/test/nptl/tst-unload.c
  124809. --- uClibc-0.9.33.2/test/nptl/tst-unload.c 2012-05-15 09:20:09.000000000 +0200
  124810. +++ uClibc-git/test/nptl/tst-unload.c 2014-06-02 17:40:35.306719136 +0200
  124811. @@ -13,9 +13,8 @@
  124812. Lesser General Public License for more details.
  124813. You should have received a copy of the GNU Lesser General Public
  124814. - License along with the GNU C Library; see the file COPYING.LIB. If not,
  124815. - write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  124816. - Boston, MA 02111-1307, USA. */
  124817. + License along with the GNU C Library; see the file COPYING.LIB. If
  124818. + not, see <http://www.gnu.org/licenses/>. */
  124819. #include <dlfcn.h>
  124820. #include <stdio.h>
  124821. diff -Nur uClibc-0.9.33.2/test/nptl/tst-vfork1.c uClibc-git/test/nptl/tst-vfork1.c
  124822. --- uClibc-0.9.33.2/test/nptl/tst-vfork1.c 2012-05-15 09:20:09.000000000 +0200
  124823. +++ uClibc-git/test/nptl/tst-vfork1.c 2014-06-02 17:40:35.306719136 +0200
  124824. @@ -14,9 +14,8 @@
  124825. Lesser General Public License for more details.
  124826. You should have received a copy of the GNU Lesser General Public
  124827. - License along with the GNU C Library; if not, write to the Free
  124828. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124829. - 02111-1307 USA. */
  124830. + License along with the GNU C Library; if not, see
  124831. + <http://www.gnu.org/licenses/>. */
  124832. #include <errno.h>
  124833. #include <stdio.h>
  124834. diff -Nur uClibc-0.9.33.2/test/nptl/tst-vfork1x.c uClibc-git/test/nptl/tst-vfork1x.c
  124835. --- uClibc-0.9.33.2/test/nptl/tst-vfork1x.c 2012-05-15 09:20:09.000000000 +0200
  124836. +++ uClibc-git/test/nptl/tst-vfork1x.c 2014-06-02 17:40:35.306719136 +0200
  124837. @@ -14,9 +14,8 @@
  124838. Lesser General Public License for more details.
  124839. You should have received a copy of the GNU Lesser General Public
  124840. - License along with the GNU C Library; if not, write to the Free
  124841. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124842. - 02111-1307 USA. */
  124843. + License along with the GNU C Library; if not, see
  124844. + <http://www.gnu.org/licenses/>. */
  124845. #include <errno.h>
  124846. #include <stdio.h>
  124847. diff -Nur uClibc-0.9.33.2/test/nptl/tst-vfork2.c uClibc-git/test/nptl/tst-vfork2.c
  124848. --- uClibc-0.9.33.2/test/nptl/tst-vfork2.c 2012-05-15 09:20:09.000000000 +0200
  124849. +++ uClibc-git/test/nptl/tst-vfork2.c 2014-06-02 17:40:35.306719136 +0200
  124850. @@ -14,9 +14,8 @@
  124851. Lesser General Public License for more details.
  124852. You should have received a copy of the GNU Lesser General Public
  124853. - License along with the GNU C Library; if not, write to the Free
  124854. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124855. - 02111-1307 USA. */
  124856. + License along with the GNU C Library; if not, see
  124857. + <http://www.gnu.org/licenses/>. */
  124858. #include <errno.h>
  124859. #include <signal.h>
  124860. diff -Nur uClibc-0.9.33.2/test/nptl/tst-vfork2x.c uClibc-git/test/nptl/tst-vfork2x.c
  124861. --- uClibc-0.9.33.2/test/nptl/tst-vfork2x.c 2012-05-15 09:20:09.000000000 +0200
  124862. +++ uClibc-git/test/nptl/tst-vfork2x.c 2014-06-02 17:40:35.306719136 +0200
  124863. @@ -14,9 +14,8 @@
  124864. Lesser General Public License for more details.
  124865. You should have received a copy of the GNU Lesser General Public
  124866. - License along with the GNU C Library; if not, write to the Free
  124867. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124868. - 02111-1307 USA. */
  124869. + License along with the GNU C Library; if not, see
  124870. + <http://www.gnu.org/licenses/>. */
  124871. #include <errno.h>
  124872. #include <signal.h>
  124873. diff -Nur uClibc-0.9.33.2/test/pthread/Makefile uClibc-git/test/pthread/Makefile
  124874. --- uClibc-0.9.33.2/test/pthread/Makefile 2012-05-15 09:20:09.000000000 +0200
  124875. +++ uClibc-git/test/pthread/Makefile 2014-06-02 17:40:35.310719157 +0200
  124876. @@ -2,6 +2,7 @@
  124877. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  124878. top_builddir=../../
  124879. +top_srcdir=../../
  124880. include ../Rules.mak
  124881. -include Makefile.in
  124882. include ../Test.mak
  124883. diff -Nur uClibc-0.9.33.2/test/pwd_grp/Makefile uClibc-git/test/pwd_grp/Makefile
  124884. --- uClibc-0.9.33.2/test/pwd_grp/Makefile 2012-05-15 09:20:09.000000000 +0200
  124885. +++ uClibc-git/test/pwd_grp/Makefile 2014-06-02 17:40:35.310719157 +0200
  124886. @@ -2,6 +2,7 @@
  124887. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  124888. top_builddir=../../
  124889. +top_srcdir=../../
  124890. include ../Rules.mak
  124891. -include Makefile.in
  124892. include ../Test.mak
  124893. diff -Nur uClibc-0.9.33.2/test/regex/Makefile uClibc-git/test/regex/Makefile
  124894. --- uClibc-0.9.33.2/test/regex/Makefile 2012-05-15 09:20:09.000000000 +0200
  124895. +++ uClibc-git/test/regex/Makefile 2014-06-02 17:40:35.310719157 +0200
  124896. @@ -2,6 +2,7 @@
  124897. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  124898. top_builddir=../../
  124899. +top_srcdir=../../
  124900. include ../Rules.mak
  124901. -include Makefile.in
  124902. include ../Test.mak
  124903. diff -Nur uClibc-0.9.33.2/test/regex/tst-regexloc.c uClibc-git/test/regex/tst-regexloc.c
  124904. --- uClibc-0.9.33.2/test/regex/tst-regexloc.c 2012-05-15 09:20:09.000000000 +0200
  124905. +++ uClibc-git/test/regex/tst-regexloc.c 2014-06-02 17:40:35.310719157 +0200
  124906. @@ -12,9 +12,8 @@
  124907. Lesser General Public License for more details.
  124908. You should have received a copy of the GNU Lesser General Public
  124909. - License along with the GNU C Library; if not, write to the Free
  124910. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124911. - 02111-1307 USA. */
  124912. + License along with the GNU C Library; if not, see
  124913. + <http://www.gnu.org/licenses/>. */
  124914. #include <sys/types.h>
  124915. #include <regex.h>
  124916. diff -Nur uClibc-0.9.33.2/test/rpc/Makefile uClibc-git/test/rpc/Makefile
  124917. --- uClibc-0.9.33.2/test/rpc/Makefile 2012-05-15 09:20:09.000000000 +0200
  124918. +++ uClibc-git/test/rpc/Makefile 2014-06-02 17:40:35.310719157 +0200
  124919. @@ -2,6 +2,7 @@
  124920. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  124921. top_builddir=../../
  124922. +top_srcdir=../../
  124923. include ../Rules.mak
  124924. -include Makefile.in
  124925. include ../Test.mak
  124926. diff -Nur uClibc-0.9.33.2/test/Rules.mak uClibc-git/test/Rules.mak
  124927. --- uClibc-0.9.33.2/test/Rules.mak 2012-05-15 09:20:09.000000000 +0200
  124928. +++ uClibc-git/test/Rules.mak 2014-06-02 17:40:35.206718582 +0200
  124929. @@ -8,18 +8,34 @@
  124930. .SUFFIXES:
  124931. top_builddir ?= ../
  124932. +abs_top_builddir ?= $(shell cd $(top_builddir); pwd)/
  124933. TESTDIR=$(top_builddir)test/
  124934. -include $(top_builddir)/Rules.mak
  124935. -ifndef TEST_INSTALLED_UCLIBC
  124936. +include $(top_srcdir)Rules.mak
  124937. +ifeq ($(filter $(clean_targets) CLEAN_%,$(MAKECMDGOALS)),)
  124938. +ifeq ($(HAVE_DOT_CONFIG),)
  124939. +$(error no HAVE_DOT_CONFIG, failed to read .config)
  124940. +endif
  124941. +endif
  124942. +
  124943. ifdef UCLIBC_LDSO
  124944. ifeq (,$(findstring /,$(UCLIBC_LDSO)))
  124945. -UCLIBC_LDSO := $(top_builddir)lib/$(UCLIBC_LDSO)
  124946. +UCLIBC_LDSO := $(UCLIBC_LDSO)
  124947. +else
  124948. +UCLIBC_LDSO := $(notdir $(UCLIBC_LDSO))
  124949. endif
  124950. else
  124951. -UCLIBC_LDSO := $(firstword $(wildcard $(top_builddir)lib/ld*))
  124952. +UCLIBC_LDSO := $(notdir $(firstword $(wildcard $(top_builddir)lib/ld*)))
  124953. endif
  124954. +ifndef TEST_INSTALLED_UCLIBC
  124955. +ifeq ($(LDSO_SAFE_RUNPATH),y)
  124956. +UCLIBC_PATH := $(abs_top_builddir)lib
  124957. +else
  124958. +UCLIBC_PATH := $(top_builddir)lib
  124959. +endif
  124960. +else
  124961. +UCLIBC_PATH := $(RUNTIME_PREFIX)$(MULTILIB_DIR)
  124962. endif
  124963. #--------------------------------------------------------
  124964. # Ensure consistent sort order, 'gcc -print-search-dirs' behavior, etc.
  124965. @@ -81,15 +97,14 @@
  124966. LDFLAGS += -Wl,-static -static-libgcc
  124967. endif
  124968. -LDFLAGS += -B$(top_builddir)lib -Wl,-rpath,$(top_builddir)lib -Wl,-rpath-link,$(top_builddir)lib
  124969. -UCLIBC_LDSO_ABSPATH=$(shell pwd)
  124970. -ifdef TEST_INSTALLED_UCLIBC
  124971. -LDFLAGS += -Wl,-rpath,./
  124972. -UCLIBC_LDSO_ABSPATH=$(RUNTIME_PREFIX)$(MULTILIB_DIR)
  124973. +ifndef TEST_INSTALLED_UCLIBC
  124974. +LDFLAGS += -B$(UCLIBC_PATH) -Wl,-rpath,$(UCLIBC_PATH):$(shell pwd) -Wl,-rpath-link,$(UCLIBC_PATH):$(shell pwd)
  124975. +else
  124976. +LDFLAGS += -Wl,-rpath,$(shell pwd)
  124977. endif
  124978. ifeq ($(findstring -static,$(LDFLAGS)),)
  124979. -LDFLAGS += -Wl,--dynamic-linker,$(UCLIBC_LDSO_ABSPATH)/$(UCLIBC_LDSO)
  124980. +LDFLAGS += -Wl,--dynamic-linker,$(UCLIBC_PATH)/$(UCLIBC_LDSO)
  124981. endif
  124982. ifeq ($(LDSO_GNU_HASH_SUPPORT),y)
  124983. diff -Nur uClibc-0.9.33.2/test/setjmp/bug269-setjmp.c uClibc-git/test/setjmp/bug269-setjmp.c
  124984. --- uClibc-0.9.33.2/test/setjmp/bug269-setjmp.c 2012-05-15 09:20:09.000000000 +0200
  124985. +++ uClibc-git/test/setjmp/bug269-setjmp.c 2014-06-02 17:40:35.322719224 +0200
  124986. @@ -12,9 +12,8 @@
  124987. Lesser General Public License for more details.
  124988. You should have received a copy of the GNU Lesser General Public
  124989. - License along with the GNU C Library; if not, write to the Free
  124990. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  124991. - 02111-1307 USA. */ ;
  124992. + License along with the GNU C Library; If not, see
  124993. + <http://www.gnu.org/licenses/>. */
  124994. /* Test case for Bugzilla # 269 */
  124995. diff -Nur uClibc-0.9.33.2/test/setjmp/Makefile uClibc-git/test/setjmp/Makefile
  124996. --- uClibc-0.9.33.2/test/setjmp/Makefile 2012-05-15 09:20:09.000000000 +0200
  124997. +++ uClibc-git/test/setjmp/Makefile 2014-06-02 17:40:35.314719180 +0200
  124998. @@ -2,6 +2,7 @@
  124999. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125000. top_builddir=../../
  125001. +top_srcdir=../../
  125002. include ../Rules.mak
  125003. -include Makefile.in
  125004. include ../Test.mak
  125005. diff -Nur uClibc-0.9.33.2/test/setjmp/tst-setjmp.c uClibc-git/test/setjmp/tst-setjmp.c
  125006. --- uClibc-0.9.33.2/test/setjmp/tst-setjmp.c 2012-05-15 09:20:09.000000000 +0200
  125007. +++ uClibc-git/test/setjmp/tst-setjmp.c 2014-06-02 17:40:35.322719224 +0200
  125008. @@ -12,9 +12,8 @@
  125009. Lesser General Public License for more details.
  125010. You should have received a copy of the GNU Lesser General Public
  125011. - License along with the GNU C Library; if not, write to the Free
  125012. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125013. - 02111-1307 USA. */
  125014. + License along with the GNU C Library; if not, see
  125015. + <http://www.gnu.org/licenses/>. */
  125016. #include <stdio.h>
  125017. #include <setjmp.h>
  125018. diff -Nur uClibc-0.9.33.2/test/signal/Makefile uClibc-git/test/signal/Makefile
  125019. --- uClibc-0.9.33.2/test/signal/Makefile 2012-05-15 09:20:09.000000000 +0200
  125020. +++ uClibc-git/test/signal/Makefile 2014-06-02 17:40:35.322719224 +0200
  125021. @@ -2,6 +2,7 @@
  125022. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125023. top_builddir=../../
  125024. +top_srcdir=../../
  125025. include ../Rules.mak
  125026. -include Makefile.in
  125027. include ../Test.mak
  125028. diff -Nur uClibc-0.9.33.2/test/signal/tst-raise.c uClibc-git/test/signal/tst-raise.c
  125029. --- uClibc-0.9.33.2/test/signal/tst-raise.c 2012-05-15 09:20:09.000000000 +0200
  125030. +++ uClibc-git/test/signal/tst-raise.c 2014-06-02 17:40:35.322719224 +0200
  125031. @@ -13,9 +13,8 @@
  125032. Lesser General Public License for more details.
  125033. You should have received a copy of the GNU Lesser General Public
  125034. - License along with the GNU C Library; if not, write to the Free
  125035. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125036. - 02111-1307 USA. */
  125037. + License along with the GNU C Library; if not, see
  125038. + <http://www.gnu.org/licenses/>. */
  125039. #include <errno.h>
  125040. #include <string.h>
  125041. diff -Nur uClibc-0.9.33.2/test/signal/tst-signalfd.c uClibc-git/test/signal/tst-signalfd.c
  125042. --- uClibc-0.9.33.2/test/signal/tst-signalfd.c 1970-01-01 01:00:00.000000000 +0100
  125043. +++ uClibc-git/test/signal/tst-signalfd.c 2014-06-02 17:40:35.350719379 +0200
  125044. @@ -0,0 +1,63 @@
  125045. +/* vi: set sw=4 ts=4 sts=4: */
  125046. +/*
  125047. + * signalfd test for uClibc
  125048. + * Copyright (C) 2012 by Kevin Cernekee <cernekee@gmail.com>
  125049. + *
  125050. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125051. + */
  125052. +
  125053. +#include <stdio.h>
  125054. +#include <stdlib.h>
  125055. +#include <string.h>
  125056. +#include <unistd.h>
  125057. +#include <errno.h>
  125058. +#include <error.h>
  125059. +#include <signal.h>
  125060. +#include <sys/signalfd.h>
  125061. +#include <sys/fcntl.h>
  125062. +
  125063. +static int
  125064. +do_test(void)
  125065. +{
  125066. + int fd, ret, result = 0;
  125067. + struct signalfd_siginfo ssi;
  125068. + sigset_t mask;
  125069. +
  125070. + sigemptyset(&mask);
  125071. + sigaddset(&mask, SIGUSR1);
  125072. + sigprocmask(SIG_BLOCK, &mask, NULL);
  125073. +
  125074. + fd = signalfd(-1, &mask, SFD_NONBLOCK);
  125075. + if (fd < 0) {
  125076. + printf("signalfd() failed: %s\n", strerror(errno));
  125077. + result = 1;
  125078. + }
  125079. +
  125080. + /* this should return immediately with EAGAIN due to SFD_NONBLOCK */
  125081. + memset(&ssi, 0, sizeof(ssi));
  125082. + ret = read(fd, &ssi, sizeof(ssi));
  125083. + if (ret != -1 || errno != EAGAIN) {
  125084. + error(0, 0, "first read() returned %d", ret);
  125085. + result = 1;
  125086. + }
  125087. +
  125088. + kill(getpid(), SIGUSR1);
  125089. +
  125090. + /* this should return a struct ssi indicating receipt of SIGUSR1 */
  125091. + ret = read(fd, &ssi, sizeof(ssi));
  125092. + if (ret != sizeof(ssi)) {
  125093. + error(0, 0, "second read() returned %d", ret);
  125094. + result = 1;
  125095. + }
  125096. +
  125097. + if (ssi.ssi_signo != SIGUSR1) {
  125098. + error(0, 0, "ssi contains bogus signo");
  125099. + result = 1;
  125100. + }
  125101. +
  125102. + return result;
  125103. +}
  125104. +
  125105. +#define TIMEOUT 5
  125106. +#define TEST_FUNCTION do_test ()
  125107. +#include "../test-skeleton.c"
  125108. diff -Nur uClibc-0.9.33.2/test/signal/tst-sigsimple.c uClibc-git/test/signal/tst-sigsimple.c
  125109. --- uClibc-0.9.33.2/test/signal/tst-sigsimple.c 2012-05-15 09:20:09.000000000 +0200
  125110. +++ uClibc-git/test/signal/tst-sigsimple.c 2014-06-02 17:40:35.350719379 +0200
  125111. @@ -13,9 +13,8 @@
  125112. Lesser General Public License for more details.
  125113. You should have received a copy of the GNU Lesser General Public
  125114. - License along with the GNU C Library; if not, write to the Free
  125115. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125116. - 02111-1307 USA. */
  125117. + License along with the GNU C Library; if not, see
  125118. + <http://www.gnu.org/licenses/>. */
  125119. #include <errno.h>
  125120. #include <signal.h>
  125121. diff -Nur uClibc-0.9.33.2/test/silly/Makefile uClibc-git/test/silly/Makefile
  125122. --- uClibc-0.9.33.2/test/silly/Makefile 2012-05-15 09:20:09.000000000 +0200
  125123. +++ uClibc-git/test/silly/Makefile 2014-06-02 17:40:35.350719379 +0200
  125124. @@ -2,6 +2,7 @@
  125125. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125126. top_builddir=../../
  125127. +top_srcdir=../../
  125128. include ../Rules.mak
  125129. -include Makefile.in
  125130. include ../Test.mak
  125131. diff -Nur uClibc-0.9.33.2/test/stat/Makefile uClibc-git/test/stat/Makefile
  125132. --- uClibc-0.9.33.2/test/stat/Makefile 2012-05-15 09:20:09.000000000 +0200
  125133. +++ uClibc-git/test/stat/Makefile 2014-06-02 17:40:35.354719401 +0200
  125134. @@ -2,6 +2,7 @@
  125135. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125136. top_builddir=../../
  125137. +top_srcdir=../../
  125138. include ../Rules.mak
  125139. -include Makefile.in
  125140. include ../Test.mak
  125141. diff -Nur uClibc-0.9.33.2/test/stdio/Makefile uClibc-git/test/stdio/Makefile
  125142. --- uClibc-0.9.33.2/test/stdio/Makefile 2012-05-15 09:20:09.000000000 +0200
  125143. +++ uClibc-git/test/stdio/Makefile 2014-06-02 17:40:35.354719401 +0200
  125144. @@ -2,6 +2,7 @@
  125145. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125146. top_builddir=../../
  125147. +top_srcdir=../../
  125148. include ../Rules.mak
  125149. -include Makefile.in
  125150. include ../Test.mak
  125151. diff -Nur uClibc-0.9.33.2/test/stdlib/Makefile uClibc-git/test/stdlib/Makefile
  125152. --- uClibc-0.9.33.2/test/stdlib/Makefile 2012-05-15 09:20:09.000000000 +0200
  125153. +++ uClibc-git/test/stdlib/Makefile 2014-06-02 17:40:35.354719401 +0200
  125154. @@ -2,6 +2,7 @@
  125155. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125156. top_builddir=../../
  125157. +top_srcdir=../../
  125158. include ../Rules.mak
  125159. -include Makefile.in
  125160. include ../Test.mak
  125161. diff -Nur uClibc-0.9.33.2/test/stdlib/testarc4random.c uClibc-git/test/stdlib/testarc4random.c
  125162. --- uClibc-0.9.33.2/test/stdlib/testarc4random.c 1970-01-01 01:00:00.000000000 +0100
  125163. +++ uClibc-git/test/stdlib/testarc4random.c 2014-06-02 17:40:35.354719401 +0200
  125164. @@ -0,0 +1,12 @@
  125165. +#include <stdlib.h>
  125166. +#include <stdio.h>
  125167. +
  125168. +int main(void)
  125169. +{
  125170. +#ifdef __UCLIBC_HAS_ARC4RANDOM__
  125171. + int random_number;
  125172. + random_number = arc4random() % 65536;
  125173. + printf("%d\n", random_number);
  125174. +#endif
  125175. + return 0;
  125176. +}
  125177. diff -Nur uClibc-0.9.33.2/test/stdlib/test-canon2.c uClibc-git/test/stdlib/test-canon2.c
  125178. --- uClibc-0.9.33.2/test/stdlib/test-canon2.c 2012-05-15 09:20:09.000000000 +0200
  125179. +++ uClibc-git/test/stdlib/test-canon2.c 2014-06-02 17:40:35.354719401 +0200
  125180. @@ -14,9 +14,8 @@
  125181. Lesser General Public License for more details.
  125182. You should have received a copy of the GNU Lesser General Public
  125183. - License along with the GNU C Library; if not, write to the Free
  125184. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125185. - 02111-1307 USA. */
  125186. + License along with the GNU C Library; if not, see
  125187. + <http://www.gnu.org/licenses/>. */
  125188. #include <errno.h>
  125189. #include <string.h>
  125190. diff -Nur uClibc-0.9.33.2/test/stdlib/test-canon.c uClibc-git/test/stdlib/test-canon.c
  125191. --- uClibc-0.9.33.2/test/stdlib/test-canon.c 2012-05-15 09:20:09.000000000 +0200
  125192. +++ uClibc-git/test/stdlib/test-canon.c 2014-06-02 17:40:35.354719401 +0200
  125193. @@ -15,9 +15,8 @@
  125194. Lesser General Public License for more details.
  125195. You should have received a copy of the GNU Lesser General Public
  125196. - License along with the GNU C Library; if not, write to the Free
  125197. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125198. - 02111-1307 USA. */
  125199. + License along with the GNU C Library; if not, see
  125200. + <http://www.gnu.org/licenses/>. */
  125201. /* This file must be run from within a directory called "stdlib". */
  125202. diff -Nur uClibc-0.9.33.2/test/string/Makefile uClibc-git/test/string/Makefile
  125203. --- uClibc-0.9.33.2/test/string/Makefile 2012-05-15 09:20:09.000000000 +0200
  125204. +++ uClibc-git/test/string/Makefile 2014-06-02 17:40:35.354719401 +0200
  125205. @@ -2,6 +2,7 @@
  125206. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125207. top_builddir=../../
  125208. +top_srcdir=../../
  125209. include ../Rules.mak
  125210. -include Makefile.in
  125211. include ../Test.mak
  125212. diff -Nur uClibc-0.9.33.2/test/string/stratcliff.c uClibc-git/test/string/stratcliff.c
  125213. --- uClibc-0.9.33.2/test/string/stratcliff.c 2012-05-15 09:20:09.000000000 +0200
  125214. +++ uClibc-git/test/string/stratcliff.c 2014-06-02 17:40:35.354719401 +0200
  125215. @@ -14,9 +14,8 @@
  125216. Lesser General Public License for more details.
  125217. You should have received a copy of the GNU Lesser General Public
  125218. - License along with the GNU C Library; if not, write to the Free
  125219. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125220. - 02111-1307 USA. */
  125221. + License along with the GNU C Library; if not, see
  125222. + <http://www.gnu.org/licenses/>. */
  125223. #define _GNU_SOURCE 1
  125224. diff -Nur uClibc-0.9.33.2/test/string/testcopy.c uClibc-git/test/string/testcopy.c
  125225. --- uClibc-0.9.33.2/test/string/testcopy.c 2012-05-15 09:20:09.000000000 +0200
  125226. +++ uClibc-git/test/string/testcopy.c 2014-06-02 17:40:35.354719401 +0200
  125227. @@ -13,9 +13,8 @@
  125228. Lesser General Public License for more details.
  125229. You should have received a copy of the GNU Lesser General Public
  125230. - License along with the GNU C Library; if not, write to the Free
  125231. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125232. - 02111-1307 USA. */
  125233. + License along with the GNU C Library; if not, see
  125234. + <http://www.gnu.org/licenses/>. */
  125235. #include <stdlib.h>
  125236. #include <stdio.h>
  125237. diff -Nur uClibc-0.9.33.2/test/string/tester.c uClibc-git/test/string/tester.c
  125238. --- uClibc-0.9.33.2/test/string/tester.c 2012-05-15 09:20:09.000000000 +0200
  125239. +++ uClibc-git/test/string/tester.c 2014-06-02 17:40:35.354719401 +0200
  125240. @@ -13,9 +13,8 @@
  125241. Lesser General Public License for more details.
  125242. You should have received a copy of the GNU Lesser General Public
  125243. - License along with the GNU C Library; if not, write to the Free
  125244. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125245. - 02111-1307 USA. */
  125246. + License along with the GNU C Library; if not, see
  125247. + <http://www.gnu.org/licenses/>. */
  125248. #ifndef _GNU_SOURCE
  125249. #define _GNU_SOURCE
  125250. diff -Nur uClibc-0.9.33.2/test/string/test-ffs.c uClibc-git/test/string/test-ffs.c
  125251. --- uClibc-0.9.33.2/test/string/test-ffs.c 2012-05-15 09:20:09.000000000 +0200
  125252. +++ uClibc-git/test/string/test-ffs.c 2014-06-02 17:40:35.354719401 +0200
  125253. @@ -14,9 +14,8 @@
  125254. Lesser General Public License for more details.
  125255. You should have received a copy of the GNU Lesser General Public
  125256. - License along with the GNU C Library; if not, write to the Free
  125257. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125258. - 02111-1307 USA. */
  125259. + License along with the GNU C Library; if not, see
  125260. + <http://www.gnu.org/licenses/>. */
  125261. #include <stdlib.h>
  125262. #include <stdio.h>
  125263. diff -Nur uClibc-0.9.33.2/test/string/tst-bswap.c uClibc-git/test/string/tst-bswap.c
  125264. --- uClibc-0.9.33.2/test/string/tst-bswap.c 2012-05-15 09:20:09.000000000 +0200
  125265. +++ uClibc-git/test/string/tst-bswap.c 2014-06-02 17:40:35.354719401 +0200
  125266. @@ -13,9 +13,8 @@
  125267. Lesser General Public License for more details.
  125268. You should have received a copy of the GNU Lesser General Public
  125269. - License along with the GNU C Library; if not, write to the Free
  125270. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125271. - 02111-1307 USA. */
  125272. + License along with the GNU C Library; if not, see
  125273. + <http://www.gnu.org/licenses/>. */
  125274. #include <byteswap.h>
  125275. #include <stdio.h>
  125276. diff -Nur uClibc-0.9.33.2/test/string/tst-inlcall.c uClibc-git/test/string/tst-inlcall.c
  125277. --- uClibc-0.9.33.2/test/string/tst-inlcall.c 2012-05-15 09:20:09.000000000 +0200
  125278. +++ uClibc-git/test/string/tst-inlcall.c 2014-06-02 17:40:35.354719401 +0200
  125279. @@ -13,9 +13,8 @@
  125280. Lesser General Public License for more details.
  125281. You should have received a copy of the GNU Lesser General Public
  125282. - License along with the GNU C Library; if not, write to the Free
  125283. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125284. - 02111-1307 USA. */
  125285. + License along with the GNU C Library; if not, see
  125286. + <http://www.gnu.org/licenses/>. */
  125287. #ifndef _GNU_SOURCE
  125288. #define _GNU_SOURCE
  125289. diff -Nur uClibc-0.9.33.2/test/termios/Makefile uClibc-git/test/termios/Makefile
  125290. --- uClibc-0.9.33.2/test/termios/Makefile 2012-05-15 09:20:09.000000000 +0200
  125291. +++ uClibc-git/test/termios/Makefile 2014-06-02 17:40:35.354719401 +0200
  125292. @@ -2,6 +2,7 @@
  125293. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125294. top_builddir=../../
  125295. +top_srcdir=../../
  125296. include ../Rules.mak
  125297. -include Makefile.in
  125298. include ../Test.mak
  125299. diff -Nur uClibc-0.9.33.2/test/Test.mak uClibc-git/test/Test.mak
  125300. --- uClibc-0.9.33.2/test/Test.mak 2012-05-15 09:20:09.000000000 +0200
  125301. +++ uClibc-git/test/Test.mak 2014-06-02 17:40:35.206718582 +0200
  125302. @@ -35,7 +35,9 @@
  125303. CLEAN_TARGETS := $(U_TARGETS) $(G_TARGETS)
  125304. CLEAN_TARGETS += $(TESTS_DISABLED) $(addsuffix _glibc,$(TESTS_DISABLED)) $(GLIBC_TESTS_DISABLED)
  125305. COMPILE_TARGETS := $(TARGETS)
  125306. -RUN_TARGETS := $(addsuffix .exe,$(TARGETS))
  125307. +# We sort the targets so uClibc and host-libc tests are run adjacent
  125308. +RUN_TARGETS := $(sort $(addsuffix .exe,$(TARGETS)))
  125309. +COMPILE_TARGETS := $(sort $(COMPILE_TARGETS))
  125310. # provide build rules even for disabled tests:
  125311. U_TARGETS += $(TESTS_DISABLED)
  125312. G_TARGETS += $(addsuffix _glibc,$(TESTS_DISABLED)) $(GLIBC_TESTS_DISABLED)
  125313. @@ -99,13 +101,15 @@
  125314. $(U_TARGETS): $(U_TARGET_SRCS) $(MAKE_SRCS)
  125315. $(showlink)
  125316. - $(Q)$(CC) $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$(notdir $(CURDIR))) $(CFLAGS_$@) -c $@.c -o $@.o
  125317. + $(Q)$(CC) $(filter-out $(CFLAGS-OMIT-$@),$(CFLAGS)) $(EXTRA_CFLAGS) $(CFLAGS_$(notdir $(CURDIR))) $(CFLAGS_$@) -c $@.c -o $@.o
  125318. $(Q)$(CC) $(LDFLAGS) $@.o -o $@ $(EXTRA_LDFLAGS) $(LDFLAGS_$@)
  125319. $(G_TARGETS): $(U_TARGET_SRCS) $(MAKE_SRCS)
  125320. $(showlink)
  125321. - $(Q)$(HOSTCC) $(HOST_CFLAGS) $(CFLAGS_$(notdir $(CURDIR))) $(CFLAGS_$(patsubst %_glibc,%,$@)) -c $(patsubst %_glibc,%,$@).c -o $@.o
  125322. - $(Q)$(HOSTCC) $(HOST_LDFLAGS) $@.o -o $@ $(EXTRA_LDFLAGS) $(LDFLAGS_$(patsubst %_glibc,%,$@))
  125323. + $(Q)$(HOSTCC) $(filter-out $(HOST_CFLAGS-OMIT-$(patsubst %_glibc,%,$@)),$(HOST_CFLAGS)) \
  125324. + $(CFLAGS_$(notdir $(CURDIR))) $(CFLAGS_$(patsubst %_glibc,%,$@)) \
  125325. + -c $(patsubst %_glibc,%,$@).c -o $@.o
  125326. + $(Q)$(HOSTCC) $(HOST_LDFLAGS) $@.o -o $@ $(EXTRA_LDFLAGS) $(LDFLAGS_$(patsubst %_glibc,%,$@)) $(LDFLAGS_$@)
  125327. shell_%:
  125328. @@ -117,9 +121,11 @@
  125329. %.so: %.c
  125330. $(showlink)
  125331. $(Q)$(CC) \
  125332. - $(CFLAGS) $(EXTRA_CFLAGS) $(CFLAGS_$(patsubst %_glibc,%,$@)) \
  125333. + $(filter-out $(CFLAGS-OMIT-$<),$(CFLAGS)) $(EXTRA_CFLAGS) \
  125334. + $(CFLAGS_$(patsubst %_glibc,%,$@)) \
  125335. -fPIC -shared $< -o $@ -Wl,-soname,$@ \
  125336. - $(LDFLAGS) $(EXTRA_LIBS) $(LDFLAGS_$(patsubst %_glibc,%,$@))
  125337. + $(filter-out $(LDFLAGS-OMIT-$<),$(LDFLAGS)) $(EXTRA_LIBS) \
  125338. + $(LDFLAGS_$(patsubst %_glibc,%,$@))
  125339. clean:
  125340. $(showclean)
  125341. diff -Nur uClibc-0.9.33.2/test/test-skeleton.c uClibc-git/test/test-skeleton.c
  125342. --- uClibc-0.9.33.2/test/test-skeleton.c 2012-05-15 09:20:09.000000000 +0200
  125343. +++ uClibc-git/test/test-skeleton.c 2014-06-02 17:40:35.354719401 +0200
  125344. @@ -14,9 +14,8 @@
  125345. Lesser General Public License for more details.
  125346. You should have received a copy of the GNU Lesser General Public
  125347. - License along with the GNU C Library; if not, write to the Free
  125348. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125349. - 02111-1307 USA. */
  125350. + License along with the GNU C Library; if not, see
  125351. + <http://www.gnu.org/licenses/>. */
  125352. #include <errno.h>
  125353. #include <getopt.h>
  125354. @@ -104,7 +103,7 @@
  125355. create_temp_file (const char *base, char **filename)
  125356. {
  125357. char *fname;
  125358. - int fd;
  125359. + int _fd;
  125360. fname = (char *) malloc (strlen (test_dir) + 1 + strlen (base)
  125361. + sizeof ("XXXXXX"));
  125362. @@ -115,8 +114,8 @@
  125363. }
  125364. strcpy (stpcpy (stpcpy (stpcpy (fname, test_dir), "/"), base), "XXXXXX");
  125365. - fd = mkstemp (fname);
  125366. - if (fd == -1)
  125367. + _fd = mkstemp (fname);
  125368. + if (_fd == -1)
  125369. {
  125370. printf ("cannot open temporary file '%s': %s\n", fname, strerror(errno));
  125371. free (fname);
  125372. @@ -127,13 +126,13 @@
  125373. if (filename != NULL)
  125374. *filename = fname;
  125375. - return fd;
  125376. + return _fd;
  125377. }
  125378. /* Timeout handler. We kill the child and exit with an error. */
  125379. static void
  125380. __attribute__ ((noreturn))
  125381. -timeout_handler (int sig __attribute__ ((unused)))
  125382. +signal_handler (int sig __attribute__ ((unused)))
  125383. {
  125384. int killed = 0;
  125385. int status;
  125386. @@ -168,6 +167,12 @@
  125387. CLEANUP_HANDLER;
  125388. #endif
  125389. + if (sig == SIGINT)
  125390. + {
  125391. + signal (sig, SIG_DFL);
  125392. + raise (sig);
  125393. + }
  125394. +
  125395. /* If we expected this signal: good! */
  125396. #ifdef EXPECTED_SIGNAL
  125397. if (EXPECTED_SIGNAL == SIGALRM)
  125398. @@ -190,6 +195,7 @@
  125399. exit (1);
  125400. }
  125401. +#ifdef __XXX_HANDLE_CTRL_C
  125402. static void
  125403. __attribute__ ((noreturn))
  125404. handler_killpid(int sig)
  125405. @@ -199,6 +205,7 @@
  125406. raise(sig); /* kill ourself */
  125407. _exit(128 + sig); /* paranoia */
  125408. }
  125409. +#endif
  125410. /* We provide the entry point here. */
  125411. int
  125412. @@ -345,18 +352,23 @@
  125413. exit (1);
  125414. }
  125415. +#ifdef __XXX_HANDLE_CTRL_C
  125416. signal (SIGTERM, handler_killpid);
  125417. signal (SIGINT, handler_killpid);
  125418. signal (SIGQUIT, handler_killpid);
  125419. +#endif
  125420. /* Set timeout. */
  125421. #ifndef TIMEOUT
  125422. /* Default timeout is two seconds. */
  125423. # define TIMEOUT 2
  125424. #endif
  125425. - signal (SIGALRM, timeout_handler);
  125426. + signal (SIGALRM, signal_handler);
  125427. alarm (TIMEOUT * timeoutfactor);
  125428. + /* Make sure we clean up if the wrapper gets interrupted. */
  125429. + signal (SIGINT, signal_handler);
  125430. +
  125431. /* Wait for the regular termination. */
  125432. termpid = TEMP_FAILURE_RETRY (waitpid (pid, &status, 0));
  125433. if (termpid == -1)
  125434. diff -Nur uClibc-0.9.33.2/test/testsuite.h uClibc-git/test/testsuite.h
  125435. --- uClibc-0.9.33.2/test/testsuite.h 2012-05-15 09:20:09.000000000 +0200
  125436. +++ uClibc-git/test/testsuite.h 2014-06-02 17:40:35.354719401 +0200
  125437. @@ -27,11 +27,12 @@
  125438. {
  125439. failures++;
  125440. - printf("\nFAILED TEST %lu: \n\t%s\n", (unsigned long)test_number, command);
  125441. + printf("\nFAILED TEST %lu: \n\t%s\nResult: %d",
  125442. + (unsigned long)test_number, command, result);
  125443. printf("AT LINE: %d, FILE: %s\n\n", line, file);
  125444. }
  125445. -void success_msg(int result, const char* command)
  125446. +void success_msg(int result __attribute__((unused)), const char* command __attribute__((unused)))
  125447. {
  125448. #if 0
  125449. printf("passed test: %s == 0\n", command);
  125450. diff -Nur uClibc-0.9.33.2/test/time/Makefile uClibc-git/test/time/Makefile
  125451. --- uClibc-0.9.33.2/test/time/Makefile 2012-05-15 09:20:09.000000000 +0200
  125452. +++ uClibc-git/test/time/Makefile 2014-06-02 17:40:35.390719601 +0200
  125453. @@ -2,6 +2,7 @@
  125454. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125455. top_builddir=../../
  125456. +top_srcdir=../../
  125457. include ../Rules.mak
  125458. -include Makefile.in
  125459. include ../Test.mak
  125460. diff -Nur uClibc-0.9.33.2/test/time/test_time.c uClibc-git/test/time/test_time.c
  125461. --- uClibc-0.9.33.2/test/time/test_time.c 2012-05-15 09:20:09.000000000 +0200
  125462. +++ uClibc-git/test/time/test_time.c 2014-06-02 17:40:35.390719601 +0200
  125463. @@ -12,9 +12,8 @@
  125464. Lesser General Public License for more details.
  125465. You should have received a copy of the GNU Lesser General Public
  125466. - License along with the GNU C Library; if not, write to the Free
  125467. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125468. - 02111-1307 USA. */
  125469. + License along with the GNU C Library; if not, see
  125470. + <http://www.gnu.org/licenses/>. */
  125471. #include <stdio.h>
  125472. #include <stdlib.h>
  125473. diff -Nur uClibc-0.9.33.2/test/time/tst-strptime.c uClibc-git/test/time/tst-strptime.c
  125474. --- uClibc-0.9.33.2/test/time/tst-strptime.c 2012-05-15 09:20:09.000000000 +0200
  125475. +++ uClibc-git/test/time/tst-strptime.c 2014-06-02 17:40:35.418719755 +0200
  125476. @@ -14,9 +14,8 @@
  125477. Lesser General Public License for more details.
  125478. You should have received a copy of the GNU Lesser General Public
  125479. - License along with the GNU C Library; if not, write to the Free
  125480. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125481. - 02111-1307 USA. */
  125482. + License along with the GNU C Library; if not, see
  125483. + <http://www.gnu.org/licenses/>. */
  125484. #include <locale.h>
  125485. #include <stdio.h>
  125486. diff -Nur uClibc-0.9.33.2/test/time/tst-timerfd.c uClibc-git/test/time/tst-timerfd.c
  125487. --- uClibc-0.9.33.2/test/time/tst-timerfd.c 1970-01-01 01:00:00.000000000 +0100
  125488. +++ uClibc-git/test/time/tst-timerfd.c 2014-06-02 17:40:35.418719755 +0200
  125489. @@ -0,0 +1,71 @@
  125490. +/* vi: set sw=4 ts=4 sts=4: */
  125491. +/*
  125492. + * timerfd test for uClibc
  125493. + * Copyright (C) 2012 by Kevin Cernekee <cernekee@gmail.com>
  125494. + *
  125495. + * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125496. + */
  125497. +
  125498. +#include <stdio.h>
  125499. +#include <stdlib.h>
  125500. +#include <string.h>
  125501. +#include <unistd.h>
  125502. +#include <errno.h>
  125503. +#include <error.h>
  125504. +#include <signal.h>
  125505. +#include <stdint.h>
  125506. +#include <inttypes.h>
  125507. +#include <time.h>
  125508. +#include <sys/timerfd.h>
  125509. +#include <sys/fcntl.h>
  125510. +
  125511. +static int
  125512. +do_test(void)
  125513. +{
  125514. + int fd, ret, result = 0;
  125515. + struct itimerspec s;
  125516. + uint64_t val;
  125517. + time_t start, now;
  125518. +
  125519. + fd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK);
  125520. + if (fd < 0) {
  125521. + perror("timerfd() failed");
  125522. + result = 1;
  125523. + }
  125524. + s.it_value.tv_sec = 1;
  125525. + s.it_value.tv_nsec = 0;
  125526. + s.it_interval.tv_sec = 0;
  125527. + s.it_interval.tv_nsec = 0;
  125528. + timerfd_settime(fd, 0, &s, NULL);
  125529. + start = time(NULL);
  125530. +
  125531. + /* this should return immediately with EAGAIN due to TFD_NONBLOCK */
  125532. + ret = read(fd, &val, sizeof(val));
  125533. + if (ret != -1 || errno != EAGAIN) {
  125534. + error(0, 0, "first read() returned %d", ret);
  125535. + result = 1;
  125536. + }
  125537. +
  125538. + /* let the timer expire, then check it again */
  125539. + do {
  125540. + now = time(NULL);
  125541. + } while (now - start < 2);
  125542. +
  125543. + ret = read(fd, &val, sizeof(val));
  125544. + if (ret != sizeof(val)) {
  125545. + error(0, 0, "second read() returned %d", ret);
  125546. + result = 1;
  125547. + }
  125548. +
  125549. + /* we are expecting a single expiration, since it_interval is 0 */
  125550. + if (val != 1) {
  125551. + error(0, 0, "wrong number of expirations: %" PRIx64, val);
  125552. + result = 1;
  125553. + }
  125554. +
  125555. + return result;
  125556. +}
  125557. +
  125558. +#define TIMEOUT 5
  125559. +#define TEST_FUNCTION do_test ()
  125560. +#include "../test-skeleton.c"
  125561. diff -Nur uClibc-0.9.33.2/test/time/tst-timezone.c uClibc-git/test/time/tst-timezone.c
  125562. --- uClibc-0.9.33.2/test/time/tst-timezone.c 2012-05-15 09:20:09.000000000 +0200
  125563. +++ uClibc-git/test/time/tst-timezone.c 2014-06-02 17:40:35.418719755 +0200
  125564. @@ -13,9 +13,8 @@
  125565. Lesser General Public License for more details.
  125566. You should have received a copy of the GNU Lesser General Public
  125567. - License along with the GNU C Library; if not, write to the Free
  125568. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125569. - 02111-1307 USA. */
  125570. + License along with the GNU C Library; if not, see
  125571. + <http://www.gnu.org/licenses/>. */
  125572. #include <time.h>
  125573. #include <stdio.h>
  125574. diff -Nur uClibc-0.9.33.2/test/tls/Makefile.in uClibc-git/test/tls/Makefile.in
  125575. --- uClibc-0.9.33.2/test/tls/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  125576. +++ uClibc-git/test/tls/Makefile.in 2014-06-02 17:40:35.430719822 +0200
  125577. @@ -102,9 +102,9 @@
  125578. LDFLAGS_tst-tls7 := -ldl
  125579. LDFLAGS_tst-tls8 := -ldl
  125580. LDFLAGS_tst-tls9 := -ldl
  125581. -LDFLAGS_tst-tls10 := -Wl,-rpath-link=. tst-tlsmod8.so
  125582. -LDFLAGS_tst-tls11 := -Wl,-rpath-link=. tst-tlsmod10.so
  125583. -LDFLAGS_tst-tls12 := -Wl,-rpath-link=. tst-tlsmod12.so
  125584. +LDFLAGS_tst-tls10 := -Wl,-rpath-link=. tst-tlsmod8.so tst-tlsmod7.so
  125585. +LDFLAGS_tst-tls11 := -Wl,-rpath-link=. tst-tlsmod9.so tst-tlsmod10.so
  125586. +LDFLAGS_tst-tls12 := -Wl,-rpath-link=. tst-tlsmod11.so tst-tlsmod12.so
  125587. LDFLAGS_tst-tls13 := -ldl -Wl,-rpath-link=.
  125588. LDFLAGS_tst-tls14 := -ldl -Wl,-rpath-link=. tst-tlsmod14a.so
  125589. LDFLAGS_tst-tls15 := -ldl -Wl,-rpath-link=.
  125590. diff -Nur uClibc-0.9.33.2/test/tls/tst-tls6.c uClibc-git/test/tls/tst-tls6.c
  125591. --- uClibc-0.9.33.2/test/tls/tst-tls6.c 2012-05-15 09:20:09.000000000 +0200
  125592. +++ uClibc-git/test/tls/tst-tls6.c 2014-06-02 17:40:35.430719822 +0200
  125593. @@ -38,13 +38,12 @@
  125594. time. The value of the first round is used. */
  125595. #ifdef __UCLIBC__
  125596. if (modid == -1)
  125597. - modid = ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid;
  125598. - else if (((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid
  125599. - != (size_t) modid)
  125600. + modid = ((struct dyn_elf *) h)->dyn->l_tls_modid;
  125601. + else if (((struct dyn_elf *)h)->dyn->l_tls_modid != (size_t) modid)
  125602. {
  125603. printf ("round %d: modid now %zu, initially %d\n",
  125604. i,
  125605. - ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid,
  125606. + ((struct dyn_elf *)h)->dyn->l_tls_modid,
  125607. modid);
  125608. result = 1;
  125609. }
  125610. diff -Nur uClibc-0.9.33.2/test/tls/tst-tls7.c uClibc-git/test/tls/tst-tls7.c
  125611. --- uClibc-0.9.33.2/test/tls/tst-tls7.c 2012-05-15 09:20:09.000000000 +0200
  125612. +++ uClibc-git/test/tls/tst-tls7.c 2014-06-02 17:40:35.430719822 +0200
  125613. @@ -36,13 +36,12 @@
  125614. time. The value of the first round is used. */
  125615. #ifdef __UCLIBC__
  125616. if (modid == -1)
  125617. - modid = ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid;
  125618. - else if (((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid
  125619. - != (size_t) modid)
  125620. + modid = ((struct dyn_elf *) h)->dyn->l_tls_modid;
  125621. + else if (((struct dyn_elf *)h)->dyn->l_tls_modid != (size_t) modid)
  125622. {
  125623. printf ("round %d: modid now %zu, initially %d\n",
  125624. i,
  125625. - ((struct link_map *)((struct dyn_elf *)h)->dyn)->l_tls_modid,
  125626. + ((struct dyn_elf *)h)->dyn->l_tls_modid,
  125627. modid);
  125628. result = 1;
  125629. }
  125630. diff -Nur uClibc-0.9.33.2/test/tls/tst-tls8.c uClibc-git/test/tls/tst-tls8.c
  125631. --- uClibc-0.9.33.2/test/tls/tst-tls8.c 2012-05-15 09:20:09.000000000 +0200
  125632. +++ uClibc-git/test/tls/tst-tls8.c 2014-06-02 17:40:35.430719822 +0200
  125633. @@ -41,13 +41,12 @@
  125634. time. The value of the first round is used. */
  125635. #ifdef __UCLIBC__
  125636. if (modid1 == (size_t) -1)
  125637. - modid1 = ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid;
  125638. - else if (((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid
  125639. - != (size_t) modid1)
  125640. + modid1 = ((struct dyn_elf *) h1)->dyn->l_tls_modid;
  125641. + else if (((struct dyn_elf *)h1)->dyn->l_tls_modid != (size_t) modid1)
  125642. {
  125643. printf ("round %d: modid now %zd, initially %zd\n",
  125644. i,
  125645. - ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid,
  125646. + ((struct dyn_elf *)h1)->dyn->l_tls_modid,
  125647. modid1);
  125648. result = 1;
  125649. }
  125650. @@ -85,23 +84,23 @@
  125651. time. The value of the first round is used. */
  125652. #ifdef __UCLIBC__
  125653. if (modid2 == (size_t) -1)
  125654. - modid2 = ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid;
  125655. - else if (((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid
  125656. + modid2 = ((struct dyn_elf *)h2)->dyn->l_tls_modid;
  125657. + else if (((struct dyn_elf *)h2)->dyn->l_tls_modid
  125658. != (size_t) modid2)
  125659. {
  125660. printf ("round %d: modid now %zd, initially %zd\n",
  125661. i,
  125662. - ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid,
  125663. + ((struct dyn_elf *)h2)->dyn->l_tls_modid,
  125664. modid2);
  125665. result = 1;
  125666. }
  125667. #else
  125668. if (modid2 == (size_t) -1)
  125669. - modid2 = ((struct link_map *) h1)->l_tls_modid;
  125670. - else if (((struct link_map *) h1)->l_tls_modid != modid2)
  125671. + modid2 = ((struct link_map *) h2)->l_tls_modid;
  125672. + else if (((struct link_map *) h2)->l_tls_modid != modid2)
  125673. {
  125674. printf ("round %d: modid now %zd, initially %zd\n",
  125675. - i, ((struct link_map *) h1)->l_tls_modid, modid2);
  125676. + i, ((struct link_map *) h2)->l_tls_modid, modid2);
  125677. result = 1;
  125678. }
  125679. #endif
  125680. @@ -139,12 +138,12 @@
  125681. We make sure that the module gets assigned the same ID every
  125682. time. The value of the first round is used. */
  125683. #ifdef __UCLIBC__
  125684. - if (((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid
  125685. + if (((struct dyn_elf *)h1)->dyn->l_tls_modid
  125686. != modid1)
  125687. {
  125688. printf ("round %d: modid now %zd, initially %zd\n",
  125689. i,
  125690. - ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid,
  125691. + ((struct dyn_elf *)h1)->dyn->l_tls_modid,
  125692. modid1);
  125693. result = 1;
  125694. }
  125695. @@ -179,20 +178,20 @@
  125696. We make sure that the module gets assigned the same ID every
  125697. time. The value of the first round is used. */
  125698. #ifdef __UCLIBC__
  125699. - if (((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid
  125700. + if (((struct dyn_elf *)h2)->dyn->l_tls_modid
  125701. != modid2)
  125702. {
  125703. printf ("round %d: modid now %zd, initially %zd\n",
  125704. i,
  125705. - ((struct link_map *)((struct dyn_elf *)h1)->dyn)->l_tls_modid,
  125706. + ((struct dyn_elf *)h2)->dyn->l_tls_modid,
  125707. modid2);
  125708. result = 1;
  125709. }
  125710. #else
  125711. - if (((struct link_map *) h1)->l_tls_modid != modid2)
  125712. + if (((struct link_map *) h2)->l_tls_modid != modid2)
  125713. {
  125714. printf ("round %d: modid now %zd, initially %zd\n",
  125715. - i, ((struct link_map *) h1)->l_tls_modid, modid2);
  125716. + i, ((struct link_map *) h2)->l_tls_modid, modid2);
  125717. result = 1;
  125718. }
  125719. #endif
  125720. diff -Nur uClibc-0.9.33.2/test/unistd/Makefile uClibc-git/test/unistd/Makefile
  125721. --- uClibc-0.9.33.2/test/unistd/Makefile 2012-05-15 09:20:09.000000000 +0200
  125722. +++ uClibc-git/test/unistd/Makefile 2014-06-02 17:40:35.430719822 +0200
  125723. @@ -2,6 +2,7 @@
  125724. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125725. top_builddir=../../
  125726. +top_srcdir=../../
  125727. include ../Rules.mak
  125728. -include Makefile.in
  125729. include ../Test.mak
  125730. diff -Nur uClibc-0.9.33.2/test/unistd/Makefile.in uClibc-git/test/unistd/Makefile.in
  125731. --- uClibc-0.9.33.2/test/unistd/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  125732. +++ uClibc-git/test/unistd/Makefile.in 2014-06-02 17:40:35.430719822 +0200
  125733. @@ -2,7 +2,10 @@
  125734. # Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
  125735. ifeq ($(UCLIBC_HAS_LFS),)
  125736. -TESTS_DISABLED := tst-preadwrite64
  125737. +TESTS_DISABLED := tst-preadwrite64 tst-posix_fallocate64
  125738. +endif
  125739. +ifeq ($(UCLIBC_HAS_ADVANCED_REALTIME),)
  125740. +TESTS_DISABLED += tst-posix_fallocate
  125741. endif
  125742. OPTS_getopt := -abcXXX -9
  125743. OPTS_getopt_long := --add XXX --delete YYY --verbose
  125744. diff -Nur uClibc-0.9.33.2/test/unistd/tst-posix_fallocate64.c uClibc-git/test/unistd/tst-posix_fallocate64.c
  125745. --- uClibc-0.9.33.2/test/unistd/tst-posix_fallocate64.c 1970-01-01 01:00:00.000000000 +0100
  125746. +++ uClibc-git/test/unistd/tst-posix_fallocate64.c 2014-06-02 17:40:35.434719844 +0200
  125747. @@ -0,0 +1,2 @@
  125748. +#define TST_POSIX_FALLOCATE64
  125749. +#include "tst-posix_fallocate.c"
  125750. diff -Nur uClibc-0.9.33.2/test/unistd/tst-posix_fallocate.c uClibc-git/test/unistd/tst-posix_fallocate.c
  125751. --- uClibc-0.9.33.2/test/unistd/tst-posix_fallocate.c 1970-01-01 01:00:00.000000000 +0100
  125752. +++ uClibc-git/test/unistd/tst-posix_fallocate.c 2014-06-02 17:40:35.434719844 +0200
  125753. @@ -0,0 +1,127 @@
  125754. +#include <fcntl.h>
  125755. +#include <sys/stat.h>
  125756. +
  125757. +#ifndef TST_POSIX_FALLOCATE64
  125758. +# define stat64 stat
  125759. +# define fstat64 fstat
  125760. +# else
  125761. +# ifndef O_LARGEFILE
  125762. +# error no O_LARGEFILE but you want to test with LFS enabled
  125763. +# endif
  125764. +#endif
  125765. +
  125766. +static void do_prepare (void);
  125767. +#define PREPARE(argc, argv) do_prepare ()
  125768. +static int do_test (void);
  125769. +#define TEST_FUNCTION do_test ()
  125770. +#include <test-skeleton.c>
  125771. +
  125772. +static int fd;
  125773. +static void
  125774. +do_prepare (void)
  125775. +{
  125776. + fd = create_temp_file ("tst-posix_fallocate.", NULL);
  125777. + if (fd == -1)
  125778. + {
  125779. + printf ("cannot create temporary file: %m\n");
  125780. + exit (1);
  125781. + }
  125782. +}
  125783. +
  125784. +
  125785. +static int
  125786. +do_test (void)
  125787. +{
  125788. + struct stat64 st;
  125789. +
  125790. + if (fstat64 (fd, &st) != 0)
  125791. + {
  125792. + puts ("1st fstat failed");
  125793. + return 1;
  125794. + }
  125795. +
  125796. + if (st.st_size != 0)
  125797. + {
  125798. + puts ("file not created with size 0");
  125799. + return 1;
  125800. + }
  125801. +
  125802. + if (posix_fallocate (fd, 512, 768) != 0)
  125803. + {
  125804. + puts ("1st posix_fallocate call failed");
  125805. + return 1;
  125806. + }
  125807. +
  125808. + if (fstat64 (fd, &st) != 0)
  125809. + {
  125810. + puts ("2nd fstat failed");
  125811. + return 1;
  125812. + }
  125813. +
  125814. + if (st.st_size != 512 + 768)
  125815. + {
  125816. + printf ("file size after 1st posix_fallocate call is %llu, expected %u\n",
  125817. + (unsigned long long int) st.st_size, 512u + 768u);
  125818. + return 1;
  125819. + }
  125820. +
  125821. + if (posix_fallocate (fd, 0, 1024) != 0)
  125822. + {
  125823. + puts ("2nd posix_fallocate call failed");
  125824. + return 1;
  125825. + }
  125826. +
  125827. + if (fstat64 (fd, &st) != 0)
  125828. + {
  125829. + puts ("3rd fstat failed");
  125830. + return 1;
  125831. + }
  125832. +
  125833. + if (st.st_size != 512 + 768)
  125834. + {
  125835. + puts ("file size changed in 2nd posix_fallocate");
  125836. + return 1;
  125837. + }
  125838. +
  125839. + if (posix_fallocate (fd, 2048, 64) != 0)
  125840. + {
  125841. + puts ("3rd posix_fallocate call failed");
  125842. + return 1;
  125843. + }
  125844. +
  125845. + if (fstat64 (fd, &st) != 0)
  125846. + {
  125847. + puts ("4th fstat failed");
  125848. + return 1;
  125849. + }
  125850. +
  125851. + if (st.st_size != 2048 + 64)
  125852. + {
  125853. + printf ("file size after 3rd posix_fallocate call is %llu, expected %u\n",
  125854. + (unsigned long long int) st.st_size, 2048u + 64u);
  125855. + return 1;
  125856. + }
  125857. +#ifdef TST_POSIX_FALLOCATE64
  125858. + if (posix_fallocate64 (fd, 4097ULL, 4294967295ULL + 2ULL) != 0)
  125859. + {
  125860. + puts ("4th posix_fallocate call failed");
  125861. + return 1;
  125862. + }
  125863. +
  125864. + if (fstat64 (fd, &st) != 0)
  125865. + {
  125866. + puts ("5th fstat failed");
  125867. + return 1;
  125868. + }
  125869. +
  125870. + if (st.st_size != 4097ULL + 4294967295ULL + 2ULL)
  125871. + {
  125872. + printf ("file size after 4th posix_fallocate call is %llu, expected %llu\n",
  125873. + (unsigned long long int) st.st_size, 4097ULL + 4294967295ULL + 2ULL);
  125874. + return 1;
  125875. + }
  125876. +#endif
  125877. + close (fd);
  125878. +
  125879. + return 0;
  125880. +}
  125881. diff -Nur uClibc-0.9.33.2/test/unistd/tst-preadwrite64.c uClibc-git/test/unistd/tst-preadwrite64.c
  125882. --- uClibc-0.9.33.2/test/unistd/tst-preadwrite64.c 2012-05-15 09:20:09.000000000 +0200
  125883. +++ uClibc-git/test/unistd/tst-preadwrite64.c 2014-06-02 17:40:35.434719844 +0200
  125884. @@ -14,9 +14,8 @@
  125885. Lesser General Public License for more details.
  125886. You should have received a copy of the GNU Lesser General Public
  125887. - License along with the GNU C Library; if not, write to the Free
  125888. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125889. - 02111-1307 USA. */
  125890. + License along with the GNU C Library; if not, see
  125891. + <http://www.gnu.org/licenses/>. */
  125892. #define PREAD pread64
  125893. #define PWRITE pwrite64
  125894. diff -Nur uClibc-0.9.33.2/test/unistd/tst-preadwrite.c uClibc-git/test/unistd/tst-preadwrite.c
  125895. --- uClibc-0.9.33.2/test/unistd/tst-preadwrite.c 2012-05-15 09:20:09.000000000 +0200
  125896. +++ uClibc-git/test/unistd/tst-preadwrite.c 2014-06-02 17:40:35.434719844 +0200
  125897. @@ -14,9 +14,8 @@
  125898. Lesser General Public License for more details.
  125899. You should have received a copy of the GNU Lesser General Public
  125900. - License along with the GNU C Library; if not, write to the Free
  125901. - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
  125902. - 02111-1307 USA. */
  125903. + License along with the GNU C Library; if not, see
  125904. + <http://www.gnu.org/licenses/>. */
  125905. #include <errno.h>
  125906. #include <error.h>
  125907. diff -Nur uClibc-0.9.33.2/TODO uClibc-git/TODO
  125908. --- uClibc-0.9.33.2/TODO 2012-05-15 09:20:09.000000000 +0200
  125909. +++ uClibc-git/TODO 2014-06-02 17:40:33.670710081 +0200
  125910. @@ -88,6 +88,11 @@
  125911. *) Cleanup/scrub all the Makefile copyright junk
  125912. *) Fix dlopen, for both static and dynamic cases, and make it
  125913. fully comply with SuSv3
  125914. + *) check if sched_getcpu is only pulled in where it should be
  125915. + *) remove HANDLE_OLDER_RLIMIT, NEW_GETRLIMIT (conditionalize on
  125916. + ugetrlimit, it seems, else use the modern variant)
  125917. + *) simplify exec*() in the light of execvpe (perhaps single internal
  125918. + impl); USE_GNU for execvpe (and other GNU extensions, see psm).
  125919. TODO list for AFTER the uClibc 1.0.0 release:
  125920. @@ -180,3 +185,4 @@
  125921. b) Write a space-efficient gettext substitute, to avoid storing large amounts
  125922. of redundant data.
  125923. +
  125924. diff -Nur uClibc-0.9.33.2/utils/chroot_realpath.c uClibc-git/utils/chroot_realpath.c
  125925. --- uClibc-0.9.33.2/utils/chroot_realpath.c 2012-05-15 09:20:09.000000000 +0200
  125926. +++ uClibc-git/utils/chroot_realpath.c 2014-06-02 17:40:35.434719844 +0200
  125927. @@ -14,8 +14,7 @@
  125928. *
  125929. * You should have received a copy of the GNU Lesser General Public
  125930. * License along with this library; see the file COPYING.LIB. If not,
  125931. - * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  125932. - * Boston, MA 02111-1307, USA.
  125933. + * see <http://www.gnu.org/licenses/>.
  125934. *
  125935. * 2005/09/12: Dan Howell (modified from realpath.c to emulate chroot)
  125936. */
  125937. diff -Nur uClibc-0.9.33.2/utils/getconf.c uClibc-git/utils/getconf.c
  125938. --- uClibc-0.9.33.2/utils/getconf.c 2012-05-15 09:20:09.000000000 +0200
  125939. +++ uClibc-git/utils/getconf.c 2014-06-02 17:40:35.434719844 +0200
  125940. @@ -12,10 +12,10 @@
  125941. GNU General Public License for more details.
  125942. You should have received a copy of the GNU General Public License
  125943. - along with this program; if not, write to the Free Software Foundation,
  125944. - Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
  125945. + along with this program; if not, see <http://www.gnu.org/licenses/>. */
  125946. #define _GNU_SOURCE 1
  125947. +#include "porting.h"
  125948. #include <unistd.h>
  125949. #include <errno.h>
  125950. #include <string.h>
  125951. @@ -1052,13 +1052,11 @@
  125952. };
  125953. static const int nspecs = sizeof (specs) / sizeof (specs[0]);
  125954. -#ifdef __UCLIBC_HAS___PROGNAME__
  125955. -extern const char *__progname;
  125956. -#else
  125957. -#define __progname "foo"
  125958. +#ifndef __UCLIBC_HAS___PROGNAME__
  125959. +static const char *__progname = "getconf";
  125960. #endif
  125961. -static void
  125962. +static attribute_noreturn void
  125963. usage (void)
  125964. {
  125965. fprintf (stderr,
  125966. @@ -1070,7 +1068,7 @@
  125967. }
  125968. -static void
  125969. +static attribute_noreturn void
  125970. print_all (const char *path)
  125971. {
  125972. register const struct conf *c;
  125973. diff -Nur uClibc-0.9.33.2/utils/iconv.c uClibc-git/utils/iconv.c
  125974. --- uClibc-0.9.33.2/utils/iconv.c 2012-05-15 09:20:09.000000000 +0200
  125975. +++ uClibc-git/utils/iconv.c 2014-06-02 17:40:35.434719844 +0200
  125976. @@ -12,8 +12,8 @@
  125977. * Library General Public License for more details.
  125978. *
  125979. * You should have received a copy of the GNU Library General Public
  125980. - * License along with this library; if not, write to the Free
  125981. - * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  125982. + * License along with this library; if not, see
  125983. + * <http://www.gnu.org/licenses/>.
  125984. */
  125985. /* ATTENTION! ATTENTION! ATTENTION! ATTENTION! ATTENTION!
  125986. @@ -98,15 +98,22 @@
  125987. * Manuel
  125988. */
  125989. +/* keep libgen before string.h - and porting.h to use the
  125990. + * XPG version of basename */
  125991. +#include <libgen.h>
  125992. #include "porting.h"
  125993. #include <string.h>
  125994. #include <iconv.h>
  125995. #include <stdarg.h>
  125996. -#include <libgen.h>
  125997. #include <wchar.h>
  125998. #include "wchar.c" /* for _UC_iconv_t and __iconv_codesets */
  125999. -extern const unsigned char __iconv_codesets[];
  126000. +#ifdef L_iconv_main
  126001. +static
  126002. +#else
  126003. +extern
  126004. +#endif
  126005. +const unsigned char __iconv_codesets[];
  126006. #define IBUF BUFSIZ
  126007. #define OBUF BUFSIZ
  126008. diff -Nur uClibc-0.9.33.2/utils/ldconfig.c uClibc-git/utils/ldconfig.c
  126009. --- uClibc-0.9.33.2/utils/ldconfig.c 2012-05-15 09:20:09.000000000 +0200
  126010. +++ uClibc-git/utils/ldconfig.c 2014-06-02 17:40:35.434719844 +0200
  126011. @@ -57,8 +57,6 @@
  126012. /* Code indicating core file. */
  126013. #define CMAGIC 0421
  126014. -char *___strtok = NULL;
  126015. -
  126016. char *prog = NULL;
  126017. int debug = 0; /* debug mode */
  126018. int verbose = 0; /* verbose mode */
  126019. @@ -96,6 +94,7 @@
  126020. extern char *chroot_realpath(const char *chroot, const char *path,
  126021. char resolved_path[]);
  126022. +#if defined __UCLIBC_STATIC_LDCONFIG__ || !defined __UCLIBC_HAS_BSD_ERR__
  126023. /* These two are used internally -- you shouldn't need to use them */
  126024. static void verror_msg(const char *s, va_list p)
  126025. {
  126026. @@ -114,8 +113,7 @@
  126027. fprintf(stderr, "\n");
  126028. }
  126029. -static void err(int errnum, const char *s, ...) attribute_noreturn;
  126030. -static void err(int errnum, const char *s, ...)
  126031. +static attribute_noreturn void err(int errnum, const char *s, ...)
  126032. {
  126033. va_list p;
  126034. @@ -146,6 +144,9 @@
  126035. vperror_msg(s, p);
  126036. va_end(p);
  126037. }
  126038. +#else
  126039. +# include <err.h>
  126040. +#endif
  126041. static void *xmalloc(size_t size)
  126042. {
  126043. @@ -257,10 +258,10 @@
  126044. && N_MAGIC_SWAP(exec) != QMAGIC) {
  126045. elf_hdr = (ElfW(Ehdr) *) & exec;
  126046. if (elf_hdr->e_ident[0] != 0x7f ||
  126047. - strncmp((char *)elf_hdr->e_ident + 1, "ELF", 3) != 0)
  126048. + strncmp((const char *)elf_hdr->e_ident + 1, "ELF", 3) != 0)
  126049. {
  126050. /* silently ignore linker scripts */
  126051. - if (strncmp((char *)&exec, "/* GNU ld", 9) != 0)
  126052. + if (strncmp((const char *)&exec, "/* GNU ld", 9) != 0)
  126053. warnx("%s is not a shared library, skipping", buff);
  126054. } else {
  126055. /* always call readsoname to update type */
  126056. @@ -282,7 +283,7 @@
  126057. /* if the soname does not match the filename,
  126058. issue a warning, but only in debug mode. */
  126059. int len = strlen(good);
  126060. - if (debug && (strncmp(good, name, len) != 0
  126061. + if (debug && (strncmp((const char *)good, name, len) != 0
  126062. || (name[len] != '\0' && name[len] != '.')))
  126063. warnx("%s has inconsistent soname (%s)", buff, good);
  126064. }
  126065. @@ -784,8 +785,7 @@
  126066. }
  126067. #endif
  126068. -static void usage(void) attribute_noreturn;
  126069. -static void usage(void)
  126070. +static attribute_noreturn void usage(void)
  126071. {
  126072. fprintf(stderr,
  126073. #ifdef __LDSO_CACHE_SUPPORT__
  126074. diff -Nur uClibc-0.9.33.2/utils/ldd.c uClibc-git/utils/ldd.c
  126075. --- uClibc-0.9.33.2/utils/ldd.c 2012-05-15 09:20:09.000000000 +0200
  126076. +++ uClibc-git/utils/ldd.c 2014-06-02 17:40:35.434719844 +0200
  126077. @@ -20,6 +20,11 @@
  126078. #define ELFCLASSM ELFCLASS64
  126079. #endif
  126080. +#if defined(__arc__)
  126081. +#define MATCH_MACHINE(x) (x == EM_ARCOMPACT)
  126082. +#define ELFCLASSM ELFCLASS32
  126083. +#endif
  126084. +
  126085. #if defined(__arm__) || defined(__thumb__)
  126086. #define MATCH_MACHINE(x) (x == EM_ARM)
  126087. #define ELFCLASSM ELFCLASS32
  126088. @@ -63,6 +68,11 @@
  126089. #define ELFCLASSM ELFCLASS32
  126090. #endif
  126091. +#if defined(__metag__)
  126092. +#define MATCH_MACHINE(x) (x == EM_METAG)
  126093. +#define ELFCLASSM ELFCLASS32
  126094. +#endif
  126095. +
  126096. #if defined(__mips__)
  126097. #define MATCH_MACHINE(x) (x == EM_MIPS || x == EM_MIPS_RS3_LE)
  126098. #define ELFCLASSM ELFCLASS32
  126099. @@ -106,6 +116,11 @@
  126100. #define ELFCLASSM ELFCLASS32
  126101. #endif
  126102. +#if defined(__xtensa__)
  126103. +#define MATCH_MACHINE(x) (x == EM_XTENSA)
  126104. +#define ELFCLASSM ELFCLASS32
  126105. +#endif
  126106. +
  126107. #ifndef MATCH_MACHINE
  126108. # ifdef __linux__
  126109. # include <asm/elf.h>
  126110. @@ -127,7 +142,6 @@
  126111. #define ELFDATAM ELFDATA2MSB
  126112. #endif
  126113. -#define ARRAY_SIZE(v) (sizeof(v) / sizeof(*v))
  126114. #define TRUSTED_LDSO UCLIBC_RUNTIME_PREFIX "lib/" UCLIBC_LDSO
  126115. struct library {
  126116. @@ -145,7 +159,7 @@
  126117. static __inline__ uint32_t byteswap32_to_host(uint32_t value)
  126118. {
  126119. - if (byteswap == 1) {
  126120. + if (byteswap) {
  126121. return (bswap_32(value));
  126122. } else {
  126123. return (value);
  126124. @@ -153,7 +167,7 @@
  126125. }
  126126. static __inline__ uint64_t byteswap64_to_host(uint64_t value)
  126127. {
  126128. - if (byteswap == 1) {
  126129. + if (byteswap) {
  126130. return (bswap_64(value));
  126131. } else {
  126132. return (value);
  126133. @@ -232,14 +246,7 @@
  126134. }
  126135. /* Check if the target endianness matches the host's endianness */
  126136. - byteswap = 0;
  126137. - if (UCLIBC_ENDIAN_HOST == UCLIBC_ENDIAN_LITTLE) {
  126138. - if (ehdr->e_ident[5] == ELFDATA2MSB)
  126139. - byteswap = 1;
  126140. - } else if (UCLIBC_ENDIAN_HOST == UCLIBC_ENDIAN_BIG) {
  126141. - if (ehdr->e_ident[5] == ELFDATA2LSB)
  126142. - byteswap = 1;
  126143. - }
  126144. + byteswap = !(ehdr->e_ident[5] == ELFDATAM);
  126145. /* Be very lazy, and only byteswap the stuff we use */
  126146. if (byteswap) {
  126147. @@ -707,6 +714,7 @@
  126148. };
  126149. # ifdef __LDSO_STANDALONE_SUPPORT__
  126150. char * lib_path = getenv("LD_LIBRARY_PATH");
  126151. +
  126152. /* The 'extended' environment inclusing the LD_LIBRARY_PATH */
  126153. static char *ext_environment[ARRAY_SIZE(environment) + 1];
  126154. char **envp = (char **) environment;
  126155. diff -Nur uClibc-0.9.33.2/utils/Makefile.in uClibc-git/utils/Makefile.in
  126156. --- uClibc-0.9.33.2/utils/Makefile.in 2012-05-15 09:20:09.000000000 +0200
  126157. +++ uClibc-git/utils/Makefile.in 2014-06-02 17:40:35.434719844 +0200
  126158. @@ -10,6 +10,7 @@
  126159. CFLAGS-utils := \
  126160. $(SSP_ALL_CFLAGS) \
  126161. + -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
  126162. -I$(top_srcdir)ldso/include \
  126163. -DUCLIBC_RUNTIME_PREFIX=\"$(RUNTIME_PREFIX)\" \
  126164. -DUCLIBC_LDSO=\"$(UCLIBC_LDSO)\" \
  126165. @@ -36,8 +37,7 @@
  126166. # Need CFLAGS-utils explicitly, because the source file is not located in utils
  126167. CFLAGS-iconv := $(CFLAGS-utils) \
  126168. $(CFLAGS-utils-shared) \
  126169. - -I$(top_srcdir)libc/misc/wchar \
  126170. - -DL_iconv_main \
  126171. + -I$(top_srcdir)libc/misc/wchar
  126172. CFLAGS-locale := $(CFLAGS-utils)
  126173. CFLAGS-getconf :=$(CFLAGS-utils) \
  126174. @@ -56,9 +56,11 @@
  126175. $(UTILS_CONFIG_FLAGS-y)
  126176. BUILD_CFLAGS-ldconfig.host := \
  126177. -DBUILDING_LINKAGE \
  126178. + -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
  126179. -I$(top_srcdir)ldso/include
  126180. BUILD_CFLAGS-ldd.host := \
  126181. -DBUILDING_LINKAGE \
  126182. + -I$(top_srcdir)ldso/ldso/$(TARGET_ARCH) \
  126183. -I$(top_srcdir)ldso/include \
  126184. -include $(top_srcdir)include/elf.h
  126185. BUILD_CFLAGS-locale.host := \